verben-authentication-ui 1.0.19 → 1.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/lib/components/role-control/role-control.component.mjs +30 -26
- package/esm2022/src/lib/components/sign-in/sign-in.component.mjs +15 -7
- package/fesm2022/verben-authentication-ui-src-lib-components-role-control.mjs +29 -25
- package/fesm2022/verben-authentication-ui-src-lib-components-role-control.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-sign-in.mjs +14 -6
- package/fesm2022/verben-authentication-ui-src-lib-components-sign-in.mjs.map +1 -1
- package/package.json +7 -7
- package/src/lib/components/role-control/role-control.component.d.ts +3 -2
- package/src/lib/components/sign-in/sign-in.component.d.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verben-authentication-ui-src-lib-components-role-control.mjs","sources":["../../../projects/verben-authentication-ui/src/lib/components/role-control/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/UIs.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/UIActions.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/ChildrenType.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.service.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.component.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.component.html","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.module.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/verben-authentication-ui-src-lib-components-role-control.ts"],"sourcesContent":["export const baseStyle: any = {\n width: '100%',\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n // tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n // stickyTop: true,\n // zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '30px',\n },\n footer: {\n // stickyBottom: true,\n // zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n // stickyRight: true,\n // zIndex: 1,\n },\n};\n","export enum UIs {\n ProductDistribution = 'ProductDistribution',\n Terminals = 'Terminals',\n Meters = 'Meters',\n ProductInbound = 'ProductInbound',\n TerminalDocumentation = 'TerminalDocumentation',\n Laboratories = 'Laboratories',\n Surveyors = 'Surveyors',\n Products = 'Products',\n Stocks = 'Stocks',\n Tanks = 'Tanks',\n Customers = 'Customers',\n ProductAllocation = 'ProductAllocation',\n ReleaseManagement = 'ReleaseManagement',\n ProductPricing = 'ProductPricing',\n Purchases = 'Purchases',\n Agents = 'Agents',\n Banks = 'Banks',\n Vendors = 'Vendors',\n Vessels = 'Vessels',\n ExpenseList = 'ExpenseList',\n ProcurementDocumentation = 'ProcurementDocumentation',\n Journal = 'Journal',\n JournalTemplate = 'JournalTemplate',\n RecurringJournal = 'RecurringJournal',\n InterCompanyJournal = 'InterCompanyJournal',\n InterCompanyJournalTemplate = 'InterCompanyJournalTemplate',\n UserManagement = 'UserManagement',\n AccessRequest = 'AccessRequest',\n RolesAndPermissions = 'RolesAndPermissions',\n AuditTrail = 'AuditTrail',\n LogViewer = 'LogViewer',\n MessageHistory = 'MessageHistory',\n MessageConfig = 'MessageConfig',\n MessageList = 'MessageList',\n Config = 'Config',\n Reports = 'Reports',\n}\n","export enum UIActions {\n Save = 'Save',\n Edit = 'Edit',\n Delete = 'Delete',\n}\n","export enum ChildrenType {\n Permission = 'Permission',\n Action = 'Action',\n}\n","import { Injectable } from '@angular/core';\nimport { ColumnDefinition } from 'verben-ng-ui';\nimport { Role } from 'verben-authentication-ui/src/lib/models';\nimport { AuthorizationService } from 'verben-authentication-ui/src/lib/services';\nimport { MappedRole } from './MappedRole';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RoleControlService {\n constructor() {}\n\n get roleColumns(): ColumnDefinition<MappedRole>[] {\n return [\n {\n id: 'select',\n header: '',\n canExport: false,\n },\n {\n id: 'createdAt',\n header: 'CREATED',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'updatedAt',\n header: 'UPDATED',\n accessorKey: 'UpdatedAt',\n },\n {\n id: 'name',\n header: 'NAME',\n accessorFn: (row: MappedRole) => {\n return row;\n },\n importKey: 'Name',\n },\n {\n id: 'permissions',\n header: 'PERMISSIONS',\n accessorFn: (row: MappedRole) => {\n const sum = row.RoleContexts.filter((x) => x.Selected == true).length;\n return `${sum} of ${row.RoleContexts.length} Permissions`;\n },\n },\n {\n id: 'actions',\n header: 'ACTIONS',\n accessorFn: (row: MappedRole) => {\n return row;\n },\n canExport: false,\n },\n ];\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n QueryList,\n ViewChild,\n viewChildren,\n ViewChildren,\n} from '@angular/core';\nimport { RoleControlService } from './role-control.service';\nimport {\n CardData,\n CardDataViewComponent,\n ColumnDefinition,\n ColumnDirective,\n DataFilterType,\n DataTableComponent,\n DataViewComponent,\n IDataFilter,\n VerbenPopUpComponent,\n} from 'verben-ng-ui';\nimport { Role } from 'verben-authentication-ui/src/lib/models';\nimport { baseStyle } from './base-table-style';\nimport { ObjectState } from 'verben-authentication-ui/src/lib/models';\nimport { RoleContext } from 'verben-authentication-ui/src/lib/models';\nimport { UIs } from './UIs';\nimport { RoleAction } from 'verben-authentication-ui/src/lib/models';\nimport { UIActions } from './UIActions';\nimport { MappedRole } from './MappedRole';\nimport {\n AuthorizationConfig,\n AuthorizationService,\n} from 'verben-authentication-ui/src/lib/services';\nimport { MappedRoleContext } from './MappedRoleContext';\nimport { MappedRoleAction } from './MappedRoleAction';\nimport { ChildrenType } from './ChildrenType';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { UtilService } from 'verben-authentication-ui/src/lib/services';\nimport { HttpWebRequestService } from 'verben-authentication-ui/src/lib/services';\nimport { ErrorResponse } from 'verben-authentication-ui/src/lib/models';\nimport { PagedResult } from 'verben-authentication-ui/src/lib/models';\nimport { SearchPropertyValue } from 'verben-authentication-ui/src/lib/models';\nimport { SearchOperator } from 'verben-authentication-ui/src/lib/models';\nimport { SearchPropertySign } from 'verben-authentication-ui/src/lib/models';\nimport { EnvironmentService } from 'verben-authentication-ui/src/lib/services';\nimport { ApplicationRoleContext } from 'verben-authentication-ui/src/lib/models';\nimport { ApplicationRoleAction } from 'verben-authentication-ui/src/lib/models';\nimport { SearchPropertyValueType } from 'verben-authentication-ui/src/lib/models';\nimport { debounceTime, Subject } from 'rxjs';\nimport { SortDirection } from 'verben-authentication-ui/src/lib/models';\nimport { PermissionConfig } from 'verben-authentication-ui/src/lib/models';\nimport { ImportService } from 'verben-authentication-ui/src/lib/services';\n\nenum DateFilterTypes {\n Before = SearchPropertySign.LT,\n On = SearchPropertySign.EQ,\n After = SearchPropertySign.GT,\n}\n\n@Component({\n selector: 'lib-role-control',\n templateUrl: './role-control.component.html',\n styleUrl: './role-control.component.css',\n})\nexport class RoleControlComponent implements OnInit {\n visibleColumnDef: ColumnDefinition<MappedRole>[] = [];\n styles = baseStyle;\n data: MappedRole[] = [];\n cardData: CardData[] = [];\n //dataCopy: CardData[] = [];\n\n currentData: CardData | null = null;\n currentExpandedCard: CardData | null = null;\n cardContext: CardData | null = null;\n cardContextHistory: CardData[] = [];\n cardContextHistoryData: CardData[][] = [];\n //dataCopyHistory: CardData[][] = [];\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n @ViewChildren('popup') popUps!: QueryList<VerbenPopUpComponent>;\n @ViewChild('dt') tableView!: DataTableComponent<MappedRole>;\n @Input() isGlobal: boolean = true;\n @Input() serviceName: string | null = null;\n @Input() application: string | null = null;\n @Input() pageSize: number = 10;\n @Input() searchDebounceTime: number = 500;\n @Input() permissionConfig: PermissionConfig | null = null;\n pageState: PagedResult<Role> | null = null;\n sourceData: AuthorizationConfig[] = [];\n isOpen: boolean = false;\n openDropdownId: string | null = null;\n currentFilters: IDataFilter[] = [];\n currentSorts: IDataFilter[] = [];\n searchTerm$ = new Subject<string>();\n\n visibleColumns: IDataFilter[] = [];\n columnTemplates = viewChildren<ColumnDirective>(ColumnDirective);\n\n filterArray: IDataFilter[] = [\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: 'UpdatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n\n sortOptions: IDataFilter[] = [\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: 'UpdatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n\n searchContext: string = '';\n searchContextHistory: string[] = [];\n isInputFocused: boolean = false;\n\n // private _searchItem: string = '';\n // get searchItem(): string {\n // return this._searchItem\n // }\n // set searchItem(value: string) {\n // this._searchItem = value;\n // this.searchTerm$.next(value);\n // }\n\n // form: FormGroup;\n childPermissionRef: ChildrenType = ChildrenType.Permission;\n\n roleContextsStore: ApplicationRoleContext[] = [];\n roleActionsStore: ApplicationRoleAction[] = [];\n private currentSearchTerm: string = '';\n\n constructor(\n private authService: AuthorizationService,\n private roleControlSvc: RoleControlService,\n private utilService: UtilService,\n private server: HttpWebRequestService,\n private cdr: ChangeDetectorRef,\n private fb: FormBuilder,\n private envSvc: EnvironmentService,\n private importService: ImportService<MappedRole>\n ) {\n this.visibleColumnDef = roleControlSvc.roleColumns;\n this.visibleColumns = roleControlSvc.roleColumns.map((col) => ({\n checked: true,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n // this.form = this.fb.group({\n // Name: new FormControl<string | null>(null, Validators.required),\n // });\n }\n\n async ngOnInit(): Promise<void> {\n const mockData = this.getMockRoles();\n const roles = await this.getAllRoles();\n const contextsRes = await this.getSavedContexts();\n if (this.isGlobal) {\n if (contextsRes) {\n this.roleContextsStore = contextsRes;\n this.roleActionsStore = contextsRes.flatMap((x) => x.RoleActions);\n const authConfig: AuthorizationConfig[] = contextsRes.map((x) => {\n return {\n Name: x.Name,\n Actions: x.RoleActions.map((y) => {\n return y.Name;\n }),\n };\n });\n this.sourceData = authConfig;\n }\n } else {\n this.sourceData = this.authService.authorizationConfig;\n }\n if (roles) {\n this.setUpMappedData(roles);\n this.setUpCardData();\n }\n this.searchTerm$\n .pipe(debounceTime(this.searchDebounceTime)) // Adjust debounce time here (in ms)\n .subscribe(async (searchTerm) => {\n this.currentSearchTerm = searchTerm;\n this.updateFiltersAndSorts(true);\n });\n }\n\n async getSavedContexts(): Promise<ApplicationRoleContext[] | undefined> {\n if (!this.isGlobal || !this.application) {\n return undefined;\n }\n var payload: SearchPropertyValue[] = [\n {\n PropertyName: 'Application',\n EntityValue: this.application,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n // {\n // PropertyName: 'APIKey',\n // EntityValue: this.envSvc.environment.APIKey,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // },\n ];\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Application/SearchApplicationRoleContexts/0/0`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n var result = (res as PagedResult<ApplicationRoleContext>).Result;\n return result;\n }\n }\n async getAllRoles(): Promise<Role[] | undefined> {\n // var payload: SearchPropertyValue[] = [\n // {\n // PropertyName: 'APIKey',\n // EntityValue: this.envSvc.environment.APIKey,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ\n // }\n // ]\n this.utilService.sendBI(true);\n const res = await this.server.get(`Role/GetRoles/0/${this.pageSize}`);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n this.pageState = res as PagedResult<Role>;\n var result = (res as PagedResult<Role>).Result;\n return result;\n }\n }\n\n async loadMore() {\n if (!this.pageState) {\n return;\n }\n this.utilService.sendBI(true);\n const res =\n this.currentFilters.length > 0 ||\n this.currentSorts.length > 0 ||\n this.currentSearchTerm.trim().length > 0\n ? await this.loadMoreFiltersAndSorts()\n : await this.server.get(\n `Role/GetRoles/${this.pageState.Skip}/${this.pageSize}`\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n this.pageState = res as PagedResult<Role>;\n var result = (res as PagedResult<Role>).Result;\n const data = this.setUpMappedDataExtra(result);\n this.data = this.data.concat(data);\n this.setUpCardDataExtra(data);\n }\n }\n\n getApplicationContextCode(name: string): string {\n const item = this.roleContextsStore.find((x) => x.Name == name);\n return item ? item.Code : '';\n }\n getApplicationActionCode(name: string): string {\n const item = this.roleActionsStore.find((x) => x.Name == name);\n return item ? item.Code : '';\n }\n\n findParent(cardData: CardData[], target: CardData): CardData | null {\n for (const item of cardData) {\n if (item.children.includes(target)) {\n return item; // Immediate parent found\n }\n const parent = this.findParent(item.children, target);\n if (parent) {\n return parent;\n }\n }\n return null; // Not found\n }\n\n isAllSelected(item: CardData): boolean {\n const parent =\n this.cardContextHistoryData.length > 0\n ? this.findParent(this.cardContextHistoryData[0], item)\n : this.findParent(this.cardData, item);\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Action &&\n (parent.data as MappedRoleContext).RoleActions.some((y) => !y.Selected)\n ) {\n return false;\n }\n\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Permission &&\n (parent.data as MappedRole).RoleContexts.some((y) => !y.Selected)\n ) {\n return false;\n }\n return true;\n }\n\n isCheckboxDisabled(item: CardData): boolean {\n const parent =\n this.cardContextHistoryData.length > 0\n ? this.findParent(this.cardContextHistoryData[0], item)\n : this.findParent(this.cardData, item);\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Action &&\n (parent.data.Selected == false ||\n (this.permissionConfig != null &&\n !this.permissionConfig.Actions['AddAction']))\n ) {\n return true;\n }\n\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Permission &&\n this.permissionConfig != null &&\n !this.permissionConfig.Actions['AddContext']\n ) {\n return true;\n }\n return false;\n }\n\n setUpMappedData(data: Role[]) {\n this.data = data.map((x) => {\n return {\n ...x,\n Id: x.Code,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = x.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? x.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: x.Code,\n Context: '',\n id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n Id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n ServiceName:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: x.Code,\n id: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n Id: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1 ? x.RoleContexts[existingId].ServiceName : '',\n APIKey:\n existingId > -1\n ? x.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(config.Name),\n };\n\n return context;\n }),\n };\n });\n }\n setUpMappedDataExtra(data: Role[]): MappedRole[] {\n return data.map((x) => {\n return {\n ...x,\n Id: x.Code,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = x.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? x.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: x.Code,\n Context: '',\n id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n Id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n ServiceName:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: x.Code,\n id: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n Id: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1 ? x.RoleContexts[existingId].ServiceName : '',\n APIKey:\n existingId > -1\n ? x.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(config.Name),\n };\n\n return context;\n }),\n };\n });\n }\n\n setUpCardData() {\n const cardData: CardData[] = this.data.map((x) => {\n return {\n selected: false,\n title: x.Name,\n data: x,\n body: [],\n children: x.RoleContexts.map((c) => {\n return {\n selected: false,\n title: this.getFormattedName(c.Name),\n data: c,\n body: [],\n children: c.RoleActions.map((a) => {\n return {\n selected: false,\n title: this.getFormattedName(a.Name),\n data: a,\n body: [],\n children: [],\n };\n }),\n };\n }),\n };\n });\n this.cardData = cardData;\n }\n setUpCardDataExtra(baseData: MappedRole[]) {\n const cardData: CardData[] = baseData.map((x) => {\n return {\n selected: false,\n title: x.Name,\n data: x,\n body: [],\n children: x.RoleContexts.map((c) => {\n return {\n selected: false,\n title: this.getFormattedName(c.Name),\n data: c,\n body: [],\n children: c.RoleActions.map((a) => {\n return {\n selected: false,\n title: this.getFormattedName(a.Name),\n data: a,\n body: [],\n children: [],\n };\n }),\n };\n }),\n };\n });\n this.cardData = this.cardData.concat(cardData);\n }\n\n getFormattedName(name: string): string {\n // Split the key on capital letters, handling \"And\" as lowercase\n const words = name\n .split(/(?=[A-Z])/)\n .map((word) => (word === 'And' ? 'and' : word));\n // Join the words with spaces\n return words.join(' ');\n }\n\n viewDetailsFromTable(data: MappedRole) {\n const cardData = this.cardData.find((x) => x.data == data);\n console.log({ Data: data });\n console.log({ CardData: this.cardData });\n if (cardData) {\n this.dataView.isTableView = false;\n this.viewDetails(cardData);\n }\n this.closePopUp();\n }\n\n viewDetails(context: CardData) {\n this.cardContextHistory.push(context);\n this.cardContextHistoryData.push(this.cardData);\n if (\n context.data.ChildrenType &&\n context.data.ChildrenType != this.childPermissionRef\n ) {\n this.searchContextHistory.push(this.searchContext);\n this.searchContext = '';\n }\n this.cardData = context.children;\n this.cardDataView.clearData();\n }\n viewDetailsChild(context: CardData) {\n if (this.currentExpandedCard) {\n this.cardContextHistory.push(this.currentExpandedCard);\n this.cardContextHistory.push(context);\n this.cardContextHistoryData.push(this.cardData);\n this.cardContextHistoryData.push(this.currentExpandedCard.children);\n this.cardData = context.children;\n this.cardDataView.clearData();\n }\n }\n\n roleCardClicked(item: CardData) {\n this.currentData = this.cardDataView.onItemClick(item);\n // if (this.currentData) {\n // this.form.controls['Name'].setValue(this.currentData.data?.Name);\n // }\n }\n\n toggleChildren(item: CardData) {\n var currToggleState = item.isChildrenExpanded;\n this.cardData.forEach((_) => {\n _.isChildrenExpanded = false;\n });\n item.isChildrenExpanded = !currToggleState;\n if (item.isChildrenExpanded) {\n this.currentExpandedCard = item;\n } else {\n this.currentExpandedCard = null;\n }\n }\n\n goToTableView() {\n if (!this.currentData) {\n return;\n }\n this.dataView.toggleView();\n const id = this.currentData.data ? this.currentData.data.Id : '';\n if (id.trim().length > 0 && !this.tableView.isRowEditing(id)) {\n this.tableView.toggleRowEdit(id);\n }\n }\n closeDetails() {\n this.cardData =\n this.cardContextHistoryData[this.cardContextHistoryData.length - 1];\n this.cardContextHistoryData.pop();\n this.cardContextHistory.pop();\n\n if (this.searchContextHistory.length > 0) {\n this.searchContext =\n this.searchContextHistory[this.searchContextHistory.length - 1];\n this.searchContextHistory.pop();\n } else {\n this.searchContext = '';\n }\n\n setTimeout(() => {\n if (this.dataView.isTableView) {\n this.dataView.toggleView();\n }\n }, 200);\n }\n\n getCardSubCaption(item: CardData) {\n const selected = item.children.filter((x) => x.data.Selected).length;\n const total = item.children.length;\n return `${selected} of ${total} ${\n total > 1 ? item.data.ChildrenType + 's' : item.data.ChildrenType\n }`;\n }\n\n getUpdatedRole(role: MappedRole): Role {\n const newRole = role;\n newRole.RoleContexts = role.RoleContexts.filter((x) => x.Selected).map(\n (y) => {\n y.RoleActions = y.RoleActions.filter((z) => z.Selected);\n return y;\n }\n );\n newRole.DataState =\n newRole.DataState == ObjectState.New\n ? ObjectState.New\n : ObjectState.Changed;\n newRole.Id = '';\n return newRole as Role;\n }\n async saveRole() {\n if (this.currentData) {\n var role: MappedRole = this.currentData.data as MappedRole;\n // role.Name = this.form.controls['Name'].value;\n if (this.currentData.data.Name.trim().length == 0) {\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n const mappedRole = this.getUpdatedRole(JSON.parse(JSON.stringify(role)));\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[\n existingId\n ].RoleActions.findIndex((c) => c.Name == action)\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction:\n this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id:\n existingId > -1\n ? roleResult.RoleContexts[existingId].Code\n : '',\n Id:\n existingId > -1\n ? roleResult.RoleContexts[existingId].Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1\n ? roleResult.RoleContexts[existingId].Code\n : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n\n return context;\n }),\n };\n\n const itemIndex = this.data.findIndex(\n (x) => x == this.currentData?.data\n );\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Code;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code =\n y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[\n j\n ].ServiceName = y.ServiceName;\n });\n });\n this.data = this.data.map((x) => x);\n this.cacheItem(this.data[itemIndex]);\n // this.currentData = {\n // selected: true,\n // title: mappedRoleSave.Name,\n // data: mappedRoleSave,\n // isChildrenExpanded: this.currentData.isChildrenExpanded,\n // body: [],\n // children: mappedRoleSave.RoleContexts.map((c) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(c.Name),\n // data: c,\n // body: [],\n // children: c.RoleActions.map((a) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(a.Name),\n // data: a,\n // body: [],\n // children: [],\n // };\n // }),\n // };\n // }),\n // };\n }\n }\n }\n }\n }\n async tableSaveRole(role: MappedRole, callBack: () => any) {\n if (role.Name.trim().length == 0) {\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n const mappedRole = this.getUpdatedRole(JSON.parse(JSON.stringify(role)));\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n Id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n\n return context;\n }),\n };\n\n const itemIndex = this.data.findIndex(\n (x) => x == this.currentData?.data\n );\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Code;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code = y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].ServiceName =\n y.ServiceName;\n });\n });\n this.data = this.data.map((x) => x);\n this.cacheItem(this.data[itemIndex]);\n }\n callBack();\n }\n }\n }\n\n async saveRoleDynamic(item: CardData) {\n if (this.isCheckboxDisabled(item)) {\n this.utilService.showInfo('Parent UI not selected');\n return;\n }\n\n var role: CardData | null =\n this.cardContextHistory.length > 0\n ? this.cardContextHistory[0]\n : this.currentExpandedCard\n ? this.currentExpandedCard\n : null;\n var cardDataRef: CardData[] | null =\n this.cardContextHistoryData.length > 0\n ? this.cardContextHistoryData[0]\n : this.currentExpandedCard\n ? this.cardData\n : null;\n // const isExpandedCard: boolean =\n // this.cardContextHistory.length > 0\n // ? false\n // : this.currentExpandedCard\n // ? true\n // : false;\n if (!role) {\n return;\n }\n if (role.data.Name.trim().length == 0) {\n item.data.Selected = false;\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n item.data.Selected = !item.data.Selected;\n const mappedRole = this.getUpdatedRole(\n JSON.parse(JSON.stringify(role.data))\n );\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n item.data.Selected = false;\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n Id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n return context;\n }),\n };\n const itemIndex = cardDataRef\n ? cardDataRef.findIndex((x) => x.data == role?.data)\n : -1;\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Code;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code = y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].ServiceName =\n y.ServiceName;\n });\n });\n // this.data[itemIndex].RoleContexts = mappedRoleSave.RoleContexts;\n\n this.data = this.data.map((x) => x);\n // if (cardDataRef) {\n // console.log({\n // XDataIsHere: JSON.parse(JSON.stringify(cardDataRef)),\n // });\n // cardDataRef[itemIndex] = {\n // selected: cardDataRef[itemIndex].selected,\n // isChildrenExpanded: cardDataRef[itemIndex].isChildrenExpanded,\n // title: mappedRoleSave.Name,\n // data: mappedRoleSave,\n // body: [],\n // children: mappedRoleSave.RoleContexts.map((c) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(c.Name),\n // data: c,\n // body: [],\n // children: c.RoleActions.map((a) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(a.Name),\n // data: a,\n // body: [],\n // children: [],\n // };\n // }),\n // };\n // }),\n // };\n // }\n }\n }\n }\n }\n\n async saveAllRoleDynamic(item: CardData) {\n if (this.isCheckboxDisabled(item)) {\n this.utilService.showInfo('Parent UI not selected');\n return;\n }\n\n var role: CardData | null =\n this.cardContextHistory.length > 0\n ? this.cardContextHistory[0]\n : this.currentExpandedCard\n ? this.currentExpandedCard\n : null;\n var cardDataRef: CardData[] | null =\n this.cardContextHistoryData.length > 0\n ? this.cardContextHistoryData[0]\n : this.currentExpandedCard\n ? this.cardData\n : null;\n // const isExpandedCard: boolean =\n // this.cardContextHistory.length > 0\n // ? false\n // : this.currentExpandedCard\n // ? true\n // : false;\n if (!role) {\n return;\n }\n if (role.data.Name.trim().length == 0) {\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n\n const isAllSelected = this.isAllSelected(item);\n\n const parent =\n this.cardContextHistoryData.length > 0\n ? this.findParent(this.cardContextHistoryData[0], item)\n : this.findParent(this.cardData, item);\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Action\n ) {\n (parent.data as MappedRoleContext).RoleActions.forEach((x) => {\n x.Selected = !isAllSelected;\n });\n }\n\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Permission\n ) {\n (parent.data as MappedRole).RoleContexts.forEach((x) => {\n x.Selected = !isAllSelected;\n });\n }\n\n const mappedRole = this.getUpdatedRole(\n JSON.parse(JSON.stringify(role.data))\n );\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n item.data.Selected = false;\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n Id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n return context;\n }),\n };\n const itemIndex = cardDataRef\n ? cardDataRef.findIndex((x) => x.data == role?.data)\n : -1;\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Code;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code = y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].ServiceName =\n y.ServiceName;\n });\n });\n // this.data[itemIndex].RoleContexts = mappedRoleSave.RoleContexts;\n\n this.data = this.data.map((x) => x);\n // if (cardDataRef) {\n // console.log({\n // XDataIsHere: JSON.parse(JSON.stringify(cardDataRef)),\n // });\n // cardDataRef[itemIndex] = {\n // selected: cardDataRef[itemIndex].selected,\n // isChildrenExpanded: cardDataRef[itemIndex].isChildrenExpanded,\n // title: mappedRoleSave.Name,\n // data: mappedRoleSave,\n // body: [],\n // children: mappedRoleSave.RoleContexts.map((c) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(c.Name),\n // data: c,\n // body: [],\n // children: c.RoleActions.map((a) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(a.Name),\n // data: a,\n // body: [],\n // children: [],\n // };\n // }),\n // };\n // }),\n // };\n // }\n }\n }\n }\n }\n\n saveDataAll() {\n const roles: Role[] = this.data.map((x) => {\n return {\n ...x,\n RoleContexts: x.RoleContexts.filter((y) => y.Selected).map((z) => {\n return {\n ...z,\n RoleActions: z.RoleActions.filter(\n (a) => a.Selected\n ) as RoleAction[],\n };\n }) as RoleContext[],\n };\n });\n }\n\n updateTable() {\n this.data = this.data.map((x) => x);\n }\n\n onViewChange(isGridView: boolean): void {}\n onStateChange(event: { key: string; value: boolean }): void {\n switch (event.key) {\n case 'create':\n var newMappedRole: MappedRole = {\n RoleContexts: this.sourceData.map((config) => {\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: false,\n RoleActions: config.Actions.map((action) => {\n var act: MappedRoleAction = {\n Selected: false,\n Name: action,\n Role: '',\n Context: '',\n id: '',\n Id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n APIKey: this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: '',\n id: '',\n Id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n APIKey: this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n\n return context;\n }),\n ChildrenType: ChildrenType.Permission,\n Name: '',\n id: (this.cardData.length + 1).toString(),\n Id: (this.cardData.length + 1).toString(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n Application: this.application ? this.application : undefined,\n APIKey: this.envSvc.environment.APIKey,\n };\n const cardData: CardData = {\n selected: false,\n title: newMappedRole.Name,\n data: newMappedRole,\n body: [],\n children: newMappedRole.RoleContexts.map((c) => {\n return {\n selected: false,\n title: this.getFormattedName(c.Name),\n data: c,\n body: [],\n children: c.RoleActions.map((a) => {\n return {\n selected: false,\n title: this.getFormattedName(a.Name),\n data: a,\n body: [],\n children: [],\n };\n }),\n };\n }),\n };\n this.data = this.data.concat([newMappedRole]);\n this.cardData.push(cardData);\n this.roleCardClicked(cardData);\n this.dataView.isTableView = false;\n break;\n default:\n break;\n }\n }\n\n showTableView: boolean = false;\n onSelectionChange(selectedRows: Role[]) {}\n retryMessage() {}\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n const updatedColumnDef: ColumnDefinition<MappedRole>[] = [];\n updatedColumns.forEach((col) => {\n const matchingCol = this.roleControlSvc.roleColumns.find(\n (column) => column.header === col.name || column.id === col.name\n );\n if (matchingCol) {\n updatedColumnDef.push(matchingCol);\n }\n });\n\n this.visibleColumnDef = [...updatedColumnDef];\n }\n\n exportFiltersAndSorts = async (pageState: {\n skip: number;\n limit: number;\n }) => {\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName: x.name,\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(DateFilterTypes).includes(x.condition)\n ? (DateFilterTypes[\n x.condition as keyof typeof DateFilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type: SearchPropertyValueType.Date,\n };\n });\n payload.push({\n PropertyName: 'APIKey',\n EntityValue: this.envSvc.environment.APIKey,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName: sort.name,\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.get(\n `Role/GetRolesWithParam/${this.currentSearchTerm.trim()}/${\n pageState.skip\n }/${pageState.limit}`\n )\n : await this.server.post(\n `Role/SearchRoles/${pageState.skip}/${pageState.limit}`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return [];\n } else {\n var result = (res as PagedResult<Role>).Result;\n return result as MappedRole[];\n }\n };\n\n async updateFiltersAndSorts(isSearch: boolean = false) {\n if (!isSearch) {\n this.dataView.onClearSearch();\n this.currentSearchTerm = '';\n this.cdr.detectChanges();\n const clickEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n document.dispatchEvent(clickEvent);\n }\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName: x.name,\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(DateFilterTypes).includes(x.condition)\n ? (DateFilterTypes[\n x.condition as keyof typeof DateFilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type: SearchPropertyValueType.Date,\n };\n });\n payload.push({\n PropertyName: 'APIKey',\n EntityValue: this.envSvc.environment.APIKey,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName: sort.name,\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.get(\n `Role/GetRolesWithParam/${this.currentSearchTerm.trim()}/0/${\n this.pageSize\n }`\n )\n : await this.server.post(`Role/SearchRoles/0/${this.pageSize}`, payload);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.currentFilters = [];\n this.currentSorts = [];\n return undefined;\n } else {\n this.cardDataView.clearData();\n this.currentData = null;\n this.pageState = res as PagedResult<Role>;\n var result = (res as PagedResult<Role>).Result;\n this.setUpMappedData(result);\n this.setUpCardData();\n }\n }\n async loadMoreFiltersAndSorts(): Promise<PagedResult<Role> | undefined> {\n if (!this.pageState) {\n return;\n }\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName: x.name,\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(DateFilterTypes).includes(x.condition)\n ? (DateFilterTypes[\n x.condition as keyof typeof DateFilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type: SearchPropertyValueType.Date,\n };\n });\n payload.push({\n PropertyName: 'APIKey',\n EntityValue: this.envSvc.environment.APIKey,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName: sort.name,\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.get(\n `Role/GetRolesWithParam/${this.currentSearchTerm.trim()}/${\n this.pageState.Skip\n }/${this.pageSize}`\n )\n : await this.server.post(\n `Role/SearchRoles/${this.pageState.Skip}/${this.pageSize}`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n var result = res as PagedResult<Role>;\n return result;\n }\n }\n onFilterUpdated(updatedFilters: IDataFilter[] | string) {\n // Ensure updatedFilters is an array\n if (Array.isArray(updatedFilters)) {\n this.currentFilters = updatedFilters;\n this.updateFiltersAndSorts();\n }\n }\n onSortUpdated(updatedSorts: IDataFilter[]) {\n this.currentSorts = updatedSorts;\n console.log({ CurrSorts: this.currentSorts });\n this.updateFiltersAndSorts();\n }\n\n handleSearch(event: { key: string; value: string }) {\n this.searchTerm$.next(event.value);\n }\n\n handleExport(exportedData: Partial<any>[]) {\n // console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n getMockRoles(): Role[] {\n return new Array(10).fill(1).map((id, i) => ({\n Id: id + i,\n id: (id + i).toString(),\n Name: this.mockNames[i] || '',\n RoleContexts: this.randomContexts(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${id + i}`,\n Code: '',\n ServiceName: '',\n APIKey: '',\n }));\n }\n\n mockNames: string[] = [\n 'Admin',\n 'Super Admin',\n 'Manager',\n 'Intern',\n 'Production Manager',\n 'CEO',\n 'CTO',\n 'COO',\n 'Developer',\n 'Engineer',\n ];\n\n randomName(): string {\n const randomIndex = Math.floor(Math.random() * this.mockNames.length);\n return this.mockNames[randomIndex];\n }\n\n randomContexts(): RoleContext[] {\n const randomNumber = Math.floor(\n Math.random() * Object.keys(UIs).length + 1\n );\n var returnArray: RoleContext[] = [];\n const usedList: number[] = [];\n for (let i = 0; i < randomNumber; i++) {\n let randomIndex;\n do {\n randomIndex = Math.floor(Math.random() * Object.keys(UIs).length);\n } while (usedList.includes(randomIndex));\n\n returnArray.push({\n Id: 'context' + i,\n id: ('context' + i).toString(),\n Name: Object.keys(UIs)[randomIndex],\n Role: '',\n RoleActions: this.randomActions(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${'context' + i}`,\n Code: '',\n ServiceName: '',\n APIKey: '',\n ApplicationRoleContext: '',\n });\n usedList.push(randomIndex);\n }\n return returnArray;\n }\n\n randomActions(): RoleAction[] {\n const randomNumber = Math.floor(\n Math.random() * Object.keys(UIActions).length + 1\n );\n var returnArray: RoleAction[] = [];\n const usedList: number[] = [];\n for (let i = 0; i < randomNumber; i++) {\n let randomIndex;\n do {\n randomIndex = Math.floor(Math.random() * Object.keys(UIActions).length);\n } while (usedList.includes(randomIndex));\n\n returnArray.push({\n Id: 'action' + i,\n id: ('action' + i).toString(),\n Name: Object.keys(UIActions)[randomIndex],\n Role: '',\n Context: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${'action' + i}`,\n Code: '',\n ServiceName: '',\n APIKey: '',\n ApplicationRoleAction: '',\n });\n usedList.push(randomIndex);\n }\n return returnArray;\n }\n\n closePopUp() {\n this.openDropdownId = null;\n this.popUps.forEach((popUp) => {\n if (popUp.dropdownOpen) {\n popUp.toggleDropdown();\n }\n });\n }\n\n updateItem(value: any, key: string): any {\n return {\n [key]: value,\n };\n }\n\n editValue(value: MappedRole) {\n const card = this.cardData.find((x) => x.data.Id == value.Id);\n if (card && this.cardDataView) {\n this.dataView.toggleView();\n card.selected = true;\n this.currentData = this.cardDataView.onItemClick(card);\n this.closePopUp();\n // if (this.currentData) {\n // this.form.controls['Name'].setValue(this.currentData.data?.Name);\n // }\n }\n }\n\n tableCache = new Map<string, MappedRole>();\n\n cacheItem(item: MappedRole) {\n const cacheKey = item.Id;\n this.tableCache.set(cacheKey, JSON.parse(JSON.stringify(item)));\n }\n\n restoreCache(item: Role) {\n const cacheKey = item.Id;\n const itemCache = this.tableCache.get(cacheKey);\n if (itemCache) {\n item.Name = itemCache.Name;\n }\n this.tableCache.delete(cacheKey);\n }\n\n onSearchFocus() {\n this.isInputFocused = true;\n }\n\n onSearchBlur() {\n this.isInputFocused = false;\n }\n\n onInputFocus() {\n this.isInputFocused = true;\n }\n\n onInputBlur() {\n this.isInputFocused = false;\n }\n\n // onSearch(event: any) {\n // const searchTerm = event.target.value;\n // // if (this.firstSearch == false) {\n // // this.optionsCopy = cloneDeep(this._options);\n // // this.firstSearch = true;\n // // }\n // if (searchTerm.trim().length == 0) {\n // this.cardData = JSON.parse(JSON.stringify(this.dataCopy));\n // //this.firstSearch = false;\n // return;\n // }\n // this.cardData = this.dataCopy.filter(\n // (x) => typeof x.data.Name == 'string' && new RegExp(searchTerm, 'i').test(x.data.Name)\n // );\n\n // }\n\n get filteredData(): CardData[] {\n if (this.searchContext.trim().length == 0) {\n return this.cardData;\n }\n return this.cardData.filter(\n (x) =>\n typeof x.data.Name == 'string' &&\n new RegExp(this.searchContext, 'i').test(x.data.Name)\n );\n }\n\n onComplete(event: any[]) {\n var defaultItem: MappedRole = {\n RoleContexts: this.sourceData.map((config) => {\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: false,\n RoleActions: config.Actions.map((action) => {\n var act: MappedRoleAction = {\n Selected: false,\n Name: action,\n Role: '',\n Context: '',\n id: '',\n Id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n APIKey: this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: '',\n id: '',\n Id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n APIKey: this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(config.Name),\n };\n\n return context;\n }),\n ChildrenType: ChildrenType.Permission,\n Name: '',\n id: (this.cardData.length + 1).toString(),\n Id: (this.cardData.length + 1).toString(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n Application: this.application ? this.application : undefined,\n APIKey: this.envSvc.environment.APIKey,\n };\n this.importService.onComplete(\n event,\n defaultItem,\n 'Role/SaveRoles',\n this.envSvc.environment.AuthenticationAPI,\n 'Role',\n (items: MappedRole[]) => {\n this.data = this.data.concat(items);\n const cardData: CardData[] = items.map((x) => {\n return {\n selected: false,\n title: x.Name,\n data: x,\n body: [],\n children: [],\n };\n });\n this.cardData = this.cardData.concat(cardData);\n },\n this.pageState as PagedResult<MappedRole>\n );\n }\n}\n","<div #messageLog class=\"flex flex-col gap-4 message-log-container\">\n <div\n *ngIf=\"this.cardContextHistory.length > 0\"\n class=\"context-banner py-3 px-4 rounded-xl flex item-center justify-space-between gap-3\"\n >\n <div class=\"flex gap-2 flex-1 context-banner-content\">\n <div\n class=\"context-content items-center flex gap-2\"\n *ngFor=\"let context of this.cardContextHistory; index as i\"\n >\n <div class=\"context-main-content-container flex gap-4\">\n <span class=\"context-caption font-bold text-[#404040]\">{{\n context.data.ChildrenType &&\n context.data.ChildrenType == childPermissionRef\n ? context.data.Name\n : context.title\n }}</span>\n <span\n *ngIf=\"i == this.cardContextHistory.length - 1\"\n class=\"context-subcaption\"\n >{{ this.getCardSubCaption(context) }}</span\n >\n </div>\n <div *ngIf=\"i < this.cardContextHistory.length - 1\">/</div>\n </div>\n </div>\n <div class=\"flex justify-end\">\n <verben-svg\n (click)=\"closeDetails()\"\n class=\"cursor-pointer\"\n icon=\"close-circle-full\"\n [width]=\"20\"\n [height]=\"20\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n *ngIf=\"this.cardContextHistory.length > 0 && this.cardData.length > 0\"\n class=\"nested-top-container flex gap-2 items-center\"\n >\n <div class=\"flex items-center gap-2 px-2\">\n <input\n [disabled]=\"this.isCheckboxDisabled(this.cardData[0])\"\n type=\"checkbox\"\n class=\"mt-1 cursor-pointer\"\n [ngModel]=\"isAllSelected(this.cardData[0])\"\n (click)=\"\n $event.preventDefault(); this.saveAllRoleDynamic(this.cardData[0])\n \"\n />\n\n <span class=\"font-semibold\">Select All</span>\n </div>\n <div\n [ngClass]=\"{ focused: isInputFocused }\"\n tabindex=\"0\"\n (focus)=\"onSearchFocus()\"\n (blur)=\"onSearchBlur()\"\n class=\"search-section flex\"\n >\n <span class=\"search-icon flex\">\n <verben-svg\n icon=\"search\"\n stroke=\"#64748b\"\n [width]=\"15\"\n [height]=\"15\"\n ></verben-svg>\n </span>\n <div class=\"search-input-container\">\n <input\n [(ngModel)]=\"searchContext\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur()\"\n placeholder=\"Search...\"\n class=\"search-input\"\n />\n </div>\n </div>\n </div>\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: this.cardContextHistory.length == 0,\n isColumn: this.cardContextHistory.length == 0,\n isFilter: this.cardContextHistory.length == 0,\n isSort: this.cardContextHistory.length == 0,\n isExport:\n this.cardContextHistory.length == 0 &&\n (!permissionConfig || permissionConfig.Actions['Export']),\n isSelect: this.cardContextHistory.length == 0,\n isCreate:\n this.cardContextHistory.length == 0 &&\n (!permissionConfig || permissionConfig.Actions['Create']),\n isToggle: this.cardContextHistory.length == 0,\n isImport:\n this.cardContextHistory.length == 0 &&\n (!permissionConfig || permissionConfig.Actions['Import'])\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [isTableView]=\"false\"\n [selectedColumnCount]=\"0\"\n [selectedSortCount]=\"0\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n (onSearchChange)=\"handleSearch($event)\"\n >\n <div class=\"mt-2\" table-content>\n <lib-data-table\n [dataKey]=\"'Id'\"\n #dt\n [data]=\"data\"\n [columns]=\"visibleColumnDef\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"select\">\n <ng-template\n #cell\n let-isSelected=\"isSelected\"\n let-toggleRowSelection=\"toggleRowSelection\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isSelected\"\n (change)=\"toggleRowSelection()\"\n />\n </ng-template>\n <ng-template\n #header\n let-allRowsSelected=\"allRowsSelected\"\n let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"allRowsSelected()\"\n [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"updatedAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"name\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ value.Name }}\n </ng-template>\n <ng-template\n #cellEdit\n let-row=\"row\"\n let-updateValue=\"updateValue\"\n let-updateData=\"updateData\"\n let-value\n >\n <div class=\"width-max\">\n <verbena-input [(ngModel)]=\"value.Name\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template\n #cell\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-value\n >\n <verben-pop-Up\n #popup\n [customStyles]=\"{ 'z-index': '99' }\"\n [enableMouseLeave]=\"false\"\n >\n <verben-svg\n class=\"cursor-pointer actions-icon\"\n dropdown-trigger\n icon=\"list\"\n ></verben-svg>\n <div class=\"pop-up-content flex flex-col\" dropdown-content>\n <div\n *ngIf=\"\n !permissionConfig || permissionConfig.Actions['Create']\n \"\n (click)=\"toggleRowEdit(); cacheItem(value); closePopUp()\"\n class=\"pop-up-value cursor-pointer\"\n >\n Edit\n </div>\n <div\n (click)=\"viewDetailsFromTable(value)\"\n class=\"pop-up-value cursor-pointer\"\n >\n View Details\n </div>\n <div class=\"pop-up-value cursor-pointer\">View Users</div>\n </div>\n </verben-pop-Up>\n <!-- <div class=\"flex gap-4 items-center\">\n <verben-svg (click)=\"editValue(value)\" icon=\"edit\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n <span (click)=\"viewDetailsFromTable(value)\" class=\"view-links view-details\">view details</span>\n <span class=\"view-links view-users\">view users</span>\n </div> -->\n </ng-template>\n <ng-template\n #cellEdit\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-value\n >\n <div class=\"flex gap-2 items-center\">\n <verben-svg\n icon=\"tick\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"tableSaveRole(value, toggleRowEdit)\"\n ></verben-svg>\n <verben-svg\n (click)=\"restoreCache(value); toggleRowEdit()\"\n icon=\"close-no-circle\"\n [width]=\"15\"\n [height]=\"15\"\n ></verben-svg>\n <!-- <verben-svg icon=\"delete\" [width]=\"15\" [height]=\"15\"></verben-svg> -->\n <verben-svg\n icon=\"cardViewAlt\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editValue(value)\"\n ></verben-svg>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n #vdcv\n dataId=\"Id\"\n border=\"5px\"\n [cardDataList]=\"\n this.cardContextHistory.length > 0 ? filteredData : cardData\n \"\n rbgColor=\"#f5f6f9\"\n mg=\"0px\"\n >\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"\n this.cardContextHistory.length > 0 ? filteredData : cardData\n \"\n >\n <ng-template #card let-item>\n <div\n (click)=\"roleCardClicked(item)\"\n *ngIf=\"\n item.data.ChildrenType &&\n item.data.ChildrenType == childPermissionRef\n \"\n class=\"flex cursor-pointer h-[max-content]\"\n >\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"toggleChildren(item); $event.stopPropagation()\"\n [ngClass]=\"\n item.children && item.children.length\n ? 'visible'\n : 'invisible'\n \"\n class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"py-3 px-4 flex-1 h-[100%]\">\n <div\n class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\"\n >\n <div\n class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\"\n >\n <h3\n class=\"my-0 font-bold text-[#404040] leading-[19.5px]\"\n >\n {{ item.data.Name }}\n </h3>\n <span\n class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\"\n >\n {{ getCardSubCaption(item) }}\n </span>\n </div>\n\n <div\n *ngIf=\"item.children && item.children.length > 0\"\n class=\"flex items-end h-[100%]\"\n >\n <p\n (click)=\"viewDetails(item); $event.stopPropagation()\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\"\n >\n view details\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"\n !item.data.ChildrenType ||\n item.data.ChildrenType !== childPermissionRef\n \"\n class=\"flex h-[max-content]\"\n >\n <verben-svg\n [ngClass]=\"\n item.children && item.children.length\n ? 'visible'\n : 'invisible'\n \"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"toggleChildren(item)\"\n class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input\n *ngIf=\"item.data?.Selected != undefined\"\n [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\"\n class=\"mt-1 cursor-pointer\"\n [(ngModel)]=\"item.data.Selected\"\n (click)=\"\n $event.preventDefault(); this.saveRoleDynamic(item)\n \"\n />\n <div\n class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\"\n >\n <div\n class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\"\n >\n <h3\n class=\"my-0 font-bold text-[#404040] leading-[19.5px]\"\n >\n {{ item.title }}\n </h3>\n <span\n class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\"\n >\n {{ getCardSubCaption(item) }}\n </span>\n </div>\n\n <div\n *ngIf=\"item.children && item.children.length > 0\"\n class=\"flex items-end h-[100%]\"\n >\n <p\n (click)=\"viewDetails(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\"\n >\n view details\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #cardChild let-index=\"index\" let-item>\n <div class=\"flex gap-2 items-start h-[max-content]\">\n <input\n [ngClass]=\"index == 0 ? 'visible' : 'invisible'\"\n [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\"\n class=\"mt-1 cursor-pointer\"\n [ngModel]=\"isAllSelected(item)\"\n (click)=\"\n $event.preventDefault(); this.saveAllRoleDynamic(item)\n \"\n />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input\n *ngIf=\"item.data?.Selected != undefined\"\n [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\"\n class=\"mt-1 cursor-pointer\"\n [(ngModel)]=\"item.data.Selected\"\n (click)=\"\n $event.preventDefault(); this.saveRoleDynamic(item)\n \"\n />\n <div\n class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\"\n >\n <div\n class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\"\n >\n <h3\n class=\"my-0 font-bold text-[#404040] leading-[19.5px]\"\n >\n {{ item.title }}\n </h3>\n <span\n class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\"\n >\n {{ getCardSubCaption(item) }}\n </span>\n </div>\n\n <div\n *ngIf=\"item.children && item.children.length > 0\"\n class=\"flex items-end h-[100%]\"\n >\n <p\n (click)=\"viewDetailsChild(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\"\n >\n view details\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n <verben-right-card-data-view\n *ngIf=\"this.cardContextHistory.length == 0\"\n >\n <ng-template #parent>\n <div\n *ngIf=\"this.currentData\"\n class=\"flex flex-col rounded-xl h-full w-full justify-between relative space-y-4\"\n >\n <verbena-input\n name=\"Name\"\n label=\"Name\"\n (ngModelChange)=\"updateTable()\"\n [(ngModel)]=\"this.currentData.data.Name\"\n />\n\n <!-- buttons -->\n <div class=\"flex justify-between bottom-8 left-0 right-0\">\n <div></div>\n <!-- <verbena-button class=\"verben-delete-button\" text=\"Delete\"></verbena-button> -->\n <div class=\"flex gap-3\">\n <verbena-button\n class=\"verben-switch-button\"\n (click)=\"goToTableView()\"\n text=\"Switch To Table\"\n ></verbena-button>\n <verbena-button\n class=\"verben-primary-button\"\n (click)=\"this.saveRole()\"\n text=\"Save\"\n ></verbena-button>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-right-card-data-view>\n <!-- <verben-right-card-data-view>\n yeshhhhhh\n </verben-right-card-data-view> -->\n\n <verben-card-data-view-footer\n *ngIf=\"this.cardContextHistory.length == 0\"\n >\n <div class=\"flex gap-2 justify-between\">\n <div\n *ngIf=\"\n !vdcv.hasCurrentItem() && this.cardContextHistory.length == 0\n \"\n class=\"message-log-button-container flex justify-between\"\n >\n <!-- <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button> -->\n </div>\n <div\n class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button (click)=\"loadMore()\" class=\"load-more view-links\">\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n (filtersApplied)=\"onFilterUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div import-content>\n <lib-data-import\n [previewColumns]=\"visibleColumnDef\"\n title=\"role\"\n (importEventData)=\"onComplete($event)\"\n [columnTemplates]=\"columnTemplates()\"\n >\n </lib-data-import>\n </div>\n <div export-content>\n <lib-data-xport\n [useImportKey]=\"true\"\n [columns]=\"visibleColumnDef\"\n [data]=\"data\"\n [dataQueryFunction]=\"exportFiltersAndSorts\"\n >\n </lib-data-xport>\n <!-- <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export> -->\n </div>\n </verben-data-view>\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-between\">\n <div class=\"message-log-button-container flex justify-between\">\n <!-- <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button> -->\n </div>\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData.length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links\">\n Load more\n </button>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { RoleControlComponent } from './role-control.component';\nimport { SharedModule } from 'verben-authentication-ui/src/lib/shared';\n\n@NgModule({\n declarations: [RoleControlComponent],\n imports: [SharedModule],\n exports: [RoleControlComponent],\n})\nexport class RoleControlModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.RoleControlService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verben-authentication-ui-src-lib-components-role-control.mjs","sources":["../../../projects/verben-authentication-ui/src/lib/components/role-control/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/UIs.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/UIActions.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/ChildrenType.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.service.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.component.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.component.html","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.module.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/verben-authentication-ui-src-lib-components-role-control.ts"],"sourcesContent":["export const baseStyle: any = {\n width: '100%',\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n // tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n // stickyTop: true,\n // zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '30px',\n },\n footer: {\n // stickyBottom: true,\n // zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n // stickyRight: true,\n // zIndex: 1,\n },\n};\n","export enum UIs {\n ProductDistribution = 'ProductDistribution',\n Terminals = 'Terminals',\n Meters = 'Meters',\n ProductInbound = 'ProductInbound',\n TerminalDocumentation = 'TerminalDocumentation',\n Laboratories = 'Laboratories',\n Surveyors = 'Surveyors',\n Products = 'Products',\n Stocks = 'Stocks',\n Tanks = 'Tanks',\n Customers = 'Customers',\n ProductAllocation = 'ProductAllocation',\n ReleaseManagement = 'ReleaseManagement',\n ProductPricing = 'ProductPricing',\n Purchases = 'Purchases',\n Agents = 'Agents',\n Banks = 'Banks',\n Vendors = 'Vendors',\n Vessels = 'Vessels',\n ExpenseList = 'ExpenseList',\n ProcurementDocumentation = 'ProcurementDocumentation',\n Journal = 'Journal',\n JournalTemplate = 'JournalTemplate',\n RecurringJournal = 'RecurringJournal',\n InterCompanyJournal = 'InterCompanyJournal',\n InterCompanyJournalTemplate = 'InterCompanyJournalTemplate',\n UserManagement = 'UserManagement',\n AccessRequest = 'AccessRequest',\n RolesAndPermissions = 'RolesAndPermissions',\n AuditTrail = 'AuditTrail',\n LogViewer = 'LogViewer',\n MessageHistory = 'MessageHistory',\n MessageConfig = 'MessageConfig',\n MessageList = 'MessageList',\n Config = 'Config',\n Reports = 'Reports',\n}\n","export enum UIActions {\n Save = 'Save',\n Edit = 'Edit',\n Delete = 'Delete',\n}\n","export enum ChildrenType {\n Permission = 'Permission',\n Action = 'Action',\n}\n","import { Injectable } from '@angular/core';\nimport { ColumnDefinition } from 'verben-ng-ui';\nimport { Role } from 'verben-authentication-ui/src/lib/models';\nimport { AuthorizationService } from 'verben-authentication-ui/src/lib/services';\nimport { MappedRole } from './MappedRole';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RoleControlService {\n constructor() {}\n\n get roleColumns(): ColumnDefinition<MappedRole>[] {\n return [\n {\n id: 'select',\n header: '',\n canExport: false,\n },\n {\n id: 'createdAt',\n header: 'CREATED',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'updatedAt',\n header: 'UPDATED',\n accessorKey: 'UpdatedAt',\n },\n {\n id: 'name',\n header: 'NAME',\n accessorFn: (row: MappedRole) => {\n return row;\n },\n importKey: 'Name',\n },\n {\n id: 'permissions',\n header: 'PERMISSIONS',\n accessorFn: (row: MappedRole) => {\n const sum = row.RoleContexts.filter((x) => x.Selected == true).length;\n return `${sum} of ${row.RoleContexts.length} Permissions`;\n },\n },\n {\n id: 'actions',\n header: 'ACTIONS',\n accessorFn: (row: MappedRole) => {\n return row;\n },\n canExport: false,\n },\n ];\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnInit,\n QueryList,\n SimpleChanges,\n ViewChild,\n viewChildren,\n ViewChildren,\n} from '@angular/core';\nimport { RoleControlService } from './role-control.service';\nimport {\n CardData,\n CardDataViewComponent,\n ColumnDefinition,\n ColumnDirective,\n DataFilterType,\n DataTableComponent,\n DataViewComponent,\n IDataFilter,\n VerbenPopUpComponent,\n} from 'verben-ng-ui';\nimport { Role } from 'verben-authentication-ui/src/lib/models';\nimport { baseStyle } from './base-table-style';\nimport { ObjectState } from 'verben-authentication-ui/src/lib/models';\nimport { RoleContext } from 'verben-authentication-ui/src/lib/models';\nimport { UIs } from './UIs';\nimport { RoleAction } from 'verben-authentication-ui/src/lib/models';\nimport { UIActions } from './UIActions';\nimport { MappedRole } from './MappedRole';\nimport {\n AuthorizationConfig,\n AuthorizationService,\n} from 'verben-authentication-ui/src/lib/services';\nimport { MappedRoleContext } from './MappedRoleContext';\nimport { MappedRoleAction } from './MappedRoleAction';\nimport { ChildrenType } from './ChildrenType';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { UtilService } from 'verben-authentication-ui/src/lib/services';\nimport { HttpWebRequestService } from 'verben-authentication-ui/src/lib/services';\nimport { ErrorResponse } from 'verben-authentication-ui/src/lib/models';\nimport { PagedResult } from 'verben-authentication-ui/src/lib/models';\nimport { SearchPropertyValue } from 'verben-authentication-ui/src/lib/models';\nimport { SearchOperator } from 'verben-authentication-ui/src/lib/models';\nimport { SearchPropertySign } from 'verben-authentication-ui/src/lib/models';\nimport { EnvironmentService } from 'verben-authentication-ui/src/lib/services';\nimport { ApplicationRoleContext } from 'verben-authentication-ui/src/lib/models';\nimport { ApplicationRoleAction } from 'verben-authentication-ui/src/lib/models';\nimport { SearchPropertyValueType } from 'verben-authentication-ui/src/lib/models';\nimport { debounceTime, Subject } from 'rxjs';\nimport { SortDirection } from 'verben-authentication-ui/src/lib/models';\nimport { PermissionConfig } from 'verben-authentication-ui/src/lib/models';\nimport { ImportService } from 'verben-authentication-ui/src/lib/services';\n\nenum DateFilterTypes {\n Before = SearchPropertySign.LT,\n On = SearchPropertySign.EQ,\n After = SearchPropertySign.GT,\n}\n\n@Component({\n selector: 'lib-role-control',\n templateUrl: './role-control.component.html',\n styleUrl: './role-control.component.css',\n})\nexport class RoleControlComponent implements OnInit, OnChanges {\n visibleColumnDef: ColumnDefinition<MappedRole>[] = [];\n styles = baseStyle;\n data: MappedRole[] = [];\n cardData: CardData[] = [];\n //dataCopy: CardData[] = [];\n\n currentData: CardData | null = null;\n currentExpandedCard: CardData | null = null;\n cardContext: CardData | null = null;\n cardContextHistory: CardData[] = [];\n cardContextHistoryData: CardData[][] = [];\n //dataCopyHistory: CardData[][] = [];\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n @ViewChildren('popup') popUps!: QueryList<VerbenPopUpComponent>;\n @ViewChild('dt') tableView!: DataTableComponent<MappedRole>;\n @Input() isGlobal: boolean = true;\n @Input() serviceName: string | null = null;\n @Input() application: string | null = null;\n @Input() pageSize: number = 10;\n @Input() searchDebounceTime: number = 500;\n @Input() permissionConfig: PermissionConfig | null = null;\n pageState: PagedResult<Role> | null = null;\n sourceData: AuthorizationConfig[] = [];\n isOpen: boolean = false;\n openDropdownId: string | null = null;\n currentFilters: IDataFilter[] = [];\n currentSorts: IDataFilter[] = [];\n searchTerm$ = new Subject<string>();\n\n visibleColumns: IDataFilter[] = [];\n columnTemplates = viewChildren<ColumnDirective>(ColumnDirective);\n\n filterArray: IDataFilter[] = [\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: 'UpdatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n\n sortOptions: IDataFilter[] = [\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: 'UpdatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n\n searchContext: string = '';\n searchContextHistory: string[] = [];\n isInputFocused: boolean = false;\n\n // private _searchItem: string = '';\n // get searchItem(): string {\n // return this._searchItem\n // }\n // set searchItem(value: string) {\n // this._searchItem = value;\n // this.searchTerm$.next(value);\n // }\n\n // form: FormGroup;\n childPermissionRef: ChildrenType = ChildrenType.Permission;\n\n roleContextsStore: ApplicationRoleContext[] = [];\n roleActionsStore: ApplicationRoleAction[] = [];\n private currentSearchTerm: string = '';\n\n constructor(\n private authService: AuthorizationService,\n private roleControlSvc: RoleControlService,\n private utilService: UtilService,\n private server: HttpWebRequestService,\n private cdr: ChangeDetectorRef,\n private fb: FormBuilder,\n private envSvc: EnvironmentService,\n private importService: ImportService<MappedRole>\n ) {\n this.visibleColumnDef = roleControlSvc.roleColumns;\n this.visibleColumns = roleControlSvc.roleColumns.map((col) => ({\n checked: true,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n // this.form = this.fb.group({\n // Name: new FormControl<string | null>(null, Validators.required),\n // });\n }\n\n async ngOnInit(): Promise<void> {\n const mockData = this.getMockRoles();\n\n this.searchTerm$\n .pipe(debounceTime(this.searchDebounceTime)) // Adjust debounce time here (in ms)\n .subscribe(async (searchTerm) => {\n this.currentSearchTerm = searchTerm;\n this.updateFiltersAndSorts(true);\n });\n }\n\n async ngOnChanges(changes: SimpleChanges): Promise<void> {\n if (changes['application'] && this.application) {\n const roles = await this.getAllRoles();\n const contextsRes = await this.getSavedContexts();\n if (this.isGlobal) {\n if (contextsRes) {\n this.roleContextsStore = contextsRes;\n this.roleActionsStore = contextsRes.flatMap((x) => x.RoleActions);\n const authConfig: AuthorizationConfig[] = contextsRes.map((x) => {\n return {\n Name: x.Name,\n Actions: x.RoleActions.map((y) => {\n return y.Name;\n }),\n };\n });\n this.sourceData = authConfig;\n }\n } else {\n this.sourceData = this.authService.authorizationConfig;\n }\n if (roles) {\n this.setUpMappedData(roles);\n this.setUpCardData();\n }\n }\n }\n\n async getSavedContexts(): Promise<ApplicationRoleContext[] | undefined> {\n if (!this.isGlobal || !this.application) {\n return undefined;\n }\n var payload: SearchPropertyValue[] = [\n {\n PropertyName: 'Application',\n EntityValue: this.application,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n // {\n // PropertyName: 'APIKey',\n // EntityValue: this.envSvc.environment.APIKey,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // },\n ];\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Application/SearchApplicationRoleContexts/0/0`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n var result = (res as PagedResult<ApplicationRoleContext>).Result;\n return result;\n }\n }\n async getAllRoles(): Promise<Role[] | undefined> {\n // var payload: SearchPropertyValue[] = [\n // {\n // PropertyName: 'APIKey',\n // EntityValue: this.envSvc.environment.APIKey,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ\n // }\n // ]\n this.utilService.sendBI(true);\n const res = await this.server.get(`Role/GetRoles/0/${this.pageSize}`);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n this.pageState = res as PagedResult<Role>;\n var result = (res as PagedResult<Role>).Result;\n return result;\n }\n }\n\n async loadMore() {\n if (!this.pageState) {\n return;\n }\n this.utilService.sendBI(true);\n const res =\n this.currentFilters.length > 0 ||\n this.currentSorts.length > 0 ||\n this.currentSearchTerm.trim().length > 0\n ? await this.loadMoreFiltersAndSorts()\n : await this.server.get(\n `Role/GetRoles/${this.pageState.Skip}/${this.pageSize}`\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n this.pageState = res as PagedResult<Role>;\n var result = (res as PagedResult<Role>).Result;\n const data = this.setUpMappedDataExtra(result);\n this.data = this.data.concat(data);\n this.setUpCardDataExtra(data);\n }\n }\n\n getApplicationContextCode(name: string): string {\n const item = this.roleContextsStore.find((x) => x.Name == name);\n return item ? item.Code : '';\n }\n getApplicationActionCode(name: string): string {\n const item = this.roleActionsStore.find((x) => x.Name == name);\n return item ? item.Code : '';\n }\n\n findParent(cardData: CardData[], target: CardData): CardData | null {\n for (const item of cardData) {\n if (item.children.includes(target)) {\n return item; // Immediate parent found\n }\n const parent = this.findParent(item.children, target);\n if (parent) {\n return parent;\n }\n }\n return null; // Not found\n }\n\n isAllSelected(item: CardData): boolean {\n const parent =\n this.cardContextHistoryData.length > 0\n ? this.findParent(this.cardContextHistoryData[0], item)\n : this.findParent(this.cardData, item);\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Action &&\n (parent.data as MappedRoleContext).RoleActions.some((y) => !y.Selected)\n ) {\n return false;\n }\n\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Permission &&\n (parent.data as MappedRole).RoleContexts.some((y) => !y.Selected)\n ) {\n return false;\n }\n return true;\n }\n\n isCheckboxDisabled(item: CardData): boolean {\n const parent =\n this.cardContextHistoryData.length > 0\n ? this.findParent(this.cardContextHistoryData[0], item)\n : this.findParent(this.cardData, item);\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Action &&\n (parent.data.Selected == false ||\n (this.permissionConfig != null &&\n !this.permissionConfig.Actions['AddAction']))\n ) {\n return true;\n }\n\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Permission &&\n this.permissionConfig != null &&\n !this.permissionConfig.Actions['AddContext']\n ) {\n return true;\n }\n return false;\n }\n\n setUpMappedData(data: Role[]) {\n this.data = data.map((x) => {\n return {\n ...x,\n Id: x.Code,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = x.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? x.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: x.Code,\n Context: '',\n id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n Id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n ServiceName:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: x.Code,\n id: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n Id: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1 ? x.RoleContexts[existingId].ServiceName : '',\n APIKey:\n existingId > -1\n ? x.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(config.Name),\n };\n\n return context;\n }),\n };\n });\n }\n setUpMappedDataExtra(data: Role[]): MappedRole[] {\n return data.map((x) => {\n return {\n ...x,\n Id: x.Code,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = x.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? x.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: x.Code,\n Context: '',\n id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n Id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n ServiceName:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: x.Code,\n id: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n Id: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1 ? x.RoleContexts[existingId].ServiceName : '',\n APIKey:\n existingId > -1\n ? x.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(config.Name),\n };\n\n return context;\n }),\n };\n });\n }\n\n setUpCardData() {\n const cardData: CardData[] = this.data.map((x) => {\n return {\n selected: false,\n title: x.Name,\n data: x,\n body: [],\n children: x.RoleContexts.map((c) => {\n return {\n selected: false,\n title: this.getFormattedName(c.Name),\n data: c,\n body: [],\n children: c.RoleActions.map((a) => {\n return {\n selected: false,\n title: this.getFormattedName(a.Name),\n data: a,\n body: [],\n children: [],\n };\n }),\n };\n }),\n };\n });\n this.cardData = cardData;\n }\n setUpCardDataExtra(baseData: MappedRole[]) {\n const cardData: CardData[] = baseData.map((x) => {\n return {\n selected: false,\n title: x.Name,\n data: x,\n body: [],\n children: x.RoleContexts.map((c) => {\n return {\n selected: false,\n title: this.getFormattedName(c.Name),\n data: c,\n body: [],\n children: c.RoleActions.map((a) => {\n return {\n selected: false,\n title: this.getFormattedName(a.Name),\n data: a,\n body: [],\n children: [],\n };\n }),\n };\n }),\n };\n });\n this.cardData = this.cardData.concat(cardData);\n }\n\n getFormattedName(name: string): string {\n // Split the key on capital letters, handling \"And\" as lowercase\n const words = name\n .split(/(?=[A-Z])/)\n .map((word) => (word === 'And' ? 'and' : word));\n // Join the words with spaces\n return words.join(' ');\n }\n\n viewDetailsFromTable(data: MappedRole) {\n const cardData = this.cardData.find((x) => x.data == data);\n console.log({ Data: data });\n console.log({ CardData: this.cardData });\n if (cardData) {\n this.dataView.isTableView = false;\n this.viewDetails(cardData);\n }\n this.closePopUp();\n }\n\n viewDetails(context: CardData) {\n this.cardContextHistory.push(context);\n this.cardContextHistoryData.push(this.cardData);\n if (\n context.data.ChildrenType &&\n context.data.ChildrenType != this.childPermissionRef\n ) {\n this.searchContextHistory.push(this.searchContext);\n this.searchContext = '';\n }\n this.cardData = context.children;\n this.cardDataView.clearData();\n }\n viewDetailsChild(context: CardData) {\n if (this.currentExpandedCard) {\n this.cardContextHistory.push(this.currentExpandedCard);\n this.cardContextHistory.push(context);\n this.cardContextHistoryData.push(this.cardData);\n this.cardContextHistoryData.push(this.currentExpandedCard.children);\n this.cardData = context.children;\n this.cardDataView.clearData();\n }\n }\n\n roleCardClicked(item: CardData) {\n this.currentData = this.cardDataView.onItemClick(item);\n // if (this.currentData) {\n // this.form.controls['Name'].setValue(this.currentData.data?.Name);\n // }\n }\n\n toggleChildren(item: CardData) {\n var currToggleState = item.isChildrenExpanded;\n this.cardData.forEach((_) => {\n _.isChildrenExpanded = false;\n });\n item.isChildrenExpanded = !currToggleState;\n if (item.isChildrenExpanded) {\n this.currentExpandedCard = item;\n } else {\n this.currentExpandedCard = null;\n }\n }\n\n goToTableView() {\n if (!this.currentData) {\n return;\n }\n this.dataView.toggleView();\n const id = this.currentData.data ? this.currentData.data.Id : '';\n if (id.trim().length > 0 && !this.tableView.isRowEditing(id)) {\n this.tableView.toggleRowEdit(id);\n }\n }\n closeDetails() {\n this.cardData =\n this.cardContextHistoryData[this.cardContextHistoryData.length - 1];\n this.cardContextHistoryData.pop();\n this.cardContextHistory.pop();\n\n if (this.searchContextHistory.length > 0) {\n this.searchContext =\n this.searchContextHistory[this.searchContextHistory.length - 1];\n this.searchContextHistory.pop();\n } else {\n this.searchContext = '';\n }\n\n setTimeout(() => {\n if (this.dataView.isTableView) {\n this.dataView.toggleView();\n }\n }, 200);\n }\n\n getCardSubCaption(item: CardData) {\n const selected = item.children.filter((x) => x.data.Selected).length;\n const total = item.children.length;\n return `${selected} of ${total} ${\n total > 1 ? item.data.ChildrenType + 's' : item.data.ChildrenType\n }`;\n }\n\n getUpdatedRole(role: MappedRole): Role {\n const newRole = role;\n newRole.RoleContexts = role.RoleContexts.filter((x) => x.Selected).map(\n (y) => {\n y.RoleActions = y.RoleActions.filter((z) => z.Selected);\n return y;\n }\n );\n newRole.DataState =\n newRole.DataState == ObjectState.New\n ? ObjectState.New\n : ObjectState.Changed;\n newRole.Id = '';\n return newRole as Role;\n }\n async saveRole() {\n if (this.currentData) {\n var role: MappedRole = this.currentData.data as MappedRole;\n // role.Name = this.form.controls['Name'].value;\n if (this.currentData.data.Name.trim().length == 0) {\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n const mappedRole = this.getUpdatedRole(JSON.parse(JSON.stringify(role)));\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[\n existingId\n ].RoleActions.findIndex((c) => c.Name == action)\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction:\n this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id:\n existingId > -1\n ? roleResult.RoleContexts[existingId].Code\n : '',\n Id:\n existingId > -1\n ? roleResult.RoleContexts[existingId].Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1\n ? roleResult.RoleContexts[existingId].Code\n : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n\n return context;\n }),\n };\n\n const itemIndex = this.data.findIndex(\n (x) => x == this.currentData?.data\n );\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Code;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code =\n y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[\n j\n ].ServiceName = y.ServiceName;\n });\n });\n this.data = this.data.map((x) => x);\n this.cacheItem(this.data[itemIndex]);\n // this.currentData = {\n // selected: true,\n // title: mappedRoleSave.Name,\n // data: mappedRoleSave,\n // isChildrenExpanded: this.currentData.isChildrenExpanded,\n // body: [],\n // children: mappedRoleSave.RoleContexts.map((c) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(c.Name),\n // data: c,\n // body: [],\n // children: c.RoleActions.map((a) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(a.Name),\n // data: a,\n // body: [],\n // children: [],\n // };\n // }),\n // };\n // }),\n // };\n }\n }\n }\n }\n }\n async tableSaveRole(role: MappedRole, callBack: () => any) {\n if (role.Name.trim().length == 0) {\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n const mappedRole = this.getUpdatedRole(JSON.parse(JSON.stringify(role)));\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n Id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n\n return context;\n }),\n };\n\n const itemIndex = this.data.findIndex(\n (x) => x == this.currentData?.data\n );\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Code;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code = y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].ServiceName =\n y.ServiceName;\n });\n });\n this.data = this.data.map((x) => x);\n this.cacheItem(this.data[itemIndex]);\n }\n callBack();\n }\n }\n }\n\n async saveRoleDynamic(item: CardData) {\n if (this.isCheckboxDisabled(item)) {\n this.utilService.showInfo('Parent UI not selected');\n return;\n }\n\n var role: CardData | null =\n this.cardContextHistory.length > 0\n ? this.cardContextHistory[0]\n : this.currentExpandedCard\n ? this.currentExpandedCard\n : null;\n var cardDataRef: CardData[] | null =\n this.cardContextHistoryData.length > 0\n ? this.cardContextHistoryData[0]\n : this.currentExpandedCard\n ? this.cardData\n : null;\n // const isExpandedCard: boolean =\n // this.cardContextHistory.length > 0\n // ? false\n // : this.currentExpandedCard\n // ? true\n // : false;\n if (!role) {\n return;\n }\n if (role.data.Name.trim().length == 0) {\n item.data.Selected = false;\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n item.data.Selected = !item.data.Selected;\n const mappedRole = this.getUpdatedRole(\n JSON.parse(JSON.stringify(role.data))\n );\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n item.data.Selected = false;\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n Id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n return context;\n }),\n };\n const itemIndex = cardDataRef\n ? cardDataRef.findIndex((x) => x.data == role?.data)\n : -1;\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Code;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code = y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].ServiceName =\n y.ServiceName;\n });\n });\n // this.data[itemIndex].RoleContexts = mappedRoleSave.RoleContexts;\n\n this.data = this.data.map((x) => x);\n // if (cardDataRef) {\n // console.log({\n // XDataIsHere: JSON.parse(JSON.stringify(cardDataRef)),\n // });\n // cardDataRef[itemIndex] = {\n // selected: cardDataRef[itemIndex].selected,\n // isChildrenExpanded: cardDataRef[itemIndex].isChildrenExpanded,\n // title: mappedRoleSave.Name,\n // data: mappedRoleSave,\n // body: [],\n // children: mappedRoleSave.RoleContexts.map((c) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(c.Name),\n // data: c,\n // body: [],\n // children: c.RoleActions.map((a) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(a.Name),\n // data: a,\n // body: [],\n // children: [],\n // };\n // }),\n // };\n // }),\n // };\n // }\n }\n }\n }\n }\n\n async saveAllRoleDynamic(item: CardData) {\n if (this.isCheckboxDisabled(item)) {\n this.utilService.showInfo('Parent UI not selected');\n return;\n }\n\n var role: CardData | null =\n this.cardContextHistory.length > 0\n ? this.cardContextHistory[0]\n : this.currentExpandedCard\n ? this.currentExpandedCard\n : null;\n var cardDataRef: CardData[] | null =\n this.cardContextHistoryData.length > 0\n ? this.cardContextHistoryData[0]\n : this.currentExpandedCard\n ? this.cardData\n : null;\n // const isExpandedCard: boolean =\n // this.cardContextHistory.length > 0\n // ? false\n // : this.currentExpandedCard\n // ? true\n // : false;\n if (!role) {\n return;\n }\n if (role.data.Name.trim().length == 0) {\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n\n const isAllSelected = this.isAllSelected(item);\n\n const parent =\n this.cardContextHistoryData.length > 0\n ? this.findParent(this.cardContextHistoryData[0], item)\n : this.findParent(this.cardData, item);\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Action\n ) {\n (parent.data as MappedRoleContext).RoleActions.forEach((x) => {\n x.Selected = !isAllSelected;\n });\n }\n\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Permission\n ) {\n (parent.data as MappedRole).RoleContexts.forEach((x) => {\n x.Selected = !isAllSelected;\n });\n }\n\n const mappedRole = this.getUpdatedRole(\n JSON.parse(JSON.stringify(role.data))\n );\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n item.data.Selected = false;\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n Id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n return context;\n }),\n };\n const itemIndex = cardDataRef\n ? cardDataRef.findIndex((x) => x.data == role?.data)\n : -1;\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Code;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code = y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].ServiceName =\n y.ServiceName;\n });\n });\n // this.data[itemIndex].RoleContexts = mappedRoleSave.RoleContexts;\n\n this.data = this.data.map((x) => x);\n // if (cardDataRef) {\n // console.log({\n // XDataIsHere: JSON.parse(JSON.stringify(cardDataRef)),\n // });\n // cardDataRef[itemIndex] = {\n // selected: cardDataRef[itemIndex].selected,\n // isChildrenExpanded: cardDataRef[itemIndex].isChildrenExpanded,\n // title: mappedRoleSave.Name,\n // data: mappedRoleSave,\n // body: [],\n // children: mappedRoleSave.RoleContexts.map((c) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(c.Name),\n // data: c,\n // body: [],\n // children: c.RoleActions.map((a) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(a.Name),\n // data: a,\n // body: [],\n // children: [],\n // };\n // }),\n // };\n // }),\n // };\n // }\n }\n }\n }\n }\n\n saveDataAll() {\n const roles: Role[] = this.data.map((x) => {\n return {\n ...x,\n RoleContexts: x.RoleContexts.filter((y) => y.Selected).map((z) => {\n return {\n ...z,\n RoleActions: z.RoleActions.filter(\n (a) => a.Selected\n ) as RoleAction[],\n };\n }) as RoleContext[],\n };\n });\n }\n\n updateTable() {\n this.data = this.data.map((x) => x);\n }\n\n onViewChange(isGridView: boolean): void {}\n onStateChange(event: { key: string; value: boolean }): void {\n switch (event.key) {\n case 'create':\n var newMappedRole: MappedRole = {\n RoleContexts: this.sourceData.map((config) => {\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: false,\n RoleActions: config.Actions.map((action) => {\n var act: MappedRoleAction = {\n Selected: false,\n Name: action,\n Role: '',\n Context: '',\n id: '',\n Id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n APIKey: this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: '',\n id: '',\n Id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n APIKey: this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n\n return context;\n }),\n ChildrenType: ChildrenType.Permission,\n Name: '',\n id: (this.cardData.length + 1).toString(),\n Id: (this.cardData.length + 1).toString(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n Application: this.application ? this.application : undefined,\n APIKey: this.envSvc.environment.APIKey,\n };\n const cardData: CardData = {\n selected: false,\n title: newMappedRole.Name,\n data: newMappedRole,\n body: [],\n children: newMappedRole.RoleContexts.map((c) => {\n return {\n selected: false,\n title: this.getFormattedName(c.Name),\n data: c,\n body: [],\n children: c.RoleActions.map((a) => {\n return {\n selected: false,\n title: this.getFormattedName(a.Name),\n data: a,\n body: [],\n children: [],\n };\n }),\n };\n }),\n };\n this.data = this.data.concat([newMappedRole]);\n this.cardData.push(cardData);\n this.roleCardClicked(cardData);\n this.dataView.isTableView = false;\n break;\n default:\n break;\n }\n }\n\n showTableView: boolean = false;\n onSelectionChange(selectedRows: Role[]) {}\n retryMessage() {}\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n const updatedColumnDef: ColumnDefinition<MappedRole>[] = [];\n updatedColumns.forEach((col) => {\n const matchingCol = this.roleControlSvc.roleColumns.find(\n (column) => column.header === col.name || column.id === col.name\n );\n if (matchingCol) {\n updatedColumnDef.push(matchingCol);\n }\n });\n\n this.visibleColumnDef = [...updatedColumnDef];\n }\n\n exportFiltersAndSorts = async (pageState: {\n skip: number;\n limit: number;\n }) => {\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName: x.name,\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(DateFilterTypes).includes(x.condition)\n ? (DateFilterTypes[\n x.condition as keyof typeof DateFilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type: SearchPropertyValueType.Date,\n };\n });\n payload.push({\n PropertyName: 'APIKey',\n EntityValue: this.envSvc.environment.APIKey,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName: sort.name,\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.get(\n `Role/GetRolesWithParam/${this.currentSearchTerm.trim()}/${\n pageState.skip\n }/${pageState.limit}`\n )\n : await this.server.post(\n `Role/SearchRoles/${pageState.skip}/${pageState.limit}`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return [];\n } else {\n var result = (res as PagedResult<Role>).Result;\n return result as MappedRole[];\n }\n };\n\n async updateFiltersAndSorts(isSearch: boolean = false) {\n if (!isSearch) {\n this.dataView.onClearSearch();\n this.currentSearchTerm = '';\n this.cdr.detectChanges();\n const clickEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n document.dispatchEvent(clickEvent);\n }\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName: x.name,\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(DateFilterTypes).includes(x.condition)\n ? (DateFilterTypes[\n x.condition as keyof typeof DateFilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type: SearchPropertyValueType.Date,\n };\n });\n payload.push({\n PropertyName: 'APIKey',\n EntityValue: this.envSvc.environment.APIKey,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName: sort.name,\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.get(\n `Role/GetRolesWithParam/${this.currentSearchTerm.trim()}/0/${\n this.pageSize\n }`\n )\n : await this.server.post(`Role/SearchRoles/0/${this.pageSize}`, payload);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.currentFilters = [];\n this.currentSorts = [];\n return undefined;\n } else {\n this.cardDataView.clearData();\n this.currentData = null;\n this.pageState = res as PagedResult<Role>;\n var result = (res as PagedResult<Role>).Result;\n this.setUpMappedData(result);\n this.setUpCardData();\n }\n }\n async loadMoreFiltersAndSorts(): Promise<PagedResult<Role> | undefined> {\n if (!this.pageState) {\n return;\n }\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName: x.name,\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(DateFilterTypes).includes(x.condition)\n ? (DateFilterTypes[\n x.condition as keyof typeof DateFilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type: SearchPropertyValueType.Date,\n };\n });\n payload.push({\n PropertyName: 'APIKey',\n EntityValue: this.envSvc.environment.APIKey,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName: sort.name,\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.get(\n `Role/GetRolesWithParam/${this.currentSearchTerm.trim()}/${\n this.pageState.Skip\n }/${this.pageSize}`\n )\n : await this.server.post(\n `Role/SearchRoles/${this.pageState.Skip}/${this.pageSize}`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n var result = res as PagedResult<Role>;\n return result;\n }\n }\n onFilterUpdated(updatedFilters: IDataFilter[] | string) {\n // Ensure updatedFilters is an array\n if (Array.isArray(updatedFilters)) {\n this.currentFilters = updatedFilters;\n this.updateFiltersAndSorts();\n }\n }\n onSortUpdated(updatedSorts: IDataFilter[]) {\n this.currentSorts = updatedSorts;\n console.log({ CurrSorts: this.currentSorts });\n this.updateFiltersAndSorts();\n }\n\n handleSearch(event: { key: string; value: string }) {\n this.searchTerm$.next(event.value);\n }\n\n handleExport(exportedData: Partial<any>[]) {\n // console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n getMockRoles(): Role[] {\n return new Array(10).fill(1).map((id, i) => ({\n Id: id + i,\n id: (id + i).toString(),\n Name: this.mockNames[i] || '',\n RoleContexts: this.randomContexts(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${id + i}`,\n Code: '',\n ServiceName: '',\n APIKey: '',\n }));\n }\n\n mockNames: string[] = [\n 'Admin',\n 'Super Admin',\n 'Manager',\n 'Intern',\n 'Production Manager',\n 'CEO',\n 'CTO',\n 'COO',\n 'Developer',\n 'Engineer',\n ];\n\n randomName(): string {\n const randomIndex = Math.floor(Math.random() * this.mockNames.length);\n return this.mockNames[randomIndex];\n }\n\n randomContexts(): RoleContext[] {\n const randomNumber = Math.floor(\n Math.random() * Object.keys(UIs).length + 1\n );\n var returnArray: RoleContext[] = [];\n const usedList: number[] = [];\n for (let i = 0; i < randomNumber; i++) {\n let randomIndex;\n do {\n randomIndex = Math.floor(Math.random() * Object.keys(UIs).length);\n } while (usedList.includes(randomIndex));\n\n returnArray.push({\n Id: 'context' + i,\n id: ('context' + i).toString(),\n Name: Object.keys(UIs)[randomIndex],\n Role: '',\n RoleActions: this.randomActions(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${'context' + i}`,\n Code: '',\n ServiceName: '',\n APIKey: '',\n ApplicationRoleContext: '',\n });\n usedList.push(randomIndex);\n }\n return returnArray;\n }\n\n randomActions(): RoleAction[] {\n const randomNumber = Math.floor(\n Math.random() * Object.keys(UIActions).length + 1\n );\n var returnArray: RoleAction[] = [];\n const usedList: number[] = [];\n for (let i = 0; i < randomNumber; i++) {\n let randomIndex;\n do {\n randomIndex = Math.floor(Math.random() * Object.keys(UIActions).length);\n } while (usedList.includes(randomIndex));\n\n returnArray.push({\n Id: 'action' + i,\n id: ('action' + i).toString(),\n Name: Object.keys(UIActions)[randomIndex],\n Role: '',\n Context: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${'action' + i}`,\n Code: '',\n ServiceName: '',\n APIKey: '',\n ApplicationRoleAction: '',\n });\n usedList.push(randomIndex);\n }\n return returnArray;\n }\n\n closePopUp() {\n this.openDropdownId = null;\n this.popUps.forEach((popUp) => {\n if (popUp.dropdownOpen) {\n popUp.toggleDropdown();\n }\n });\n }\n\n updateItem(value: any, key: string): any {\n return {\n [key]: value,\n };\n }\n\n editValue(value: MappedRole) {\n const card = this.cardData.find((x) => x.data.Id == value.Id);\n if (card && this.cardDataView) {\n this.dataView.toggleView();\n card.selected = true;\n this.currentData = this.cardDataView.onItemClick(card);\n this.closePopUp();\n // if (this.currentData) {\n // this.form.controls['Name'].setValue(this.currentData.data?.Name);\n // }\n }\n }\n\n tableCache = new Map<string, MappedRole>();\n\n cacheItem(item: MappedRole) {\n const cacheKey = item.Id;\n this.tableCache.set(cacheKey, JSON.parse(JSON.stringify(item)));\n }\n\n restoreCache(item: Role) {\n const cacheKey = item.Id;\n const itemCache = this.tableCache.get(cacheKey);\n if (itemCache) {\n item.Name = itemCache.Name;\n }\n this.tableCache.delete(cacheKey);\n }\n\n onSearchFocus() {\n this.isInputFocused = true;\n }\n\n onSearchBlur() {\n this.isInputFocused = false;\n }\n\n onInputFocus() {\n this.isInputFocused = true;\n }\n\n onInputBlur() {\n this.isInputFocused = false;\n }\n\n // onSearch(event: any) {\n // const searchTerm = event.target.value;\n // // if (this.firstSearch == false) {\n // // this.optionsCopy = cloneDeep(this._options);\n // // this.firstSearch = true;\n // // }\n // if (searchTerm.trim().length == 0) {\n // this.cardData = JSON.parse(JSON.stringify(this.dataCopy));\n // //this.firstSearch = false;\n // return;\n // }\n // this.cardData = this.dataCopy.filter(\n // (x) => typeof x.data.Name == 'string' && new RegExp(searchTerm, 'i').test(x.data.Name)\n // );\n\n // }\n\n get filteredData(): CardData[] {\n if (this.searchContext.trim().length == 0) {\n return this.cardData;\n }\n return this.cardData.filter(\n (x) =>\n typeof x.data.Name == 'string' &&\n new RegExp(this.searchContext, 'i').test(x.data.Name)\n );\n }\n\n onComplete(event: any[]) {\n var defaultItem: MappedRole = {\n RoleContexts: this.sourceData.map((config) => {\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: false,\n RoleActions: config.Actions.map((action) => {\n var act: MappedRoleAction = {\n Selected: false,\n Name: action,\n Role: '',\n Context: '',\n id: '',\n Id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n APIKey: this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: '',\n id: '',\n Id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n APIKey: this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(config.Name),\n };\n\n return context;\n }),\n ChildrenType: ChildrenType.Permission,\n Name: '',\n id: (this.cardData.length + 1).toString(),\n Id: (this.cardData.length + 1).toString(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n Application: this.application ? this.application : undefined,\n APIKey: this.envSvc.environment.APIKey,\n };\n this.importService.onComplete(\n event,\n defaultItem,\n 'Role/SaveRoles',\n this.envSvc.environment.AuthenticationAPI,\n 'Role',\n (items: MappedRole[]) => {\n this.data = this.data.concat(items);\n const cardData: CardData[] = items.map((x) => {\n return {\n selected: false,\n title: x.Name,\n data: x,\n body: [],\n children: [],\n };\n });\n this.cardData = this.cardData.concat(cardData);\n },\n this.pageState as PagedResult<MappedRole>\n );\n }\n}\n","<div #messageLog class=\"flex flex-col gap-4 message-log-container\">\n <div\n *ngIf=\"this.cardContextHistory.length > 0\"\n class=\"context-banner py-3 px-4 rounded-xl flex item-center justify-space-between gap-3\"\n >\n <div class=\"flex gap-2 flex-1 context-banner-content\">\n <div\n class=\"context-content items-center flex gap-2\"\n *ngFor=\"let context of this.cardContextHistory; index as i\"\n >\n <div class=\"context-main-content-container flex gap-4\">\n <span class=\"context-caption font-bold text-[#404040]\">{{\n context.data.ChildrenType &&\n context.data.ChildrenType == childPermissionRef\n ? context.data.Name\n : context.title\n }}</span>\n <span\n *ngIf=\"i == this.cardContextHistory.length - 1\"\n class=\"context-subcaption\"\n >{{ this.getCardSubCaption(context) }}</span\n >\n </div>\n <div *ngIf=\"i < this.cardContextHistory.length - 1\">/</div>\n </div>\n </div>\n <div class=\"flex justify-end\">\n <verben-svg\n (click)=\"closeDetails()\"\n class=\"cursor-pointer\"\n icon=\"close-circle-full\"\n [width]=\"20\"\n [height]=\"20\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n *ngIf=\"this.cardContextHistory.length > 0 && this.cardData.length > 0\"\n class=\"nested-top-container flex gap-2 items-center\"\n >\n <div class=\"flex items-center gap-2 px-2\">\n <input\n [disabled]=\"this.isCheckboxDisabled(this.cardData[0])\"\n type=\"checkbox\"\n class=\"mt-1 cursor-pointer\"\n [ngModel]=\"isAllSelected(this.cardData[0])\"\n (click)=\"\n $event.preventDefault(); this.saveAllRoleDynamic(this.cardData[0])\n \"\n />\n\n <span class=\"font-semibold\">Select All</span>\n </div>\n <div\n [ngClass]=\"{ focused: isInputFocused }\"\n tabindex=\"0\"\n (focus)=\"onSearchFocus()\"\n (blur)=\"onSearchBlur()\"\n class=\"search-section flex\"\n >\n <span class=\"search-icon flex\">\n <verben-svg\n icon=\"search\"\n stroke=\"#64748b\"\n [width]=\"15\"\n [height]=\"15\"\n ></verben-svg>\n </span>\n <div class=\"search-input-container\">\n <input\n [(ngModel)]=\"searchContext\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur()\"\n placeholder=\"Search...\"\n class=\"search-input\"\n />\n </div>\n </div>\n </div>\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: this.cardContextHistory.length == 0,\n isColumn: this.cardContextHistory.length == 0,\n isFilter: this.cardContextHistory.length == 0,\n isSort: this.cardContextHistory.length == 0,\n isExport:\n this.cardContextHistory.length == 0 &&\n (!permissionConfig || permissionConfig.Actions['Export']),\n isSelect: this.cardContextHistory.length == 0,\n isCreate:\n this.cardContextHistory.length == 0 &&\n (!permissionConfig || permissionConfig.Actions['Create']),\n isToggle: this.cardContextHistory.length == 0,\n isImport:\n this.cardContextHistory.length == 0 &&\n (!permissionConfig || permissionConfig.Actions['Import'])\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [isTableView]=\"false\"\n [selectedColumnCount]=\"0\"\n [selectedSortCount]=\"0\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n (onSearchChange)=\"handleSearch($event)\"\n >\n <div class=\"mt-2\" table-content>\n <lib-data-table\n [dataKey]=\"'Id'\"\n #dt\n [data]=\"data\"\n [columns]=\"visibleColumnDef\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"select\">\n <ng-template\n #cell\n let-isSelected=\"isSelected\"\n let-toggleRowSelection=\"toggleRowSelection\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isSelected\"\n (change)=\"toggleRowSelection()\"\n />\n </ng-template>\n <ng-template\n #header\n let-allRowsSelected=\"allRowsSelected\"\n let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"allRowsSelected()\"\n [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"updatedAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"name\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ value.Name }}\n </ng-template>\n <ng-template\n #cellEdit\n let-row=\"row\"\n let-updateValue=\"updateValue\"\n let-updateData=\"updateData\"\n let-value\n >\n <div class=\"width-max\">\n <verbena-input [(ngModel)]=\"value.Name\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template\n #cell\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-value\n >\n <verben-pop-Up\n #popup\n [customStyles]=\"{ 'z-index': '99' }\"\n [enableMouseLeave]=\"false\"\n >\n <verben-svg\n class=\"cursor-pointer actions-icon\"\n dropdown-trigger\n icon=\"list\"\n ></verben-svg>\n <div class=\"pop-up-content flex flex-col\" dropdown-content>\n <div\n *ngIf=\"\n !permissionConfig || permissionConfig.Actions['Create']\n \"\n (click)=\"toggleRowEdit(); cacheItem(value); closePopUp()\"\n class=\"pop-up-value cursor-pointer\"\n >\n Edit\n </div>\n <div\n (click)=\"viewDetailsFromTable(value)\"\n class=\"pop-up-value cursor-pointer\"\n >\n View Details\n </div>\n <div class=\"pop-up-value cursor-pointer\">View Users</div>\n </div>\n </verben-pop-Up>\n <!-- <div class=\"flex gap-4 items-center\">\n <verben-svg (click)=\"editValue(value)\" icon=\"edit\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n <span (click)=\"viewDetailsFromTable(value)\" class=\"view-links view-details\">view details</span>\n <span class=\"view-links view-users\">view users</span>\n </div> -->\n </ng-template>\n <ng-template\n #cellEdit\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-value\n >\n <div class=\"flex gap-2 items-center\">\n <verben-svg\n icon=\"tick\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"tableSaveRole(value, toggleRowEdit)\"\n ></verben-svg>\n <verben-svg\n (click)=\"restoreCache(value); toggleRowEdit()\"\n icon=\"close-no-circle\"\n [width]=\"15\"\n [height]=\"15\"\n ></verben-svg>\n <!-- <verben-svg icon=\"delete\" [width]=\"15\" [height]=\"15\"></verben-svg> -->\n <verben-svg\n icon=\"cardViewAlt\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editValue(value)\"\n ></verben-svg>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n #vdcv\n dataId=\"Id\"\n border=\"5px\"\n [cardDataList]=\"\n this.cardContextHistory.length > 0 ? filteredData : cardData\n \"\n rbgColor=\"#f5f6f9\"\n mg=\"0px\"\n >\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"\n this.cardContextHistory.length > 0 ? filteredData : cardData\n \"\n >\n <ng-template #card let-item>\n <div\n (click)=\"roleCardClicked(item)\"\n *ngIf=\"\n item.data.ChildrenType &&\n item.data.ChildrenType == childPermissionRef\n \"\n class=\"flex cursor-pointer h-[max-content]\"\n >\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"toggleChildren(item); $event.stopPropagation()\"\n [ngClass]=\"\n item.children && item.children.length\n ? 'visible'\n : 'invisible'\n \"\n class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"py-3 px-4 flex-1 h-[100%]\">\n <div\n class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\"\n >\n <div\n class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\"\n >\n <h3\n class=\"my-0 font-bold text-[#404040] leading-[19.5px]\"\n >\n {{ item.data.Name }}\n </h3>\n <span\n class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\"\n >\n {{ getCardSubCaption(item) }}\n </span>\n </div>\n\n <div\n *ngIf=\"item.children && item.children.length > 0\"\n class=\"flex items-end h-[100%]\"\n >\n <p\n (click)=\"viewDetails(item); $event.stopPropagation()\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\"\n >\n view details\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"\n !item.data.ChildrenType ||\n item.data.ChildrenType !== childPermissionRef\n \"\n class=\"flex h-[max-content]\"\n >\n <verben-svg\n [ngClass]=\"\n item.children && item.children.length\n ? 'visible'\n : 'invisible'\n \"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"toggleChildren(item)\"\n class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input\n *ngIf=\"item.data?.Selected != undefined\"\n [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\"\n class=\"mt-1 cursor-pointer\"\n [(ngModel)]=\"item.data.Selected\"\n (click)=\"\n $event.preventDefault(); this.saveRoleDynamic(item)\n \"\n />\n <div\n class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\"\n >\n <div\n class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\"\n >\n <h3\n class=\"my-0 font-bold text-[#404040] leading-[19.5px]\"\n >\n {{ item.title }}\n </h3>\n <span\n class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\"\n >\n {{ getCardSubCaption(item) }}\n </span>\n </div>\n\n <div\n *ngIf=\"item.children && item.children.length > 0\"\n class=\"flex items-end h-[100%]\"\n >\n <p\n (click)=\"viewDetails(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\"\n >\n view details\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #cardChild let-index=\"index\" let-item>\n <div class=\"flex gap-2 items-start h-[max-content]\">\n <input\n [ngClass]=\"index == 0 ? 'visible' : 'invisible'\"\n [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\"\n class=\"mt-1 cursor-pointer\"\n [ngModel]=\"isAllSelected(item)\"\n (click)=\"\n $event.preventDefault(); this.saveAllRoleDynamic(item)\n \"\n />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input\n *ngIf=\"item.data?.Selected != undefined\"\n [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\"\n class=\"mt-1 cursor-pointer\"\n [(ngModel)]=\"item.data.Selected\"\n (click)=\"\n $event.preventDefault(); this.saveRoleDynamic(item)\n \"\n />\n <div\n class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\"\n >\n <div\n class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\"\n >\n <h3\n class=\"my-0 font-bold text-[#404040] leading-[19.5px]\"\n >\n {{ item.title }}\n </h3>\n <span\n class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\"\n >\n {{ getCardSubCaption(item) }}\n </span>\n </div>\n\n <div\n *ngIf=\"item.children && item.children.length > 0\"\n class=\"flex items-end h-[100%]\"\n >\n <p\n (click)=\"viewDetailsChild(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\"\n >\n view details\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n <verben-right-card-data-view\n *ngIf=\"this.cardContextHistory.length == 0\"\n >\n <ng-template #parent>\n <div\n *ngIf=\"this.currentData\"\n class=\"flex flex-col rounded-xl h-full w-full justify-between relative space-y-4\"\n >\n <verbena-input\n name=\"Name\"\n label=\"Name\"\n (ngModelChange)=\"updateTable()\"\n [(ngModel)]=\"this.currentData.data.Name\"\n />\n\n <!-- buttons -->\n <div class=\"flex justify-between bottom-8 left-0 right-0\">\n <div></div>\n <!-- <verbena-button class=\"verben-delete-button\" text=\"Delete\"></verbena-button> -->\n <div class=\"flex gap-3\">\n <verbena-button\n class=\"verben-switch-button\"\n (click)=\"goToTableView()\"\n text=\"Switch To Table\"\n ></verbena-button>\n <verbena-button\n class=\"verben-primary-button\"\n (click)=\"this.saveRole()\"\n text=\"Save\"\n ></verbena-button>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-right-card-data-view>\n <!-- <verben-right-card-data-view>\n yeshhhhhh\n </verben-right-card-data-view> -->\n\n <verben-card-data-view-footer\n *ngIf=\"this.cardContextHistory.length == 0\"\n >\n <div class=\"flex gap-2 justify-between\">\n <div\n *ngIf=\"\n !vdcv.hasCurrentItem() && this.cardContextHistory.length == 0\n \"\n class=\"message-log-button-container flex justify-between\"\n >\n <!-- <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button> -->\n </div>\n <div\n class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button (click)=\"loadMore()\" class=\"load-more view-links\">\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n (filtersApplied)=\"onFilterUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div import-content>\n <lib-data-import\n [previewColumns]=\"visibleColumnDef\"\n title=\"role\"\n (importEventData)=\"onComplete($event)\"\n [columnTemplates]=\"columnTemplates()\"\n >\n </lib-data-import>\n </div>\n <div export-content>\n <lib-data-xport\n [useImportKey]=\"true\"\n [columns]=\"visibleColumnDef\"\n [data]=\"data\"\n [dataQueryFunction]=\"exportFiltersAndSorts\"\n >\n </lib-data-xport>\n <!-- <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export> -->\n </div>\n </verben-data-view>\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-between\">\n <div class=\"message-log-button-container flex justify-between\">\n <!-- <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button> -->\n </div>\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData.length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links\">\n Load more\n </button>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { RoleControlComponent } from './role-control.component';\nimport { SharedModule } from 'verben-authentication-ui/src/lib/shared';\n\n@NgModule({\n declarations: [RoleControlComponent],\n imports: [SharedModule],\n exports: [RoleControlComponent],\n})\nexport class RoleControlModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.RoleControlService"],"mappings":"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"}
|