@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,906 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, EventEmitter, Component, ViewEncapsulation, ViewChild, Output, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1$1 from '@ieeesa-npm/presentation';
|
|
4
|
+
import { AlignType, AllowedFileTypes, FormControlType, DynamicFormComponent } from '@ieeesa-npm/presentation';
|
|
5
|
+
import { map, catchError, Subject, takeUntil } from 'rxjs';
|
|
6
|
+
import { Validators } from '@angular/forms';
|
|
7
|
+
import * as i4 from '@angular/common';
|
|
8
|
+
import { CommonModule } from '@angular/common';
|
|
9
|
+
import { validColorValidator } from 'ngx-colors';
|
|
10
|
+
import * as i1 from '@ieeesa-npm/utility';
|
|
11
|
+
import * as i3 from '@ieeesa-npm/shared';
|
|
12
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
13
|
+
|
|
14
|
+
var createTenant = {
|
|
15
|
+
heading: "New Application",
|
|
16
|
+
label: {
|
|
17
|
+
leftButtonLabel: "Cancel",
|
|
18
|
+
rightButtonLabel: "Save",
|
|
19
|
+
appTitle: "Application Title",
|
|
20
|
+
appId: "Application Id",
|
|
21
|
+
appLogo: "Application Logo",
|
|
22
|
+
appHeading: "Application Heading",
|
|
23
|
+
appDescription: "Application Description",
|
|
24
|
+
appBgColor: "Application Background Color",
|
|
25
|
+
appHelpLink: "Application Help Link",
|
|
26
|
+
featuresList: "Selection of list of features",
|
|
27
|
+
featureVersion: "Feature Version",
|
|
28
|
+
domainURL: "Domain URL",
|
|
29
|
+
appType: "Application Type",
|
|
30
|
+
ariaLabel: {
|
|
31
|
+
appTitle: "Application Title",
|
|
32
|
+
appId: "Application Id",
|
|
33
|
+
appLogo: "Application Logo",
|
|
34
|
+
appHeading: "Application Heading",
|
|
35
|
+
appDescription: "Application Description",
|
|
36
|
+
appBgColor: "Application Background Color",
|
|
37
|
+
appHelpLink: "Application Help Link",
|
|
38
|
+
featuresList: "Selection of list of features",
|
|
39
|
+
featureVersion: "Feature Version",
|
|
40
|
+
domainURL: "Domain URL",
|
|
41
|
+
appType: "Application Type"
|
|
42
|
+
},
|
|
43
|
+
ariaDescribedById: {
|
|
44
|
+
appTitle: "ariaApplicationTitle",
|
|
45
|
+
appId: "ariaApplicationId",
|
|
46
|
+
appLogo: "ariaApplicationLogo",
|
|
47
|
+
appHeading: "ariaApplicationHeading",
|
|
48
|
+
appDescription: "ariaApplicationDescription",
|
|
49
|
+
appBgColor: "ariaApplicationBackgroundColor",
|
|
50
|
+
appHelpLink: "ariaApplicationHelpLink",
|
|
51
|
+
featuresList: "ariaFeatures",
|
|
52
|
+
featureVersion: "ariaFeatureVersion",
|
|
53
|
+
domainURL: "ariaDomainURL",
|
|
54
|
+
appType: "ariaApplicationType"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
message: {
|
|
58
|
+
error: {
|
|
59
|
+
required: "This field is required.",
|
|
60
|
+
invalidColor: "Invalid color.",
|
|
61
|
+
invalidFile: "Invalid file format. Please upload SVG, PNG and JPG file format only.",
|
|
62
|
+
limit: {
|
|
63
|
+
appTitleMaxChars: "Application Title must not be greater than 50 characters long.",
|
|
64
|
+
appIdMaxChars: "Application Id must not be greater than 10 characters long.",
|
|
65
|
+
appHeadingMaxChars: "Application Heading must not be greater than 150 characters long.",
|
|
66
|
+
appDescriptionMaxChars: "Application Description must not be greater than 500 characters long.",
|
|
67
|
+
appLogoMaxSize: "File size exceeds the maximum limit."
|
|
68
|
+
},
|
|
69
|
+
pattern: {
|
|
70
|
+
appId: "It should only allow Alphanumeric characters.",
|
|
71
|
+
appHelpLink: "Invalid URL.",
|
|
72
|
+
appDomainUrl: "Invalid URL."
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
success: {
|
|
76
|
+
submission: "has been created successfully."
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
supportText: {
|
|
80
|
+
appTitle: "Enter application name.",
|
|
81
|
+
appId: "Enter application id.",
|
|
82
|
+
appLogo: "Upload application logo.",
|
|
83
|
+
appHeading: "Enter application heading.",
|
|
84
|
+
appDescription: "Enter application description.",
|
|
85
|
+
appBgColor: "Choose background color.",
|
|
86
|
+
appHelpLink: "Enter application help link.",
|
|
87
|
+
featuresList: "Select reusable feature(s).",
|
|
88
|
+
featureVersion: "Select feature version.",
|
|
89
|
+
domainURL: "Enter domain URL."
|
|
90
|
+
},
|
|
91
|
+
errors: {
|
|
92
|
+
"2003": "Application Type not found.",
|
|
93
|
+
"2026": "List of features not found.",
|
|
94
|
+
"2028": "Application Title is required.",
|
|
95
|
+
"2029": "Application Logo is required.",
|
|
96
|
+
"2030": "Application Heading is required.",
|
|
97
|
+
"2031": "Application Description is required.",
|
|
98
|
+
"2032": "Background color is required.",
|
|
99
|
+
"2033": "Help link is required.",
|
|
100
|
+
"2034": "Domain Url is required.",
|
|
101
|
+
"2035": "Application Type is required.",
|
|
102
|
+
"2036": "Application Features are required.",
|
|
103
|
+
"2037": "Application Title must not be greater than 50 characters long.",
|
|
104
|
+
"2038": "Application Heading must not be greater than 150 characters long",
|
|
105
|
+
"2039": "Application Description must not be greater than 500 characters long.",
|
|
106
|
+
"2040": "Invalid URL.",
|
|
107
|
+
"2041": "Application Id is required.",
|
|
108
|
+
"2042": "Application Id must not be greater than 10 characters long",
|
|
109
|
+
"2043": "Application Id contains invalid characters. Please enter alphanumeric characters only.",
|
|
110
|
+
"2044": "Invalid URL.",
|
|
111
|
+
"2045": "Application Id must be unique.",
|
|
112
|
+
"2046": "Application Features are required.",
|
|
113
|
+
"2047": "Application Type is required.",
|
|
114
|
+
"2048": "Features Not Found.",
|
|
115
|
+
"2049": "Unable to display tenants. Please try again latter."
|
|
116
|
+
},
|
|
117
|
+
buttons: {
|
|
118
|
+
addApplicationLabel: "Add Application"
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
var viewTenants = {
|
|
122
|
+
tenantsTitle: "Tenant Application Management",
|
|
123
|
+
addTenant: "Add Application",
|
|
124
|
+
emptyFieldValueReplacedBy: "-",
|
|
125
|
+
createTenantsIcon: "assets/images/sprites/sprites.svg#icon-create-group-white-bg",
|
|
126
|
+
pageSizeOptions: [
|
|
127
|
+
10,
|
|
128
|
+
20,
|
|
129
|
+
50,
|
|
130
|
+
100
|
|
131
|
+
],
|
|
132
|
+
ariaLabel: {
|
|
133
|
+
add: "Add Application"
|
|
134
|
+
},
|
|
135
|
+
tableColumns: {
|
|
136
|
+
appId: "Application Id",
|
|
137
|
+
appTitle: "Application Title",
|
|
138
|
+
appDescription: "Application Description",
|
|
139
|
+
features: "Features",
|
|
140
|
+
status: "Status"
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
var errors = {
|
|
144
|
+
"2049": "Unable to display tenants. Please try again latter."
|
|
145
|
+
};
|
|
146
|
+
var routeConfigPath = {
|
|
147
|
+
viewTenants: "tenants/view-tenants-list",
|
|
148
|
+
viewTenantDetails: "tenants/view-tenants-list/view-tenant-details",
|
|
149
|
+
createTenant: "tenants/create-tenant"
|
|
150
|
+
};
|
|
151
|
+
var constants = {
|
|
152
|
+
createTenant: createTenant,
|
|
153
|
+
viewTenants: viewTenants,
|
|
154
|
+
errors: errors,
|
|
155
|
+
routeConfigPath: routeConfigPath
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
var screenTexts = /*#__PURE__*/Object.freeze({
|
|
159
|
+
__proto__: null,
|
|
160
|
+
createTenant: createTenant,
|
|
161
|
+
default: constants,
|
|
162
|
+
errors: errors,
|
|
163
|
+
routeConfigPath: routeConfigPath,
|
|
164
|
+
viewTenants: viewTenants
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
/* eslint-disable no-useless-escape */
|
|
168
|
+
const TenantsValidationPatterns = {
|
|
169
|
+
appTitleMaxLength: 50,
|
|
170
|
+
appIdMaxLength: 10,
|
|
171
|
+
appHeadingMaxLength: 150,
|
|
172
|
+
appDescriptionMaxLength: 500,
|
|
173
|
+
url: /^https:\/\//,
|
|
174
|
+
alphaNumeric: /^[a-zA-Z0-9]+$/
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
/* eslint-disable no-unused-vars */
|
|
178
|
+
var FormStatus;
|
|
179
|
+
(function (FormStatus) {
|
|
180
|
+
FormStatus["VALID"] = "VALID";
|
|
181
|
+
FormStatus["INVALID"] = "INVALID";
|
|
182
|
+
})(FormStatus || (FormStatus = {}));
|
|
183
|
+
|
|
184
|
+
class TenantPermissionsService {
|
|
185
|
+
/**
|
|
186
|
+
* Returns access provision for the passed action/feature based on whether the signed in user has appropriate permission.
|
|
187
|
+
* @param {PermissionType} permission
|
|
188
|
+
* @param {TenantsPermission[]} tenantsPermissions
|
|
189
|
+
* @return {boolean}
|
|
190
|
+
* @memberof TenantPermissionsService
|
|
191
|
+
*/
|
|
192
|
+
validateAccessPermission(permission, userTenantsPermissions) {
|
|
193
|
+
const isPermitted = userTenantsPermissions && userTenantsPermissions.length
|
|
194
|
+
? userTenantsPermissions?.some(({ permissionType }) => permissionType === permission)
|
|
195
|
+
: false;
|
|
196
|
+
return isPermitted;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Filters signed in user tenants permissions from entire tenants permissions.
|
|
200
|
+
* @param { UserPermission[] }
|
|
201
|
+
* @return {TenantsPermissions[]}
|
|
202
|
+
* @memberof TenantPermissionsService
|
|
203
|
+
*/
|
|
204
|
+
filterTenantsPermissions(userPermissions, tenantsPermissions) {
|
|
205
|
+
const userTenantsPermission = tenantsPermissions?.filter((permission) => {
|
|
206
|
+
return userPermissions?.find(({ permissionId }) => permission?.permissionId === permissionId);
|
|
207
|
+
});
|
|
208
|
+
return userTenantsPermission;
|
|
209
|
+
}
|
|
210
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
211
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsService, providedIn: 'root' }); }
|
|
212
|
+
}
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsService, decorators: [{
|
|
214
|
+
type: Injectable,
|
|
215
|
+
args: [{
|
|
216
|
+
providedIn: 'root',
|
|
217
|
+
}]
|
|
218
|
+
}] });
|
|
219
|
+
|
|
220
|
+
/* eslint-disable no-unused-vars */
|
|
221
|
+
var PermissionType;
|
|
222
|
+
(function (PermissionType) {
|
|
223
|
+
PermissionType["VIEW_TENANTS"] = "VIEW_TENANTS";
|
|
224
|
+
PermissionType["CREATE_TENANT"] = "CREATE_TENANT";
|
|
225
|
+
})(PermissionType || (PermissionType = {}));
|
|
226
|
+
var TenantStatus;
|
|
227
|
+
(function (TenantStatus) {
|
|
228
|
+
TenantStatus["ACTIVE"] = "Active";
|
|
229
|
+
TenantStatus["INACTIVE"] = "Inactive";
|
|
230
|
+
})(TenantStatus || (TenantStatus = {}));
|
|
231
|
+
|
|
232
|
+
class TenantPermissionsMapService {
|
|
233
|
+
constructor() {
|
|
234
|
+
this.globalTenantsPermissions = [
|
|
235
|
+
{
|
|
236
|
+
permissionType: PermissionType.VIEW_TENANTS,
|
|
237
|
+
permissionName: 'View Tenant Applications',
|
|
238
|
+
permissionId: 'PERM_SAAPPS_1a2dbbb5-5fe1-4261-85b1-a5373f41075a',
|
|
239
|
+
},
|
|
240
|
+
];
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Returns global permissions mapping for tenants.
|
|
244
|
+
* @return {TenantsPermissions[]}
|
|
245
|
+
* @memberof TenantsPermissionsMapService
|
|
246
|
+
*/
|
|
247
|
+
getGlobalTenantsPermissions() {
|
|
248
|
+
return this.globalTenantsPermissions;
|
|
249
|
+
}
|
|
250
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsMapService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
251
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsMapService, providedIn: 'root' }); }
|
|
252
|
+
}
|
|
253
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsMapService, decorators: [{
|
|
254
|
+
type: Injectable,
|
|
255
|
+
args: [{
|
|
256
|
+
providedIn: 'root',
|
|
257
|
+
}]
|
|
258
|
+
}] });
|
|
259
|
+
|
|
260
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
261
|
+
class TenantApplicationsService {
|
|
262
|
+
constructor(
|
|
263
|
+
// eslint-disable-next-line no-unused-vars
|
|
264
|
+
httpService,
|
|
265
|
+
// eslint-disable-next-line no-unused-vars
|
|
266
|
+
tenantPermissionsService,
|
|
267
|
+
// eslint-disable-next-line no-unused-vars
|
|
268
|
+
tenantPermissionsMapService // eslint-disable-next-line no-empty-function
|
|
269
|
+
) {
|
|
270
|
+
this.httpService = httpService;
|
|
271
|
+
this.tenantPermissionsService = tenantPermissionsService;
|
|
272
|
+
this.tenantPermissionsMapService = tenantPermissionsMapService;
|
|
273
|
+
this.tenantsText = errors;
|
|
274
|
+
this.createTenantsText = createTenant?.errors;
|
|
275
|
+
this.radioOptions = [];
|
|
276
|
+
this.checkBoxOptions = [];
|
|
277
|
+
}
|
|
278
|
+
setAppConfig(apiBaseUrl, userPermission) {
|
|
279
|
+
this.apiBaseUrl = apiBaseUrl;
|
|
280
|
+
this.userPermission = userPermission;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Sets the user tenants permissions
|
|
284
|
+
* @param {TenantsPermissions[]} TenantsPermissions
|
|
285
|
+
* @memberof TenantApplicationsService
|
|
286
|
+
*/
|
|
287
|
+
setUserTenantsPermissions(userTenantsPermissions) {
|
|
288
|
+
this.userTenantsPermissions = userTenantsPermissions;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Returns the user tenants permissions
|
|
292
|
+
* @return {TenantsPermissions[]}
|
|
293
|
+
* @memberof TenantApplicationsService
|
|
294
|
+
*/
|
|
295
|
+
getUserTenantsPermissions() {
|
|
296
|
+
return this.userTenantsPermissions;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Sets the user tenants information
|
|
300
|
+
* @param {TenantInfo} tenantInfo
|
|
301
|
+
* @memberof TenantApplicationsService
|
|
302
|
+
*/
|
|
303
|
+
setSelectedTenantInformation(tenantInfo) {
|
|
304
|
+
this.selectedTenantInfo = tenantInfo;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Returns the tenants information
|
|
308
|
+
* @return {TenantInfo}
|
|
309
|
+
* @memberof TenantApplicationsService
|
|
310
|
+
*/
|
|
311
|
+
getSelectedTenantInformation() {
|
|
312
|
+
return this.selectedTenantInfo;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Filter permissions
|
|
316
|
+
* @param usersPermissions
|
|
317
|
+
* @returns @memberof TenantApplicationsService
|
|
318
|
+
*/
|
|
319
|
+
filterPermission(usersPermissions) {
|
|
320
|
+
return this.tenantPermissionsService?.filterTenantsPermissions(usersPermissions, this.tenantPermissionsMapService?.getGlobalTenantsPermissions());
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Validating access for tenants
|
|
324
|
+
* @param permissionType Permission Type to validate permission
|
|
325
|
+
* @param mappedUserPermissions Permission which are mapped with tenants
|
|
326
|
+
* @returns true if permission is granted
|
|
327
|
+
*/
|
|
328
|
+
validateAccess(permissionType, permissions) {
|
|
329
|
+
return this.tenantPermissionsService.validateAccessPermission(permissionType, permissions);
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Gets the tenants.
|
|
333
|
+
* @param {GetTenantsPayload} payload
|
|
334
|
+
* @return {Observable<GetTenantsResponse>}
|
|
335
|
+
* @memberof TenantApplicationsService
|
|
336
|
+
*/
|
|
337
|
+
getTenantsList(payload) {
|
|
338
|
+
return this.httpService
|
|
339
|
+
.postData(`${this.apiBaseUrl}/configurations/config/application`, payload)
|
|
340
|
+
.pipe(map((response) => {
|
|
341
|
+
return response;
|
|
342
|
+
}), catchError((error) => {
|
|
343
|
+
throw error;
|
|
344
|
+
}));
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Gets list of features from server using HttpService.
|
|
348
|
+
* @return {Observable<GetFeaturesResponse>}
|
|
349
|
+
* @memberof TenantApplicationsService
|
|
350
|
+
*/
|
|
351
|
+
getFeatures() {
|
|
352
|
+
return this.httpService
|
|
353
|
+
.getData(`${this.apiBaseUrl}/configurations/config/features`)
|
|
354
|
+
.pipe(map((response) => {
|
|
355
|
+
return response;
|
|
356
|
+
}), catchError((error) => {
|
|
357
|
+
throw error;
|
|
358
|
+
}));
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Gets list of application types from server using HttpService.
|
|
362
|
+
* @return {Observable<GetAppTypesResponse>}
|
|
363
|
+
* @memberof TenantApplicationsService
|
|
364
|
+
*/
|
|
365
|
+
getApplicationTypes() {
|
|
366
|
+
return this.httpService
|
|
367
|
+
.getData(`${this.apiBaseUrl}/configurations/config/app_type`)
|
|
368
|
+
.pipe(map((response) => {
|
|
369
|
+
return response;
|
|
370
|
+
}), catchError((error) => {
|
|
371
|
+
throw error;
|
|
372
|
+
}));
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Posts tenant application form data to server using HttpService for creating new tenant application.
|
|
376
|
+
* @param {CreateTenantPayload} createTenantPayload
|
|
377
|
+
* @return {Observable<CreateTenantResponse>}
|
|
378
|
+
* @memberof TenantApplicationsService
|
|
379
|
+
*/
|
|
380
|
+
createTenant(createTenantPayload) {
|
|
381
|
+
return this.httpService
|
|
382
|
+
.postData(`${this.apiBaseUrl}/configurations/config/createTenant`, createTenantPayload)
|
|
383
|
+
.pipe(map((response) => {
|
|
384
|
+
return response;
|
|
385
|
+
}), catchError((error) => {
|
|
386
|
+
throw error;
|
|
387
|
+
}));
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Constructs the checkbox options from features list from server.
|
|
391
|
+
* @param {FeaturesList[]} features
|
|
392
|
+
* @returns {CheckboxOption[]}
|
|
393
|
+
*/
|
|
394
|
+
getFeatureOptions(features) {
|
|
395
|
+
this.checkBoxOptions = [];
|
|
396
|
+
features?.forEach((feature) => {
|
|
397
|
+
this.checkBoxOptions?.push({
|
|
398
|
+
id: feature?.featureId,
|
|
399
|
+
name: feature?.featureName,
|
|
400
|
+
checked: feature?.isDefault,
|
|
401
|
+
disabled: feature?.isDefault,
|
|
402
|
+
});
|
|
403
|
+
});
|
|
404
|
+
return this.checkBoxOptions;
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Constructs the radio options from application types from server.
|
|
408
|
+
* @param {AppTypeConfig[]} appTypeOptions
|
|
409
|
+
* @returns {RadioOption[]}
|
|
410
|
+
*/
|
|
411
|
+
getApplicationTypeOptions(appTypeOptions) {
|
|
412
|
+
this.radioOptions = [];
|
|
413
|
+
appTypeOptions?.forEach((appType) => {
|
|
414
|
+
this.radioOptions?.push({
|
|
415
|
+
id: appType?.configFieldId,
|
|
416
|
+
label: appType?.configFieldValue?.type,
|
|
417
|
+
});
|
|
418
|
+
});
|
|
419
|
+
return this.radioOptions;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Constructs the selected features id's.
|
|
423
|
+
* @param {boolean[]} featureSelectionValues
|
|
424
|
+
* @returns {FeatureId[]}
|
|
425
|
+
*/
|
|
426
|
+
getFeatureIds(featureSelectionValues) {
|
|
427
|
+
const featureIds = [];
|
|
428
|
+
featureSelectionValues?.forEach((featureValue, index) => {
|
|
429
|
+
if (featureValue) {
|
|
430
|
+
featureIds.push({
|
|
431
|
+
featureId: this.checkBoxOptions[index]?.id,
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
});
|
|
435
|
+
return featureIds;
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Sets the tenant basic information.
|
|
439
|
+
* @param {CreateTenantRequestPayload} createTenantPayload
|
|
440
|
+
*/
|
|
441
|
+
setTenantBasicInfo(createTenantPayload) {
|
|
442
|
+
this.tenantBasicInfo = createTenantPayload?.payload;
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Returns the tenant basic information.
|
|
446
|
+
*/
|
|
447
|
+
get getTenantBasicInfo() {
|
|
448
|
+
return this.tenantBasicInfo;
|
|
449
|
+
}
|
|
450
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsService, deps: [{ token: i1.HttpService }, { token: TenantPermissionsService }, { token: TenantPermissionsMapService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
451
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsService, providedIn: 'root' }); }
|
|
452
|
+
}
|
|
453
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsService, decorators: [{
|
|
454
|
+
type: Injectable,
|
|
455
|
+
args: [{
|
|
456
|
+
providedIn: 'root',
|
|
457
|
+
}]
|
|
458
|
+
}], ctorParameters: function () { return [{ type: i1.HttpService }, { type: TenantPermissionsService }, { type: TenantPermissionsMapService }]; } });
|
|
459
|
+
|
|
460
|
+
class CreateTenantApplicationComponent {
|
|
461
|
+
constructor(
|
|
462
|
+
// eslint-disable-next-line no-unused-vars
|
|
463
|
+
fileUploadService,
|
|
464
|
+
// eslint-disable-next-line no-unused-vars
|
|
465
|
+
tenantAppService,
|
|
466
|
+
// eslint-disable-next-line no-unused-vars
|
|
467
|
+
sharedService // eslint-disable-next-line no-empty-function
|
|
468
|
+
) {
|
|
469
|
+
this.fileUploadService = fileUploadService;
|
|
470
|
+
this.tenantAppService = tenantAppService;
|
|
471
|
+
this.sharedService = sharedService;
|
|
472
|
+
this.destroy$ = new Subject();
|
|
473
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
474
|
+
this.constants = screenTexts;
|
|
475
|
+
this.createTenantTexts = this.constants?.createTenant;
|
|
476
|
+
this.leftButtonLabel = this.createTenantTexts?.label?.leftButtonLabel;
|
|
477
|
+
this.rightButtonLabel = this.createTenantTexts?.label?.rightButtonLabel;
|
|
478
|
+
this.colWidth = { xs: 12, xl: 12, sm: 12, md: 12, lg: 12 };
|
|
479
|
+
this.actionButtonAlign = AlignType.LEFT;
|
|
480
|
+
this.submitFormResponse = new EventEmitter();
|
|
481
|
+
this.formCancel = new EventEmitter();
|
|
482
|
+
this.allowedFileTypes = [
|
|
483
|
+
AllowedFileTypes.JPG,
|
|
484
|
+
AllowedFileTypes.PNG,
|
|
485
|
+
AllowedFileTypes.SVG,
|
|
486
|
+
];
|
|
487
|
+
}
|
|
488
|
+
ngOnInit() {
|
|
489
|
+
this.getFeatures();
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Gets the list of features and updates the form control.
|
|
493
|
+
* @memberof CreateTenantApplicationComponent
|
|
494
|
+
*/
|
|
495
|
+
getFeatures() {
|
|
496
|
+
this.tenantAppService
|
|
497
|
+
.getFeatures()
|
|
498
|
+
.pipe(takeUntil(this.destroy$))
|
|
499
|
+
.subscribe({
|
|
500
|
+
next: (response) => {
|
|
501
|
+
if (response?.status) {
|
|
502
|
+
this.featuresOptions = this.tenantAppService.getFeatureOptions(response?.body);
|
|
503
|
+
this.getApplicationTypes();
|
|
504
|
+
}
|
|
505
|
+
},
|
|
506
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
507
|
+
error: (error) => {
|
|
508
|
+
this.sharedService.handleErrors(error, this.createTenantTexts?.errors);
|
|
509
|
+
},
|
|
510
|
+
});
|
|
511
|
+
}
|
|
512
|
+
/**
|
|
513
|
+
* Gets the application/tenant types and updates the form control.
|
|
514
|
+
* @memberof CreateTenantApplicationComponent
|
|
515
|
+
*/
|
|
516
|
+
getApplicationTypes() {
|
|
517
|
+
this.tenantAppService
|
|
518
|
+
.getApplicationTypes()
|
|
519
|
+
.pipe(takeUntil(this.destroy$))
|
|
520
|
+
.subscribe({
|
|
521
|
+
next: (response) => {
|
|
522
|
+
if (response?.status) {
|
|
523
|
+
this.appTypeOptions =
|
|
524
|
+
this.tenantAppService.getApplicationTypeOptions(response?.body);
|
|
525
|
+
this.initializeCreateTenantFormGroup();
|
|
526
|
+
}
|
|
527
|
+
},
|
|
528
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
529
|
+
error: (error) => {
|
|
530
|
+
this.sharedService.handleErrors(error, this.createTenantTexts?.errors);
|
|
531
|
+
},
|
|
532
|
+
});
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* Initialize the create tenant form group array.
|
|
536
|
+
* @memberof CreateTenantApplicationComponent
|
|
537
|
+
*/
|
|
538
|
+
initializeCreateTenantFormGroup() {
|
|
539
|
+
this.createTenantFormGroup = {
|
|
540
|
+
formGroup: [
|
|
541
|
+
{
|
|
542
|
+
legend: '',
|
|
543
|
+
controls: [
|
|
544
|
+
{
|
|
545
|
+
type: FormControlType.INPUT,
|
|
546
|
+
label: this.createTenantTexts?.label?.appTitle + '*',
|
|
547
|
+
controlName: 'appTitle',
|
|
548
|
+
value: '',
|
|
549
|
+
validation: [
|
|
550
|
+
Validators.required,
|
|
551
|
+
Validators.maxLength(TenantsValidationPatterns.appTitleMaxLength),
|
|
552
|
+
],
|
|
553
|
+
supportMessage: this.createTenantTexts?.supportText?.appTitle,
|
|
554
|
+
requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
|
|
555
|
+
maxErrorMessage: this.createTenantTexts?.message?.error?.limit?.appTitleMaxChars,
|
|
556
|
+
ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appTitle,
|
|
557
|
+
ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.appTitle,
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
type: FormControlType.INPUT,
|
|
561
|
+
label: this.createTenantTexts?.label?.appId + '*',
|
|
562
|
+
controlName: 'appId',
|
|
563
|
+
value: '',
|
|
564
|
+
validation: [
|
|
565
|
+
Validators.required,
|
|
566
|
+
Validators.maxLength(TenantsValidationPatterns.appIdMaxLength),
|
|
567
|
+
Validators.pattern(TenantsValidationPatterns.alphaNumeric),
|
|
568
|
+
],
|
|
569
|
+
supportMessage: this.createTenantTexts?.supportText?.appId,
|
|
570
|
+
requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
|
|
571
|
+
maxErrorMessage: this.createTenantTexts?.message?.error?.limit?.appIdMaxChars,
|
|
572
|
+
patternErrorMessage: this.createTenantTexts?.message?.error?.pattern?.appId,
|
|
573
|
+
ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appId,
|
|
574
|
+
ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.appId,
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
type: FormControlType?.FILE_UPLOAD,
|
|
578
|
+
label: this.createTenantTexts?.label?.appLogo + '*',
|
|
579
|
+
controlName: 'appLogo',
|
|
580
|
+
requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
|
|
581
|
+
value: '',
|
|
582
|
+
placeholder: '',
|
|
583
|
+
supportMessage: this.createTenantTexts?.supportText?.appLogo,
|
|
584
|
+
validation: [Validators.required],
|
|
585
|
+
ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appLogo,
|
|
586
|
+
ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.appLogo,
|
|
587
|
+
isMultiFileUpload: false,
|
|
588
|
+
maxUploadFileSize: 2,
|
|
589
|
+
maxFileSizeErrorMessage: this.createTenantTexts?.message?.error?.limit?.appLogoMaxSize,
|
|
590
|
+
allowedFileTypeErrorMessage: this.createTenantTexts?.message?.error?.invalidFile,
|
|
591
|
+
allowedFileTypes: this.allowedFileTypes,
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
type: FormControlType.INPUT,
|
|
595
|
+
label: this.createTenantTexts?.label?.appHeading + '*',
|
|
596
|
+
controlName: 'appHeading',
|
|
597
|
+
value: '',
|
|
598
|
+
validation: [
|
|
599
|
+
Validators.required,
|
|
600
|
+
Validators.maxLength(TenantsValidationPatterns.appHeadingMaxLength),
|
|
601
|
+
],
|
|
602
|
+
supportMessage: this.createTenantTexts?.supportText?.appHeading,
|
|
603
|
+
requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
|
|
604
|
+
maxErrorMessage: this.createTenantTexts?.message?.error?.limit
|
|
605
|
+
?.appHeadingMaxChars,
|
|
606
|
+
patternErrorMessage: this.createTenantTexts?.message?.error?.pattern?.email,
|
|
607
|
+
ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appHeading,
|
|
608
|
+
ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.appHeading,
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
type: FormControlType.TEXT_AREA,
|
|
612
|
+
label: this.createTenantTexts?.label?.appDescription + '*',
|
|
613
|
+
controlName: 'appDescription',
|
|
614
|
+
value: '',
|
|
615
|
+
validation: [
|
|
616
|
+
Validators.required,
|
|
617
|
+
Validators.maxLength(TenantsValidationPatterns.appDescriptionMaxLength),
|
|
618
|
+
],
|
|
619
|
+
supportMessage: this.createTenantTexts?.supportText?.appDescription,
|
|
620
|
+
requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
|
|
621
|
+
maxErrorMessage: this.createTenantTexts?.message?.error?.limit
|
|
622
|
+
?.appDescriptionMaxChars,
|
|
623
|
+
maxCharCount: TenantsValidationPatterns.appDescriptionMaxLength,
|
|
624
|
+
ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appDescription,
|
|
625
|
+
ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById
|
|
626
|
+
?.appDescription,
|
|
627
|
+
ariaMultiline: true,
|
|
628
|
+
isResize: true,
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
type: FormControlType.COLOR_PICKER,
|
|
632
|
+
label: this.createTenantTexts?.label?.appBgColor + '*',
|
|
633
|
+
controlName: 'backgroundColor',
|
|
634
|
+
value: '',
|
|
635
|
+
placeholder: '',
|
|
636
|
+
supportMessage: this.createTenantTexts?.supportText?.appBgColor,
|
|
637
|
+
validation: [Validators.required, validColorValidator()],
|
|
638
|
+
requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
|
|
639
|
+
invalidColorErrorMessage: this.createTenantTexts?.message?.error?.invalidColor,
|
|
640
|
+
ariaLabel: this.createTenantTexts?.supportText?.appBgColor,
|
|
641
|
+
ariaDescribedById: this.createTenantTexts?.supportText?.appBgColor,
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
type: FormControlType.INPUT,
|
|
645
|
+
label: this.createTenantTexts?.label?.appHelpLink + '*',
|
|
646
|
+
controlName: 'appHelpLink',
|
|
647
|
+
value: '',
|
|
648
|
+
validation: [
|
|
649
|
+
Validators.required,
|
|
650
|
+
Validators.pattern(TenantsValidationPatterns.url),
|
|
651
|
+
],
|
|
652
|
+
supportMessage: this.createTenantTexts?.supportText?.appHelpLink,
|
|
653
|
+
requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
|
|
654
|
+
patternErrorMessage: this.createTenantTexts?.message?.error?.pattern?.appHelpLink,
|
|
655
|
+
ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appHelpLink,
|
|
656
|
+
ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.appHelpLink,
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
type: FormControlType.CHECKBOX,
|
|
660
|
+
label: this.createTenantTexts?.label?.featuresList + '*',
|
|
661
|
+
controlName: 'features',
|
|
662
|
+
checkboxOptions: this.featuresOptions,
|
|
663
|
+
minSelectionRequired: 1,
|
|
664
|
+
ariaLabel: this.createTenantTexts?.label?.ariaLabel?.featuresList,
|
|
665
|
+
ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.featuresList,
|
|
666
|
+
supportMessage: this.createTenantTexts?.supportText?.featuresList,
|
|
667
|
+
requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
|
|
668
|
+
validation: [Validators.required],
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
type: FormControlType.INPUT,
|
|
672
|
+
label: this.createTenantTexts?.label?.domainURL + '*',
|
|
673
|
+
controlName: 'appDomainUrl',
|
|
674
|
+
value: '',
|
|
675
|
+
validation: [
|
|
676
|
+
Validators.required,
|
|
677
|
+
Validators.pattern(TenantsValidationPatterns.url),
|
|
678
|
+
],
|
|
679
|
+
supportMessage: this.createTenantTexts?.supportText?.domainURL,
|
|
680
|
+
requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
|
|
681
|
+
patternErrorMessage: this.createTenantTexts?.message?.error?.pattern?.appDomainUrl,
|
|
682
|
+
ariaLabel: this.createTenantTexts?.label?.ariaLabel?.domainURL,
|
|
683
|
+
ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.domainURL,
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
type: FormControlType.RADIO,
|
|
687
|
+
label: this.createTenantTexts?.label?.appType + '*',
|
|
688
|
+
controlName: 'appType',
|
|
689
|
+
value: '',
|
|
690
|
+
radioOptions: this.appTypeOptions,
|
|
691
|
+
validation: [Validators.required],
|
|
692
|
+
requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
|
|
693
|
+
ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appType,
|
|
694
|
+
ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.appType,
|
|
695
|
+
},
|
|
696
|
+
],
|
|
697
|
+
},
|
|
698
|
+
],
|
|
699
|
+
};
|
|
700
|
+
}
|
|
701
|
+
/**
|
|
702
|
+
* Creates tenant on form submission.
|
|
703
|
+
* @param {FormGroup[]} form
|
|
704
|
+
* @memberof CreateTenantApplicationComponent
|
|
705
|
+
*/
|
|
706
|
+
onCreateTenantFormSubmit(form) {
|
|
707
|
+
form[0]?.markAllAsTouched();
|
|
708
|
+
if (form[0].status === FormStatus.VALID) {
|
|
709
|
+
this.createTenantPayload = this.getCreateTenantPayload(form[0].getRawValue());
|
|
710
|
+
if (this.file)
|
|
711
|
+
this.getFileUploadPresignedUrl(this.file);
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
/**
|
|
715
|
+
* Constructs create tenant payload from the form data and returns.
|
|
716
|
+
* @param {*} formData
|
|
717
|
+
* @return {CreateTenantRequestPayload}
|
|
718
|
+
* @memberof CreateTenantApplicationComponent
|
|
719
|
+
*/
|
|
720
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
721
|
+
getCreateTenantPayload(formData) {
|
|
722
|
+
const payload = {
|
|
723
|
+
payload: {
|
|
724
|
+
appTitle: formData?.appTitle,
|
|
725
|
+
appId: formData?.appId,
|
|
726
|
+
appHeading: formData?.appHeading,
|
|
727
|
+
appDescription: formData?.appDescription,
|
|
728
|
+
backgroundColor: formData?.backgroundColor,
|
|
729
|
+
appLogo: formData?.appLogo,
|
|
730
|
+
appDomainUrl: formData?.appDomainUrl,
|
|
731
|
+
appHelpLink: formData?.appHelpLink,
|
|
732
|
+
appType: this.selectedAppTypeOption?.id,
|
|
733
|
+
features: this.tenantAppService.getFeatureIds(formData?.features),
|
|
734
|
+
},
|
|
735
|
+
};
|
|
736
|
+
return payload;
|
|
737
|
+
}
|
|
738
|
+
/**
|
|
739
|
+
* Gets create tenant form group reference and disables default features.
|
|
740
|
+
* @param {FormGroup[]} form
|
|
741
|
+
* @memberof CreateTenantApplicationComponent
|
|
742
|
+
*/
|
|
743
|
+
getCreateTenantFormGroupRef(form) {
|
|
744
|
+
this.createTenantFormGroupRef = form[0];
|
|
745
|
+
const featuresFormArray = this.createTenantFormGroupRef?.controls['features'];
|
|
746
|
+
this.featuresOptions?.forEach((option, index) => {
|
|
747
|
+
if (option?.disabled) {
|
|
748
|
+
featuresFormArray?.at(index).disable();
|
|
749
|
+
}
|
|
750
|
+
});
|
|
751
|
+
}
|
|
752
|
+
/**
|
|
753
|
+
* Updates createTenantFormGroupRef on add tenant form change event.
|
|
754
|
+
* @param {FormGroup[]} form
|
|
755
|
+
* @memberof CreateTenantApplicationComponent
|
|
756
|
+
*/
|
|
757
|
+
onCreateTenantFormChange(form) {
|
|
758
|
+
this.createTenantFormGroupRef = form[0];
|
|
759
|
+
}
|
|
760
|
+
/**
|
|
761
|
+
* Emits form cancel event.
|
|
762
|
+
* @memberof CreateTenantApplicationComponent
|
|
763
|
+
*/
|
|
764
|
+
onFormCancel() {
|
|
765
|
+
this.formCancel.emit();
|
|
766
|
+
}
|
|
767
|
+
/**
|
|
768
|
+
* Gets the selected file when the file is browsed and on formFileUpload event is triggered.
|
|
769
|
+
* @param {File | FileList} file
|
|
770
|
+
*/
|
|
771
|
+
onFormFileUpload(file) {
|
|
772
|
+
this.file = file;
|
|
773
|
+
}
|
|
774
|
+
/**
|
|
775
|
+
* Gets pre-signed URL to upload the selected file to AWS S3 bucket.
|
|
776
|
+
* @param {File | FileList} file
|
|
777
|
+
*/
|
|
778
|
+
getFileUploadPresignedUrl(file) {
|
|
779
|
+
this.fileUploadService
|
|
780
|
+
.getFileUploadPresignedUrl(file)
|
|
781
|
+
.pipe(takeUntil(this.destroy$))
|
|
782
|
+
.subscribe({
|
|
783
|
+
next: (response) => {
|
|
784
|
+
this.fileUploadPresignedUrl = response?.body;
|
|
785
|
+
if (this.fileUploadPresignedUrl)
|
|
786
|
+
this.uploadFileToS3(file);
|
|
787
|
+
},
|
|
788
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, no-unused-vars, @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function, no-empty-function
|
|
789
|
+
error: (error) => {
|
|
790
|
+
this.sharedService.handleErrors(error, this.createTenantTexts?.errors);
|
|
791
|
+
},
|
|
792
|
+
});
|
|
793
|
+
}
|
|
794
|
+
/**
|
|
795
|
+
* Uploads the file to AWS S3 bucket and submit the form data to API to create new tenant.
|
|
796
|
+
* @param {File | FileList} file
|
|
797
|
+
*/
|
|
798
|
+
uploadFileToS3(file) {
|
|
799
|
+
this.fileUploadService
|
|
800
|
+
.uploadFileToS3(this.fileUploadPresignedUrl, file)
|
|
801
|
+
.pipe(takeUntil(this.destroy$))
|
|
802
|
+
.subscribe({
|
|
803
|
+
// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
|
|
804
|
+
next: (response) => {
|
|
805
|
+
this.fileUploadService.setFileUploadStatus(true);
|
|
806
|
+
this.tenantAppService
|
|
807
|
+
.createTenant(this.createTenantPayload)
|
|
808
|
+
.pipe(takeUntil(this.destroy$))
|
|
809
|
+
.subscribe({
|
|
810
|
+
next: (response) => {
|
|
811
|
+
if (response.status) {
|
|
812
|
+
this.tenantAppService.setTenantBasicInfo(this.createTenantPayload);
|
|
813
|
+
this.submitFormResponse.emit(response);
|
|
814
|
+
}
|
|
815
|
+
},
|
|
816
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
817
|
+
error: (error) => {
|
|
818
|
+
this.sharedService.handleErrors(error, this.createTenantTexts?.errors);
|
|
819
|
+
},
|
|
820
|
+
});
|
|
821
|
+
},
|
|
822
|
+
// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
|
|
823
|
+
error: (error) => {
|
|
824
|
+
this.fileUploadService.setFileUploadStatus(false);
|
|
825
|
+
this.sharedService.handleErrors(error, this.createTenantTexts?.errors);
|
|
826
|
+
},
|
|
827
|
+
});
|
|
828
|
+
}
|
|
829
|
+
/**
|
|
830
|
+
* Triggers when the color picker values has been changed.
|
|
831
|
+
* @param {string} color
|
|
832
|
+
*/
|
|
833
|
+
onColorPickerChange(color) {
|
|
834
|
+
this.selectedColor = color;
|
|
835
|
+
}
|
|
836
|
+
/**
|
|
837
|
+
* Triggers when the radio option has been changed.
|
|
838
|
+
* @param {RadioOption} radioOption
|
|
839
|
+
*/
|
|
840
|
+
onRadioOptionSelected(radioOption) {
|
|
841
|
+
this.selectedAppTypeOption = radioOption;
|
|
842
|
+
}
|
|
843
|
+
/**
|
|
844
|
+
* Implementation of ngOnDestroy lifecycle hook method to unsubscribe the open observable subscriptions.
|
|
845
|
+
* @memberof CreateTenantApplicationComponent
|
|
846
|
+
*/
|
|
847
|
+
ngOnDestroy() {
|
|
848
|
+
this.destroy$.next(true);
|
|
849
|
+
this.destroy$.unsubscribe();
|
|
850
|
+
}
|
|
851
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateTenantApplicationComponent, deps: [{ token: i1$1.FileUploadService }, { token: TenantApplicationsService }, { token: i3.SharedService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
852
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateTenantApplicationComponent, isStandalone: true, selector: "ieeesa-create-tenant-application", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n *ngIf=\"createTenantFormGroup\"\r\n class=\"ieeesa-create-tenant-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createTenantFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onCreateTenantFormSubmit($event)\"\r\n (formChange)=\"onCreateTenantFormChange($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateTenantFormGroupRef($event)\"\r\n (formFileUpload)=\"onFormFileUpload($event)\"\r\n (formColorPickerChange)=\"onColorPickerChange($event)\"\r\n (formRadioOptionSelected)=\"onRadioOptionSelected($event)\"\r\n></ieeesa-dynamic-form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-modal-dialog.ieeesa-create-tenant{max-width:50vw!important}.ieeesa-modal-dialog.ieeesa-create-tenant .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-tenant .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal{box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080;padding-bottom:.5em}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .mat-mdc-dialog-content{padding:1.5em 1em .75em!important}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal-title{margin-left:15px!important}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em;padding:2em 1em .75em;margin-top:2em}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding-top:0!important}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field__content,.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mdc-label{color:#49454f}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mdc-label{padding-left:0}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field__resize{resize:vertical}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.app-description,.app-logo){width:90%}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .mat-mdc-form-field-flex{width:62.5em}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-input-field .mat-mdc-form-field{display:flex;min-height:40px}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-input-field .mat-mdc-text-field-wrapper{padding:.5em 1em}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-input-field__label,.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-input-field__support-text{color:#49454f}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-form-error--text{padding:.25em 1em 0}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-input-field__content{position:relative;bottom:10px}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-input-field__icon--warning{position:relative;bottom:6px}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.app-description,.app-logo){width:100%}}.ieeesa-color-picker .preview .circle.colornull{background:linear-gradient(135deg,#ecececb3 0% 45%,#f4f3f3 50%,#ecececb3 55% 100%)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "actionButtonAlign"], outputs: ["formSubmit", "formChange", "formInput", "formLeftButtonClicked", "formSearchApply", "formGroupsReference", "dropdownChange", "formCheckboxSelection", "formDateSelected", "formSelectSearch", "formControlChange", "formAutoCompleteSearch", "formAutoCompleteClearSearchValue", "autoCompleteOptionSelected", "formAfterContentInit", "formSelectedDateRange", "addFormGroup", "formTimeSelected", "supportTextLinkClick", "formSlideToggleChange", "formFileUpload", "dropdownOpenedChange", "formColorPickerChange", "formRadioOptionSelected"], exportAs: ["dynamicForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
853
|
+
}
|
|
854
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateTenantApplicationComponent, decorators: [{
|
|
855
|
+
type: Component,
|
|
856
|
+
args: [{ selector: 'ieeesa-create-tenant-application', standalone: true, imports: [CommonModule, DynamicFormComponent], encapsulation: ViewEncapsulation.None, template: "<ieeesa-dynamic-form\r\n *ngIf=\"createTenantFormGroup\"\r\n class=\"ieeesa-create-tenant-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createTenantFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onCreateTenantFormSubmit($event)\"\r\n (formChange)=\"onCreateTenantFormChange($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateTenantFormGroupRef($event)\"\r\n (formFileUpload)=\"onFormFileUpload($event)\"\r\n (formColorPickerChange)=\"onColorPickerChange($event)\"\r\n (formRadioOptionSelected)=\"onRadioOptionSelected($event)\"\r\n></ieeesa-dynamic-form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-modal-dialog.ieeesa-create-tenant{max-width:50vw!important}.ieeesa-modal-dialog.ieeesa-create-tenant .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-tenant .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal{box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080;padding-bottom:.5em}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .mat-mdc-dialog-content{padding:1.5em 1em .75em!important}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal-title{margin-left:15px!important}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em;padding:2em 1em .75em;margin-top:2em}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding-top:0!important}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field__content,.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mdc-label{color:#49454f}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mdc-label{padding-left:0}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field__resize{resize:vertical}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.app-description,.app-logo){width:90%}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .mat-mdc-form-field-flex{width:62.5em}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-input-field .mat-mdc-form-field{display:flex;min-height:40px}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-input-field .mat-mdc-text-field-wrapper{padding:.5em 1em}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-input-field__label,.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-input-field__support-text{color:#49454f}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-form-error--text{padding:.25em 1em 0}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-input-field__content{position:relative;bottom:10px}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-input-field__icon--warning{position:relative;bottom:6px}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.app-description,.app-logo){width:100%}}.ieeesa-color-picker .preview .circle.colornull{background:linear-gradient(135deg,#ecececb3 0% 45%,#f4f3f3 50%,#ecececb3 55% 100%)!important}\n"] }]
|
|
857
|
+
}], ctorParameters: function () { return [{ type: i1$1.FileUploadService }, { type: TenantApplicationsService }, { type: i3.SharedService }]; }, propDecorators: { dynamicFormComponent: [{
|
|
858
|
+
type: ViewChild,
|
|
859
|
+
args: [DynamicFormComponent]
|
|
860
|
+
}], submitFormResponse: [{
|
|
861
|
+
type: Output
|
|
862
|
+
}], formCancel: [{
|
|
863
|
+
type: Output
|
|
864
|
+
}] } });
|
|
865
|
+
|
|
866
|
+
/* eslint-disable no-empty-function */
|
|
867
|
+
class TenantApplicationsComponent {
|
|
868
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
869
|
+
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 }] }); }
|
|
870
|
+
}
|
|
871
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsComponent, decorators: [{
|
|
872
|
+
type: Component,
|
|
873
|
+
args: [{ selector: 'ieeesa-tenant-applications', standalone: true, imports: [CommonModule, MatButtonModule], template: "" }]
|
|
874
|
+
}] });
|
|
875
|
+
|
|
876
|
+
/* eslint-disable no-unused-vars */
|
|
877
|
+
var AppType;
|
|
878
|
+
(function (AppType) {
|
|
879
|
+
AppType["GENERIC"] = "Generic";
|
|
880
|
+
AppType["STANDALONE"] = "Standalone";
|
|
881
|
+
})(AppType || (AppType = {}));
|
|
882
|
+
|
|
883
|
+
class TenantApplicationsModule {
|
|
884
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
885
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsModule }); }
|
|
886
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsModule }); }
|
|
887
|
+
}
|
|
888
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsModule, decorators: [{
|
|
889
|
+
type: NgModule,
|
|
890
|
+
args: [{
|
|
891
|
+
declarations: [],
|
|
892
|
+
imports: [],
|
|
893
|
+
exports: [],
|
|
894
|
+
}]
|
|
895
|
+
}] });
|
|
896
|
+
|
|
897
|
+
/*
|
|
898
|
+
* Public API Surface of tenants
|
|
899
|
+
*/
|
|
900
|
+
|
|
901
|
+
/**
|
|
902
|
+
* Generated bundle index. Do not edit.
|
|
903
|
+
*/
|
|
904
|
+
|
|
905
|
+
export { AppType, CreateTenantApplicationComponent, FormStatus, TenantApplicationsComponent, TenantApplicationsModule, TenantApplicationsService, TenantsValidationPatterns };
|
|
906
|
+
//# sourceMappingURL=ieeesa-npm-tenants.mjs.map
|