@ieeesa-npm/tenants 0.4.6 → 0.5.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.
Files changed (142) hide show
  1. package/esm2022/ieeesa-npm-tenants.mjs +5 -0
  2. package/esm2022/lib/assets/constants.json +457 -0
  3. package/esm2022/lib/assets/tenant-validations.mjs +17 -0
  4. package/esm2022/lib/components/create-modify-group-type/create-modify-group-type.component.mjs +476 -0
  5. package/esm2022/lib/components/create-modify-role/create-modify-role.component.mjs +279 -0
  6. package/esm2022/lib/components/create-tenant-application/create-tenant-application.component.mjs +512 -0
  7. package/esm2022/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.mjs +391 -0
  8. package/esm2022/lib/components/tenant-basic-details/tenant-basic-details.component.mjs +94 -0
  9. package/esm2022/lib/components/view-tenant-details/view-tenant-details.component.mjs +804 -0
  10. package/esm2022/lib/components/view-tenant-group-types/view-tenant-group-types.component.mjs +194 -0
  11. package/esm2022/lib/components/view-tenants-list/view-tenants-list.component.mjs +335 -0
  12. package/esm2022/lib/models/app-type-config.model.mjs +2 -0
  13. package/esm2022/lib/models/app-type.model.mjs +7 -0
  14. package/esm2022/lib/models/create-group-type-config.model.mjs +22 -0
  15. package/esm2022/lib/models/create-group-type.model.mjs +2 -0
  16. package/esm2022/lib/models/feature-permission-id.model.mjs +8 -0
  17. package/esm2022/lib/models/features.model.mjs +2 -0
  18. package/esm2022/lib/models/permission-type.model.mjs +12 -0
  19. package/esm2022/lib/models/role-menu-action.model.mjs +7 -0
  20. package/esm2022/lib/models/role-type.model.mjs +2 -0
  21. package/esm2022/lib/models/roles-and-permissions-table-type.model.mjs +7 -0
  22. package/esm2022/lib/models/roles-and-permissions.model.mjs +2 -0
  23. package/esm2022/lib/models/route-config.model.mjs +2 -0
  24. package/esm2022/lib/models/table-column-schema-view-tenant-list.model.mjs +16 -0
  25. package/esm2022/lib/models/tenant-function-type.model.mjs +12 -0
  26. package/esm2022/lib/models/tenant.model.mjs +2 -0
  27. package/esm2022/lib/models/tenants-permission.model.mjs +2 -0
  28. package/esm2022/lib/models/update-tenant-status.model.mjs +2 -0
  29. package/esm2022/lib/models/view-tenant-group-types.model.mjs +11 -0
  30. package/esm2022/lib/services/tenant-applications.service.mjs +618 -0
  31. package/esm2022/lib/services/tenant-permissions-map.service.mjs +36 -0
  32. package/esm2022/lib/services/tenant-permissions.service.mjs +38 -0
  33. package/esm2022/lib/tenant-applications.component.mjs +14 -0
  34. package/esm2022/lib/tenant-applications.module.mjs +16 -0
  35. package/esm2022/public-api.mjs +36 -0
  36. package/fesm2022/ieeesa-npm-tenants.mjs +4307 -0
  37. package/fesm2022/ieeesa-npm-tenants.mjs.map +1 -0
  38. package/index.d.ts +5 -0
  39. package/lib/assets/tenant-validations.d.ts +15 -0
  40. package/lib/components/create-modify-group-type/create-modify-group-type.component.d.ts +129 -0
  41. package/lib/components/create-modify-role/create-modify-role.component.d.ts +103 -0
  42. package/lib/components/create-tenant-application/create-tenant-application.component.d.ts +128 -0
  43. package/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.d.ts +106 -0
  44. package/lib/components/tenant-basic-details/tenant-basic-details.component.d.ts +474 -0
  45. package/lib/components/view-tenant-details/view-tenant-details.component.d.ts +250 -0
  46. package/lib/components/view-tenant-group-types/view-tenant-group-types.component.d.ts +63 -0
  47. package/lib/components/view-tenants-list/view-tenants-list.component.d.ts +134 -0
  48. package/lib/models/app-type-config.model.d.ts +14 -0
  49. package/lib/models/app-type.model.d.ts +4 -0
  50. package/lib/models/create-group-type-config.model.d.ts +16 -0
  51. package/lib/models/create-group-type.model.d.ts +49 -0
  52. package/lib/models/feature-permission-id.model.d.ts +4 -0
  53. package/lib/models/features.model.d.ts +15 -0
  54. package/lib/models/permission-type.model.d.ts +8 -0
  55. package/lib/models/role-menu-action.model.d.ts +4 -0
  56. package/lib/models/role-type.model.d.ts +27 -0
  57. package/lib/models/roles-and-permissions-table-type.model.d.ts +4 -0
  58. package/lib/models/roles-and-permissions.model.d.ts +119 -0
  59. package/lib/models/route-config.model.d.ts +4 -0
  60. package/lib/models/table-column-schema-view-tenant-list.model.d.ts +20 -0
  61. package/lib/models/tenant-function-type.model.d.ts +9 -0
  62. package/lib/models/tenant.model.d.ts +51 -0
  63. package/lib/models/tenants-permission.model.d.ts +9 -0
  64. package/lib/models/update-tenant-status.model.d.ts +14 -0
  65. package/lib/models/view-tenant-group-types.model.d.ts +29 -0
  66. package/lib/services/tenant-applications.service.d.ts +399 -0
  67. package/lib/services/tenant-permissions-map.service.d.ts +13 -0
  68. package/lib/services/tenant-permissions.service.d.ts +22 -0
  69. package/lib/tenant-applications.component.d.ts +5 -0
  70. package/lib/tenant-applications.module.d.ts +6 -0
  71. package/package.json +25 -12
  72. package/{src/public-api.ts → public-api.d.ts} +32 -40
  73. package/.eslintrc.json +0 -31
  74. package/ng-package.json +0 -8
  75. package/src/lib/assets/constants.json +0 -454
  76. package/src/lib/assets/tenant-validations.ts +0 -18
  77. package/src/lib/assets/tenants-mock.ts +0 -1240
  78. package/src/lib/components/create-modify-group-type/create-modify-group-type.component.html +0 -15
  79. package/src/lib/components/create-modify-group-type/create-modify-group-type.component.scss +0 -44
  80. package/src/lib/components/create-modify-group-type/create-modify-group-type.component.spec.ts +0 -574
  81. package/src/lib/components/create-modify-group-type/create-modify-group-type.component.ts +0 -602
  82. package/src/lib/components/create-modify-role/create-modify-role.component.html +0 -15
  83. package/src/lib/components/create-modify-role/create-modify-role.component.scss +0 -83
  84. package/src/lib/components/create-modify-role/create-modify-role.component.spec.ts +0 -346
  85. package/src/lib/components/create-modify-role/create-modify-role.component.ts +0 -321
  86. package/src/lib/components/create-tenant-application/create-tenant-application.component.html +0 -18
  87. package/src/lib/components/create-tenant-application/create-tenant-application.component.scss +0 -73
  88. package/src/lib/components/create-tenant-application/create-tenant-application.component.spec.ts +0 -775
  89. package/src/lib/components/create-tenant-application/create-tenant-application.component.ts +0 -638
  90. package/src/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.html +0 -22
  91. package/src/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.scss +0 -79
  92. package/src/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.spec.ts +0 -716
  93. package/src/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.ts +0 -504
  94. package/src/lib/components/tenant-basic-details/tenant-basic-details.component.html +0 -37
  95. package/src/lib/components/tenant-basic-details/tenant-basic-details.component.scss +0 -16
  96. package/src/lib/components/tenant-basic-details/tenant-basic-details.component.spec.ts +0 -115
  97. package/src/lib/components/tenant-basic-details/tenant-basic-details.component.ts +0 -109
  98. package/src/lib/components/view-tenant-details/view-tenant-details.component.html +0 -195
  99. package/src/lib/components/view-tenant-details/view-tenant-details.component.scss +0 -163
  100. package/src/lib/components/view-tenant-details/view-tenant-details.component.spec.ts +0 -1221
  101. package/src/lib/components/view-tenant-details/view-tenant-details.component.ts +0 -876
  102. package/src/lib/components/view-tenant-group-types/view-tenant-group-types.component.html +0 -10
  103. package/src/lib/components/view-tenant-group-types/view-tenant-group-types.component.scss +0 -44
  104. package/src/lib/components/view-tenant-group-types/view-tenant-group-types.component.spec.ts +0 -410
  105. package/src/lib/components/view-tenant-group-types/view-tenant-group-types.component.ts +0 -219
  106. package/src/lib/components/view-tenants-list/view-tenants-list.component.html +0 -32
  107. package/src/lib/components/view-tenants-list/view-tenants-list.component.scss +0 -35
  108. package/src/lib/components/view-tenants-list/view-tenants-list.component.spec.ts +0 -464
  109. package/src/lib/components/view-tenants-list/view-tenants-list.component.ts +0 -388
  110. package/src/lib/models/app-type-config.model.ts +0 -14
  111. package/src/lib/models/app-type.model.ts +0 -5
  112. package/src/lib/models/create-group-type-config.model.ts +0 -18
  113. package/src/lib/models/create-group-type.model.ts +0 -46
  114. package/src/lib/models/feature-permission-id.model.ts +0 -6
  115. package/src/lib/models/features.model.ts +0 -15
  116. package/src/lib/models/form-status.model.ts +0 -5
  117. package/src/lib/models/permission-type.model.ts +0 -9
  118. package/src/lib/models/role-menu-action.model.ts +0 -5
  119. package/src/lib/models/role-type.model.ts +0 -34
  120. package/src/lib/models/roles-and-permissions-table-type.model.ts +0 -5
  121. package/src/lib/models/roles-and-permissions.model.ts +0 -113
  122. package/src/lib/models/route-config.model.ts +0 -4
  123. package/src/lib/models/table-column-schema-view-tenant-list.model.ts +0 -21
  124. package/src/lib/models/tenant-function-type.model.ts +0 -10
  125. package/src/lib/models/tenant.model.ts +0 -47
  126. package/src/lib/models/tenants-permission.model.ts +0 -9
  127. package/src/lib/models/update-tenant-status.model.ts +0 -12
  128. package/src/lib/models/view-tenant-group-types.model.ts +0 -34
  129. package/src/lib/services/tenant-applications.service.spec.ts +0 -1245
  130. package/src/lib/services/tenant-applications.service.ts +0 -798
  131. package/src/lib/services/tenant-permissions-map.service.spec.ts +0 -25
  132. package/src/lib/services/tenant-permissions-map.service.ts +0 -28
  133. package/src/lib/services/tenant-permissions.service.spec.ts +0 -62
  134. package/src/lib/services/tenant-permissions.service.ts +0 -49
  135. package/src/lib/tenant-applications.component.html +0 -0
  136. package/src/lib/tenant-applications.component.scss +0 -0
  137. package/src/lib/tenant-applications.component.spec.ts +0 -28
  138. package/src/lib/tenant-applications.component.ts +0 -12
  139. package/src/lib/tenant-applications.module.ts +0 -8
  140. package/tsconfig.lib.json +0 -14
  141. package/tsconfig.lib.prod.json +0 -10
  142. package/tsconfig.spec.json +0 -14
