{"version":3,"file":"src_app_admin_users_users_module_ts.dae5842ceeaea5c7.js","mappings":"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","sources":["./src/app/admin/users/roledetails-dialog/roledetails-dialog.component.ts","./src/app/admin/users/roledetails-dialog/roledetails-dialog.component.html","./src/app/admin/users/roles-dialog/roles-dialog.component.ts","./src/app/admin/users/roles-dialog/roles-dialog.component.html","./src/app/admin/users/user-dialog/user-dialog.component.ts","./src/app/admin/users/user-dialog/user-dialog.component.html","./src/app/admin/users/users.component.ts","./src/app/admin/users/users.component.html","./src/app/admin/users/users.module.ts"],"sourcesContent":["import { Component, Inject, OnInit } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormBuilder } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AppService } from 'src/app/app.service';\nimport { EncryptDecrypt } from 'src/app/theme/directives/encrypt_decrypt';\nimport { menuItems } from 'src/app/admin/components/menu/menu'\nimport { RolesDialogComponent } from '../roles-dialog/roles-dialog.component';\n\n@Component({\n  selector: 'app-roledetails-dialog',\n  templateUrl: './roledetails-dialog.component.html',\n  styleUrls: ['./roledetails-dialog.component.scss']\n})\nexport class RoledetailsDialogComponent implements OnInit {\n\n  public form!: UntypedFormGroup;\n  loading = false;\n  roles: any = [];\n  menuitems = menuItems;\n  mains: any = [];\n  selectedMenus: any = [];\n  selectedRole: any = '';\n  constructor(\n    public dialogRef: MatDialogRef<RoledetailsDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public appService: AppService,\n    public fb: UntypedFormBuilder, public snackBar: MatSnackBar, private encrypt: EncryptDecrypt,\n  ) {\n\n\n  }\n  setMain(a: any, id: any, title: any) {\n\n    const radiobuttons = document.getElementsByName(title);\n\n    if (radiobuttons.length == 0 && a.target.checked == true) {\n      this.selectedMenus.push(id)\n    }\n    else if (radiobuttons.length == 0 && a.target.checked == false) {\n      this.selectedMenus.pop(id)\n    }\n    else {\n\n\n      radiobuttons.forEach(element => {\n        (<HTMLInputElement>element).checked = a.target.checked;\n      });\n\n      if (a.target.checked == true) {\n        this.selectedMenus.push(id);\n        this.menuitems.filter(x => x.parentId == id).forEach(element => {\n          this.selectedMenus.push(element.id)\n        })\n\n      }\n      else {\n        this.menuitems.filter(x => x.parentId == id).forEach(element => {\n          this.selectedMenus.pop(element.id)\n        })\n        this.selectedMenus.pop(id);\n\n      \n        \n      }\n    }\n\n  }\n  setSub(a: any, item: any, id: any) {\n    const radiobuttons = document.getElementsByName(item.id);\n    if (a.target.checked == true) {\n      this.selectedMenus.push(id);\n\n      radiobuttons.forEach(element => {\n        if ((<HTMLInputElement>element).checked == false) {\n          this.selectedMenus.push(item.id);\n          (<HTMLInputElement>element).checked = a.target.checked;\n        }\n      });\n    } else {\n      this.selectedMenus.pop(id);\n      if (this.getAllunchecked(item.title) == false) {\n        this.selectedMenus.pop(item.id);\n        radiobuttons.forEach(element => {\n          (<HTMLInputElement>element).checked = a.target.checked;\n\n        });\n      }\n\n\n    }\n  }\n  getAllunchecked(name: any) {\n    let checked = false;\n    const radiobuttons = document.getElementsByName(name);\n    radiobuttons.forEach(element => {\n      if ((<HTMLInputElement>element).checked == true) {\n        checked = true;\n      }\n    });\n\n    return checked;\n  }\n  ngOnInit(): void {\n    this.getRoles();\n    this.mains = this.menuitems.filter(x => x.parentId == 0)\n  }\n  getSubMenu(menu: any) {\n\n    return this.menuitems.filter(x => x.parentId == menu.id);\n\n  }\n  ManageRole() {\n    this.openDialogRoleDialog(null);\n  }\n  public getRoles(): void {\n    this.loading = true;\n    this.appService.UserRoles()\n      .subscribe({\n        next: (data) => {\n          const body = JSON.parse(JSON.stringify(data));\n          this.roles = body;\n\n\n          this.loading = false;\n\n        },\n        error: (e) => {\n          this.loading = false;\n        },\n        complete: () => {\n          this.loading = false;\n        }\n      });\n  }\n  public openDialogRoleDialog(data: any | null) {\n    const dialogRef = this.appService.openDialog(RolesDialogComponent, data, 'theme-dialog');\n    dialogRef.afterClosed().subscribe(dat => {\n\n      this.getRoles();\n\n    });\n\n  }\n  onSubmit() {\n    if (this.selectedRole == '') {\n      this.snackBar.open('Please select the userrole', '×', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\n      return;\n    }\n\n    let username: string = \"\";\n    if (localStorage.getItem('TamuApp')) {\n\n      const TamuApp = JSON.parse(this.encrypt.Decrypt(localStorage.getItem('TamuApp')));\n      username = TamuApp.Username;\n    }\n    const req = {\n      Id: 0,\n      UserRoleId: this.selectedRole,\n      Menus: this.selectedMenus.toString(),\n      DoneBy: username\n    }\n  \n\n    this.loading = true;\n    this.appService.RoleDetail(req)\n      .subscribe({\n        next: (data) => {\n          this.loading = false;\n          if (data === \"\") {\n\n            this.snackBar.open('Roles saved successfully.', '×', { panelClass: 'success', verticalPosition: 'top', duration: 6000 });\n         \n            this.getselectRoledetails();\n          } else {\n            this.selectedMenus=[];\n            if (data != null)\n              this.snackBar.open(data.toString(), '×', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\n          }\n\n        },\n        error: (e) => {\n          this.loading = false;\n          this.selectedMenus=[];\n          this.snackBar.open(e.error, 'X', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\n        },\n        complete: () => {\n          this.loading = false;\n        }\n      });\n\n\n\n\n  }\n  SelectedUserRole(data: any) {\n\n    this.selectedRole = data;\n    this.getselectRoledetails();\n\n  }\n  clearSelection() {\n\n    this.mains.forEach(element => {\n      const radiobuttons = document.getElementsByName(element.title);\n      radiobuttons.forEach(element => {\n        (<HTMLInputElement>element).checked = false;\n      });\n      const radiobutton = document.getElementById(element.id);\n\n      if (radiobutton != null) {\n        (<HTMLInputElement>radiobutton).checked = false;\n\n      }\n\n    });\n\n\n\n  }\n  getselectRoledetails() {\n    this.loading = true;\n    this.clearSelection();\n    this.selectedMenus=[];\n    this.appService.UserRoleDetail(this.selectedRole)\n      .subscribe({\n        next: (data) => {\n          this.loading = false;\n          const body = JSON.parse(JSON.stringify(data));\n\n          if (body.Menus != null) {\n            const menus: any = body.Menus.split(',');\n            menus.forEach(element => {\n              this.selectedMenus.push(element);\n              const radiobutton = document.getElementById(element);\n\n              if (radiobutton != null) {\n                (<HTMLInputElement>radiobutton).checked = true;\n\n              }\n\n            });\n          }\n\n\n        },\n        error: (e) => {\n          this.loading = false;\n\n          this.snackBar.open(e.error, 'X', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\n        },\n        complete: () => {\n          this.loading = false;\n        }\n      });\n\n  }\n\n}\n","<div class=\"header bg-primary\">\n    <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\n        <h2 class=\"fw-500 secondary-font\">Manage Roles</h2>\n        <app-dialog-header-controls [dialogRef]=\"dialogRef\"></app-dialog-header-controls>\n    </div>\n</div>\n \n    <div fxLayout=\"row wrap\" class=\"mt-2\">\n        <div fxFlex=\"100\" fxFlex.gt-md=\"100\">\n\n            <div fxFlex=\"100\" fxFlex.gt-md=\"30\" class=\"px-3\">\n                <mat-form-field appearance=\"outline\" class=\"w-100\">\n                    <mat-label>UserRole</mat-label>\n                    <mat-select  (selectionChange)=\"SelectedUserRole($event.value)\" >\n                        <mat-option *ngFor=\"let role of roles\" [value]=\"role.value\">\n                            <span>{{role.label}}</span>\n                        </mat-option>\n                    </mat-select>\n                 \n                </mat-form-field>\n               \n            </div>\n            <div fxFlex=\"100\" fxFlex.gt-md=\"30\" class=\"px-3\">\n                <button mat-raised-button color=\"primary\" type=\"button\" class=\"uppercase\"\n                style=\"margin-top: 20px\" (click)=\"ManageRole()\">\n                <mat-icon>more_horiz</mat-icon>\n              \n            </button>\n            </div>\n        </div>\n \n\n        <div fxFlex=\"100\" fxFlex.gt-md=\"20\" *ngFor=\"let item of mains\">\n            <section class=\"example-section\">\n                <span class=\"example-list-section\">\n                    <input type=\"checkbox\" class=\"example-margin\" [name]=\"item.id\" [id]=\"item.id\"\n                  (change)=\"setMain($event,item.id, item.title)\"\n                  > \n                     <span style=\" text-transform: capitalize; color:#4C45B1\">\n                        {{item.title.replace('ADMIN_NAV.','').toLowerCase()}}\n                    </span>    \n                   \n                   \n                </span>\n                <span class=\"example-list-section\">\n                    <ul class=\"menulist\">\n                      <li *ngFor=\"let subitem of getSubMenu(item)\">\n                        <input type=\"checkbox\"  [name]=\"item.title\"  [id]=\"subitem.id\"\n                        (change)=\"setSub($event,item,subitem.id)\">\n                            <span style=\"text-transform: capitalize; color:#1F4690\">\n                                {{subitem.title.replace('ADMIN_NAV.','').toLowerCase()}}\n                            </span>    \n                        \n                      </li>\n                    </ul>\n                  </span>\n\n\n            </section>\n\n\n\n        </div>\n\n\n\n\n    </div>\n\n    <mat-divider></mat-divider>\n\n    <div fxLayout=\"row wrap\" class=\"mt-2\" style=\"margin-bottom: 15px;\">\n        <div fxFlex=\"100\" fxFlex.gt-md=\"100\" class=\"px-3  text-right\">\n            <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"onSubmit()\" class=\"uppercase\">Submit</button>\n\n        </div>\n    </div>\n\n\n \n\n\n\n\n<div class=\"overlay\" *ngIf=\"loading\">\n    <div class=\"center\">\n        <mat-spinner *ngIf=\"loading\"></mat-spinner>\n    </div>\n\n</div>","import { Component, Inject, OnInit } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AppService } from 'src/app/app.service';\nimport { EncryptDecrypt } from 'src/app/theme/directives/encrypt_decrypt';\nimport { emailValidator } from 'src/app/theme/utils/app-validators';\n\n@Component({\n  selector: 'app-roles-dialog',\n  templateUrl: './roles-dialog.component.html',\n  styleUrls: ['./roles-dialog.component.scss']\n})\nexport class RolesDialogComponent implements OnInit {\n\n  public form!: UntypedFormGroup;\n  loading = false;\n  roles: any = [];\n  constructor(\n    public dialogRef: MatDialogRef<RolesDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any, public appService: AppService,\n    public fb: UntypedFormBuilder, public snackBar: MatSnackBar, private encrypt: EncryptDecrypt,\n  ) {\n\n\n  }\n\n  ngOnInit(): void {\n\n    this.form = this.fb.group({\n      Id: 0,\n      UserRole: ['', Validators.required],\n    });\n\n    if (this.data) {\n      this.form.setValue(this.data);\n    }\n    this.getRoles();\n  }\n\n  onSubmit() {\n    if (this.form.valid) {\n\n      let username: string = \"\";\n    if (localStorage.getItem('TamuApp')) {\n\n        const TamuApp = JSON.parse(this.encrypt.Decrypt(localStorage.getItem('TamuApp')));\n        username = TamuApp.Username;\n    }\n\n      const req = {\n        Id: this.form.value.Id,\n        UserRole: this.form.value.UserRole,\n        DoneBy:username\n      }\n\n      this.loading = true;\n      this.appService.UserRole(req)\n        .subscribe({\n          next: (data) => {\n            this.loading = false;\n            if (data === \"\") {\n\n              this.snackBar.open('Role saved successfully.', '×', { panelClass: 'success', verticalPosition: 'top', duration: 6000 });\n              this.getRoles();\n              this.form.patchValue({Id:0, UserRole:null});\n            } else {\n              this.form.patchValue({Id:0, UserRole:null});\n              if (data != null)\n                this.snackBar.open(data.toString(), '×', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\n            }\n\n          },\n          error: (e) => {\n            this.loading = false;\n            this.form.patchValue({Id:0, UserRole:null});\n            this.snackBar.open(e.error, 'X', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\n          },\n          complete: () => {\n            this.loading = false;\n          }\n        });\n      \n\n    }\n  }\n  editRole(data: any, $event: any) {\n    const req = {\n      Id: data.data.Id,\n      UserRole: data.data.UserRole\n    }\n    this.form.patchValue(req);\n\n  }\n  deleteRole(data: any, $event: any) {\n    let username: string = \"\";\n    if (localStorage.getItem('TamuApp')) {\n\n        const TamuApp = JSON.parse(this.encrypt.Decrypt(localStorage.getItem('TamuApp')));\n        username = TamuApp.Username;\n    }\n\n    const req = {\n        Id: data.data.Id,\n        DoneBy: username\n    }\n    this.loading = true;\n    this.appService.RemoveUserRole(req)\n        .subscribe({\n            next: (data) => {\n\n                if (data === \"\") {\n\n                    this.snackBar.open('Role deleted successfully', '×', { panelClass: 'success', verticalPosition: 'top', duration: 6000 });\n                    this.getRoles();\n                    this.loading = false;\n                } else {\n\n                    if (data != null)\n                        this.snackBar.open(data.toString(), '×', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\n                }\n\n            },\n            error: (e) => {\n                this.loading = false;\n\n                this.snackBar.open(e.error, 'X', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\n            },\n            complete: () => {\n                this.loading = false;\n            }\n        });\n\n\n  }\n  public getRoles(): void {\n    this.loading = true;\n    this.appService.UserRoleList()\n      .subscribe({\n        next: (data) => {\n          const body = JSON.parse(JSON.stringify(data));\n          this.roles = body;\n\n\n          this.loading = false;\n\n        },\n        error: (e) => {\n          this.loading = false;\n        },\n        complete: () => {\n          this.loading = false;\n        }\n      });\n  }\n\n\n\n}\n","<div class=\"header bg-primary\">\n    <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\n        <h2 class=\"fw-500 secondary-font\">Manage Roles</h2>\n        <app-dialog-header-controls [dialogRef]=\"dialogRef\"></app-dialog-header-controls>\n    </div>\n</div>\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" autocomplete=\"off\" class=\"pt-3\">\n\n    <div fxLayout=\"row wrap\" class=\"mt-2\">\n         \n        <div fxFlex=\"100\" fxFlex.gt-md=\"60\" class=\"px-3\">\n            <mat-form-field appearance=\"outline\" class=\"w-100\">\n                <mat-label>UserRole</mat-label>\n                <input matInput formControlName=\"UserRole\" required>\n                <mat-error *ngIf=\"form.controls.UserRole.errors?.required\">UserRole is required\n                </mat-error>\n            </mat-form-field>\n        </div>\n        \n        <mat-divider></mat-divider>\n        <dx-data-grid id=\"gridContainer\" [dataSource]=\"roles\" [rowAlternationEnabled]=\"true\" [showBorders]=\"true\"\n        [showRowLines]=\"true\" [columnHidingEnabled]=\"true\" width=\"100%\" >\n        <dxo-paging [pageSize]=\"5\"></dxo-paging>\n        <dxo-pager [visible]=\"true\" [allowedPageSizes]=\"[5, 10,20,50, 'all']\" [displayMode]=\"'full'\"\n            [showPageSizeSelector]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n        <dxo-scrolling columnRenderingMode=\"virtual\"></dxo-scrolling>\n        <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n        <dxi-column dataField=\"Id\" caption=\"Id\" width=\"70\"></dxi-column>\n        <dxi-column dataField=\"UserRole\" caption=\"UserRole\"></dxi-column>\n        <dxi-column dataField=\"DateCreated\" caption=\"DateCreated\" width=\"120\"></dxi-column>\n        <dxi-column dataField=\"CreatedBy\" caption=\"DoneBy\" width=\"150\"></dxi-column>\n        <dxi-column caption=\"\" [width]=\"80\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"actions\"\n            [fixed]=\"true\" fixedPosition=\"right\"></dxi-column>\n        <div *dxTemplate=\"let data of 'actions'\">\n    \n            <button   class=\"gridbutton\" type=\"button\" (click)=\"editRole(data,$event)\" matTooltip=\"Edit Role\">\n                <mat-icon color=\"primary\">edit</mat-icon>\n            </button>\n    \n            &nbsp;\n            <button  class=\"gridbutton\"  type=\"button\" (click)=\"deleteRole(data,$event)\" matTooltip=\"Delete role\">\n                <mat-icon color=\"warn\">highlight_off</mat-icon>\n            </button>\n    \n    \n        </div>\n    </dx-data-grid>\n     \n       \n\n    </div>\n\n\n\n\n    <mat-divider></mat-divider>\n\n    <div fxLayout=\"row wrap\" class=\"mt-2\" style=\"margin-bottom: 15px;\">\n        <div fxFlex=\"100\" fxFlex.gt-md=\"100\" class=\"px-3  text-right\">\n            <button mat-raised-button color=\"primary\" type=\"submit\" class=\"uppercase\">Submit</button>\n\n        </div>\n    </div>\n</form>\n\n\n<div class=\"overlay\" *ngIf=\"loading\">\n    <div class=\"center\">\n        <mat-spinner *ngIf=\"loading\"></mat-spinner>\n    </div>\n\n</div>\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { AppService } from 'src/app/app.service';\r\nimport { EncryptDecrypt } from 'src/app/theme/directives/encrypt_decrypt';\r\nimport { emailValidator } from 'src/app/theme/utils/app-validators';\r\n\r\n@Component({\r\n  selector: 'app-user-dialog',\r\n  templateUrl: './user-dialog.component.html',\r\n  styleUrls: ['./user-dialog.component.scss']\r\n})\r\nexport class UserDialogComponent implements OnInit {\r\n  public form!: UntypedFormGroup;\r\n  loading = false;\r\n  roles: any = [];\r\n  constructor(\r\n    public dialogRef: MatDialogRef<UserDialogComponent>,\r\n    @Inject(MAT_DIALOG_DATA) public data: any, public appService: AppService,\r\n    public fb: UntypedFormBuilder, public snackBar: MatSnackBar,   private encrypt: EncryptDecrypt,\r\n  ) {\r\n\r\n\r\n   }\r\n\r\n  ngOnInit() {\r\n    this.getRoles();\r\n    this.form = this.fb.group({\r\n      Id: 0,\r\n      Email:  ['', Validators.compose([Validators.required, emailValidator])],\r\n      AlternateEmail: ['', Validators.compose([Validators.email, emailValidator])],\r\n      FullName: ['', Validators.required],\r\n      PhoneNumber: [''],\r\n      UserRole: ['', Validators.required],\r\n    }); \r\n\r\n    if (this.data) {\r\n      this.form.setValue(this.data);\r\n    }\r\n\r\n  }\r\n  onSubmit() {\r\n    if(this.form.valid){\r\n     \r\n      this.dialogRef.close(this.form.value);\r\n\r\n    }\r\n  }\r\n\r\n  \r\n  public getRoles(): void {\r\n    this.loading = true;\r\n    this.appService.UserRoles()\r\n        .subscribe({\r\n            next: (data) => {\r\n                const body = JSON.parse(JSON.stringify(data));\r\n                this.roles = body;\r\n              \r\n\r\n                this.loading = false;\r\n\r\n            },\r\n            error: (e) => {\r\n                this.loading = false;\r\n            },\r\n            complete: () => {\r\n                this.loading = false;\r\n            }\r\n        });\r\n}\r\n}\r\n","<div class=\"header bg-primary\">\r\n    <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\r\n        <h2 class=\"fw-500 secondary-font\">{{(data) ? 'Edit' : 'Add'}} User</h2>\r\n        <app-dialog-header-controls [dialogRef]=\"dialogRef\"></app-dialog-header-controls>\r\n    </div>\r\n</div>\r\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" autocomplete=\"off\" class=\"pt-3\">\r\n\r\n    <div fxLayout=\"row wrap\" class=\"mt-2\">\r\n        <div fxFlex=\"100\" fxFlex.gt-md=\"40\" class=\"px-3\">\r\n            <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n                <mat-label>Email</mat-label>\r\n                <input matInput formControlName=\"Email\" required>\r\n                <mat-error *ngIf=\"form.controls.Email.errors?.required\">Email are required\r\n                </mat-error>\r\n            </mat-form-field>\r\n           \r\n        </div>\r\n\r\n        <div fxFlex=\"100\" fxFlex.gt-md=\"60\" class=\"px-3\">\r\n            <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n                <mat-label>FullName</mat-label>\r\n                <input matInput formControlName=\"FullName\" required>\r\n                <mat-error *ngIf=\"form.controls.FullName.errors?.required\">FullName is required\r\n                </mat-error>\r\n            </mat-form-field>\r\n        </div>\r\n        \r\n        <div fxLayout=\"row wrap\" class=\"mt-2\" fxFlex=\"100\">\r\n            <div fxFlex=\"100\" fxFlex.gt-md=\"40\" class=\"px-3\">\r\n                <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n                    <mat-label>AlternateEmail</mat-label>\r\n                    <input matInput formControlName=\"AlternateEmail\">\r\n                  \r\n                </mat-form-field>\r\n            </div>\r\n\r\n            <div fxFlex=\"100\" fxFlex.gt-md=\"30\" class=\"px-3\">\r\n                <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n                    <mat-label>PhoneNumber</mat-label>\r\n                    <ngx-mat-intl-tel-input\r\n                    [preferredCountries]=\"['ci']\"\r\n                    [enablePlaceholder]=\"true\"\r\n                    [enableSearch]=\"true\"\r\n                    formControlName=\"PhoneNumber\"\r\n                    name=\"PhoneNumber\"\r\n                    #PhoneNumber\r\n                  ></ngx-mat-intl-tel-input>\r\n                  <mat-hint>e.g. {{PhoneNumber?.selectedCountry?.placeHolder}}</mat-hint>\r\n                  <mat-error *ngIf=\"form.controls.PhoneNumber.errors?.validatePhoneNumber\">Invalid PhoneNumber\r\n                </mat-error>\r\n                </mat-form-field>\r\n            </div>\r\n            <div fxFlex=\"100\" fxFlex.gt-md=\"30\" class=\"px-3\">\r\n                <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n                    <mat-label>UserRole</mat-label>\r\n                    <mat-select formControlName=\"UserRole\">\r\n                        <mat-option *ngFor=\"let role of roles\" [value]=\"role.value\">\r\n                            <span>{{role.label}}</span>\r\n                        </mat-option>\r\n                    </mat-select>\r\n                    <mat-error *ngIf=\"form.controls.UserRole.errors?.required\">UserRole is required</mat-error>\r\n                </mat-form-field>\r\n            </div>\r\n        </div>\r\n\r\n\r\n       \r\n\r\n    </div>\r\n\r\n\r\n\r\n\r\n    <mat-divider></mat-divider>\r\n\r\n    <div fxLayout=\"row wrap\" class=\"mt-2\" style=\"margin-bottom: 15px;\">\r\n        <div fxFlex=\"100\" fxFlex.gt-md=\"100\" class=\"px-3  text-right\">\r\n            <button mat-raised-button color=\"primary\" type=\"submit\" class=\"uppercase\">Submit</button>\r\n\r\n        </div>\r\n    </div>\r\n</form>\r\n\r\n\r\n<div class=\"overlay\" *ngIf=\"loading\">\r\n    <div class=\"center\">\r\n        <mat-spinner *ngIf=\"loading\"></mat-spinner>\r\n    </div>\r\n\r\n</div>","import { filter } from 'rxjs/operators';\r\nimport { saveAs } from 'file-saver';\r\nimport { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AppSettings, Settings } from '../../app.settings';\r\nimport { UserDialogComponent } from './user-dialog/user-dialog.component';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { AppService } from 'src/app/app.service';\r\nimport { EncryptDecrypt } from 'src/app/theme/directives/encrypt_decrypt';\r\nimport { exportDataGrid } from 'devextreme/excel_exporter';\r\nimport { Workbook } from 'exceljs';\r\nimport { RoledetailsDialogComponent } from './roledetails-dialog/roledetails-dialog.component';\r\n\r\n@Component({\r\n    selector: 'app-users',\r\n    templateUrl: './users.component.html',\r\n    styleUrls: ['./users.component.scss'],\r\n    encapsulation: ViewEncapsulation.None,\r\n    providers: []\r\n})\r\nexport class UsersComponent implements OnInit {\r\n    dataSource: any = [];\r\n    filtereduser: any = [];\r\n    loading = false;\r\n    selectedCategoryId = \"Administrator\";\r\n    constructor(public appSettings: AppSettings,\r\n        public dialog: MatDialog,\r\n        public appService: AppService,\r\n        public snackBar: MatSnackBar,\r\n        private encrypt: EncryptDecrypt,) {\r\n    }\r\n\r\n    ngOnInit() {\r\n        this.getUsers();\r\n    }\r\n    onChangeCategory($event: any) {\r\n\r\n        this.selectedCategoryId = $event.value;\r\n     \r\n\r\n        this.filtereduser = this.dataSource.filter((user: any) => user.UserGroup == $event.value)\r\n\r\n    }\r\n    public getUsers(): void {\r\n        this.loading = true;\r\n        this.appService.users()\r\n            .subscribe({\r\n                next: (data) => {\r\n                    const body = JSON.parse(JSON.stringify(data));\r\n                    this.dataSource = body;\r\n                    this.filtereduser = this.dataSource.filter((user: any) => user.UserGroup == \"Administrator\");\r\n\r\n\r\n                    this.loading = false;\r\n\r\n                },\r\n                error: (e) => {\r\n                    this.loading = false;\r\n                },\r\n                complete: () => {\r\n                    this.loading = false;\r\n                }\r\n            });\r\n    }\r\n    public addUser() {\r\n        this.openDialogStudent(null);\r\n    }\r\n    public updateUser(data: any, $event: any) {\r\n\r\n        const req = {\r\n            Id: data.data.Id,\r\n            Email: data.data.Email,\r\n            AlternateEmail: data.data.AlternateEmail,\r\n            FullName: data.data.FullName,\r\n            PhoneNumber: data.data.PhoneNumber,\r\n            UserRole: data.data.UserRole.toString()\r\n        }\r\n        this.openDialogStudent(req);\r\n\r\n    }\r\n    public resetpassword(data: any, $event: any) {\r\n        let username: string = \"\";\r\n        if (localStorage.getItem('TamuApp')) {\r\n\r\n            const TamuApp = JSON.parse(this.encrypt.Decrypt(localStorage.getItem('TamuApp')));\r\n            username = TamuApp.Username;\r\n        }\r\n\r\n        const req = {\r\n            Id: data.data.Id,\r\n            DoneBy: username\r\n        }\r\n        this.loading = true;\r\n        this.appService.ResetUserPassword(req)\r\n            .subscribe({\r\n                next: (data) => {\r\n\r\n                    if (data === \"\") {\r\n\r\n                        this.snackBar.open('User password reset successful, Login details sent on email', '×', { panelClass: 'success', verticalPosition: 'top', duration: 6000 });\r\n\r\n                        this.loading = false;\r\n                    } else {\r\n\r\n                        if (data != null)\r\n                            this.snackBar.open(data.toString(), '×', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\r\n                    }\r\n\r\n                },\r\n                error: (e) => {\r\n                    this.loading = false;\r\n\r\n                    this.snackBar.open(e.error, 'X', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\r\n                },\r\n                complete: () => {\r\n                    this.loading = false;\r\n                }\r\n            });\r\n\r\n    }\r\n    public disableUser(data: any, $event: any) {\r\n        let username: string = \"\";\r\n        if (localStorage.getItem('TamuApp')) {\r\n\r\n            const TamuApp = JSON.parse(this.encrypt.Decrypt(localStorage.getItem('TamuApp')));\r\n            username = TamuApp.Username;\r\n        }\r\n\r\n        const req = {\r\n            Id: data.data.Id,\r\n            DoneBy: username\r\n        }\r\n        this.loading = true;\r\n        this.appService.disableuser(req)\r\n            .subscribe({\r\n                next: (data) => {\r\n\r\n                    if (data === \"\") {\r\n\r\n                        this.snackBar.open('User disabled successfully', '×', { panelClass: 'success', verticalPosition: 'top', duration: 6000 });\r\n                        this.getUsers();\r\n                        this.loading = false;\r\n                    } else {\r\n\r\n                        if (data != null)\r\n                            this.snackBar.open(data.toString(), '×', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\r\n                    }\r\n\r\n                },\r\n                error: (e) => {\r\n                    this.loading = false;\r\n\r\n                    this.snackBar.open(e.error, 'X', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\r\n                },\r\n                complete: () => {\r\n                    this.loading = false;\r\n                }\r\n            });\r\n\r\n\r\n    }\r\n    public openDialogStudent(data: any | null) {\r\n        const dialogRef = this.appService.openDialog(UserDialogComponent, data, 'theme-dialog');\r\n        dialogRef.afterClosed().subscribe(dat => {\r\n\r\n            let username: string = \"\";\r\n            if (localStorage.getItem('TamuApp')) {\r\n\r\n                const TamuApp = JSON.parse(this.encrypt.Decrypt(localStorage.getItem('TamuApp')));\r\n                username = TamuApp.Username;\r\n            }\r\n\r\n            if (dat != null) {\r\n                const req = {\r\n                    Id: dat.Id,\r\n                    Email: dat.Email,\r\n                    AlternateEmail: dat.AlternateEmail,\r\n                    FullName: dat.FullName,\r\n                    PhoneNumber: dat.PhoneNumber,\r\n                    UserRole: dat.UserRole,\r\n                    UserGroup: \"1\",\r\n                    Username: dat.Email,\r\n                    DoneBy: username\r\n                }\r\n\r\n                this.loading = true;\r\n                this.appService.user(req)\r\n                    .subscribe({\r\n                        next: (data) => {\r\n\r\n                            if (data === \"\") {\r\n\r\n                                this.snackBar.open('User saved successfully, Login details sent on email', '×', { panelClass: 'success', verticalPosition: 'top', duration: 6000 });\r\n                                this.getUsers();\r\n                                this.loading = false;\r\n                            } else {\r\n\r\n                                if (data != null)\r\n                                    this.snackBar.open(data.toString(), '×', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\r\n                            }\r\n\r\n                        },\r\n                        error: (e) => {\r\n                            this.loading = false;\r\n\r\n                            this.snackBar.open(e.error, 'X', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\r\n                        },\r\n                        complete: () => {\r\n                            this.loading = false;\r\n                        }\r\n                    });\r\n            }\r\n\r\n\r\n        });\r\n\r\n    }\r\n    public manageRoles() {\r\n        this.openDialogRoleDetails(null);\r\n    }\r\n    public openDialogRoleDetails(data: any | null) {\r\n        const dialogRef = this.appService.openDialog(RoledetailsDialogComponent, data, 'theme-dialog');\r\n        dialogRef.afterClosed().subscribe(dat => {\r\n\r\n\r\n\r\n        });\r\n\r\n    }\r\n\r\n\r\n\r\n    onExporting(e) {\r\n        const workbook = new Workbook();\r\n        const worksheet = workbook.addWorksheet('Employees');\r\n\r\n        exportDataGrid({\r\n            component: e.component,\r\n            worksheet,\r\n            autoFilterEnabled: true,\r\n        }).then(() => {\r\n            workbook.xlsx.writeBuffer().then((buffer) => {\r\n                saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'Report.xlsx');\r\n            });\r\n        });\r\n        e.cancel = true;\r\n    }\r\n\r\n\r\n}","<div fxLayout=\"row wrap\" fxLayoutAlign=\"left\" class=\"w-100 p-1\">\r\n\r\n\r\n    <div fxFlex=\"100\" fxFlex.gt-sm=\"80\" class=\"px-3\" ngClass.sm=\"mt-1\" ngClass.xs=\"mt-1\">\r\n        <mat-button-toggle-group #group=\"matButtonToggleGroup\" appearance=\"legacy\" [value]=\"selectedCategoryId\"\r\n            class=\"categories-toogle-group mt-2\" (change)=\"onChangeCategory($event)\">\r\n\r\n            <mat-button-toggle value=\"Administrator\" class=\"letter Categorytbtn\">\r\n                Admin Users\r\n            </mat-button-toggle>\r\n            <mat-button-toggle value=\"Parents\" class=\"letter Categorytbtn\">\r\n                Parents\r\n            </mat-button-toggle>\r\n            <mat-button-toggle value=\"Staff\" class=\"letter Categorytbtn\">\r\n                Teachers\r\n            </mat-button-toggle>\r\n\r\n        </mat-button-toggle-group>\r\n    </div>\r\n \r\n    <div *ngIf=\"selectedCategoryId=='Administrator'\"  fxFlex=\"100\" fxFlex.gt-sm=\"20\" class=\"px-3\" ngClass.sm=\"mt-1\" ngClass.xs=\"mt-1\" style=\" text-align: right\" \r\n    (click)=\"addUser()\">\r\n        <button mat-raised-button color=\"primary\" type=\"button\" class=\"uppercase\">\r\n            <mat-icon>person_add</mat-icon>\r\n            Add User\r\n        </button>\r\n\r\n    </div>\r\n\r\n</div>\r\n\r\n<mat-divider></mat-divider>\r\n<div fxLayout=\"row wrap\" fxLayoutAlign=\"left\" class=\"w-100 p-1\">\r\n<dx-data-grid id=\"gridContainer\" [dataSource]=\"filtereduser\" [rowAlternationEnabled]=\"true\" [showBorders]=\"true\"\r\n    [showRowLines]=\"true\" [columnHidingEnabled]=\"true\" width=\"100%\" (onExporting)=\"onExporting($event)\">\r\n    <dxo-search-panel [visible]=\"true\" [width]=\"300\" placeholder=\"Search...\"></dxo-search-panel>\r\n    <dxo-paging [pageSize]=\"5\"></dxo-paging>\r\n    <dxo-pager [visible]=\"true\" [allowedPageSizes]=\"[5, 10,20,50, 'all']\" [displayMode]=\"'full'\"\r\n        [showPageSizeSelector]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\r\n    <dxo-scrolling columnRenderingMode=\"virtual\"></dxo-scrolling>\r\n    <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n    <dxo-export [enabled]=\"true\" [formats]=\"['Excel']\" [allowExportSelectedData]=\"true\"></dxo-export>\r\n    <dxi-column dataField=\"Id\" caption=\"Id\" width=\"70\"></dxi-column>\r\n    <dxi-column dataField=\"Username\" caption=\"Username\" width=\"180\"></dxi-column>\r\n    <dxi-column dataField=\"FullName\" caption=\"FullName\"></dxi-column>\r\n    <dxi-column dataField=\"Email\" caption=\"Email\"  width=\"180\"></dxi-column>\r\n    <dxi-column dataField=\"PhoneNumber\" caption=\"PhoneNumber\" width=\"120\"></dxi-column>\r\n    <dxi-column dataField=\"LastActive\" caption=\"LastActive\" width=\"100\"></dxi-column>\r\n    <dxi-column dataField=\"Status\" caption=\"Status\" width=\"120\"></dxi-column>\r\n    <dxi-column dataField=\"DateCreated\" caption=\"DateCreated\" width=\"120\"></dxi-column>\r\n    <dxi-column dataField=\"CreatedBy\" caption=\"DoneBy\" width=\"150\"></dxi-column>\r\n    <dxi-column caption=\"\" [width]=\"selectedCategoryId=='Administrator'?110:80\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"actions\"\r\n        [fixed]=\"true\" fixedPosition=\"right\"></dxi-column>\r\n    <div *dxTemplate=\"let data of 'actions'\">\r\n\r\n        <button  *ngIf=\"selectedCategoryId=='Administrator'\" class=\"gridbutton\"  type=\"button\" (click)=\"updateUser(data,$event)\" matTooltip=\"Edit User\">\r\n            <mat-icon color=\"primary\">edit</mat-icon>\r\n        </button>\r\n        &nbsp;\r\n        <button  class=\"gridbutton\"  type=\"button\" (click)=\"resetpassword(data,$event)\" matTooltip=\"Reset Password\">\r\n            <mat-icon color=\"accent\">refresh</mat-icon>\r\n        </button>\r\n        &nbsp;\r\n        <button  class=\"gridbutton\"  type=\"button\" (click)=\"disableUser(data,$event)\" matTooltip=\"Disable User\">\r\n            <mat-icon color=\"warn\">highlight_off</mat-icon>\r\n        </button>\r\n\r\n\r\n    </div>\r\n</dx-data-grid>\r\n \r\n \r\n \r\n<button mat-raised-button color=\"primary\" type=\"button\" class=\"uppercase\"  style=\"margin-top: 20px\"\r\n(click)=\"manageRoles()\">\r\n    <mat-icon>vpn_key</mat-icon>\r\n   Manage Roles\r\n</button>\r\n</div>\r\n \r\n<div class=\"overlay\" *ngIf=\"loading\">\r\n    <div class=\"center\">\r\n        <mat-spinner *ngIf=\"loading\"></mat-spinner>\r\n    </div>\r\n\r\n</div>","import { RoledetailsDialogComponent } from './roledetails-dialog/roledetails-dialog.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxPaginationModule } from 'ngx-pagination';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { PipesModule } from '../../theme/pipes/pipes.module';\r\nimport { UsersComponent } from './users.component';\r\nimport { UserDialogComponent } from './user-dialog/user-dialog.component';\r\nimport { NgxMatIntlTelInputComponent } from 'ngx-mat-intl-tel-input';\r\nimport { RolesDialogComponent } from './roles-dialog/roles-dialog.component';\r\n\r\nexport const routes: Routes = [\r\n  { path: '', component: UsersComponent, pathMatch: 'full' }\r\n];\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    HttpClientModule,\r\n    RouterModule.forChild(routes),\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    NgxPaginationModule,\r\n    SharedModule,\r\n    PipesModule,\r\n    NgxMatIntlTelInputComponent    \r\n  ],\r\n  declarations: [\r\n    UsersComponent,\r\n    UserDialogComponent,\r\n    RolesDialogComponent,\r\n    RoledetailsDialogComponent,\r\n  ] \r\n})\r\nexport class UsersModule { }\r\n"],"names":["MAT_DIALOG_DATA","menuItems","RolesDialogComponent","i0","subitem_r6","item_r4","RoledetailsDialogComponent","constructor","dialogRef","data","appService","fb","snackBar","encrypt","setMain","a","id","title","radiobuttons","document","getElementsByName","length","target","checked","selectedMenus","push","pop","forEach","element","menuitems","filter","x","parentId","setSub","item","getAllunchecked","name","ngOnInit","getRoles","mains","getSubMenu","menu","ManageRole","openDialogRoleDialog","loading","UserRoles","subscribe","next","body","JSON","parse","stringify","roles","error","e","complete","openDialog","afterClosed","dat","onSubmit","selectedRole","open","panelClass","verticalPosition","duration","username","localStorage","getItem","TamuApp","Decrypt","Username","req","Id","UserRoleId","Menus","toString","DoneBy","RoleDetail","getselectRoledetails","SelectedUserRole","clearSelection","radiobutton","getElementById","UserRoleDetail","menus","split","selectors","decls","vars","consts","template","ctx","Validators","form","group","UserRole","required","setValue","valid","value","patchValue","editRole","$event","deleteRole","RemoveUserRole","UserRoleList","emailValidator","UserDialogComponent","Email","compose","AlternateEmail","email","FullName","PhoneNumber","close","saveAs","exportDataGrid","Workbook","UsersComponent","appSettings","dialog","getUsers","onChangeCategory","selectedCategoryId","filtereduser","dataSource","user","UserGroup","users","addUser","openDialogStudent","updateUser","resetpassword","ResetUserPassword","disableUser","disableuser","manageRoles","openDialogRoleDetails","onExporting","workbook","worksheet","addWorksheet","component","autoFilterEnabled","then","xlsx","writeBuffer","buffer","Blob","type","cancel","features","CommonModule","HttpClientModule","RouterModule","FormsModule","ReactiveFormsModule","NgxPaginationModule","SharedModule","PipesModule","NgxMatIntlTelInputComponent","routes","path","pathMatch","UsersModule","forChild","declarations","imports","i1"],"sourceRoot":"webpack:///"}