@ieeesa-npm/tenants 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +24 -0
  2. package/esm2022/ieeesa-npm-tenants.mjs +5 -0
  3. package/esm2022/lib/assets/constants.json +134 -0
  4. package/esm2022/lib/assets/tenant-validations.mjs +10 -0
  5. package/esm2022/lib/components/create-tenant-application/create-tenant-application.component.mjs +420 -0
  6. package/esm2022/lib/models/app-type-config.model.mjs +2 -0
  7. package/esm2022/lib/models/app-type.model.mjs +7 -0
  8. package/esm2022/lib/models/features.model.mjs +2 -0
  9. package/esm2022/lib/models/form-status.model.mjs +7 -0
  10. package/esm2022/lib/models/permission-type.model.mjs +12 -0
  11. package/esm2022/lib/models/table-column-schema-view-tenant-list.model.mjs +16 -0
  12. package/esm2022/lib/models/tenant.model.mjs +2 -0
  13. package/esm2022/lib/models/tenants-permission.model.mjs +2 -0
  14. package/esm2022/lib/models/tenants.model.mjs +2 -0
  15. package/esm2022/lib/services/tenant-applications.service.mjs +207 -0
  16. package/esm2022/lib/services/tenant-permissions-map.service.mjs +31 -0
  17. package/esm2022/lib/services/tenant-permissions.service.mjs +38 -0
  18. package/esm2022/lib/tenant-applications.component.mjs +14 -0
  19. package/esm2022/lib/tenant-applications.module.mjs +16 -0
  20. package/esm2022/public-api.mjs +14 -0
  21. package/fesm2022/ieeesa-npm-tenants.mjs +906 -0
  22. package/fesm2022/ieeesa-npm-tenants.mjs.map +1 -0
  23. package/index.d.ts +5 -0
  24. package/lib/assets/tenant-validations.d.ts +8 -0
  25. package/lib/components/create-tenant-application/create-tenant-application.component.d.ts +113 -0
  26. package/lib/models/app-type-config.model.d.ts +14 -0
  27. package/lib/models/app-type.model.d.ts +4 -0
  28. package/lib/models/features.model.d.ts +15 -0
  29. package/lib/models/form-status.model.d.ts +4 -0
  30. package/lib/models/permission-type.model.d.ts +8 -0
  31. package/lib/models/table-column-schema-view-tenant-list.model.d.ts +20 -0
  32. package/lib/models/tenant.model.d.ts +23 -0
  33. package/lib/models/tenants-permission.model.d.ts +9 -0
  34. package/lib/models/tenants.model.d.ts +23 -0
  35. package/lib/services/tenant-applications.service.d.ts +149 -0
  36. package/lib/services/tenant-permissions-map.service.d.ts +13 -0
  37. package/lib/services/tenant-permissions.service.d.ts +22 -0
  38. package/lib/tenant-applications.component.d.ts +5 -0
  39. package/lib/tenant-applications.module.d.ts +6 -0
  40. package/package.json +25 -0
  41. package/public-api.d.ts +10 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ieeesa-npm-tenants.mjs","sources":["../../../projects/tenants/src/lib/assets/tenant-validations.ts","../../../projects/tenants/src/lib/models/form-status.model.ts","../../../projects/tenants/src/lib/services/tenant-permissions.service.ts","../../../projects/tenants/src/lib/models/permission-type.model.ts","../../../projects/tenants/src/lib/services/tenant-permissions-map.service.ts","../../../projects/tenants/src/lib/services/tenant-applications.service.ts","../../../projects/tenants/src/lib/components/create-tenant-application/create-tenant-application.component.ts","../../../projects/tenants/src/lib/components/create-tenant-application/create-tenant-application.component.html","../../../projects/tenants/src/lib/tenant-applications.component.ts","../../../projects/tenants/src/lib/tenant-applications.component.html","../../../projects/tenants/src/lib/models/app-type.model.ts","../../../projects/tenants/src/lib/tenant-applications.module.ts","../../../projects/tenants/src/public-api.ts","../../../projects/tenants/src/ieeesa-npm-tenants.ts"],"sourcesContent":["/* eslint-disable no-useless-escape */\r\nexport const TenantsValidationPatterns = {\r\n appTitleMaxLength: 50,\r\n appIdMaxLength: 10,\r\n appHeadingMaxLength: 150,\r\n appDescriptionMaxLength: 500,\r\n url: /^https:\\/\\//,\r\n alphaNumeric: /^[a-zA-Z0-9]+$/\r\n };","/* eslint-disable no-unused-vars */\r\nexport enum FormStatus {\r\n VALID = \"VALID\",\r\n INVALID = \"INVALID\",\r\n }","import { Injectable } from '@angular/core';\r\nimport { PermissionType } from '../models/permission-type.model';\r\nimport {\r\n UserPermission,\r\n TenantsPermissions,\r\n} from '../models/tenants-permission.model';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TenantPermissionsService {\r\n /**\r\n * Returns access provision for the passed action/feature based on whether the signed in user has appropriate permission.\r\n * @param {PermissionType} permission\r\n * @param {TenantsPermission[]} tenantsPermissions\r\n * @return {boolean}\r\n * @memberof TenantPermissionsService\r\n */\r\n validateAccessPermission(\r\n permission: PermissionType,\r\n userTenantsPermissions: TenantsPermissions[]\r\n ): boolean {\r\n const isPermitted =\r\n userTenantsPermissions && userTenantsPermissions.length\r\n ? userTenantsPermissions?.some(\r\n ({ permissionType }) => permissionType === permission\r\n )\r\n : false;\r\n return isPermitted;\r\n }\r\n /**\r\n * Filters signed in user tenants permissions from entire tenants permissions.\r\n * @param { UserPermission[] }\r\n * @return {TenantsPermissions[]}\r\n * @memberof TenantPermissionsService\r\n */\r\n filterTenantsPermissions(\r\n userPermissions: UserPermission[],\r\n tenantsPermissions: TenantsPermissions[]\r\n ): TenantsPermissions[] {\r\n const userTenantsPermission = tenantsPermissions?.filter(\r\n (permission: TenantsPermissions) => {\r\n return userPermissions?.find(\r\n ({ permissionId }) => permission?.permissionId === permissionId\r\n );\r\n }\r\n );\r\n return userTenantsPermission;\r\n }\r\n}\r\n","/* eslint-disable no-unused-vars */\r\nexport enum PermissionType {\r\n VIEW_TENANTS = 'VIEW_TENANTS',\r\n CREATE_TENANT = 'CREATE_TENANT',\r\n}\r\nexport enum TenantStatus {\r\n ACTIVE = 'Active',\r\n INACTIVE = 'Inactive',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PermissionType } from '../models/permission-type.model';\r\nimport { TenantsPermissions } from '../models/tenants-permission.model';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TenantPermissionsMapService {\r\n globalTenantsPermissions: TenantsPermissions[] = [\r\n {\r\n permissionType: PermissionType.VIEW_TENANTS,\r\n permissionName: 'View Tenant Applications',\r\n permissionId: 'PERM_SAAPPS_1a2dbbb5-5fe1-4261-85b1-a5373f41075a',\r\n },\r\n ];\r\n /**\r\n * Returns global permissions mapping for tenants.\r\n * @return {TenantsPermissions[]}\r\n * @memberof TenantsPermissionsMapService\r\n */\r\n getGlobalTenantsPermissions(): TenantsPermissions[] {\r\n return this.globalTenantsPermissions;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpService } from '@ieeesa-npm/utility';\r\nimport { Observable, catchError, map } from 'rxjs';\r\nimport * as screenTexts from '../assets/constants.json';\r\nimport { GetTenantsResponse, TenantInfo } from '../models/tenants.model';\r\nimport { GetTenantsPayload } from '../models/table-column-schema-view-tenant-list.model';\r\nimport {\r\n TenantsPermissions,\r\n UserPermission,\r\n} from '../models/tenants-permission.model';\r\nimport { TenantPermissionsService } from './tenant-permissions.service';\r\nimport { PermissionType } from '../models/permission-type.model';\r\nimport { TenantPermissionsMapService } from './tenant-permissions-map.service';\r\nimport { CreateTenantRequestPayload, CreateTenantResponse, TenantBasicInfo } from '../models/tenant.model';\r\nimport { CheckboxOption, RadioOption } from '@ieeesa-npm/presentation';\r\nimport { FeatureId, Features, GetFeaturesResponse } from '../models/features.model';\r\nimport { AppTypeConfig, GetAppTypesResponse } from '../models/app-type-config.model';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TenantApplicationsService {\r\n tenantsText = screenTexts?.errors;\r\n apiBaseUrl!: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n userPermission!: UserPermission[];\r\n selectedTenantInfo!: TenantInfo | undefined;\r\n userTenantsPermissions!: TenantsPermissions[];\r\n tenantsInfo!: TenantInfo;\r\n createTenantsText = screenTexts?.createTenant?.errors;\r\n tenantBasicInfo!: TenantBasicInfo;\r\n radioOptions: RadioOption[] = [];\r\n checkBoxOptions: CheckboxOption[] = [];\r\n constructor(\r\n // eslint-disable-next-line no-unused-vars\r\n private httpService: HttpService,\r\n // eslint-disable-next-line no-unused-vars\r\n private tenantPermissionsService: TenantPermissionsService,\r\n // eslint-disable-next-line no-unused-vars\r\n private tenantPermissionsMapService: TenantPermissionsMapService // eslint-disable-next-line no-empty-function\r\n ) {}\r\n setAppConfig(apiBaseUrl: string, userPermission: UserPermission[]): void {\r\n this.apiBaseUrl = apiBaseUrl;\r\n this.userPermission = userPermission;\r\n }\r\n /**\r\n * Sets the user tenants permissions\r\n * @param {TenantsPermissions[]} TenantsPermissions\r\n * @memberof TenantApplicationsService\r\n */\r\n setUserTenantsPermissions(userTenantsPermissions: TenantsPermissions[]) {\r\n this.userTenantsPermissions = userTenantsPermissions;\r\n }\r\n /**\r\n * Returns the user tenants permissions\r\n * @return {TenantsPermissions[]}\r\n * @memberof TenantApplicationsService\r\n */\r\n getUserTenantsPermissions(): TenantsPermissions[] {\r\n return this.userTenantsPermissions;\r\n }\r\n\r\n /**\r\n * Sets the user tenants information\r\n * @param {TenantInfo} tenantInfo\r\n * @memberof TenantApplicationsService\r\n */\r\n setSelectedTenantInformation(tenantInfo: TenantInfo): void {\r\n this.selectedTenantInfo = tenantInfo;\r\n }\r\n /**\r\n * Returns the tenants information\r\n * @return {TenantInfo}\r\n * @memberof TenantApplicationsService\r\n */\r\n getSelectedTenantInformation(): TenantInfo | undefined {\r\n return this.selectedTenantInfo;\r\n }\r\n /**\r\n * Filter permissions\r\n * @param usersPermissions\r\n * @returns @memberof TenantApplicationsService\r\n */\r\n filterPermission(usersPermissions: UserPermission[]): TenantsPermissions[] {\r\n return this.tenantPermissionsService?.filterTenantsPermissions(\r\n usersPermissions,\r\n this.tenantPermissionsMapService?.getGlobalTenantsPermissions()\r\n );\r\n }\r\n /**\r\n * Validating access for tenants\r\n * @param permissionType Permission Type to validate permission\r\n * @param mappedUserPermissions Permission which are mapped with tenants\r\n * @returns true if permission is granted\r\n */\r\n validateAccess(\r\n permissionType: PermissionType,\r\n permissions: TenantsPermissions[]\r\n ): boolean {\r\n return this.tenantPermissionsService.validateAccessPermission(\r\n permissionType,\r\n permissions\r\n );\r\n }\r\n /**\r\n * Gets the tenants.\r\n * @param {GetTenantsPayload} payload\r\n * @return {Observable<GetTenantsResponse>}\r\n * @memberof TenantApplicationsService\r\n */\r\n getTenantsList(payload: GetTenantsPayload): Observable<GetTenantsResponse> {\r\n return this.httpService\r\n .postData(`${this.apiBaseUrl}/configurations/config/application`, payload)\r\n .pipe(\r\n map((response) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n throw error;\r\n })\r\n );\r\n }\r\n /**\r\n * Gets list of features from server using HttpService.\r\n * @return {Observable<GetFeaturesResponse>}\r\n * @memberof TenantApplicationsService\r\n */\r\n getFeatures(): Observable<GetFeaturesResponse> {\r\n return this.httpService\r\n .getData(`${this.apiBaseUrl}/configurations/config/features`)\r\n .pipe(\r\n map((response) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n throw error;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Gets list of application types from server using HttpService.\r\n * @return {Observable<GetAppTypesResponse>}\r\n * @memberof TenantApplicationsService\r\n */\r\n getApplicationTypes(): Observable<GetAppTypesResponse> {\r\n return this.httpService\r\n .getData(`${this.apiBaseUrl}/configurations/config/app_type`)\r\n .pipe(\r\n map((response) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n throw error;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Posts tenant application form data to server using HttpService for creating new tenant application.\r\n * @param {CreateTenantPayload} createTenantPayload\r\n * @return {Observable<CreateTenantResponse>}\r\n * @memberof TenantApplicationsService\r\n */\r\n createTenant(\r\n createTenantPayload: CreateTenantRequestPayload\r\n ): Observable<CreateTenantResponse> {\r\n return this.httpService\r\n .postData(\r\n `${this.apiBaseUrl}/configurations/config/createTenant`,\r\n createTenantPayload\r\n )\r\n .pipe(\r\n map((response) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n throw error;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Constructs the checkbox options from features list from server.\r\n * @param {FeaturesList[]} features\r\n * @returns {CheckboxOption[]}\r\n */\r\n getFeatureOptions(features: Features[]): CheckboxOption[] {\r\n this.checkBoxOptions = [];\r\n features?.forEach((feature: Features) => {\r\n this.checkBoxOptions?.push({\r\n id: feature?.featureId,\r\n name: feature?.featureName,\r\n checked: feature?.isDefault,\r\n disabled: feature?.isDefault,\r\n });\r\n });\r\n return this.checkBoxOptions;\r\n }\r\n /**\r\n * Constructs the radio options from application types from server.\r\n * @param {AppTypeConfig[]} appTypeOptions\r\n * @returns {RadioOption[]}\r\n */\r\n getApplicationTypeOptions(appTypeOptions: AppTypeConfig[]): RadioOption[] {\r\n this.radioOptions = [];\r\n appTypeOptions?.forEach((appType: AppTypeConfig) => {\r\n this.radioOptions?.push({\r\n id: appType?.configFieldId,\r\n label: appType?.configFieldValue?.type,\r\n });\r\n });\r\n return this.radioOptions;\r\n }\r\n /**\r\n * Constructs the selected features id's.\r\n * @param {boolean[]} featureSelectionValues\r\n * @returns {FeatureId[]}\r\n */\r\n getFeatureIds(featureSelectionValues: boolean[]): FeatureId[] {\r\n const featureIds: FeatureId[] = [];\r\n featureSelectionValues?.forEach((featureValue: boolean, index: number) => {\r\n if (featureValue) {\r\n featureIds.push({\r\n featureId: this.checkBoxOptions[index]?.id as string,\r\n });\r\n }\r\n });\r\n return featureIds;\r\n }\r\n /**\r\n * Sets the tenant basic information.\r\n * @param {CreateTenantRequestPayload} createTenantPayload\r\n */\r\n setTenantBasicInfo(createTenantPayload: CreateTenantRequestPayload): void {\r\n this.tenantBasicInfo = createTenantPayload?.payload;\r\n }\r\n /**\r\n * Returns the tenant basic information.\r\n */\r\n get getTenantBasicInfo(): TenantBasicInfo {\r\n return this.tenantBasicInfo;\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n AlignType,\r\n CheckboxOption,\r\n FormGrid,\r\n RadioOption,\r\n FormControlType,\r\n FormModel,\r\n AllowedFileTypes,\r\n FileUploadService,\r\n FileUploadPresignedUrl,\r\n DynamicFormComponent,\r\n} from '@ieeesa-npm/presentation';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport * as screenTexts from '../../assets/constants.json';\r\nimport { FormArray, FormGroup, Validators } from '@angular/forms';\r\nimport { TenantsValidationPatterns } from '../../assets/tenant-validations';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormStatus } from '../../models/form-status.model';\r\nimport { validColorValidator } from 'ngx-colors';\r\nimport { Features, GetFeaturesResponse } from '../../models/features.model';\r\nimport { TenantApplicationsService } from '../../services/tenant-applications.service';\r\nimport {\r\n AppTypeConfig,\r\n GetAppTypesResponse,\r\n} from '../../models/app-type-config.model';\r\nimport {\r\n CreateTenantRequestPayload,\r\n CreateTenantResponse,\r\n} from '../../models/tenant.model';\r\nimport { SharedService } from '@ieeesa-npm/shared';\r\n\r\n@Component({\r\n selector: 'ieeesa-create-tenant-application',\r\n standalone: true,\r\n imports: [CommonModule, DynamicFormComponent],\r\n templateUrl: './create-tenant-application.component.html',\r\n styleUrls: ['./create-tenant-application.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CreateTenantApplicationComponent implements OnInit, OnDestroy {\r\n destroy$ = new Subject<boolean>();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n constants: any = screenTexts;\r\n createTenantTexts = this.constants?.createTenant;\r\n leftButtonLabel = this.createTenantTexts?.label?.leftButtonLabel;\r\n rightButtonLabel = this.createTenantTexts?.label?.rightButtonLabel;\r\n colWidth: FormGrid = { xs: 12, xl: 12, sm: 12, md: 12, lg: 12 };\r\n createTenantFormGroup!: FormModel;\r\n actionButtonAlign = AlignType.LEFT;\r\n createTenantFormGroupRef!: FormGroup;\r\n @ViewChild(DynamicFormComponent)\r\n dynamicFormComponent!: DynamicFormComponent;\r\n @Output() submitFormResponse = new EventEmitter();\r\n @Output() formCancel = new EventEmitter();\r\n featuresOptions!: CheckboxOption[];\r\n appTypeOptions!: RadioOption[];\r\n createTenantPayload!: CreateTenantRequestPayload;\r\n fileUploadPresignedUrl!: string;\r\n fileDownloadPresignedUrl!: string;\r\n file!: File | FileList;\r\n allowedFileTypes = [\r\n AllowedFileTypes.JPG,\r\n AllowedFileTypes.PNG,\r\n AllowedFileTypes.SVG,\r\n ];\r\n selectedColor!: string;\r\n selectedAppTypeOption!: RadioOption;\r\n constructor(\r\n // eslint-disable-next-line no-unused-vars\r\n public fileUploadService: FileUploadService,\r\n // eslint-disable-next-line no-unused-vars\r\n private tenantAppService: TenantApplicationsService,\r\n // eslint-disable-next-line no-unused-vars\r\n private sharedService: SharedService // eslint-disable-next-line no-empty-function\r\n ) {}\r\n ngOnInit(): void {\r\n this.getFeatures();\r\n }\r\n /**\r\n * Gets the list of features and updates the form control.\r\n * @memberof CreateTenantApplicationComponent\r\n */\r\n getFeatures(): void {\r\n this.tenantAppService\r\n .getFeatures()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (response: GetFeaturesResponse) => {\r\n if (response?.status) {\r\n this.featuresOptions = this.tenantAppService.getFeatureOptions(\r\n response?.body as Features[]\r\n );\r\n this.getApplicationTypes();\r\n }\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n error: (error: any) => {\r\n this.sharedService.handleErrors(\r\n error,\r\n this.createTenantTexts?.errors\r\n );\r\n },\r\n });\r\n }\r\n /**\r\n * Gets the application/tenant types and updates the form control.\r\n * @memberof CreateTenantApplicationComponent\r\n */\r\n getApplicationTypes(): void {\r\n this.tenantAppService\r\n .getApplicationTypes()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (response: GetAppTypesResponse) => {\r\n if (response?.status) {\r\n this.appTypeOptions =\r\n this.tenantAppService.getApplicationTypeOptions(\r\n response?.body as AppTypeConfig[]\r\n );\r\n this.initializeCreateTenantFormGroup();\r\n }\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n error: (error: any) => {\r\n this.sharedService.handleErrors(\r\n error,\r\n this.createTenantTexts?.errors\r\n );\r\n },\r\n });\r\n }\r\n /**\r\n * Initialize the create tenant form group array.\r\n * @memberof CreateTenantApplicationComponent\r\n */\r\n initializeCreateTenantFormGroup(): void {\r\n this.createTenantFormGroup = {\r\n formGroup: [\r\n {\r\n legend: '',\r\n controls: [\r\n {\r\n type: FormControlType.INPUT,\r\n label: this.createTenantTexts?.label?.appTitle + '*',\r\n controlName: 'appTitle',\r\n value: '',\r\n validation: [\r\n Validators.required,\r\n Validators.maxLength(\r\n TenantsValidationPatterns.appTitleMaxLength\r\n ),\r\n ],\r\n supportMessage: this.createTenantTexts?.supportText?.appTitle,\r\n requiredErrorMessage:\r\n this.createTenantTexts?.message?.error?.required,\r\n maxErrorMessage:\r\n this.createTenantTexts?.message?.error?.limit?.appTitleMaxChars,\r\n ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appTitle,\r\n ariaDescribedById:\r\n this.createTenantTexts?.label?.ariaDescribedById?.appTitle,\r\n },\r\n {\r\n type: FormControlType.INPUT,\r\n label: this.createTenantTexts?.label?.appId + '*',\r\n controlName: 'appId',\r\n value: '',\r\n validation: [\r\n Validators.required,\r\n Validators.maxLength(TenantsValidationPatterns.appIdMaxLength),\r\n Validators.pattern(TenantsValidationPatterns.alphaNumeric),\r\n ],\r\n supportMessage: this.createTenantTexts?.supportText?.appId,\r\n requiredErrorMessage:\r\n this.createTenantTexts?.message?.error?.required,\r\n maxErrorMessage:\r\n this.createTenantTexts?.message?.error?.limit?.appIdMaxChars,\r\n patternErrorMessage:\r\n this.createTenantTexts?.message?.error?.pattern?.appId,\r\n ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appId,\r\n ariaDescribedById:\r\n this.createTenantTexts?.label?.ariaDescribedById?.appId,\r\n },\r\n {\r\n type: FormControlType?.FILE_UPLOAD,\r\n label: this.createTenantTexts?.label?.appLogo + '*',\r\n controlName: 'appLogo',\r\n requiredErrorMessage:\r\n this.createTenantTexts?.message?.error?.required,\r\n value: '',\r\n placeholder: '',\r\n supportMessage: this.createTenantTexts?.supportText?.appLogo,\r\n validation: [Validators.required],\r\n ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appLogo,\r\n ariaDescribedById:\r\n this.createTenantTexts?.label?.ariaDescribedById?.appLogo,\r\n isMultiFileUpload: false,\r\n maxUploadFileSize: 2,\r\n maxFileSizeErrorMessage:\r\n this.createTenantTexts?.message?.error?.limit?.appLogoMaxSize,\r\n allowedFileTypeErrorMessage:\r\n this.createTenantTexts?.message?.error?.invalidFile,\r\n allowedFileTypes: this.allowedFileTypes,\r\n },\r\n {\r\n type: FormControlType.INPUT,\r\n label: this.createTenantTexts?.label?.appHeading + '*',\r\n controlName: 'appHeading',\r\n value: '',\r\n validation: [\r\n Validators.required,\r\n Validators.maxLength(\r\n TenantsValidationPatterns.appHeadingMaxLength\r\n ),\r\n ],\r\n supportMessage: this.createTenantTexts?.supportText?.appHeading,\r\n requiredErrorMessage:\r\n this.createTenantTexts?.message?.error?.required,\r\n maxErrorMessage:\r\n this.createTenantTexts?.message?.error?.limit\r\n ?.appHeadingMaxChars,\r\n patternErrorMessage:\r\n this.createTenantTexts?.message?.error?.pattern?.email,\r\n ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appHeading,\r\n ariaDescribedById:\r\n this.createTenantTexts?.label?.ariaDescribedById?.appHeading,\r\n },\r\n {\r\n type: FormControlType.TEXT_AREA,\r\n label: this.createTenantTexts?.label?.appDescription + '*',\r\n controlName: 'appDescription',\r\n value: '',\r\n validation: [\r\n Validators.required,\r\n Validators.maxLength(\r\n TenantsValidationPatterns.appDescriptionMaxLength\r\n ),\r\n ],\r\n supportMessage:\r\n this.createTenantTexts?.supportText?.appDescription,\r\n requiredErrorMessage:\r\n this.createTenantTexts?.message?.error?.required,\r\n maxErrorMessage:\r\n this.createTenantTexts?.message?.error?.limit\r\n ?.appDescriptionMaxChars,\r\n maxCharCount: TenantsValidationPatterns.appDescriptionMaxLength,\r\n ariaLabel:\r\n this.createTenantTexts?.label?.ariaLabel?.appDescription,\r\n ariaDescribedById:\r\n this.createTenantTexts?.label?.ariaDescribedById\r\n ?.appDescription,\r\n ariaMultiline: true,\r\n isResize: true,\r\n },\r\n {\r\n type: FormControlType.COLOR_PICKER,\r\n label: this.createTenantTexts?.label?.appBgColor + '*',\r\n controlName: 'backgroundColor',\r\n value: '',\r\n placeholder: '',\r\n supportMessage: this.createTenantTexts?.supportText?.appBgColor,\r\n validation: [Validators.required, validColorValidator()],\r\n requiredErrorMessage:\r\n this.createTenantTexts?.message?.error?.required,\r\n invalidColorErrorMessage:\r\n this.createTenantTexts?.message?.error?.invalidColor,\r\n ariaLabel: this.createTenantTexts?.supportText?.appBgColor,\r\n ariaDescribedById:\r\n this.createTenantTexts?.supportText?.appBgColor,\r\n },\r\n {\r\n type: FormControlType.INPUT,\r\n label: this.createTenantTexts?.label?.appHelpLink + '*',\r\n controlName: 'appHelpLink',\r\n value: '',\r\n validation: [\r\n Validators.required,\r\n Validators.pattern(TenantsValidationPatterns.url),\r\n ],\r\n supportMessage: this.createTenantTexts?.supportText?.appHelpLink,\r\n requiredErrorMessage:\r\n this.createTenantTexts?.message?.error?.required,\r\n patternErrorMessage:\r\n this.createTenantTexts?.message?.error?.pattern?.appHelpLink,\r\n ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appHelpLink,\r\n ariaDescribedById:\r\n this.createTenantTexts?.label?.ariaDescribedById?.appHelpLink,\r\n },\r\n {\r\n type: FormControlType.CHECKBOX,\r\n label: this.createTenantTexts?.label?.featuresList + '*',\r\n controlName: 'features',\r\n checkboxOptions: this.featuresOptions,\r\n minSelectionRequired: 1,\r\n ariaLabel: this.createTenantTexts?.label?.ariaLabel?.featuresList,\r\n ariaDescribedById:\r\n this.createTenantTexts?.label?.ariaDescribedById?.featuresList,\r\n supportMessage: this.createTenantTexts?.supportText?.featuresList,\r\n requiredErrorMessage:\r\n this.createTenantTexts?.message?.error?.required,\r\n validation: [Validators.required],\r\n },\r\n {\r\n type: FormControlType.INPUT,\r\n label: this.createTenantTexts?.label?.domainURL + '*',\r\n controlName: 'appDomainUrl',\r\n value: '',\r\n validation: [\r\n Validators.required,\r\n Validators.pattern(TenantsValidationPatterns.url),\r\n ],\r\n supportMessage: this.createTenantTexts?.supportText?.domainURL,\r\n requiredErrorMessage:\r\n this.createTenantTexts?.message?.error?.required,\r\n patternErrorMessage:\r\n this.createTenantTexts?.message?.error?.pattern?.appDomainUrl,\r\n ariaLabel: this.createTenantTexts?.label?.ariaLabel?.domainURL,\r\n ariaDescribedById:\r\n this.createTenantTexts?.label?.ariaDescribedById?.domainURL,\r\n },\r\n {\r\n type: FormControlType.RADIO,\r\n label: this.createTenantTexts?.label?.appType + '*',\r\n controlName: 'appType',\r\n value: '',\r\n radioOptions: this.appTypeOptions,\r\n validation: [Validators.required],\r\n requiredErrorMessage:\r\n this.createTenantTexts?.message?.error?.required,\r\n ariaLabel: this.createTenantTexts?.label?.ariaLabel?.appType,\r\n ariaDescribedById:\r\n this.createTenantTexts?.label?.ariaDescribedById?.appType,\r\n },\r\n ],\r\n },\r\n ],\r\n };\r\n }\r\n\r\n /**\r\n * Creates tenant on form submission.\r\n * @param {FormGroup[]} form\r\n * @memberof CreateTenantApplicationComponent\r\n */\r\n onCreateTenantFormSubmit(form: FormGroup[]): void {\r\n form[0]?.markAllAsTouched();\r\n if (form[0].status === FormStatus.VALID) {\r\n this.createTenantPayload = this.getCreateTenantPayload(\r\n form[0].getRawValue()\r\n );\r\n if (this.file) this.getFileUploadPresignedUrl(this.file);\r\n }\r\n }\r\n\r\n /**\r\n * Constructs create tenant payload from the form data and returns.\r\n * @param {*} formData\r\n * @return {CreateTenantRequestPayload}\r\n * @memberof CreateTenantApplicationComponent\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n getCreateTenantPayload(formData: any): CreateTenantRequestPayload {\r\n const payload: CreateTenantRequestPayload = {\r\n payload: {\r\n appTitle: formData?.appTitle,\r\n appId: formData?.appId,\r\n appHeading: formData?.appHeading,\r\n appDescription: formData?.appDescription,\r\n backgroundColor: formData?.backgroundColor,\r\n appLogo: formData?.appLogo,\r\n appDomainUrl: formData?.appDomainUrl,\r\n appHelpLink: formData?.appHelpLink,\r\n appType: this.selectedAppTypeOption?.id as string,\r\n features: this.tenantAppService.getFeatureIds(formData?.features),\r\n },\r\n };\r\n return payload;\r\n }\r\n\r\n /**\r\n * Gets create tenant form group reference and disables default features.\r\n * @param {FormGroup[]} form\r\n * @memberof CreateTenantApplicationComponent\r\n */\r\n getCreateTenantFormGroupRef(form: FormGroup[]): void {\r\n this.createTenantFormGroupRef = form[0];\r\n const featuresFormArray = this.createTenantFormGroupRef?.controls[\r\n 'features'\r\n ] as FormArray;\r\n this.featuresOptions?.forEach((option: CheckboxOption, index: number) => {\r\n if (option?.disabled) {\r\n featuresFormArray?.at(index).disable();\r\n }\r\n });\r\n }\r\n /**\r\n * Updates createTenantFormGroupRef on add tenant form change event.\r\n * @param {FormGroup[]} form\r\n * @memberof CreateTenantApplicationComponent\r\n */\r\n onCreateTenantFormChange(form: FormGroup[]): void {\r\n this.createTenantFormGroupRef = form[0];\r\n }\r\n /**\r\n * Emits form cancel event.\r\n * @memberof CreateTenantApplicationComponent\r\n */\r\n onFormCancel(): void {\r\n this.formCancel.emit();\r\n }\r\n /**\r\n * Gets the selected file when the file is browsed and on formFileUpload event is triggered.\r\n * @param {File | FileList} file\r\n */\r\n onFormFileUpload(file: File | FileList): void {\r\n this.file = file;\r\n }\r\n /**\r\n * Gets pre-signed URL to upload the selected file to AWS S3 bucket.\r\n * @param {File | FileList} file\r\n */\r\n getFileUploadPresignedUrl(file: File | FileList): void {\r\n this.fileUploadService\r\n .getFileUploadPresignedUrl(file)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (response: FileUploadPresignedUrl) => {\r\n this.fileUploadPresignedUrl = response?.body;\r\n if (this.fileUploadPresignedUrl) this.uploadFileToS3(file);\r\n },\r\n // 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\r\n error: (error: any) => {\r\n this.sharedService.handleErrors(\r\n error,\r\n this.createTenantTexts?.errors\r\n );\r\n },\r\n });\r\n }\r\n /**\r\n * Uploads the file to AWS S3 bucket and submit the form data to API to create new tenant.\r\n * @param {File | FileList} file\r\n */\r\n uploadFileToS3(file: File | FileList): void {\r\n this.fileUploadService\r\n .uploadFileToS3(this.fileUploadPresignedUrl, file)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\r\n next: (response: any) => {\r\n this.fileUploadService.setFileUploadStatus(true);\r\n this.tenantAppService\r\n .createTenant(this.createTenantPayload)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (response: CreateTenantResponse) => {\r\n if (response.status) {\r\n this.tenantAppService.setTenantBasicInfo(\r\n this.createTenantPayload\r\n );\r\n this.submitFormResponse.emit(response);\r\n }\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n error: (error: any) => {\r\n this.sharedService.handleErrors(\r\n error,\r\n this.createTenantTexts?.errors\r\n );\r\n },\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\r\n error: (error: any) => {\r\n this.fileUploadService.setFileUploadStatus(false);\r\n this.sharedService.handleErrors(\r\n error,\r\n this.createTenantTexts?.errors\r\n );\r\n },\r\n });\r\n }\r\n /**\r\n * Triggers when the color picker values has been changed.\r\n * @param {string} color\r\n */\r\n onColorPickerChange(color: string): void {\r\n this.selectedColor = color;\r\n }\r\n /**\r\n * Triggers when the radio option has been changed.\r\n * @param {RadioOption} radioOption\r\n */\r\n onRadioOptionSelected(radioOption: RadioOption): void {\r\n this.selectedAppTypeOption = radioOption;\r\n }\r\n /**\r\n * Implementation of ngOnDestroy lifecycle hook method to unsubscribe the open observable subscriptions.\r\n * @memberof CreateTenantApplicationComponent\r\n */\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.unsubscribe();\r\n }\r\n}\r\n","<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","/* eslint-disable no-empty-function */\r\nimport { Component } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n@Component({\r\n selector: 'ieeesa-tenant-applications',\r\n standalone: true,\r\n imports: [CommonModule, MatButtonModule],\r\n templateUrl: './tenant-applications.component.html',\r\n styleUrls: ['./tenant-applications.component.scss'],\r\n})\r\nexport class TenantApplicationsComponent {}\r\n","","/* eslint-disable no-unused-vars */\r\nexport enum AppType {\r\n GENERIC = 'Generic',\r\n STANDALONE = 'Standalone'\r\n}","import { NgModule } from '@angular/core';\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [],\r\n exports: [],\r\n})\r\nexport class TenantApplicationsModule {}\r\n","/*\r\n * Public API Surface of tenants\r\n */\r\nexport * from './lib/components/create-tenant-application/create-tenant-application.component';\r\nexport * from './lib/tenant-applications.component';\r\n\r\nexport * from './lib/models/app-type-config.model';\r\nexport * from './lib/models/app-type.model';\r\nexport * from './lib/models/tenant.model';\r\nexport * from './lib/models/features.model';\r\nexport * from './lib/models/form-status.model';\r\n\r\nexport * from './lib/services/tenant-applications.service';\r\n\r\nexport * from './lib/assets/tenant-validations';\r\n\r\nexport * from './lib/tenant-applications.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["screenTexts?.errors","screenTexts?.createTenant","i2.TenantPermissionsService","i3.TenantPermissionsMapService","i1","i2.TenantApplicationsService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACa,MAAA,yBAAyB,GAAG;AACrC,IAAA,iBAAiB,EAAE,EAAE;AACrB,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,mBAAmB,EAAE,GAAG;AACxB,IAAA,uBAAuB,EAAE,GAAG;AAC5B,IAAA,GAAG,EAAE,aAAa;AAClB,IAAA,YAAY,EAAE,gBAAgB;;;ACPlC;IACY,WAGT;AAHH,CAAA,UAAY,UAAU,EAAA;AAClB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAHS,UAAU,KAAV,UAAU,GAGnB,EAAA,CAAA,CAAA;;MCKU,wBAAwB,CAAA;AACnC;;;;;;AAMG;IACH,wBAAwB,CACtB,UAA0B,EAC1B,sBAA4C,EAAA;AAE5C,QAAA,MAAM,WAAW,GACf,sBAAsB,IAAI,sBAAsB,CAAC,MAAM;AACrD,cAAE,sBAAsB,EAAE,IAAI,CAC1B,CAAC,EAAE,cAAc,EAAE,KAAK,cAAc,KAAK,UAAU,CACtD;cACD,KAAK,CAAC;AACZ,QAAA,OAAO,WAAW,CAAC;KACpB;AACD;;;;;AAKG;IACH,wBAAwB,CACtB,eAAiC,EACjC,kBAAwC,EAAA;QAExC,MAAM,qBAAqB,GAAG,kBAAkB,EAAE,MAAM,CACtD,CAAC,UAA8B,KAAI;AACjC,YAAA,OAAO,eAAe,EAAE,IAAI,CAC1B,CAAC,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,YAAY,KAAK,YAAY,CAChE,CAAC;AACJ,SAAC,CACF,CAAC;AACF,QAAA,OAAO,qBAAqB,CAAC;KAC9B;+GAtCU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACRD;AACA,IAAY,cAGX,CAAA;AAHD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,cAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AACjC,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AACD,IAAY,YAGX,CAAA;AAHD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAHW,YAAY,KAAZ,YAAY,GAGvB,EAAA,CAAA,CAAA;;MCFY,2BAA2B,CAAA;AAHxC,IAAA,WAAA,GAAA;AAIE,QAAA,IAAA,CAAA,wBAAwB,GAAyB;AAC/C,YAAA;gBACE,cAAc,EAAE,cAAc,CAAC,YAAY;AAC3C,gBAAA,cAAc,EAAE,0BAA0B;AAC1C,gBAAA,YAAY,EAAE,kDAAkD;AACjE,aAAA;SACF,CAAC;AASH,KAAA;AARC;;;;AAIG;IACH,2BAA2B,GAAA;QACzB,OAAO,IAAI,CAAC,wBAAwB,CAAC;KACtC;+GAfU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAF1B,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACLD;MAqBa,yBAAyB,CAAA;AAYpC,IAAA,WAAA;;IAEU,WAAwB;;IAExB,wBAAkD;;AAElD,IAAA,2BAAwD;;QAJxD,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAExB,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QAElD,IAA2B,CAAA,2BAAA,GAA3B,2BAA2B,CAA6B;AAjBlE,QAAA,IAAA,CAAA,WAAW,GAAGA,MAAmB,CAAC;AAOlC,QAAA,IAAA,CAAA,iBAAiB,GAAGC,YAAyB,EAAE,MAAM,CAAC;QAEtD,IAAY,CAAA,YAAA,GAAkB,EAAE,CAAC;QACjC,IAAe,CAAA,eAAA,GAAqB,EAAE,CAAC;KAQnC;IACJ,YAAY,CAAC,UAAkB,EAAE,cAAgC,EAAA;AAC/D,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;KACtC;AACD;;;;AAIG;AACH,IAAA,yBAAyB,CAAC,sBAA4C,EAAA;AACpE,QAAA,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;KACtD;AACD;;;;AAIG;IACH,yBAAyB,GAAA;QACvB,OAAO,IAAI,CAAC,sBAAsB,CAAC;KACpC;AAED;;;;AAIG;AACH,IAAA,4BAA4B,CAAC,UAAsB,EAAA;AACjD,QAAA,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC;KACtC;AACD;;;;AAIG;IACH,4BAA4B,GAAA;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAChC;AACD;;;;AAIG;AACH,IAAA,gBAAgB,CAAC,gBAAkC,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,wBAAwB,EAAE,wBAAwB,CAC5D,gBAAgB,EAChB,IAAI,CAAC,2BAA2B,EAAE,2BAA2B,EAAE,CAChE,CAAC;KACH;AACD;;;;;AAKG;IACH,cAAc,CACZ,cAA8B,EAC9B,WAAiC,EAAA;QAEjC,OAAO,IAAI,CAAC,wBAAwB,CAAC,wBAAwB,CAC3D,cAAc,EACd,WAAW,CACZ,CAAC;KACH;AACD;;;;;AAKG;AACH,IAAA,cAAc,CAAC,OAA0B,EAAA;QACvC,OAAO,IAAI,CAAC,WAAW;aACpB,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAoC,kCAAA,CAAA,EAAE,OAAO,CAAC;AACzE,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAQ,KAAI;AACf,YAAA,OAAO,QAAQ,CAAC;AAClB,SAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,MAAM,KAAK,CAAC;SACb,CAAC,CACH,CAAC;KACL;AACA;;;;AAIE;IACF,WAAW,GAAA;QACV,OAAO,IAAI,CAAC,WAAW;AACpB,aAAA,OAAO,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,iCAAiC,CAAC;AAC5D,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAQ,KAAI;AACf,YAAA,OAAO,QAAQ,CAAC;AAClB,SAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,MAAM,KAAK,CAAC;SACb,CAAC,CACH,CAAC;KACL;AAED;;;;AAIG;IACH,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,WAAW;AACpB,aAAA,OAAO,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,iCAAiC,CAAC;AAC5D,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAQ,KAAI;AACf,YAAA,OAAO,QAAQ,CAAC;AAClB,SAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,MAAM,KAAK,CAAC;SACb,CAAC,CACH,CAAC;KACL;AAED;;;;;AAKG;AACH,IAAA,YAAY,CACV,mBAA+C,EAAA;QAE/C,OAAO,IAAI,CAAC,WAAW;aACpB,QAAQ,CACP,GAAG,IAAI,CAAC,UAAU,CAAqC,mCAAA,CAAA,EACvD,mBAAmB,CACpB;AACA,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAQ,KAAI;AACf,YAAA,OAAO,QAAQ,CAAC;AAClB,SAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,MAAM,KAAK,CAAC;SACb,CAAC,CACH,CAAC;KACL;AAED;;;;AAIG;AACH,IAAA,iBAAiB,CAAC,QAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC1B,QAAA,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAiB,KAAI;AACtC,YAAA,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC;gBACzB,EAAE,EAAE,OAAO,EAAE,SAAS;gBACtB,IAAI,EAAE,OAAO,EAAE,WAAW;gBAC1B,OAAO,EAAE,OAAO,EAAE,SAAS;gBAC3B,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC7B,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;AACD;;;;AAIG;AACH,IAAA,yBAAyB,CAAC,cAA+B,EAAA;AACvD,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,cAAc,EAAE,OAAO,CAAC,CAAC,OAAsB,KAAI;AACjD,YAAA,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;gBACtB,EAAE,EAAE,OAAO,EAAE,aAAa;AAC1B,gBAAA,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI;AACvC,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;AACD;;;;AAIG;AACH,IAAA,aAAa,CAAC,sBAAiC,EAAA;QAC7C,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,sBAAsB,EAAE,OAAO,CAAC,CAAC,YAAqB,EAAE,KAAa,KAAI;AACvE,YAAA,IAAI,YAAY,EAAE;gBAChB,UAAU,CAAC,IAAI,CAAC;oBACd,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAY;AACrD,iBAAA,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,UAAU,CAAC;KACnB;AACD;;;AAGG;AACH,IAAA,kBAAkB,CAAC,mBAA+C,EAAA;AAChE,QAAA,IAAI,CAAC,eAAe,GAAG,mBAAmB,EAAE,OAAO,CAAC;KACrD;AACD;;AAEG;AACH,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;+GA7NU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,2BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFxB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MC4BY,gCAAgC,CAAA;AA4B3C,IAAA,WAAA;;IAES,iBAAoC;;IAEnC,gBAA2C;;AAE3C,IAAA,aAA4B;;QAJ7B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAEnC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAA2B;QAE3C,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAjCtC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAW,CAAC;;QAElC,IAAS,CAAA,SAAA,GAAQ,WAAW,CAAC;AAC7B,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC;QACjD,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,eAAe,CAAC;QACjE,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,gBAAgB,CAAC;QACnE,IAAQ,CAAA,QAAA,GAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAEhE,QAAA,IAAA,CAAA,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC;AAIzB,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;AACxC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAO1C,QAAA,IAAA,CAAA,gBAAgB,GAAG;AACjB,YAAA,gBAAgB,CAAC,GAAG;AACpB,YAAA,gBAAgB,CAAC,GAAG;AACpB,YAAA,gBAAgB,CAAC,GAAG;SACrB,CAAC;KAUE;IACJ,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AACD;;;AAGG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB;AAClB,aAAA,WAAW,EAAE;AACb,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,QAA6B,KAAI;gBACtC,IAAI,QAAQ,EAAE,MAAM,EAAE;AACpB,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAC5D,QAAQ,EAAE,IAAkB,CAC7B,CAAC;oBACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,iBAAA;aACF;;AAED,YAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACpB,gBAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAC7B,KAAK,EACL,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAC/B,CAAC;aACH;AACF,SAAA,CAAC,CAAC;KACN;AACD;;;AAGG;IACH,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,gBAAgB;AAClB,aAAA,mBAAmB,EAAE;AACrB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,QAA6B,KAAI;gBACtC,IAAI,QAAQ,EAAE,MAAM,EAAE;AACpB,oBAAA,IAAI,CAAC,cAAc;wBACjB,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAC7C,QAAQ,EAAE,IAAuB,CAClC,CAAC;oBACJ,IAAI,CAAC,+BAA+B,EAAE,CAAC;AACxC,iBAAA;aACF;;AAED,YAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACpB,gBAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAC7B,KAAK,EACL,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAC/B,CAAC;aACH;AACF,SAAA,CAAC,CAAC;KACN;AACD;;;AAGG;IACH,+BAA+B,GAAA;QAC7B,IAAI,CAAC,qBAAqB,GAAG;AAC3B,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,MAAM,EAAE,EAAE;AACV,oBAAA,QAAQ,EAAE;AACR,wBAAA;4BACE,IAAI,EAAE,eAAe,CAAC,KAAK;4BAC3B,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,QAAQ,GAAG,GAAG;AACpD,4BAAA,WAAW,EAAE,UAAU;AACvB,4BAAA,KAAK,EAAE,EAAE;AACT,4BAAA,UAAU,EAAE;AACV,gCAAA,UAAU,CAAC,QAAQ;AACnB,gCAAA,UAAU,CAAC,SAAS,CAClB,yBAAyB,CAAC,iBAAiB,CAC5C;AACF,6BAAA;AACD,4BAAA,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,QAAQ;4BAC7D,oBAAoB,EAClB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;4BAClD,eAAe,EACb,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB;4BACjE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ;4BAC7D,iBAAiB,EACf,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ;AAC7D,yBAAA;AACD,wBAAA;4BACE,IAAI,EAAE,eAAe,CAAC,KAAK;4BAC3B,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,KAAK,GAAG,GAAG;AACjD,4BAAA,WAAW,EAAE,OAAO;AACpB,4BAAA,KAAK,EAAE,EAAE;AACT,4BAAA,UAAU,EAAE;AACV,gCAAA,UAAU,CAAC,QAAQ;AACnB,gCAAA,UAAU,CAAC,SAAS,CAAC,yBAAyB,CAAC,cAAc,CAAC;AAC9D,gCAAA,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,YAAY,CAAC;AAC3D,6BAAA;AACD,4BAAA,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,KAAK;4BAC1D,oBAAoB,EAClB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;4BAClD,eAAe,EACb,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa;4BAC9D,mBAAmB,EACjB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;4BACxD,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;4BAC1D,iBAAiB,EACf,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK;AAC1D,yBAAA;AACD,wBAAA;4BACE,IAAI,EAAE,eAAe,EAAE,WAAW;4BAClC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG;AACnD,4BAAA,WAAW,EAAE,SAAS;4BACtB,oBAAoB,EAClB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;AAClD,4BAAA,KAAK,EAAE,EAAE;AACT,4BAAA,WAAW,EAAE,EAAE;AACf,4BAAA,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,OAAO;AAC5D,4BAAA,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;4BACjC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO;4BAC5D,iBAAiB,EACf,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO;AAC3D,4BAAA,iBAAiB,EAAE,KAAK;AACxB,4BAAA,iBAAiB,EAAE,CAAC;4BACpB,uBAAuB,EACrB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc;4BAC/D,2BAA2B,EACzB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW;4BACrD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;AACxC,yBAAA;AACD,wBAAA;4BACE,IAAI,EAAE,eAAe,CAAC,KAAK;4BAC3B,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,UAAU,GAAG,GAAG;AACtD,4BAAA,WAAW,EAAE,YAAY;AACzB,4BAAA,KAAK,EAAE,EAAE;AACT,4BAAA,UAAU,EAAE;AACV,gCAAA,UAAU,CAAC,QAAQ;AACnB,gCAAA,UAAU,CAAC,SAAS,CAClB,yBAAyB,CAAC,mBAAmB,CAC9C;AACF,6BAAA;AACD,4BAAA,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,UAAU;4BAC/D,oBAAoB,EAClB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;4BAClD,eAAe,EACb,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;AAC3C,kCAAE,kBAAkB;4BACxB,mBAAmB,EACjB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;4BACxD,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU;4BAC/D,iBAAiB,EACf,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU;AAC/D,yBAAA;AACD,wBAAA;4BACE,IAAI,EAAE,eAAe,CAAC,SAAS;4BAC/B,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,cAAc,GAAG,GAAG;AAC1D,4BAAA,WAAW,EAAE,gBAAgB;AAC7B,4BAAA,KAAK,EAAE,EAAE;AACT,4BAAA,UAAU,EAAE;AACV,gCAAA,UAAU,CAAC,QAAQ;AACnB,gCAAA,UAAU,CAAC,SAAS,CAClB,yBAAyB,CAAC,uBAAuB,CAClD;AACF,6BAAA;AACD,4BAAA,cAAc,EACZ,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,cAAc;4BACrD,oBAAoB,EAClB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;4BAClD,eAAe,EACb,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;AAC3C,kCAAE,sBAAsB;4BAC5B,YAAY,EAAE,yBAAyB,CAAC,uBAAuB;4BAC/D,SAAS,EACP,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc;AAC1D,4BAAA,iBAAiB,EACf,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,iBAAiB;AAC9C,kCAAE,cAAc;AACpB,4BAAA,aAAa,EAAE,IAAI;AACnB,4BAAA,QAAQ,EAAE,IAAI;AACf,yBAAA;AACD,wBAAA;4BACE,IAAI,EAAE,eAAe,CAAC,YAAY;4BAClC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,UAAU,GAAG,GAAG;AACtD,4BAAA,WAAW,EAAE,iBAAiB;AAC9B,4BAAA,KAAK,EAAE,EAAE;AACT,4BAAA,WAAW,EAAE,EAAE;AACf,4BAAA,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,UAAU;4BAC/D,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;4BACxD,oBAAoB,EAClB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;4BAClD,wBAAwB,EACtB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY;AACtD,4BAAA,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,UAAU;AAC1D,4BAAA,iBAAiB,EACf,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,UAAU;AAClD,yBAAA;AACD,wBAAA;4BACE,IAAI,EAAE,eAAe,CAAC,KAAK;4BAC3B,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,WAAW,GAAG,GAAG;AACvD,4BAAA,WAAW,EAAE,aAAa;AAC1B,4BAAA,KAAK,EAAE,EAAE;AACT,4BAAA,UAAU,EAAE;AACV,gCAAA,UAAU,CAAC,QAAQ;AACnB,gCAAA,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,GAAG,CAAC;AAClD,6BAAA;AACD,4BAAA,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,WAAW;4BAChE,oBAAoB,EAClB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;4BAClD,mBAAmB,EACjB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW;4BAC9D,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW;4BAChE,iBAAiB,EACf,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW;AAChE,yBAAA;AACD,wBAAA;4BACE,IAAI,EAAE,eAAe,CAAC,QAAQ;4BAC9B,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,YAAY,GAAG,GAAG;AACxD,4BAAA,WAAW,EAAE,UAAU;4BACvB,eAAe,EAAE,IAAI,CAAC,eAAe;AACrC,4BAAA,oBAAoB,EAAE,CAAC;4BACvB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY;4BACjE,iBAAiB,EACf,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY;AAChE,4BAAA,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY;4BACjE,oBAAoB,EAClB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;AAClD,4BAAA,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;AAClC,yBAAA;AACD,wBAAA;4BACE,IAAI,EAAE,eAAe,CAAC,KAAK;4BAC3B,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,SAAS,GAAG,GAAG;AACrD,4BAAA,WAAW,EAAE,cAAc;AAC3B,4BAAA,KAAK,EAAE,EAAE;AACT,4BAAA,UAAU,EAAE;AACV,gCAAA,UAAU,CAAC,QAAQ;AACnB,gCAAA,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,GAAG,CAAC;AAClD,6BAAA;AACD,4BAAA,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,SAAS;4BAC9D,oBAAoB,EAClB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;4BAClD,mBAAmB,EACjB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY;4BAC/D,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;4BAC9D,iBAAiB,EACf,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,SAAS;AAC9D,yBAAA;AACD,wBAAA;4BACE,IAAI,EAAE,eAAe,CAAC,KAAK;4BAC3B,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG;AACnD,4BAAA,WAAW,EAAE,SAAS;AACtB,4BAAA,KAAK,EAAE,EAAE;4BACT,YAAY,EAAE,IAAI,CAAC,cAAc;AACjC,4BAAA,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;4BACjC,oBAAoB,EAClB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;4BAClD,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO;4BAC5D,iBAAiB,EACf,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO;AAC5D,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;SACF,CAAC;KACH;AAED;;;;AAIG;AACH,IAAA,wBAAwB,CAAC,IAAiB,EAAA;AACxC,QAAA,IAAI,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,KAAK,EAAE;AACvC,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CACpD,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CACtB,CAAC;YACF,IAAI,IAAI,CAAC,IAAI;AAAE,gBAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,SAAA;KACF;AAED;;;;;AAKG;;AAEH,IAAA,sBAAsB,CAAC,QAAa,EAAA;AAClC,QAAA,MAAM,OAAO,GAA+B;AAC1C,YAAA,OAAO,EAAE;gBACP,QAAQ,EAAE,QAAQ,EAAE,QAAQ;gBAC5B,KAAK,EAAE,QAAQ,EAAE,KAAK;gBACtB,UAAU,EAAE,QAAQ,EAAE,UAAU;gBAChC,cAAc,EAAE,QAAQ,EAAE,cAAc;gBACxC,eAAe,EAAE,QAAQ,EAAE,eAAe;gBAC1C,OAAO,EAAE,QAAQ,EAAE,OAAO;gBAC1B,YAAY,EAAE,QAAQ,EAAE,YAAY;gBACpC,WAAW,EAAE,QAAQ,EAAE,WAAW;AAClC,gBAAA,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,EAAY;gBACjD,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAClE,aAAA;SACF,CAAC;AACF,QAAA,OAAO,OAAO,CAAC;KAChB;AAED;;;;AAIG;AACH,IAAA,2BAA2B,CAAC,IAAiB,EAAA;AAC3C,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAC/D,UAAU,CACE,CAAC;QACf,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,MAAsB,EAAE,KAAa,KAAI;YACtE,IAAI,MAAM,EAAE,QAAQ,EAAE;gBACpB,iBAAiB,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AACxC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AACD;;;;AAIG;AACH,IAAA,wBAAwB,CAAC,IAAiB,EAAA;AACxC,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;KACzC;AACD;;;AAGG;IACH,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KACxB;AACD;;;AAGG;AACH,IAAA,gBAAgB,CAAC,IAAqB,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;AACD;;;AAGG;AACH,IAAA,yBAAyB,CAAC,IAAqB,EAAA;AAC7C,QAAA,IAAI,CAAC,iBAAiB;aACnB,yBAAyB,CAAC,IAAI,CAAC;AAC/B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,QAAgC,KAAI;AACzC,gBAAA,IAAI,CAAC,sBAAsB,GAAG,QAAQ,EAAE,IAAI,CAAC;gBAC7C,IAAI,IAAI,CAAC,sBAAsB;AAAE,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aAC5D;;AAED,YAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACpB,gBAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAC7B,KAAK,EACL,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAC/B,CAAC;aACH;AACF,SAAA,CAAC,CAAC;KACN;AACD;;;AAGG;AACH,IAAA,cAAc,CAAC,IAAqB,EAAA;AAClC,QAAA,IAAI,CAAC,iBAAiB;AACnB,aAAA,cAAc,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC;AACjD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC;;AAET,YAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACtB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACjD,gBAAA,IAAI,CAAC,gBAAgB;AAClB,qBAAA,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACtC,qBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,qBAAA,SAAS,CAAC;AACT,oBAAA,IAAI,EAAE,CAAC,QAA8B,KAAI;wBACvC,IAAI,QAAQ,CAAC,MAAM,EAAE;4BACnB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CACtC,IAAI,CAAC,mBAAmB,CACzB,CAAC;AACF,4BAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxC,yBAAA;qBACF;;AAED,oBAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACpB,wBAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAC7B,KAAK,EACL,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAC/B,CAAC;qBACH;AACF,iBAAA,CAAC,CAAC;aACN;;AAED,YAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACpB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAClD,gBAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAC7B,KAAK,EACL,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAC/B,CAAC;aACH;AACF,SAAA,CAAC,CAAC;KACN;AACD;;;AAGG;AACH,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;AACD;;;AAGG;AACH,IAAA,qBAAqB,CAAC,WAAwB,EAAA;AAC5C,QAAA,IAAI,CAAC,qBAAqB,GAAG,WAAW,CAAC;KAC1C;AACD;;;AAGG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;KAC7B;+GA/cU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,mOAWhC,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3DjC,yyBAkBA,EDyBY,MAAA,EAAA,CAAA,kkVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mIAAE,oBAAoB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,kCAAA,EAAA,4BAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAKjC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAR5C,SAAS;+BACE,kCAAkC,EAAA,UAAA,EAChC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAA,aAAA,EAG9B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,yyBAAA,EAAA,MAAA,EAAA,CAAA,kkVAAA,CAAA,EAAA,CAAA;2KAcrC,oBAAoB,EAAA,CAAA;sBADnB,SAAS;uBAAC,oBAAoB,CAAA;gBAErB,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;AE9DT;MAWa,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,ECXxC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EDOY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8BAAE,eAAe,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAI5B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,cAC1B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;;AEP1C;IACY,QAGX;AAHD,CAAA,UAAY,OAAO,EAAA;AACf,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,OAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAC7B,CAAC,EAHW,OAAO,KAAP,OAAO,GAGlB,EAAA,CAAA,CAAA;;MCGY,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAxB,wBAAwB,EAAA,CAAA,CAAA,EAAA;gHAAxB,wBAAwB,EAAA,CAAA,CAAA,EAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EACb;AACD,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAA;;;ACND;;AAEG;;ACFH;;AAEG;;;;"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@ieeesa-npm/tenants" />
5
+ export * from './public-api';
@@ -0,0 +1,8 @@
1
+ export declare const TenantsValidationPatterns: {
2
+ appTitleMaxLength: number;
3
+ appIdMaxLength: number;
4
+ appHeadingMaxLength: number;
5
+ appDescriptionMaxLength: number;
6
+ url: RegExp;
7
+ alphaNumeric: RegExp;
8
+ };
@@ -0,0 +1,113 @@
1
+ import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
+ import { AlignType, CheckboxOption, FormGrid, RadioOption, FormModel, AllowedFileTypes, FileUploadService, DynamicFormComponent } from '@ieeesa-npm/presentation';
3
+ import { Subject } from 'rxjs';
4
+ import { FormGroup } from '@angular/forms';
5
+ import { TenantApplicationsService } from '../../services/tenant-applications.service';
6
+ import { CreateTenantRequestPayload } from '../../models/tenant.model';
7
+ import { SharedService } from '@ieeesa-npm/shared';
8
+ import * as i0 from "@angular/core";
9
+ export declare class CreateTenantApplicationComponent implements OnInit, OnDestroy {
10
+ fileUploadService: FileUploadService;
11
+ private tenantAppService;
12
+ private sharedService;
13
+ destroy$: Subject<boolean>;
14
+ constants: any;
15
+ createTenantTexts: any;
16
+ leftButtonLabel: any;
17
+ rightButtonLabel: any;
18
+ colWidth: FormGrid;
19
+ createTenantFormGroup: FormModel;
20
+ actionButtonAlign: AlignType;
21
+ createTenantFormGroupRef: FormGroup;
22
+ dynamicFormComponent: DynamicFormComponent;
23
+ submitFormResponse: EventEmitter<any>;
24
+ formCancel: EventEmitter<any>;
25
+ featuresOptions: CheckboxOption[];
26
+ appTypeOptions: RadioOption[];
27
+ createTenantPayload: CreateTenantRequestPayload;
28
+ fileUploadPresignedUrl: string;
29
+ fileDownloadPresignedUrl: string;
30
+ file: File | FileList;
31
+ allowedFileTypes: AllowedFileTypes[];
32
+ selectedColor: string;
33
+ selectedAppTypeOption: RadioOption;
34
+ constructor(fileUploadService: FileUploadService, tenantAppService: TenantApplicationsService, sharedService: SharedService);
35
+ ngOnInit(): void;
36
+ /**
37
+ * Gets the list of features and updates the form control.
38
+ * @memberof CreateTenantApplicationComponent
39
+ */
40
+ getFeatures(): void;
41
+ /**
42
+ * Gets the application/tenant types and updates the form control.
43
+ * @memberof CreateTenantApplicationComponent
44
+ */
45
+ getApplicationTypes(): void;
46
+ /**
47
+ * Initialize the create tenant form group array.
48
+ * @memberof CreateTenantApplicationComponent
49
+ */
50
+ initializeCreateTenantFormGroup(): void;
51
+ /**
52
+ * Creates tenant on form submission.
53
+ * @param {FormGroup[]} form
54
+ * @memberof CreateTenantApplicationComponent
55
+ */
56
+ onCreateTenantFormSubmit(form: FormGroup[]): void;
57
+ /**
58
+ * Constructs create tenant payload from the form data and returns.
59
+ * @param {*} formData
60
+ * @return {CreateTenantRequestPayload}
61
+ * @memberof CreateTenantApplicationComponent
62
+ */
63
+ getCreateTenantPayload(formData: any): CreateTenantRequestPayload;
64
+ /**
65
+ * Gets create tenant form group reference and disables default features.
66
+ * @param {FormGroup[]} form
67
+ * @memberof CreateTenantApplicationComponent
68
+ */
69
+ getCreateTenantFormGroupRef(form: FormGroup[]): void;
70
+ /**
71
+ * Updates createTenantFormGroupRef on add tenant form change event.
72
+ * @param {FormGroup[]} form
73
+ * @memberof CreateTenantApplicationComponent
74
+ */
75
+ onCreateTenantFormChange(form: FormGroup[]): void;
76
+ /**
77
+ * Emits form cancel event.
78
+ * @memberof CreateTenantApplicationComponent
79
+ */
80
+ onFormCancel(): void;
81
+ /**
82
+ * Gets the selected file when the file is browsed and on formFileUpload event is triggered.
83
+ * @param {File | FileList} file
84
+ */
85
+ onFormFileUpload(file: File | FileList): void;
86
+ /**
87
+ * Gets pre-signed URL to upload the selected file to AWS S3 bucket.
88
+ * @param {File | FileList} file
89
+ */
90
+ getFileUploadPresignedUrl(file: File | FileList): void;
91
+ /**
92
+ * Uploads the file to AWS S3 bucket and submit the form data to API to create new tenant.
93
+ * @param {File | FileList} file
94
+ */
95
+ uploadFileToS3(file: File | FileList): void;
96
+ /**
97
+ * Triggers when the color picker values has been changed.
98
+ * @param {string} color
99
+ */
100
+ onColorPickerChange(color: string): void;
101
+ /**
102
+ * Triggers when the radio option has been changed.
103
+ * @param {RadioOption} radioOption
104
+ */
105
+ onRadioOptionSelected(radioOption: RadioOption): void;
106
+ /**
107
+ * Implementation of ngOnDestroy lifecycle hook method to unsubscribe the open observable subscriptions.
108
+ * @memberof CreateTenantApplicationComponent
109
+ */
110
+ ngOnDestroy(): void;
111
+ static ɵfac: i0.ɵɵFactoryDeclaration<CreateTenantApplicationComponent, never>;
112
+ static ɵcmp: i0.ɵɵComponentDeclaration<CreateTenantApplicationComponent, "ieeesa-create-tenant-application", never, {}, { "submitFormResponse": "submitFormResponse"; "formCancel": "formCancel"; }, never, never, true, never>;
113
+ }
@@ -0,0 +1,14 @@
1
+ import { AppType } from "./app-type.model";
2
+ export interface AppTypeConfig {
3
+ configFieldId: string;
4
+ configFieldValue: {
5
+ type: AppType;
6
+ };
7
+ }
8
+ export interface GetAppTypesResponse {
9
+ status: boolean;
10
+ message: string;
11
+ body: AppTypeConfig[] | null | {
12
+ errorCodes: string[];
13
+ };
14
+ }
@@ -0,0 +1,4 @@
1
+ export declare enum AppType {
2
+ GENERIC = "Generic",
3
+ STANDALONE = "Standalone"
4
+ }
@@ -0,0 +1,15 @@
1
+ export interface Features {
2
+ featureId: string;
3
+ featureName: string;
4
+ isDefault: boolean;
5
+ }
6
+ export interface FeatureId {
7
+ featureId: string;
8
+ }
9
+ export interface GetFeaturesResponse {
10
+ status: boolean;
11
+ message: string;
12
+ body: Features[] | null | {
13
+ errorCodes: string[];
14
+ };
15
+ }
@@ -0,0 +1,4 @@
1
+ export declare enum FormStatus {
2
+ VALID = "VALID",
3
+ INVALID = "INVALID"
4
+ }
@@ -0,0 +1,8 @@
1
+ export declare enum PermissionType {
2
+ VIEW_TENANTS = "VIEW_TENANTS",
3
+ CREATE_TENANT = "CREATE_TENANT"
4
+ }
5
+ export declare enum TenantStatus {
6
+ ACTIVE = "Active",
7
+ INACTIVE = "Inactive"
8
+ }
@@ -0,0 +1,20 @@
1
+ export declare enum ViewTenantsColumnSchemaDef {
2
+ APP_ID = "appId",
3
+ APP_TITLE = "appTitle",
4
+ APP_DESCRIPTION = "appDescription",
5
+ APP_HEADING = "appHeading",
6
+ FEATURES = "features",
7
+ STATUS = "status"
8
+ }
9
+ export declare enum SortOrderBy {
10
+ DESC = "DESC",
11
+ ASC = "ASC"
12
+ }
13
+ export interface GetTenantsPayload {
14
+ payload: {
15
+ offset: number;
16
+ pageSize: number;
17
+ sortedBy: string;
18
+ sortedOrderBy: string;
19
+ };
20
+ }
@@ -0,0 +1,23 @@
1
+ import { FeatureId } from './features.model';
2
+ export interface TenantBasicInfo {
3
+ appId: string;
4
+ appTitle: string;
5
+ appLogo: string;
6
+ appHeading: string;
7
+ appDescription: string;
8
+ backgroundColor: string;
9
+ appHelpLink: string;
10
+ appType: string;
11
+ appDomainUrl: string;
12
+ features: FeatureId[];
13
+ }
14
+ export interface CreateTenantRequestPayload {
15
+ payload: TenantBasicInfo;
16
+ }
17
+ export interface CreateTenantResponse {
18
+ status: boolean;
19
+ message: string;
20
+ body?: string | null | {
21
+ errorCodes: string[];
22
+ };
23
+ }
@@ -0,0 +1,9 @@
1
+ export interface TenantsPermissions {
2
+ permissionType: string;
3
+ permissionName: string;
4
+ permissionId: string;
5
+ }
6
+ export interface UserPermission {
7
+ permissionName: string;
8
+ permissionId: string;
9
+ }
@@ -0,0 +1,23 @@
1
+ export interface FeatureInfo {
2
+ featureId: string;
3
+ featureName: string;
4
+ isDefault: boolean;
5
+ }
6
+ export interface TenantInfo {
7
+ appId: string;
8
+ appTitle: string;
9
+ appDescription: string;
10
+ appHeading: string;
11
+ features: FeatureInfo[] | null;
12
+ status: boolean | null;
13
+ }
14
+ export interface GetTenantsResponse {
15
+ status: boolean;
16
+ message: string;
17
+ body?: {
18
+ totalRecords: number;
19
+ appDetails: TenantInfo[] | null | {
20
+ errorCodes: string[];
21
+ };
22
+ };
23
+ }
@@ -0,0 +1,149 @@
1
+ import { HttpService } from '@ieeesa-npm/utility';
2
+ import { Observable } from 'rxjs';
3
+ import { GetTenantsResponse, TenantInfo } from '../models/tenants.model';
4
+ import { GetTenantsPayload } from '../models/table-column-schema-view-tenant-list.model';
5
+ import { TenantsPermissions, UserPermission } from '../models/tenants-permission.model';
6
+ import { TenantPermissionsService } from './tenant-permissions.service';
7
+ import { PermissionType } from '../models/permission-type.model';
8
+ import { TenantPermissionsMapService } from './tenant-permissions-map.service';
9
+ import { CreateTenantRequestPayload, CreateTenantResponse, TenantBasicInfo } from '../models/tenant.model';
10
+ import { CheckboxOption, RadioOption } from '@ieeesa-npm/presentation';
11
+ import { FeatureId, Features, GetFeaturesResponse } from '../models/features.model';
12
+ import { AppTypeConfig, GetAppTypesResponse } from '../models/app-type-config.model';
13
+ import * as i0 from "@angular/core";
14
+ export declare class TenantApplicationsService {
15
+ private httpService;
16
+ private tenantPermissionsService;
17
+ private tenantPermissionsMapService;
18
+ tenantsText: {
19
+ "2049": string;
20
+ };
21
+ apiBaseUrl: string;
22
+ userPermission: UserPermission[];
23
+ selectedTenantInfo: TenantInfo | undefined;
24
+ userTenantsPermissions: TenantsPermissions[];
25
+ tenantsInfo: TenantInfo;
26
+ createTenantsText: {
27
+ "2003": string;
28
+ "2026": string;
29
+ "2028": string;
30
+ "2029": string;
31
+ "2030": string;
32
+ "2031": string;
33
+ "2032": string;
34
+ "2033": string;
35
+ "2034": string;
36
+ "2035": string;
37
+ "2036": string;
38
+ "2037": string;
39
+ "2038": string;
40
+ "2039": string;
41
+ "2040": string;
42
+ "2041": string;
43
+ "2042": string;
44
+ "2043": string;
45
+ "2044": string;
46
+ "2045": string;
47
+ "2046": string;
48
+ "2047": string;
49
+ "2048": string;
50
+ "2049": string;
51
+ };
52
+ tenantBasicInfo: TenantBasicInfo;
53
+ radioOptions: RadioOption[];
54
+ checkBoxOptions: CheckboxOption[];
55
+ constructor(httpService: HttpService, tenantPermissionsService: TenantPermissionsService, tenantPermissionsMapService: TenantPermissionsMapService);
56
+ setAppConfig(apiBaseUrl: string, userPermission: UserPermission[]): void;
57
+ /**
58
+ * Sets the user tenants permissions
59
+ * @param {TenantsPermissions[]} TenantsPermissions
60
+ * @memberof TenantApplicationsService
61
+ */
62
+ setUserTenantsPermissions(userTenantsPermissions: TenantsPermissions[]): void;
63
+ /**
64
+ * Returns the user tenants permissions
65
+ * @return {TenantsPermissions[]}
66
+ * @memberof TenantApplicationsService
67
+ */
68
+ getUserTenantsPermissions(): TenantsPermissions[];
69
+ /**
70
+ * Sets the user tenants information
71
+ * @param {TenantInfo} tenantInfo
72
+ * @memberof TenantApplicationsService
73
+ */
74
+ setSelectedTenantInformation(tenantInfo: TenantInfo): void;
75
+ /**
76
+ * Returns the tenants information
77
+ * @return {TenantInfo}
78
+ * @memberof TenantApplicationsService
79
+ */
80
+ getSelectedTenantInformation(): TenantInfo | undefined;
81
+ /**
82
+ * Filter permissions
83
+ * @param usersPermissions
84
+ * @returns @memberof TenantApplicationsService
85
+ */
86
+ filterPermission(usersPermissions: UserPermission[]): TenantsPermissions[];
87
+ /**
88
+ * Validating access for tenants
89
+ * @param permissionType Permission Type to validate permission
90
+ * @param mappedUserPermissions Permission which are mapped with tenants
91
+ * @returns true if permission is granted
92
+ */
93
+ validateAccess(permissionType: PermissionType, permissions: TenantsPermissions[]): boolean;
94
+ /**
95
+ * Gets the tenants.
96
+ * @param {GetTenantsPayload} payload
97
+ * @return {Observable<GetTenantsResponse>}
98
+ * @memberof TenantApplicationsService
99
+ */
100
+ getTenantsList(payload: GetTenantsPayload): Observable<GetTenantsResponse>;
101
+ /**
102
+ * Gets list of features from server using HttpService.
103
+ * @return {Observable<GetFeaturesResponse>}
104
+ * @memberof TenantApplicationsService
105
+ */
106
+ getFeatures(): Observable<GetFeaturesResponse>;
107
+ /**
108
+ * Gets list of application types from server using HttpService.
109
+ * @return {Observable<GetAppTypesResponse>}
110
+ * @memberof TenantApplicationsService
111
+ */
112
+ getApplicationTypes(): Observable<GetAppTypesResponse>;
113
+ /**
114
+ * Posts tenant application form data to server using HttpService for creating new tenant application.
115
+ * @param {CreateTenantPayload} createTenantPayload
116
+ * @return {Observable<CreateTenantResponse>}
117
+ * @memberof TenantApplicationsService
118
+ */
119
+ createTenant(createTenantPayload: CreateTenantRequestPayload): Observable<CreateTenantResponse>;
120
+ /**
121
+ * Constructs the checkbox options from features list from server.
122
+ * @param {FeaturesList[]} features
123
+ * @returns {CheckboxOption[]}
124
+ */
125
+ getFeatureOptions(features: Features[]): CheckboxOption[];
126
+ /**
127
+ * Constructs the radio options from application types from server.
128
+ * @param {AppTypeConfig[]} appTypeOptions
129
+ * @returns {RadioOption[]}
130
+ */
131
+ getApplicationTypeOptions(appTypeOptions: AppTypeConfig[]): RadioOption[];
132
+ /**
133
+ * Constructs the selected features id's.
134
+ * @param {boolean[]} featureSelectionValues
135
+ * @returns {FeatureId[]}
136
+ */
137
+ getFeatureIds(featureSelectionValues: boolean[]): FeatureId[];
138
+ /**
139
+ * Sets the tenant basic information.
140
+ * @param {CreateTenantRequestPayload} createTenantPayload
141
+ */
142
+ setTenantBasicInfo(createTenantPayload: CreateTenantRequestPayload): void;
143
+ /**
144
+ * Returns the tenant basic information.
145
+ */
146
+ get getTenantBasicInfo(): TenantBasicInfo;
147
+ static ɵfac: i0.ɵɵFactoryDeclaration<TenantApplicationsService, never>;
148
+ static ɵprov: i0.ɵɵInjectableDeclaration<TenantApplicationsService>;
149
+ }
@@ -0,0 +1,13 @@
1
+ import { TenantsPermissions } from '../models/tenants-permission.model';
2
+ import * as i0 from "@angular/core";
3
+ export declare class TenantPermissionsMapService {
4
+ globalTenantsPermissions: TenantsPermissions[];
5
+ /**
6
+ * Returns global permissions mapping for tenants.
7
+ * @return {TenantsPermissions[]}
8
+ * @memberof TenantsPermissionsMapService
9
+ */
10
+ getGlobalTenantsPermissions(): TenantsPermissions[];
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<TenantPermissionsMapService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<TenantPermissionsMapService>;
13
+ }
@@ -0,0 +1,22 @@
1
+ import { PermissionType } from '../models/permission-type.model';
2
+ import { UserPermission, TenantsPermissions } from '../models/tenants-permission.model';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TenantPermissionsService {
5
+ /**
6
+ * Returns access provision for the passed action/feature based on whether the signed in user has appropriate permission.
7
+ * @param {PermissionType} permission
8
+ * @param {TenantsPermission[]} tenantsPermissions
9
+ * @return {boolean}
10
+ * @memberof TenantPermissionsService
11
+ */
12
+ validateAccessPermission(permission: PermissionType, userTenantsPermissions: TenantsPermissions[]): boolean;
13
+ /**
14
+ * Filters signed in user tenants permissions from entire tenants permissions.
15
+ * @param { UserPermission[] }
16
+ * @return {TenantsPermissions[]}
17
+ * @memberof TenantPermissionsService
18
+ */
19
+ filterTenantsPermissions(userPermissions: UserPermission[], tenantsPermissions: TenantsPermissions[]): TenantsPermissions[];
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<TenantPermissionsService, never>;
21
+ static ɵprov: i0.ɵɵInjectableDeclaration<TenantPermissionsService>;
22
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TenantApplicationsComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<TenantApplicationsComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<TenantApplicationsComponent, "ieeesa-tenant-applications", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TenantApplicationsModule {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<TenantApplicationsModule, never>;
4
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TenantApplicationsModule, never, never, never>;
5
+ static ɵinj: i0.ɵɵInjectorDeclaration<TenantApplicationsModule>;
6
+ }
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@ieeesa-npm/tenants",
3
+ "version": "0.0.1",
4
+ "peerDependencies": {
5
+ "@angular/common": "^16.1.0",
6
+ "@angular/core": "^16.1.0"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^2.3.0"
10
+ },
11
+ "sideEffects": false,
12
+ "module": "fesm2022/ieeesa-npm-tenants.mjs",
13
+ "typings": "index.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./index.d.ts",
20
+ "esm2022": "./esm2022/ieeesa-npm-tenants.mjs",
21
+ "esm": "./esm2022/ieeesa-npm-tenants.mjs",
22
+ "default": "./fesm2022/ieeesa-npm-tenants.mjs"
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,10 @@
1
+ export * from './lib/components/create-tenant-application/create-tenant-application.component';
2
+ export * from './lib/tenant-applications.component';
3
+ export * from './lib/models/app-type-config.model';
4
+ export * from './lib/models/app-type.model';
5
+ export * from './lib/models/tenant.model';
6
+ export * from './lib/models/features.model';
7
+ export * from './lib/models/form-status.model';
8
+ export * from './lib/services/tenant-applications.service';
9
+ export * from './lib/assets/tenant-validations';
10
+ export * from './lib/tenant-applications.module';