@@ -0,0 +1,4307 @@
1
+ import * as i7 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Injectable, EventEmitter, Component, ViewEncapsulation, ViewChild, Output, Input, ViewContainerRef, NgModule } from '@angular/core';
5
+ import * as i2 from '@ieeesa-npm/presentation';
6
+ import { AlignType, AllowedFileTypes, FormControlType, DynamicFormComponent, TableColumnType, ModalComponent, TableColumnSortDirection, DataTableComponent, ImagePreviewComponent, CheckboxComponent, AccordionDetails, ModalConfirmationComponent, SlideToggleComponent, AccordionComponent, IconButtonComponent } from '@ieeesa-npm/presentation';
7
+ import { Subject, map, catchError, takeUntil } from 'rxjs';
8
+ import * as i8 from '@angular/material/button';
9
+ import { MatButtonModule } from '@angular/material/button';
10
+ import { FormStatus, ModalType, AlertType } from '@ieeesa-npm/models';
11
+ import { Validators } from '@angular/forms';
12
+ import { validColorValidator } from 'ngx-colors';
13
+ import * as i4 from '@ieeesa-npm/utility';
14
+ import * as i2$1 from '@ieeesa-npm/shared';
15
+ import * as i1 from '@angular/material/dialog';
16
+ import * as i6 from '@angular/router';
17
+ import { RouterModule } from '@angular/router';
18
+ import * as i8$1 from '@angular/material/divider';
19
+ import { MatDividerModule } from '@angular/material/divider';
20
+ import { HttpErrorResponse } from '@angular/common/http';
21
+ import { GroupRosterType, RoleType } from '@ieeesa-npm/groups';
22
+
23
+ var createTenant = {
24
+ heading: "New Application",
25
+ label: {
26
+ leftButtonLabel: "Cancel",
27
+ rightButtonLabel: "Save",
28
+ appTitle: "Application Title",
29
+ appId: "Application Id",
30
+ appLogo: "Application Logo",
31
+ appHeading: "Application Heading",
32
+ appDescription: "Application Description",
33
+ appBgColor: "Application Background Color",
34
+ appHelpLink: "Application Help Link",
35
+ featuresList: "Selection of list of features",
36
+ featureVersion: "Feature Version",
37
+ domainURL: "Domain URL",
38
+ appType: "Application Type",
39
+ ariaLabel: {
40
+ appTitle: "Application Title",
41
+ appId: "Application Id",
42
+ appLogo: "Application Logo",
43
+ appHeading: "Application Heading",
44
+ appDescription: "Application Description",
45
+ appBgColor: "Application Background Color",
46
+ appHelpLink: "Application Help Link",
47
+ featuresList: "Selection of list of features",
48
+ featureVersion: "Feature Version",
49
+ domainURL: "Domain URL",
50
+ appType: "Application Type"
51
+ },
52
+ ariaDescribedById: {
53
+ appTitle: "ariaApplicationTitle",
54
+ appId: "ariaApplicationId",
55
+ appLogo: "ariaApplicationLogo",
56
+ appHeading: "ariaApplicationHeading",
57
+ appDescription: "ariaApplicationDescription",
58
+ appBgColor: "ariaApplicationBackgroundColor",
59
+ appHelpLink: "ariaApplicationHelpLink",
60
+ featuresList: "ariaFeatures",
61
+ featureVersion: "ariaFeatureVersion",
62
+ domainURL: "ariaDomainURL",
63
+ appType: "ariaApplicationType"
64
+ }
65
+ },
66
+ message: {
67
+ error: {
68
+ required: "This field is required.",
69
+ invalidColor: "Invalid color.",
70
+ invalidFile: "Invalid file format. Please upload SVG, PNG and JPG file format only.",
71
+ limit: {
72
+ appTitleMaxChars: "Application Title must not be greater than 50 characters long.",
73
+ appIdMaxChars: "Application Id must not be greater than 10 characters long.",
74
+ appHeadingMaxChars: "Application Heading must not be greater than 150 characters long.",
75
+ appDescriptionMaxChars: "Application Description must not be greater than 500 characters long.",
76
+ appLogoMaxSize: "File size exceeds the maximum limit."
77
+ },
78
+ pattern: {
79
+ appId: "It should only allow Alphanumeric characters.",
80
+ appHelpLink: "Invalid URL.",
81
+ appDomainUrl: "Invalid URL."
82
+ }
83
+ },
84
+ success: {
85
+ submission: "has been created successfully."
86
+ }
87
+ },
88
+ supportText: {
89
+ appTitle: "Enter application name.",
90
+ appId: "Enter application id.",
91
+ appLogo: "Upload application logo.",
92
+ appHeading: "Enter application heading.",
93
+ appDescription: "Enter application description.",
94
+ appBgColor: "Choose background color.",
95
+ appHelpLink: "Enter application help link.",
96
+ featuresList: "Select reusable feature(s).",
97
+ featureVersion: "Select feature version.",
98
+ domainURL: "Enter domain URL."
99
+ },
100
+ errors: {
101
+ "2003": "Application Type not found.",
102
+ "2026": "List of features not found.",
103
+ "2028": "Application Title is required.",
104
+ "2029": "Application Logo is required.",
105
+ "2030": "Application Heading is required.",
106
+ "2031": "Application Description is required.",
107
+ "2032": "Background color is required.",
108
+ "2033": "Help link is required.",
109
+ "2034": "Domain Url is required.",
110
+ "2035": "Application Type is required.",
111
+ "2036": "Application Features are required.",
112
+ "2037": "Application Title must not be greater than 50 characters long.",
113
+ "2038": "Application Heading must not be greater than 150 characters long",
114
+ "2039": "Application Description must not be greater than 500 characters long.",
115
+ "2040": "Invalid URL.",
116
+ "2041": "Application Id is required.",
117
+ "2042": "Application Id must not be greater than 10 characters long",
118
+ "2043": "Application Id contains invalid characters. Please enter alphanumeric characters only.",
119
+ "2044": "Invalid URL.",
120
+ "2045": "Application Id must be unique.",
121
+ "2046": "Application Features are required.",
122
+ "2047": "Application Type is required.",
123
+ "2048": "Features Not Found.",
124
+ "2049": "Unable to display tenants. Please try again later.",
125
+ "2050": "Tenant Details not found.",
126
+ "2052": "Not allowed to update Application Id and Application Type.",
127
+ "2053": "Default features to be pre-selected."
128
+ },
129
+ buttons: {
130
+ addApplicationLabel: "Add Application"
131
+ }
132
+ };
133
+ var createRole = {
134
+ heading: "New Role",
135
+ label: {
136
+ leftButtonLabel: "Cancel",
137
+ rightButtonLabel: "Save",
138
+ appTitle: "Application Title",
139
+ roleType: "Role Type",
140
+ roleName: "Role Name",
141
+ ariaLabel: {
142
+ appTitle: "Application Title",
143
+ roleType: "Role Type",
144
+ roleName: "Role Name"
145
+ },
146
+ ariaDescribedById: {
147
+ appTitle: "ariaApplicationTitle",
148
+ roleType: "ariaRoleType",
149
+ roleName: "ariaRoleName"
150
+ }
151
+ },
152
+ message: {
153
+ error: {
154
+ required: "This field is required.",
155
+ limit: {
156
+ roleNameMaxChars: "Role name must not be greater than 100 characters long."
157
+ }
158
+ },
159
+ success: {
160
+ submission1: "New",
161
+ submission2: "has been successfully added to the",
162
+ submission3: "You can map the permissions for the newly added role.",
163
+ modify: "has been successfully edited for the"
164
+ }
165
+ },
166
+ supportText: {
167
+ roleType: "Select role type from the dropdown.",
168
+ roleName: "Enter role name."
169
+ },
170
+ errors: {
171
+ "3011": "App Id is required.",
172
+ "3012": "role already exists.",
173
+ "3013": "Application Id modification not allowed.",
174
+ "3014": "Role Type not found.",
175
+ "3015": "Role Type is required.",
176
+ "3016": "Role Name is required.",
177
+ "3017": "Role Type not found."
178
+ }
179
+ };
180
+ var editTenant = {
181
+ message: {
182
+ success: {
183
+ submission: "has been updated successfully."
184
+ }
185
+ }
186
+ };
187
+ var viewTenants = {
188
+ tenantsTitle: "Tenant Application Management",
189
+ addTenant: "Add Application",
190
+ emptyFieldValueReplacedBy: "-",
191
+ createTenantsIcon: "assets/images/sprites/sprites.svg#icon-create-group-white-bg",
192
+ pageSizeOptions: [
193
+ 10,
194
+ 20,
195
+ 50,
196
+ 100
197
+ ],
198
+ ariaLabel: {
199
+ add: "Add Application"
200
+ },
201
+ label: {
202
+ appId: "Application ID",
203
+ status: "Status",
204
+ viewAllApps: "View All Applications",
205
+ saAppId: "SAAPPS",
206
+ active: "Active",
207
+ inactive: "Inactive"
208
+ },
209
+ buttons: {
210
+ id: 1,
211
+ ariaLabel: "Edit Application Details",
212
+ label: "Edit Application Details",
213
+ toolTip: "Edit Application Details",
214
+ iconURL: "assets/images/sprites/sprites.svg#icon-edit-tenant"
215
+ },
216
+ tableColumns: {
217
+ appId: "Application Id",
218
+ appTitle: "Application Title",
219
+ appDescription: "Application Description",
220
+ features: "Features",
221
+ status: "Status"
222
+ },
223
+ confirmationInfo: {
224
+ leftButtonLabel: "Cancel",
225
+ rightButtonLabel: "OK",
226
+ promptMessage: "Are you sure you want to",
227
+ promptMessageInactivate: "inactivate",
228
+ promptMessageActivate: "reactivate",
229
+ ariaLabel: {
230
+ alert: "Alert"
231
+ },
232
+ deleteRoleConfirmationMessage: "Are you sure you want to delete the",
233
+ deleteRolePromptMessage: "Deleting this role will remove all current assignments in the",
234
+ featureChangeSignOutLeftButtonLabel: "Later",
235
+ featureChangeSignOutRightButtonLabel: "Sign out now",
236
+ featureChangeSignOutMessage: "Feature changes take effect only after signing in again. Sign out now to apply them?"
237
+ },
238
+ errors: {
239
+ "2050": "Tenant Details not found.",
240
+ "2051": "Failure to update tenant status.",
241
+ "2054": "IEEE SA Collaboration Portal cannot be inactivated.",
242
+ "3007": "No Role(s) found.",
243
+ "3008": "No Permission(s) found.",
244
+ "3009": "Unable to fetch Roles and Permissions Mapping.",
245
+ "3010": "Role Id is required.",
246
+ "3011": "Application Id is required."
247
+ },
248
+ tenantAccordionInfo: [
249
+ {
250
+ id: 1,
251
+ title: "Basic Details",
252
+ isDisabled: false,
253
+ content: "Basic data"
254
+ },
255
+ {
256
+ id: 2,
257
+ title: "Roles and Permissions",
258
+ isDisabled: false,
259
+ content: "Roles"
260
+ },
261
+ {
262
+ id: 3,
263
+ title: "Group Types",
264
+ isDisabled: false,
265
+ content: "Groups"
266
+ }
267
+ ],
268
+ tenantBasicDetails: {
269
+ label: {
270
+ title: "Title",
271
+ logo: "Logo",
272
+ description: "Description",
273
+ bgColor: "Background Color",
274
+ heading: "Heading",
275
+ helpLink: "Help Link",
276
+ listOfFeatures: "List of features",
277
+ featureVersion: "Feature Version",
278
+ domainURL: "Domain URL",
279
+ type: "Type"
280
+ }
281
+ }
282
+ };
283
+ var viewRolesAndPermissions = {
284
+ tableCaption: "Roles & Permissions Matrix",
285
+ tableColumnsHeaderText: "ROLES",
286
+ scrollbarSupportMessage: "Scroll right for viewing more roles.",
287
+ pageSizeOptions: [
288
+ 10,
289
+ 20,
290
+ 50,
291
+ 100
292
+ ],
293
+ columnActionIconSize: "fa-xs",
294
+ actionButtonLabels: {
295
+ addRole: "Add Role",
296
+ mapPermissionsRoles: "Map Permissions & Roles"
297
+ },
298
+ tableColumn: {
299
+ permissions: "PERMISSIONS"
300
+ },
301
+ tableCellValue: {
302
+ yes: "Yes",
303
+ no: "No"
304
+ },
305
+ columnActionMenuItems: [
306
+ {
307
+ id: 1,
308
+ label: "Edit Role",
309
+ ariaLabel: "Edit Role",
310
+ iconURL: "",
311
+ toolTip: "",
312
+ isToolTipNeeded: false
313
+ },
314
+ {
315
+ id: 2,
316
+ label: "Delete Role",
317
+ ariaLabel: "Delete Role",
318
+ iconURL: "",
319
+ toolTip: "",
320
+ isToolTipNeeded: false
321
+ }
322
+ ]
323
+ };
324
+ var mapRolesAndPermissions = {
325
+ heading: "Map Permissions & Roles",
326
+ legend: "Select a Role or Permission to continue",
327
+ roleTableCaption: "Role: ",
328
+ permissionTableCaption: "Permission: ",
329
+ label: {
330
+ leftButtonLabel: "Cancel",
331
+ rightButtonLabel: "Save",
332
+ role: "Role",
333
+ permission: "Permission",
334
+ ariaLabel: {
335
+ role: "Role",
336
+ permission: "Permission"
337
+ },
338
+ ariaDescribedById: {
339
+ role: "ariaRole",
340
+ permission: "ariaPermission"
341
+ }
342
+ },
343
+ tableColumns: {
344
+ role: "Role",
345
+ permission: "Permission",
346
+ status: "Status"
347
+ },
348
+ message: {
349
+ success: {
350
+ rolesAndPermissionsSubmission: "Role(s) & Permission(s) successfully updated."
351
+ }
352
+ },
353
+ supportText: {
354
+ role: "Choose a role from the available list.",
355
+ permission: "Choose a permission from the available list."
356
+ },
357
+ errors: {
358
+ "3007": "Role(s) not found.",
359
+ "3008": "Permission(s) not found.",
360
+ "3009": "Role Permission details does not exist.",
361
+ "3017": "Role Permission Mapping does not exist for given role Id.",
362
+ "3020": "Roles does not exist for given permission Id.",
363
+ "3021": "Permissions does not exist for given role Id."
364
+ }
365
+ };
366
+ var deleteRole = {
367
+ message: {
368
+ success: {
369
+ submission: "role has been successfully deleted from the"
370
+ }
371
+ }
372
+ };
373
+ var viewGroupTypes = {
374
+ actionButtonLabels: {
375
+ addGroupType: "Add Group Type"
376
+ },
377
+ actionMenuItems: [
378
+ {
379
+ id: 1,
380
+ label: "Edit Group Type",
381
+ ariaLabel: "Edit Group Type",
382
+ iconURL: "",
383
+ toolTip: "",
384
+ isToolTipNeeded: false,
385
+ isDisabled: false
386
+ },
387
+ {
388
+ id: 2,
389
+ label: "Delete Group Type",
390
+ ariaLabel: "Delete Group Type",
391
+ iconURL: "",
392
+ toolTip: "",
393
+ isToolTipNeeded: false,
394
+ isDisabled: false
395
+ }
396
+ ],
397
+ tableColumns: {
398
+ heading: {
399
+ groupType: "Group Type",
400
+ rosterType: "Roster Type",
401
+ description: "Description",
402
+ applicableRoles: "Applicable Roles",
403
+ settings: "Settings",
404
+ action: "Actions"
405
+ }
406
+ },
407
+ settings: {
408
+ allowSubGroup: "Allow Sub-Groups",
409
+ allowRoster: "Enable Rosters",
410
+ allowAlternateVoting: "Allow Alternate Voting",
411
+ hasClassification: "Has Classification",
412
+ allowEdit: "Allow Edit",
413
+ allowDelete: "Allow Delete"
414
+ },
415
+ errors: {
416
+ "1010": "Group Type(s) not found.",
417
+ "2050": "Tenant Details not found."
418
+ }
419
+ };
420
+ var routeConfigPath = {
421
+ viewTenants: "tenants/view-tenants-list",
422
+ viewTenantDetails: "tenants/view-tenant-details"
423
+ };
424
+ var createGroupType = {
425
+ heading: "New Group Type",
426
+ label: {
427
+ leftButtonLabel: "Cancel",
428
+ rightButtonLabel: "Save",
429
+ groupType: "Group Type",
430
+ description: "Description",
431
+ settings: "Settings",
432
+ rosterType: "Roster Type",
433
+ appMemberLevel: "Applicable Member Level",
434
+ appOfficerRoles: "Applicable Officer Roles",
435
+ isRootGroup: "Is Root Group",
436
+ allowedSubGroupTypes: "Allowed Sub Group Type(s)",
437
+ ariaLabel: {
438
+ groupType: "Group Type",
439
+ description: "Description",
440
+ settings: "Settings",
441
+ rosterType: "Roster Type",
442
+ appMemberLevel: "Applicable Member Level",
443
+ appOfficerRoles: "Applicable Officer Roles",
444
+ isRootGroup: "Is Root Group",
445
+ allowedSubGroupTypes: "Allowed Sub Group Type(s)"
446
+ },
447
+ ariaDescribedById: {
448
+ groupType: "ariaGroupType",
449
+ description: "ariaDescription",
450
+ settings: "ariaSettings",
451
+ rosterType: "ariaRosterType",
452
+ appMemberLevel: "ariaApplicableMemberLevel",
453
+ appOfficerRoles: "ariaApplicableOfficerRoles",
454
+ isRootGroup: "ariaIsRootGroup",
455
+ allowedSubGroupTypes: "ariaAllowedSubGroupTypes"
456
+ }
457
+ },
458
+ message: {
459
+ success: {
460
+ submissionPart1: "New ",
461
+ submissionPart2: " has been successfully added to the"
462
+ },
463
+ error: {
464
+ required: "This field is required.",
465
+ limit: {
466
+ groupTypeMaxChars: "Group Type must not be greater than 30 characters long.",
467
+ descriptionMaxChars: "Description must not be greater than 500 characters long."
468
+ }
469
+ }
470
+ },
471
+ supportText: {
472
+ groupType: "Enter Group Type.",
473
+ description: "Enter Group Type description."
474
+ },
475
+ isRootGroupOptions: {
476
+ yes: "Yes",
477
+ no: "No"
478
+ },
479
+ errors: {
480
+ "2066": "Roster Type or Settings not found.",
481
+ "2067": "Group Type Name already exist.",
482
+ "3007": "No Role(s) found.",
483
+ "3017": "Description is required.",
484
+ "3018": "Role is required.",
485
+ "3019": "Configure officer and member level roles before creating group type."
486
+ }
487
+ };
488
+ var constants = {
489
+ createTenant: createTenant,
490
+ createRole: createRole,
491
+ editTenant: editTenant,
492
+ viewTenants: viewTenants,
493
+ viewRolesAndPermissions: viewRolesAndPermissions,
494
+ mapRolesAndPermissions: mapRolesAndPermissions,
495
+ deleteRole: deleteRole,
496
+ viewGroupTypes: viewGroupTypes,
497
+ routeConfigPath: routeConfigPath,
498
+ createGroupType: createGroupType
499
+ };
500
+
501
+ var screenText = /*#__PURE__*/Object.freeze({
502
+ __proto__: null,
503
+ createGroupType: createGroupType,
504
+ createRole: createRole,
505
+ createTenant: createTenant,
506
+ default: constants,
507
+ deleteRole: deleteRole,
508
+ editTenant: editTenant,
509
+ mapRolesAndPermissions: mapRolesAndPermissions,
510
+ routeConfigPath: routeConfigPath,
511
+ viewGroupTypes: viewGroupTypes,
512
+ viewRolesAndPermissions: viewRolesAndPermissions,
513
+ viewTenants: viewTenants
514
+ });
515
+
516
+ /* eslint-disable no-unused-vars */
517
+ var PermissionType;
518
+ (function (PermissionType) {
519
+ PermissionType["VIEW_TENANTS"] = "VIEW_TENANTS";
520
+ PermissionType["MANAGE_TENANT"] = "MANAGE_TENANT";
521
+ })(PermissionType || (PermissionType = {}));
522
+ var TenantStatus;
523
+ (function (TenantStatus) {
524
+ TenantStatus["ACTIVE"] = "Active";
525
+ TenantStatus["INACTIVE"] = "Inactive";
526
+ })(TenantStatus || (TenantStatus = {}));
527
+
528
+ /* eslint-disable no-unused-vars */
529
+ var ViewTenantsColumnSchemaDef;
530
+ (function (ViewTenantsColumnSchemaDef) {
531
+ ViewTenantsColumnSchemaDef["APP_ID"] = "appId";
532
+ ViewTenantsColumnSchemaDef["APP_TITLE"] = "appTitle";
533
+ ViewTenantsColumnSchemaDef["APP_DESCRIPTION"] = "appDescription";
534
+ ViewTenantsColumnSchemaDef["APP_HEADING"] = "appHeading";
535
+ ViewTenantsColumnSchemaDef["FEATURES"] = "features";
536
+ ViewTenantsColumnSchemaDef["STATUS"] = "status";
537
+ })(ViewTenantsColumnSchemaDef || (ViewTenantsColumnSchemaDef = {}));
538
+ var SortOrderBy;
539
+ (function (SortOrderBy) {
540
+ SortOrderBy["DESC"] = "DESC";
541
+ SortOrderBy["ASC"] = "ASC";
542
+ })(SortOrderBy || (SortOrderBy = {}));
543
+
544
+ /* eslint-disable no-useless-escape */
545
+ const TenantsValidationPatterns = {
546
+ appTitleMaxLength: 50,
547
+ appIdMaxLength: 10,
548
+ appHeadingMaxLength: 150,
549
+ appDescriptionMaxLength: 500,
550
+ url: /^https:\/\//,
551
+ alphaNumeric: /^[a-zA-Z0-9]+$/,
552
+ };
553
+ const RolesValidation = {
554
+ roleNameMaxLength: 100,
555
+ };
556
+ const GroupTypeValidation = {
557
+ groupTypeMaxLength: 30,
558
+ descriptionMaxLength: 500
559
+ };
560
+
561
+ /* eslint-disable no-unused-vars */
562
+ var TenantFunctionType;
563
+ (function (TenantFunctionType) {
564
+ TenantFunctionType["CREATE"] = "CREATE";
565
+ TenantFunctionType["EDIT"] = "EDIT";
566
+ TenantFunctionType["CREATE_ROLE"] = "CREATE_ROLE";
567
+ TenantFunctionType["EDIT_ROLE"] = "EDIT_ROLE";
568
+ TenantFunctionType["MAP_PERMISSION_AND_ROLE"] = "MAP_PERMISSION_AND_ROLE";
569
+ TenantFunctionType["CREATE_GROUP_TYPE"] = "CREATE_GROUP_TYPE";
570
+ TenantFunctionType["EDIT_GROUP_TYPE"] = "EDIT_GROUP_TYPE";
571
+ })(TenantFunctionType || (TenantFunctionType = {}));
572
+
573
+ class TenantPermissionsService {
574
+ /**
575
+ * Returns access provision for the passed action/feature based on whether the signed in user has appropriate permission.
576
+ * @param {PermissionType} permission
577
+ * @param {TenantsPermission[]} tenantsPermissions
578
+ * @return {boolean}
579
+ * @memberof TenantPermissionsService
580
+ */
581
+ validateAccessPermission(permission, userTenantsPermissions) {
582
+ const isPermitted = userTenantsPermissions && userTenantsPermissions.length
583
+ ? userTenantsPermissions?.some(({ permissionType }) => permissionType === permission)
584
+ : false;
585
+ return isPermitted;
586
+ }
587
+ /**
588
+ * Filters signed in user tenants permissions from entire tenants permissions.
589
+ * @param { UserPermission[] }
590
+ * @return {TenantsPermissions[]}
591
+ * @memberof TenantPermissionsService
592
+ */
593
+ filterTenantsPermissions(userPermissions, tenantsPermissions) {
594
+ const userTenantsPermission = tenantsPermissions?.filter((permission) => {
595
+ return userPermissions?.find(({ permissionId }) => permission?.permissionId === permissionId);
596
+ });
597
+ return userTenantsPermission;
598
+ }
599
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
600
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsService, providedIn: 'root' }); }
601
+ }
602
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsService, decorators: [{
603
+ type: Injectable,
604
+ args: [{
605
+ providedIn: 'root',
606
+ }]
607
+ }] });
608
+
609
+ class TenantPermissionsMapService {
610
+ constructor() {
611
+ this.globalTenantsPermissions = [
612
+ {
613
+ permissionType: PermissionType.VIEW_TENANTS,
614
+ permissionId: 'PERM_1a2dbbb5-5fe1-4261-85b1-a5373f41075a',
615
+ permissionName: 'View Tenant Applications',
616
+ },
617
+ {
618
+ permissionType: PermissionType.MANAGE_TENANT,
619
+ permissionId: 'PERM_315c49ec-f79a-4dcd-9795-6f97838c8c83',
620
+ permissionName: 'Manage (Create, Edit, Disable) Tenant Application',
621
+ },
622
+ ];
623
+ }
624
+ /**
625
+ * Returns global permissions mapping for tenants.
626
+ * @return {TenantsPermissions[]}
627
+ * @memberof TenantsPermissionsMapService
628
+ */
629
+ getGlobalTenantsPermissions() {
630
+ return this.globalTenantsPermissions;
631
+ }
632
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsMapService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
633
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsMapService, providedIn: 'root' }); }
634
+ }
635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsMapService, decorators: [{
636
+ type: Injectable,
637
+ args: [{
638
+ providedIn: 'root',
639
+ }]
640
+ }] });
641
+
642
+ class TenantApplicationsService {
643
+ constructor(
644
+ // eslint-disable-next-line no-unused-vars
645
+ httpService,
646
+ // eslint-disable-next-line no-unused-vars
647
+ tenantPermissionsService,
648
+ // eslint-disable-next-line no-unused-vars
649
+ tenantPermissionsMapService // eslint-disable-next-line no-empty-function
650
+ ) {
651
+ this.httpService = httpService;
652
+ this.tenantPermissionsService = tenantPermissionsService;
653
+ this.tenantPermissionsMapService = tenantPermissionsMapService;
654
+ this.tenantsText = viewTenants?.errors;
655
+ this.createTenantsText = createTenant?.errors;
656
+ this.radioOptions = [];
657
+ this.checkBoxOptions = [];
658
+ this.appTypeInfo = [];
659
+ this.featureList = [];
660
+ this.roleTypeOptions = [];
661
+ this.isGroupTypeAddedOrModified = new Subject();
662
+ }
663
+ setAppConfig(apiBaseUrl, userPermission) {
664
+ this.apiBaseUrl = apiBaseUrl;
665
+ this.userPermission = userPermission;
666
+ }
667
+ /**
668
+ * Gets tenant details from server using HttpService
669
+ * @param {string} appId
670
+ * @return {Observable<TenantDetailsResponse>}
671
+ * @memberof TenantApplicationsService
672
+ */
673
+ getTenantDetails(appId) {
674
+ return this.httpService
675
+ .getData(`${this.apiBaseUrl}/configurations/app/details/${appId}`)
676
+ .pipe(map((response) => {
677
+ return response;
678
+ }), catchError((error) => {
679
+ throw error;
680
+ }));
681
+ }
682
+ /**
683
+ * Sets the user tenants permissions
684
+ * @param {TenantsPermissions[]} TenantsPermissions
685
+ * @memberof TenantApplicationsService
686
+ */
687
+ setUserTenantsPermissions(userTenantsPermissions) {
688
+ this.userTenantsPermissions = userTenantsPermissions;
689
+ }
690
+ /**
691
+ * Returns the user tenants permissions
692
+ * @return {TenantsPermissions[]}
693
+ * @memberof TenantApplicationsService
694
+ */
695
+ getUserTenantsPermissions() {
696
+ return this.userTenantsPermissions;
697
+ }
698
+ /**
699
+ * Sets the user tenants information
700
+ * @param {TenantBasicInfo} tenantInfo
701
+ * @memberof TenantApplicationsService
702
+ */
703
+ setSelectedTenantInformation(tenantInfo) {
704
+ this.selectedTenantInfo = tenantInfo;
705
+ }
706
+ /**
707
+ * Returns the tenants information
708
+ * @return {TenantBasicInfo}
709
+ * @memberof TenantApplicationsService
710
+ */
711
+ getSelectedTenantInformation() {
712
+ return this.selectedTenantInfo;
713
+ }
714
+ /**
715
+ * Sets the roles informations
716
+ * @param {Role} roles
717
+ * @memberof TenantApplicationsService
718
+ */
719
+ setRolesInfo(roles) {
720
+ this.roles = roles;
721
+ }
722
+ /**
723
+ * Returns the roles information
724
+ * @return {Role}
725
+ * @memberof TenantApplicationsService
726
+ */
727
+ getRolesInfo() {
728
+ return this.roles;
729
+ }
730
+ /**
731
+ * Sets the selected role information.
732
+ * @param {RoleDetails} roleInfo
733
+ * @memberof TenantApplicationsService
734
+ */
735
+ setSelectedRoleInformation(roleInfo) {
736
+ this.selectedRoleInfo = roleInfo;
737
+ }
738
+ /**
739
+ * Returns the selected role information.
740
+ * @return {RoleDetails}
741
+ * @memberof TenantApplicationsService
742
+ */
743
+ getSelectedRoleInformation() {
744
+ return this.selectedRoleInfo;
745
+ }
746
+ /**
747
+ * Sets the tenant role type options.
748
+ * @param {RoleTypeOption} roleTypeOptions
749
+ * @memberof TenantApplicationsService
750
+ */
751
+ setRoleTypeOption(roleTypeOptions) {
752
+ this.roleTypeOption = roleTypeOptions;
753
+ }
754
+ /**
755
+ * Returns the tenant role type options.
756
+ * @return {RoleTypeOption}
757
+ * @memberof TenantApplicationsService
758
+ */
759
+ getRoleTypeOption() {
760
+ return this.roleTypeOption;
761
+ }
762
+ /**
763
+ * Sets the list of application type information
764
+ * @param {RadioOption} appTypeInfo
765
+ * @memberof TenantApplicationsService
766
+ */
767
+ setApplicationType(appTypeInfo) {
768
+ this.appTypeInfo = appTypeInfo;
769
+ }
770
+ /**
771
+ * Returns the list of application type information
772
+ * @return {RadioOption}
773
+ * @memberof TenantApplicationsService
774
+ */
775
+ getApplicationType() {
776
+ return this.appTypeInfo;
777
+ }
778
+ /**
779
+ * Filter permissions
780
+ * @param usersPermissions
781
+ * @returns @memberof TenantApplicationsService
782
+ */
783
+ filterPermission(usersPermissions) {
784
+ return this.tenantPermissionsService?.filterTenantsPermissions(usersPermissions, this.tenantPermissionsMapService?.getGlobalTenantsPermissions());
785
+ }
786
+ /**
787
+ * Validating access for tenants
788
+ * @param permissionType Permission Type to validate permission
789
+ * @param mappedUserPermissions Permission which are mapped with tenants
790
+ * @returns true if permission is granted
791
+ */
792
+ validateAccess(permissionType, permissions) {
793
+ return this.tenantPermissionsService.validateAccessPermission(permissionType, permissions);
794
+ }
795
+ /**
796
+ * Gets the tenants.
797
+ * @param {GetTenantsPayload} payload
798
+ * @return {Observable<GetTenantsResponse>}
799
+ * @memberof TenantApplicationsService
800
+ */
801
+ getTenantsList(payload) {
802
+ return this.httpService
803
+ .postData(`${this.apiBaseUrl}/configurations/app/config`, payload)
804
+ .pipe(map((response) => {
805
+ return response;
806
+ }), catchError((error) => {
807
+ throw error;
808
+ }));
809
+ }
810
+ /**
811
+ * Gets list of features from server using HttpService.
812
+ * @return {Observable<GetFeaturesResponse>}
813
+ * @memberof TenantApplicationsService
814
+ */
815
+ getFeatures() {
816
+ return this.httpService
817
+ .getData(`${this.apiBaseUrl}/configurations/app/features`)
818
+ .pipe(map((response) => {
819
+ return response;
820
+ }), catchError((error) => {
821
+ throw error;
822
+ }));
823
+ }
824
+ /**
825
+ * Gets list of roles from server using HttpService.
826
+ * @param {string} appId
827
+ * @return {*} {Observable<GetRolesResponse>}
828
+ * @memberof TenantApplicationsService
829
+ */
830
+ getRoles(appId) {
831
+ return this.httpService
832
+ .getData(`${this.apiBaseUrl}/groups/role/${appId}`)
833
+ .pipe(map((response) => {
834
+ return response;
835
+ }), catchError((error) => {
836
+ throw error;
837
+ }));
838
+ }
839
+ /**
840
+ * Gets the list of permissions based on the appId and return the success or error response as Observable.
841
+ * @param {string} appId
842
+ * @return {Observable<GetPermissionsResponse>}
843
+ * @memberof TenantApplicationsService
844
+ */
845
+ getPermissions(appId) {
846
+ return this.httpService
847
+ .getData(`${this.apiBaseUrl}/groups/permissions/${appId}`)
848
+ .pipe(map((response) => {
849
+ return response;
850
+ }), catchError((error) => {
851
+ throw error;
852
+ }));
853
+ }
854
+ /**
855
+ * Gets the list of roles or permissions based on the roleId or permissionId in the payload and return the success or error response as Observable.
856
+ * @param {RolePermissionMappingRequestPayload} payload
857
+ * @returns {Observable<RolePermissionMappingResponse>}
858
+ * @memberof TenantApplicationsService
859
+ */
860
+ getRolePermissionMapping(payload) {
861
+ return this.httpService
862
+ .postData(`${this.apiBaseUrl}/groups/users/rolePermissionMapping`, payload)
863
+ .pipe(map((response) => {
864
+ return response;
865
+ }), catchError((error) => {
866
+ throw error;
867
+ }));
868
+ }
869
+ /**
870
+ * Submit the new mappings of roles to permissions to the server.
871
+ * @param {RolesAndPermissionsRequestPayload} payload
872
+ * @returns {Observable<RolesAndPermissionsResponse>}
873
+ * @memberof TenantApplicationsService
874
+ */
875
+ saveRolePermissionMapping(payload) {
876
+ return this.httpService
877
+ .postData(`${this.apiBaseUrl}/groups/users/rolePermission`, payload)
878
+ .pipe(map((response) => {
879
+ return response;
880
+ }), catchError((error) => {
881
+ throw error;
882
+ }));
883
+ }
884
+ /**
885
+ * Gets list of roles and permissions mappings from server using HttpService.
886
+ * @param {string} appId
887
+ * @param {GetRolesAndPermissionsPayload} payload
888
+ * @return {*} {Observable<GetRolesAndPermissionsResponse>}
889
+ * @memberof TenantApplicationsService
890
+ */
891
+ getRolesAndPermissionsMappings(appId, payload) {
892
+ return this.httpService
893
+ .postData(`${this.apiBaseUrl}/groups/roleBasedPermissions/${appId}`, payload)
894
+ .pipe(map((response) => {
895
+ return response;
896
+ }), catchError((error) => {
897
+ throw error;
898
+ }));
899
+ }
900
+ /**
901
+ * Gets list of application types from server using HttpService.
902
+ * @return {Observable<GetAppTypesResponse>}
903
+ * @memberof TenantApplicationsService
904
+ */
905
+ getApplicationTypes() {
906
+ return this.httpService
907
+ .getData(`${this.apiBaseUrl}/configurations/config/app_type`)
908
+ .pipe(map((response) => {
909
+ return response;
910
+ }), catchError((error) => {
911
+ throw error;
912
+ }));
913
+ }
914
+ /**
915
+ * Posts create role form data to server using HttpService to create a new role.
916
+ * @param {CreateModifyRoleRequestPayload} createModifyRolePayload
917
+ * @return {Observable<CreateModifyRoleResponse>}
918
+ * @memberof TenantApplicationsService
919
+ */
920
+ createRole(createModifyRolePayload) {
921
+ return this.httpService
922
+ .postData(`${this.apiBaseUrl}/groups/role`, createModifyRolePayload)
923
+ .pipe(map((response) => {
924
+ return response;
925
+ }), catchError((error) => {
926
+ throw error;
927
+ }));
928
+ }
929
+ /**
930
+ * Posts the edited role form data to server using HttpService for updating the role information.
931
+ * @param {CreateModifyRoleRequestPayload} createModifyRolePayload
932
+ * @return {Observable<CreateModifyRoleResponse>}
933
+ * @memberof TenantApplicationsService
934
+ */
935
+ editRole(createModifyRolePayload) {
936
+ return this.httpService
937
+ .putData(`${this.apiBaseUrl}/groups/role`, createModifyRolePayload)
938
+ .pipe(map((response) => {
939
+ return response;
940
+ }), catchError((error) => {
941
+ throw error;
942
+ }));
943
+ }
944
+ /**
945
+ * Gets list of role types from server using HttpService.
946
+ * @param {GetRoleTypesPayload} payload
947
+ * @return {Observable<RoleTypeResponse>}
948
+ * @memberof TenantApplicationsService
949
+ */
950
+ getRoleTypes(payload) {
951
+ return this.httpService
952
+ .postData(`${this.apiBaseUrl}/configurations/config/configField`, payload)
953
+ .pipe(map((response) => {
954
+ return response;
955
+ }), catchError((error) => {
956
+ throw error;
957
+ }));
958
+ }
959
+ /**
960
+ * Constructs the select/dropdown options from the role types received from server.
961
+ * @param {RoleTypeConfiguration[]} roleTypeResponse
962
+ * @return {RoleTypeOption[]}
963
+ * @memberof TenantApplicationsService
964
+ */
965
+ getRoleTypeOptions(roleTypeResponse) {
966
+ this.roleTypeOptions = [];
967
+ roleTypeResponse.forEach((item) => {
968
+ this.roleTypeOptions?.push({
969
+ id: item?.configFieldId,
970
+ name: item?.configFieldValue?.roleTypeName,
971
+ order: item?.configFieldValue?.viewOrder,
972
+ });
973
+ });
974
+ this.roleTypeOptions.sort((a, b) => a.order - b.order);
975
+ return this.roleTypeOptions;
976
+ }
977
+ /**
978
+ * Posts tenant application form data to server using HttpService for creating new tenant application.
979
+ * @param {CreateTenantPayload} createTenantPayload
980
+ * @return {Observable<CreateTenantResponse>}
981
+ * @memberof TenantApplicationsService
982
+ */
983
+ createTenant(createTenantPayload) {
984
+ return this.httpService
985
+ .postData(`${this.apiBaseUrl}/configurations/app/createTenant`, createTenantPayload)
986
+ .pipe(map((response) => {
987
+ return response;
988
+ }), catchError((error) => {
989
+ throw error;
990
+ }));
991
+ }
992
+ /**
993
+ * Constructs the checkbox options from features list from server.
994
+ * @param {FeaturesList[]} features
995
+ * @returns {CheckboxOption[]}
996
+ */
997
+ getFeatureOptions(features) {
998
+ this.checkBoxOptions = [];
999
+ features?.forEach((feature) => {
1000
+ this.checkBoxOptions?.push({
1001
+ id: feature?.featureId,
1002
+ name: feature?.featureName,
1003
+ checked: feature?.isDefault,
1004
+ disabled: feature?.isDefault,
1005
+ });
1006
+ });
1007
+ return this.checkBoxOptions;
1008
+ }
1009
+ /**
1010
+ * Constructs the radio options from application types from server.
1011
+ * @param {AppTypeConfig[]} appTypeOptions
1012
+ * @returns {RadioOption[]}
1013
+ */
1014
+ getApplicationTypeOptions(appTypeOptions) {
1015
+ this.radioOptions = [];
1016
+ appTypeOptions?.forEach((appType) => {
1017
+ this.radioOptions?.push({
1018
+ id: appType?.configFieldId,
1019
+ label: appType?.configFieldValue?.type,
1020
+ });
1021
+ });
1022
+ return this.radioOptions;
1023
+ }
1024
+ /**
1025
+ * Constructs the selected features id's.
1026
+ * @param {CheckboxOption[]} featureOptions
1027
+ * @returns {FeatureId[]}
1028
+ */
1029
+ getFeatureIds(featureOptions) {
1030
+ const featureIds = [];
1031
+ featureOptions?.forEach((featureOption) => {
1032
+ if (featureOption?.checked) {
1033
+ featureIds.push({
1034
+ featureId: featureOption.id,
1035
+ });
1036
+ }
1037
+ });
1038
+ return featureIds;
1039
+ }
1040
+ /**
1041
+ * Sets the newly created tenant information.
1042
+ * @param {NewTenantInfo} newTenantInfo
1043
+ */
1044
+ setNewTenantInfo(newTenantInfo) {
1045
+ this.newTenantInfo = newTenantInfo;
1046
+ }
1047
+ /**
1048
+ * Returns the newly created tenant information.
1049
+ */
1050
+ get getNewTenantInfo() {
1051
+ return this.newTenantInfo;
1052
+ }
1053
+ /**
1054
+ * Sets tenant function type.
1055
+ * @param {TenantFunctionType} tenantFunctionType -tenant function type.
1056
+ */
1057
+ setTenantFunctionType(tenantFunctionType) {
1058
+ this.tenantFunctionType = tenantFunctionType;
1059
+ }
1060
+ /**
1061
+ * Returns tenant function type.
1062
+ * @return {TenantFunctionType} -tenant function type.
1063
+ */
1064
+ getTenantFunctionType() {
1065
+ return this.tenantFunctionType;
1066
+ }
1067
+ /**
1068
+ * Stores the newly created role information.
1069
+ * @param {RoleInfo} newlyCreatedRole -create role information.
1070
+ */
1071
+ setNewlyCreatedRoleInfo(newlyCreatedRole) {
1072
+ this.newlyCreatedRole = newlyCreatedRole;
1073
+ }
1074
+ /**
1075
+ * Returns the newly created role information.
1076
+ * @return {RoleInfo} -create role information.
1077
+ */
1078
+ getNewlyCreatedRoleInfo() {
1079
+ return this.newlyCreatedRole;
1080
+ }
1081
+ /**
1082
+ * Stores the newly created group type information.
1083
+ * @param {CreatedOrModifiedGroupTypeInfo} newlyCreatedGroupType
1084
+ * @memberof TenantApplicationsService
1085
+ */
1086
+ setNewlyCreatedGroupTypeInfo(newlyCreatedGroupType) {
1087
+ this.newlyCreatedGroupType = newlyCreatedGroupType;
1088
+ }
1089
+ /**
1090
+ * Returns the newly created group type information.
1091
+ * @return {*} {CreatedOrModifiedGroupTypeInfo}
1092
+ * @memberof TenantApplicationsService
1093
+ */
1094
+ getNewlyCreatedGroupTypeInfo() {
1095
+ return this.newlyCreatedGroupType;
1096
+ }
1097
+ /**
1098
+ * Posts the edited tenant application form data to server using HttpService for updating the tenant information.
1099
+ * @param {CreateTenantPayload} editTenantPayload
1100
+ * @return {Observable<CreateTenantResponse>}
1101
+ * @memberof TenantApplicationsService
1102
+ */
1103
+ editTenant(editTenantPayload) {
1104
+ return this.httpService
1105
+ .putData(`${this.apiBaseUrl}/configurations/app/editTenant`, editTenantPayload)
1106
+ .pipe(map((response) => {
1107
+ return response;
1108
+ }), catchError((error) => {
1109
+ throw error;
1110
+ }));
1111
+ }
1112
+ /**
1113
+ * Sends update request to the server to update the tenant application status to active/inactive using HttpService and returns the success or failure response.
1114
+ * @param {UpdateTenantStatusRequestPayload} updateTenantStatusPayload
1115
+ * @return {Observable<UpdateTenantStatusResponse>}
1116
+ * @memberof TenantApplicationsService
1117
+ */
1118
+ updateTenantStatus(updateTenantStatusPayload) {
1119
+ return this.httpService
1120
+ .putData(`${this.apiBaseUrl}/configurations/app/updateStatus`, updateTenantStatusPayload)
1121
+ .pipe(map((response) => {
1122
+ return response;
1123
+ }), catchError((error) => {
1124
+ throw error;
1125
+ }));
1126
+ }
1127
+ /**
1128
+ * It generates Feature list from checkbox options generated in form array.
1129
+ * @param {CheckboxOption[]} features
1130
+ * @return {Features[]}
1131
+ * @memberof TenantApplicationsService
1132
+ */
1133
+ getFeaturesList(features) {
1134
+ this.featureList = [];
1135
+ features?.forEach((feature) => {
1136
+ if (feature.checked)
1137
+ this.featureList?.push({
1138
+ featureId: feature?.id,
1139
+ featureName: feature?.name,
1140
+ isDefault: feature?.checked,
1141
+ });
1142
+ });
1143
+ return this.featureList;
1144
+ }
1145
+ /**
1146
+ * Gets roster type from server using HttpService.
1147
+ * @return {*} {Observable<GetRosterTypeOrSettingsResponse>}
1148
+ * @memberof TenantApplicationsService
1149
+ */
1150
+ getRosterType() {
1151
+ return this.httpService
1152
+ .getData(`${this.apiBaseUrl}/configurations/lookup/RosterType`)
1153
+ .pipe(map((response) => {
1154
+ return response;
1155
+ }), catchError((error) => {
1156
+ throw error;
1157
+ }));
1158
+ }
1159
+ /**
1160
+ * Gets group type settings from server using HttpService.
1161
+ * @return {*} {Observable<GetRosterTypeOrSettingsResponse>}
1162
+ * @memberof TenantApplicationsService
1163
+ */
1164
+ getGroupTypeSettings() {
1165
+ return this.httpService
1166
+ .getData(`${this.apiBaseUrl}/configurations/lookup/GT_Settings`)
1167
+ .pipe(map((response) => {
1168
+ return response;
1169
+ }), catchError((error) => {
1170
+ throw error;
1171
+ }));
1172
+ }
1173
+ /**
1174
+ * Posts the group type details to server using HttpService to create new group type.
1175
+ * @param {CreateGroupTypeRequestPayload} createGroupTypePayload
1176
+ * @return {*} {Observable<CreateGroupTypeResponse>}
1177
+ * @memberof TenantApplicationsService
1178
+ */
1179
+ createGroupType(createGroupTypePayload) {
1180
+ return this.httpService
1181
+ .postData(`${this.apiBaseUrl}/configurations/config/groupType`, createGroupTypePayload)
1182
+ .pipe(map((response) => {
1183
+ return response;
1184
+ }), catchError((error) => {
1185
+ throw error;
1186
+ }));
1187
+ }
1188
+ /**
1189
+ * Returns sorted role list data.
1190
+ * @param {Role[]} roleList
1191
+ * @return {Role[]}
1192
+ * @memberof TenantApplicationsService
1193
+ */
1194
+ sortRolesByRoleType(roleList) {
1195
+ return roleList.sort((a, b) => a?.viewOrder - b?.viewOrder);
1196
+ }
1197
+ /**
1198
+ * Posts the role details to server using HttpService for deleting the role.
1199
+ * @param {DeleteRoleRequestPayload} deleteRoleRequestPayload
1200
+ * @return {Observable<DeleteRoleResponse>}
1201
+ * @memberof TenantApplicationsService
1202
+ */
1203
+ deleteRole(deleteRolePayload) {
1204
+ return this.httpService
1205
+ .putData(`${this.apiBaseUrl}/groups/role/deleteRole`, deleteRolePayload)
1206
+ .pipe(map((response) => {
1207
+ return response;
1208
+ }), catchError((error) => {
1209
+ throw error;
1210
+ }));
1211
+ }
1212
+ /**
1213
+ * Gets group types from server using HttpService.
1214
+ * @param {string} appId
1215
+ * @return {Observable<ViewGroupTypeResponse>}
1216
+ * @memberof TenantApplicationsService
1217
+ */
1218
+ getGroupTypes(appId) {
1219
+ return this.httpService
1220
+ .getData(`${this.apiBaseUrl}/configurations/config/appGroupTypeDetails/${appId}`)
1221
+ .pipe(map((response) => {
1222
+ return response;
1223
+ }), catchError((error) => {
1224
+ throw error;
1225
+ }));
1226
+ }
1227
+ /**
1228
+ * Sets group type details.
1229
+ * @param {ViewGroupTypeResponse} groupTypes
1230
+ * @memberof TenantApplicationsService
1231
+ */
1232
+ setGroupTypeDetails(groupTypes) {
1233
+ this.groupTypes = groupTypes;
1234
+ }
1235
+ /**
1236
+ * Returns group type details.
1237
+ * @return {ViewGroupTypeResponse}
1238
+ * @memberof TenantApplicationsService
1239
+ */
1240
+ getGroupTypeDetails() {
1241
+ return this.groupTypes;
1242
+ }
1243
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsService, deps: [{ token: i4.HttpService }, { token: TenantPermissionsService }, { token: TenantPermissionsMapService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1244
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsService, providedIn: 'root' }); }
1245
+ }
1246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsService, decorators: [{
1247
+ type: Injectable,
1248
+ args: [{
1249
+ providedIn: 'root',
1250
+ }]
1251
+ }], ctorParameters: function () { return [{ type: i4.HttpService }, { type: TenantPermissionsService }, { type: TenantPermissionsMapService }]; } });
1252
+
1253
+ class CreateTenantApplicationComponent {
1254
+ constructor(
1255
+ // eslint-disable-next-line no-unused-vars
1256
+ fileUploadService,
1257
+ // eslint-disable-next-line no-unused-vars
1258
+ tenantAppService,
1259
+ // eslint-disable-next-line no-unused-vars
1260
+ sharedService // eslint-disable-next-line no-empty-function
1261
+ ) {
1262
+ this.fileUploadService = fileUploadService;
1263
+ this.tenantAppService = tenantAppService;
1264
+ this.sharedService = sharedService;
1265
+ this.destroy$ = new Subject();
1266
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1267
+ this.constants = screenText;
1268
+ this.createTenantTexts = this.constants?.createTenant;
1269
+ this.leftButtonLabel = this.createTenantTexts?.label?.leftButtonLabel;
1270
+ this.rightButtonLabel = this.createTenantTexts?.label?.rightButtonLabel;
1271
+ this.colWidth = { xs: 12, xl: 12, sm: 12, md: 12, lg: 12 };
1272
+ this.actionButtonAlign = AlignType.LEFT;
1273
+ this.submitFormResponse = new EventEmitter();
1274
+ this.formCancel = new EventEmitter();
1275
+ this.allowedFileTypes = [
1276
+ AllowedFileTypes.JPG,
1277
+ AllowedFileTypes.PNG,
1278
+ AllowedFileTypes.SVG,
1279
+ ];
1280
+ this.isAppLogoModified = false;
1281
+ }
1282
+ ngOnInit() {
1283
+ this.tenantFunctionType = this.tenantAppService?.getTenantFunctionType();
1284
+ this.selectedTenantInfo =
1285
+ this.tenantAppService?.getSelectedTenantInformation();
1286
+ this.fileUploadService.setApiBaseUrl(this.tenantAppService?.apiBaseUrl);
1287
+ this.getFeatures();
1288
+ }
1289
+ /**
1290
+ * Gets the list of features and updates the form control.
1291
+ * @memberof CreateTenantApplicationComponent
1292
+ */
1293
+ getFeatures() {
1294
+ this.tenantAppService
1295
+ .getFeatures()
1296
+ .pipe(takeUntil(this.destroy$))
1297
+ .subscribe({
1298
+ next: (response) => {
1299
+ if (response?.status) {
1300
+ this.featuresOptions = this.tenantAppService.getFeatureOptions(response?.body);
1301
+ if (this.tenantFunctionType === TenantFunctionType.EDIT)
1302
+ this.featuresOptions?.forEach((option) => {
1303
+ if (this.selectedTenantInfo?.features?.some((feature) => feature?.featureId === option?.id)) {
1304
+ option.checked = true;
1305
+ }
1306
+ });
1307
+ this.getApplicationTypes();
1308
+ }
1309
+ },
1310
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1311
+ error: (error) => {
1312
+ this.sharedService.handleErrors(error, this.createTenantTexts?.errors);
1313
+ },
1314
+ });
1315
+ }
1316
+ /**
1317
+ * Gets the application/tenant types and updates the form control.
1318
+ * @memberof CreateTenantApplicationComponent
1319
+ */
1320
+ getApplicationTypes() {
1321
+ this.tenantAppService
1322
+ .getApplicationTypes()
1323
+ .pipe(takeUntil(this.destroy$))
1324
+ .subscribe({
1325
+ next: (response) => {
1326
+ if (response?.status) {
1327
+ this.appTypeOptions =
1328
+ this.tenantAppService.getApplicationTypeOptions(response?.body);
1329
+ if (this.tenantFunctionType === TenantFunctionType.EDIT) {
1330
+ this.appTypeOptions?.forEach((radioOption) => {
1331
+ if (radioOption?.id === this.selectedTenantInfo?.appType) {
1332
+ radioOption.checked = true;
1333
+ this.selectedAppTypeOption = radioOption;
1334
+ }
1335
+ else {
1336
+ radioOption.checked = false;
1337
+ }
1338
+ });
1339
+ }
1340
+ this.initializeCreateTenantFormGroup();
1341
+ }
1342
+ },
1343
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1344
+ error: (error) => {
1345
+ this.sharedService.handleErrors(error, this.createTenantTexts?.errors);
1346
+ },
1347
+ });
1348
+ }
1349
+ /**
1350
+ * Initialize the create tenant form group array.
1351
+ * @memberof CreateTenantApplicationComponent
1352
+ */
1353
+ initializeCreateTenantFormGroup() {
1354
+ this.createTenantFormGroup = {
1355
+ formGroup: [
1356
+ {
1357
+ legend: '',
1358
+ controls: [
1359
+ {
1360
+ type: FormControlType.INPUT,
1361
+ label: this.createTenantTexts?.label?.appTitle + '*',
1362
+ controlName: 'appTitle',
1363
+ value: this.tenantFunctionType === TenantFunctionType.EDIT
1364
+ ? this.selectedTenantInfo?.appTitle
1365
+ : '',
1366
+ validation: [
1367
+ Validators.required,
1368
+ Validators.maxLength(TenantsValidationPatterns.appTitleMaxLength),
1369
+ ],
1370
+ supportMessage: this.createTenantTexts?.supportText?.appTitle,
1371
+ requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
1372
+ maxErrorMessage: this.createTenantTexts?.message?.error?.limit?.appTitleMaxChars,
1373
+ ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appTitle,
1374
+ ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.appTitle,
1375
+ },
1376
+ {
1377
+ type: FormControlType.INPUT,
1378
+ label: `${this.createTenantTexts?.label?.appId}${this.tenantFunctionType === TenantFunctionType.EDIT ? '' : '*'}`,
1379
+ controlName: 'appId',
1380
+ value: this.tenantFunctionType === TenantFunctionType.EDIT
1381
+ ? this.selectedTenantInfo?.appId
1382
+ : '',
1383
+ validation: [
1384
+ Validators.required,
1385
+ Validators.maxLength(TenantsValidationPatterns.appIdMaxLength),
1386
+ Validators.pattern(TenantsValidationPatterns.alphaNumeric),
1387
+ ],
1388
+ disabled: this.tenantFunctionType === TenantFunctionType.EDIT,
1389
+ supportMessage: this.tenantFunctionType === TenantFunctionType.EDIT
1390
+ ? ''
1391
+ : this.createTenantTexts?.supportText?.appId,
1392
+ requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
1393
+ maxErrorMessage: this.createTenantTexts?.message?.error?.limit?.appIdMaxChars,
1394
+ patternErrorMessage: this.createTenantTexts?.message?.error?.pattern?.appId,
1395
+ ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appId,
1396
+ ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.appId,
1397
+ },
1398
+ {
1399
+ type: FormControlType?.FILE_UPLOAD,
1400
+ label: this.createTenantTexts?.label?.appLogo + '*',
1401
+ controlName: 'appLogo',
1402
+ requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
1403
+ value: this.tenantFunctionType === TenantFunctionType.EDIT
1404
+ ? this.selectedTenantInfo?.appLogo
1405
+ : '',
1406
+ placeholder: '',
1407
+ isFileSelected: this.tenantFunctionType === TenantFunctionType.EDIT,
1408
+ supportMessage: this.createTenantTexts?.supportText?.appLogo,
1409
+ validation: [Validators.required],
1410
+ ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appLogo,
1411
+ ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.appLogo,
1412
+ isMultiFileUpload: false,
1413
+ maxUploadFileSize: 2,
1414
+ maxFileSizeErrorMessage: this.createTenantTexts?.message?.error?.limit?.appLogoMaxSize,
1415
+ allowedFileTypeErrorMessage: this.createTenantTexts?.message?.error?.invalidFile,
1416
+ allowedFileTypes: this.allowedFileTypes,
1417
+ },
1418
+ {
1419
+ type: FormControlType.INPUT,
1420
+ label: this.createTenantTexts?.label?.appHeading + '*',
1421
+ controlName: 'appHeading',
1422
+ value: this.tenantFunctionType === TenantFunctionType.EDIT
1423
+ ? this.selectedTenantInfo?.appHeading
1424
+ : '',
1425
+ validation: [
1426
+ Validators.required,
1427
+ Validators.maxLength(TenantsValidationPatterns.appHeadingMaxLength),
1428
+ ],
1429
+ supportMessage: this.createTenantTexts?.supportText?.appHeading,
1430
+ requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
1431
+ maxErrorMessage: this.createTenantTexts?.message?.error?.limit
1432
+ ?.appHeadingMaxChars,
1433
+ patternErrorMessage: this.createTenantTexts?.message?.error?.pattern?.email,
1434
+ ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appHeading,
1435
+ ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.appHeading,
1436
+ },
1437
+ {
1438
+ type: FormControlType.TEXT_AREA,
1439
+ label: this.createTenantTexts?.label?.appDescription + '*',
1440
+ controlName: 'appDescription',
1441
+ value: this.tenantFunctionType === TenantFunctionType.EDIT
1442
+ ? this.selectedTenantInfo?.appDescription
1443
+ : '',
1444
+ validation: [
1445
+ Validators.required,
1446
+ Validators.maxLength(TenantsValidationPatterns.appDescriptionMaxLength),
1447
+ ],
1448
+ supportMessage: this.createTenantTexts?.supportText?.appDescription,
1449
+ requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
1450
+ maxErrorMessage: this.createTenantTexts?.message?.error?.limit
1451
+ ?.appDescriptionMaxChars,
1452
+ maxCharCount: TenantsValidationPatterns.appDescriptionMaxLength,
1453
+ ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appDescription,
1454
+ ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById
1455
+ ?.appDescription,
1456
+ ariaMultiline: true,
1457
+ isResize: true,
1458
+ },
1459
+ {
1460
+ type: FormControlType.COLOR_PICKER,
1461
+ label: this.createTenantTexts?.label?.appBgColor + '*',
1462
+ controlName: 'backgroundColor',
1463
+ value: '',
1464
+ defaultColor: this.tenantFunctionType === TenantFunctionType.EDIT
1465
+ ? this.selectedTenantInfo?.backgroundColor
1466
+ : '',
1467
+ placeholder: '',
1468
+ supportMessage: this.createTenantTexts?.supportText?.appBgColor,
1469
+ validation: [Validators.required, validColorValidator()],
1470
+ requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
1471
+ invalidColorErrorMessage: this.createTenantTexts?.message?.error?.invalidColor,
1472
+ ariaLabel: this.createTenantTexts?.supportText?.appBgColor,
1473
+ ariaDescribedById: this.createTenantTexts?.supportText?.appBgColor,
1474
+ },
1475
+ {
1476
+ type: FormControlType.INPUT,
1477
+ label: this.createTenantTexts?.label?.appHelpLink + '*',
1478
+ controlName: 'appHelpLink',
1479
+ value: this.tenantFunctionType === TenantFunctionType.EDIT
1480
+ ? this.selectedTenantInfo?.appHelpLink
1481
+ : '',
1482
+ validation: [
1483
+ Validators.required,
1484
+ Validators.pattern(TenantsValidationPatterns.url),
1485
+ ],
1486
+ supportMessage: this.createTenantTexts?.supportText?.appHelpLink,
1487
+ requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
1488
+ patternErrorMessage: this.createTenantTexts?.message?.error?.pattern?.appHelpLink,
1489
+ ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appHelpLink,
1490
+ ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.appHelpLink,
1491
+ },
1492
+ {
1493
+ type: FormControlType.CHECKBOX,
1494
+ label: this.createTenantTexts?.label?.featuresList + '*',
1495
+ controlName: 'features',
1496
+ checkboxOptions: this.featuresOptions,
1497
+ minSelectionRequired: 1,
1498
+ ariaLabel: this.createTenantTexts?.label?.ariaLabel?.featuresList,
1499
+ ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.featuresList,
1500
+ supportMessage: this.createTenantTexts?.supportText?.featuresList,
1501
+ requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
1502
+ validation: [Validators.required],
1503
+ },
1504
+ {
1505
+ type: FormControlType.INPUT,
1506
+ label: this.createTenantTexts?.label?.domainURL + '*',
1507
+ controlName: 'appDomainUrl',
1508
+ value: this.tenantFunctionType === TenantFunctionType.EDIT
1509
+ ? this.selectedTenantInfo?.appDomainUrl
1510
+ : '',
1511
+ validation: [
1512
+ Validators.required,
1513
+ Validators.pattern(TenantsValidationPatterns.url),
1514
+ ],
1515
+ supportMessage: this.createTenantTexts?.supportText?.domainURL,
1516
+ requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
1517
+ patternErrorMessage: this.createTenantTexts?.message?.error?.pattern?.appDomainUrl,
1518
+ ariaLabel: this.createTenantTexts?.label?.ariaLabel?.domainURL,
1519
+ ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.domainURL,
1520
+ },
1521
+ {
1522
+ type: FormControlType.RADIO,
1523
+ label: `${this.createTenantTexts?.label?.appType}${this.tenantFunctionType === TenantFunctionType.EDIT ? '' : '*'}`,
1524
+ controlName: 'appType',
1525
+ value: this.tenantFunctionType === TenantFunctionType.EDIT
1526
+ ? this.selectedTenantInfo?.appType
1527
+ : '',
1528
+ disabled: this.tenantFunctionType === TenantFunctionType.EDIT,
1529
+ radioOptions: this.appTypeOptions,
1530
+ validation: [Validators.required],
1531
+ requiredErrorMessage: this.createTenantTexts?.message?.error?.required,
1532
+ ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appType,
1533
+ ariaDescribedById: this.createTenantTexts?.label?.ariaDescribedById?.appType,
1534
+ },
1535
+ ],
1536
+ },
1537
+ ],
1538
+ };
1539
+ }
1540
+ /**
1541
+ * Creates Payload and gets presigned url for file upload on form submission.
1542
+ * @param {FormGroup[]} form
1543
+ * @memberof CreateTenantApplicationComponent
1544
+ */
1545
+ onCreateTenantFormSubmit(form) {
1546
+ form[0]?.markAllAsTouched();
1547
+ if (form[0].status === FormStatus.VALID) {
1548
+ this.createTenantPayload = this.getCreateTenantPayload(form[0].getRawValue());
1549
+ if (this.tenantFunctionType === TenantFunctionType.EDIT &&
1550
+ (!this.isAppLogoModified || !this.file)) {
1551
+ this.editTenant();
1552
+ }
1553
+ else if (this.file) {
1554
+ this.getFileUploadPresignedUrl(this.file, form[0]?.controls['appId']?.value);
1555
+ }
1556
+ else {
1557
+ this.createTenant();
1558
+ }
1559
+ }
1560
+ }
1561
+ /**
1562
+ * Creates a new tenant on form submission.
1563
+ * @memberof CreateTenantApplicationComponent
1564
+ */
1565
+ createTenant() {
1566
+ this.tenantAppService
1567
+ .createTenant(this.createTenantPayload)
1568
+ .pipe(takeUntil(this.destroy$))
1569
+ .subscribe({
1570
+ next: (response) => {
1571
+ if (response.status) {
1572
+ this.tenantAppService.setNewTenantInfo(this.createTenantPayload?.payload);
1573
+ this.submitFormResponse.emit(response);
1574
+ }
1575
+ },
1576
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1577
+ error: (error) => {
1578
+ this.sharedService.handleErrors(error, this.createTenantTexts?.errors);
1579
+ },
1580
+ });
1581
+ }
1582
+ /**
1583
+ * Updates the modified tenant information on form submission.
1584
+ * @memberof CreateTenantApplicationComponent
1585
+ */
1586
+ editTenant() {
1587
+ this.tenantAppService
1588
+ .editTenant(this.createTenantPayload)
1589
+ .pipe(takeUntil(this.destroy$))
1590
+ .subscribe({
1591
+ next: (response) => {
1592
+ if (response?.status) {
1593
+ this.updatedTenantBasicInfo = this.createTenantPayload?.payload;
1594
+ this.updatedTenantBasicInfo.features =
1595
+ this.tenantAppService.getFeaturesList(this.featuresOptions);
1596
+ this.tenantAppService.setSelectedTenantInformation(this.updatedTenantBasicInfo);
1597
+ this.submitFormResponse.emit(response);
1598
+ }
1599
+ },
1600
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1601
+ error: (error) => {
1602
+ this.sharedService.handleErrors(error, this.createTenantTexts?.errors);
1603
+ },
1604
+ });
1605
+ }
1606
+ /**
1607
+ * Constructs create tenant payload from the form data and returns.
1608
+ * @param {*} formData
1609
+ * @return {CreateTenantRequestPayload}
1610
+ * @memberof CreateTenantApplicationComponent
1611
+ */
1612
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1613
+ getCreateTenantPayload(formData) {
1614
+ const payload = {
1615
+ payload: {
1616
+ appTitle: formData?.appTitle,
1617
+ appId: formData?.appId,
1618
+ appHeading: formData?.appHeading,
1619
+ appDescription: formData?.appDescription,
1620
+ backgroundColor: formData?.backgroundColor,
1621
+ appLogo: formData?.appLogo,
1622
+ appDomainUrl: formData?.appDomainUrl,
1623
+ appHelpLink: formData?.appHelpLink,
1624
+ appType: this.selectedAppTypeOption?.id,
1625
+ features: this.tenantAppService.getFeatureIds(this.featuresOptions),
1626
+ },
1627
+ };
1628
+ return payload;
1629
+ }
1630
+ /**
1631
+ * Gets create tenant form group reference and disables default features.
1632
+ * @param {FormGroup[]} form
1633
+ * @memberof CreateTenantApplicationComponent
1634
+ */
1635
+ getCreateTenantFormGroupRef(form) {
1636
+ this.createTenantFormGroupRef = form[0];
1637
+ const featuresFormArray = this.createTenantFormGroupRef?.controls['features'];
1638
+ this.featuresOptions?.forEach((option, index) => {
1639
+ if (option?.disabled) {
1640
+ featuresFormArray?.at(index).disable();
1641
+ }
1642
+ });
1643
+ }
1644
+ /**
1645
+ * Updates createTenantFormGroupRef on add or edit tenant form change event.
1646
+ * @param {FormGroup[]} form
1647
+ * @memberof CreateTenantApplicationComponent
1648
+ */
1649
+ onCreateTenantFormChange(form) {
1650
+ this.createTenantFormGroupRef = form[0];
1651
+ this.isAppLogoModified =
1652
+ this.createTenantFormGroupRef?.controls['appLogo']?.dirty &&
1653
+ this.tenantFunctionType === TenantFunctionType.EDIT;
1654
+ }
1655
+ /**
1656
+ * Emits form cancel event.
1657
+ * @memberof CreateTenantApplicationComponent
1658
+ */
1659
+ onFormCancel() {
1660
+ this.formCancel.emit();
1661
+ }
1662
+ /**
1663
+ * Gets the selected file when the file is browsed and on formFileUpload event is triggered.
1664
+ * @param {File | FileList} file
1665
+ */
1666
+ onFormFileUpload(file) {
1667
+ this.file = file;
1668
+ }
1669
+ /**
1670
+ * Gets pre-signed URL to upload the selected file to AWS S3 bucket.
1671
+ * @param {File | FileList} file
1672
+ */
1673
+ getFileUploadPresignedUrl(file, appId) {
1674
+ this.fileUploadService
1675
+ .getFileUploadPresignedUrl(file, appId)
1676
+ .pipe(takeUntil(this.destroy$))
1677
+ .subscribe({
1678
+ next: (response) => {
1679
+ this.fileUploadPresignedUrl = response?.body;
1680
+ if (this.fileUploadPresignedUrl)
1681
+ this.uploadFileToS3(file);
1682
+ },
1683
+ // 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
1684
+ error: (error) => {
1685
+ this.sharedService.handleErrors(error, this.createTenantTexts?.errors);
1686
+ },
1687
+ });
1688
+ }
1689
+ /**
1690
+ * Uploads the file to AWS S3 bucket and submit the form data to API to create new tenant.
1691
+ * @param {File | FileList} file
1692
+ */
1693
+ uploadFileToS3(file) {
1694
+ this.fileUploadService
1695
+ .uploadFileToS3(this.fileUploadPresignedUrl, file)
1696
+ .pipe(takeUntil(this.destroy$))
1697
+ .subscribe({
1698
+ // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
1699
+ next: (response) => {
1700
+ this.fileUploadService.setFileUploadStatus(true);
1701
+ // eslint-disable-next-line no-unused-expressions
1702
+ this.tenantFunctionType === TenantFunctionType.EDIT
1703
+ ? this.editTenant()
1704
+ : this.createTenant();
1705
+ },
1706
+ // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
1707
+ error: (error) => {
1708
+ this.fileUploadService.setFileUploadStatus(false);
1709
+ this.sharedService.handleErrors(error, this.createTenantTexts?.errors);
1710
+ },
1711
+ });
1712
+ }
1713
+ /**
1714
+ * Triggers when the color picker values has been changed.
1715
+ * @param {string} color
1716
+ */
1717
+ onColorPickerChange(color) {
1718
+ this.selectedColor = color;
1719
+ }
1720
+ /**
1721
+ * Triggers when the radio option has been changed.
1722
+ * @param {RadioOption} radioOption
1723
+ */
1724
+ onRadioOptionSelected(radioOption) {
1725
+ this.selectedAppTypeOption = radioOption;
1726
+ }
1727
+ /**
1728
+ * Implementation of ngOnDestroy lifecycle hook method to unsubscribe the open observable subscriptions.
1729
+ * @memberof CreateTenantApplicationComponent
1730
+ */
1731
+ ngOnDestroy() {
1732
+ this.destroy$.next(true);
1733
+ this.destroy$.unsubscribe();
1734
+ }
1735
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateTenantApplicationComponent, deps: [{ token: i2.FileUploadService }, { token: TenantApplicationsService }, { token: i2$1.SharedService }], target: i0.ɵɵFactoryTarget.Component }); }
1736
+ 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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-create-tenant,.ieeesa-modal-dialog.ieeesa-edit-tenant{max-width:60vw!important}.ieeesa-modal-dialog.ieeesa-create-tenant .mat-mdc-dialog-container,.ieeesa-modal-dialog.ieeesa-edit-tenant .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-tenant .mat-mdc-dialog-surface,.ieeesa-modal-dialog.ieeesa-edit-tenant .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal,.ieeesa-modal-dialog.ieeesa-edit-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,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .mat-mdc-dialog-content{padding:1.5em 1em .75em!important}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal-title,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal-title{margin-left:15px!important}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__actions,.ieeesa-modal-dialog.ieeesa-edit-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,.ieeesa-modal-dialog.ieeesa-edit-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,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field__content,.ieeesa-modal-dialog.ieeesa-edit-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,.ieeesa-modal-dialog.ieeesa-edit-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 .ieeesa-input-field__content,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field__content{color:#1c1b1f}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.app-description,.app-logo),.ieeesa-modal-dialog.ieeesa-edit-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,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .mat-mdc-form-field-flex{width:62.5em}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .mat-mdc-form-field-subscript-wrapper{display:none}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.app-description,.app-logo),.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.app-description,.app-logo){width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "fileUploadStatus", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "isRightButtonNeeded", "actionButtonAlign", "fileDownloadAndDeleteConfig"], 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", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
1737
+ }
1738
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateTenantApplicationComponent, decorators: [{
1739
+ type: Component,
1740
+ 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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-create-tenant,.ieeesa-modal-dialog.ieeesa-edit-tenant{max-width:60vw!important}.ieeesa-modal-dialog.ieeesa-create-tenant .mat-mdc-dialog-container,.ieeesa-modal-dialog.ieeesa-edit-tenant .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-tenant .mat-mdc-dialog-surface,.ieeesa-modal-dialog.ieeesa-edit-tenant .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal,.ieeesa-modal-dialog.ieeesa-edit-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,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .mat-mdc-dialog-content{padding:1.5em 1em .75em!important}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal-title,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal-title{margin-left:15px!important}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__actions,.ieeesa-modal-dialog.ieeesa-edit-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,.ieeesa-modal-dialog.ieeesa-edit-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,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field__content,.ieeesa-modal-dialog.ieeesa-edit-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,.ieeesa-modal-dialog.ieeesa-edit-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 .ieeesa-input-field__content,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field__content{color:#1c1b1f}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field:has(.mdc-text-field--disabled) .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.app-description,.app-logo),.ieeesa-modal-dialog.ieeesa-edit-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,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .mat-mdc-form-field-flex{width:62.5em}.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .mat-mdc-form-field-subscript-wrapper{display:none}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.app-description,.app-logo),.ieeesa-modal-dialog.ieeesa-edit-tenant .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.app-description,.app-logo){width:100%}}\n"] }]
1741
+ }], ctorParameters: function () { return [{ type: i2.FileUploadService }, { type: TenantApplicationsService }, { type: i2$1.SharedService }]; }, propDecorators: { dynamicFormComponent: [{
1742
+ type: ViewChild,
1743
+ args: [DynamicFormComponent]
1744
+ }], submitFormResponse: [{
1745
+ type: Output
1746
+ }], formCancel: [{
1747
+ type: Output
1748
+ }] } });
1749
+
1750
+ class ViewTenantsListComponent {
1751
+ constructor(
1752
+ // eslint-disable-next-line no-unused-vars
1753
+ dialog,
1754
+ // eslint-disable-next-line no-unused-vars
1755
+ alertService,
1756
+ // eslint-disable-next-line no-unused-vars
1757
+ breakpointObserverService,
1758
+ // eslint-disable-next-line no-unused-vars
1759
+ sharedService,
1760
+ // eslint-disable-next-line no-unused-vars
1761
+ tenantApplicationsService,
1762
+ // eslint-disable-next-line no-unused-vars
1763
+ router) {
1764
+ this.dialog = dialog;
1765
+ this.alertService = alertService;
1766
+ this.breakpointObserverService = breakpointObserverService;
1767
+ this.sharedService = sharedService;
1768
+ this.tenantApplicationsService = tenantApplicationsService;
1769
+ this.router = router;
1770
+ this.destroy$ = new Subject();
1771
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1772
+ this.constants = screenText;
1773
+ this.viewTenantsConstants = this.constants?.viewTenants;
1774
+ this.isMobileView = false;
1775
+ this.tenantsPageInfo = {
1776
+ tenantsTitle: '',
1777
+ };
1778
+ this.apiBaseURL = '';
1779
+ this.defaultSortedColumn = ViewTenantsColumnSchemaDef.APP_ID;
1780
+ this.createTenant = new EventEmitter();
1781
+ this.viewTenantsDetails = new EventEmitter();
1782
+ this.tableActions = {
1783
+ isPaginationNeeded: true,
1784
+ };
1785
+ this.tableColumns = this.viewTenantsConstants?.tableColumns;
1786
+ this.emptyFieldValueReplacedBy = this.viewTenantsConstants?.emptyFieldValueReplacedBy;
1787
+ this.paginatorConfig = {
1788
+ recordsPerPage: this.viewTenantsConstants?.pageSizeOptions[0],
1789
+ pageSizeOptions: this.viewTenantsConstants.pageSizeOptions,
1790
+ totalRecords: 0,
1791
+ };
1792
+ this.permissionType = PermissionType;
1793
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1794
+ this.createTenantScreenTexts = this.constants?.createTenant;
1795
+ this.defaultColumnSortDirection = true;
1796
+ this.breakpointObserverService
1797
+ .getBreakpoint()
1798
+ .pipe(takeUntil(this.destroy$))
1799
+ .subscribe((result) => {
1800
+ this.isMobileView = result.matches;
1801
+ });
1802
+ }
1803
+ /**
1804
+ * Sets the user permissions, router config path, base API URL, table column schema and gets the tenants list.
1805
+ * @memberof ViewTenantsListComponent
1806
+ */
1807
+ ngOnInit() {
1808
+ this.userTenantsPermissions =
1809
+ this.tenantApplicationsService?.filterPermission(this.userPermissions);
1810
+ this.tenantApplicationsService?.setAppConfig(this.apiBaseURL, this.userPermissions);
1811
+ this.tenantsPageInfo = {
1812
+ tenantsTitle: this.viewTenantsConstants?.tenantsTitle,
1813
+ };
1814
+ this.routePaths = this.routePaths ?? this.constants?.routeConfigPath;
1815
+ this.sharedService?.setRoutePaths(this.routePaths);
1816
+ this.configureTableInfo();
1817
+ this.defaultSortedColumn = this.columnSchema[0].columnDef;
1818
+ this.getTenantsAndInitializeTableView(this.getTenantsPayload());
1819
+ }
1820
+ /**
1821
+ * Validates permission based access for provided feature.
1822
+ * @param {PermissionType} permissionType
1823
+ * @return {boolean}
1824
+ * @memberof ViewTenantsListComponent
1825
+ */
1826
+ validateAccess(permissionType) {
1827
+ return this.tenantApplicationsService.validateAccess(permissionType, this.userTenantsPermissions);
1828
+ }
1829
+ /**
1830
+ * Configures table schema to display the tenants in table view.
1831
+ * @memberof ViewTenantsListComponent
1832
+ */
1833
+ configureTableInfo() {
1834
+ this.columnSchema = [
1835
+ {
1836
+ id: 1,
1837
+ columnDef: ViewTenantsColumnSchemaDef.APP_ID,
1838
+ heading: this.tableColumns?.appId,
1839
+ columnType: TableColumnType.LINK,
1840
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1841
+ cellData: (element) => `${element.appId}`,
1842
+ isSortableColumn: true,
1843
+ },
1844
+ {
1845
+ id: 2,
1846
+ columnDef: ViewTenantsColumnSchemaDef.APP_TITLE,
1847
+ heading: this.tableColumns?.appTitle,
1848
+ columnType: TableColumnType.TEXT,
1849
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1850
+ cellData: (element) => `${element.appTitle ?? this.emptyFieldValueReplacedBy}`,
1851
+ isSortableColumn: true,
1852
+ },
1853
+ {
1854
+ id: 3,
1855
+ columnDef: ViewTenantsColumnSchemaDef.APP_DESCRIPTION,
1856
+ heading: this.tableColumns?.appDescription,
1857
+ columnType: TableColumnType.TEXT,
1858
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1859
+ cellData: (element) => `${element.appDescription ?? this.emptyFieldValueReplacedBy}`,
1860
+ },
1861
+ {
1862
+ id: 4,
1863
+ columnDef: ViewTenantsColumnSchemaDef.FEATURES,
1864
+ heading: this.tableColumns?.features,
1865
+ columnType: TableColumnType.TEXT,
1866
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1867
+ cellData: (element) => `${element?.features && element?.features?.length > 0
1868
+ ? this.formatFeaturesName(element?.features)
1869
+ : this.emptyFieldValueReplacedBy}`,
1870
+ },
1871
+ {
1872
+ id: 5,
1873
+ columnDef: ViewTenantsColumnSchemaDef.STATUS,
1874
+ heading: this.tableColumns?.status,
1875
+ columnType: TableColumnType.TEXT,
1876
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1877
+ cellData: (element) => `${element.status ? TenantStatus.ACTIVE : TenantStatus.INACTIVE}`,
1878
+ },
1879
+ ];
1880
+ }
1881
+ /**
1882
+ * Format the features name in to single sentence with comma separated.
1883
+ * @memberof ViewTenantsListComponent
1884
+ */
1885
+ formatFeaturesName(features) {
1886
+ return features
1887
+ .map((feature) => {
1888
+ // eslint-disable-next-line no-unused-expressions
1889
+ return feature.featureName;
1890
+ })
1891
+ ?.join(', ');
1892
+ }
1893
+ /**
1894
+ * Fetching details of tenants and initialize table view
1895
+ * @param {GetTenantsPayload} payload
1896
+ * @memberof ViewTenantsListComponent
1897
+ */
1898
+ getTenantsAndInitializeTableView(payload) {
1899
+ this.tenantApplicationsService
1900
+ .getTenantsList(payload)
1901
+ .pipe(takeUntil(this.destroy$))
1902
+ .subscribe({
1903
+ next: (response) => {
1904
+ this.tableData = response?.body?.appDetails;
1905
+ this.paginatorConfig.totalRecords = response?.body
1906
+ ?.totalRecords;
1907
+ },
1908
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1909
+ error: (error) => {
1910
+ this.sharedService.handleErrors(error, this.constants?.errors);
1911
+ },
1912
+ });
1913
+ }
1914
+ /**
1915
+ * Sets the dialog options for create tenant modal and calls openModal method.
1916
+ * @return -returns nothing
1917
+ * @memberof ViewTenantsListComponent
1918
+ */
1919
+ openCreateTenantForm() {
1920
+ this.tenantApplicationsService.setTenantFunctionType(TenantFunctionType.CREATE);
1921
+ const dialogOptions = {
1922
+ heading: this.viewTenantsConstants?.addTenant,
1923
+ isCloseNeeded: true,
1924
+ componentReference: CreateTenantApplicationComponent,
1925
+ modalType: ModalType.FORM,
1926
+ };
1927
+ this.openModal(dialogOptions, 'ieeesa-create-tenant');
1928
+ }
1929
+ /**
1930
+ * Opens modal component with received params and handles form submission success and errors.
1931
+ * @param {*} dialogOptions
1932
+ * @param {string} [className]
1933
+ * @return -returns nothing
1934
+ * @memberof ViewTenantsListComponent
1935
+ */
1936
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-inferrable-types, no-unused-vars
1937
+ openModal(
1938
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1939
+ dialogOptions, className) {
1940
+ className = className ?? '';
1941
+ this.dialogRef = this.dialog?.open(ModalComponent, {
1942
+ data: dialogOptions,
1943
+ width: '',
1944
+ panelClass: ['ieeesa-modal-dialog', className],
1945
+ ariaModal: true,
1946
+ });
1947
+ this.dialogRef?.componentInstance?.submitFormResponse
1948
+ .pipe(takeUntil(this.destroy$))
1949
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, no-unused-vars
1950
+ .subscribe((result) => {
1951
+ this.dialogRef?.close();
1952
+ const appTitle = this.tenantApplicationsService.getNewTenantInfo?.appTitle;
1953
+ this.sharedService.showAlertMessage(AlertType?.SUCCESS, `${appTitle} ${this.createTenantScreenTexts?.message?.success?.submission}`);
1954
+ this.getTenantsAndInitializeTableView(this.getTenantsPayload());
1955
+ });
1956
+ this.dialogRef?.componentInstance?.formCancel
1957
+ .pipe(takeUntil(this.destroy$))
1958
+ .subscribe(() => {
1959
+ this.dialogRef?.close();
1960
+ });
1961
+ }
1962
+ /**
1963
+ * Sorts the tenants by application id or title in ascending or descending.
1964
+ * @param {Sort} sort
1965
+ * @memberof ViewTenantsListComponent
1966
+ */
1967
+ onSortTenants(sort) {
1968
+ this.defaultSortedColumn = sort.active;
1969
+ this.defaultColumnSortDirection =
1970
+ sort.direction === TableColumnSortDirection.ASCENDING;
1971
+ this.sortConfig = {
1972
+ sort: sort,
1973
+ isSortedByAscending: this.defaultColumnSortDirection,
1974
+ };
1975
+ this.getTenantsAndInitializeTableView(this.getTenantsPayload());
1976
+ }
1977
+ /**
1978
+ * Constructs and returns the payload for fetching the tenants list.
1979
+ * @returns GetTenantsPayload
1980
+ */
1981
+ getTenantsPayload() {
1982
+ const payload = {
1983
+ payload: {
1984
+ offset: this.pageEvent?.pageIndex
1985
+ ? this.pageEvent?.pageIndex
1986
+ : 0,
1987
+ pageSize: this.pageEvent?.pageSize
1988
+ ? this.pageEvent?.pageSize
1989
+ : this.paginatorConfig?.recordsPerPage,
1990
+ sortedBy: this.sortConfig?.sort?.active
1991
+ ? this.sortConfig?.sort?.active
1992
+ : ViewTenantsColumnSchemaDef.APP_ID,
1993
+ sortedOrderBy: this.filterSortedOrderBy(this.sortConfig?.isSortedByAscending
1994
+ ? this.sortConfig?.isSortedByAscending
1995
+ : this.defaultColumnSortDirection),
1996
+ },
1997
+ };
1998
+ return payload;
1999
+ }
2000
+ /**
2001
+ * Returning sorting order according to column definition.
2002
+ * @param defaultColumnSortDirection
2003
+ * @returns SortOrderBy.ASC | SortOrderBy.DESC
2004
+ */
2005
+ filterSortedOrderBy(defaultColumnSortDirection) {
2006
+ return defaultColumnSortDirection ? SortOrderBy.ASC : SortOrderBy.DESC;
2007
+ }
2008
+ /**
2009
+ * Get the the records according to pagination.
2010
+ * @param {{
2011
+ * pageOffset: number;
2012
+ * pageLimit: number;
2013
+ * }} pageEvent
2014
+ * @memberof ViewTenantsListComponent
2015
+ */
2016
+ onTablePaginationChange(pageEvent) {
2017
+ this.pageEvent = pageEvent;
2018
+ this.getTenantsAndInitializeTableView(this.getTenantsPayload());
2019
+ }
2020
+ /**
2021
+ * Navigates to view tenants detail component.
2022
+ * @param {{tenantInfo: TenantBasicInfo}}
2023
+ * @memberof ViewTenantsListComponent
2024
+ */
2025
+ navigateToViewTenantDetails(tenantInfo) {
2026
+ if (tenantInfo) {
2027
+ this.tenantApplicationsService.setSelectedTenantInformation(tenantInfo);
2028
+ }
2029
+ if (this.routePaths?.viewTenantDetails)
2030
+ this.router.navigate([this.routePaths?.viewTenantDetails], { queryParams: { id: tenantInfo?.appId } });
2031
+ else
2032
+ this.viewTenantsDetails.emit(tenantInfo);
2033
+ }
2034
+ /**
2035
+ * NgOnDestroy performs necessary cleanup tasks, such as unsubscribing from subscription when the component is being destroyed.
2036
+ * @memberof ViewTenantsListComponent
2037
+ * @return -returns nothing
2038
+ */
2039
+ ngOnDestroy() {
2040
+ this.destroy$.next(true);
2041
+ this.destroy$.unsubscribe();
2042
+ }
2043
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewTenantsListComponent, deps: [{ token: i1.MatDialog }, { token: i4.AlertsService }, { token: i2.BreakpointObserverService }, { token: i2$1.SharedService }, { token: TenantApplicationsService }, { token: i6.Router }], target: i0.ɵɵFactoryTarget.Component }); }
2044
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ViewTenantsListComponent, isStandalone: true, selector: "ieeesa-view-tenants-list", inputs: { tenantsPageInfo: "tenantsPageInfo", apiBaseURL: "apiBaseURL", routePaths: "routePaths", userPermissions: "userPermissions", defaultSortedColumn: "defaultSortedColumn" }, outputs: { createTenant: "createTenant", viewTenantsDetails: "viewTenantsDetails" }, ngImport: i0, template: "<div\r\n class=\"ieeesa-view-tenants-list\"\r\n [ngClass]=\"{ 'ieeesa-view-tenants-list__mobile': isMobileView }\"\r\n>\r\n <p class=\"ieeesa-headline-lg-32 py-3 mb-0\">\r\n {{ tenantsPageInfo.tenantsTitle }}\r\n </p>\r\n <div class=\"ieeesa-view-tenants-list__content\">\r\n <div class=\"d-flex justify-content-end\">\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button me-3\"\r\n [attr.aria-label]=\"viewTenantsConstants?.ariaLabel?.add\"\r\n (click)=\"openCreateTenantForm()\"\r\n *ngIf=\"validateAccess(permissionType.MANAGE_TENANT)\"\r\n >\r\n {{ viewTenantsConstants?.addTenant }}\r\n </button>\r\n </div>\r\n <ieeesa-data-table\r\n [tableDataInfo]=\"tableData\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [isCellTextOverflowEllipsis]=\"true\"\r\n [tableActions]=\"tableActions\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [defaultSortedColumn]=\"defaultSortedColumn\"\r\n (sortChange)=\"onSortTenants($event)\"\r\n (paginationChange)=\"onTablePaginationChange($event)\"\r\n (rowLink)=\"navigateToViewTenantDetails($event)\"\r\n ></ieeesa-data-table>\r\n </div>\r\n</div>\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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-view-tenants-list{background-color:#f2f2f2;padding:0 24px 48px}.ieeesa-view-tenants-list__mobile{background-color:#fff}.ieeesa-view-tenants-list__content{background-color:#fff;box-shadow:0 1px 4px #00000040,0 4px #00b5e2 inset;padding:24px 0}.ieeesa-view-tenants-list__content .cdk-column-appId{min-width:9em;max-width:9em}.ieeesa-view-tenants-list__content .cdk-column-appTitle{min-width:10em;max-width:10em}.ieeesa-view-tenants-list__content .cdk-column-appDescription{min-width:20.25em;max-width:20.25em}.ieeesa-view-tenants-list__content .cdk-column-features{min-width:17em;max-width:17em}.ieeesa-view-tenants-list .ieeesa-data-table__pagination-container{padding-left:11px;padding-right:11px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "nestedTableDataInfo", "columnSchemaInfo", "nestedTableColumnSchemaInfo", "tableActions", "hasNestedTable", "tableColumnActions", "tableColumnActionMenuSize", "tableRowActions", "nestedTableRowActions", "caption", "viewAll", "paginatorConfig", "nestedPaginatorConfig", "legends", "pageIndex", "pageSize", "searchPlaceHolderText", "rowEditButton", "rowDeleteButton", "tableEditButton", "tableDeleteButton", "rowExpandButton", "rowCollapseButton", "isNestedTableHeaderNeeded", "addButton", "defaultColumnSortDirection", "defaultSortedColumn", "isClearSortNeeded", "filters", "selectedFilterOptions", "appliedFilterOptions", "searchType", "className", "searchSupportMessage", "inbuiltSortingNeeded", "isCellTextOverflowEllipsis", "isTableHeaderNeeded", "tableColumnsHeaderText", "verticalColumnHeaderNumber", "scrollbarSupportMessage", "isScrollSupportMessageNeeded", "isStickyHeaderNeeded", "customStickyHeaderNeeded", "headerElementClassName", "minCharToSearch", "searchResultMessage", "rowMenuActionIcon", "canDisableCheckbox", "isEllipsisRequiredForLink"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "menuActionClick", "selectActionMenu", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue", "sortChange", "selectedRowsInfo", "rowExpansionClick", "tableColumnMenuActionClick", "tableColumnMenuToggleButton", "rowSlideToggle"] }], encapsulation: i0.ViewEncapsulation.None }); }
2045
+ }
2046
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewTenantsListComponent, decorators: [{
2047
+ type: Component,
2048
+ args: [{ selector: 'ieeesa-view-tenants-list', standalone: true, imports: [CommonModule, MatButtonModule, DataTableComponent], encapsulation: ViewEncapsulation.None, template: "<div\r\n class=\"ieeesa-view-tenants-list\"\r\n [ngClass]=\"{ 'ieeesa-view-tenants-list__mobile': isMobileView }\"\r\n>\r\n <p class=\"ieeesa-headline-lg-32 py-3 mb-0\">\r\n {{ tenantsPageInfo.tenantsTitle }}\r\n </p>\r\n <div class=\"ieeesa-view-tenants-list__content\">\r\n <div class=\"d-flex justify-content-end\">\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button me-3\"\r\n [attr.aria-label]=\"viewTenantsConstants?.ariaLabel?.add\"\r\n (click)=\"openCreateTenantForm()\"\r\n *ngIf=\"validateAccess(permissionType.MANAGE_TENANT)\"\r\n >\r\n {{ viewTenantsConstants?.addTenant }}\r\n </button>\r\n </div>\r\n <ieeesa-data-table\r\n [tableDataInfo]=\"tableData\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [isCellTextOverflowEllipsis]=\"true\"\r\n [tableActions]=\"tableActions\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [defaultSortedColumn]=\"defaultSortedColumn\"\r\n (sortChange)=\"onSortTenants($event)\"\r\n (paginationChange)=\"onTablePaginationChange($event)\"\r\n (rowLink)=\"navigateToViewTenantDetails($event)\"\r\n ></ieeesa-data-table>\r\n </div>\r\n</div>\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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-view-tenants-list{background-color:#f2f2f2;padding:0 24px 48px}.ieeesa-view-tenants-list__mobile{background-color:#fff}.ieeesa-view-tenants-list__content{background-color:#fff;box-shadow:0 1px 4px #00000040,0 4px #00b5e2 inset;padding:24px 0}.ieeesa-view-tenants-list__content .cdk-column-appId{min-width:9em;max-width:9em}.ieeesa-view-tenants-list__content .cdk-column-appTitle{min-width:10em;max-width:10em}.ieeesa-view-tenants-list__content .cdk-column-appDescription{min-width:20.25em;max-width:20.25em}.ieeesa-view-tenants-list__content .cdk-column-features{min-width:17em;max-width:17em}.ieeesa-view-tenants-list .ieeesa-data-table__pagination-container{padding-left:11px;padding-right:11px}\n"] }]
2049
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i4.AlertsService }, { type: i2.BreakpointObserverService }, { type: i2$1.SharedService }, { type: TenantApplicationsService }, { type: i6.Router }]; }, propDecorators: { tenantsPageInfo: [{
2050
+ type: Input
2051
+ }], apiBaseURL: [{
2052
+ type: Input
2053
+ }], routePaths: [{
2054
+ type: Input
2055
+ }], userPermissions: [{
2056
+ type: Input
2057
+ }], defaultSortedColumn: [{
2058
+ type: Input
2059
+ }], createTenant: [{
2060
+ type: Output
2061
+ }], viewTenantsDetails: [{
2062
+ type: Output
2063
+ }] } });
2064
+
2065
+ var FeaturePermissionId;
2066
+ (function (FeaturePermissionId) {
2067
+ // eslint-disable-next-line no-unused-vars
2068
+ FeaturePermissionId["MEETINGS_AND_EVENTS"] = "FEATURE_049753e8-ea5c-4fad-adb0-e1456e69c7a5";
2069
+ // eslint-disable-next-line no-unused-vars
2070
+ FeaturePermissionId["BALLOTS"] = "FEATURE_a0ad3616-20dc-43da-813f-9b76d33f227a";
2071
+ })(FeaturePermissionId || (FeaturePermissionId = {}));
2072
+
2073
+ class TenantBasicDetailsComponent {
2074
+ set tenantDetails(value) {
2075
+ this.basicInfo = value;
2076
+ this.logo = this.basicInfo?.appLogo;
2077
+ this.selectedAppType = this.basicInfo?.appType;
2078
+ if (this.basicInfo) {
2079
+ this.getAppType();
2080
+ this.getFileDownloadPresignedUrls(this.logo);
2081
+ }
2082
+ }
2083
+ constructor(
2084
+ // eslint-disable-next-line no-unused-vars
2085
+ tenantAppService,
2086
+ // eslint-disable-next-line no-unused-vars
2087
+ breakpointObserverService,
2088
+ // eslint-disable-next-line no-unused-vars
2089
+ fileUploadService,
2090
+ // eslint-disable-next-line no-unused-vars
2091
+ sharedService) {
2092
+ this.tenantAppService = tenantAppService;
2093
+ this.breakpointObserverService = breakpointObserverService;
2094
+ this.fileUploadService = fileUploadService;
2095
+ this.sharedService = sharedService;
2096
+ this.destroy$ = new Subject();
2097
+ this.isMobileView = false;
2098
+ this.constants = screenText;
2099
+ this.basicDetailTexts = this.constants?.viewTenants?.tenantBasicDetails?.label;
2100
+ this.breakpointObserverService
2101
+ .getBreakpoint()
2102
+ .pipe(takeUntil(this.destroy$))
2103
+ .subscribe((result) => {
2104
+ this.isMobileView = result?.matches;
2105
+ });
2106
+ this.tenantAppService.getApplicationType();
2107
+ this.fileUploadService.setApiBaseUrl(this.tenantAppService?.apiBaseUrl);
2108
+ }
2109
+ /**
2110
+ * Gets the application types.
2111
+ * @memberof TenantBasicDetailsComponent
2112
+ */
2113
+ getAppType() {
2114
+ const appTypes = this.tenantAppService.getApplicationType();
2115
+ if (this.basicInfo) {
2116
+ const selectedType = appTypes?.find(({ id }) => id === this.basicInfo?.appType);
2117
+ this.selectedAppTypeLabel = selectedType?.label;
2118
+ }
2119
+ }
2120
+ /**
2121
+ * Retrieves presigned URL for downloading files from Amazon S3 bucket.
2122
+ * @memberof TenantBasicDetailsComponent
2123
+ */
2124
+ getFileDownloadPresignedUrls(fileName) {
2125
+ this.fileUploadService
2126
+ .getFileDownloadPresignedUrls(fileName)
2127
+ .pipe(takeUntil(this.destroy$))
2128
+ .subscribe({
2129
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2130
+ next: (response) => {
2131
+ this.imageUrl = response?.body;
2132
+ },
2133
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2134
+ error: (error) => {
2135
+ this.sharedService.handleErrors(error, this.constants?.viewTenants?.errors);
2136
+ },
2137
+ });
2138
+ }
2139
+ /**
2140
+ * Performs necessary cleanup tasks, such as unsubscribing from subscription when the component is being destroyed.
2141
+ * @memberof ViewTenantDetailsComponent
2142
+ */
2143
+ ngOnDestroy() {
2144
+ this.destroy$?.next(true);
2145
+ this.destroy$?.unsubscribe();
2146
+ }
2147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantBasicDetailsComponent, deps: [{ token: TenantApplicationsService }, { token: i2.BreakpointObserverService }, { token: i2.FileUploadService }, { token: i2$1.SharedService }], target: i0.ɵɵFactoryTarget.Component }); }
2148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TenantBasicDetailsComponent, isStandalone: true, selector: "ieeesa-tenant-basic-details", inputs: { tenantDetails: "tenantDetails" }, ngImport: i0, template: "<div *ngIf=\"basicInfo\" class=\"ieeesa-tenant-basic-info d-flex flex-start flex-column\">\r\n <p class=\"ieeesa-body-color-sm-14 mb-0\">{{ basicDetailTexts.title }}</p>\r\n <p class=\"ieeesa-body-md-16\">{{ basicInfo.appTitle }}</p>\r\n <p class=\"ieeesa-body-color-sm-14 mb-2\">{{ basicDetailTexts.logo }}</p>\r\n <ng-container>\r\n <ieeesa-image-preview\r\n class=\"pb-3\"\r\n [imageUrl]=\"imageUrl\"\r\n ></ieeesa-image-preview>\r\n </ng-container>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.heading\r\n }}</span>\r\n <p class=\"ieeesa-title-sm-16\">{{ basicInfo.appHeading }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.description\r\n }}</span>\r\n <p class=\"ieeesa-title-sm-16 me-4\">{{ basicInfo.appDescription }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-2\">{{\r\n basicDetailTexts.bgColor\r\n }}</span>\r\n <p\r\n class=\"ieeesa-tenant-basic-info__bgColor\"\r\n [ngStyle]=\"{ 'background-color': basicInfo.backgroundColor }\"\r\n ></p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.helpLink\r\n }}</span>\r\n <p class=\"ieeesa-title-sm-16\">{{ basicInfo.appHelpLink }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.listOfFeatures\r\n }}</span>\r\n <ul [ngClass]=\"isMobileView ? '' : 'd-flex gap-5'\">\r\n <li class=\"ieeesa-body-md-16\" *ngFor=\"let feature of basicInfo.features\">\r\n {{ feature?.featureName }}\r\n </li>\r\n </ul>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.domainURL\r\n }}</span>\r\n <p class=\"ieeesa-title-sm-16\">{{ basicInfo.appDomainUrl }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{ basicDetailTexts.type }}</span>\r\n <p class=\"ieeesa-body-md-16\">{{ selectedAppTypeLabel }}</p>\r\n</div>\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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-tenant-basic-info .ieeesa-body-color-sm-14{color:#63666a!important}.ieeesa-tenant-basic-info__bgColor{width:1.85em;height:1.85em;border:1px solid #fffbfe}.ieeesa-tenant-basic-info .ieeesa-body-md-16,.ieeesa-tenant-basic-info .ieeesa-title-sm-16{color:#1c1b1f!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ImagePreviewComponent, selector: "ieeesa-image-preview", inputs: ["imageAltText", "imageUrl"] }], encapsulation: i0.ViewEncapsulation.None }); }
2149
+ }
2150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantBasicDetailsComponent, decorators: [{
2151
+ type: Component,
2152
+ args: [{ selector: 'ieeesa-tenant-basic-details', standalone: true, imports: [CommonModule, ImagePreviewComponent], encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"basicInfo\" class=\"ieeesa-tenant-basic-info d-flex flex-start flex-column\">\r\n <p class=\"ieeesa-body-color-sm-14 mb-0\">{{ basicDetailTexts.title }}</p>\r\n <p class=\"ieeesa-body-md-16\">{{ basicInfo.appTitle }}</p>\r\n <p class=\"ieeesa-body-color-sm-14 mb-2\">{{ basicDetailTexts.logo }}</p>\r\n <ng-container>\r\n <ieeesa-image-preview\r\n class=\"pb-3\"\r\n [imageUrl]=\"imageUrl\"\r\n ></ieeesa-image-preview>\r\n </ng-container>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.heading\r\n }}</span>\r\n <p class=\"ieeesa-title-sm-16\">{{ basicInfo.appHeading }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.description\r\n }}</span>\r\n <p class=\"ieeesa-title-sm-16 me-4\">{{ basicInfo.appDescription }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-2\">{{\r\n basicDetailTexts.bgColor\r\n }}</span>\r\n <p\r\n class=\"ieeesa-tenant-basic-info__bgColor\"\r\n [ngStyle]=\"{ 'background-color': basicInfo.backgroundColor }\"\r\n ></p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.helpLink\r\n }}</span>\r\n <p class=\"ieeesa-title-sm-16\">{{ basicInfo.appHelpLink }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.listOfFeatures\r\n }}</span>\r\n <ul [ngClass]=\"isMobileView ? '' : 'd-flex gap-5'\">\r\n <li class=\"ieeesa-body-md-16\" *ngFor=\"let feature of basicInfo.features\">\r\n {{ feature?.featureName }}\r\n </li>\r\n </ul>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.domainURL\r\n }}</span>\r\n <p class=\"ieeesa-title-sm-16\">{{ basicInfo.appDomainUrl }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{ basicDetailTexts.type }}</span>\r\n <p class=\"ieeesa-body-md-16\">{{ selectedAppTypeLabel }}</p>\r\n</div>\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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-tenant-basic-info .ieeesa-body-color-sm-14{color:#63666a!important}.ieeesa-tenant-basic-info__bgColor{width:1.85em;height:1.85em;border:1px solid #fffbfe}.ieeesa-tenant-basic-info .ieeesa-body-md-16,.ieeesa-tenant-basic-info .ieeesa-title-sm-16{color:#1c1b1f!important}\n"] }]
2153
+ }], ctorParameters: function () { return [{ type: TenantApplicationsService }, { type: i2.BreakpointObserverService }, { type: i2.FileUploadService }, { type: i2$1.SharedService }]; }, propDecorators: { tenantDetails: [{
2154
+ type: Input
2155
+ }] } });
2156
+
2157
+ class CreateModifyRoleComponent {
2158
+ constructor(
2159
+ // eslint-disable-next-line no-unused-vars
2160
+ tenantAppService,
2161
+ // eslint-disable-next-line no-unused-vars
2162
+ sharedService,
2163
+ // eslint-disable-next-line no-unused-vars
2164
+ globalErrorHandlerService // eslint-disable-next-line no-empty-function
2165
+ ) {
2166
+ this.tenantAppService = tenantAppService;
2167
+ this.sharedService = sharedService;
2168
+ this.globalErrorHandlerService = globalErrorHandlerService;
2169
+ this.destroy$ = new Subject();
2170
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2171
+ this.constants = screenText;
2172
+ this.createRoleTexts = this.constants?.createRole;
2173
+ this.leftButtonLabel = this.createRoleTexts?.label?.leftButtonLabel;
2174
+ this.rightButtonLabel = this.createRoleTexts?.label?.rightButtonLabel;
2175
+ this.colWidth = { xs: 12, xl: 12, sm: 12, md: 12, lg: 12 };
2176
+ this.actionButtonAlign = AlignType.LEFT;
2177
+ this.submitFormResponse = new EventEmitter();
2178
+ this.formCancel = new EventEmitter();
2179
+ }
2180
+ ngOnInit() {
2181
+ this.tenantFunctionType = this.tenantAppService?.getTenantFunctionType();
2182
+ this.selectedTenantInfo =
2183
+ this.tenantAppService?.getSelectedTenantInformation();
2184
+ this.roleTypeOptions =
2185
+ this.tenantAppService?.getRoleTypeOption();
2186
+ this.selectedRoleDetails =
2187
+ this.tenantAppService?.getSelectedRoleInformation();
2188
+ if (this.selectedRoleDetails) {
2189
+ this.selectedRole = this.tenantAppService?.roles?.find(({ roleId }) => roleId === this.selectedRoleDetails?.roleId);
2190
+ }
2191
+ this.initializeCreateRoleFormGroup();
2192
+ }
2193
+ /**
2194
+ * Constructs and returns the role type form field based on credit or edit role.
2195
+ * @return {FieldConfig} -role type form field.
2196
+ * @memberof CreateModifyRoleComponent
2197
+ */
2198
+ getRoleTypeField() {
2199
+ let roleTypeField;
2200
+ if (this.tenantFunctionType === TenantFunctionType.EDIT_ROLE) {
2201
+ roleTypeField = {
2202
+ type: FormControlType?.TEXT_AREA,
2203
+ label: this.createRoleTexts?.label?.roleType,
2204
+ controlName: 'roleType',
2205
+ isReadonly: true,
2206
+ value: this.selectedRole?.roleTypeName,
2207
+ ariaMultiline: false,
2208
+ ariaLabel: this.createRoleTexts?.label?.ariaLabel?.roleType,
2209
+ ariaDescribedById: this.createRoleTexts?.label?.ariaDescribedById?.roleType,
2210
+ isResize: true,
2211
+ };
2212
+ }
2213
+ else {
2214
+ roleTypeField = {
2215
+ type: FormControlType?.SELECT,
2216
+ label: this.createRoleTexts?.label?.roleType + '*',
2217
+ controlName: 'roleType',
2218
+ isSortNeeded: false,
2219
+ value: '',
2220
+ validation: [Validators.required],
2221
+ dropdownOptions: this.roleTypeOptions,
2222
+ supportMessage: this.createRoleTexts?.supportText?.roleType,
2223
+ requiredErrorMessage: this.createRoleTexts?.message?.error?.required,
2224
+ ariaLabel: this.createRoleTexts?.label?.ariaLabel?.roleType,
2225
+ ariaDescribedById: this.createRoleTexts?.label?.ariaDescribedById?.roleType,
2226
+ };
2227
+ }
2228
+ return roleTypeField;
2229
+ }
2230
+ /**
2231
+ * Initialize the create/edit role form group array.
2232
+ * @memberof CreateModifyRoleComponent
2233
+ */
2234
+ initializeCreateRoleFormGroup() {
2235
+ this.createRoleFormGroup = {
2236
+ formGroup: [
2237
+ {
2238
+ legend: '',
2239
+ controls: [
2240
+ {
2241
+ type: FormControlType.TEXT_AREA,
2242
+ label: this.createRoleTexts?.label?.appTitle,
2243
+ controlName: 'appTitle',
2244
+ value: this.selectedTenantInfo?.appTitle,
2245
+ ariaLabel: this.createRoleTexts?.label?.ariaLabel?.appTitle,
2246
+ ariaDescribedById: this.createRoleTexts?.label?.ariaDescribedById?.appTitle,
2247
+ isReadonly: true,
2248
+ ariaMultiline: false,
2249
+ isResize: true,
2250
+ },
2251
+ this.getRoleTypeField(),
2252
+ {
2253
+ type: FormControlType.INPUT,
2254
+ label: this.createRoleTexts?.label?.roleName + '*',
2255
+ controlName: 'roleName',
2256
+ value: this.tenantFunctionType === TenantFunctionType.EDIT_ROLE
2257
+ ? this.selectedRole?.roleName
2258
+ : '',
2259
+ validation: [
2260
+ Validators.required,
2261
+ Validators.maxLength(RolesValidation.roleNameMaxLength),
2262
+ ],
2263
+ supportMessage: this.createRoleTexts?.supportText?.roleName,
2264
+ requiredErrorMessage: this.createRoleTexts?.message?.error?.required,
2265
+ maxErrorMessage: this.createRoleTexts?.message?.error?.limit?.roleNameMaxChars,
2266
+ ariaLabel: this.createRoleTexts?.label?.ariaLabel?.roleName,
2267
+ ariaDescribedById: this.createRoleTexts?.label?.ariaDescribedById?.roleName,
2268
+ },
2269
+ ],
2270
+ },
2271
+ ],
2272
+ };
2273
+ }
2274
+ /**
2275
+ * Gets create/edit role form group reference.
2276
+ * @param {FormGroup[]} form
2277
+ * @memberof CreateModifyRoleComponent
2278
+ */
2279
+ getCreateModifyRoleFormGroupRef(form) {
2280
+ this.createModifyRoleFormGroupRef = form[0];
2281
+ }
2282
+ /**
2283
+ * Updates createModifyRoleFormGroupRef on add role form change event.
2284
+ * @param {FormGroup[]} form
2285
+ * @memberof CreateModifyRoleComponent
2286
+ */
2287
+ onCreateModifyRoleFormChange(form) {
2288
+ this.createModifyRoleFormGroupRef = form[0];
2289
+ }
2290
+ /**
2291
+ * Creates a new role on form submission and the form is valid.
2292
+ * @param {FormGroup[]} form
2293
+ * @memberof CreateModifyRoleComponent
2294
+ */
2295
+ onCreateModifyRoleFormSubmit(form) {
2296
+ form[0]?.markAllAsTouched();
2297
+ if (form[0].status === FormStatus.VALID) {
2298
+ this.createModifyRolePayload = this.getCreateModifyRolePayload(form[0].getRawValue());
2299
+ // eslint-disable-next-line no-unused-expressions
2300
+ this.tenantFunctionType === TenantFunctionType.EDIT_ROLE
2301
+ ? this.editRole()
2302
+ : this.createRole();
2303
+ }
2304
+ }
2305
+ /**
2306
+ * Constructs create/edit role payload from the form data and returns.
2307
+ * @param {*} formData
2308
+ * @return {CreateModifyRoleRequestPayload}
2309
+ * @memberof CreateModifyRoleComponent
2310
+ */
2311
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2312
+ getCreateModifyRolePayload(formData) {
2313
+ const payload = {
2314
+ payload: {
2315
+ appId: this.selectedTenantInfo?.appId,
2316
+ roleName: formData?.roleName,
2317
+ },
2318
+ };
2319
+ if (this.tenantFunctionType === TenantFunctionType.EDIT_ROLE) {
2320
+ payload.payload.roleId = this.selectedRole?.roleId;
2321
+ }
2322
+ else {
2323
+ payload.payload.roleType = formData?.roleType?.id;
2324
+ }
2325
+ return payload;
2326
+ }
2327
+ /**
2328
+ * Post the creates new role form data to the server on form submission to create a new role.
2329
+ * @param {CreateRoleRequestPayload} createModifyRolePayload
2330
+ * @memberof CreateModifyRoleComponent
2331
+ */
2332
+ createRole() {
2333
+ this.tenantAppService
2334
+ .createRole(this.createModifyRolePayload)
2335
+ .pipe(takeUntil(this.destroy$))
2336
+ .subscribe({
2337
+ next: (response) => {
2338
+ if (response.status) {
2339
+ this.tenantAppService.setNewlyCreatedRoleInfo(this.createModifyRolePayload?.payload);
2340
+ this.submitFormResponse.emit(response);
2341
+ }
2342
+ },
2343
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2344
+ error: (error) => {
2345
+ this.handleErrors(error);
2346
+ },
2347
+ });
2348
+ }
2349
+ /**
2350
+ * Post the edited role form data to server on form submission to update the selected role information.
2351
+ * @param {CreateModifyRoleRequestPayload} createModifyRolePayload
2352
+ * @memberof CreateModifyRoleComponent
2353
+ */
2354
+ editRole() {
2355
+ this.tenantAppService
2356
+ .editRole(this.createModifyRolePayload)
2357
+ .pipe(takeUntil(this.destroy$))
2358
+ .subscribe({
2359
+ next: (response) => {
2360
+ if (response.status) {
2361
+ this.tenantAppService.setNewlyCreatedRoleInfo(this.createModifyRolePayload?.payload);
2362
+ this.submitFormResponse.emit(response);
2363
+ }
2364
+ },
2365
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2366
+ error: (error) => {
2367
+ this.handleErrors(error);
2368
+ },
2369
+ });
2370
+ }
2371
+ /**
2372
+ * Captures the server side errors and handles it based on the custom or Http errors.
2373
+ * @param {HttpErrorResponse} error
2374
+ * @return -returns nothing
2375
+ * @memberof CreateModifyRoleComponent
2376
+ */
2377
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2378
+ handleErrors(error) {
2379
+ const errorCodes = error?.error?.body?.errorCodes;
2380
+ if (Array.isArray(errorCodes) && !error?.error?.status) {
2381
+ if (errorCodes[0] === '3012') {
2382
+ const roleName = this.createModifyRolePayload?.payload?.roleName;
2383
+ const errorMessage = this.sharedService?.parseErrorMessage(errorCodes, this.createRoleTexts?.errors);
2384
+ this.sharedService.showAlertMessage(AlertType.ERROR, `${roleName} ${errorMessage}`);
2385
+ }
2386
+ }
2387
+ else if (error && error instanceof HttpErrorResponse) {
2388
+ this.globalErrorHandlerService?.handleError(error);
2389
+ }
2390
+ }
2391
+ /**
2392
+ * Emits form cancel event.
2393
+ * @memberof CreateModifyRoleComponent
2394
+ */
2395
+ onFormCancel() {
2396
+ this.formCancel.emit();
2397
+ }
2398
+ /**
2399
+ * Implementation of ngOnDestroy lifecycle hook method to unsubscribe the open observable subscriptions.
2400
+ * @memberof CreateModifyRoleComponent
2401
+ */
2402
+ ngOnDestroy() {
2403
+ this.destroy$.next(true);
2404
+ this.destroy$.unsubscribe();
2405
+ }
2406
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateModifyRoleComponent, deps: [{ token: TenantApplicationsService }, { token: i2$1.SharedService }, { token: i4.GlobalErrorHandlerService }], target: i0.ɵɵFactoryTarget.Component }); }
2407
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateModifyRoleComponent, isStandalone: true, selector: "ieeesa-create-modify-role", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n *ngIf=\"createRoleFormGroup\"\r\n class=\"ieeesa-create-role-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createRoleFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onCreateModifyRoleFormSubmit($event)\"\r\n (formChange)=\"onCreateModifyRoleFormChange($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateModifyRoleFormGroupRef($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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-create-modify-role{width:40vw!important}.ieeesa-modal-dialog.ieeesa-create-modify-role .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-modify-role .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal{box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080;padding-bottom:.5em}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .mat-mdc-dialog-content{padding:.5em 1em .75em!important}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none!important}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em;padding:2em 1em .75em}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding-top:0!important}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field__label-top{min-height:6.25em!important}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field{width:70%}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none!important}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]){padding-top:0;margin-bottom:0}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-input-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-input-field .mat-mdc-form-field-subscript-wrapper{display:none!important}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-dynamic-form__form-field{width:100%}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-dynamic-form .ieeesa-select-field,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-dynamic-form .ieeesa-input-field,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-dynamic-form .mat-mdc-form-field-flex{width:100%!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "fileUploadStatus", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "isRightButtonNeeded", "actionButtonAlign", "fileDownloadAndDeleteConfig"], 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", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
2408
+ }
2409
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateModifyRoleComponent, decorators: [{
2410
+ type: Component,
2411
+ args: [{ selector: 'ieeesa-create-modify-role', standalone: true, imports: [CommonModule, DynamicFormComponent], encapsulation: ViewEncapsulation.None, template: "<ieeesa-dynamic-form\r\n *ngIf=\"createRoleFormGroup\"\r\n class=\"ieeesa-create-role-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createRoleFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onCreateModifyRoleFormSubmit($event)\"\r\n (formChange)=\"onCreateModifyRoleFormChange($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateModifyRoleFormGroupRef($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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-create-modify-role{width:40vw!important}.ieeesa-modal-dialog.ieeesa-create-modify-role .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-modify-role .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal{box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080;padding-bottom:.5em}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .mat-mdc-dialog-content{padding:.5em 1em .75em!important}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none!important}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em;padding:2em 1em .75em}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding-top:0!important}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field__label-top{min-height:6.25em!important}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field{width:70%}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-input-field .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none!important}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]){padding-top:0;margin-bottom:0}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .app-title.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-modal .ieeesa-dynamic-form .role-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-input-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-input-field .mat-mdc-form-field-subscript-wrapper{display:none!important}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-dynamic-form__form-field{width:100%}.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-dynamic-form .ieeesa-select-field,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-dynamic-form .ieeesa-input-field,.ieeesa-modal-dialog.ieeesa-create-modify-role .ieeesa-dynamic-form .mat-mdc-form-field-flex{width:100%!important}}\n"] }]
2412
+ }], ctorParameters: function () { return [{ type: TenantApplicationsService }, { type: i2$1.SharedService }, { type: i4.GlobalErrorHandlerService }]; }, propDecorators: { dynamicFormComponent: [{
2413
+ type: ViewChild,
2414
+ args: [DynamicFormComponent]
2415
+ }], submitFormResponse: [{
2416
+ type: Output
2417
+ }], formCancel: [{
2418
+ type: Output
2419
+ }] } });
2420
+
2421
+ /* eslint-disable no-unused-vars */
2422
+ var RoleMenuAction;
2423
+ (function (RoleMenuAction) {
2424
+ RoleMenuAction[RoleMenuAction["EDIT_ROLE"] = 1] = "EDIT_ROLE";
2425
+ RoleMenuAction[RoleMenuAction["DELETE_ROLE"] = 2] = "DELETE_ROLE";
2426
+ })(RoleMenuAction || (RoleMenuAction = {}));
2427
+
2428
+ /* eslint-disable no-unused-vars */
2429
+ var RoleAndPermissionsTableType;
2430
+ (function (RoleAndPermissionsTableType) {
2431
+ RoleAndPermissionsTableType["ROLE"] = "ROLE";
2432
+ RoleAndPermissionsTableType["PERMISSION"] = "PERMISSION";
2433
+ })(RoleAndPermissionsTableType || (RoleAndPermissionsTableType = {}));
2434
+
2435
+ class RolesAndPermissionsMappingComponent {
2436
+ constructor(
2437
+ // eslint-disable-next-line no-unused-vars, no-empty-function, @typescript-eslint/no-unused-vars
2438
+ tenantAppService,
2439
+ // eslint-disable-next-line no-unused-vars
2440
+ sharedService,
2441
+ // eslint-disable-next-line no-unused-vars
2442
+ elementRef,
2443
+ // eslint-disable-next-line no-unused-vars
2444
+ formUtilityService // eslint-disable-next-line no-empty-function
2445
+ ) {
2446
+ this.tenantAppService = tenantAppService;
2447
+ this.sharedService = sharedService;
2448
+ this.elementRef = elementRef;
2449
+ this.formUtilityService = formUtilityService;
2450
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2451
+ this.constants = screenText;
2452
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2453
+ this.mapRolesAndPermissionsScreenTexts = this.constants?.mapRolesAndPermissions;
2454
+ this.colWidth = { xs: 12, xl: 6, sm: 12, md: 12, lg: 6 };
2455
+ this.actionButtonAlign = AlignType.MIDDLE;
2456
+ this.leftButtonLabel = this.mapRolesAndPermissionsScreenTexts?.label?.leftButtonLabel;
2457
+ this.rightButtonLabel = this.mapRolesAndPermissionsScreenTexts?.label?.rightButtonLabel;
2458
+ this.roles = [];
2459
+ this.permissions = [];
2460
+ this.destroy$ = new Subject();
2461
+ this.tableColumnSchema = [];
2462
+ this.tableData = [];
2463
+ this.modifiedRolesAndPermissionsMapping = [];
2464
+ this.tableHeading = '';
2465
+ this.rolePermissionMappingPayload = {
2466
+ payload: {
2467
+ appId: '',
2468
+ permissionId: null,
2469
+ roleId: null,
2470
+ },
2471
+ };
2472
+ this.formCancel = new EventEmitter();
2473
+ }
2474
+ /**
2475
+ * Initializes form group and all the page defaults.
2476
+ * @memberof MapPermissionsRolesComponent
2477
+ * @returns {void}
2478
+ */
2479
+ ngOnInit() {
2480
+ this.appId = this.tenantAppService.getSelectedTenantInformation()
2481
+ ?.appId;
2482
+ this.formGroup = {
2483
+ formGroup: [
2484
+ {
2485
+ legend: this.mapRolesAndPermissionsScreenTexts?.legend,
2486
+ controls: [
2487
+ {
2488
+ controlName: 'role',
2489
+ label: this.mapRolesAndPermissionsScreenTexts?.label?.role,
2490
+ type: FormControlType.SELECT,
2491
+ dropdownOptions: this.roles,
2492
+ supportMessage: this.mapRolesAndPermissionsScreenTexts?.supportText?.role,
2493
+ ariaLabel: this.mapRolesAndPermissionsScreenTexts?.label?.ariaLabel?.role,
2494
+ ariaDescribedById: this.mapRolesAndPermissionsScreenTexts?.label?.ariaDescribedById
2495
+ ?.role,
2496
+ },
2497
+ {
2498
+ controlName: 'permission',
2499
+ label: this.mapRolesAndPermissionsScreenTexts?.label?.permission,
2500
+ type: FormControlType.SELECT,
2501
+ dropdownOptions: this.permissions,
2502
+ supportMessage: this.mapRolesAndPermissionsScreenTexts?.supportText?.permission,
2503
+ ariaLabel: this.mapRolesAndPermissionsScreenTexts?.label?.ariaLabel
2504
+ ?.permission,
2505
+ ariaDescribedById: this.mapRolesAndPermissionsScreenTexts?.label?.ariaDescribedById
2506
+ ?.permission,
2507
+ },
2508
+ ],
2509
+ },
2510
+ ],
2511
+ };
2512
+ this.getRoles();
2513
+ this.getPermissions();
2514
+ this.sharedService.isAlertClosed
2515
+ .pipe(takeUntil(this.destroy$))
2516
+ .subscribe(() => {
2517
+ const alertModals = document.querySelectorAll('.cdk-overlay-container ieeesa-alert');
2518
+ if (alertModals.length) {
2519
+ document.querySelector('.cdk-overlay-container .mat-mdc-dialog-content .ieeesa-alert-box__close-button')?.focus();
2520
+ }
2521
+ else {
2522
+ this.elementRef.nativeElement.querySelector('.cdk-overlay-container .mat-mdc-dialog-content .ieeesa-select-field mat-select')?.focus();
2523
+ }
2524
+ });
2525
+ }
2526
+ /**
2527
+ * Constructs the role or permission table schema to display the associated mapping in a table view.
2528
+ * @param {FormGroup[]} formGroups
2529
+ * @memberof MapPermissionsRolesComponent
2530
+ * @returns {void}
2531
+ */
2532
+ onRoleOrPermissionSelected(formGroups) {
2533
+ this.tableColumnSchema = [];
2534
+ this.modifiedRolesAndPermissionsMapping = [];
2535
+ const formGroup = formGroups[0];
2536
+ const role = formGroup.get('role')?.value;
2537
+ const permission = formGroup.get('permission')?.value;
2538
+ if (role) {
2539
+ this.selectedRole = {
2540
+ roleId: role.id,
2541
+ roleName: role.name,
2542
+ };
2543
+ this.rolePermissionMappingPayload.payload.roleId = role?.id;
2544
+ }
2545
+ if (permission) {
2546
+ this.selectedPermission = {
2547
+ permissionId: permission.id,
2548
+ permissionName: permission.name,
2549
+ };
2550
+ this.rolePermissionMappingPayload.payload.permissionId = permission?.id;
2551
+ }
2552
+ this.rolePermissionMappingPayload.payload.appId = this.appId;
2553
+ if ((role && permission) || role) {
2554
+ this.tableHeading = `${this.mapRolesAndPermissionsScreenTexts?.roleTableCaption}<strong>${role?.name}</strong>`;
2555
+ this.tableColumnSchema.push({
2556
+ id: 1,
2557
+ columnDef: 'permission',
2558
+ heading: this.mapRolesAndPermissionsScreenTexts.tableColumns.permission,
2559
+ columnType: TableColumnType.TEXT,
2560
+ cellData: (permissionMapping) => permissionMapping?.roleOrPermissionName,
2561
+ });
2562
+ }
2563
+ else {
2564
+ this.tableColumnSchema.push({
2565
+ id: 1,
2566
+ columnDef: 'role',
2567
+ heading: this.mapRolesAndPermissionsScreenTexts.tableColumns.role,
2568
+ columnType: TableColumnType.TEXT,
2569
+ cellData: (roleMapping) => roleMapping?.roleOrPermissionName,
2570
+ });
2571
+ }
2572
+ if (permission) {
2573
+ const permissionHeading = `${this.mapRolesAndPermissionsScreenTexts?.permissionTableCaption}<strong>${permission?.name}</strong>`;
2574
+ this.tableHeading = role
2575
+ ? this.tableHeading + `</br>` + permissionHeading
2576
+ : permissionHeading;
2577
+ }
2578
+ this.tableColumnSchema.push({
2579
+ id: 2,
2580
+ columnDef: 'slideToggle',
2581
+ heading: this.mapRolesAndPermissionsScreenTexts.tableColumns.status,
2582
+ columnType: TableColumnType.SLIDE_TOGGLE,
2583
+ cellData: (roleMapping) => {
2584
+ return {
2585
+ id: Math.floor(Math.random() * 1000) + 1,
2586
+ label: '',
2587
+ ariaLabel: roleMapping.roleOrPermissionName,
2588
+ checked: roleMapping.status,
2589
+ };
2590
+ },
2591
+ });
2592
+ this.dynamicFormComponent.isSubmitButtonDisabled = true;
2593
+ this.getRolePermissionMapping(this.rolePermissionMappingPayload);
2594
+ }
2595
+ /**
2596
+ * Gets the list of roles and displayed in the role dropdown.
2597
+ * @memberof MapPermissionsRolesComponent
2598
+ * @returns {void}
2599
+ */
2600
+ getRoles() {
2601
+ this.tenantAppService
2602
+ .getRoles(this.appId)
2603
+ .pipe(takeUntil(this.destroy$))
2604
+ .subscribe({
2605
+ next: (response) => {
2606
+ if (response?.status) {
2607
+ const rolesList = response?.body;
2608
+ rolesList.map((role) => {
2609
+ this.roles.push({
2610
+ id: role.roleId,
2611
+ name: role.roleName,
2612
+ });
2613
+ });
2614
+ this.formUtilityService.updateFormControlOptions('role', 'dropdownOptions', this.roles, this.dynamicFormComponent);
2615
+ }
2616
+ },
2617
+ error: (error) => {
2618
+ this.sharedService.handleErrors(error, this.mapRolesAndPermissionsScreenTexts.errors);
2619
+ },
2620
+ });
2621
+ }
2622
+ /**
2623
+ * Gets the list of permissions and displayed in the permission dropdown.
2624
+ * @memberof MapPermissionsRolesComponent
2625
+ * @returns {void}
2626
+ */
2627
+ getPermissions() {
2628
+ this.tenantAppService
2629
+ .getPermissions(this.appId)
2630
+ .pipe(takeUntil(this.destroy$))
2631
+ .subscribe({
2632
+ next: (response) => {
2633
+ if (response?.status) {
2634
+ const permissionsList = response?.body;
2635
+ permissionsList.map((permission) => {
2636
+ this.permissions.push({
2637
+ id: permission.permissionId,
2638
+ name: permission.permissionName,
2639
+ });
2640
+ });
2641
+ this.formUtilityService.updateFormControlOptions('permission', 'dropdownOptions', this.permissions, this.dynamicFormComponent);
2642
+ }
2643
+ },
2644
+ error: (error) => {
2645
+ this.sharedService.handleErrors(error, this.mapRolesAndPermissionsScreenTexts.errors);
2646
+ },
2647
+ });
2648
+ }
2649
+ /**
2650
+ * Gets the list of mapped roles/permissions from the backend api.
2651
+ * @param {RolePermissionMappingRequestPayload} payload
2652
+ * @memberof MapPermissionsRolesComponent
2653
+ * @returns {void}
2654
+ */
2655
+ getRolePermissionMapping(payload) {
2656
+ this.tableData = [];
2657
+ this.tenantAppService
2658
+ .getRolePermissionMapping(payload)
2659
+ .pipe(takeUntil(this.destroy$))
2660
+ .subscribe({
2661
+ next: (response) => {
2662
+ const payloadInfo = payload.payload;
2663
+ if (payloadInfo?.roleId && payloadInfo?.permissionId) {
2664
+ this.tableData.push({
2665
+ roleOrPermissionName: this.selectedPermission?.permissionName,
2666
+ roleOrPermissionId: this.selectedPermission?.permissionId,
2667
+ status: true,
2668
+ });
2669
+ }
2670
+ else if (payloadInfo?.roleId) {
2671
+ this.setTableData(this.permissions, response.body, RoleAndPermissionsTableType.PERMISSION);
2672
+ }
2673
+ else {
2674
+ this.setTableData(this.roles, response.body, RoleAndPermissionsTableType.ROLE);
2675
+ }
2676
+ },
2677
+ error: (error) => {
2678
+ const errorCodes = error?.error?.body?.errorCodes;
2679
+ // Returns error code 3020 when mapped roles does not exist for given permission id.
2680
+ if (errorCodes.includes('3020')) {
2681
+ this.setTableData(this.roles, [], RoleAndPermissionsTableType.ROLE);
2682
+ }
2683
+ // Returns error code 3021 when mapped permissions does not exist for given role id.
2684
+ else if (errorCodes.includes('3021')) {
2685
+ this.setTableData(this.permissions, [], RoleAndPermissionsTableType.PERMISSION);
2686
+ }
2687
+ // Returns error code 3017 when role permission mapping does not exist for given role id.
2688
+ else if (errorCodes.includes('3017')) {
2689
+ this.tableData.push({
2690
+ roleOrPermissionName: this.selectedPermission?.permissionName,
2691
+ roleOrPermissionId: this.selectedPermission?.permissionId,
2692
+ status: false,
2693
+ });
2694
+ }
2695
+ else
2696
+ this.sharedService.handleErrors(error, this.mapRolesAndPermissionsScreenTexts.errors);
2697
+ },
2698
+ });
2699
+ }
2700
+ /**
2701
+ * Displaying the mapped roles and permissions data into the data table.
2702
+ * @param {SelectOption[]} roleOrPermissions
2703
+ * @param {RoleDetails[] | Permission[]} mappedRoleOrPermissions
2704
+ * @param {RoleAndPermissionsTableType} tableType
2705
+ * @memberof MapPermissionsRolesComponent
2706
+ * @returns {void}
2707
+ */
2708
+ setTableData(roleOrPermissions, mappedRoleOrPermissions, tableType) {
2709
+ roleOrPermissions.map((roleOrPermission) => {
2710
+ this.tableData.push({
2711
+ roleOrPermissionName: roleOrPermission.name,
2712
+ roleOrPermissionId: roleOrPermission.id,
2713
+ status: tableType === RoleAndPermissionsTableType.ROLE
2714
+ ? mappedRoleOrPermissions.length > 0 &&
2715
+ mappedRoleOrPermissions.some((mappedRoleOrPermission) => mappedRoleOrPermission.roleId === roleOrPermission.id)
2716
+ : mappedRoleOrPermissions.length > 0 &&
2717
+ mappedRoleOrPermissions.some((mappedRoleOrPermission) => mappedRoleOrPermission.permissionId === roleOrPermission.id),
2718
+ });
2719
+ });
2720
+ }
2721
+ /**
2722
+ * Constructs the payload based on the roles and permissions mapping (selection or deselection).
2723
+ * @param roleOrPermissionStatus
2724
+ * @memberof MapPermissionsRolesComponent
2725
+ * @returns {void}
2726
+ */
2727
+ roleOrPermissionStatusChange(roleOrPermissionStatus) {
2728
+ if ((this.selectedRole?.roleId && this.selectedPermission?.permissionId) ||
2729
+ this.selectedRole?.roleId) {
2730
+ if (this.modifiedRolesAndPermissionsMapping.find((permission) => permission.permissionId ===
2731
+ roleOrPermissionStatus.rowData.roleOrPermissionId)) {
2732
+ this.modifiedRolesAndPermissionsMapping.splice(this.modifiedRolesAndPermissionsMapping.findIndex((permission) => permission.permissionId ===
2733
+ roleOrPermissionStatus.rowData.roleOrPermissionId), 1);
2734
+ }
2735
+ else {
2736
+ this.modifiedRolesAndPermissionsMapping.push({
2737
+ roleId: this.selectedRole.roleId,
2738
+ permissionId: roleOrPermissionStatus.rowData.roleOrPermissionId,
2739
+ appId: this.appId,
2740
+ status: roleOrPermissionStatus.slideToggle.checked,
2741
+ });
2742
+ }
2743
+ }
2744
+ else if (this.selectedPermission?.permissionId) {
2745
+ if (this.modifiedRolesAndPermissionsMapping.find((role) => role.roleId === roleOrPermissionStatus.rowData.roleOrPermissionId)) {
2746
+ this.modifiedRolesAndPermissionsMapping.splice(this.modifiedRolesAndPermissionsMapping.findIndex((role) => role.roleId === roleOrPermissionStatus.rowData.roleOrPermissionId), 1);
2747
+ }
2748
+ else {
2749
+ this.modifiedRolesAndPermissionsMapping.push({
2750
+ roleId: roleOrPermissionStatus.rowData.roleOrPermissionId,
2751
+ permissionId: this.selectedPermission.permissionId,
2752
+ appId: this.appId,
2753
+ status: roleOrPermissionStatus.slideToggle.checked,
2754
+ });
2755
+ }
2756
+ }
2757
+ this.dynamicFormComponent.isSubmitButtonDisabled =
2758
+ !this.modifiedRolesAndPermissionsMapping.length;
2759
+ }
2760
+ /**
2761
+ * Submits the roles and permissions mappings to the server.
2762
+ * @memberof MapPermissionsRolesComponent
2763
+ * @returns {void}
2764
+ */
2765
+ onMapAndPermissionsFormSubmit() {
2766
+ const payload = {
2767
+ payload: this.modifiedRolesAndPermissionsMapping,
2768
+ };
2769
+ this.dynamicFormComponent.isSubmitButtonDisabled = true;
2770
+ this.modifiedRolesAndPermissionsMapping = [];
2771
+ this.tenantAppService
2772
+ .saveRolePermissionMapping(payload)
2773
+ .pipe(takeUntil(this.destroy$))
2774
+ .subscribe({
2775
+ next: (response) => {
2776
+ if (response?.status) {
2777
+ this.sharedService.showAlertMessage(AlertType.SUCCESS, this.mapRolesAndPermissionsScreenTexts.message.success
2778
+ .rolesAndPermissionsSubmission);
2779
+ }
2780
+ },
2781
+ error: (error) => {
2782
+ this.sharedService.handleErrors(error, this.mapRolesAndPermissionsScreenTexts.errors);
2783
+ },
2784
+ });
2785
+ }
2786
+ /**
2787
+ * Closes the map and permissions modal.
2788
+ * @memberof MapPermissionsRolesComponent
2789
+ * @returns {void}
2790
+ */
2791
+ onMapAndPermissionsFormCancel() {
2792
+ this.formCancel.emit();
2793
+ }
2794
+ /**
2795
+ * Performs necessary cleanup tasks, such as unsubscribing from subscription when the component is being destroyed.
2796
+ * @memberof ViewTenantDetailsComponent
2797
+ */
2798
+ ngOnDestroy() {
2799
+ this.destroy$?.next(true);
2800
+ this.destroy$?.unsubscribe();
2801
+ }
2802
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RolesAndPermissionsMappingComponent, deps: [{ token: TenantApplicationsService }, { token: i2$1.SharedService }, { token: i0.ElementRef }, { token: i2$1.FormUtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
2803
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RolesAndPermissionsMappingComponent, isStandalone: true, selector: "ieeesa-roles-and-permissions-mapping", outputs: { formCancel: "formCancel" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n [formGroups]=\"formGroup\"\r\n [colWidth]=\"colWidth\"\r\n [isSubmitButtonDisabled]=\"true\"\r\n [isLegendVisible]=\"true\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLeftButtonNeeded]=\"true\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n (dropdownChange)=\"onRoleOrPermissionSelected($event)\"\r\n (formSubmit)=\"onMapAndPermissionsFormSubmit()\"\r\n (formLeftButtonClicked)=\"onMapAndPermissionsFormCancel()\"\r\n>\r\n <ieeesa-data-table\r\n component\r\n *ngIf=\"tableData.length\"\r\n [columnSchemaInfo]=\"tableColumnSchema\"\r\n [tableColumnsHeaderText]=\"tableHeading\"\r\n [tableDataInfo]=\"tableData\"\r\n (rowSlideToggle)=\"roleOrPermissionStatusChange($event)\"\r\n ></ieeesa-data-table>\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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-map-permissions-and-roles{max-width:50vw!important}.ieeesa-map-permissions-and-roles .mat-mdc-dialog-container{box-shadow:none}.ieeesa-map-permissions-and-roles .mat-mdc-dialog-surface{border-radius:0}.ieeesa-map-permissions-and-roles .ieeesa-modal{box-shadow:0 3px #00b5e2 inset,0 4px 24px #00000080}.ieeesa-map-permissions-and-roles .ieeesa-modal-title__heading{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:.03125em}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .row{margin:0;padding:0 12px}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form__legend{text-align:center;margin-bottom:0;font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form__form-field{padding-top:4px!important}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form__form-field .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:24px;padding-top:48px!important}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .ieeesa-data-table{width:33vw;padding-top:48px}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .ieeesa-data-table__columns-header-text{font-size:16px;padding:0}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .ieeesa-data-table .mat-colum-role,.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .ieeesa-data-table .mat-column-permission{padding:16px}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .ieeesa-data-table__content{padding-top:12px}@media (max-width: 767px){.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .ieeesa-data-table{width:auto}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form__form-field{padding-top:24px!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "fileUploadStatus", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "isRightButtonNeeded", "actionButtonAlign", "fileDownloadAndDeleteConfig"], 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", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }, { kind: "component", type: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "nestedTableDataInfo", "columnSchemaInfo", "nestedTableColumnSchemaInfo", "tableActions", "hasNestedTable", "tableColumnActions", "tableColumnActionMenuSize", "tableRowActions", "nestedTableRowActions", "caption", "viewAll", "paginatorConfig", "nestedPaginatorConfig", "legends", "pageIndex", "pageSize", "searchPlaceHolderText", "rowEditButton", "rowDeleteButton", "tableEditButton", "tableDeleteButton", "rowExpandButton", "rowCollapseButton", "isNestedTableHeaderNeeded", "addButton", "defaultColumnSortDirection", "defaultSortedColumn", "isClearSortNeeded", "filters", "selectedFilterOptions", "appliedFilterOptions", "searchType", "className", "searchSupportMessage", "inbuiltSortingNeeded", "isCellTextOverflowEllipsis", "isTableHeaderNeeded", "tableColumnsHeaderText", "verticalColumnHeaderNumber", "scrollbarSupportMessage", "isScrollSupportMessageNeeded", "isStickyHeaderNeeded", "customStickyHeaderNeeded", "headerElementClassName", "minCharToSearch", "searchResultMessage", "rowMenuActionIcon", "canDisableCheckbox", "isEllipsisRequiredForLink"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "menuActionClick", "selectActionMenu", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue", "sortChange", "selectedRowsInfo", "rowExpansionClick", "tableColumnMenuActionClick", "tableColumnMenuToggleButton", "rowSlideToggle"] }], encapsulation: i0.ViewEncapsulation.None }); }
2804
+ }
2805
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RolesAndPermissionsMappingComponent, decorators: [{
2806
+ type: Component,
2807
+ args: [{ selector: 'ieeesa-roles-and-permissions-mapping', standalone: true, imports: [CommonModule, DynamicFormComponent, DataTableComponent], encapsulation: ViewEncapsulation.None, template: "<ieeesa-dynamic-form\r\n [formGroups]=\"formGroup\"\r\n [colWidth]=\"colWidth\"\r\n [isSubmitButtonDisabled]=\"true\"\r\n [isLegendVisible]=\"true\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLeftButtonNeeded]=\"true\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n (dropdownChange)=\"onRoleOrPermissionSelected($event)\"\r\n (formSubmit)=\"onMapAndPermissionsFormSubmit()\"\r\n (formLeftButtonClicked)=\"onMapAndPermissionsFormCancel()\"\r\n>\r\n <ieeesa-data-table\r\n component\r\n *ngIf=\"tableData.length\"\r\n [columnSchemaInfo]=\"tableColumnSchema\"\r\n [tableColumnsHeaderText]=\"tableHeading\"\r\n [tableDataInfo]=\"tableData\"\r\n (rowSlideToggle)=\"roleOrPermissionStatusChange($event)\"\r\n ></ieeesa-data-table>\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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-map-permissions-and-roles{max-width:50vw!important}.ieeesa-map-permissions-and-roles .mat-mdc-dialog-container{box-shadow:none}.ieeesa-map-permissions-and-roles .mat-mdc-dialog-surface{border-radius:0}.ieeesa-map-permissions-and-roles .ieeesa-modal{box-shadow:0 3px #00b5e2 inset,0 4px 24px #00000080}.ieeesa-map-permissions-and-roles .ieeesa-modal-title__heading{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:.03125em}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .row{margin:0;padding:0 12px}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form__legend{text-align:center;margin-bottom:0;font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form__form-field{padding-top:4px!important}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form__form-field .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:24px;padding-top:48px!important}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .ieeesa-data-table{width:33vw;padding-top:48px}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .ieeesa-data-table__columns-header-text{font-size:16px;padding:0}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .ieeesa-data-table .mat-colum-role,.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .ieeesa-data-table .mat-column-permission{padding:16px}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .ieeesa-data-table__content{padding-top:12px}@media (max-width: 767px){.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form .ieeesa-data-table{width:auto}.ieeesa-map-permissions-and-roles .ieeesa-dynamic-form__form-field{padding-top:24px!important}}\n"] }]
2808
+ }], ctorParameters: function () { return [{ type: TenantApplicationsService }, { type: i2$1.SharedService }, { type: i0.ElementRef }, { type: i2$1.FormUtilityService }]; }, propDecorators: { formCancel: [{
2809
+ type: Output
2810
+ }], dynamicFormComponent: [{
2811
+ type: ViewChild,
2812
+ args: [DynamicFormComponent]
2813
+ }] } });
2814
+
2815
+ /* eslint-disable no-unused-vars */
2816
+ var GroupTypeSettings;
2817
+ (function (GroupTypeSettings) {
2818
+ GroupTypeSettings["ALLOW_SUB_GROUP"] = "allowSubGroup";
2819
+ GroupTypeSettings["ALLOW_ROSTER"] = "allowRoster";
2820
+ GroupTypeSettings["ALLOW_ALTERNATE_VOTING"] = "allowAlternateVoting";
2821
+ GroupTypeSettings["HAS_CLASSIFICATION"] = "hasClassification";
2822
+ GroupTypeSettings["ALLOW_EDIT"] = "allowEdit";
2823
+ GroupTypeSettings["ALLOW_DELETE"] = "allowDelete";
2824
+ })(GroupTypeSettings || (GroupTypeSettings = {}));
2825
+
2826
+ /**
2827
+ * Component for viewing and managing tenant group types. Fetches the configured group types associated to the selected tenant and displays in tabular view.
2828
+ * @export
2829
+ * @class ViewTenantGroupTypesComponent
2830
+ * @implements {OnInit}
2831
+ */
2832
+ class ViewTenantGroupTypesComponent {
2833
+ constructor(
2834
+ // eslint-disable-next-line no-unused-vars
2835
+ tenantAppService,
2836
+ // eslint-disable-next-line no-unused-vars
2837
+ sharedService // eslint-disable-next-line no-empty-function
2838
+ ) {
2839
+ this.tenantAppService = tenantAppService;
2840
+ this.sharedService = sharedService;
2841
+ this.destroy$ = new Subject();
2842
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2843
+ this.constants = screenText;
2844
+ this.columnHeading = this.constants?.viewGroupTypes?.tableColumns?.heading;
2845
+ this.settings = this.constants?.viewGroupTypes?.settings;
2846
+ this.tableRowActions = this.constants?.viewGroupTypes?.actionMenuItems;
2847
+ this.columnSchema = [];
2848
+ this.groupTypes = [];
2849
+ this.appId = '';
2850
+ this.headerElementClassName = '.ieeesa-header';
2851
+ }
2852
+ /**
2853
+ * Fetches group types data from the server and initializes column schema.
2854
+ * @memberof ViewTenantGroupTypesComponent
2855
+ */
2856
+ ngOnInit() {
2857
+ this.appId = this.tenantAppService.getSelectedTenantInformation()
2858
+ ?.appId;
2859
+ this.getGroupTypes();
2860
+ this.tenantAppService.isGroupTypeAddedOrModified
2861
+ .pipe(takeUntil(this.destroy$))
2862
+ .subscribe((value) => {
2863
+ if (value) {
2864
+ this.getGroupTypes();
2865
+ this.tenantAppService.isGroupTypeAddedOrModified.next(false);
2866
+ }
2867
+ });
2868
+ }
2869
+ /**
2870
+ * Get group types from tenant application service.
2871
+ * @memberof ViewTenantGroupTypesComponent
2872
+ */
2873
+ getGroupTypes() {
2874
+ this.tenantAppService
2875
+ .getGroupTypes(this.appId)
2876
+ .pipe(takeUntil(this.destroy$))
2877
+ .subscribe({
2878
+ next: (response) => {
2879
+ this.initializeColumnSchema();
2880
+ this.groupTypes = this.formatGroupTypesTableData(response);
2881
+ this.tenantAppService.setGroupTypeDetails(response);
2882
+ },
2883
+ error: (error) => {
2884
+ this.sharedService.handleErrors(error, this.constants?.viewGroupTypes?.errors);
2885
+ },
2886
+ });
2887
+ }
2888
+ /**
2889
+ * Formats raw group types data into a required format for display.
2890
+ * @param {ViewGroupTypeResponse} groupTypeRes
2891
+ * @return {GroupTypeDetails[]}
2892
+ * @memberof ViewTenantGroupTypesComponent
2893
+ */
2894
+ formatGroupTypesTableData(groupTypeRes) {
2895
+ const formattedData = [];
2896
+ groupTypeRes?.body?.forEach((item) => {
2897
+ if (item?.configFieldValue?.businessRule?.rosterType !==
2898
+ GroupRosterType?.SYSTEM_USER) {
2899
+ const { configFieldValue, roles, hasGroup } = item;
2900
+ const { name, description, businessRule } = configFieldValue;
2901
+ const { rosterType, ...restBusinessRule } = businessRule;
2902
+ const businessRuleString = this.transformBusinessRule(restBusinessRule);
2903
+ const roleNames = roles
2904
+ ? roles?.map((role) => role?.roleName).join(', ')
2905
+ : '';
2906
+ const menuAction = JSON.parse(JSON.stringify(this.tableRowActions));
2907
+ menuAction[1].isDisabled = hasGroup;
2908
+ formattedData.push({
2909
+ name,
2910
+ description,
2911
+ rosterType,
2912
+ businessRule: businessRuleString,
2913
+ roles: roleNames,
2914
+ hasGroup: item.hasGroup,
2915
+ menuAction,
2916
+ });
2917
+ }
2918
+ });
2919
+ return formattedData;
2920
+ }
2921
+ /**
2922
+ * Transforms business rule to required format in string.
2923
+ * @param {*} rule
2924
+ * @return {string}
2925
+ * @memberof ViewTenantGroupTypesComponent
2926
+ */
2927
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2928
+ transformBusinessRule(rule) {
2929
+ const ruleStringArray = [];
2930
+ for (const setting of Object.values(GroupTypeSettings)) {
2931
+ if (rule[setting] === true) {
2932
+ ruleStringArray.push(this.settings[setting]);
2933
+ }
2934
+ }
2935
+ return ruleStringArray.join(', ');
2936
+ }
2937
+ /**
2938
+ * Initializes table column schema to display group types in tabular view.
2939
+ * @memberof ViewTenantGroupTypesComponent
2940
+ */
2941
+ initializeColumnSchema() {
2942
+ this.columnSchema = [
2943
+ {
2944
+ id: 1,
2945
+ columnDef: 'groupType',
2946
+ heading: this.columnHeading?.groupType,
2947
+ columnType: TableColumnType.TEXT,
2948
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2949
+ cellData: (element) => `${element.name}`,
2950
+ },
2951
+ {
2952
+ id: 2,
2953
+ columnDef: 'rosterType',
2954
+ heading: this.columnHeading?.rosterType,
2955
+ columnType: TableColumnType.TEXT,
2956
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2957
+ cellData: (element) => `${element.rosterType}`,
2958
+ },
2959
+ {
2960
+ id: 3,
2961
+ columnDef: 'description',
2962
+ heading: this.columnHeading?.description,
2963
+ columnType: TableColumnType.TEXT,
2964
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2965
+ cellData: (element) => `${element.description}`,
2966
+ },
2967
+ {
2968
+ id: 4,
2969
+ columnDef: 'applicableRoles',
2970
+ heading: this.columnHeading?.applicableRoles,
2971
+ columnType: TableColumnType.TEXT,
2972
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2973
+ cellData: (element) => `${element.roles}`,
2974
+ },
2975
+ {
2976
+ id: 5,
2977
+ columnDef: 'settings',
2978
+ heading: this.columnHeading?.settings,
2979
+ columnType: TableColumnType.TEXT,
2980
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2981
+ cellData: (element) => `${element.businessRule}`,
2982
+ },
2983
+ {
2984
+ id: 6,
2985
+ columnDef: 'action',
2986
+ heading: this.columnHeading?.action,
2987
+ columnType: TableColumnType.ACTIONS,
2988
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2989
+ cellData: (element) => `${element.menuAction}`,
2990
+ },
2991
+ ];
2992
+ }
2993
+ /**
2994
+ * Performs necessary cleanup tasks, such as unsubscribing from subscription when the component is being destroyed.
2995
+ * @memberof ViewTenantGroupTypesComponent
2996
+ */
2997
+ ngOnDestroy() {
2998
+ this.destroy$?.next(true);
2999
+ this.destroy$?.unsubscribe();
3000
+ }
3001
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewTenantGroupTypesComponent, deps: [{ token: TenantApplicationsService }, { token: i2$1.SharedService }], target: i0.ɵɵFactoryTarget.Component }); }
3002
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ViewTenantGroupTypesComponent, isStandalone: true, selector: "ieeesa-view-tenant-group-types", ngImport: i0, template: "<div class=\"ieeesa-view-tenant-group-types\">\r\n <ieeesa-data-table\r\n *ngIf=\"columnSchema.length\"\r\n [headerElementClassName]=\"headerElementClassName\"\r\n [customStickyHeaderNeeded]=\"true\"\r\n [isCellTextOverflowEllipsis]=\"true\"\r\n [tableDataInfo]=\"groupTypes\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n ></ieeesa-data-table>\r\n</div>", 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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-view-tenant-group-types .ieeesa-data-table{padding-top:2.5em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content{margin-top:0!important}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .mdc-data-table__header-cell{padding:14px 12px;box-shadow:0 1px #9ba0a6 inset!important}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .mdc-data-table__cell{padding:4px 14px}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-groupType{min-width:10em;max-width:10em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-description{min-width:12em;max-width:12em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-rosterType{min-width:6em;max-width:6em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-applicableRoles,.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-settings{min-width:10em;max-width:10em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .mat-mdc-icon-button{color:#00629b}@media (max-width: 767px){.ieeesa-view-tenant-group-types .ieeesa-data-table{padding-top:1em}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "nestedTableDataInfo", "columnSchemaInfo", "nestedTableColumnSchemaInfo", "tableActions", "hasNestedTable", "tableColumnActions", "tableColumnActionMenuSize", "tableRowActions", "nestedTableRowActions", "caption", "viewAll", "paginatorConfig", "nestedPaginatorConfig", "legends", "pageIndex", "pageSize", "searchPlaceHolderText", "rowEditButton", "rowDeleteButton", "tableEditButton", "tableDeleteButton", "rowExpandButton", "rowCollapseButton", "isNestedTableHeaderNeeded", "addButton", "defaultColumnSortDirection", "defaultSortedColumn", "isClearSortNeeded", "filters", "selectedFilterOptions", "appliedFilterOptions", "searchType", "className", "searchSupportMessage", "inbuiltSortingNeeded", "isCellTextOverflowEllipsis", "isTableHeaderNeeded", "tableColumnsHeaderText", "verticalColumnHeaderNumber", "scrollbarSupportMessage", "isScrollSupportMessageNeeded", "isStickyHeaderNeeded", "customStickyHeaderNeeded", "headerElementClassName", "minCharToSearch", "searchResultMessage", "rowMenuActionIcon", "canDisableCheckbox", "isEllipsisRequiredForLink"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "menuActionClick", "selectActionMenu", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue", "sortChange", "selectedRowsInfo", "rowExpansionClick", "tableColumnMenuActionClick", "tableColumnMenuToggleButton", "rowSlideToggle"] }], encapsulation: i0.ViewEncapsulation.None }); }
3003
+ }
3004
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewTenantGroupTypesComponent, decorators: [{
3005
+ type: Component,
3006
+ args: [{ selector: 'ieeesa-view-tenant-group-types', standalone: true, imports: [CommonModule, DataTableComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-view-tenant-group-types\">\r\n <ieeesa-data-table\r\n *ngIf=\"columnSchema.length\"\r\n [headerElementClassName]=\"headerElementClassName\"\r\n [customStickyHeaderNeeded]=\"true\"\r\n [isCellTextOverflowEllipsis]=\"true\"\r\n [tableDataInfo]=\"groupTypes\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n ></ieeesa-data-table>\r\n</div>", 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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-view-tenant-group-types .ieeesa-data-table{padding-top:2.5em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content{margin-top:0!important}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .mdc-data-table__header-cell{padding:14px 12px;box-shadow:0 1px #9ba0a6 inset!important}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .mdc-data-table__cell{padding:4px 14px}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-groupType{min-width:10em;max-width:10em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-description{min-width:12em;max-width:12em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-rosterType{min-width:6em;max-width:6em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-applicableRoles,.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-settings{min-width:10em;max-width:10em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .mat-mdc-icon-button{color:#00629b}@media (max-width: 767px){.ieeesa-view-tenant-group-types .ieeesa-data-table{padding-top:1em}}\n"] }]
3007
+ }], ctorParameters: function () { return [{ type: TenantApplicationsService }, { type: i2$1.SharedService }]; } });
3008
+
3009
+ /* eslint-disable no-unused-vars */
3010
+ var Settings;
3011
+ (function (Settings) {
3012
+ Settings["ALLOW_SUB_GROUPS"] = "Allow Sub-Groups";
3013
+ Settings["ALLOW_ROSTERS"] = "Rosters Enabled";
3014
+ Settings["ALLOW_ALTERNATE_VOTING"] = "Allow Alternate Voting";
3015
+ Settings["HAS_CLASSIFICATION"] = "Has Classification";
3016
+ Settings["ALLOW_EDIT"] = "Allow Edit";
3017
+ Settings["ALLOW_DELETE"] = "Allow Delete";
3018
+ })(Settings || (Settings = {}));
3019
+ /* eslint-disable no-unused-vars */
3020
+ var VotingMemberLevelRole;
3021
+ (function (VotingMemberLevelRole) {
3022
+ VotingMemberLevelRole["VOTING_MEMBER_PRINCIPAL"] = "Voting Member (Principal)";
3023
+ VotingMemberLevelRole["VOTING_MEMBER_ALTERNATE"] = "Voting Member (Alternate)";
3024
+ })(VotingMemberLevelRole || (VotingMemberLevelRole = {}));
3025
+ var RosterTypeLOVCode;
3026
+ (function (RosterTypeLOVCode) {
3027
+ RosterTypeLOVCode["INDIVIDUAL"] = "IND";
3028
+ RosterTypeLOVCode["ENTITY"] = "EN";
3029
+ })(RosterTypeLOVCode || (RosterTypeLOVCode = {}));
3030
+
3031
+ /**
3032
+ * CreateModifyGroupTypeComponent uses DynamicFormComponent to build create add group type form or edit group type form and implement the functionalities of submission of form and handling success and error scenarios.
3033
+ * @class CreateModifyGroupTypeComponent
3034
+ * @implements {OnInit}
3035
+ * @implements {OnDestroy}
3036
+ */
3037
+ class CreateModifyGroupTypeComponent {
3038
+ constructor(
3039
+ // eslint-disable-next-line no-unused-vars
3040
+ tenantAppService,
3041
+ // eslint-disable-next-line no-unused-vars
3042
+ sharedService,
3043
+ // eslint-disable-next-line no-unused-vars
3044
+ renderer,
3045
+ // eslint-disable-next-line no-unused-vars
3046
+ elementRef,
3047
+ // eslint-disable-next-line no-unused-vars
3048
+ formUtilityService // eslint-disable-next-line no-empty-function,
3049
+ ) {
3050
+ this.tenantAppService = tenantAppService;
3051
+ this.sharedService = sharedService;
3052
+ this.renderer = renderer;
3053
+ this.elementRef = elementRef;
3054
+ this.formUtilityService = formUtilityService;
3055
+ this.destroy$ = new Subject();
3056
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3057
+ this.constants = screenText;
3058
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3059
+ this.createGroupTypeScreenTexts = this.constants?.createGroupType;
3060
+ this.leftButtonLabel = this.createGroupTypeScreenTexts?.label?.leftButtonLabel;
3061
+ this.rightButtonLabel = this.createGroupTypeScreenTexts?.label?.rightButtonLabel;
3062
+ this.colWidth = { xs: 12, xl: 12, sm: 12, md: 12, lg: 12 };
3063
+ this.actionButtonAlign = AlignType.LEFT;
3064
+ this.isRootGroupOptions = [
3065
+ {
3066
+ id: 1,
3067
+ label: this.createGroupTypeScreenTexts?.isRootGroupOptions?.yes,
3068
+ checked: false,
3069
+ },
3070
+ {
3071
+ id: 2,
3072
+ label: this.createGroupTypeScreenTexts?.isRootGroupOptions?.no,
3073
+ checked: true,
3074
+ },
3075
+ ];
3076
+ this.rosterTypeOptions = [];
3077
+ this.settingOptions = [];
3078
+ this.officerRolesOptions = [];
3079
+ this.memberLevelOptions = [];
3080
+ this.allowedSubGroupTypesOptions = [];
3081
+ /**
3082
+ * Event emitter for form submission response.
3083
+ * @memberof CreateModifyGroupTypeComponent
3084
+ */
3085
+ this.submitFormResponse = new EventEmitter();
3086
+ /**
3087
+ * Event emitter for form cancel action.
3088
+ * @memberof CreateModifyGroupTypeComponent
3089
+ */
3090
+ this.formCancel = new EventEmitter();
3091
+ }
3092
+ /**
3093
+ * Sets appId, tenantFunctionType and calls getGroupTypes() & getRosterTypes() to get group and roster types.
3094
+ * @memberof CreateModifyGroupTypeComponent
3095
+ */
3096
+ ngOnInit() {
3097
+ this.appId = this.tenantAppService.getSelectedTenantInformation()
3098
+ ?.appId;
3099
+ this.tenantFunctionType = this.tenantAppService?.getTenantFunctionType();
3100
+ this.selectedGroupTypeInfo =
3101
+ this.tenantAppService?.getNewlyCreatedGroupTypeInfo();
3102
+ this.getGroupTypes();
3103
+ this.getRosterTypes();
3104
+ }
3105
+ /**
3106
+ * Gets the list of roster types and updates the form control.
3107
+ * @memberof CreateModifyGroupTypeComponent
3108
+ */
3109
+ getRosterTypes() {
3110
+ this.tenantAppService
3111
+ .getRosterType()
3112
+ .pipe(takeUntil(this.destroy$))
3113
+ .subscribe({
3114
+ next: (response) => {
3115
+ if (response?.status) {
3116
+ this.getSettings();
3117
+ const rosterTypeList = response.body;
3118
+ rosterTypeList.map((rosterType) => this.rosterTypeOptions.push({
3119
+ id: rosterType.lovId,
3120
+ label: rosterType.lovDesc,
3121
+ checked: rosterType.lovCode === RosterTypeLOVCode.INDIVIDUAL,
3122
+ }));
3123
+ }
3124
+ },
3125
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3126
+ error: (error) => {
3127
+ this.sharedService.handleErrors(error, this.createGroupTypeScreenTexts.errors);
3128
+ },
3129
+ });
3130
+ }
3131
+ /**
3132
+ * Gets the list of settings and updates the form control.
3133
+ * @memberof CreateModifyGroupTypeComponent
3134
+ */
3135
+ getSettings() {
3136
+ this.tenantAppService
3137
+ .getGroupTypeSettings()
3138
+ .pipe(takeUntil(this.destroy$))
3139
+ .subscribe({
3140
+ next: (response) => {
3141
+ if (response.status) {
3142
+ this.getRoles();
3143
+ const settingsList = response.body;
3144
+ settingsList.map((setting) => {
3145
+ this.settingOptions.push({
3146
+ id: setting.lovId,
3147
+ name: setting.lovDesc,
3148
+ checked: false,
3149
+ disabled: false,
3150
+ });
3151
+ });
3152
+ }
3153
+ },
3154
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3155
+ error: (error) => {
3156
+ this.sharedService.handleErrors(error, this.createGroupTypeScreenTexts.errors);
3157
+ },
3158
+ });
3159
+ }
3160
+ /**
3161
+ * Gets the list of roles and updates the form control.
3162
+ * @memberof CreateModifyGroupTypeComponent
3163
+ */
3164
+ getRoles() {
3165
+ this.tenantAppService
3166
+ .getRoles(this.appId)
3167
+ .pipe(takeUntil(this.destroy$))
3168
+ .subscribe({
3169
+ next: (response) => {
3170
+ if (response?.status) {
3171
+ const rolesList = response?.body;
3172
+ rolesList.map((role) => {
3173
+ if (role.roleTypeName === RoleType.OFFICER) {
3174
+ this.officerRolesOptions.push({
3175
+ id: role.roleId,
3176
+ name: role.roleName,
3177
+ checked: false,
3178
+ disabled: false,
3179
+ });
3180
+ }
3181
+ else if (role.roleTypeName === RoleType.MEMBER_LEVEL) {
3182
+ this.memberLevelOptions.push({
3183
+ id: role.roleId,
3184
+ name: role.roleName,
3185
+ checked: false,
3186
+ disabled: false,
3187
+ });
3188
+ }
3189
+ });
3190
+ if (this.memberLevelOptions.length === 0 ||
3191
+ this.officerRolesOptions.length === 0) {
3192
+ this.sharedService.showAlertMessage(AlertType.ERROR, this.createGroupTypeScreenTexts.errors['3019']);
3193
+ }
3194
+ else {
3195
+ this.initializeCreateGroupTypeFormGroup();
3196
+ }
3197
+ }
3198
+ },
3199
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3200
+ error: (error) => {
3201
+ this.sharedService.handleErrors(error, this.createGroupTypeScreenTexts.errors);
3202
+ },
3203
+ });
3204
+ }
3205
+ /**
3206
+ * Gets and filters non SYSTEM_USER group types, constructs allowed sub-group types options and form field config.
3207
+ * @memberof CreateModifyGroupTypeComponent
3208
+ */
3209
+ getGroupTypes() {
3210
+ this.groupTypeDetails = this.tenantAppService.getGroupTypeDetails();
3211
+ this.groupTypeDetails?.body?.forEach((item) => {
3212
+ if (item?.configFieldValue?.businessRule?.rosterType !==
3213
+ GroupRosterType?.SYSTEM_USER) {
3214
+ this.allowedSubGroupTypesOptions.push({
3215
+ id: item?.configFieldId,
3216
+ name: item?.configFieldValue?.name,
3217
+ checked: false,
3218
+ disabled: false,
3219
+ });
3220
+ }
3221
+ });
3222
+ this.allowedSubGroupTypesFieldConfig = {
3223
+ type: FormControlType.CHECKBOX,
3224
+ label: this.createGroupTypeScreenTexts?.label?.allowedSubGroupTypes,
3225
+ controlName: 'allowedSubGroupTypes',
3226
+ checkboxOptions: this.allowedSubGroupTypesOptions,
3227
+ ariaLabel: this.createGroupTypeScreenTexts?.label?.ariaLabel?.allowedSubGroupTypes,
3228
+ ariaDescribedById: this.createGroupTypeScreenTexts?.label?.ariaDescribedById
3229
+ ?.allowedSubGroupTypes,
3230
+ };
3231
+ }
3232
+ /**
3233
+ * Initialize the create/edit group type form group array.
3234
+ * @param {*} [formValue]
3235
+ * @memberof CreateModifyGroupTypeComponent
3236
+ */
3237
+ initializeCreateGroupTypeFormGroup() {
3238
+ this.createGroupTypeFormGroup = {
3239
+ formGroup: [
3240
+ {
3241
+ legend: '',
3242
+ controls: [
3243
+ {
3244
+ type: FormControlType?.INPUT,
3245
+ label: this.createGroupTypeScreenTexts?.label?.groupType + '*',
3246
+ controlName: 'groupType',
3247
+ value: '',
3248
+ validation: [
3249
+ Validators.required,
3250
+ Validators.maxLength(GroupTypeValidation.groupTypeMaxLength),
3251
+ ],
3252
+ supportMessage: this.createGroupTypeScreenTexts?.supportText?.groupType,
3253
+ requiredErrorMessage: this.createGroupTypeScreenTexts?.message?.error?.required,
3254
+ maxErrorMessage: this.createGroupTypeScreenTexts?.message?.error?.limit
3255
+ ?.groupTypeMaxChars,
3256
+ ariaLabel: this.createGroupTypeScreenTexts?.label?.ariaLabel?.groupType,
3257
+ ariaDescribedById: this.createGroupTypeScreenTexts?.label?.ariaDescribedById
3258
+ ?.groupType,
3259
+ },
3260
+ {
3261
+ type: FormControlType?.TEXT_AREA,
3262
+ label: this.createGroupTypeScreenTexts?.label?.description + '*',
3263
+ controlName: 'description',
3264
+ value: '',
3265
+ validation: [
3266
+ Validators.required,
3267
+ Validators.maxLength(GroupTypeValidation.descriptionMaxLength),
3268
+ ],
3269
+ supportMessage: this.createGroupTypeScreenTexts?.supportText?.description,
3270
+ requiredErrorMessage: this.createGroupTypeScreenTexts?.message?.error?.required,
3271
+ maxCharCount: GroupTypeValidation.descriptionMaxLength,
3272
+ maxErrorMessage: this.createGroupTypeScreenTexts?.message?.error?.limit
3273
+ ?.descriptionMaxChars,
3274
+ ariaLabel: this.createGroupTypeScreenTexts?.label?.ariaLabel?.description,
3275
+ ariaDescribedById: this.createGroupTypeScreenTexts?.label?.ariaDescribedById
3276
+ ?.description,
3277
+ ariaMultiline: true,
3278
+ isResize: true,
3279
+ },
3280
+ {
3281
+ type: FormControlType.RADIO,
3282
+ label: this.createGroupTypeScreenTexts?.label?.rosterType + '*',
3283
+ controlName: 'rosterType',
3284
+ value: this.tenantFunctionType === TenantFunctionType.EDIT_GROUP_TYPE
3285
+ ? this.selectedGroupTypeInfo.configFieldValue.businessRule
3286
+ .rosterType
3287
+ : this.rosterTypeOptions[0].label,
3288
+ disabled: this.tenantFunctionType === TenantFunctionType.EDIT_GROUP_TYPE,
3289
+ radioOptions: this.rosterTypeOptions,
3290
+ validation: [Validators.required],
3291
+ requiredErrorMessage: this.createGroupTypeScreenTexts?.message?.error?.required,
3292
+ ariaLabel: this.createGroupTypeScreenTexts?.label?.ariaLabel?.rosterType,
3293
+ ariaDescribedById: this.createGroupTypeScreenTexts?.label?.ariaDescribedById
3294
+ ?.rosterType,
3295
+ },
3296
+ {
3297
+ type: FormControlType.CHECKBOX,
3298
+ label: this.createGroupTypeScreenTexts?.label?.settings + '*',
3299
+ controlName: 'settings',
3300
+ checkboxOptions: this.settingOptions,
3301
+ minSelectionRequired: 1,
3302
+ ariaLabel: this.createGroupTypeScreenTexts?.label?.ariaLabel?.settings,
3303
+ ariaDescribedById: this.createGroupTypeScreenTexts?.label?.ariaDescribedById
3304
+ ?.settings,
3305
+ requiredErrorMessage: this.createGroupTypeScreenTexts?.message?.error?.required,
3306
+ validation: [Validators.required],
3307
+ },
3308
+ {
3309
+ type: FormControlType.CHECKBOX,
3310
+ label: this.createGroupTypeScreenTexts?.label?.appOfficerRoles + '*',
3311
+ controlName: 'appOfficerRoles',
3312
+ checkboxOptions: this.officerRolesOptions,
3313
+ minSelectionRequired: 1,
3314
+ ariaLabel: this.createGroupTypeScreenTexts?.label?.ariaLabel
3315
+ ?.appOfficerRoles,
3316
+ ariaDescribedById: this.createGroupTypeScreenTexts?.label?.ariaDescribedById
3317
+ ?.appOfficerRoles,
3318
+ requiredErrorMessage: this.createGroupTypeScreenTexts?.message?.error?.required,
3319
+ validation: [Validators.required],
3320
+ },
3321
+ {
3322
+ type: FormControlType.CHECKBOX,
3323
+ label: this.createGroupTypeScreenTexts?.label?.appMemberLevel + '*',
3324
+ controlName: 'appMemberLevel',
3325
+ checkboxOptions: this.memberLevelOptions,
3326
+ minSelectionRequired: 1,
3327
+ ariaLabel: this.createGroupTypeScreenTexts?.label?.ariaLabel
3328
+ ?.appMemberLevel,
3329
+ ariaDescribedById: this.createGroupTypeScreenTexts?.label?.ariaDescribedById
3330
+ ?.appMemberLevel,
3331
+ requiredErrorMessage: this.createGroupTypeScreenTexts?.message?.error?.required,
3332
+ validation: [Validators.required],
3333
+ },
3334
+ {
3335
+ type: FormControlType.RADIO,
3336
+ label: this.createGroupTypeScreenTexts?.label?.isRootGroup + '*',
3337
+ controlName: 'isRootGroup',
3338
+ value: this.tenantFunctionType === TenantFunctionType.EDIT_GROUP_TYPE
3339
+ ? this.selectedGroupTypeInfo.configFieldValue.businessRule
3340
+ .isRootGroup
3341
+ ? this.isRootGroupOptions[0].label
3342
+ : this.isRootGroupOptions[1].label
3343
+ : this.isRootGroupOptions[1].label,
3344
+ disabled: this.tenantFunctionType === TenantFunctionType.EDIT_GROUP_TYPE,
3345
+ radioOptions: this.isRootGroupOptions,
3346
+ validation: [Validators.required],
3347
+ requiredErrorMessage: this.createGroupTypeScreenTexts?.message?.error?.required,
3348
+ ariaLabel: this.createGroupTypeScreenTexts?.label?.ariaLabel?.isRootGroup,
3349
+ ariaDescribedById: this.createGroupTypeScreenTexts?.label?.ariaDescribedById
3350
+ ?.isRootGroup,
3351
+ },
3352
+ ],
3353
+ },
3354
+ ],
3355
+ };
3356
+ }
3357
+ /**
3358
+ * Add or removes allowed sub groups form control (checkbox group control and options) as when allow sub group selection and updates the form state.
3359
+ * @param {*} selectedCheckbox
3360
+ * @memberof CreateModifyGroupTypeComponent
3361
+ */
3362
+ onCheckboxSelectionChange(selectedCheckbox) {
3363
+ if (selectedCheckbox.name === Settings.ALLOW_SUB_GROUPS) {
3364
+ if (selectedCheckbox.checked) {
3365
+ this.componentRef = this.formUtilityService.addFormControl(this.dynamicFormComponentViewRef, CheckboxComponent, this.createModifyGroupTypeFormGroupRef, this.allowedSubGroupTypesFieldConfig, this.renderer, this.elementRef, 'is-root-group', this.dynamicFormComponent);
3366
+ }
3367
+ else {
3368
+ this.allowedSubGroupTypesOptions.forEach((allowedSubGroupTypes) => (allowedSubGroupTypes.checked = false));
3369
+ this.formUtilityService.removeFormControl(this.createModifyGroupTypeFormGroupRef, this.allowedSubGroupTypesFieldConfig, this.componentRef, this.renderer, this.elementRef);
3370
+ }
3371
+ }
3372
+ }
3373
+ /**
3374
+ * Sets create/modify group type reactive form group reference.
3375
+ * @param {FormGroup[]} form -The form group array containing the form to be referenced.
3376
+ * @memberof CreateModifyGroupTypeComponent
3377
+ */
3378
+ getCreateModifyGroupTypeFormGroupRef(form) {
3379
+ this.createModifyGroupTypeFormGroupRef = form[0];
3380
+ }
3381
+ /**
3382
+ * Find the provided setting name in setting option and return the boolean value.
3383
+ * @param {string} settingName
3384
+ * @return {*} {boolean}
3385
+ * @memberof CreateModifyGroupTypeComponent
3386
+ */
3387
+ isSettingSelectedByName(settingName) {
3388
+ return this.settingOptions.find((setting) => setting.name === settingName)?.checked;
3389
+ }
3390
+ /**
3391
+ * Creates a new group type on form submission and the form is valid.
3392
+ * @param {FormGroup[]} form
3393
+ * @memberof CreateModifyGroupTypeComponent
3394
+ */
3395
+ onCreateModifyGroupTypeFormSubmit(form) {
3396
+ form[0]?.markAllAsTouched();
3397
+ if (form[0].status === FormStatus.VALID) {
3398
+ const selectedGroupTypes = this.allowedSubGroupTypesOptions
3399
+ .filter((subGroupType) => subGroupType.checked)
3400
+ .map((selectedGroupType) => selectedGroupType.id);
3401
+ const selectedRoles = [
3402
+ ...this.memberLevelOptions.filter((memberLevel) => memberLevel.checked),
3403
+ ...this.officerRolesOptions.filter((officerRole) => officerRole.checked),
3404
+ ].map((selectedRole) => {
3405
+ return {
3406
+ roleId: selectedRole.id,
3407
+ };
3408
+ });
3409
+ const configFieldValue = {
3410
+ name: form[0].get('groupType')?.value,
3411
+ description: form[0].get('description')?.value,
3412
+ businessRule: {
3413
+ rosterType: form[0].get('rosterType')?.value,
3414
+ allowEdit: this.isSettingSelectedByName(Settings.ALLOW_EDIT),
3415
+ allowRoster: this.isSettingSelectedByName(Settings.ALLOW_ROSTERS),
3416
+ allowAlternateVoting: this.isSettingSelectedByName(Settings.ALLOW_ALTERNATE_VOTING),
3417
+ allowDelete: this.isSettingSelectedByName(Settings.ALLOW_DELETE),
3418
+ allowSubGroup: this.isSettingSelectedByName(Settings.ALLOW_SUB_GROUPS),
3419
+ hasClassification: this.isSettingSelectedByName(Settings.HAS_CLASSIFICATION),
3420
+ allowedGroupType: selectedGroupTypes,
3421
+ isRootGroup: form[0].get('isRootGroup')?.value ===
3422
+ this.isRootGroupOptions[0].label,
3423
+ },
3424
+ };
3425
+ if (form[0].get('isRootGroup')?.value === this.isRootGroupOptions[0].label)
3426
+ configFieldValue.hierarchy = 0;
3427
+ const createGroupTypePayload = {
3428
+ payload: {
3429
+ appId: this.appId,
3430
+ roles: selectedRoles,
3431
+ configFieldName: 'group_type',
3432
+ configFieldValue: JSON.stringify(configFieldValue),
3433
+ },
3434
+ };
3435
+ this.tenantAppService
3436
+ .createGroupType(createGroupTypePayload)
3437
+ .pipe(takeUntil(this.destroy$))
3438
+ .subscribe({
3439
+ next: (response) => {
3440
+ if (response.status) {
3441
+ const { appId, roles, configFieldName } = createGroupTypePayload.payload;
3442
+ const configFieldValue = JSON.parse(createGroupTypePayload.payload.configFieldValue);
3443
+ this.tenantAppService.setNewlyCreatedGroupTypeInfo({
3444
+ appId,
3445
+ roles,
3446
+ configFieldName,
3447
+ configFieldValue,
3448
+ });
3449
+ this.submitFormResponse.emit(response);
3450
+ }
3451
+ },
3452
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3453
+ error: (error) => {
3454
+ this.sharedService.handleErrors(error, this.createGroupTypeScreenTexts.errors);
3455
+ },
3456
+ });
3457
+ }
3458
+ }
3459
+ /**
3460
+ * Emits form cancel event.
3461
+ * @memberof CreateModifyGroupTypeComponent
3462
+ */
3463
+ onFormCancel() {
3464
+ this.formCancel.emit();
3465
+ }
3466
+ /**
3467
+ * Implementation of ngOnDestroy lifecycle hook method to unsubscribe the open observable subscriptions.
3468
+ * @memberof CreateModifyGroupTypeComponent
3469
+ */
3470
+ ngOnDestroy() {
3471
+ this.destroy$.next(true);
3472
+ this.destroy$.unsubscribe();
3473
+ }
3474
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateModifyGroupTypeComponent, deps: [{ token: TenantApplicationsService }, { token: i2$1.SharedService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2$1.FormUtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
3475
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateModifyGroupTypeComponent, isStandalone: true, selector: "ieeesa-create-modify-group-type", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }, { propertyName: "dynamicFormComponentViewRef", first: true, predicate: DynamicFormComponent, descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n *ngIf=\"createGroupTypeFormGroup\"\r\n class=\"ieeesa-create-group-type-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createGroupTypeFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onCreateModifyGroupTypeFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateModifyGroupTypeFormGroupRef($event)\"\r\n (formCheckboxSelection)=\"onCheckboxSelectionChange($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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-create-modify-group-type{width:60vw!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .mat-mdc-dialog-content{padding:1em!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding-top:0!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field__resize{resize:vertical}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-input-field{width:50%}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form__form-field{width:100%}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form .ieeesa-input-field,.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form .mat-mdc-form-field-flex{width:100%!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "fileUploadStatus", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "isRightButtonNeeded", "actionButtonAlign", "fileDownloadAndDeleteConfig"], 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", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
3476
+ }
3477
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateModifyGroupTypeComponent, decorators: [{
3478
+ type: Component,
3479
+ args: [{ selector: 'ieeesa-create-modify-group-type', standalone: true, imports: [CommonModule, DynamicFormComponent], encapsulation: ViewEncapsulation.None, template: "<ieeesa-dynamic-form\r\n *ngIf=\"createGroupTypeFormGroup\"\r\n class=\"ieeesa-create-group-type-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createGroupTypeFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onCreateModifyGroupTypeFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateModifyGroupTypeFormGroupRef($event)\"\r\n (formCheckboxSelection)=\"onCheckboxSelectionChange($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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-create-modify-group-type{width:60vw!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .mat-mdc-dialog-content{padding:1em!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding-top:0!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field__resize{resize:vertical}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-input-field{width:50%}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form__form-field{width:100%}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form .ieeesa-input-field,.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form .mat-mdc-form-field-flex{width:100%!important}}\n"] }]
3480
+ }], ctorParameters: function () { return [{ type: TenantApplicationsService }, { type: i2$1.SharedService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2$1.FormUtilityService }]; }, propDecorators: { dynamicFormComponent: [{
3481
+ type: ViewChild,
3482
+ args: [DynamicFormComponent]
3483
+ }], dynamicFormComponentViewRef: [{
3484
+ type: ViewChild,
3485
+ args: [DynamicFormComponent, { read: ViewContainerRef }]
3486
+ }], submitFormResponse: [{
3487
+ type: Output
3488
+ }], formCancel: [{
3489
+ type: Output
3490
+ }] } });
3491
+
3492
+ class ViewTenantDetailsComponent {
3493
+ constructor(
3494
+ // eslint-disable-next-line no-unused-vars
3495
+ dialog,
3496
+ // eslint-disable-next-line no-unused-vars
3497
+ breakpointObserverService,
3498
+ // eslint-disable-next-line no-unused-vars
3499
+ tenantAppService,
3500
+ // eslint-disable-next-line no-unused-vars
3501
+ globalErrorHandlerService,
3502
+ // eslint-disable-next-line no-unused-vars
3503
+ sharedService,
3504
+ // eslint-disable-next-line no-unused-vars
3505
+ activatedRoute,
3506
+ // eslint-disable-next-line no-unused-vars
3507
+ authService,
3508
+ // eslint-disable-next-line no-unused-vars
3509
+ storageService) {
3510
+ this.dialog = dialog;
3511
+ this.breakpointObserverService = breakpointObserverService;
3512
+ this.tenantAppService = tenantAppService;
3513
+ this.globalErrorHandlerService = globalErrorHandlerService;
3514
+ this.sharedService = sharedService;
3515
+ this.activatedRoute = activatedRoute;
3516
+ this.authService = authService;
3517
+ this.storageService = storageService;
3518
+ this.destroy$ = new Subject();
3519
+ this.isMobileView = false;
3520
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3521
+ this.constants = screenText;
3522
+ this.tenantLabels = this.constants?.viewTenants?.label;
3523
+ this.slideToggleOption = {
3524
+ id: 1,
3525
+ label: this.constants?.viewTenants?.label?.active,
3526
+ checked: true,
3527
+ disabled: false,
3528
+ };
3529
+ this.editButton = this.constants?.viewTenants?.buttons;
3530
+ this.accordionInfoList = JSON.parse(JSON.stringify(this.constants?.viewTenants?.tenantAccordionInfo));
3531
+ this.appId = '';
3532
+ this.iconSize = this.constants?.viewRolesAndPermissions?.columnActionIconSize;
3533
+ this.rolesAndPermissionsTableCaption = this.constants?.viewRolesAndPermissions?.tableCaption;
3534
+ this.rolesAndPermissionsTableHeaderName = this.constants?.viewRolesAndPermissions?.tableColumnsHeaderText;
3535
+ this.rolesAndPermissionsTableSupportMessage = this.constants?.viewRolesAndPermissions?.scrollbarSupportMessage;
3536
+ this.permissionsColumnClassNumber = 1;
3537
+ this.menuItems = this.constants?.viewRolesAndPermissions?.columnActionMenuItems;
3538
+ this.columnSchema = [];
3539
+ this.tableData = [];
3540
+ this.isRolesAndPermissionsExpanded = false;
3541
+ this.paginatorConfig = {
3542
+ recordsPerPage: this.constants?.viewRolesAndPermissions?.pageSizeOptions[0],
3543
+ pageSizeOptions: this.constants?.viewRolesAndPermissions?.pageSizeOptions,
3544
+ totalRecords: 0,
3545
+ };
3546
+ this.rolesAndPermissionsClassName = '.ieeesa-view-tenant-info__roles-and-permissions';
3547
+ this.headerElementClassName = '.ieeesa-header';
3548
+ this.tableActions = {
3549
+ isPaginationNeeded: true,
3550
+ };
3551
+ this.accordionDetails = AccordionDetails;
3552
+ this.isBasicDetailsExpanded = false;
3553
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3554
+ this.createGroupTypeScreenTexts = this.constants?.createGroupType;
3555
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3556
+ this.editTenantScreenTexts = this.constants?.editTenant;
3557
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3558
+ this.deleteRoleScreenTexts = this.constants?.deleteRole;
3559
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3560
+ this.mapRolesAndPermissionsScreenTexts = this.constants?.mapRolesAndPermissions;
3561
+ this.alignmentType = AlignType;
3562
+ this.permissionType = PermissionType;
3563
+ this.createRoleScreenTexts = this.constants?.createRole;
3564
+ this.selectedRoleInfo = {
3565
+ roleId: '',
3566
+ roleName: '',
3567
+ };
3568
+ this.isGroupTypesExpanded = false;
3569
+ this.roleTypeOptions = [];
3570
+ /** Feature ids captured before the edit dialog opens, used to detect a feature list change on save. */
3571
+ this.featureIdsBeforeEdit = [];
3572
+ this.breakpointObserverService
3573
+ .getBreakpoint()
3574
+ .pipe(takeUntil(this.destroy$))
3575
+ .subscribe((result) => {
3576
+ this.isMobileView = result?.matches;
3577
+ });
3578
+ }
3579
+ /**
3580
+ * Initializes view tenant details component.
3581
+ * @return -returns nothing
3582
+ * @memberof ViewTenantDetailsComponent
3583
+ */
3584
+ ngOnInit() {
3585
+ this.tenantDetails =
3586
+ this.tenantAppService?.getSelectedTenantInformation();
3587
+ this.slideToggleOption.checked = this.tenantDetails?.status;
3588
+ this.slideToggleOption.label = this.tenantDetails?.status
3589
+ ? this.tenantLabels?.active
3590
+ : this.tenantLabels?.inactive;
3591
+ this.routePaths = this.routePaths ?? this.constants?.routeConfigPath;
3592
+ this.viewTenantsRouteUrl = `/${this.routePaths?.viewTenants}`;
3593
+ this.tenantAppService?.setAppConfig(this.apiBaseURL, this.userPermissions);
3594
+ this.userTenantsPermissions = this.tenantAppService?.filterPermission(this.userPermissions);
3595
+ this.appId = this.tenantAppService.getSelectedTenantInformation()
3596
+ ?.appId;
3597
+ this.tablePagination = {
3598
+ offset: 0,
3599
+ pageSize: this.paginatorConfig.pageSizeOptions[0],
3600
+ };
3601
+ this.getApplicationTypes();
3602
+ this.activatedRoute?.queryParams
3603
+ ?.pipe(takeUntil(this.destroy$))
3604
+ ?.subscribe((params) => {
3605
+ this.appId = params['id'];
3606
+ this.getTenantDetails(this.appId);
3607
+ });
3608
+ }
3609
+ /**
3610
+ * Gets the selected tenant details from server.
3611
+ * @memberof ViewTenantDetailsComponent
3612
+ */
3613
+ getTenantDetails(appId) {
3614
+ this.tenantAppService
3615
+ .getTenantDetails(appId)
3616
+ .pipe(takeUntil(this.destroy$))
3617
+ .subscribe({
3618
+ next: (response) => {
3619
+ if (response?.status) {
3620
+ this.tenantDetails = response?.body;
3621
+ this.tenantAppService.setSelectedTenantInformation(this.tenantDetails);
3622
+ this.slideToggleOption.checked = this.tenantDetails
3623
+ .status;
3624
+ this.slideToggleOption.label = this.tenantDetails.status
3625
+ ? this.tenantLabels?.active
3626
+ : this.tenantLabels?.inactive;
3627
+ const features = this.tenantDetails.features;
3628
+ features.map((feature) => {
3629
+ if (feature?.featureId ===
3630
+ FeaturePermissionId.MEETINGS_AND_EVENTS ||
3631
+ feature?.featureId === FeaturePermissionId.BALLOTS)
3632
+ this.accordionInfoList.push({
3633
+ id: this.accordionInfoList.length + 1,
3634
+ isDisabled: false,
3635
+ title: feature?.featureName,
3636
+ });
3637
+ });
3638
+ }
3639
+ },
3640
+ error: (error) => {
3641
+ this.sharedService.handleErrors(error, this.constants?.viewTenants.errors);
3642
+ },
3643
+ });
3644
+ }
3645
+ /**
3646
+ * Display the corresponding tenant basic or feature details based on selected accordion.
3647
+ * @param {AccordionInfo} accordionInfo
3648
+ * @param {boolean} expanded
3649
+ * @memberof ViewTenantDetailsComponent
3650
+ */
3651
+ showTenantDetails(accordionInfo, expanded) {
3652
+ const accordionId = accordionInfo.id;
3653
+ switch (accordionId) {
3654
+ case 1: {
3655
+ this.isBasicDetailsExpanded = expanded;
3656
+ if (expanded) {
3657
+ this.getApplicationTypes();
3658
+ }
3659
+ break;
3660
+ }
3661
+ case 2: {
3662
+ this.isRolesAndPermissionsExpanded = expanded;
3663
+ if (expanded) {
3664
+ this.columnSchema = [];
3665
+ this.paginatorConfig.recordsPerPage =
3666
+ this.constants?.viewRolesAndPermissions?.pageSizeOptions[0];
3667
+ this.tablePagination.offset = 0;
3668
+ this.tablePagination.pageSize = this.paginatorConfig.recordsPerPage;
3669
+ this.getRolesAndInitializeTableSchema();
3670
+ }
3671
+ break;
3672
+ }
3673
+ case 3: {
3674
+ this.isGroupTypesExpanded = expanded;
3675
+ break;
3676
+ }
3677
+ }
3678
+ }
3679
+ /**
3680
+ * Fetches the configured roles of the selected tenant and creates the column schema.
3681
+ * @memberof ViewTenantDetailsComponent
3682
+ */
3683
+ getRolesAndInitializeTableSchema() {
3684
+ this.tenantAppService
3685
+ .getRoles(this.appId)
3686
+ .pipe(takeUntil(this.destroy$))
3687
+ .subscribe({
3688
+ next: (response) => {
3689
+ if (response?.status) {
3690
+ this.getRolesAndPermissionsAndInitializeTableView({
3691
+ payload: {
3692
+ offset: this.tablePagination.offset,
3693
+ pageSize: this.tablePagination.pageSize,
3694
+ },
3695
+ });
3696
+ const rolesList = this.tenantAppService.sortRolesByRoleType(response?.body);
3697
+ this.tenantAppService.setRolesInfo(rolesList);
3698
+ const cellValue = this.constants.viewRolesAndPermissions.tableCellValue;
3699
+ this.columnSchema = [
3700
+ {
3701
+ id: 0,
3702
+ columnDef: 'permissions',
3703
+ heading: this.constants.viewRolesAndPermissions.tableColumn
3704
+ .permissions,
3705
+ columnType: TableColumnType.TEXT,
3706
+ cellData: (rolesAndPermissions) => rolesAndPermissions.permission,
3707
+ isStickyColumn: true,
3708
+ },
3709
+ ];
3710
+ rolesList.map((role, index) => {
3711
+ this.columnSchema.push({
3712
+ id: index + 1,
3713
+ columnDef: role.roleId,
3714
+ heading: role.roleName,
3715
+ columnType: TableColumnType.TEXT,
3716
+ hasColumnActions: true,
3717
+ cellData: (rolesAndPermissions) => {
3718
+ return rolesAndPermissions.roleIdsList.find((roleId) => role.roleId === roleId)
3719
+ ? cellValue.yes
3720
+ : cellValue.no;
3721
+ },
3722
+ });
3723
+ });
3724
+ }
3725
+ },
3726
+ error: (error) => {
3727
+ this.sharedService.handleErrors(error, this.constants?.viewTenants?.errors);
3728
+ },
3729
+ });
3730
+ }
3731
+ /**
3732
+ * Fetches the roles and permissions mappings for the selected tenant and and initialize table view.
3733
+ * @param {GetRolesAndPermissionsPayload} payload
3734
+ * @memberof ViewTenantDetailsComponent
3735
+ */
3736
+ getRolesAndPermissionsAndInitializeTableView(payload) {
3737
+ this.tenantAppService
3738
+ .getRolesAndPermissionsMappings(this.appId, payload)
3739
+ .pipe(takeUntil(this.destroy$))
3740
+ .subscribe({
3741
+ next: (response) => {
3742
+ if (response?.status) {
3743
+ this.tableData = [];
3744
+ this.paginatorConfig.totalRecords = response?.body
3745
+ ?.totalRecords;
3746
+ const rolesAndPermissionsList = response?.body
3747
+ ?.rolePermissionDetails;
3748
+ rolesAndPermissionsList.map((permission) => {
3749
+ let roleIdsList = [];
3750
+ roleIdsList = permission.roleList.map((role) => role.roleId);
3751
+ this.tableData.push({
3752
+ permission: permission.permissionName,
3753
+ roleIdsList: roleIdsList,
3754
+ });
3755
+ });
3756
+ }
3757
+ },
3758
+ error: (error) => {
3759
+ this.sharedService.handleErrors(error, this.constants?.viewTenants?.errors);
3760
+ },
3761
+ });
3762
+ }
3763
+ /**
3764
+ * Fetch the roles and permissions records based on offset and page size while the pagination changes.
3765
+ * @param {PageEvent} pageEvent
3766
+ * @memberof ViewTenantDetailsComponent
3767
+ */
3768
+ onTablePaginationChange(pageEvent) {
3769
+ this.tablePagination = {
3770
+ offset: pageEvent.pageIndex,
3771
+ pageSize: pageEvent.pageSize,
3772
+ };
3773
+ this.getRolesAndPermissionsAndInitializeTableView({
3774
+ payload: {
3775
+ offset: pageEvent.pageIndex,
3776
+ pageSize: pageEvent.pageSize,
3777
+ },
3778
+ });
3779
+ }
3780
+ /**
3781
+ * Captures the selected role's information and performs edit or delete action basis on the selected menu item.
3782
+ * @param {TableColumnMenuInfo} roleMenuInfo
3783
+ * @memberof ViewTenantDetailsComponent
3784
+ */
3785
+ onRoleMenuClick(roleMenuInfo) {
3786
+ this.selectedRoleInfo.roleId = roleMenuInfo?.tableColumnInfo?.columnDef;
3787
+ this.selectedRoleInfo.roleName = roleMenuInfo?.tableColumnInfo?.heading;
3788
+ this.tenantAppService?.setSelectedRoleInformation(this.selectedRoleInfo);
3789
+ if (roleMenuInfo?.menuActionInfo?.id === RoleMenuAction.DELETE_ROLE) {
3790
+ this.openDeleteRoleModal();
3791
+ }
3792
+ else if (roleMenuInfo?.menuActionInfo?.id === RoleMenuAction.EDIT_ROLE) {
3793
+ this.openEditRoleForm();
3794
+ }
3795
+ }
3796
+ /**
3797
+ * Keeps track of the accordion based on the element's ID in DOM tree.
3798
+ * @memberof ViewTenantDetailsComponent
3799
+ */
3800
+ trackByAccordionFn(index, item) {
3801
+ return item?.id;
3802
+ }
3803
+ /**
3804
+ * Gets the role types and updates the form control.
3805
+ * @memberof ViewTenantDetailsComponent
3806
+ */
3807
+ getRoleTypes() {
3808
+ const payload = {
3809
+ payload: {
3810
+ appId: this.tenantDetails?.appId,
3811
+ configFieldName: 'role_type',
3812
+ },
3813
+ };
3814
+ this.tenantAppService
3815
+ .getRoleTypes(payload)
3816
+ .pipe(takeUntil(this.destroy$))
3817
+ .subscribe({
3818
+ next: (response) => {
3819
+ if (response?.status) {
3820
+ this.roleTypeOptions = this.tenantAppService.getRoleTypeOptions(response?.body);
3821
+ this.tenantAppService?.setRoleTypeOption(this.roleTypeOptions);
3822
+ if (this.functionType === TenantFunctionType.CREATE_ROLE) {
3823
+ this.openCreateRoleForm();
3824
+ }
3825
+ }
3826
+ },
3827
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3828
+ error: (error) => {
3829
+ this.sharedService.handleErrors(error, this.createRoleScreenTexts?.errors);
3830
+ },
3831
+ });
3832
+ }
3833
+ /**
3834
+ * Sets the dialog options for create role modal and calls openModal method.
3835
+ * @return -returns nothing
3836
+ * @memberof ViewTenantDetailsComponent
3837
+ */
3838
+ openCreateRoleForm() {
3839
+ this.tenantAppService?.setTenantFunctionType(TenantFunctionType?.CREATE_ROLE);
3840
+ this.functionType = TenantFunctionType.CREATE_ROLE;
3841
+ if (this.roleTypeOptions.length > 0) {
3842
+ const dialogOptions = {
3843
+ heading: this.constants?.createRole?.heading,
3844
+ isCloseNeeded: true,
3845
+ componentReference: CreateModifyRoleComponent,
3846
+ modalType: ModalType.FORM,
3847
+ };
3848
+ this.openModal(dialogOptions, 'ieeesa-create-modify-role');
3849
+ }
3850
+ else {
3851
+ this.getRoleTypes();
3852
+ }
3853
+ }
3854
+ /**
3855
+ * Sets the dialog options for create group type modal and calls openModal method.
3856
+ * @return -returns nothing
3857
+ * @memberof ViewTenantDetailsComponent
3858
+ */
3859
+ openCreateGroupTypeForm() {
3860
+ this.tenantAppService?.setTenantFunctionType(TenantFunctionType?.CREATE_GROUP_TYPE);
3861
+ this.functionType = TenantFunctionType.CREATE_GROUP_TYPE;
3862
+ const dialogOptions = {
3863
+ heading: this.constants?.createGroupType?.heading,
3864
+ isCloseNeeded: true,
3865
+ componentReference: CreateModifyGroupTypeComponent,
3866
+ modalType: ModalType.FORM,
3867
+ };
3868
+ this.openModal(dialogOptions, 'ieeesa-create-modify-group-type');
3869
+ }
3870
+ /**
3871
+ * Sets the dialog options for edit role modal and calls openModal method.
3872
+ * @return -returns nothing
3873
+ * @memberof ViewTenantDetailsComponent
3874
+ */
3875
+ openEditRoleForm() {
3876
+ this.tenantAppService?.setTenantFunctionType(TenantFunctionType?.EDIT_ROLE);
3877
+ this.functionType = TenantFunctionType.EDIT_ROLE;
3878
+ const dialogOptions = {
3879
+ heading: this.selectedRoleInfo?.roleName,
3880
+ isCloseNeeded: true,
3881
+ componentReference: CreateModifyRoleComponent,
3882
+ modalType: ModalType.FORM,
3883
+ };
3884
+ this.openModal(dialogOptions, 'ieeesa-create-modify-role');
3885
+ }
3886
+ /**
3887
+ * Sets the dialog options for edit tenant modal and calls openModal method.
3888
+ * @return -returns nothing
3889
+ * @memberof ViewTenantDetailsComponent
3890
+ */
3891
+ openEditTenantForm() {
3892
+ this.tenantAppService?.setTenantFunctionType(TenantFunctionType?.EDIT);
3893
+ this.functionType = TenantFunctionType.EDIT;
3894
+ this.featureIdsBeforeEdit = this.getFeatureIds(this.tenantDetails);
3895
+ const dialogOptions = {
3896
+ heading: this.tenantDetails?.appTitle,
3897
+ isCloseNeeded: true,
3898
+ componentReference: CreateTenantApplicationComponent,
3899
+ modalType: ModalType.FORM,
3900
+ };
3901
+ this.openModal(dialogOptions, 'ieeesa-edit-tenant');
3902
+ }
3903
+ /**
3904
+ * Opens modal component with received params and handles form submission success and errors.
3905
+ * @param {*} dialogOptions
3906
+ * @param {string} [className]
3907
+ * @return -returns nothing
3908
+ * @memberof ViewTenantsDetailsComponent
3909
+ */
3910
+ openModal(
3911
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3912
+ dialogOptions, className) {
3913
+ className = className ?? '';
3914
+ this.dialogRef = this.dialog?.open(ModalComponent, {
3915
+ data: dialogOptions,
3916
+ width: '',
3917
+ panelClass: ['ieeesa-modal-dialog', className],
3918
+ ariaModal: true,
3919
+ });
3920
+ this.dialogRef?.componentInstance?.submitFormResponse
3921
+ .pipe(takeUntil(this.destroy$))
3922
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, no-unused-vars
3923
+ .subscribe((result) => {
3924
+ this.dialogRef?.close();
3925
+ switch (this.functionType) {
3926
+ case TenantFunctionType?.EDIT: {
3927
+ this.sharedService.showAlertMessage(AlertType?.SUCCESS, `${this.tenantDetails?.appTitle} ${this.editTenantScreenTexts?.message?.success?.submission}`);
3928
+ this.tenantDetails = {
3929
+ ...this.tenantAppService.getSelectedTenantInformation(),
3930
+ };
3931
+ this.promptReSignInIfFeaturesChanged();
3932
+ break;
3933
+ }
3934
+ case TenantFunctionType?.CREATE_ROLE: {
3935
+ const promptMessage = this.createRoleScreenTexts?.message?.success;
3936
+ const roleInfo = this.tenantAppService?.getNewlyCreatedRoleInfo();
3937
+ this.sharedService.showAlertMessage(AlertType?.SUCCESS, `${promptMessage?.submission1} ${roleInfo?.roleName} ${promptMessage?.submission2} ${this.tenantDetails?.appTitle}. ${promptMessage?.submission3}`);
3938
+ this.getRolesAndInitializeTableSchema();
3939
+ break;
3940
+ }
3941
+ case TenantFunctionType?.EDIT_ROLE: {
3942
+ const promptMessage = this.createRoleScreenTexts?.message?.success;
3943
+ const roleInfo = this.tenantAppService?.getNewlyCreatedRoleInfo();
3944
+ this.sharedService.showAlertMessage(AlertType?.SUCCESS, `${roleInfo?.roleName} ${promptMessage?.modify} ${this.tenantDetails?.appTitle}.`);
3945
+ this.getRolesAndInitializeTableSchema();
3946
+ break;
3947
+ }
3948
+ case TenantFunctionType?.CREATE_GROUP_TYPE: {
3949
+ this.sharedService.showAlertMessage(AlertType?.SUCCESS, `${this.createGroupTypeScreenTexts?.message?.success?.submissionPart1} ${this.tenantAppService.newlyCreatedGroupType.configFieldValue.name} ${this.createGroupTypeScreenTexts?.message?.success?.submissionPart2} ${this.tenantDetails?.appTitle}. `);
3950
+ this.tenantAppService.isGroupTypeAddedOrModified.next(true);
3951
+ break;
3952
+ }
3953
+ }
3954
+ });
3955
+ this.dialogRef?.componentInstance?.formCancel
3956
+ .pipe(takeUntil(this.destroy$))
3957
+ .subscribe(() => {
3958
+ this.dialogRef?.close();
3959
+ if (this.tenantAppService.getTenantFunctionType() ===
3960
+ TenantFunctionType.MAP_PERMISSION_AND_ROLE)
3961
+ this.getRolesAndInitializeTableSchema();
3962
+ });
3963
+ this.dialogRef?.componentInstance?.modalConfirm
3964
+ .pipe(takeUntil(this.destroy$))
3965
+ .subscribe(() => {
3966
+ if (this.tenantAppService.getTenantFunctionType() ===
3967
+ TenantFunctionType.MAP_PERMISSION_AND_ROLE)
3968
+ this.getRolesAndInitializeTableSchema();
3969
+ });
3970
+ }
3971
+ /**
3972
+ * Calls openTenantStatusConfirmationModal to change the status of tenant on slide toggle change.
3973
+ * @param {SlideToggleOption} slideToggleOption
3974
+ * @memberof ViewTenantDetailsComponent
3975
+ */
3976
+ onSlideToggleChange(slideToggleOption) {
3977
+ this.openTenantStatusConfirmationModal(slideToggleOption?.checked);
3978
+ }
3979
+ /**
3980
+ * Opens the confirmation modal to inactivate/reactivate the tenant.
3981
+ * @param {boolean} isActivate
3982
+ * @memberof ViewTenantDetailsComponent
3983
+ */
3984
+ openTenantStatusConfirmationModal(isActivate) {
3985
+ const confirmationInfo = this.constants?.viewTenants?.confirmationInfo;
3986
+ const statusText = isActivate
3987
+ ? confirmationInfo?.promptMessageActivate
3988
+ : confirmationInfo?.promptMessageInactivate;
3989
+ const updateTenantStatusModalOptions = {
3990
+ leftButtonLabel: confirmationInfo?.leftButtonLabel,
3991
+ rightButtonLabel: confirmationInfo?.rightButtonLabel,
3992
+ promptMessage: `${confirmationInfo?.promptMessage} ${statusText} ${this.tenantDetails?.appTitle}?`,
3993
+ actionButtonAlign: this.alignmentType?.MIDDLE,
3994
+ };
3995
+ this.dialogRef = this.dialog?.open(ModalConfirmationComponent, {
3996
+ data: updateTenantStatusModalOptions,
3997
+ width: 'auto',
3998
+ autoFocus: 'dialog',
3999
+ ariaLabel: confirmationInfo?.ariaLabel?.alert,
4000
+ });
4001
+ this.dialogRef
4002
+ .afterClosed()
4003
+ .pipe(takeUntil(this.destroy$))
4004
+ .subscribe((result) => {
4005
+ if (result) {
4006
+ this.updateTenantStatus(isActivate);
4007
+ }
4008
+ else {
4009
+ this.setSlideToggleStatus(isActivate);
4010
+ }
4011
+ });
4012
+ }
4013
+ /**
4014
+ * Opens the map permissions and roles modal.
4015
+ * @memberof ViewTenantDetailsComponent
4016
+ * @returns {void}
4017
+ */
4018
+ openMapRolesAndPermissionsForm() {
4019
+ this.tenantAppService?.setTenantFunctionType(TenantFunctionType?.MAP_PERMISSION_AND_ROLE);
4020
+ const dialogOptions = {
4021
+ heading: this.mapRolesAndPermissionsScreenTexts.heading,
4022
+ isCloseNeeded: true,
4023
+ modalType: ModalType.FORM,
4024
+ componentReference: RolesAndPermissionsMappingComponent,
4025
+ };
4026
+ this.openModal(dialogOptions, 'ieeesa-map-permissions-and-roles');
4027
+ }
4028
+ /**
4029
+ * Updates the tenant status to the server using http request and display success/error message based on request response (success or failure).
4030
+ * @param {boolean} isActivate
4031
+ * @memberof ViewTenantDetailsComponent
4032
+ */
4033
+ updateTenantStatus(isActivate) {
4034
+ const updateTenantStatusRequestPayload = {
4035
+ payload: {
4036
+ appId: this.tenantDetails?.appId,
4037
+ status: isActivate,
4038
+ },
4039
+ };
4040
+ this.tenantAppService
4041
+ .updateTenantStatus(updateTenantStatusRequestPayload)
4042
+ .pipe(takeUntil(this.destroy$))
4043
+ .subscribe({
4044
+ next: (res) => {
4045
+ this.dialogRef?.close();
4046
+ if (res?.status) {
4047
+ this.slideToggleOption.label = isActivate
4048
+ ? this.tenantLabels?.active
4049
+ : this.tenantLabels?.inactive;
4050
+ this.tenantDetails.status = isActivate;
4051
+ this.tenantDetails = Object.assign({}, this.tenantDetails);
4052
+ }
4053
+ },
4054
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4055
+ error: (error) => {
4056
+ this.setSlideToggleStatus(isActivate);
4057
+ this.sharedService.handleErrors(error, this.constants?.viewTenants?.errors);
4058
+ },
4059
+ });
4060
+ }
4061
+ /**
4062
+ * Sets slide toggle checked status and label.
4063
+ * @param {boolean} isActivate
4064
+ * @memberof ViewTenantDetailsComponent
4065
+ */
4066
+ setSlideToggleStatus(isActivate) {
4067
+ this.slideToggleOption.checked = !isActivate;
4068
+ this.slideToggleOption.label = !isActivate
4069
+ ? this.tenantLabels?.active
4070
+ : this.tenantLabels?.inactive;
4071
+ }
4072
+ /**
4073
+ * Gets the application/tenant types.
4074
+ * @memberof ViewTenantDetailsComponent
4075
+ */
4076
+ getApplicationTypes() {
4077
+ this.tenantAppService
4078
+ .getApplicationTypes()
4079
+ .pipe(takeUntil(this.destroy$))
4080
+ .subscribe({
4081
+ next: (response) => {
4082
+ if (response?.status) {
4083
+ this.appTypeOptions =
4084
+ this.tenantAppService.getApplicationTypeOptions(response?.body);
4085
+ this.tenantAppService.setApplicationType(this.appTypeOptions);
4086
+ }
4087
+ },
4088
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4089
+ error: (error) => {
4090
+ this.sharedService.handleErrors(error, this.constants?.viewTenants?.errors);
4091
+ },
4092
+ });
4093
+ }
4094
+ /**
4095
+ * Validates permission based access for provided feature.
4096
+ * @param {PermissionType} permissionType
4097
+ * @return {boolean}
4098
+ * @memberof ViewTenantDetailsComponent
4099
+ */
4100
+ validateAccess(permissionType) {
4101
+ return this.tenantAppService.validateAccess(permissionType, this.userTenantsPermissions);
4102
+ }
4103
+ /**
4104
+ * Posts the details of the role to be deleted to the server using http request and display success/error message based on request response (success or failure).
4105
+ * @memberof ViewTenantDetailsComponent
4106
+ */
4107
+ deleteRole() {
4108
+ const deleteRoleRequestPayload = {
4109
+ payload: {
4110
+ appId: this.tenantDetails?.appId,
4111
+ roleId: this.selectedRoleInfo?.roleId,
4112
+ },
4113
+ };
4114
+ this.tenantAppService
4115
+ .deleteRole(deleteRoleRequestPayload)
4116
+ .pipe(takeUntil(this.destroy$))
4117
+ .subscribe({
4118
+ next: (res) => {
4119
+ if (res?.status) {
4120
+ this.sharedService.showAlertMessage(AlertType?.SUCCESS, `${this.selectedRoleInfo?.roleName} ${this.deleteRoleScreenTexts?.message?.success?.submission} ${this.tenantDetails?.appTitle}.`);
4121
+ this.getRolesAndInitializeTableSchema();
4122
+ }
4123
+ },
4124
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4125
+ error: (error) => {
4126
+ this.sharedService.handleErrors(error, this.constants?.viewTenants?.errors);
4127
+ },
4128
+ });
4129
+ }
4130
+ /**
4131
+ * Sets the role menu HTMLElement.
4132
+ * @param {HTMLElement} menuButton
4133
+ * @memberof ViewTenantDetailsComponent
4134
+ */
4135
+ selectedRoleMenuElement(menuButton) {
4136
+ this.roleMenuElement = menuButton;
4137
+ }
4138
+ /**
4139
+ * Opens the confirmation modal to get user confirmation to delete the role.
4140
+ * @memberof ViewTenantDetailsComponent
4141
+ */
4142
+ openDeleteRoleModal() {
4143
+ const confirmationInfo = this.constants?.viewTenants?.confirmationInfo;
4144
+ const deleteRoleModalOptions = {
4145
+ leftButtonLabel: confirmationInfo?.leftButtonLabel,
4146
+ rightButtonLabel: confirmationInfo?.rightButtonLabel,
4147
+ promptMessage: `${confirmationInfo?.deleteRoleConfirmationMessage} ${this.selectedRoleInfo?.roleName}? ${confirmationInfo?.deleteRolePromptMessage} ${this.tenantDetails?.appTitle}.`,
4148
+ actionButtonAlign: this.alignmentType?.MIDDLE,
4149
+ };
4150
+ this.dialogRef = this.dialog?.open(ModalConfirmationComponent, {
4151
+ data: deleteRoleModalOptions,
4152
+ width: '25%',
4153
+ panelClass: [
4154
+ 'ieeesa-modal-confirm-dialog',
4155
+ 'ieeesa-delete-role-confirm-dialog',
4156
+ ],
4157
+ autoFocus: 'dialog',
4158
+ ariaLabel: confirmationInfo?.ariaLabel?.alert,
4159
+ });
4160
+ this.dialogRef
4161
+ .afterClosed()
4162
+ .pipe(takeUntil(this.destroy$))
4163
+ .subscribe((result) => {
4164
+ if (result) {
4165
+ this.deleteRole();
4166
+ }
4167
+ else
4168
+ this.roleMenuElement?.focus();
4169
+ });
4170
+ }
4171
+ /**
4172
+ * Returns the feature ids of the given tenant.
4173
+ * @param {TenantBasicInfo} [tenant]
4174
+ * @return {string[]}
4175
+ * @memberof ViewTenantDetailsComponent
4176
+ */
4177
+ getFeatureIds(tenant) {
4178
+ return (tenant?.features ?? [])
4179
+ .map((feature) => feature?.featureId)
4180
+ .filter(Boolean)
4181
+ .sort();
4182
+ }
4183
+ /**
4184
+ * Opens the re-sign-in confirmation modal when the tenant feature list changed on save, since
4185
+ * feature flags are only refreshed at login. Emits signOutRequested when the user confirms.
4186
+ * @memberof ViewTenantDetailsComponent
4187
+ */
4188
+ promptReSignInIfFeaturesChanged() {
4189
+ const featureIdsAfterEdit = this.getFeatureIds(this.tenantDetails);
4190
+ if (featureIdsAfterEdit.join(',') === this.featureIdsBeforeEdit.join(',')) {
4191
+ return;
4192
+ }
4193
+ const confirmationInfo = this.constants?.viewTenants?.confirmationInfo;
4194
+ this.dialog
4195
+ ?.open(ModalConfirmationComponent, {
4196
+ data: {
4197
+ leftButtonLabel: confirmationInfo?.featureChangeSignOutLeftButtonLabel,
4198
+ rightButtonLabel: confirmationInfo?.featureChangeSignOutRightButtonLabel,
4199
+ promptMessage: confirmationInfo?.featureChangeSignOutMessage,
4200
+ actionButtonAlign: this.alignmentType?.MIDDLE,
4201
+ },
4202
+ width: '25%',
4203
+ panelClass: [
4204
+ 'ieeesa-modal-confirm-dialog',
4205
+ 'ieeesa-feature-change-sign-out-dialog',
4206
+ ],
4207
+ autoFocus: 'dialog',
4208
+ ariaLabel: confirmationInfo?.ariaLabel?.alert,
4209
+ })
4210
+ .afterClosed()
4211
+ .pipe(takeUntil(this.destroy$))
4212
+ .subscribe((isSignOutConfirmed) => {
4213
+ if (isSignOutConfirmed) {
4214
+ this.signOut();
4215
+ }
4216
+ });
4217
+ }
4218
+ /**
4219
+ * Clears the session and redirects to the SSO sign-out URL, mirroring the header sign-out.
4220
+ * @memberof ViewTenantDetailsComponent
4221
+ */
4222
+ signOut() {
4223
+ if (!this.signOutConfig?.ssoSignOutUrl) {
4224
+ return;
4225
+ }
4226
+ this.authService?.deleteCookie(this.signOutConfig?.cookieName);
4227
+ this.storageService?.clearStorage();
4228
+ window.location.href = this.signOutConfig.ssoSignOutUrl;
4229
+ }
4230
+ /**
4231
+ * Performs necessary cleanup tasks, such as unsubscribing from subscription when the component is being destroyed.
4232
+ * @memberof ViewTenantDetailsComponent
4233
+ */
4234
+ ngOnDestroy() {
4235
+ this.roleTypeOptions = [];
4236
+ this.tenantAppService?.setRoleTypeOption(this.roleTypeOptions);
4237
+ this.destroy$?.next(true);
4238
+ this.destroy$?.unsubscribe();
4239
+ }
4240
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewTenantDetailsComponent, deps: [{ token: i1.MatDialog }, { token: i2.BreakpointObserverService }, { token: TenantApplicationsService }, { token: i4.GlobalErrorHandlerService }, { token: i2$1.SharedService }, { token: i6.ActivatedRoute }, { token: i4.AuthService }, { token: i4.StorageService }], target: i0.ɵɵFactoryTarget.Component }); }
4241
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ViewTenantDetailsComponent, isStandalone: true, selector: "ieeesa-view-tenant-details", inputs: { apiBaseURL: "apiBaseURL", userPermissions: "userPermissions", routePaths: "routePaths", signOutConfig: "signOutConfig" }, ngImport: i0, template: "<div\r\n class=\"ieeesa-view-tenant-info px-4 pb-4\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-view-tenant-info--bg-white'\r\n : 'ieeesa-view-tenant-info--bg-blue'\r\n \"\r\n>\r\n <div\r\n class=\"d-flex justify-content-between gap-lg-4 gap-md-3 gap-sm-2 gap-3\"\r\n [ngClass]=\"isMobileView ? 'flex-column gap-2 pb-3' : 'align-item-center'\"\r\n >\r\n <div\r\n class=\"d-flex gap-lg-4 gap-md-3 gap-sm-3 gap-3 ps-0 align-items-md-center align-items-xl-center\"\r\n [ngClass]=\"isMobileView ? 'flex-column' : ''\"\r\n >\r\n <p\r\n class=\"mb-0 ieeesa-headline-lg-32 py-3\"\r\n [ngClass]=\"isMobileView ? '' : 'ieeesa-view-tenant-info--title'\"\r\n >\r\n {{ tenantDetails?.appTitle }}\r\n </p>\r\n <div class=\"d-flex gap-lg-2 gap-md-2 gap-sm-2 gap-2\">\r\n <span\r\n class=\"mb-0 ieeesa-title-sm-14 mt-1\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'ieeesa-view-tenant-info--app-id'\"\r\n >\r\n {{ tenantLabels?.appId }}:\r\n </span>\r\n {{ tenantDetails?.appId }}\r\n <ng-container *ngIf=\"tenantDetails?.appId !== tenantLabels?.saAppId\">\r\n <mat-divider [vertical]=\"true\"></mat-divider>\r\n <span\r\n class=\"mb-0 mt-1 ieeesa-title-sm-14 ieeesa-view-tenant-info--app-status\"\r\n [ngClass]=\"isMobileView ? 'p-0' : ''\"\r\n >\r\n {{ tenantLabels?.status }}:\r\n </span>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"slideToggleOption\"\r\n (slideToggleChange)=\"onSlideToggleChange($event)\"\r\n ></ieeesa-slide-toggle>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <a\r\n class=\"ieeesa-btn-label-lg-bold-16 text-decoration-none mt-lg-3 mt-xl-6 p-sm-0 p-md-0\"\r\n href=\"javascript:void(0)\"\r\n rel=\"noopener noreferrer\"\r\n [routerLink]=\"viewTenantsRouteUrl\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-view-tenant-info--link-mobile'\r\n : 'ieeesa-view-tenant-info--link'\r\n \"\r\n >{{ tenantLabels?.viewAllApps }}</a\r\n >\r\n </div>\r\n <div\r\n class=\"ieeesa-view-tenant-info__accordion ieeesa-view-tenant-info__accordion--blue-bg\"\r\n [ngClass]=\"isMobileView ? 'ieeesa-view-tenant-info__accordion--info' : ''\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let accordionInfo of accordionInfoList;\r\n trackBy: trackByAccordionFn\r\n \"\r\n >\r\n <ng-container [ngSwitch]=\"accordionInfo.id\">\r\n <ng-container *ngSwitchCase=\"accordionDetails.BASIC_DETAILS\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__accordion-info\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <ieeesa-icon-button\r\n *ngIf=\"\r\n isBasicDetailsExpanded &&\r\n validateAccess(permissionType.MANAGE_TENANT)\r\n \"\r\n actions\r\n class=\"ieeesa-button\"\r\n [iconButton]=\"editButton\"\r\n (iconButtonClick)=\"openEditTenantForm()\"\r\n ></ieeesa-icon-button>\r\n <ng-container component *ngIf=\"isBasicDetailsExpanded\">\r\n <ieeesa-tenant-basic-details\r\n [tenantDetails]=\"tenantDetails\"\r\n ></ieeesa-tenant-basic-details>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"accordionDetails.ROLES_AND_PERMISSIONS\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__roles-and-permissions\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <div\r\n actions\r\n *ngIf=\"isRolesAndPermissionsExpanded\"\r\n class=\"d-flex gap-3\"\r\n [ngClass]=\"\r\n isMobileView ? 'mb-3 px-4' : 'ieeesa-view-tenant-info__actions'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'px-2 py-2'\"\r\n (click)=\"openCreateRoleForm()\"\r\n *ngIf=\"validateAccess(permissionType.MANAGE_TENANT)\"\r\n >\r\n {{\r\n constants.viewRolesAndPermissions.actionButtonLabels.addRole\r\n }}\r\n </button>\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button\"\r\n (click)=\"openMapRolesAndPermissionsForm()\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'px-2 py-2'\"\r\n >\r\n {{\r\n constants.viewRolesAndPermissions.actionButtonLabels\r\n .mapPermissionsRoles\r\n }}\r\n </button>\r\n </div>\r\n <ng-container component *ngIf=\"isRolesAndPermissionsExpanded\">\r\n <mat-divider\r\n class=\"ieeesa-view-tenant-info__roles-and-permissions__divider\"\r\n ></mat-divider>\r\n <ieeesa-data-table\r\n *ngIf=\"columnSchema.length\"\r\n [tableDataInfo]=\"tableData\"\r\n [headerElementClassName]=\"headerElementClassName\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [caption]=\"rolesAndPermissionsTableCaption\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [tableActions]=\"tableActions\"\r\n [isScrollSupportMessageNeeded]=\"true\"\r\n [tableColumnActionMenuSize]=\"iconSize\"\r\n [tableColumnActions]=\"menuItems\"\r\n [customStickyHeaderNeeded]=\"true\"\r\n [tableColumnsHeaderText]=\"rolesAndPermissionsTableHeaderName\"\r\n [scrollbarSupportMessage]=\"\r\n rolesAndPermissionsTableSupportMessage\r\n \"\r\n [verticalColumnHeaderNumber]=\"permissionsColumnClassNumber\"\r\n (paginationChange)=\"onTablePaginationChange($event)\"\r\n (tableColumnMenuActionClick)=\"onRoleMenuClick($event)\"\r\n (tableColumnMenuToggleButton)=\"selectedRoleMenuElement($event)\"\r\n ></ieeesa-data-table>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"accordionDetails.GROUP_TYPES\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__group-types\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <div\r\n actions\r\n *ngIf=\"isGroupTypesExpanded\"\r\n class=\"d-flex gap-3\"\r\n [ngClass]=\"\r\n isMobileView ? 'mb-3 px-4' : 'ieeesa-view-tenant-info__actions'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button p-2\"\r\n *ngIf=\"validateAccess(permissionType.MANAGE_TENANT)\"\r\n (click)=\"openCreateGroupTypeForm()\"\r\n >\r\n {{ constants.viewGroupTypes.actionButtonLabels.addGroupType }}\r\n </button>\r\n </div>\r\n <ng-container component *ngIf=\"isGroupTypesExpanded\">\r\n <ieeesa-view-tenant-group-types></ieeesa-view-tenant-group-types>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n ></ieeesa-accordion>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-view-tenant-info{background-color:#f2f2f2}.ieeesa-view-tenant-info--bg-white{background-color:#fff;padding:1em 1.5em 0}.ieeesa-view-tenant-info__actions{top:15px;margin-right:20px;position:absolute;right:0}.ieeesa-view-tenant-info--title,.ieeesa-view-tenant-info--action{padding:.75em 0}.ieeesa-view-tenant-info--link{padding:1em .75em 1.3em 0!important}.ieeesa-view-tenant-info--link-mobile{max-width:-moz-fit-content;max-width:fit-content}.ieeesa-view-tenant-info--app-id,.ieeesa-view-tenant-info--app-status{color:#49454f}.ieeesa-view-tenant-info__accordion{background-color:#fff;box-shadow:0 1px 4px #00000040,0 4px #00b5e2 inset;padding:1.5em .75em}.ieeesa-view-tenant-info__accordion--bg-white{background-color:#fff;box-shadow:none}.ieeesa-view-tenant-info__accordion--info{padding:1em 1em 1.5em}.ieeesa-view-tenant-info__accordion-info .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__accordion-info .mat-accordion .mat-expansion-panel-body{padding:1.5em 1.5em 1.5em 2.25em}.ieeesa-view-tenant-info__accordion-info .ieeesa-button{position:absolute;top:1.25em;right:0}.ieeesa-view-tenant-info__accordion-info .ieeesa-button svg{width:1.3em!important;height:1.3em!important}.ieeesa-view-tenant-info .mat-divider-vertical{margin:0;height:1.4em;color:#cac4d0;width:.063em;border-right-color:#cac4d0}.ieeesa-view-tenant-info .ieeesa-slide-toggle-field .mat-mdc-slide-toggle .mdc-label{color:#000!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-accordion .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__roles-and-permissions__divider{margin-top:12px!important;margin-bottom:16px!important;border-top:1px solid #ccd2da!important}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-header-cell{white-space:nowrap}.ieeesa-view-tenant-info__roles-and-permissions .mat-expansion-panel-body,.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table{padding-left:0;padding-right:0}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table .mat-column-permissions{min-width:12.5em;padding:16px!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__content{margin-top:0!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__column-menu .mat-mdc-icon-button.mat-mdc-button-base{padding:6px;width:24px;height:24px}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__columns-header-text{padding:8px 16px;background:#dae9f1;box-shadow:0 1px #dce3e9 inset}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-container{padding:0;flex-wrap:nowrap}.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__trailing,.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__notch,.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__leading{border:none!important}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-label,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-select,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-range-label{margin:0}.ieeesa-view-tenant-info__roles-and-permissions .at-mdc-select-min-line,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-range-label{color:#1c1d1e}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-label{position:relative;color:#63666a;left:2em}.ieeesa-view-tenant-info__group-types .ieeesa-accordion .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__group-types .mat-mdc-header-cell{white-space:nowrap}.ieeesa-view-tenant-info__group-types .mat-expansion-panel-body,.ieeesa-view-tenant-info__group-types .ieeesa-data-table{padding-left:0;padding-right:0}.ieeesa-menu__item:not(:last-of-type){margin-bottom:0!important}.ieeesa-menu .mat-mdc-menu-item{min-height:35px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i7.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: SlideToggleComponent, selector: "ieeesa-slide-toggle", inputs: ["formControlName", "slideToggle", "isDisabled", "canShowIcon"], outputs: ["slideToggleChange"] }, { kind: "component", type: AccordionComponent, selector: "ieeesa-accordion", inputs: ["accordionInfo"], outputs: ["accordionOpened"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: TenantBasicDetailsComponent, selector: "ieeesa-tenant-basic-details", inputs: ["tenantDetails"] }, { kind: "component", type: IconButtonComponent, selector: "ieeesa-icon-button", inputs: ["iconButton", "isLabelNeeded"], outputs: ["iconButtonClick"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "nestedTableDataInfo", "columnSchemaInfo", "nestedTableColumnSchemaInfo", "tableActions", "hasNestedTable", "tableColumnActions", "tableColumnActionMenuSize", "tableRowActions", "nestedTableRowActions", "caption", "viewAll", "paginatorConfig", "nestedPaginatorConfig", "legends", "pageIndex", "pageSize", "searchPlaceHolderText", "rowEditButton", "rowDeleteButton", "tableEditButton", "tableDeleteButton", "rowExpandButton", "rowCollapseButton", "isNestedTableHeaderNeeded", "addButton", "defaultColumnSortDirection", "defaultSortedColumn", "isClearSortNeeded", "filters", "selectedFilterOptions", "appliedFilterOptions", "searchType", "className", "searchSupportMessage", "inbuiltSortingNeeded", "isCellTextOverflowEllipsis", "isTableHeaderNeeded", "tableColumnsHeaderText", "verticalColumnHeaderNumber", "scrollbarSupportMessage", "isScrollSupportMessageNeeded", "isStickyHeaderNeeded", "customStickyHeaderNeeded", "headerElementClassName", "minCharToSearch", "searchResultMessage", "rowMenuActionIcon", "canDisableCheckbox", "isEllipsisRequiredForLink"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "menuActionClick", "selectActionMenu", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue", "sortChange", "selectedRowsInfo", "rowExpansionClick", "tableColumnMenuActionClick", "tableColumnMenuToggleButton", "rowSlideToggle"] }, { kind: "component", type: ViewTenantGroupTypesComponent, selector: "ieeesa-view-tenant-group-types" }], encapsulation: i0.ViewEncapsulation.None }); }
4242
+ }
4243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewTenantDetailsComponent, decorators: [{
4244
+ type: Component,
4245
+ args: [{ selector: 'ieeesa-view-tenant-details', standalone: true, imports: [
4246
+ CommonModule,
4247
+ RouterModule,
4248
+ SlideToggleComponent,
4249
+ AccordionComponent,
4250
+ MatDividerModule,
4251
+ TenantBasicDetailsComponent,
4252
+ IconButtonComponent,
4253
+ MatButtonModule,
4254
+ DataTableComponent,
4255
+ ViewTenantGroupTypesComponent,
4256
+ ], encapsulation: ViewEncapsulation.None, template: "<div\r\n class=\"ieeesa-view-tenant-info px-4 pb-4\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-view-tenant-info--bg-white'\r\n : 'ieeesa-view-tenant-info--bg-blue'\r\n \"\r\n>\r\n <div\r\n class=\"d-flex justify-content-between gap-lg-4 gap-md-3 gap-sm-2 gap-3\"\r\n [ngClass]=\"isMobileView ? 'flex-column gap-2 pb-3' : 'align-item-center'\"\r\n >\r\n <div\r\n class=\"d-flex gap-lg-4 gap-md-3 gap-sm-3 gap-3 ps-0 align-items-md-center align-items-xl-center\"\r\n [ngClass]=\"isMobileView ? 'flex-column' : ''\"\r\n >\r\n <p\r\n class=\"mb-0 ieeesa-headline-lg-32 py-3\"\r\n [ngClass]=\"isMobileView ? '' : 'ieeesa-view-tenant-info--title'\"\r\n >\r\n {{ tenantDetails?.appTitle }}\r\n </p>\r\n <div class=\"d-flex gap-lg-2 gap-md-2 gap-sm-2 gap-2\">\r\n <span\r\n class=\"mb-0 ieeesa-title-sm-14 mt-1\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'ieeesa-view-tenant-info--app-id'\"\r\n >\r\n {{ tenantLabels?.appId }}:\r\n </span>\r\n {{ tenantDetails?.appId }}\r\n <ng-container *ngIf=\"tenantDetails?.appId !== tenantLabels?.saAppId\">\r\n <mat-divider [vertical]=\"true\"></mat-divider>\r\n <span\r\n class=\"mb-0 mt-1 ieeesa-title-sm-14 ieeesa-view-tenant-info--app-status\"\r\n [ngClass]=\"isMobileView ? 'p-0' : ''\"\r\n >\r\n {{ tenantLabels?.status }}:\r\n </span>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"slideToggleOption\"\r\n (slideToggleChange)=\"onSlideToggleChange($event)\"\r\n ></ieeesa-slide-toggle>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <a\r\n class=\"ieeesa-btn-label-lg-bold-16 text-decoration-none mt-lg-3 mt-xl-6 p-sm-0 p-md-0\"\r\n href=\"javascript:void(0)\"\r\n rel=\"noopener noreferrer\"\r\n [routerLink]=\"viewTenantsRouteUrl\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-view-tenant-info--link-mobile'\r\n : 'ieeesa-view-tenant-info--link'\r\n \"\r\n >{{ tenantLabels?.viewAllApps }}</a\r\n >\r\n </div>\r\n <div\r\n class=\"ieeesa-view-tenant-info__accordion ieeesa-view-tenant-info__accordion--blue-bg\"\r\n [ngClass]=\"isMobileView ? 'ieeesa-view-tenant-info__accordion--info' : ''\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let accordionInfo of accordionInfoList;\r\n trackBy: trackByAccordionFn\r\n \"\r\n >\r\n <ng-container [ngSwitch]=\"accordionInfo.id\">\r\n <ng-container *ngSwitchCase=\"accordionDetails.BASIC_DETAILS\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__accordion-info\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <ieeesa-icon-button\r\n *ngIf=\"\r\n isBasicDetailsExpanded &&\r\n validateAccess(permissionType.MANAGE_TENANT)\r\n \"\r\n actions\r\n class=\"ieeesa-button\"\r\n [iconButton]=\"editButton\"\r\n (iconButtonClick)=\"openEditTenantForm()\"\r\n ></ieeesa-icon-button>\r\n <ng-container component *ngIf=\"isBasicDetailsExpanded\">\r\n <ieeesa-tenant-basic-details\r\n [tenantDetails]=\"tenantDetails\"\r\n ></ieeesa-tenant-basic-details>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"accordionDetails.ROLES_AND_PERMISSIONS\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__roles-and-permissions\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <div\r\n actions\r\n *ngIf=\"isRolesAndPermissionsExpanded\"\r\n class=\"d-flex gap-3\"\r\n [ngClass]=\"\r\n isMobileView ? 'mb-3 px-4' : 'ieeesa-view-tenant-info__actions'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'px-2 py-2'\"\r\n (click)=\"openCreateRoleForm()\"\r\n *ngIf=\"validateAccess(permissionType.MANAGE_TENANT)\"\r\n >\r\n {{\r\n constants.viewRolesAndPermissions.actionButtonLabels.addRole\r\n }}\r\n </button>\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button\"\r\n (click)=\"openMapRolesAndPermissionsForm()\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'px-2 py-2'\"\r\n >\r\n {{\r\n constants.viewRolesAndPermissions.actionButtonLabels\r\n .mapPermissionsRoles\r\n }}\r\n </button>\r\n </div>\r\n <ng-container component *ngIf=\"isRolesAndPermissionsExpanded\">\r\n <mat-divider\r\n class=\"ieeesa-view-tenant-info__roles-and-permissions__divider\"\r\n ></mat-divider>\r\n <ieeesa-data-table\r\n *ngIf=\"columnSchema.length\"\r\n [tableDataInfo]=\"tableData\"\r\n [headerElementClassName]=\"headerElementClassName\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [caption]=\"rolesAndPermissionsTableCaption\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [tableActions]=\"tableActions\"\r\n [isScrollSupportMessageNeeded]=\"true\"\r\n [tableColumnActionMenuSize]=\"iconSize\"\r\n [tableColumnActions]=\"menuItems\"\r\n [customStickyHeaderNeeded]=\"true\"\r\n [tableColumnsHeaderText]=\"rolesAndPermissionsTableHeaderName\"\r\n [scrollbarSupportMessage]=\"\r\n rolesAndPermissionsTableSupportMessage\r\n \"\r\n [verticalColumnHeaderNumber]=\"permissionsColumnClassNumber\"\r\n (paginationChange)=\"onTablePaginationChange($event)\"\r\n (tableColumnMenuActionClick)=\"onRoleMenuClick($event)\"\r\n (tableColumnMenuToggleButton)=\"selectedRoleMenuElement($event)\"\r\n ></ieeesa-data-table>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"accordionDetails.GROUP_TYPES\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__group-types\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <div\r\n actions\r\n *ngIf=\"isGroupTypesExpanded\"\r\n class=\"d-flex gap-3\"\r\n [ngClass]=\"\r\n isMobileView ? 'mb-3 px-4' : 'ieeesa-view-tenant-info__actions'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button p-2\"\r\n *ngIf=\"validateAccess(permissionType.MANAGE_TENANT)\"\r\n (click)=\"openCreateGroupTypeForm()\"\r\n >\r\n {{ constants.viewGroupTypes.actionButtonLabels.addGroupType }}\r\n </button>\r\n </div>\r\n <ng-container component *ngIf=\"isGroupTypesExpanded\">\r\n <ieeesa-view-tenant-group-types></ieeesa-view-tenant-group-types>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n ></ieeesa-accordion>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-view-tenant-info{background-color:#f2f2f2}.ieeesa-view-tenant-info--bg-white{background-color:#fff;padding:1em 1.5em 0}.ieeesa-view-tenant-info__actions{top:15px;margin-right:20px;position:absolute;right:0}.ieeesa-view-tenant-info--title,.ieeesa-view-tenant-info--action{padding:.75em 0}.ieeesa-view-tenant-info--link{padding:1em .75em 1.3em 0!important}.ieeesa-view-tenant-info--link-mobile{max-width:-moz-fit-content;max-width:fit-content}.ieeesa-view-tenant-info--app-id,.ieeesa-view-tenant-info--app-status{color:#49454f}.ieeesa-view-tenant-info__accordion{background-color:#fff;box-shadow:0 1px 4px #00000040,0 4px #00b5e2 inset;padding:1.5em .75em}.ieeesa-view-tenant-info__accordion--bg-white{background-color:#fff;box-shadow:none}.ieeesa-view-tenant-info__accordion--info{padding:1em 1em 1.5em}.ieeesa-view-tenant-info__accordion-info .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__accordion-info .mat-accordion .mat-expansion-panel-body{padding:1.5em 1.5em 1.5em 2.25em}.ieeesa-view-tenant-info__accordion-info .ieeesa-button{position:absolute;top:1.25em;right:0}.ieeesa-view-tenant-info__accordion-info .ieeesa-button svg{width:1.3em!important;height:1.3em!important}.ieeesa-view-tenant-info .mat-divider-vertical{margin:0;height:1.4em;color:#cac4d0;width:.063em;border-right-color:#cac4d0}.ieeesa-view-tenant-info .ieeesa-slide-toggle-field .mat-mdc-slide-toggle .mdc-label{color:#000!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-accordion .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__roles-and-permissions__divider{margin-top:12px!important;margin-bottom:16px!important;border-top:1px solid #ccd2da!important}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-header-cell{white-space:nowrap}.ieeesa-view-tenant-info__roles-and-permissions .mat-expansion-panel-body,.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table{padding-left:0;padding-right:0}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table .mat-column-permissions{min-width:12.5em;padding:16px!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__content{margin-top:0!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__column-menu .mat-mdc-icon-button.mat-mdc-button-base{padding:6px;width:24px;height:24px}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__columns-header-text{padding:8px 16px;background:#dae9f1;box-shadow:0 1px #dce3e9 inset}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-container{padding:0;flex-wrap:nowrap}.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__trailing,.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__notch,.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__leading{border:none!important}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-label,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-select,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-range-label{margin:0}.ieeesa-view-tenant-info__roles-and-permissions .at-mdc-select-min-line,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-range-label{color:#1c1d1e}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-label{position:relative;color:#63666a;left:2em}.ieeesa-view-tenant-info__group-types .ieeesa-accordion .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__group-types .mat-mdc-header-cell{white-space:nowrap}.ieeesa-view-tenant-info__group-types .mat-expansion-panel-body,.ieeesa-view-tenant-info__group-types .ieeesa-data-table{padding-left:0;padding-right:0}.ieeesa-menu__item:not(:last-of-type){margin-bottom:0!important}.ieeesa-menu .mat-mdc-menu-item{min-height:35px!important}\n"] }]
4257
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.BreakpointObserverService }, { type: TenantApplicationsService }, { type: i4.GlobalErrorHandlerService }, { type: i2$1.SharedService }, { type: i6.ActivatedRoute }, { type: i4.AuthService }, { type: i4.StorageService }]; }, propDecorators: { apiBaseURL: [{
4258
+ type: Input
4259
+ }], userPermissions: [{
4260
+ type: Input
4261
+ }], routePaths: [{
4262
+ type: Input
4263
+ }], signOutConfig: [{
4264
+ type: Input
4265
+ }] } });
4266
+
4267
+ /* eslint-disable no-empty-function */
4268
+ class TenantApplicationsComponent {
4269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4270
+ 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 }] }); }
4271
+ }
4272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsComponent, decorators: [{
4273
+ type: Component,
4274
+ args: [{ selector: 'ieeesa-tenant-applications', standalone: true, imports: [CommonModule, MatButtonModule], template: "" }]
4275
+ }] });
4276
+
4277
+ /* eslint-disable no-unused-vars */
4278
+ var AppType;
4279
+ (function (AppType) {
4280
+ AppType["GENERIC"] = "Generic";
4281
+ AppType["STANDALONE"] = "Standalone";
4282
+ })(AppType || (AppType = {}));
4283
+
4284
+ class TenantApplicationsModule {
4285
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4286
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsModule }); }
4287
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsModule }); }
4288
+ }
4289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsModule, decorators: [{
4290
+ type: NgModule,
4291
+ args: [{
4292
+ declarations: [],
4293
+ imports: [],
4294
+ exports: [],
4295
+ }]
4296
+ }] });
4297
+
4298
+ /*
4299
+ * Public API Surface of tenants
4300
+ */
4301
+
4302
+ /**
4303
+ * Generated bundle index. Do not edit.
4304
+ */
4305
+
4306
+ export { AppType, CreateModifyGroupTypeComponent, CreateModifyRoleComponent, CreateTenantApplicationComponent, FeaturePermissionId, GroupTypeSettings, GroupTypeValidation, PermissionType, RoleAndPermissionsTableType, RoleMenuAction, RolesAndPermissionsMappingComponent, RolesValidation, RosterTypeLOVCode, Settings, SortOrderBy, TenantApplicationsComponent, TenantApplicationsModule, TenantApplicationsService, TenantBasicDetailsComponent, TenantFunctionType, TenantPermissionsMapService, TenantPermissionsService, TenantStatus, TenantsValidationPatterns, ViewTenantDetailsComponent, ViewTenantGroupTypesComponent, ViewTenantsColumnSchemaDef, ViewTenantsListComponent, VotingMemberLevelRole };
4307
+ //# sourceMappingURL=ieeesa-npm-tenants.mjs.map