{"version":3,"file":"csmart-smart-ui.mjs","sources":["../../../projects/ngc-smart-ui/src/lib/smart-core-ui.service.ts","../../../projects/ngc-smart-ui/src/lib/nav-item.ts","../../../projects/ngc-smart-ui/src/lib/user-settings-dialog/user-settings-dialog.component.ts","../../../projects/ngc-smart-ui/src/lib/user-settings-dialog/user-settings-dialog.component.html","../../../projects/ngc-smart-ui/src/lib/main-layout/main-layout.component.ts","../../../projects/ngc-smart-ui/src/lib/main-layout/main-layout.component.html","../../../projects/ngc-smart-ui/src/lib/menu-list-item/menu-list-item.component.ts","../../../projects/ngc-smart-ui/src/lib/menu-list-item/menu-list-item.component.html","../../../projects/ngc-smart-ui/src/lib/sidenav-layout/sidenav-layout.component.ts","../../../projects/ngc-smart-ui/src/lib/sidenav-layout/sidenav-layout.component.html","../../../projects/ngc-smart-ui/src/lib/directives/PreventDoubleClick.directive.ts","../../../projects/ngc-smart-ui/src/lib/directives/phone-mask.directive.ts","../../../projects/ngc-smart-ui/src/lib/confirmation/smart-delete-confirm.component.ts","../../../projects/ngc-smart-ui/src/lib/mat-spinner-custom/mat-spinner-http.Interceptor.ts","../../../projects/ngc-smart-ui/src/lib/smart-ui.module.ts","../../../projects/ngc-smart-ui/src/public_api.ts","../../../projects/ngc-smart-ui/src/csmart-smart-ui.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\r\nimport {Event, NavigationEnd, Router} from '@angular/router';\r\nimport { StaffSetting, UserSettingsService } from '@csmart/ngc-smart-core';\r\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SmartCoreUiService {\r\n  public appDrawer: any;\r\n  public currentUrl = new BehaviorSubject<string>('');\r\n  private isDarkThemeSubject = new BehaviorSubject<boolean>(false);\r\n  isDarkTheme: Observable<boolean> = this.isDarkThemeSubject.asObservable();\r\n  private updatingTheme = false;\r\n  constructor(private router: Router, private userSettingsService: UserSettingsService) {\r\n    this.router.events.subscribe((event: Event) => {\r\n      if (event instanceof NavigationEnd) {\r\n        this.currentUrl.next(event.urlAfterRedirects);\r\n      }\r\n    });\r\n  }\r\n\r\n  setDarkTheme(isDark: boolean, saveToSettings = false, staffId?: number): void {\r\n    // Prevent infinite recursion by checking if we're already updating\r\n    if (this.updatingTheme) {\r\n      return;\r\n    }\r\n\r\n    try {\r\n      this.updatingTheme = true;\r\n      \r\n      // Only emit if the value is different to prevent unnecessary updates\r\n      if (this.isDarkThemeSubject.value !== isDark) {\r\n        this.isDarkThemeSubject.next(isDark);\r\n      }\r\n\r\n      // Optionally save to user settings if requested and staffId is provided\r\n      if (saveToSettings && staffId) {\r\n        this.saveThemePreference(isDark, staffId);\r\n      }\r\n    } finally {\r\n      // Always reset the flag when done\r\n      this.updatingTheme = false;\r\n    }\r\n  }\r\n\r\n  private saveThemePreference(isDark: boolean, staffId: number): void {\r\n    const themeValue = isDark ? 'Dark' : 'System Default';\r\n    \r\n    // Let's find if the user already has a theme setting\r\n    this.userSettingsService.findStaffSettings(staffId.toString()).subscribe({\r\n      next: (settings: StaffSetting[]) => {\r\n        const themeSetting = settings.find(s => s.settingKey === 'Theme');\r\n        \r\n        if (themeSetting) {\r\n          // Update existing setting\r\n          const updateInput = {\r\n            where: {\r\n              staffSettingId: Number(themeSetting.staffSettingId)\r\n            },\r\n            data: {\r\n              staffId: staffId,\r\n              settingKey: 'Theme',\r\n              settingValue: themeValue,\r\n              modifiedBy: staffId\r\n            }\r\n          };\r\n          \r\n          this.userSettingsService.updateStaffSetting(updateInput).subscribe();\r\n        } else {\r\n          // Create new setting\r\n          const createInput = {\r\n            staffId: staffId,\r\n            settingKey: 'Theme',\r\n            settingValue: themeValue,\r\n            modifiedBy: staffId\r\n          };\r\n          \r\n          this.userSettingsService.createStaffSetting(createInput).subscribe();\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  public closeNav() {\r\n      if (this.appDrawer) {\r\n        this.appDrawer.close();\r\n      }\r\n  }\r\n\r\n  public openNav() {\r\n    if (this.appDrawer) {\r\n        this.appDrawer.open();\r\n    }\r\n  }\r\n}\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport class NavItem {\r\n  constructor(\r\n  public displayName: string,\r\n  public disabled?: boolean,\r\n  public iconName?: string,\r\n  public rootUrl?: string,\r\n  public route?: string,\r\n  public isNotSameRoot?: boolean,\r\n  public queryParams?: any,\r\n  public children?: NavItem[],\r\n  ) {}\r\n}\r\n\r\nexport const SMART_ADMIN_URL = new InjectionToken<string>(\r\n  'SMART Admin URL',\r\n);\r\n\r\nexport const SMART_DOMAIN_FORMAT = new InjectionToken<string>(\r\n  'SMART Domain Format URL',\r\n);\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { \r\n  UserSettingsService,\r\n  StaffSetting, \r\n  DefaultSetting,\r\n  CreateStaffSettingInput, \r\n  UpdateStaffSettingInput,\r\n  StaffSettingResponse\r\n} from '@csmart/ngc-smart-core';\r\nimport { SmartCoreUiService } from '../smart-core-ui.service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { set } from 'lodash';\r\n\r\ninterface SettingDefinition {\r\n  key: string;\r\n  label: string;\r\n  type: 'select' | 'text' | 'number';\r\n  options?: {value: string, label: string}[];\r\n  defaultValue?: string;\r\n  helpText?: string;\r\n  icon?: string;\r\n}\r\n\r\n@Component({\r\n  selector: 'csmart-user-settings-dialog',\r\n  templateUrl: './user-settings-dialog.component.html',\r\n  styleUrls: ['./user-settings-dialog.component.scss']\r\n})\r\nexport class UserSettingsDialogComponent implements OnInit {\r\n  settingsForm: FormGroup;\r\n  loading = false;\r\n  message = '';\r\n  defaultSettings: DefaultSetting[] = [];\r\n  staffSettings: StaffSetting[] = [];\r\n  \r\n  settingDefinitions: { [key: string]: SettingDefinition } = {};\r\n  displaySettings: SettingDefinition[] = [];\r\n  \r\n  constructor(\r\n    private fb: FormBuilder,\r\n    private userSettingsService: UserSettingsService,\r\n    private smartCoreUiService: SmartCoreUiService,\r\n    private snackBar: MatSnackBar,\r\n    public dialogRef: MatDialogRef<UserSettingsDialogComponent>,\r\n    @Inject(MAT_DIALOG_DATA) public data: any\r\n  ) {\r\n    this.settingsForm = this.fb.group({});\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.loadAllSettings();\r\n  }\r\n  \r\n  loadAllSettings(): void {\r\n    this.loading = true;\r\n    \r\n    forkJoin({\r\n      defaultSettings: this.userSettingsService.findDefaultSettings(),\r\n      staffSettings: this.userSettingsService.findStaffSettings(this.data.staffId.toString())\r\n    }).subscribe({\r\n      next: (result) => {\r\n        this.defaultSettings = result.defaultSettings;\r\n        this.staffSettings = result.staffSettings;\r\n        \r\n        // Build the form based on settings\r\n        this.buildDynamicForm();\r\n        \r\n        this.loading = false;\r\n      },\r\n      error: (error) => {\r\n        console.error('Error loading settings:', error);\r\n        this.showMessage('Error loading settings');\r\n        this.loading = false;\r\n      }\r\n    });\r\n  }\r\n  \r\n  buildDynamicForm(): void {\r\n    // Reset the form\r\n    this.settingsForm = this.fb.group({});\r\n    this.displaySettings = [];\r\n    this.settingDefinitions = {};\r\n    \r\n    for (const defaultSetting of this.defaultSettings) {\r\n      // Get the key and default value\r\n      const settingKey = defaultSetting.defaultSettingId;\r\n      const defaultValue = defaultSetting.settingValue;\r\n      \r\n      let settingDef: SettingDefinition = {\r\n        key: settingKey,\r\n        label: this.formatLabel(settingKey),\r\n        type: 'text', // Default to text input\r\n        defaultValue: defaultValue,\r\n        icon: settingKey === 'Theme' ? 'palette' : settingKey === 'Items Per Page' ? 'view_list' : 'settings',\r\n      };\r\n      \r\n      if (settingKey === 'Theme') {\r\n        settingDef.type = 'select';\r\n        settingDef.options = [\r\n          { value: 'Dark', label: 'Dark' },\r\n          { value: 'System Default', label: 'System Default' }\r\n        ];\r\n        settingDef.helpText = 'Choose the appearance theme for the application';\r\n      } \r\n\r\n      else if (settingKey.toLowerCase().includes('recordsperpage') || \r\n               settingKey.toLowerCase().includes('items per page') || \r\n               settingKey.toLowerCase().includes('itemsperpage') || \r\n               settingKey.toLowerCase().includes('pagesize')) {\r\n        settingDef.type = 'select';\r\n        settingDef.options = [\r\n          { value: '5', label: '5' },\r\n          { value: '10', label: '10' },\r\n          { value: '25', label: '25' },\r\n          { value: '50', label: '50' },\r\n          { value: '100', label: '100' }\r\n        ];\r\n        settingDef.helpText = 'Number of records to display per page in tables';\r\n      }\r\n      else if (!isNaN(Number(defaultValue))) {\r\n        settingDef.type = 'number';\r\n      }\r\n      else if (defaultValue.includes(';')) {\r\n        settingDef.type = 'select';\r\n        const options = defaultValue.split(';').map(val => {\r\n          const trimmed = val.trim();\r\n          return { value: trimmed, label: trimmed };\r\n        });\r\n        settingDef.options = options;\r\n      }\r\n      else if (['true', 'false', 'yes', 'no', 'on', 'off'].includes(defaultValue.toLowerCase())) {\r\n        settingDef.type = 'select';\r\n        if (['true', 'false'].includes(defaultValue.toLowerCase())) {\r\n          settingDef.options = [\r\n            { value: 'true', label: 'Yes' },\r\n            { value: 'false', label: 'No' }\r\n          ];\r\n        } else if (['yes', 'no'].includes(defaultValue.toLowerCase())) {\r\n          settingDef.options = [\r\n            { value: 'yes', label: 'Yes' },\r\n            { value: 'no', label: 'No' }\r\n          ];\r\n        } else {\r\n          settingDef.options = [\r\n            { value: 'on', label: 'On' },\r\n            { value: 'off', label: 'Off' }\r\n          ];\r\n        }\r\n      }\r\n      \r\n      this.settingDefinitions[settingKey] = settingDef;\r\n      \r\n      this.displaySettings.push(settingDef);\r\n      \r\n      const staffSetting = this.staffSettings.find(s => s.settingKey === settingKey);\r\n      \r\n      this.settingsForm.addControl(\r\n        settingKey, \r\n        new FormControl(\r\n          staffSetting ? staffSetting.settingValue : settingDef.defaultValue,\r\n          [Validators.required]\r\n        )\r\n      );\r\n    }\r\n    \r\n    for (const staffSetting of this.staffSettings) {\r\n      if (!this.settingsForm.contains(staffSetting.settingKey)) {\r\n        const settingKey = staffSetting.settingKey;\r\n        const settingValue = staffSetting.settingValue;\r\n        \r\n        let settingDef: SettingDefinition = {\r\n          key: settingKey,\r\n          label: this.formatLabel(settingKey),\r\n          type: 'text',\r\n        };\r\n        \r\n        if (!isNaN(Number(settingValue))) {\r\n          settingDef.type = 'number';\r\n        }\r\n        \r\n        this.settingDefinitions[settingKey] = settingDef;\r\n        \r\n        this.displaySettings.push(settingDef);\r\n        \r\n        this.settingsForm.addControl(\r\n          settingKey, \r\n          new FormControl(settingValue, [Validators.required])\r\n        );\r\n      }\r\n    }\r\n  }\r\n  \r\n  private formatLabel(key: string): string {\r\n    let label = key.replace(/^setting/i, '');\r\n    label = label.replace(/([A-Z])/g, ' $1');\r\n    label = label.replace(/_/g, ' ');\r\n    return label.charAt(0).toUpperCase() + label.slice(1).trim();\r\n  }\r\n  \r\n  saveSettings(): void {\r\n    if (this.settingsForm.invalid) {\r\n      this.showMessage('Please correct the errors in the form');\r\n      return;\r\n    }\r\n    \r\n    this.loading = true;\r\n    let settingsSaved = 0;\r\n    let settingsToSave = Object.keys(this.settingsForm.controls).length;\r\n    \r\n    for (const key of Object.keys(this.settingsForm.controls)) {\r\n      const value = this.settingsForm.get(key)?.value;\r\n      \r\n      // Find if setting already exists\r\n      const existingSetting = this.staffSettings.find(s => s.settingKey === key);\r\n      \r\n      if (existingSetting) {\r\n        // Update existing setting\r\n        const updateInput: UpdateStaffSettingInput = {\r\n          where: {\r\n            staffSettingId: Number(existingSetting.staffSettingId)\r\n          },\r\n          data: {\r\n            staffId: this.data.staffId,\r\n            settingKey: key,\r\n            settingValue: value.toString(),\r\n            modifiedBy: this.data.staffId\r\n          }\r\n        };\r\n        \r\n        this.userSettingsService.updateStaffSetting(updateInput).subscribe({\r\n          next: (response) => {\r\n            settingsSaved++;\r\n            this.checkAllSettingsSaved(settingsSaved, settingsToSave);\r\n            \r\n            if (key === 'Theme') {\r\n              this.applyThemeSetting(value);\r\n            }\r\n          },\r\n          error: (error) => {\r\n            console.error(`Error updating setting ${key}:`, error);\r\n            this.showMessage(`Error updating ${this.formatLabel(key)}`);\r\n            settingsSaved++;\r\n            this.checkAllSettingsSaved(settingsSaved, settingsToSave);\r\n          }\r\n        });\r\n      } else {\r\n        // Create new setting\r\n        const createInput: CreateStaffSettingInput = {\r\n          staffId: this.data.staffId,\r\n          settingKey: key,\r\n          settingValue: value.toString(),\r\n          modifiedBy: this.data.staffId\r\n        };\r\n        \r\n        this.userSettingsService.createStaffSetting(createInput).subscribe({\r\n          next: (response) => {\r\n            settingsSaved++;\r\n            this.checkAllSettingsSaved(settingsSaved, settingsToSave);\r\n            \r\n            if (key === 'Theme') {\r\n              this.applyThemeSetting(value);\r\n            }\r\n          },\r\n          error: (error) => {\r\n            console.error(`Error creating setting ${key}:`, error);\r\n            this.showMessage(`Error creating ${this.formatLabel(key)}`);\r\n            settingsSaved++;\r\n            this.checkAllSettingsSaved(settingsSaved, settingsToSave);\r\n          }\r\n        });\r\n      }\r\n    }\r\n  }\r\n  \r\n  private applyThemeSetting(themeValue: string): void {\r\n    const isDarkTheme = themeValue === 'Dark';\r\n    this.smartCoreUiService.setDarkTheme(isDarkTheme, false);\r\n  }\r\n  \r\n  private checkAllSettingsSaved(saved: number, total: number): void {\r\n    if (saved >= total) {\r\n      this.loading = false;\r\n      this.showMessage('Settings saved successfully');\r\n      this.dialogRef.close(true);\r\n    }\r\n  }\r\n  \r\n  private showMessage(message: string): void {\r\n    this.message = message;\r\n    this.snackBar.open(message, 'Close', {\r\n      duration: 3000,\r\n      horizontalPosition: 'right',\r\n      verticalPosition: 'top'\r\n    });\r\n  }\r\n  \r\n  cancel(): void {\r\n    this.dialogRef.close(false);\r\n  }\r\n  \r\n  resetToDefaults(): void {\r\n    for (const defaultSetting of this.defaultSettings) {\r\n      const key = defaultSetting.defaultSettingId;\r\n      const defaultValue = defaultSetting.settingValue;\r\n      \r\n      if (this.settingsForm.contains(key)) {\r\n        this.settingsForm.get(key)?.setValue(defaultValue);\r\n      }\r\n    }\r\n  }\r\n\r\n  messageType: 'success' | 'error' = 'success';\r\n\r\n  showSuccessMessage(msg: string) {\r\n    this.message = msg;\r\n    this.messageType = 'success';\r\n  }\r\n\r\n  showErrorMessage(msg: string) {\r\n    this.message = msg;\r\n    this.messageType = 'error';\r\n  }\r\n}","<h2 mat-dialog-title class=\"settings-title\">\r\n  <mat-icon class=\"settings-icon\">settings</mat-icon>\r\n  User Settings\r\n</h2>\r\n\r\n<mat-dialog-content class=\"settings-dialog-content\">\r\n  <!-- Loading State -->\r\n  <div *ngIf=\"loading\" class=\"loading-overlay\">\r\n    <mat-spinner diameter=\"40\"></mat-spinner>\r\n    <span class=\"loading-text\">Loading settings...</span>\r\n  </div>\r\n\r\n  <!-- Settings Form -->\r\n  <form [formGroup]=\"settingsForm\" class=\"settings-form\">\r\n    <!-- No settings message -->\r\n    <div *ngIf=\"displaySettings.length === 0 && !loading\" class=\"no-settings-message\">\r\n      <mat-icon color=\"primary\">info</mat-icon>\r\n      <p>No settings found. Default values will be used.</p>\r\n    </div>\r\n\r\n    <!-- Display settings in a card layout -->\r\n    <div *ngIf=\"displaySettings.length > 0\" class=\"settings-grid\">\r\n      <mat-card class=\"settings-card\" *ngFor=\"let setting of displaySettings\">\r\n        <mat-card-header>\r\n          <mat-card-title>{{ setting.label }}</mat-card-title>\r\n          <mat-card-subtitle *ngIf=\"setting.helpText\">{{ setting.helpText }}</mat-card-subtitle>\r\n        </mat-card-header>\r\n        \r\n        <mat-card-content>\r\n          <!-- Text input -->\r\n          <mat-form-field *ngIf=\"setting.type === 'text'\" appearance=\"outline\" class=\"full-width\">\r\n            <mat-label>{{ setting.label }}</mat-label>\r\n            <input matInput [formControlName]=\"setting.key\" required>\r\n            <mat-icon matSuffix *ngIf=\"setting.icon\">{{ setting.icon }}</mat-icon>\r\n            <mat-error *ngIf=\"settingsForm.get(setting.key)?.hasError('required')\">\r\n              This field is required\r\n            </mat-error>\r\n          </mat-form-field>\r\n\r\n          <!-- Number input -->\r\n          <mat-form-field *ngIf=\"setting.type === 'number'\" appearance=\"outline\" class=\"full-width\">\r\n            <mat-label>{{ setting.label }}</mat-label>\r\n            <input matInput type=\"number\" [formControlName]=\"setting.key\" required>\r\n            <mat-icon matSuffix *ngIf=\"setting.icon\">{{ setting.icon }}</mat-icon>\r\n            <mat-error *ngIf=\"settingsForm.get(setting.key)?.hasError('required')\">\r\n              This field is required\r\n            </mat-error>\r\n          </mat-form-field>\r\n\r\n          <!-- Select input -->\r\n          <mat-form-field *ngIf=\"setting.type === 'select'\" appearance=\"outline\" class=\"full-width\">\r\n            <mat-label>{{ setting.label }}</mat-label>\r\n            <mat-select [formControlName]=\"setting.key\" required>\r\n              <mat-option *ngFor=\"let option of setting.options\" [value]=\"option.value\">\r\n                {{ option.label }}\r\n              </mat-option>\r\n            </mat-select>\r\n            <mat-icon matSuffix *ngIf=\"setting.icon\">{{ setting.icon }}</mat-icon>\r\n            <mat-error *ngIf=\"settingsForm.get(setting.key)?.hasError('required')\">\r\n              Please select an option\r\n            </mat-error>\r\n          </mat-form-field>\r\n        </mat-card-content>\r\n      </mat-card>\r\n    </div>\r\n\r\n    <!-- Message Display -->\r\n    <div *ngIf=\"message\" class=\"message-container\" \r\n         [ngClass]=\"{'success-message': messageType === 'success', 'error-message': messageType === 'error'}\">\r\n      <mat-icon>{{ messageType === 'success' ? 'check_circle' : 'error' }}</mat-icon>\r\n      <span>{{ message }}</span>\r\n    </div>\r\n  </form>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions align=\"end\" class=\"settings-dialog-actions\">\r\n  <button mat-stroked-button color=\"primary\" (click)=\"resetToDefaults()\" class=\"reset-button\">\r\n    <mat-icon>restore</mat-icon>\r\n    Reset to Defaults\r\n  </button>\r\n  <span class=\"actions-spacer\"></span>\r\n  <button mat-stroked-button color=\"primary\" (click)=\"cancel()\">Cancel</button>\r\n  <button mat-stroked-button color=\"primary\" [disabled]=\"settingsForm.invalid || loading\" (click)=\"saveSettings()\">\r\n    <mat-icon>save</mat-icon>\r\n    Save Changes\r\n  </button>\r\n</mat-dialog-actions>","import { Component, OnInit, OnDestroy, Input, Output, EventEmitter, ChangeDetectorRef, NgZone,Inject } from '@angular/core';\r\nimport {OverlayContainer} from '@angular/cdk/overlay';\r\nimport {MediaMatcher} from '@angular/cdk/layout';\r\nimport { NavItem,SMART_DOMAIN_FORMAT, SMART_ADMIN_URL } from '../nav-item';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\nimport { SmartAuthService, XdmService, LoginStaff, StaffSetting, UserSettingsService } from '@csmart/ngc-smart-core';\r\nimport { SmartCoreUiService } from '../smart-core-ui.service';\r\nimport { Router } from '@angular/router';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { UserSettingsDialogComponent } from '../user-settings-dialog/user-settings-dialog.component';\r\n\r\n\r\n\r\n@Component({\r\n  selector: 'csmart-main-layout',\r\n  templateUrl: './main-layout.component.html',\r\n  styleUrls: ['./main-layout.component.scss'],\r\n})\r\nexport class MainLayoutComponent implements OnInit, OnDestroy {\r\n  @Input() title = '';\r\n  @Input() menuItems: NavItem[] = [];\r\n  isDarkTheme: boolean = false;\r\n  loginStaff: LoginStaff = <LoginStaff>{};\r\n  staffSettings: StaffSetting[] = [];\r\n  isDarkThemeSubscription?: Subscription;\r\n  // private _mobileQueryListener: () => void;\r\n  constructor(\r\n    @Inject(SMART_DOMAIN_FORMAT) private smartDomainFormatUrl: string,\r\n    @Inject(SMART_ADMIN_URL) private smartAdminUrl: string,\r\n    @Inject(DOCUMENT) private document: any,\r\n    private overlayContainer: OverlayContainer,\r\n    private zone: NgZone,\r\n    private authzService: SmartAuthService,\r\n    private smartStorageService: XdmService,\r\n    private smartCoreUiService: SmartCoreUiService,\r\n    private userSettingsService: UserSettingsService,\r\n    private dialog: MatDialog,\r\n    private router: Router,\r\n    ) {\r\n    overlayContainer.getContainerElement().classList.add('smart-light-theme');\r\n  }\r\n\r\n \r\n\r\n  openUserSettings(): void {\r\n    const dialogRef = this.dialog.open(UserSettingsDialogComponent, {\r\n      width: '850px',\r\n      maxWidth: '90vw',\r\n      panelClass: 'settings-dialog-container',\r\n      data: {\r\n        staffId: this.loginStaff.staffId\r\n      }\r\n    });\r\n\r\n    dialogRef.afterClosed().subscribe(result => {\r\n      if (result) {\r\n        this.loadStaffSettings();\r\n      }\r\n    });\r\n  }\r\n\r\n  toggleDarkTheme(checked: boolean) {\r\n    this.smartCoreUiService.setDarkTheme(checked, true, this.loginStaff.staffId);\r\n    this.applyTheme(checked);\r\n  }\r\n\r\n  loadStaffSettings(): void {\r\n    this.userSettingsService.findStaffSettings(this.loginStaff.staffId.toString()) \r\n      .subscribe({\r\n        next: (settings) => {\r\n          this.staffSettings = settings;\r\n          \r\n          // Initialize theme from user settings\r\n          const themeSetting = settings.find((setting) => setting.settingKey === 'Theme');\r\n          if (themeSetting) {\r\n            this.applyTheme(themeSetting.settingValue === 'Dark');\r\n          }\r\n        },\r\n        error: (error) => {\r\n          console.error('Error loading staff settings:', error);\r\n        }\r\n      });\r\n  }\r\n\r\n  logout() {\r\n    this.authzService.logout();\r\n  }\r\n\r\n  gotoSignature(){\r\n    if(this.loginStaff && this.loginStaff.staffId){\r\n      this.document.location.href = this.smartAdminUrl + '/staff-sig-detail/' + this.loginStaff.staffId;\r\n    }\r\n  }\r\n\r\n  getDomainUrl(app: string, afterHash: string): string {\r\n    return this.smartDomainFormatUrl.replace('${APP}', app) + afterHash;\r\n  }\r\n\r\n  get fullName() {\r\n    if (this.loginStaff && this.loginStaff.firstName && this.loginStaff.lastName) {\r\n      return this.loginStaff.firstName + ' ' + this.loginStaff.lastName;\r\n    } else {\r\n      return '';\r\n    }\r\n  }\r\n\r\n  private applyTheme(isDark: boolean): void {\r\n    this.isDarkTheme = isDark;\r\n    if (isDark) {\r\n      this.overlayContainer.getContainerElement().classList.remove('smart-light-theme');\r\n      this.overlayContainer.getContainerElement().classList.add('smart-dark-theme');\r\n    } else {\r\n      this.overlayContainer.getContainerElement().classList.remove('smart-dark-theme');\r\n      this.overlayContainer.getContainerElement().classList.add('smart-light-theme');\r\n    }\r\n    // Notify the service about the theme change\r\n    //this.smartCoreUiService.setDarkTheme(isDark);\r\n\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n      this.isDarkThemeSubscription?.unsubscribe();\r\n    }\r\n\r\n  ngOnInit() {\r\n     \r\n    this.smartStorageService.getLoginStaff().then(loginStaff => {\r\n      this.loginStaff = loginStaff;\r\n      this.loadStaffSettings();\r\n       // Subscribe to theme changes\r\n       this.isDarkThemeSubscription = this.smartCoreUiService.isDarkTheme.subscribe((isDark: boolean) => {\r\n       this.isDarkTheme = isDark;\r\n      });\r\n    });\r\n\r\n  }\r\n\r\n}\r\n","<div\r\n  [ngClass]=\"{\r\n    'smart-dark-theme': isDarkTheme,\r\n    'smart-light-theme': !isDarkTheme\r\n  }\"\r\n>\r\n  <div class=\"mat-app-background mat-typography\">\r\n    <div class=\"page-header\">\r\n      <mat-toolbar color=\"primary\" class=\"external-link-group\">\r\n        <img class=\"logo-img\" />\r\n        <span class=\"logo-text\">SMART 21</span>\r\n        <span class=\"spacer\"></span>\r\n        <a\r\n          mat-flat-button\r\n          class=\"externalLink\"\r\n          href=\"https://app.powerbigov.us/home\"\r\n          target=\"_blank\"\r\n          >CSOSA Dashboard</a\r\n        >\r\n        <span class=\"spacer\"></span>\r\n        <a\r\n          mat-flat-button\r\n          class=\"externalLink\"\r\n          href=\"https://smartview.ptm.com/\"\r\n          target=\"_blank\"\r\n          >GPS</a\r\n        >\r\n        <span class=\"spacer\"></span>\r\n        <a\r\n          mat-flat-button\r\n          class=\"externalLink\"\r\n          href=\"https://ac07.csosa.gov/accucare/\"\r\n          target=\"_blank\"\r\n          >AccuCare</a\r\n        >\r\n        <span class=\"spacer\"></span>\r\n        <a\r\n          mat-flat-button\r\n          class=\"externalLink\"\r\n          href=\"https://csosao365.sharepoint.com/sites/smartdmprod/smartreleasenotes\"\r\n          target=\"_blank\"\r\n          >Released Notes</a\r\n        >\r\n        <span class=\"spacer\"></span>\r\n        <a\r\n          mat-flat-button\r\n          class=\"externalLink\"\r\n          href=\"https://csosao365.sharepoint.com/sites/smartdmprod/smartnotes/Forms/AllItems.aspx\"\r\n          target=\"_blank\"\r\n          >SMART Notes</a\r\n        >\r\n        <span class=\"spacer\"></span>\r\n        <div class=\"header-menu\">\r\n          <mat-menu #menu=\"matMenu\">\r\n            <button mat-menu-item (click)=\"logout()\">\r\n              <mat-icon>exit_to_app</mat-icon>\r\n              <span>Log Out</span>\r\n            </button>\r\n            <button mat-menu-item (click)=\"gotoSignature()\">\r\n              <mat-icon>signature</mat-icon>\r\n              <span>Signature</span>\r\n            </button>\r\n            <button mat-menu-item (click)=\"openUserSettings()\">\r\n              <mat-icon>settings</mat-icon>\r\n              <span>User Settings</span>\r\n            </button>\r\n\r\n            <button mat-menu-item disabled>\r\n              <mat-icon>announcement</mat-icon>\r\n              <span>Issues</span>\r\n            </button>\r\n            <button mat-menu-item>\r\n              <mat-icon>search</mat-icon>\r\n              <span>Search</span>\r\n            </button>\r\n            <button mat-menu-item>\r\n              <mat-icon>notifications_off</mat-icon>\r\n              <span>Disable alerts</span>\r\n            </button>\r\n          </mat-menu>\r\n          <!-- <mat-slide-toggle\r\n            [checked]=\"isDarkTheme\"\r\n            (change)=\"toggleDarkTheme($event.checked)\"\r\n          >\r\n            <mat-icon\r\n              class=\"mat-icon notranslate material-icons mat-icon-no-color\"\r\n              role=\"img\"\r\n              aria-hidden=\"true\"\r\n            >\r\n              format_color_fill</mat-icon\r\n            >\r\n          </mat-slide-toggle> -->\r\n        </div>\r\n        <div class=\"profile\">\r\n          <button\r\n            mat-stroked-button\r\n            class=\"profile-name\"\r\n            [matMenuTriggerFor]=\"menu\"\r\n          >\r\n            {{ this.fullName }}\r\n          </button>\r\n        </div>\r\n      </mat-toolbar>\r\n\r\n      <ng-content select=\"[core]\"></ng-content>\r\n      <ng-content select=\"[offender-header]\"></ng-content>\r\n    </div>\r\n    <div class=\"main-container\">\r\n      <ng-content select=\"router-outlet\"></ng-content>\r\n      <ngx-spinner\r\n        bdColor=\"rgba(0, 0, 0, 0.8)\"\r\n        size=\"medium\"\r\n        color=\"#fff\"\r\n        type=\"ball-scale-ripple\"\r\n        ><p style=\"color: white\">Loading...</p></ngx-spinner\r\n      >\r\n    </div>\r\n    <footer class=\"footer\">\r\n      <span class=\"copy-right\">© 2021 CSOSA All Rights Reserved</span>\r\n    </footer>\r\n  </div>\r\n</div>\r\n","import {Component, HostBinding, OnInit, Inject, signal, input} from '@angular/core';\r\nimport {NavItem} from '../nav-item';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport { SmartCoreUiService } from '../smart-core-ui.service';\r\nimport {animate, state, style, transition, trigger} from '@angular/animations';\r\nimport { DOCUMENT } from \"@angular/common\";\r\n\r\n@Component({\r\n  selector: \"csmart-menu-list-item\",\r\n  templateUrl: \"./menu-list-item.component.html\",\r\n  styleUrls: [\"./menu-list-item.component.scss\"],\r\n  animations: [\r\n    trigger(\"expandContractMenu\", [\r\n      transition(':enter', [\r\n        style({opacity: 0, height: '0px' }),\r\n        animate('500ms ease-in-out', style({opacity: 1, height: '*' }))\r\n      ]),\r\n      transition(':leave', [\r\n        animate('500ms ease-in-out', style({opacity: 0, height: '0px' }))\r\n      ]),\r\n    ]),\r\n  ],\r\n})\r\nexport class MenuListItemComponent implements OnInit {\r\n  expanded = false;\r\n  @HostBinding(\"attr.aria-expanded\") ariaExpanded = this.expanded;\r\n  item = input.required<NavItem>();\r\n  collapsed = input(false);\r\n  nestedMenuOpened = signal(false);\r\n  depth = input(0);\r\n\r\n  constructor(\r\n    private route: ActivatedRoute,\r\n    public router: Router,\r\n    @Inject(DOCUMENT) private document: any\r\n  ) {}\r\n\r\n\r\n  ngOnInit() {\r\n    if(this.router.url){\r\n      if (this.hasActiveChild(this.router.url)) {\r\n        this.nestedMenuOpened.set(true);\r\n      }\r\n    }\r\n    this.router.events.subscribe(event => {\r\n      if (event.constructor.name === \"NavigationEnd\") {\r\n        const currentRoute = this.router.url;\r\n        if (this.hasActiveChild(currentRoute)) {\r\n          this.nestedMenuOpened.set(true);\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  onItemSelected(item: NavItem) {\r\n    if (this.hasNestedItem) return;\r\n    if (this.item().isNotSameRoot && this.item().rootUrl) {\r\n      this.navigateToRemote(this.item());\r\n    } else {\r\n      this.navigateToLocal(this.item());\r\n    }\r\n  }\r\n\r\n  toggleNested(){\r\n    if(this.hasNestedItem){\r\n     this.nestedMenuOpened.set(!this.nestedMenuOpened());\r\n    }\r\n  }\r\n\r\n  get hasNestedItem(){\r\n    return this.item().children && this.item().children!.length > 0\r\n  }\r\n\r\n  private hasActiveChild(url: string): boolean {\r\n    if (!this.hasNestedItem) return false;\r\n    return this.item().children!.some((child: NavItem) => child.route && url.indexOf(child.route) === 0);\r\n  }\r\n\r\n  private navigateToLocal(item: NavItem) {\r\n    if (item.queryParams) {\r\n      this.router.navigate([item.route], { queryParams: item.queryParams });\r\n    } else {\r\n      this.router.navigate([item.route]);\r\n    }\r\n  }\r\n\r\n  private navigateToRemote(item: NavItem) {\r\n    if(item.queryParams.routeTo){\r\n    this.document.location.href = `${item.rootUrl}/${item.route}?offenderId=${item.queryParams.offenderId}&intakeFlag=${item.queryParams.intakeFlag}&routeTo=${item.queryParams.routeTo}`;\r\n    }else{\r\n      this.document.location.href = `${item.rootUrl}/${item.route}?offenderId=${item.queryParams.offenderId}&intakeFlag=${item.queryParams.intakeFlag}`;\r\n    }\r\n  }\r\n}\r\n\r\n","<a mat-list-item (click)=\"onItemSelected(item())\" class=\"menu-list-item\"\r\n   [matTooltip]=\"(collapsed() || hasNestedItem) ? item().displayName : ''\"\r\n   (click)=\"toggleNested()\"\r\n   [routerLink]=\"!hasNestedItem ? item().route : null\"\r\n   routerLinkActive=\"selected-menu-item\"\r\n   [routerLinkActiveOptions]=\"{exact:true}\"\r\n   #ria=\"routerLinkActive\"\r\n   [activated]=\"ria.isActive\">\r\n  <mat-icon\r\n    class=\"routeIcon\"\r\n    [fontSet]=\"ria.isActive ? 'material-icons' : 'material-icons-outlined'\"\r\n    matListItemIcon>\r\n    {{item().iconName}}\r\n  </mat-icon>\r\n  @if(!collapsed()){\r\n    <span matListItemTitle>{{item().displayName}}</span>\r\n  }\r\n\r\n  @if(hasNestedItem){\r\n    <span matListItemMeta>\r\n      @if(nestedMenuOpened()){\r\n        <mat-icon>expand_less</mat-icon>\r\n      } @else {\r\n        <mat-icon>expand_more</mat-icon>\r\n      }\r\n    </span>\r\n  }\r\n</a>\r\n\r\n@if(hasNestedItem && nestedMenuOpened()){\r\n  <div @expandContractMenu>\r\n    @for(subItem of item().children; track subItem.displayName){\r\n      <a mat-list-item (click)=\"onItemSelected(item())\" class=\"menu-list-item\"\r\n        [class.indented]=\"!collapsed()\"\r\n        [matTooltip]=\"collapsed() ? subItem.displayName : ''\"\r\n        [routerLink]=\"subItem.route\"\r\n        routerLinkActive=\"selected-menu-item\"\r\n        [routerLinkActiveOptions]=\"{exact:true}\"\r\n        #ria=\"routerLinkActive\"\r\n        [activated]=\"ria.isActive\">\r\n        <mat-icon\r\n          class=\"routeIcon\"\r\n          [fontSet]=\"ria.isActive ? 'material-icons' : 'material-icons-outlined'\"\r\n          matListItemIcon>\r\n          {{subItem.iconName}}\r\n        </mat-icon>\r\n        @if(!collapsed()){\r\n          <span matListItemTitle>{{subItem.displayName}}</span>\r\n        }\r\n      </a>\r\n    }\r\n  </div>\r\n}\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, Input, ChangeDetectorRef,\r\n  OnDestroy, NgZone, ViewEncapsulation, AfterViewInit, Inject, ViewChild, signal, computed } from '@angular/core';\r\nimport {OverlayContainer} from '@angular/cdk/overlay';\r\nimport {BreakpointObserver, MediaMatcher} from '@angular/cdk/layout';\r\nimport { NavItem, SMART_ADMIN_URL, SMART_DOMAIN_FORMAT } from '../nav-item';\r\nimport { Observable, of, Subscription } from 'rxjs';\r\nimport { SmartAuthService, XdmService, LoginStaff, SelectedOffender, UserSettingsService, StaffSetting } from '@csmart/ngc-smart-core';\r\nimport { SmartCoreUiService} from '../smart-core-ui.service';\r\nimport { MatDrawerMode, MatSidenav } from '@angular/material/sidenav';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { UserSettingsDialogComponent } from '../user-settings-dialog/user-settings-dialog.component';\r\n\r\n\r\n@Component({\r\n  selector: 'csmart-sidenav-layout',\r\n  templateUrl: './sidenav-layout.component.html',\r\n  styleUrls: ['./sidenav-layout.component.scss'],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SidenavLayoutComponent implements OnInit, OnDestroy, AfterViewInit {\r\n\r\n  @Input() title: string = '';\r\n  @Input() userName = '';\r\n  @Input() appModuleId = '';\r\n  @Input() menuItems: NavItem[] = [];\r\n  @Input() sideWidth = '350px';\r\n\r\n  loginStaff: LoginStaff = <LoginStaff>{};\r\n  offenderId: string = '';\r\n  mobileQuery: MediaQueryList = <MediaQueryList>{};\r\n  isDarkTheme: boolean = false;\r\n  fullName: string = '';\r\n  // private _mobileQueryListener: () => void;\r\n  staffSubscription?: Subscription;\r\n  watcher?: Subscription;\r\n  opened: boolean = true;\r\n  over: MatDrawerMode = 'side';\r\n  expandHeight: string = '42px';\r\n  collapseHeight: string = '42px';\r\n  displayMode: string = 'flat';\r\n  isDarkThemeSubscription?: Subscription;\r\n  activeMediaQuery: string = '';\r\n  offenderSubscription?: Subscription;\r\n  collapsed = signal(false);\r\n  sidenavWidth = computed(() => this.collapsed() ? '100px' : this.sideWidth ? this.sideWidth : '350px')\r\n  staffSettings: StaffSetting[] = [];\r\n  constructor(\r\n    @Inject(SMART_DOMAIN_FORMAT) private smartDomainFormatUrl: string,\r\n    @Inject(SMART_ADMIN_URL) private smartAdminUrl: string,\r\n    @Inject(DOCUMENT) private document: any,\r\n    private changeDetectorRef: ChangeDetectorRef,\r\n    media: MediaMatcher,\r\n    private observer: BreakpointObserver,\r\n    private overlayContainer: OverlayContainer,\r\n    private authzService: SmartAuthService,\r\n    private smartStorageService: XdmService,\r\n    private smartCoreUiService: SmartCoreUiService,\r\n    private userSettingsService: UserSettingsService,\r\n    private dialog: MatDialog) {\r\n    overlayContainer.getContainerElement().classList.add('smart-light-theme');\r\n    // this.mobileQuery = media.matchMedia('(max-width: 600px)');\r\n    // this._mobileQueryListener = () => changeDetectorRef.detectChanges();\r\n    // this.mobileQuery.addListener(this._mobileQueryListener);\r\n\r\n\r\n  }\r\n\r\n  gotoSignature() {\r\n    if (this.loginStaff && this.loginStaff.staffId) {\r\n      this.document.location.href = this.smartAdminUrl + '/staff-sig-detail/' + this.loginStaff.staffId;\r\n    }\r\n  }\r\n\r\n  openUserSettings(): void {\r\n    const dialogRef = this.dialog.open(UserSettingsDialogComponent, {\r\n      width: '850px',\r\n      maxWidth: '90vw',\r\n      panelClass: 'settings-dialog-container',\r\n      data: {\r\n        staffId: this.loginStaff.staffId\r\n      }\r\n    });\r\n\r\n    dialogRef.afterClosed().subscribe(result => {\r\n      if (result) {\r\n        this.loadStaffSettings();\r\n      }\r\n    });\r\n  }\r\n\r\n  loadStaffSettings(): void {\r\n    this.userSettingsService.findStaffSettings(this.loginStaff.staffId.toString()) \r\n      .subscribe({\r\n        next: (settings) => {\r\n          this.staffSettings = settings;\r\n          \r\n          // Initialize theme from user settings\r\n          const themeSetting = settings.find((setting) => setting.settingKey === 'Theme');\r\n          if (themeSetting) {\r\n            this.applyTheme(themeSetting.settingValue === 'Dark');\r\n          }\r\n        },\r\n        error: (error) => {\r\n          console.error('Error loading staff settings:', error);\r\n        }\r\n      });\r\n  }\r\n\r\n\r\n  getDomainUrl(app: string, afterHash: string): string {\r\n    return this.smartDomainFormatUrl.replace('${APP}', app) + afterHash;\r\n  }\r\n\r\n  toggleDarkTheme(checked: boolean) {\r\n    this.smartCoreUiService.setDarkTheme(checked, true, this.loginStaff.staffId);\r\n    this.applyTheme(checked);\r\n  }\r\n\r\n  logout() {\r\n    this.authzService.logout();\r\n  }\r\n\r\n\r\n  setFullName() {\r\n    this.fullName = this.loginStaff ? this.loginStaff.firstName + ' ' + this.loginStaff.lastName : ''\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.staffSubscription?.unsubscribe();\r\n    this.isDarkThemeSubscription?.unsubscribe();\r\n    this.watcher?.unsubscribe();\r\n    this.offenderSubscription?.unsubscribe();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n\r\n    this.watcher = this.observer.observe(['(max-width: 850px)']).subscribe((res) => {\r\n      if (res.matches) {\r\n        this.collapsed.set(true);\r\n\r\n      } else {\r\n        this.collapsed.set(false);\r\n      }\r\n      this.changeDetectorRef.detectChanges();\r\n    });\r\n  }\r\n\r\n  get draorEnabled(): boolean {\r\n    return this.offenderId !== '';\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.sidenavWidth = computed(() => this.collapsed() ? '100px' : this.sideWidth ? this.sideWidth : '350px');\r\n\r\n    this.smartStorageService.getLoginStaff().then(loginStaff => {\r\n      this.loginStaff = loginStaff;\r\n      this.setFullName();\r\n      this.loadStaffSettings();\r\n       // Subscribe to theme changes\r\n       this.isDarkThemeSubscription = this.smartCoreUiService.isDarkTheme.subscribe((isDark: boolean) => {\r\n       this.isDarkTheme = isDark;\r\n      });\r\n    });\r\n\r\n    this.smartStorageService.getSelectedOffender().then((selectedOffender: SelectedOffender) => {\r\n      if( selectedOffender && selectedOffender.offenderId){\r\n          this.offenderId = selectedOffender.offenderId.toString();\r\n          this.changeDetectorRef.detectChanges();\r\n      } else {\r\n        this.offenderId = '';\r\n      }\r\n    });\r\n\r\n    this.offenderSubscription = this.smartStorageService\r\n    .getOffenderUpdate()\r\n    .subscribe((selectedOffender) => {\r\n      if( selectedOffender && selectedOffender.offenderId){\r\n          this.offenderId = selectedOffender.offenderId.toString();\r\n          this.changeDetectorRef.detectChanges();\r\n        }\r\n    });\r\n  }\r\n  \r\n  private applyTheme(isDark: boolean): void {\r\n    this.isDarkTheme = isDark;\r\n    if (isDark) {\r\n      this.overlayContainer.getContainerElement().classList.remove('smart-light-theme');\r\n      this.overlayContainer.getContainerElement().classList.add('smart-dark-theme');\r\n    } else {\r\n      this.overlayContainer.getContainerElement().classList.remove('smart-dark-theme');\r\n      this.overlayContainer.getContainerElement().classList.add('smart-light-theme');\r\n    }\r\n    // Notify the service about the theme change\r\n    //this.smartCoreUiService.setDarkTheme(isDark);\r\n\r\n    }\r\n\r\n\r\n}\r\n","<div\r\n  [ngClass]=\"{\r\n    'smart-dark-theme': isDarkTheme,\r\n    'smart-light-theme': !isDarkTheme\r\n  }\"\r\n>\r\n  <div class=\"mat-app-background mat-typography\">\r\n    <div class=\"page-header\">\r\n      <mat-toolbar color=\"primary\" class=\"external-link-group\">\r\n        <img class=\"logo-img\" />\r\n        <span class=\"logo-text\">SMART 21</span>\r\n        <span class=\"spacer\"></span>\r\n        <span class=\"spacer\"></span>\r\n        <a\r\n          mat-flat-button\r\n          class=\"externalLink\"\r\n          href=\"https://app.powerbigov.us/home\"\r\n          target=\"_blank\"\r\n          >CSOSA Dashboard</a\r\n        >\r\n        <span class=\"spacer\"></span>\r\n        <a\r\n          mat-flat-button\r\n          class=\"externalLink\"\r\n          href=\"https://smartview.ptm.com/\"\r\n          target=\"_blank\"\r\n          >GPS</a\r\n        >\r\n        <span class=\"spacer\"></span>\r\n        <a\r\n          mat-flat-button\r\n          class=\"externalLink\"\r\n          href=\"https://ac07.csosa.gov/accucare/\"\r\n          target=\"_blank\"\r\n          >AccuCare</a\r\n        >\r\n        <span class=\"spacer\"></span>\r\n        <a\r\n          mat-flat-button\r\n          class=\"externalLink\"\r\n          href=\"https://csosao365.sharepoint.com/sites/smartdmprod/smartreleasenotes\"\r\n          target=\"_blank\"\r\n          >Released Notes</a\r\n        >\r\n        <span class=\"spacer\"></span>\r\n        <a\r\n          mat-flat-button\r\n          class=\"externalLink\"\r\n          href=\"https://csosao365.sharepoint.com/sites/smartdmprod/smartnotes/Forms/AllItems.aspx\"\r\n          target=\"_blank\"\r\n          >SMART Notes</a\r\n        >\r\n        <span class=\"spacer\"></span>\r\n        <div class=\"header-menu\">\r\n          <mat-menu #menu=\"matMenu\">\r\n            <button mat-menu-item (click)=\"logout()\">\r\n              <mat-icon>exit_to_app</mat-icon>\r\n              <span>Log Out</span>\r\n            </button>\r\n            <button mat-menu-item (click)=\"gotoSignature()\">\r\n              <mat-icon>signature</mat-icon>\r\n              <span>Signature</span>\r\n            </button>\r\n            <button mat-menu-item (click)=\"openUserSettings()\">\r\n              <mat-icon>settings</mat-icon>\r\n              <span>User Settings</span>\r\n            </button>\r\n            <button mat-menu-item disabled>\r\n              <mat-icon>announcement</mat-icon>\r\n              <span>Issues</span>\r\n            </button>\r\n            <button mat-menu-item disabled>\r\n              <mat-icon>search</mat-icon>\r\n              <span>Search</span>\r\n            </button>\r\n            <button mat-menu-item disabled>\r\n              <mat-icon>notifications_off</mat-icon>\r\n              <span>Disable alerts</span>\r\n            </button>\r\n          </mat-menu>\r\n          <!-- <mat-slide-toggle [checked]=\"isDarkTheme\" (change)=\"toggleDarkTheme($event.checked)\">\r\n            <mat-icon class=\"mat-icon notranslate material-icons mat-icon-no-color\" role=\"img\" aria-hidden=\"true\">\r\n              format_color_fill</mat-icon>\r\n          </mat-slide-toggle> -->\r\n        </div>\r\n        <div class=\"profile\">\r\n          <button\r\n            mat-stroked-button\r\n            class=\"profile-name\"\r\n            [matMenuTriggerFor]=\"menu\"\r\n          >\r\n            {{ this.fullName }}\r\n          </button>\r\n        </div>\r\n      </mat-toolbar>\r\n      <ng-content select=\"[core]\"></ng-content>\r\n      <ng-content select=\"[offender-header]\"></ng-content>\r\n    </div>\r\n    <div class=\"main-container\">\r\n      <mat-sidenav-container>\r\n        <mat-sidenav\r\n          class=\"side-nav\"\r\n          [style.width]=\"sidenavWidth()\"\r\n          mode=\"side\"\r\n          opened\r\n        >\r\n          <mat-nav-list class=\"nav-list\">\r\n            @for(item of menuItems; track item.displayName){\r\n            <csmart-menu-list-item\r\n              [item]=\"item\"\r\n              [collapsed]=\"collapsed()\"\r\n            ></csmart-menu-list-item>\r\n            }\r\n          </mat-nav-list>\r\n        </mat-sidenav>\r\n        <mat-sidenav-content [style.margin-left]=\"sidenavWidth()\">\r\n          <div class=\"main-sidenav-content\">\r\n            <button\r\n              mat-icon-button\r\n              value=\"justify\"\r\n              (click)=\"collapsed.set(!collapsed())\"\r\n            >\r\n              <mat-icon *ngIf=\"collapsed()\">arrow_forward_ios</mat-icon>\r\n              <mat-icon *ngIf=\"!collapsed()\">arrow_back_ios</mat-icon>\r\n            </button>\r\n          </div>\r\n          <div class=\"main-content\">\r\n            <!-- <ng-content select=\"router-outlet\"></ng-content> -->\r\n            <router-outlet></router-outlet>\r\n          </div>\r\n        </mat-sidenav-content>\r\n      </mat-sidenav-container>\r\n      <ngx-spinner\r\n        bdColor=\"rgba(0, 0, 0, 0.8)\"\r\n        size=\"medium\"\r\n        color=\"#fff\"\r\n        type=\"ball-scale-ripple\"\r\n        ><p style=\"color: white\">Loading...</p></ngx-spinner\r\n      >\r\n    </div>\r\n    <footer class=\"footer\">\r\n      <span class=\"copy-right\">© 2021 CSOSA All Rights Reserved</span>\r\n    </footer>\r\n  </div>\r\n</div>\r\n","// https://stackoverflow.com/a/57499185\r\n\r\nimport {\r\n  Directive,\r\n  EventEmitter,\r\n  HostListener,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n} from '@angular/core';\r\nimport { Subject, Subscription, config } from 'rxjs';\r\nimport { throttleTime } from 'rxjs/operators';\r\n\r\n@Directive({\r\n  selector: '[preventDoubleClick]',\r\n})\r\nexport class PreventDoubleClickDirective implements OnInit, OnDestroy {\r\n  @Input()\r\n  throttleTime = 500;\r\n\r\n  @Output()\r\n  throttledClick = new EventEmitter();\r\n\r\n  private clicks = new Subject();\r\n  private subscription?: Subscription;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit() {\r\n    this.subscription = this.clicks\r\n      .pipe(throttleTime(this.throttleTime,undefined, {leading: false, trailing: true}))\r\n      .subscribe((e) => this.emitThrottledClick(e));\r\n  }\r\n\r\n  emitThrottledClick(e: any) {\r\n    this.throttledClick.emit(e);\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.subscription?.unsubscribe();\r\n  }\r\n\r\n  @HostListener('click', ['$event'])\r\n  clickEvent(event: any) {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n    this.clicks.next(event);\r\n  }\r\n}\r\n\r\n// config {leading: false, trailing: true} to only allow double clicking. By default it's { leading: true, trailing: false }.\r\n// <button preventDoubleClick (throttledClick)=\"log()\" [throttleTime]=\"700\">Throttled Click</button>\r\n","import {\r\n  Directive,\r\n  ElementRef,\r\n  Input,\r\n  OnInit,\r\n  OnDestroy,\r\n  Renderer2,\r\n} from '@angular/core';\r\nimport {\r\n  FormGroup,\r\n  FormBuilder,\r\n  AbstractControl,\r\n  Validators,\r\n  FormControl,\r\n} from '@angular/forms';\r\n// import { Subscription } from 'rxjs/Subscription';\r\n\r\n@Directive({\r\n  selector: \"[phoneMask]\",\r\n})\r\nexport class PhoneMaskDirective implements OnInit, OnDestroy {\r\n  private _phoneControl?: AbstractControl;\r\n  private _preValue: string = '';\r\n\r\n  @Input(\"phoneControl\")\r\n  public set phoneControl(control: AbstractControl) {\r\n    this._phoneControl = control;\r\n    if(this._preValue)\r\n      this.formatPhoneNumber(this._preValue);\r\n  }\r\n\r\n  @Input(\"preValue\")\r\n  public set preValue(value: string) {\r\n    this._preValue = value;\r\n    if(this._phoneControl)\r\n      this.formatPhoneNumber(value);\r\n  }\r\n\r\n  // private sub:ISubscription;\r\n\r\n  constructor(private el: ElementRef, private renderer: Renderer2) {}\r\n\r\n  ngOnInit() {}\r\n\r\n  ngOnDestroy() {\r\n    // this.sub.unsubscribe();\r\n  }\r\n\r\n  formatPhoneNumber(data: string) {\r\n    if (!this._preValue) {\r\n      this._preValue = \"\";\r\n      data = \"\";\r\n    }\r\n\r\n    let preInputValue: string = this._preValue;\r\n    var lastChar: string = preInputValue.substr(preInputValue.length - 1);\r\n\r\n    var newVal = data.replace(/\\D/g, \"\");\r\n\r\n    let start = this.renderer.selectRootElement(\"#tel\").selectionStart;\r\n    let end = this.renderer.selectRootElement(\"#tel\").selectionEnd;\r\n\r\n    if (data.length < preInputValue.length) {\r\n      if (preInputValue.length < start) {\r\n        if (lastChar == \")\") {\r\n          newVal = newVal.substr(0, newVal.length - 1);\r\n        }\r\n      }\r\n\r\n      if (newVal.length == 0) {\r\n        newVal = \"\";\r\n      } else if (newVal.length <= 3) {\r\n        newVal = newVal.replace(/^(\\d{0,3})/, \"($1\");\r\n      } else if (newVal.length <= 6) {\r\n        newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})/, \"($1) $2\");\r\n      } else {\r\n        newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})(.*)/, \"($1) $2-$3\");\r\n      }\r\n\r\n      this._phoneControl?.setValue(newVal, { emitEvent: false });\r\n      this.renderer.selectRootElement(\"#tel\").setSelectionRange(start, end);\r\n    } else {\r\n      var removedD = data.charAt(start);\r\n      if (newVal.length == 0) {\r\n        newVal = \"\";\r\n      } else if (newVal.length <= 3) {\r\n        newVal = newVal.replace(/^(\\d{0,3})/, \"($1)\");\r\n      } else if (newVal.length <= 6) {\r\n        newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})/, \"($1) $2\");\r\n      } else {\r\n        newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})(.*)/, \"($1) $2-$3\");\r\n      }\r\n      if (preInputValue.length >= start) {\r\n        if (removedD == \"(\") {\r\n          start = start + 1;\r\n          end = end + 1;\r\n        }\r\n        if (removedD == \")\") {\r\n          start = start + 2;\r\n          end = end + 2;\r\n        }\r\n        if (removedD == \"-\") {\r\n          start = start + 1;\r\n          end = end + 1;\r\n        }\r\n        if (removedD == \" \") {\r\n          start = start + 1;\r\n          end = end + 1;\r\n        }\r\n        if (removedD == \"\") {\r\n          start = start + 1;\r\n          end = end + 1;\r\n        }\r\n        this._phoneControl?.setValue(newVal, { emitEvent: false });\r\n        this.renderer.selectRootElement(\"#tel\").setSelectionRange(start, end);\r\n      } else {\r\n        this._phoneControl?.setValue(newVal, { emitEvent: false });\r\n        this.renderer\r\n          .selectRootElement(\"#tel\")\r\n          .setSelectionRange(start + 2, end + 2); // +2 because of wanting standard typing\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport {\r\n  MatDialog,\r\n  MatDialogRef,\r\n  MAT_DIALOG_DATA,\r\n} from '@angular/material/dialog';\r\n\r\n@Component({\r\n  selector: 'csmart-delete-confirm',\r\n  template: `\n    <h1 mat-dialog-title>Delete Confirmation</h1>\n    <div mat-dialog-content>\n      <p>Are you sure you want to delete this item?</p>\n    </div>\n    <div mat-dialog-actions class=\"actions\">\n      <button mat-flat-button color=\"primary\" (click)=\"onNoClick()\">No</button>\n      <button\n        mat-flat-button\n        color=\"warn\"\n        [mat-dialog-close]=\"'YES'\"\n        cdkFocusInitial\n      >\n        Yes\n      </button>\n    </div>\n  `,\r\n  styles: [\r\n    `\n                     .actions {\n                       display: flex;\n                       justify-content: space-between;\n                     }\n                   `,\r\n  ],\r\n})\r\nexport class SmartDeleteConfirmComponent implements OnInit {\r\n  constructor(\r\n    public dialogRef: MatDialogRef<SmartDeleteConfirmComponent>,\r\n    @Inject(MAT_DIALOG_DATA) public data: any,\r\n  ) {\r\n    dialogRef.disableClose = true;\r\n  }\r\n\r\n  onNoClick(): void {\r\n    this.dialogRef.close();\r\n  }\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\n\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable, finalize } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SpinnerHttpInterceptor implements HttpInterceptor {\r\n  private totalRequests = 0;\r\n  constructor(private spinner: NgxSpinnerService) {}\r\n\r\n  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n    if (!req.url.includes(\"/address?key=\")) {\r\n      this.totalRequests++;\r\n      if (this.totalRequests === 1) {\r\n        this.spinner.show();\r\n      }\r\n    }\r\n\r\n    return next.handle(req).pipe(\r\n      finalize(() => {\r\n        if (!req.url.includes(\"/address?key=\")) {\r\n          this.totalRequests--;\r\n          if (this.totalRequests === 0) {\r\n            this.spinner.hide();\r\n          }\r\n        }\r\n      })\r\n    );\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\n\r\nimport { MatButtonModule } from '@angular/material/button'\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\n\r\n\r\nimport { SidenavLayoutComponent } from './sidenav-layout/sidenav-layout.component';\r\nimport { MainLayoutComponent } from './main-layout/main-layout.component';\r\nimport { MenuListItemComponent } from './menu-list-item/menu-list-item.component';\r\nimport { SmartCoreUiService } from './smart-core-ui.service';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { LayoutModule } from '@angular/cdk/layout';\r\nimport { NgcSmartCoreModule, UserSettingsService } from '@csmart/ngc-smart-core';\r\nimport { PhoneMaskDirective } from './directives/phone-mask.directive';\r\nimport { PreventDoubleClickDirective } from './directives/PreventDoubleClick.directive';\r\nimport { SmartDeleteConfirmComponent } from './confirmation/smart-delete-confirm.component';\r\nimport { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { SpinnerHttpInterceptor } from './mat-spinner-custom/mat-spinner-http.Interceptor';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { UserSettingsDialogComponent } from './user-settings-dialog/user-settings-dialog.component';\r\nimport { MatAccordion } from '@angular/material/expansion';\r\n\r\nconst COMPONENTS = [\r\n  SidenavLayoutComponent,\r\n  MainLayoutComponent,\r\n  MenuListItemComponent,\r\n  PhoneMaskDirective,\r\n  PreventDoubleClickDirective,\r\n  SmartDeleteConfirmComponent,\r\n  UserSettingsDialogComponent\r\n];\r\n\r\nconst BASE_MODULES = [\r\n  CommonModule, \r\n  RouterModule,\r\n  ReactiveFormsModule\r\n];\r\n\r\nconst CORE_MODULES = [ NgcSmartCoreModule ];\r\n\r\nconst MATERIAL_MODULES = [\r\n  MatButtonModule, MatCheckboxModule, MatExpansionModule,\r\n  MatCardModule, MatSlideToggleModule,\r\n  MatListModule, MatIconModule, MatButtonToggleModule,\r\n  MatToolbarModule, MatTabsModule, MatTooltipModule, MatFormFieldModule,\r\n  MatMenuModule, MatInputModule, MatProgressBarModule,\r\n  MatDatepickerModule, MatNativeDateModule, MatProgressSpinnerModule,\r\n  MatDialogModule, MatSidenavModule, MatSelectModule,\r\n  MatTableModule, MatSortModule, MatGridListModule, CdkTableModule, LayoutModule,\r\n];\r\n\r\n@NgModule({\r\n    declarations: [...COMPONENTS],\r\n    imports: [\r\n      ...BASE_MODULES, \r\n      ...MATERIAL_MODULES, \r\n      ...CORE_MODULES,\r\n      NgxSpinnerModule.forRoot({type: 'ball-scale-ripple'}),\r\n    ],\r\n    exports: [...COMPONENTS, NgxSpinnerModule],\r\n    providers: [\r\n        SmartCoreUiService,\r\n        UserSettingsService,\r\n        provideHttpClient(withInterceptorsFromDi()),\r\n        {\r\n          provide: HTTP_INTERCEPTORS,\r\n          useClass: SpinnerHttpInterceptor,\r\n          multi: true,\r\n        },\r\n    ]\r\n})\r\nexport class SmartUiModule {}\r\n","/*\r\n * Public API Surface of ngc-smart-ui\r\n */\r\n\r\nexport * from './lib/smart-core-ui.service';\r\nexport * from './lib/main-layout/main-layout.component';\r\nexport * from './lib/menu-list-item/menu-list-item.component';\r\nexport * from './lib/sidenav-layout/sidenav-layout.component';\r\nexport * from './lib/nav-item';\r\nexport * from './lib/directives/PreventDoubleClick.directive';\r\nexport * from './lib/directives/phone-mask.directive';\r\nexport * from './lib/confirmation/smart-delete-confirm.component';\r\nexport * from './lib/mat-spinner-custom/mat-spinner-http.Interceptor';\r\nexport * from './lib/smart-ui.module';\r\nexport * from './lib/user-settings-dialog/user-settings-dialog.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i3.SmartCoreUiService","i4","i5","i8","i9","i10","i11","i2","i3","i4.SmartCoreUiService","i7","i12","i13","i14","i15.MenuListItemComponent"],"mappings":"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"}