{"version":3,"file":"ngx-smallbang-core.mjs","sources":["../../../projects/ngx-smallbang-core/src/lib/http/api.interfaces.ts","../../../projects/ngx-smallbang-core/src/lib/http/api.service.ts","../../../projects/ngx-smallbang-core/src/lib/http/http.module.ts","../../../projects/ngx-smallbang-core/src/lib/notification/notification.interface.ts","../../../projects/ngx-smallbang-core/src/lib/logging/logging.interfaces.ts","../../../projects/ngx-smallbang-core/src/lib/logging/logging.service.ts","../../../projects/ngx-smallbang-core/src/lib/notification/custom-notification/custom-notification.component.ts","../../../projects/ngx-smallbang-core/src/lib/notification/custom-notification/custom-notification.component.html","../../../projects/ngx-smallbang-core/src/lib/notification/confirmation-dialog/confirmation-dialog.component.ts","../../../projects/ngx-smallbang-core/src/lib/notification/confirmation-dialog/confirmation-dialog.component.html","../../../projects/ngx-smallbang-core/src/lib/notification/notification.module.ts","../../../projects/ngx-smallbang-core/src/lib/notification/notification.service.ts","../../../projects/ngx-smallbang-core/src/lib/logging/logging.module.ts","../../../projects/ngx-smallbang-core/src/lib/permissions/permission-interfaces.ts","../../../projects/ngx-smallbang-core/src/lib/permissions/permission-guard.service.ts","../../../projects/ngx-smallbang-core/src/lib/simple-report/report/report.component.ts","../../../projects/ngx-smallbang-core/src/lib/simple-report/report/report.component.html","../../../projects/ngx-smallbang-core/src/lib/simple-report/paginator/paginator.component.ts","../../../projects/ngx-smallbang-core/src/lib/simple-report/paginator/paginator.component.html","../../../projects/ngx-smallbang-core/src/lib/simple-report/options/options.component.ts","../../../projects/ngx-smallbang-core/src/lib/simple-report/options/options.component.html","../../../projects/ngx-smallbang-core/src/lib/simple-report/simple-report.module.ts","../../../projects/ngx-smallbang-core/src/lib/simple-report/report.interfaces.ts","../../../projects/ngx-smallbang-core/src/lib/forms/forms.interfaces.ts","../../../projects/ngx-smallbang-core/src/lib/forms/validation-result/validation-result.component.ts","../../../projects/ngx-smallbang-core/src/lib/forms/validation-result/validation-result.component.html","../../../projects/ngx-smallbang-core/src/lib/forms/base-input/base-input.component.ts","../../../projects/ngx-smallbang-core/src/lib/forms/base-input/base-input.component.html","../../../projects/ngx-smallbang-core/src/lib/forms/text-input/text-input.component.ts","../../../projects/ngx-smallbang-core/src/lib/forms/text-input/text-input.component.html","../../../projects/ngx-smallbang-core/src/lib/forms/base-input-list/base-input-list.component.ts","../../../projects/ngx-smallbang-core/src/lib/forms/base-input-list/base-input-list.component.html","../../../projects/ngx-smallbang-core/src/lib/forms/drop-down-list/drop-down-list.component.ts","../../../projects/ngx-smallbang-core/src/lib/forms/drop-down-list/drop-down-list.component.html","../../../projects/ngx-smallbang-core/src/lib/forms/autocomplete-list/autocomplete-list.component.ts","../../../projects/ngx-smallbang-core/src/lib/forms/autocomplete-list/autocomplete-list.component.html","../../../projects/ngx-smallbang-core/src/lib/forms/textarea-input/textarea-input.component.ts","../../../projects/ngx-smallbang-core/src/lib/forms/textarea-input/textarea-input.component.html","../../../projects/ngx-smallbang-core/src/lib/forms/forms.module.ts","../../../projects/ngx-smallbang-core/src/public-api.ts","../../../projects/ngx-smallbang-core/src/ngx-smallbang-core.ts"],"sourcesContent":["import {InjectionToken} from \"@angular/core\";\n\nexport interface IApiOptions {\n  OnSuccess?: (data: any) => void;\n  OnSuccessBoxed?: (data: ApiResponse<any>) => void;\n  OnFail?: (failure: ApiResponse<any>) => void;\n  OnCompleted?: (anyResult: any) => void;\n  retry?: number;\n  firstOnly?: boolean;\n}\n\nexport interface IApiCallOptions<T>{\n  translateRoot?: string;\n  translateParams?: {};\n  OnSuccess?: (data: T) => void,\n  OnFail?: (data: ApiResponse<T>) => void,\n  OnComplete?: (data: any)=> void,\n  suppressGlobal?: boolean,\n}\n\nexport interface IPagingFilter {\n  FilterOn: string;\n  FilterType: string;\n  Filter: string;\n  Filter2: string;\n}\n\nexport interface IPagingRequest {\n  Page?: number;\n  PageSize?: number;\n  Total?: number;\n  Filter?: string;\n  SortBy?: string;\n  SortAscending?: boolean;\n  Export?: boolean;\n  Filters?: IPagingFilter[];\n}\n\nexport interface IPagingResult<T> {\n  Page: number;\n  PageSize: number;\n  Total?: number;\n  Result?: T[];\n}\n\nexport class ApiResponse<T> {\n  /* @ts-ignore */\n  Success: boolean;\n  /* @ts-ignore */\n  ResultKey: string;\n  ResultParams: any;\n  /* @ts-ignore */\n  ResultObject: T;\n}\n\nexport class ApiGenericError implements ApiResponse<any> {\n\n  constructor(public ResultKey: string, public ResultParams: any = {}){}\n  Success: boolean = false;\n  ResultObject: any = {};\n}\n\n\nexport const SB_API_OPTIONS = new InjectionToken('sb_api_options');\n","import {Inject, Injectable} from '@angular/core';\nimport {HttpErrorResponse} from \"@angular/common/http\";\nimport {catchError, first, Observable, retry, Subscription, throwError} from \"rxjs\";\nimport {ApiGenericError, ApiResponse, IApiCallOptions, IApiOptions, SB_API_OPTIONS} from \"./api.interfaces\";\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SBApiService  {\n\n  constructor(\n    @Inject(SB_API_OPTIONS) private apiOptions: IApiOptions\n  ) {\n    this.apiOptions = apiOptions || {};\n  }\n\n  public Call<T>(\n    apiCall: Observable<ApiResponse<T>>,\n    options?: IApiCallOptions<T>\n  ): Subscription {\n\n    let obs = this.Build<T>(apiCall, options);\n    return this.Subscribe<T>(obs, options);\n  }\n\n  private Build<T>(\n    apiCall: Observable<ApiResponse<T>>,\n    options?: IApiCallOptions<T>): Observable<ApiResponse<T>> {\n\n    const obs = apiCall;\n\n    if (this.apiOptions.retry && this.apiOptions.retry > 0) {\n      obs.pipe(retry(this.apiOptions.retry));\n    }\n\n    if (!this.apiOptions || !this.apiOptions.firstOnly || this.apiOptions.firstOnly.valueOf()) {\n      obs.pipe(first());\n    }\n\n    obs.pipe(catchError(httpError => this.handleError<T>(httpError)));\n\n    return obs;\n\n  }\n\n  private Subscribe<T>(observ: Observable<ApiResponse<T>>, options?: IApiCallOptions<T>): Subscription {\n\n    options = options || {};\n    const globalOptions = this.apiOptions || {};\n\n    return observ.subscribe({\n        next: apiOK => {\n          if (apiOK.Success) {\n\n            if (globalOptions.OnSuccess && !options?.suppressGlobal) {\n              globalOptions.OnSuccess(apiOK.ResultObject);\n            }\n\n            if (options?.OnSuccess)\n              options.OnSuccess(apiOK.ResultObject);\n\n            if (globalOptions.OnSuccessBoxed && !options?.suppressGlobal)\n              globalOptions.OnSuccessBoxed(apiOK);\n\n          } else {\n\n            if (options?.OnFail) {\n              options.OnFail(apiOK);\n            }\n          }\n\n          if (globalOptions?.OnCompleted && !options?.suppressGlobal)\n            globalOptions.OnCompleted(apiOK);\n\n          if (options?.OnComplete)\n            options.OnComplete(apiOK);\n\n        },\n        error: apiERROR => {\n          let result: ApiGenericError;\n         if (apiERROR instanceof HttpErrorResponse) {\n           result = new ApiGenericError(apiERROR.message,options?.translateParams ?? {});\n         } else {\n           result = apiERROR\n         }\n\n\n\n\n          if (globalOptions?.OnFail && !options?.suppressGlobal)\n            globalOptions.OnFail(result);\n\n          if (options?.OnFail)\n            options.OnFail(result);\n\n          if (globalOptions?.OnCompleted && !options?.suppressGlobal)\n            globalOptions.OnCompleted(result);\n\n          if (options?.OnComplete) {\n            options.OnComplete(result);\n          }\n        }\n      }\n    );\n  }\n\n  private handleError<T>(error: HttpErrorResponse): Observable<ApiResponse<T>> {\n    console.error(\n      `Backend returned code ${error.status}, ` + `body was: ${error.error}`\n    );\n\n    if (error.error instanceof ErrorEvent) {\n      // A client-side or network error occurred. Handle it accordingly.\n\n    } else {\n      if (\n        error.status === 200 &&\n        error.message.includes('during parsing for')\n      ) {\n        window.location.href = '/';\n        return throwError(() => new ApiGenericError('redirecting'));\n      }\n\n      if (error.status === 404 && error.message.includes('AccessDenied')) {\n        return throwError(() => new ApiGenericError('common.http.401'));\n      }\n\n      if (error.status === 0) {\n        return throwError(() => new ApiGenericError('common.http.connection'));\n      }\n      if (error.status === 404) {\n        return throwError(() => new ApiGenericError('common.http.404'));\n      }\n      if (error.status === 500) {\n        const issue = error.error.Error;\n        return throwError(() =>\n          new ApiGenericError('common.http.500', {Issue: issue})\n        );\n      }\n    }\n    // return an ErrorObservable with a user-facing error message\n    return throwError(() => new ApiGenericError('common.http.error', error));\n  }\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {IApiOptions, SB_API_OPTIONS} from \"./api.interfaces\";\nimport {SBApiService} from \"./api.service\";\n\n\n@NgModule({\n  declarations: [],\n  imports: [\n    CommonModule\n  ]\n})\nexport class SBHttpModule {\n  static forRoot(configuration?: IApiOptions): ModuleWithProviders<SBHttpModule> {\n    return {\n      ngModule: SBHttpModule,\n      providers: [\n        SBApiService,\n        {provide: SB_API_OPTIONS, useValue: configuration}\n      ]\n    };\n  }\n}\n","import {InjectionToken} from \"@angular/core\";\nimport {ComponentType } from '@angular/cdk/portal';\n\n\nexport interface INotifyOptions {\n  translate?: boolean;\n  style?: NotifyStyle;\n  duration?: number;\n  customComponent?: ComponentType<any>;\n}\n\nexport interface INotifyData {\n  title?: string;\n  message: string;\n  icon?: string;\n  translateParams?: {};\n  customComponent?: ComponentType<any>;\n  style?: NotifyStyle;\n  duration?: number;\n  dismissible?: boolean;\n  translate?: boolean;\n  completed?: () => void;\n}\n\nexport enum NotifyStyle {\n  info,\n  warn,\n  danger,\n  success\n}\n\n\n\nexport const SB_NOTIFY_SVC = new InjectionToken('sb_notify_svc');\nexport const SB_NOTIFY_OPTIONS = new InjectionToken('sb_notify_options');\nexport const SB_NOTIFY_DATA = new InjectionToken('sb_notify_data');\n","import {InjectionToken} from \"@angular/core\";\n\nexport enum LoggerLevel {\n  TRACE = 0, DEBUG, INFO, LOG, WARN, ERROR, OFF\n}\n\nexport interface ILoggerOptions {\n  minConsole?: LoggerLevel;\n  minServer?: LoggerLevel;\n  /// pass in color name or hex for each level in the correct order [0]-[5]\n  colors?: string[];\n  serverCallback?: (data: any) => void;\n}\n\nexport const SB_LOGGER_SVC = new InjectionToken('sb_logger');\n\nexport const SB_LOGGER_OPTIONS = new InjectionToken('sb_logger_options');\n","// @ts-nocheck\nimport {Inject, Injectable} from '@angular/core';\nimport {ILoggerOptions, LoggerLevel, SB_LOGGER_OPTIONS} from \"./logging.interfaces\";\n\n//TODO add interface\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SBLoggingService {\n\n  private levelNames: string[] = [\n    'TRACE',\n    'DEBUG',\n    'INFO',\n    'LOG',\n    'WARN',\n    'ERROR',\n    'OFF'\n  ];\n\n  constructor(\n    @Inject(SB_LOGGER_OPTIONS) private config: ILoggerOptions\n  ) {\n    const defaultColors: string[] = ['black', 'teal', 'blue', 'gray', 'yellow', 'red'];\n    this.config = config || {};\n\n    if (this.config.minConsole == undefined)\n      this.config.minConsole = LoggerLevel.INFO;\n    if (this.config.minServer == undefined)\n      this.config.minServer = LoggerLevel.WARN;\n    if (!this.config.serverCallback)\n      this.config.serverCallback = () => {\n      }\n\n    if (!this.config.colors)\n      this.config.colors = defaultColors;\n    if (this.config.colors.length < 6) {\n      this.config.colors = defaultColors;\n      this._log(LoggerLevel.WARN, 'Colors array for LoggingService is not a valid size. A color is required for each LoggerLevel. Using defaults.')\n    }\n\n  }\n\n\n  private _getColor(level: LoggerLevel): string | undefined {\n    return this.config.colors[level];\n  }\n\n  private callerInfo() {\n    const err: any = (new Error(''));\n\n    try {\n      const callerLine = err.stack.split('\\n')[4].split('/');\n      const fileLineNumber = callerLine[callerLine.length - 1].replace(/[)]/g, '').split(':');\n      return {\n        fileName: fileLineNumber[0],\n        lineNumber: fileLineNumber[1]\n      };\n    } catch (e) {\n      return {\n        fileName: 'unknown',\n        lineNumber: 0\n      };\n    }\n  }\n\n  private _prepareMessage(message: any) {\n    try {\n      if (message instanceof Error) {\n        message = message.stack;\n      } else if (typeof message !== 'string') {\n        message = JSON.stringify(message, null, 2);\n      }\n    } catch (e) {\n      // additional = [message, ...additional];\n      message = 'The provided \"message\" value could not be parsed with JSON.stringify().';\n    }\n\n    return message;\n  }\n\n  private _prepareAdditionalParameters(additional: any[]): string {\n    if (additional === null || additional === undefined) {\n      return '';\n    }\n\n    return JSON.stringify(additional);\n\n  }\n\n\n  private _log(level: LoggerLevel, message: string | Error, additional: any[] = []): void {\n    if (!message) {\n      return;\n    }\n\n    if (level < this.config.minConsole && level < this.config.minServer) {\n      return;\n    }\n\n    const logLevelString = this.levelNames[level];\n    const caller = this.callerInfo();\n    const callerInfo = `file: ${caller.fileName} , line: ${caller.lineNumber}`;\n\n    message = this._prepareMessage(message);\n\n\n    const timestamp = new Date().toISOString();\n\n    if (level >= this.config.minServer) {\n      this.config.serverCallback(\n        {\n          page: window.location.href, origin: callerInfo, message: message, level: level.toString(), levelName: this.levelNames[level],\n          extra: this._prepareAdditionalParameters(additional)\n        }\n      );\n    }\n\n    if (level < this.config.minConsole) {\n      return;\n    }\n\n    const color = this._getColor(level);\n    console.log(`%c${timestamp} [${logLevelString}]`, `color:${color}`, message, ...(additional || []));\n\n  }\n\n  public trace(message: string | Error, ...additional: any[]): void {\n    this._log(LoggerLevel.TRACE, message, additional);\n  }\n\n  public debug(message: string | Error, ...additional: any[]): void {\n    this._log(LoggerLevel.DEBUG, message, additional);\n  }\n\n  public info(message: string | Error, ...additional: any[]): void {\n    this._log(LoggerLevel.INFO, message, additional);\n  }\n\n  public log(message: string | Error, ...additional: any[]): void {\n    this._log(LoggerLevel.LOG, message, additional);\n  }\n\n  public warn(message: string | Error, ...additional: any[]): void {\n    this._log(LoggerLevel.WARN, message, additional);\n  }\n\n  public error(message: string | Error, ...additional: any[]): void {\n    this._log(LoggerLevel.ERROR, message, additional);\n  }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { INotifyData, SB_NOTIFY_DATA } from '../notification.interface';\nimport { SBLoggingService } from '../../logging/logging.service';\nimport { BehaviorSubject } from 'rxjs';\n\n\n@Component({\n  selector: 'sb-custom-notification',\n  templateUrl: './custom-notification.component.html',\n  styleUrls: ['./custom-notification.component.scss']\n})\nexport class CustomNotificationComponent implements OnInit {\n\n  public notifyData: INotifyData = { message:'' };\n\n  constructor(\n    @Inject(SB_NOTIFY_DATA) private dataInjection : BehaviorSubject<INotifyData>,\n    private logger: SBLoggingService\n\n  ) { }\n\n  ngOnInit(): void {\n    this.notifyData = this.dataInjection.value;\n  }\n\n}\n","<div class=\"sb-notify-header\">\n    <mat-icon class=\"sb-notify-icon\" *ngIf=\"notifyData.icon\">{{notifyData.icon}}</mat-icon>\n    <span *ngIf=\"notifyData.title\" class=\"sb-notify-title\">{{ notifyData.title }}\n    </span>\n\n</div>\n<div class=\"sb-notify-body\">\n<span *ngIf=\"notifyData.message\" class=\"sb-notify-message\">{{ notifyData.message }}</span>\n</div>","import {Component, Input, OnInit, Output} from '@angular/core';\nimport {MatDialogRef} from \"@angular/material/dialog\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {first} from \"rxjs\";\n\n\nexport interface IConfirmationDialogSelection {\n  text?: string;\n  translate?: boolean;\n  class?: string | string[];\n  onSelected?: (returnValue: any) => void;\n  value: any;\n}\nexport interface IConfirmationOptions {\n  title?: string;\n  message?: string;\n  translate?: boolean;\n  selections?: IConfirmationDialogSelection[];\n}\n\nexport class BasicConfirmationOptions implements  IConfirmationOptions{\n  title = 'common.confirmation-dialog.title';\n  message = 'common.confirmation-dialog.message';\n  translate = true;\n  selections = [];\n}\n\n@Component({\n  selector: 'sb-confirmation-dialog',\n  templateUrl: './confirmation-dialog.component.html',\n  styleUrls: ['./confirmation-dialog.component.scss']\n})\nexport class ConfirmationDialogComponent implements OnInit {\n  @Input() options? : IConfirmationOptions;\n\n  constructor(\n    private dialogRef: MatDialogRef<boolean>,\n    private translator: TranslateService,\n  ) {\n      this.options = this.options ?? new BasicConfirmationOptions();\n  }\n\n  ngOnInit(): void {\n\n    this.options?.selections?.forEach((s) => {\n      this.mergeCallback(s);\n    });\n\n    if (this.options?.translate && this.options.title){\n      this.translator.get(this.options.title).pipe(first()).subscribe((translatedValue: string) => {\n\n        if (this.options)\n        this.options.title = translatedValue;\n      })\n    }\n\n    if (this.options?.translate && this.options.message){\n      this.translator.get(this.options.message).pipe(first()).subscribe((translatedValue: string) => {\n\n        if (this.options)\n          this.options.message = translatedValue;\n      })\n    }\n  }\n\n  mergeCallback(selection : IConfirmationDialogSelection) {\n    if (!selection || !selection.onSelected)\n    {\n\n    const originalCallback = selection.onSelected;\n      selection.onSelected = () => this.handleSelectionCallback(selection, originalCallback);\n    }\n  }\n\n  handleSelectedButton(selection: IConfirmationDialogSelection){\n    if (selection.onSelected)\n      selection.onSelected(null);\n  }\n\n\n  handleSelectionCallback(selection: IConfirmationDialogSelection, originalCallback?: (returnValue: any) => void) : void {\n    if (!selection)\n      return;\n\n    this.dialogRef.close(selection.value ?? selection);\n\n    if (originalCallback)\n      originalCallback(selection.value ?? selection);\n  }\n\n\n\n}\n","<div class=\"dialog-wrapper\">\n  <h1 mat-dialog-title>{{options?.title ?? ''}}</h1>\n\n  <div mat-dialog-content class=\"dialog-content\">\n      <span>\n        {{options?.message ?? ''}}\n      </span>\n  </div>\n  <div class=\"simple-spacer\"></div>\n\n  <div mat-dialog-actions class=\"dialog-actions\">\n\n    <button [class]=\"selection.class\" *ngFor=\"let selection of options?.selections\" mat-button (click)=\"handleSelectedButton(selection)\">{{selection.text}}</button>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CustomNotificationComponent } from './custom-notification/custom-notification.component';\nimport { INotifyData, SB_NOTIFY_DATA } from './notification.interface';\nimport { BehaviorSubject } from 'rxjs';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfirmationDialogComponent } from './confirmation-dialog/confirmation-dialog.component';\nimport {MatButtonModule} from \"@angular/material/button\";\nimport {MatDialogModule} from \"@angular/material/dialog\";\n\n@NgModule({\n  declarations: [CustomNotificationComponent, ConfirmationDialogComponent],\n  imports: [CommonModule, MatIconModule, TranslateModule, MatButtonModule, MatDialogModule],\n  providers: [\n    {\n      provide: SB_NOTIFY_DATA,\n      useValue: new BehaviorSubject<INotifyData>({\n        title: 'notset',\n        message: 'notsetmsg',\n      }),\n    },\n  ],\n})\nexport class SBNotificationModule {}\n","import {\n  Inject,\n  Injectable,\n  Injector,\n  ReflectiveInjector,\n} from '@angular/core';\nimport { SB_LOGGER_SVC } from '../logging/logging.interfaces';\n\nimport {\n  INotifyData,\n  INotifyOptions,\n  NotifyStyle,\n  SB_NOTIFY_DATA,\n  SB_NOTIFY_OPTIONS,\n} from './notification.interface';\nimport { SBLoggingService } from '../logging/logging.service';\nimport {\n  MatSnackBar,\n  MatSnackBarConfig,\n  MatSnackBarRef,\n  MAT_SNACK_BAR_DEFAULT_OPTIONS,\n} from '@angular/material/snack-bar';\nimport { CustomNotificationComponent } from './custom-notification/custom-notification.component';\nimport { BehaviorSubject, first } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\n\n/**\n * Warning: Notification service is implemented with snackbar from material. Snackbars are only supporting 1 notification at a time per material design\n */\n@Injectable({\n  providedIn: 'root',\n})\nexport class SBNotificationService {\n  constructor(\n    @Inject(SB_LOGGER_SVC) private loggingService: SBLoggingService,\n    @Inject(MAT_SNACK_BAR_DEFAULT_OPTIONS)\n    private snackbarOptions: MatSnackBarConfig,\n    private translateService: TranslateService,\n    @Inject(SB_NOTIFY_OPTIONS) private globalNotifyOptions: INotifyOptions,\n    @Inject(SB_NOTIFY_DATA) private notifyData: BehaviorSubject<INotifyData>,\n\n    private snackbar: MatSnackBar\n  ) {}\n\n  private fallbackDuration: number = 5000;\n  private fallbackStyle = NotifyStyle.info;\n  private fallbackTranslate = false;\n\n  public Notify(data: INotifyData) : void {\n    const component =\n      data.customComponent ??\n      this.globalNotifyOptions.customComponent ??\n      CustomNotificationComponent;\n    this.notifyData.next(data);\n\n    data.style =\n      data.style ?? this.globalNotifyOptions.style ?? this.fallbackStyle;\n    data.translate =\n      data.translate ??\n      this.globalNotifyOptions.translate ??\n      this.fallbackTranslate;\n\n    if (data.translate) {\n      this.translateService\n        .get(data.message, data.translateParams)\n        .pipe(first())\n        .subscribe((t) =>  data.message = t);\n\n      if (data.title)\n        this.translateService\n          .get(data.title, data.translateParams)\n          .pipe(first())\n          .subscribe((t) => data.title = t);\n    }\n\n    var styles: string[] = [];\n    styles.push('sb-notify-panel');\n\n    if (this.snackbarOptions.panelClass) {\n      if (typeof this.snackbarOptions.panelClass === 'string')\n        styles.push(this.snackbarOptions.panelClass);\n      else styles.push(...this.snackbarOptions.panelClass);\n    }\n\n    switch (data.style ?? this.globalNotifyOptions.style) {\n      case NotifyStyle.info:\n        styles.push('sb-notifystyle-info');\n        data.icon = data.icon ?? 'info';\n        break;\n      case NotifyStyle.success:\n        styles.push('sb-notifystyle-success');\n        data.icon = data.icon ?? 'done';\n        break;\n      case NotifyStyle.warn:\n        styles.push('sb-notifystyle-warn');\n        data.icon = data.icon ?? 'warning';\n        break;\n      case NotifyStyle.danger:\n        styles.push('sb-notifystyle-danger');\n        data.icon = data.icon ?? 'error';\n        break;\n    }\n\n   const sbref = this.snackbar.openFromComponent(component, {\n      duration:\n        data.duration ??\n        this.globalNotifyOptions.duration ??\n        this.snackbarOptions.duration ??\n        this.fallbackDuration,\n      horizontalPosition: this.snackbarOptions.horizontalPosition,\n      verticalPosition: this.snackbarOptions.verticalPosition,\n      panelClass: [...styles],\n      direction: this.snackbarOptions.direction,\n      politeness: this.snackbarOptions.politeness,\n      data: data,\n    });\n\n  }\n\n  public Info(message: string, title?: string, icon?: string) {\n    this.Notify({\n      style: NotifyStyle.info,\n      message,\n      title,\n      icon,\n    });\n  }\n\n  public Success(message: string, title?: string, icon?: string) {\n    this.Notify({\n      style: NotifyStyle.success,\n      message,\n      title,\n      icon,\n    });\n  }\n\n  public Warn(message: string, title?: string, icon?: string) {\n    this.Notify({\n      style: NotifyStyle.warn,\n      message,\n      title,\n      icon,\n    });\n  }\n\n  public Danger(message: string, title?: string, icon?: string) {\n    this.Notify({\n      style: NotifyStyle.danger,\n      message,\n      title,\n      icon,\n    });\n  }\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {ILoggerOptions, SB_LOGGER_OPTIONS} from \"./logging.interfaces\";\nimport {SBLoggingService} from \"./logging.service\";\n\n\n\n@NgModule({\n  declarations: [],\n  imports: [\n    CommonModule\n  ],\n  exports: []\n})\nexport class SBLoggingModule {\n  static forRoot(configuration? : ILoggerOptions): ModuleWithProviders<SBLoggingModule> {\n    return {\n      ngModule: SBLoggingModule,\n      providers: [\n        SBLoggingService,\n        {provide: SB_LOGGER_OPTIONS, useValue: configuration}\n      ]\n    };\n  }\n\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\n\n\nexport class PermissionGuardOptions {\n    OnSuccess?: (roles : string | string[], next?: ActivatedRouteSnapshot, state?: RouterStateSnapshot) => void;\n    OnFail?: (roles : string | string[], next?: ActivatedRouteSnapshot, state?: RouterStateSnapshot) => void;\n    Check?: (roles: string | string[]) => boolean;\n    Debug: boolean = false;\n}\n\nexport const SB_PROFILE_SVC = new InjectionToken('sb_profile_svc');\nexport const SB_PERMISSIONGUARD_OPTIONS = new InjectionToken('sb_permissionguard_options');\n","import { Inject, Injectable } from '@angular/core';\nimport {\n  ActivatedRouteSnapshot,\n  CanActivate,\n  RouterStateSnapshot,\n  UrlTree,\n} from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { SB_LOGGER_SVC } from '../logging/logging.interfaces';\nimport { SBLoggingService } from '../logging/logging.service';\nimport {\n  PermissionGuardOptions,\n  SB_PERMISSIONGUARD_OPTIONS\n} from './permission-interfaces';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PermissionGuardService implements CanActivate {\n  constructor(\n    @Inject(SB_PERMISSIONGUARD_OPTIONS)\n    private guardOptions: PermissionGuardOptions,\n    @Inject(SB_LOGGER_SVC) private logger: SBLoggingService\n  ) {}\n\n  canActivate(\n    next: ActivatedRouteSnapshot,\n    state: RouterStateSnapshot\n  ):\n    | boolean\n    | UrlTree\n    | Observable<boolean | UrlTree>\n    | Promise<boolean | UrlTree> {\n    var data = next.data;\n    var roles: string | string[] = (<any>next.data).roles;\n\n    if (!this.guardOptions || !this.guardOptions.Check) {\n      this.logger.warn(\n        'PermissionGuardOptions are not configured correctly or being injected. Check your providers. Defaulting to permission deny'\n      );\n      return false;\n    }\n\n    if (data && roles) {\n      const allowed = this.guardOptions.Check(roles);\n      if (!allowed && this.guardOptions.Debug)\n        this.logger.debug('Permissions denied - Roles', roles);\n\n      if (this.guardOptions.OnFail && !allowed)\n        this.guardOptions.OnFail(roles, next, state);\n\n      if (this.guardOptions.OnSuccess && allowed)\n        this.guardOptions.OnSuccess(roles, next, state);\n      return allowed;\n    }\n\n    return true;\n  }\n}\n","import {Component, Input, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {PaginatorComponent} from \"../paginator/paginator.component\";\nimport {MatSort} from \"@angular/material/sort\";\nimport {Subject} from \"rxjs\";\nimport {ISimpleReportColumn} from \"../report.interfaces\";\nimport {MatTableDataSource} from \"@angular/material/table\";\nimport {TranslateService} from \"@ngx-translate/core\";\n\n@Component({\n  selector: 'sb-simplereport',\n  templateUrl: './report.component.html',\n  styleUrls: ['./report.component.scss']\n})\nexport class SBSimpleReportComponent implements OnInit, OnDestroy {\n  @ViewChild('topPaginator') topPaginator?: PaginatorComponent;\n  @ViewChild('bottomPaginator') paginator?: PaginatorComponent;\n  @ViewChild(MatSort) sort?: MatSort;\n\n  @Input() data?: any[];\n  @Input() columns?: ISimpleReportColumn[];\n\n  internalData: MatTableDataSource<any> = new MatTableDataSource<any>([]);\n  displayColumns: string[] = [];\n\n  //internalKeymap: any[] = [];\n\n  private unsubscribe$ = new Subject<void>();\n\n  constructor(private translateService: TranslateService) {\n  }\n\n  ngOnInit(): void {\n    this.processData();\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe$?.unsubscribe();\n  }\n\n  processData() {\n    //this.internalKeymap = this.buildKeymap(this.data ?? []);\n    this.validateData();\n    this.convertToInternal();\n  }\n\n  private validateData() {\n\n  }\n\n  private convertToInternal() {\n    if (!this.data || this.data.length === 0)\n      return;\n\n     let internalPrep = [];\n     for (const [index, row] of this.data.entries()) {\n       let internalRow: {key: string, val: any}[] = [];\n       for (const [colIndex, col] of this.columns?.entries() ?? []) {\n\n         if (colIndex === 0) {\n           col.process(this.translateService);\n           this.displayColumns.push(col.header);\n           col._index = colIndex;\n         }\n\n         internalRow[colIndex] = (col.getValue(row));\n       }\n       internalPrep.push(internalRow);\n     }\n\n     this.internalData.data = internalPrep;\n\n  }\n\n  // private buildKeymap(data: any[]) {\n  //   var keyMap = [];\n  //   let propIndex = 0;\n  //   for (const [prop] of Object.keys(data[0])) {\n  //     keyMap.push(prop);\n  //     propIndex++;\n  //   }\n  //   return keyMap;\n  // }\n\n}\n","<div class=\"simplereport-container\">\n\n  <table mat-table #table matSort matSortDisableClear [dataSource]=\"internalData\">\n    <ng-container *ngFor=\"let column of columns\" matColumnDef=\"{{ column.header }}\">\n      <th style=\"font-weight: bold;\" mat-header-cell *matHeaderCellDef [mat-sort-header]=\"column.header\">\n        {{column._display | uppercase}}\n      </th>\n\n\n      <td mat-cell *matCellDef=\"let element\">\n        <span [innerHTML]=\"element[column._index ?? 0]\"></span>\n        <span class=\"post-span\"></span>\n      </td>\n\n    </ng-container>\n\n    <tr mat-header-row *matHeaderRowDef=\"displayColumns\"></tr>\n    <tr mat-row *matRowDef=\"let row; columns: displayColumns;\"></tr>\n\n  </table>\n\n\n\n\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'sb-paginator',\n  templateUrl: './paginator.component.html',\n  styleUrls: ['./paginator.component.scss']\n})\nexport class PaginatorComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<p>paginator works!</p>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'sb-options',\n  templateUrl: './options.component.html',\n  styleUrls: ['./options.component.scss']\n})\nexport class OptionsComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<p>options works!</p>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SBSimpleReportComponent } from './report/report.component';\nimport { PaginatorComponent } from './paginator/paginator.component';\nimport { OptionsComponent } from './options/options.component';\nimport {MatTableModule} from \"@angular/material/table\";\nimport {MatSortModule} from \"@angular/material/sort\";\nimport {MatButtonModule} from \"@angular/material/button\";\n\n@NgModule({\n  declarations: [\n    SBSimpleReportComponent,\n    PaginatorComponent,\n    OptionsComponent\n  ],\n  imports: [\n    CommonModule,\n    MatTableModule,\n    MatSortModule,\n    MatButtonModule\n  ],\n  exports: [\n    SBSimpleReportComponent,\n  ]\n})\nexport class SBSimpleReportModule { }\n","import {TranslateService} from \"@ngx-translate/core\";\r\nimport {first} from \"rxjs\";\r\n\r\nexport enum SimpleReportColumnFooterStyle {\r\n  none,\r\n  text,\r\n  total,\r\n  totalPlus,\r\n  sum,\r\n  sumPlus\r\n}\r\n\r\nexport interface ISimpleReportColumn {\r\n  visible: boolean;\r\n  header: string;\r\n  getValue: (rowData: any) => any;\r\n  process: (translator: TranslateService) => void;\r\n\r\n  _display?: string;\r\n  _index?: number;\r\n}\r\n\r\nexport interface ISimpleReportColumnOptions {\r\n  translate?: boolean;\r\n  footerStyle?: SimpleReportColumnFooterStyle;\r\n}\r\n\r\nexport class PropertyReportColumnOptions implements ISimpleReportColumnOptions {\r\n  property: string = '';\r\n  header?: string;\r\n  footerStyle? = SimpleReportColumnFooterStyle.none;\r\n  translate?: boolean = true;\r\n}\r\n\r\nexport class TextPropertyReportColumn implements ISimpleReportColumn {\r\n  visible: boolean = true;\r\n  options: PropertyReportColumnOptions;\r\n  header: string = '';\r\n  _display?: string;\r\n  _processed: boolean = false;\r\n\r\n  constructor(options: PropertyReportColumnOptions) {\r\n    this.options = options;\r\n    this.header = this.options.header ?? this.options.property;\r\n  }\r\n\r\n  getValue(rowData: any): any {\r\n    if (!rowData)\r\n      return '';\r\n\r\n    if (this.options?.property)\r\n      return rowData[this.options?.property]\r\n\r\n    // fallbacks\r\n    if (!Array.isArray(rowData))\r\n      return rowData;\r\n\r\n    return rowData[0];\r\n  }\r\n\r\n  process(translator?: TranslateService): void {\r\n    if (this._processed)\r\n      return;\r\n    this.header = this.options.property ?? '';\r\n    if (translator && this.options?.translate) {\r\n      translator.get(this.options?.header ?? '').pipe(first()).subscribe((result) => {\r\n        this._display = result;\r\n      });\r\n    } else {\r\n      this._display = this.header;\r\n    }\r\n\r\n\r\n  }\r\n\r\n}\r\n","import {InjectionToken} from \"@angular/core\";\n\nexport declare type IconPosition = 'none' | 'start' | 'end';\n\nexport declare type HtmlInputType =\n  'text'\n  | 'password'\n  | 'email'\n  | 'date'\n  | 'time'\n  | 'tel'\n  | 'color'\n  | 'datetime'\n  | 'datetime-local'\n  | 'month'\n  | 'week'\n  | 'checkbox';\n\nexport declare type AutoCompleteMatchMode = 'contains' | 'startsWith' | 'endsWith' | 'exact';\n\n\nexport class SBInputValidationCheck {\n  constructor(\n    public name: string,\n    public translateParams?: string[]\n  ) {\n  }\n}\n\nexport class SBFormValidations implements ISBFormValidations {\n  Validations: SBInputValidationCheck[] = [];\n  appendControlToTranslation: boolean = false;\n  translationsRoot = 'form-validations';\n  filter = 'mat';\n\n  constructor() {\n    this.Validations.push(new SBInputValidationCheck('required'));\n    this.Validations.push(new SBInputValidationCheck('date'));\n    this.Validations.push(new SBInputValidationCheck('minDate', ['minDate']));\n    this.Validations.push(new SBInputValidationCheck('maxDate', ['maxDate']));\n    this.Validations.push(new SBInputValidationCheck('minLength', ['requiredLength']));\n    this.Validations.push(new SBInputValidationCheck('maxLength', ['requiredLength']));\n  }\n\n  public addValidation(validation: SBInputValidationCheck) {\n    this.Validations.push(validation);\n  }\n\n  public addValidations(validations: SBInputValidationCheck[]) {\n    this.Validations.push(...validations);\n  }\n\n}\n\nexport interface ISBFormValidations {\n  Validations: SBInputValidationCheck[];\n  appendControlToTranslation: boolean;\n  translationsRoot: string;\n  filter: string;\n}\n\n\nexport const SB_TRANSLATE_SVC = new InjectionToken('sb_translate_svc');\nexport const SB_INPUT_VALIDATIONS = new InjectionToken('sb_input_validations');\n","import {Component, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {FormControl} from \"@angular/forms\";\nimport {first, Subscription} from \"rxjs\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {SBLoggingService} from \"../../logging/logging.service\";\nimport {SB_LOGGER_SVC} from \"../../logging/logging.interfaces\";\nimport {ISBFormValidations, SB_INPUT_VALIDATIONS, SBFormValidations} from \"../forms.interfaces\";\nimport {formatDate} from \"@angular/common\";\n\n@Component({\n  selector: 'sb-validation-result',\n  templateUrl: './validation-result.component.html',\n  styleUrls: ['./validation-result.component.scss']\n})\nexport class SBValidationResultComponent implements OnInit, OnDestroy {\n  @Input() control?: FormControl;\n  @Input() controlName: string = 'Field';\n  @Input() translateRoot?: string;\n  @Input() debug: boolean = false;\n\n  issues: string[] = [];\n  status$?: Subscription;\n\n  constructor(\n    @Inject(SB_LOGGER_SVC) private loggingService: SBLoggingService,\n    @Inject(SB_INPUT_VALIDATIONS) private projectValidations: ISBFormValidations,\n    private translateService: TranslateService,\n  ) {\n\n    this.projectValidations = projectValidations ?? new SBFormValidations();\n    this.projectValidations.Validations = this.projectValidations.Validations ?? new SBFormValidations().Validations;\n  }\n\n\n  ngOnInit(): void {\n    if (!(this.control instanceof FormControl)) {\n      throw new Error('You must supply a control reference');\n    }\n\n    this.status$ = this.control.statusChanges.subscribe(status => {\n      this.generateValidationIssues();\n    });\n  }\n\n  ngOnDestroy() {\n    this.status$?.unsubscribe();\n  }\n\n  public ResetValidationIssues() {\n    this.issues = [];\n  }\n\n  private generateValidationIssues(): void {\n    this.ResetValidationIssues();\n    if (this.control?.pristine)\n      return;\n\n    const controlErrors = <any>this.control?.errors;\n    if (!controlErrors || controlErrors.count === 0)\n      return;\n\n    if (this.projectValidations.Validations.length === 0)\n      return;\n\n    Object.keys(controlErrors).filter(ce => !ce.toLowerCase().startsWith(this.projectValidations.filter))\n      .forEach(errorKey => {\n\n        // find a matching validation\n        const validation = this.projectValidations.Validations.find(v => v.name.toLowerCase() == errorKey.toLowerCase());\n\n        // translationParams to be passed to service for replacements\n        const translationParams: any = {\n          field: this.controlName,\n          fieldValue: this.control?.value\n        };\n\n        // apply params for translation\n        if (validation && validation.translateParams) {\n          validation.translateParams.forEach(tp => {\n            if (controlErrors[validation.name] && controlErrors[validation.name][tp]) {\n              const p = controlErrors[validation.name][tp];\n              translationParams[tp] = this.attemptDateFormat(p);\n            }\n          });\n        }\n\n        if (controlErrors)\n          translationParams['issues'] = controlErrors;\n\n        if (this.debug)\n          this.loggingService.debug('input-validation-params' ,translationParams)\n\n        let translationKey = errorKey;\n        if (this.projectValidations.appendControlToTranslation && this.controlName !== 'Field')\n          translationKey += `.${this.controlName}`;\n\n        if (this.translateRoot) {\n          translationKey = this.translateRoot + `.${errorKey}`;\n        }\n\n        if (!this.translateRoot && this.projectValidations.translationsRoot)\n          translationKey = this.projectValidations.translationsRoot + `.${errorKey}`;\n\n        this.translateService.get(translationKey, translationParams)\n          .pipe(first())\n          .subscribe(result => {\n              this.issues.push(result);\n          });\n\n      });\n\n  }\n\n  private attemptDateFormat(p: any): string {\n    if (p && p.getMonth === 'function')\n      return formatDate(p, 'yyyy-MM-dd', this.translateService.currentLang);\n    return p;\n  }\n\n}\n","<div *ngIf=\"issues.length > 0\" class=\"sb-validation-summary\">\n  <mat-error *ngFor=\"let issue of issues\">\n    {{issue}}\n  </mat-error>\n</div>\n","import {ChangeDetectorRef, Component, ElementRef, Inject, Input, OnInit, ViewChild} from '@angular/core';\nimport {AbstractControl, FormControl, FormGroup} from \"@angular/forms\";\nimport {\n  MAT_FORM_FIELD_DEFAULT_OPTIONS,\n  MatFormFieldAppearance,\n  MatFormFieldDefaultOptions\n} from \"@angular/material/form-field\";\nimport {TranslateService} from '@ngx-translate/core';\nimport {IconPosition, SB_TRANSLATE_SVC} from '../forms.interfaces';\nimport {SBValidationResultComponent} from \"../validation-result/validation-result.component\";\nimport {SBLoggingService} from \"../../logging/logging.service\";\n\n\n@Component({\n  selector: 'sb-base-input',\n  templateUrl: './base-input.component.html',\n  styleUrls: ['./base-input.component.scss']\n})\nexport class BaseInputComponent implements OnInit {\n\n  @Input() control: FormControl | AbstractControl = new FormControl();\n  @Input() controlName: string = '';\n  @Input() formGroup?: FormGroup;\n  @Input() autoFocus: boolean = false;\n  @Input() attachValidation: boolean = true;\n  @Input() appearance?: MatFormFieldAppearance;\n  @Input() autocomplete: boolean = false;\n  @Input() cssClass: string = '';\n\n  @Input() readOnly: boolean = false;\n  @Input() translateParams = {};\n  @Input() label: string = '';\n  @Input() hint: string = '';\n  @Input() placeholder: string = '';\n\n  @Input() icon: string = '';\n  @Input() iconPosition: IconPosition = 'start';\n  @Input() iconFont: string = '';\n\n  @Input() debug: boolean = false;\n\n  @ViewChild('sbInput') public inputRef: ElementRef | undefined;\n  @ViewChild(SBValidationResultComponent) public validatorRef: SBValidationResultComponent | undefined;\n\n  public controlId : string = 'frm_ctl_';\n  private formControlName: string = 'unknown';\n\n\n  constructor(\n    @Inject(SB_TRANSLATE_SVC) public translateService: TranslateService,\n    @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) private matFormFieldOptions: MatFormFieldDefaultOptions,\n    public changeDetector: ChangeDetectorRef,\n    public logger: SBLoggingService,\n  ) {\n    this.controlId += this.generateControlId();\n  }\n\n  ngOnInit(): void {\n\n    this.appearance =  this.appearance ?? this.matFormFieldOptions.appearance ?? 'standard';\n\n    if (this.autoFocus)\n      this.focus();\n\n    if (this.formGroup && this.controlName) {\n      this.control = this.formGroup.controls[this.controlName] as FormControl;\n    }\n\n    if (this.control?.parent) {\n        Object.keys(this.control.parent.controls).forEach(\n          name => {\n          if (this.control.parent?.get(name) == this.control) {\n            this.formControlName = name;\n            if (this.debug)\n              this.logger.debug('set default formControlName', this.formControlName);\n            return true;\n          }\n          return false;\n        });\n    }\n\n    if (!this.label && this.formControlName) {\n      this.label = this.formControlName;\n      if (this.debug)\n        this.logger.debug('set default label', this.label);\n      this.changeDetector.detectChanges();\n    }\n\n    if (this.debug)\n      this.logger.debug('init-control', this.formControlName);\n\n  }\n\n  public focus(){\n    if (this.inputRef?.nativeElement)\n      this.inputRef?.nativeElement.focus();\n\n    if (this.debug)\n      this.logger.debug(`${this.formControlName}-focus`);\n  }\n\n  private generateControlId() : string {\n    const generateSize = 10;\n    let newId = '';\n    const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';\n    const charactersLen = characters.length;\n    for (let i = 0; i < generateSize; i++){\n      newId += characters.charAt(Math.floor(Math.random() * charactersLen))\n    }\n    return newId;\n  }\n\n}\n","<p>base-input works!</p>\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {HtmlInputType} from \"../forms.interfaces\";\nimport {BaseInputComponent} from \"../base-input/base-input.component\";\n\n@Component({\n  selector: 'sb-text-input',\n  templateUrl: './text-input.component.html',\n  styleUrls: ['./text-input.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SBTextInputComponent extends BaseInputComponent {\n  @Input() htmlInputType: HtmlInputType = 'text';\n\n\n}\n","<mat-form-field [class]=\"cssClass\" [appearance]=\"$any(appearance)\">\n  <mat-label>\n    {{label | translate : translateParams}}\n  </mat-label>\n  <input matInput #sbInput [id]=\"controlId\" [type]=\"htmlInputType\" [formControl]=\"$any(control)\" title=\"{{ label | translate : translateParams}}\"\n         [autocomplete]=\"autocomplete ? 'on' : '_off_'\" [readonly]=\"readOnly\" [placeholder]=\"placeholder | translate : translateParams\"/>\n  <mat-icon *ngIf=\"iconPosition == 'start'\" matPrefix [fontSet]=\"iconFont\">\n    {{icon}}\n  </mat-icon>\n  <mat-icon *ngIf=\"iconPosition == 'end'\" matSuffix [fontSet]=\"iconFont\">\n    {{icon}}\n  </mat-icon>\n  <mat-hint *ngIf=\"hint\" align=\"end\">\n    {{hint | translate : translateParams}}\n  </mat-hint>\n  <sb-validation-result *ngIf=\"attachValidation\" [debug]=\"debug\" [controlName]=\"label | translate : translateParams\" [control]=\"$any(control)\">\n  </sb-validation-result>\n</mat-form-field>\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { BaseInputComponent } from '../base-input/base-input.component';\n\n@Component({\n  selector: 'lib-base-input-list',\n  templateUrl: './base-input-list.component.html',\n  styleUrls: ['./base-input-list.component.scss'],\n})\nexport class BaseInputListComponent\n  extends BaseInputComponent\n  implements OnInit, OnDestroy\n{\n  @Output() changed = new EventEmitter<any>();\n  options$ = new BehaviorSubject<any[]>([]);\n\n  @Input('options')\n  set options(value: any[]) {\n    this.options$.next(value);\n  }\n\n  @Input() multiple: boolean = false;\n  @Input() propValue?: string = '';\n  @Input() propDisplay?: string = '';\n\n  @Input() fnFormat?: (val: any) => string;\n  @Input() fnFilter?: (options: any[], filter: any) => any[]; //todo: implement default once i figure out how i will call it\n\n  ngOnDestroy(): void {\n    this.options$?.unsubscribe();\n  }\n\n  selectionChanged(value: any) {\n    this.changed.emit(value);\n    if (this.debug)\n      this.logger.debug(`sb-list-component changed emitting}`, value);\n  }\n\n  selectAll() {\n    if (!this.multiple) {\n      this.selectOption(this.options$.value[0]);\n      if (this.debug)\n        this.logger.warn(\n          'sb-input-list attempt to selectAll on a control that is not using multiple. Selecting first option'\n        );\n    } else this.selectOptions(this.options$.value);\n  }\n\n  selectOptions(options: any[]) {\n    this.control.setValue(options);\n  }\n\n  selectOption(option: any) {\n    this.control.setValue(option);\n  }\n\n  clearSelection() {\n    this.control.setValue({});\n  }\n\n  detectChanges() {\n    this.changeDetector.detectChanges();\n  }\n\n  getDisplay(option: any): string {\n    if (!option) option = '';\n\n    if (this.fnFormat) {\n      return this.fnFormat(option);\n    }\n\n    if (typeof option === 'string') {\n      return option;\n    }\n\n    var availableProps = Object.keys(option);\n\n    if (this.propDisplay && availableProps.includes(this.propDisplay)) {\n      return option[this.propDisplay];\n    } else {\n      // setup some defaults to try that match our normal schema conventions\n\n      if (\n        availableProps.includes('Name') &&\n        availableProps.includes('Description')\n      )\n        return `${option['Name']} - ${option['Description']}`;\n\n      if (availableProps.includes('Name')) return option['Name'];\n\n      if (availableProps.includes('Number')) return option['Number'];\n    }\n\n    return option;\n  }\n\n  getMultipleDisplay() {\n    let display = '';\n\n    if (this.control.value && typeof this.control.value === 'object')\n      this.control.value.forEach((v: any) => {\n        if (display) display += ',';\n        display += `${this.getDisplay(v)}`;\n      });\n    return display;\n  }\n\n  getValue(option: any): any {\n    var availableProps = Object.keys(option);\n\n    if (this.propValue && availableProps.includes(this.propValue))\n      return option[this.propValue];\n\n    if (!this.propValue && availableProps.includes('Value'))\n      return option['Value'];\n\n    if (!this.propValue && availableProps.includes('Name'))\n      return option['Name'];\n\n    return option;\n  }\n}\n","<p>base-input-list works!</p>\n","import { Component, OnInit } from '@angular/core';\nimport { BaseInputListComponent } from '../base-input-list/base-input-list.component';\n\n@Component({\n  selector: 'sb-drop-down-list',\n  templateUrl: './drop-down-list.component.html',\n  styleUrls: ['./drop-down-list.component.scss']\n})\nexport class SBDropDownListComponent extends BaseInputListComponent implements OnInit {\n\n\n  \n\n}\n","<mat-form-field [class]=\"cssClass\" [appearance]=\"$any(appearance)\">\n    <mat-label>\n        {{label | translate: translateParams}}\n    </mat-label>\n    <mat-select #sbInput [multiple]=\"multiple\" [formControl]=\"$any(control)\" (valueChange)=\"selectionChanged($event)\" floatLabel=\"never\">\n        <mat-select-trigger *ngIf=\"multiple\">\n            <span>\n               {{ getMultipleDisplay() }}\n            </span>\n        </mat-select-trigger>\n        <mat-option *ngFor=\"let option of options$.value\" [value]=\"getValue(option)\">\n            <span>{{getDisplay(option)}}</span>\n        </mat-option>\n    </mat-select>\n    <mat-icon *ngIf=\"iconPosition == 'start'\" matPrefix [fontSet]=\"iconFont\">\n        {{icon}}\n      </mat-icon>\n      <mat-icon *ngIf=\"iconPosition == 'end'\" matSuffix [fontSet]=\"iconFont\">\n        {{icon}}\n      </mat-icon>\n      <mat-hint *ngIf=\"hint\" align=\"end\">\n        {{hint | translate : translateParams}}\n      </mat-hint>\n      <sb-validation-result *ngIf=\"attachValidation\" [debug]=\"debug\" [controlName]=\"label | translate : translateParams\" [control]=\"$any(control)\">\n      </sb-validation-result>\n</mat-form-field>","import {\n  AfterViewInit,\n  Component,\n  Input,\n  OnDestroy,\n  OnInit,\n} from '@angular/core';\nimport { map, Subscription } from 'rxjs';\nimport { BaseInputListComponent } from '../base-input-list/base-input-list.component';\nimport { AutoCompleteMatchMode } from '../forms.interfaces';\n\n// todo: look into the selected display being shown instead of the value. Looks like the mat-autocomplete value binding is overriding the displayWith binding\n\n@Component({\n  selector: 'sb-autocomplete-list',\n  templateUrl: './autocomplete-list.component.html',\n  styleUrls: ['./autocomplete-list.component.scss'],\n})\nexport class SBAutocompleteListComponent\n  extends BaseInputListComponent\n  implements AfterViewInit, OnDestroy\n{\n  @Input() openOnFocus: boolean = false;\n  @Input() maxResults: number = 50;\n  /**\n   *  match mode is ignored if you have a custom filter and do not implement it yourself\n   */\n  @Input() matchMode: AutoCompleteMatchMode = 'contains';\n\n  changes$?: Subscription;\n  filteredOptions: any[] = [];\n\n  ngAfterViewInit(): void {\n\n    this.changes$ = this.control.valueChanges\n      .pipe(\n        map((value) => {\n          if (this.debug)\n            this.logger.debug('attempting filter', value);\n\n          const options = this.getFilteredOptions(value);\n          if (this.debug)\n              this.logger.debug('matches', options);\n          this.setFilteredOptions(options);\n          return options;\n        })\n      )\n      .subscribe();\n  }\n\n  override ngOnDestroy(): void {\n    super.ngOnDestroy();\n    this.changes$?.unsubscribe();\n  }\n\n  private getFilteredOptions(value: string): any[] {\n    if (!value || value === '' || value === '*') {\n      if (this.openOnFocus || value === '*'){\n        if (this.debug)\n          this.logger.debug('attempting wildcard all results');\n        return this.options$.value;\n      }\n      else this.setFilteredOptions([]);\n      return [];\n    }\n\n    let filterValue = '';\n    if (typeof value === 'string') {\n      filterValue = value.toLocaleLowerCase();\n    }\n\n    if (this.fnFilter) {\n      this.setFilteredOptions(this.fnFilter(this.options$.value, filterValue));\n      return [];\n    }\n\n      const matches = this.options$.value.filter((option: any) => {\n        if (typeof option === 'string')\n          return option.toLocaleLowerCase().includes(filterValue);\n\n        if (typeof option === 'object') {\n     \n          const refMatch = value === option;\n          if (refMatch)\n            return true;\n\n          const display = this.getDisplay(option).toLocaleLowerCase();\n          if (this.matchWithMode(display,filterValue))\n            return true;\n\n          const val = this.getValue(option)\n          .toLocaleLowerCase();\n          return this.matchWithMode(val, filterValue);\n        }\n\n        return false;\n      });\n\n      if (!matches) {\n        this.logger.warn(\n          'options were not filterable with library. Please implement your own filter function. See: fnFilter',\n          this.options$.value\n        );\n        return this.options$.value;\n      }\n\n      return matches;\n  }\n\n  private matchWithMode(matchAgainst: string, filter: string) : boolean {\n    switch(this.matchMode){\n      case 'contains':\n        return matchAgainst.includes(filter);\n      case 'exact':\n        return matchAgainst === filter;\n      case 'startsWith':\n        return matchAgainst.startsWith(filter);\n      case 'endsWith':\n       return matchAgainst.endsWith(filter);\n    }\n  }\n\n  private setFilteredOptions(matches: any[]) {\n      if (!matches)\n        this.filteredOptions = [];\n      else\n        this.filteredOptions = matches.slice(0, this.maxResults);\n  }\n}\n","<mat-form-field [class]=\"cssClass\" [appearance]=\"$any(appearance)\">\n    <mat-label>\n        {{label | translate: translateParams}}\n    </mat-label>\n    <input matInput #sbInput [autofocus]=\"autoFocus\" [matAutocomplete]=\"matAutoComplete\" [formControl]=\"$any(control)\"\n     [placeholder]=\"placeholder | translate : translateParams\"  type=\"text\" [readonly]=\"readOnly\" [name]=\"controlId\" autocomplete=\"_off_\"   />\n    <mat-autocomplete #matAutoComplete=\"matAutocomplete\" [autoActiveFirstOption]=\"openOnFocus\" (optionSelected)=\"selectionChanged($event)\" [displayWith]=\"getDisplay\">\n        <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"getValue(option)\">\n                <span>{{getDisplay(option)}}</span>\n        </mat-option>\n    </mat-autocomplete>\n    <mat-icon *ngIf=\"iconPosition == 'start'\" matPrefix [fontSet]=\"iconFont\">\n        {{icon}}\n      </mat-icon>\n      <mat-icon *ngIf=\"iconPosition == 'end'\" matSuffix [fontSet]=\"iconFont\">\n        {{icon}}\n      </mat-icon>\n      <mat-hint *ngIf=\"hint\" align=\"end\">\n        {{hint | translate : translateParams}}\n      </mat-hint>\n      <sb-validation-result *ngIf=\"attachValidation\" [debug]=\"debug\" [controlName]=\"label | translate : translateParams\" [control]=\"$any(control)\">\n      </sb-validation-result>\n</mat-form-field>","import {Component, Input, OnInit} from '@angular/core';\nimport { BaseInputComponent } from '../base-input/base-input.component';\n\n@Component({\n  selector: 'sb-textarea-input',\n  templateUrl: './textarea-input.component.html',\n  styleUrls: ['./textarea-input.component.scss']\n})\nexport class SBTextAreaInputComponent extends BaseInputComponent implements OnInit {\n  @Input() autoSizing = false;\n\n\n}\n","<mat-form-field [class]=\"cssClass\" [appearance]=\"$any(appearance)\">\n    <mat-label>\n        {{label | translate : translateParams}}\n      </mat-label>\n    <textarea #sbInput matInput [autofocus]=\"autoFocus\" [cdkTextareaAutosize]=\"autoSizing\"  [formControl]=\"$any(control)\"  [readonly]=\"readOnly\" [placeholder]=\"placeholder | translate : translateParams\">\n    </textarea>\n\n    <mat-icon *ngIf=\"iconPosition == 'start'\" matPrefix [fontSet]=\"iconFont\">\n        {{icon}}\n      </mat-icon>\n      <mat-icon *ngIf=\"iconPosition == 'end'\" matSuffix [fontSet]=\"iconFont\">\n        {{icon}}\n      </mat-icon>\n      <mat-hint *ngIf=\"hint\" align=\"end\">\n        {{hint | translate : translateParams}}\n      </mat-hint>\n      <sb-validation-result *ngIf=\"attachValidation\" [debug]=\"debug\" [controlName]=\"label | translate : translateParams\" [control]=\"$any(control)\">\n      </sb-validation-result>\n    </mat-form-field>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BaseInputComponent} from './base-input/base-input.component';\nimport {SBTextInputComponent} from './text-input/text-input.component';\nimport {MatInputModule} from \"@angular/material/input\";\nimport {MatSelectModule} from \"@angular/material/select\";\nimport {MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport {TranslateModule} from \"@ngx-translate/core\";\nimport {MatIconModule} from \"@angular/material/icon\";\nimport { SBValidationResultComponent } from './validation-result/validation-result.component';\nimport {SB_INPUT_VALIDATIONS, SBFormValidations} from \"./forms.interfaces\";\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\nimport { BaseInputListComponent } from './base-input-list/base-input-list.component';\nimport { SBDropDownListComponent } from './drop-down-list/drop-down-list.component';\nimport { SBAutocompleteListComponent } from './autocomplete-list/autocomplete-list.component';\nimport { SBTextAreaInputComponent } from './textarea-input/textarea-input.component';\n\n\n@NgModule({\n  declarations: [\n    BaseInputComponent,\n    SBTextInputComponent,\n    SBValidationResultComponent,\n    BaseInputListComponent,\n    SBDropDownListComponent,\n    SBAutocompleteListComponent,\n    SBTextAreaInputComponent\n  ],\n  imports: [\n    CommonModule,\n    TranslateModule,\n    MatInputModule,\n    MatIconModule,\n    MatSelectModule,\n    MatAutocompleteModule,\n    FormsModule,\n    ReactiveFormsModule,\n\n  ],\n  providers: [\n    {provide: SB_INPUT_VALIDATIONS, useClass: SBFormValidations}\n  ],\n  exports: [\n    SBTextInputComponent,\n    SBDropDownListComponent,\n    SBAutocompleteListComponent,\n    SBTextAreaInputComponent,\n    SBValidationResultComponent\n  ]\n})\nexport class SBFormsModule {\n\n}\n","/*\n * Public API Surface of ngx-smallbang-core\n */\n\nexport * from './lib/http/http.module';\nexport * from './lib/http/api.service';\nexport * from './lib/http/api.interfaces';\n\nexport * from './lib/notification/notification.module';\nexport * from './lib/notification/notification.service';\nexport * from './lib/notification/notification.interface';\n\nexport * from './lib/logging/logging.module';\nexport * from './lib/logging/logging.service';\nexport * from './lib/logging/logging.interfaces';\n\n\nexport * from './lib/permissions/permission-guard.service';\nexport * from './lib/permissions/permission-interfaces';\n\nexport * from './lib/simple-report/simple-report.module';\nexport * from './lib/simple-report/report/report.component';\nexport * from './lib/simple-report/report.interfaces';\n\nexport * from './lib/forms/forms.module';\nexport * from './lib/forms/forms.interfaces';\nexport * from './lib/forms/text-input/text-input.component';\nexport * from './lib/forms/textarea-input/textarea-input.component';\nexport * from './lib/forms/drop-down-list/drop-down-list.component';\nexport * from './lib/forms/autocomplete-list/autocomplete-list.component';\nexport * from './lib/forms/validation-result/validation-result.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SBLoggingService","i3","i2","i1","i3.SBValidationResultComponent","i4","i5","i6","i7","i5.SBValidationResultComponent","i8","i9"],"mappings":"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"}