{"version":3,"file":"pvway-alpha-prime.mjs","sources":["../../../projects/alpha-prime/src/lib/services/alpha-prime.service.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-add-button/alpha-prime-add-button.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-add-button/alpha-prime-add-button.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-auto-complete/alpha-prime-auto-complete.ts","../../../projects/alpha-prime/src/lib/pipes/alpha-prime-boldify.pipe.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-auto-complete/alpha-prime-auto-complete.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-auto-complete/alpha-prime-auto-complete.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-cancel-button/alpha-prime-cancel-button.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-cancel-button/alpha-prime-cancel-button.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-debug-tag/alpha-prime-debug-tag.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-debug-tag/alpha-prime-debug-tag.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-confirmation-modal/alpha-prime-confirmation-modal.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-confirmation-modal/alpha-prime-confirmation-modal.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-currency-input/alpha-prime-currency-input.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-currency-input/alpha-prime-currency-input.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-date-picker/alpha-prime-date-picker.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-date-picker/alpha-prime-date-picker.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-date-range-picker/alpha-prime-date-range-picker.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-date-range-picker/alpha-prime-date-range-picker.component.html","../../../projects/alpha-prime/src/lib/services/alpha-prime-modal.service.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-delete-button/alpha-prime-delete-button.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-delete-button/alpha-prime-delete-button.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-edit-button/alpha-prime-edit-button.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-edit-button/alpha-prime-edit-button.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-progress-bar/alpha-prime-progress-bar.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-progress-bar/alpha-prime-progress-bar.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-file-upload/alpha-prime-file-upload.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-file-upload/alpha-prime-file-upload.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-filter-box/alpha-prime-filter-box.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-filter-box/alpha-prime-filter-box.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-grow-box/alpha-prime-grow-box.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-grow-box/alpha-prime-grow-box.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-label/alpha-prime-label.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-label/alpha-prime-label.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-number-input/alpha-prime-number-input.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-number-input/alpha-prime-number-input.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-ok-button/alpha-prime-ok-button.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-ok-button/alpha-prime-ok-button.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-password-input/alpha-prime-password-input.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-password-input/alpha-prime-password-input.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-save-button/alpha-prime-save-button.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-save-button/alpha-prime-save-button.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-scroller/alpha-prime-scroller-bag.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-scroller/alpha-prime-scroller.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-scroller/alpha-prime-scroller.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-scroller/alpha-prime-scroller-row.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-scroller/alpha-prime-scroller-model.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-select/alpha-prime-select-info.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-select/alpha-prime-select.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-select/alpha-prime-select.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-submit-button/alpha-prime-submit-button.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-submit-button/alpha-prime-submit-button.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-switch/alpha-prime-switch.component.ts","../../../projects/alpha-prime/src/lib/components/alpha-prime-switch/alpha-prime-switch.component.html","../../../projects/alpha-prime/src/lib/components/alpha-prime-switch/alpha-prime-switch-option.ts","../../../projects/alpha-prime/src/lib/directives/alpha-prime-remaining-height.directive.ts","../../../projects/alpha-prime/src/public-api.ts","../../../projects/alpha-prime/src/pvway-alpha-prime.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\r\nimport {Observable, of} from \"rxjs\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AlphaPrimeService {\r\n\r\n  postNavigationLog: (path: string, title: string) => any =\r\n    () => {\r\n    };\r\n\r\n  getTr: (key: string, languageCode?: string) => string =\r\n    (key, languageCode) => `'${key}':'${languageCode}'`;\r\n\r\n  isProduction!: boolean;\r\n\r\n  /** OAuthService */\r\n  signIn: (\r\n    username: string,\r\n    password: string,\r\n    rememberMe: boolean) => Observable<boolean> = () => of(false);\r\n\r\n  /** UploadApiService */\r\n  upload: (\r\n    data: any,\r\n    notifyProgress: (progress: number) => any) => Observable<string> =\r\n    () => of('');\r\n  deleteUpload: (\r\n    uploadId: string) => Observable<any> =\r\n    () => of({});\r\n\r\n  /** LocalBusService*/\r\n  publish: (\r\n    payload: any,\r\n    channel: string) => number =\r\n    () => 0;\r\n  subscribe: (\r\n    callback: (payload: any) => any,\r\n    channel?: string) => number\r\n    = () => -1;\r\n  unsubscribe: (\r\n    id: number) => any = () => {\r\n  };\r\n\r\n  /**\r\n   * Initializes the service.\r\n   *\r\n   * @param {boolean} isProduction - A flag indicating if the application is running in production mode.\r\n   * @param translationService\r\n   * @param loggerService\r\n   * @param oAuthService\r\n   * @param uploadService\r\n   * @param localBusService\r\n   * @return {void}\r\n   */\r\n  init(\r\n    isProduction: boolean,\r\n    translationService: {\r\n      getTr: (\r\n        key: string,\r\n        languageCode?: string) => string\r\n    },\r\n    loggerService?: {\r\n      postNavigationLog: (\r\n        path: string,\r\n        title: string) => any\r\n    },\r\n    oAuthService?: {\r\n      signIn: (\r\n        username: string,\r\n        password: string,\r\n        rememberMe: boolean) => Observable<boolean>\r\n    },\r\n    uploadService?: {\r\n      upload: (\r\n        data: any,\r\n        notifyProgress: (progress: number) => any) => Observable<string>,\r\n      deleteUpload: (\r\n        uploadId: string) => Observable<any>\r\n    },\r\n    localBusService?: {\r\n      publish: (\r\n        payload: any,\r\n        channel: string) => number,\r\n      subscribe: (\r\n        callback: (payload: any) => any,\r\n        channel?: string) => number,\r\n      unsubscribe: (\r\n        id: number) => any\r\n    }): void {\r\n    this.isProduction = isProduction;\r\n    this.getTr = translationService.getTr;\r\n    if (loggerService) {\r\n      this.addLoggerService(\r\n        loggerService.postNavigationLog)\r\n    }\r\n    if (oAuthService) {\r\n      this.addOAuthService(oAuthService.signIn);\r\n    }\r\n    if (uploadService) {\r\n      this.addUploadService(\r\n        uploadService.upload,\r\n        uploadService.deleteUpload);\r\n    }\r\n    if (localBusService) {\r\n      this.addLocalBusService(\r\n        localBusService.publish,\r\n        localBusService.subscribe,\r\n        localBusService.unsubscribe);\r\n    }\r\n  }\r\n\r\n  addLoggerService(postNavigationLog: (\r\n    path: string,\r\n    title: string) => any): void {\r\n    this.postNavigationLog = postNavigationLog;\r\n  }\r\n\r\n  addOAuthService(\r\n    signIn: (\r\n      username: string,\r\n      password: string,\r\n      rememberMe: boolean) => Observable<boolean>) {\r\n    this.signIn = signIn;\r\n  }\r\n\r\n  addUploadService(\r\n    upload: (\r\n      data: any,\r\n      notifyProgress: (progress: number) => any) => Observable<string>,\r\n    deleteUpload: (\r\n      uploadId: string) => Observable<any>): void {\r\n    this.upload = upload;\r\n    this.deleteUpload = deleteUpload;\r\n  }\r\n\r\n  addLocalBusService(\r\n    publish: (\r\n      payload: any,\r\n      channel: string) => number,\r\n    subscribe: (\r\n      callback: (payload: any) => any,\r\n      channel?: string) => number,\r\n    unsubscribe: (\r\n      id: number) => any): void {\r\n    this.publish = publish;\r\n    this.subscribe = subscribe;\r\n    this.unsubscribe = unsubscribe;\r\n  }\r\n\r\n  generateRandomName(len?: number): string {\r\n    if (!len) {\r\n      len = 50;\r\n    }\r\n    let result: string = '';\r\n    const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\r\n    const charsLen = chars.length;\r\n    for (let i = 0; i < len; i++) {\r\n      result += chars.charAt(Math.floor(Math.random() * charsLen));\r\n    }\r\n    return result;\r\n  }\r\n\r\n}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {NgClass} from \"@angular/common\";\r\nimport {TooltipModule} from \"primeng/tooltip\";\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-add-button',\r\n  standalone: true,\r\n  templateUrl: './alpha-prime-add-button.component.html',\r\n  imports: [\r\n    ButtonModule,\r\n    NgClass,\r\n    TooltipModule,\r\n    ButtonModule,\r\n    TooltipModule\r\n  ],\r\n  styleUrl: './alpha-prime-add-button.component.css'\r\n})\r\nexport class AlphaPrimeAddButtonComponent {\r\n\r\n  @Input() disabled = false;\r\n  @Input() caption = this.mPs.getTr('alpha.buttons.add');\r\n  @Input() sm = false;\r\n  @Output() clicked = new EventEmitter<any>();\r\n\r\n  constructor(private mPs: AlphaPrimeService) { }\r\n\r\n  onClicked(): void {\r\n    this.clicked.emit();\r\n  }\r\n\r\n}\r\n","<button pButton\r\n        class=\"p-button-info\"\r\n        [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n        type=\"button\"\r\n        [disabled]=\"disabled\"\r\n        pTooltip=\"{{caption}}\"\r\n        icon=\"fa fa-plus-circle\"\r\n        (click)=\"onClicked()\">\r\n</button>\r\n","import {map, Observable} from \"rxjs\";\r\n\r\nexport interface IAlphaPrimeAutoCompleteEntry {\r\n  id: string;\r\n  caption: any;\r\n  data?: any;\r\n}\r\n\r\nexport class AlphaPrimeAutoComplete {\r\n\r\n  /**\r\n   * Helper that eases the translation of a service feeder\r\n   * returning domain entities to a view feeder returning\r\n   * @param term the searched term\r\n   * @param feeder a method that returns an observable of <T> items for the given term\r\n   * @param mapper a method that converts a T item into a IAlphaAutoComplete item\r\n   * @return  array of IAlphaAutoComplete entries\r\n   */\r\n  static mapFeeder<T>(\r\n    term: string,\r\n    feeder: (term: string) => Observable<T[]>,\r\n    mapper: (item: T) => IAlphaPrimeAutoCompleteEntry): Observable<IAlphaPrimeAutoCompleteEntry[]> {\r\n    return feeder(term)\r\n      .pipe(\r\n        map((items: T[]) => items\r\n          .map((item: T) => mapper(item))));\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/** returns the inner HTML boldifying the given.\r\n * Usage alphaBoldify:term\r\n * where term is then part of the text to display in bold */\r\n@Pipe({\r\n  name: 'alphaPrimeBoldify',\r\n  standalone: true\r\n})\r\nexport class AlphaPrimeBoldifyPipe implements PipeTransform {\r\n\r\n  /** returns the inner HTML boldifying the given term.\r\n   * Usage alphaBoldify:term\r\n   * where term is then part of the text to display in bold.\r\n   * Example 'France' | alphaBoldify:'fr'\r\n   * will return &lt;strong&gt;Fr&lt;/strong&gt;ance */\r\n  transform(value: unknown, ...args: unknown[]): unknown {\r\n\r\n    if (value == null) {\r\n      return '';\r\n    }\r\n    if (args.length == 0\r\n       || args[0] == null) {\r\n      return value;\r\n    }\r\n    const input = value as string;\r\n    const term = args[0] as string;\r\n    const len = term.length;\r\n\r\n    const lcInput = input.toLowerCase();\r\n    const lcTerm = term.toLowerCase();\r\n\r\n    const pos = lcInput.indexOf(lcTerm);\r\n    if (pos < 0) return value;\r\n\r\n    const leftPart = input.substring(0, pos);\r\n    const termPart = input.substring(pos, pos + len);\r\n    const rightPart = input.substring(pos + len);\r\n    return `${leftPart}<strong>${termPart}</strong>${rightPart}`;\r\n  }\r\n\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {Observable, of, Subscription} from \"rxjs\";\r\nimport {IAlphaPrimeAutoCompleteEntry} from \"./alpha-prime-auto-complete\";\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\n\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {AutoCompleteModule, AutoCompleteSelectEvent} from \"primeng/autocomplete\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {RippleModule} from \"primeng/ripple\";\r\nimport {InputTextModule} from \"primeng/inputtext\";\r\nimport {AlphaPrimeBoldifyPipe} from \"../../pipes/alpha-prime-boldify.pipe\";\r\n\r\n/*\r\nhttps://github.com/primefaces/primeng/issues/1552\r\n\r\nhow to make ng prime autocomplete full width\r\n\r\nIn template\r\n-----------\r\n[style]=\"{'width':'100%'}\"\r\n[inputStyle]=\"{'width':'100%'}\"\r\nclass=\"p-autocomplete\"\r\n\r\nIn css\r\n------\r\n.p-autocomplete{\r\n    width: 100%;\r\n  }\r\n*/\r\n\r\n@Component({\r\n  selector: 'alpha-prime-auto-complete',\r\n  standalone: true,\r\n  imports: [\r\n    // ANGULAR\r\n    FormsModule,\r\n    NgIf,\r\n    NgClass,\r\n    // ALPHA\r\n    AlphaPrimeBoldifyPipe,\r\n    // PRIME\r\n    AutoCompleteModule,\r\n    ButtonModule,\r\n    InputTextModule,\r\n    RippleModule\r\n  ],\r\n  templateUrl: './alpha-prime-auto-complete.component.html',\r\n  styleUrl: './alpha-prime-auto-complete.component.css'\r\n})\r\nexport class AlphaPrimeAutoCompleteComponent {\r\n  @Input() feeder: (term: string) => Observable<IAlphaPrimeAutoCompleteEntry[]>\r\n    = () => of([]);\r\n  @Input()\r\n  set entry(entry: IAlphaPrimeAutoCompleteEntry | undefined) {\r\n    this.model = entry;\r\n    if (entry === undefined) {\r\n      this.term = '';\r\n      this.valid = false;\r\n    } else {\r\n      this.term = entry.caption;\r\n      this.valid = true;\r\n    }\r\n  }\r\n  @Input() disabled = false;\r\n  @Input() placeHolder = '';\r\n  @Input() emptyMessage = '';\r\n  @Input() clearOnSelect = false;\r\n  @Input() showAdd = false;\r\n  @Input() readonly = false;\r\n  @Input() readonlyCaption = '';\r\n  @Input() sm = false;\r\n  @Output() cleared = new EventEmitter();\r\n  @Output() selected = new EventEmitter<IAlphaPrimeAutoCompleteEntry>();\r\n  @Output() addClicked = new EventEmitter<string>();\r\n\r\n  baseInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0'\r\n  };\r\n\r\n  smInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0',\r\n    'font-size': 'x-small'\r\n  };\r\n\r\n  get inputStyle(): any {\r\n    return this.sm\r\n      ? this.smInputStyle\r\n      : this.baseInputStyle;\r\n  }\r\n\r\n  model: IAlphaPrimeAutoCompleteEntry | undefined;\r\n  term = '';\r\n  searching = false;\r\n  searchFailed = false;\r\n  valid = false;\r\n  feedTimer: any;\r\n  feed: Subscription | undefined;\r\n\r\n  constructor() { }\r\n\r\n  suggestions: IAlphaPrimeAutoCompleteEntry[] = [];\r\n\r\n  onFeed(event: any) {\r\n    if (this.feedTimer) {\r\n      clearTimeout(this.feedTimer);\r\n    }\r\n    this.feedTimer = setTimeout(\r\n      () => {\r\n        this.term = event.query;\r\n        if (this.term === '') {\r\n          this.clear(true);\r\n          return;\r\n        }\r\n        if (this.term === '*') {\r\n          this.term = '%'\r\n        }\r\n        this.searching = true;\r\n        this.valid = false;\r\n        this.searchFailed = false;\r\n\r\n        this.feed = this.feeder(this.term)\r\n          .subscribe({\r\n            next: (suggestions: IAlphaPrimeAutoCompleteEntry[]) => {\r\n              this.suggestions = suggestions;\r\n              this.searching = false;\r\n            },\r\n            error: (error: any) => {\r\n              console.error = error;\r\n              this.searchFailed = true;\r\n              this.searching = false;\r\n            }\r\n          });\r\n      }, 500);\r\n  }\r\n\r\n  clear(emit: boolean): void {\r\n    if (this.feedTimer) {\r\n      clearTimeout(this.feedTimer);\r\n      this.feedTimer = undefined;\r\n    }\r\n    if (this.feed) {\r\n      this.feed.unsubscribe();\r\n    }\r\n    this.suggestions = [];\r\n    this.model = undefined;\r\n    this.valid = false;\r\n    this.term = '';\r\n    if (emit) {\r\n      this.cleared.emit();\r\n    }\r\n  }\r\n\r\n  onClear(): void {\r\n    this.clear(true);\r\n  }\r\n\r\n  onSelected(event: AutoCompleteSelectEvent): void {\r\n    const entry = event.value as IAlphaPrimeAutoCompleteEntry\r\n    this.term = entry.caption;\r\n    this.selected.emit(entry);\r\n    this.valid = true;\r\n    if (this.clearOnSelect) {\r\n      setTimeout(() => {\r\n        this.clear(false);\r\n      }, 100);\r\n    }\r\n  }\r\n\r\n  onAdd(): void {\r\n    this.addClicked.emit(this.term);\r\n  }\r\n\r\n}\r\n","<form *ngIf=\"!readonly\" autocomplete=\"off\">\r\n\r\n  <div class=\"p-inputgroup\">\r\n    <p-autoComplete\r\n      [style]=\"{'width':'100%'}\"\r\n      [inputStyle]=\"inputStyle\"\r\n      class=\"p-autocomplete\"\r\n      [(ngModel)]=\"model\"\r\n      (onClear)=\"onClear()\"\r\n      (completeMethod)=\"onFeed($event)\"\r\n      (onSelect)=\"onSelected($event)\"\r\n      [disabled]=\"disabled\"\r\n      [emptyMessage]=\"emptyMessage\"\r\n      [placeholder]=\"placeHolder\"\r\n      appendTo=\"body\"\r\n      [suggestions]=\"suggestions\"\r\n      [ngModelOptions]=\"{standalone: true}\"\r\n      [completeOnFocus]=\"false\"\r\n      optionLabel=\"caption\"\r\n      [autocomplete]=\"''\"\r\n      [autoHighlight]=\"true\"\r\n      [forceSelection]=\"false\">\r\n      <ng-template let-entry pTemplate=\"item\">\r\n        <span [innerHTML]=\"entry.caption | alphaPrimeBoldify:term\"></span>\r\n      </ng-template>\r\n    </p-autoComplete>\r\n    <button *ngIf=\"term\"\r\n            type=\"button\"\r\n            pButton\r\n            pRipple\r\n            tabindex=\"-1\"\r\n            (click)=\"onClear()\"\r\n            [disabled]=\"disabled || searching\"\r\n            class=\"p-button-secondary\"\r\n            [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n            icon=\"pi\">\r\n      <i class=\"fa fa-times\"></i>\r\n    </button>\r\n    <button type=\"button\"\r\n            pButton\r\n            pRipple\r\n            tabindex=\"-1\"\r\n            *ngIf=\"term &&!valid && !searching && showAdd\"\r\n            (click)=\"onAdd()\"\r\n            [disabled]=\"searching\"\r\n            style=\"color: #EEF\"\r\n            class=\"p-button-info\"\r\n            [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n            icon=\"pi\">\r\n      <i class=\"fa fa-plus\"></i>\r\n    </button>\r\n  </div>\r\n\r\n</form>\r\n\r\n<input *ngIf=\"readonly\"\r\n       pInputText\r\n       [readOnly]=\"true\"\r\n       [value]=\"readonlyCaption\">\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {NgClass} from \"@angular/common\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {TooltipModule} from \"primeng/tooltip\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-cancel-button',\r\n  standalone: true,\r\n  imports: [\r\n    NgClass,\r\n    ButtonModule,\r\n    TooltipModule\r\n  ],\r\n  templateUrl: './alpha-prime-cancel-button.component.html',\r\n  styleUrl: './alpha-prime-cancel-button.component.css'\r\n})\r\nexport class AlphaPrimeCancelButtonComponent {\r\n  @Input() disabled = false;\r\n  @Output() clicked = new EventEmitter<any>();\r\n  @Input() caption = this.mPs.getTr('alpha.buttons.cancel');\r\n  @Input() sm = false;\r\n\r\n  constructor(private mPs: AlphaPrimeService) { }\r\n\r\n  onClicked(): void {\r\n    this.clicked.emit();\r\n  }\r\n\r\n}\r\n","<button pButton\r\n  class=\"p-button-secondary\"\r\n        [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n        type=\"button\"\r\n        [disabled]=\"disabled\"\r\n        pTooltip=\"{{caption}}\"\r\n        icon=\"fa fa-ban\"\r\n        (click)=\"onClicked()\">\r\n</button>\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {NgIf} from \"@angular/common\";\r\nimport {TooltipModule} from \"primeng/tooltip\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-debug-tag',\r\n  standalone: true,\r\n  imports: [\r\n    NgIf,\r\n    TooltipModule\r\n  ],\r\n  templateUrl: './alpha-prime-debug-tag.component.html',\r\n  styleUrl: './alpha-prime-debug-tag.component.css'\r\n})\r\nexport class AlphaPrimeDebugTagComponent implements OnInit{\r\n\r\n  visible = false;\r\n  @Input() tag = '';\r\n\r\n  constructor(private mPs: AlphaPrimeService) { }\r\n\r\n  ngOnInit(): void {\r\n    if (this.mPs.isProduction) {\r\n      localStorage.setItem('alphaHideDebugTag', 'true');\r\n    }\r\n    const hide = localStorage.getItem('alphaHideDebugTag');\r\n    this.visible = hide == null || hide == 'false';\r\n  }\r\n\r\n  static hide(hidden: boolean): void {\r\n    if (hidden) {\r\n      localStorage.setItem('alphaHideDebugTag', 'true');\r\n    } else {\r\n      localStorage.removeItem('alphaHideDebugTag');\r\n    }\r\n    window.location.reload();\r\n  }\r\n\r\n  static get hidden(): boolean {\r\n    const hide = localStorage.getItem('alphaHideDebugTag');\r\n    return hide == 'true';\r\n  }\r\n\r\n}\r\n\r\n","<span *ngIf=\"visible\"\r\n      class=\"p-pr-5\"\r\n      pTooltip=\"{{tag}}\" style=\"font-size: xx-small; color:gold;\" >\r\n   <i class=\"fa fa-bug\"></i>\r\n</span>\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {DynamicDialogConfig, DynamicDialogRef} from \"primeng/dynamicdialog\";\r\nimport {AlphaPrimeDebugTagComponent} from \"../alpha-prime-debug-tag/alpha-prime-debug-tag.component\";\r\nimport {ButtonModule} from \"primeng/button\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-confirmation-modal',\r\n  standalone: true,\r\n  imports: [\r\n    AlphaPrimeDebugTagComponent,\r\n    ButtonModule\r\n  ],\r\n  templateUrl: './alpha-prime-confirmation-modal.component.html',\r\n  styleUrl: './alpha-prime-confirmation-modal.component.css'\r\n})\r\nexport class AlphaPrimeConfirmationModalComponent implements OnInit{\r\n\r\n  onClose: (confirmed: boolean) => any = () => { };\r\n\r\n  message = this.mPs.getTr('alpha.confirmationModal.message');\r\n  yes = this.mPs.getTr('alpha.confirmationModal.yes');\r\n  no = this.mPs.getTr('alpha.confirmationModal.no');\r\n\r\n  constructor(\r\n    private mPs: AlphaPrimeService,\r\n    private mDdr: DynamicDialogRef,\r\n    private mDdc: DynamicDialogConfig) { }\r\n\r\n  ngOnInit() {\r\n    this.mDdc.data.setInstance(this);\r\n  }\r\n\r\n  init(\r\n    onClose: (confirmed: boolean) => any,\r\n    title?: string,\r\n    message?: string,\r\n    yes?: string,\r\n    no?: string) {\r\n    this.onClose = onClose;\r\n\r\n    setTimeout(\r\n      () => {\r\n        this.mDdc.header = title\r\n          ? title\r\n          : this.mPs.getTr('alpha.confirmationModal.title');\r\n      }, 100);\r\n\r\n    if (message) {\r\n      this.message = message;\r\n    }\r\n    if (yes) {\r\n      this.yes = yes;\r\n    }\r\n    if (no) {\r\n      this.no = no;\r\n    }\r\n  }\r\n\r\n  onYes(): void {\r\n    this.onClose(true);\r\n    this.mDdr.close(true);\r\n  }\r\n\r\n  onNo(): void {\r\n    this.onClose(false);\r\n    this.mDdr.close(false);\r\n  }\r\n\r\n}\r\n","<alpha-prime-debug-tag tag=\"alpha-prime-debug-tag\"></alpha-prime-debug-tag>\r\n\r\n<div class=\"my-6\">\r\n  <h2>{{message}}</h2>\r\n</div>\r\n\r\n<div class=\"p-m-3 text-right \">\r\n  <button pButton\r\n          class=\"p-button-secondary mr-4\"\r\n          type=\"button\"\r\n          [label]=\"yes\"\r\n          (click)=\"onYes()\"></button>\r\n  <button pButton\r\n          class=\"p-button-secondary\"\r\n          type=\"submit\"\r\n          [label]=\"no\"\r\n          (click)=\"onNo()\"></button>\r\n</div>\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\n\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\n\r\nimport {InputTextModule} from \"primeng/inputtext\";\r\nimport {KeyFilterModule} from \"primeng/keyfilter\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {RippleModule} from \"primeng/ripple\";\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-currency-input',\r\n  standalone: true,\r\n  imports: [\r\n    NgIf,\r\n    InputTextModule,\r\n    KeyFilterModule,\r\n    NgClass,\r\n    FormsModule,\r\n    ButtonModule,\r\n    RippleModule\r\n  ],\r\n  templateUrl: './alpha-prime-currency-input.component.html',\r\n  styleUrl: './alpha-prime-currency-input.component.css'\r\n})\r\nexport class AlphaPrimeCurrencyInputComponent {\r\n\r\n  @Input() name = this.mPs.generateRandomName();\r\n  @Input() disabled = false;\r\n  @Input() placeHolder = '';\r\n  @Input() min = - Number.MAX_VALUE;\r\n  @Input() max = Number.MAX_VALUE;\r\n  @Input() currency = 'EUR';\r\n  @Input() currencySymbol = '€';\r\n  @Input() locale = 'fr-BE';\r\n  @Input() readonly = false;\r\n  @Input() readonlyCaption: string | undefined = '';\r\n  @Input() sm = false;\r\n  @Input() showClear = true;\r\n\r\n  //https://www.regextester.com/\r\n  // noinspection RegExpRedundantEscape\r\n  realNumber: RegExp = /[0-9\\,\\.\\-]/;\r\n\r\n  sVal: string | number | undefined;\r\n  @Input()\r\n  set value(value: number | undefined) {\r\n    switch (value) {\r\n      case undefined:\r\n        this.sVal = undefined;\r\n        break;\r\n      case 0:\r\n        this.sVal = '0';\r\n        break;\r\n      default:\r\n        this.sVal = value.toString();\r\n    }\r\n  }\r\n  get value(): number | undefined {\r\n    if (!this.sVal) {\r\n      return undefined;\r\n    }\r\n    const n = Number(this.sVal);\r\n    return isNaN(n) ? undefined : n;\r\n  }\r\n  @Output() valueChange = new EventEmitter<number>();\r\n\r\n  constructor(private mPs: AlphaPrimeService) {\r\n  }\r\n\r\n  invalid = false;\r\n\r\n  baseInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0'\r\n  };\r\n\r\n  smInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0',\r\n    'font-size': 'x-small'\r\n  };\r\n\r\n  get inputStyle(): any {\r\n    return this.sm\r\n      ? this.smInputStyle\r\n      : this.baseInputStyle;\r\n  }\r\n\r\n  onTextChange(sVal: string | number | undefined) {\r\n    if (!sVal) {\r\n      this.onClear();\r\n      return;\r\n    }\r\n    // make sure sVal is a string\r\n    sVal = `${sVal}`;\r\n    this.sVal = sVal.replaceAll(',', '.');\r\n    if (this.sVal === '-0'\r\n      || this.sVal === '-.'\r\n      || this.sVal === '-0.') {\r\n      this.invalid = false;\r\n      this.valueChange.emit(undefined);\r\n      return;\r\n    }\r\n    const n = Number(this.sVal);\r\n    let v: number | undefined;\r\n    if (isNaN(n)\r\n      || n < this.min\r\n      || n > this.max) {\r\n      this.invalid = true;\r\n      v = undefined;\r\n    } else {\r\n      this.invalid = false;\r\n      v = n;\r\n    }\r\n    this.valueChange.emit(v);\r\n  }\r\n\r\n  onClear(): void {\r\n    this.invalid = false;\r\n    this.sVal = undefined;\r\n    this.valueChange.emit(undefined);\r\n  }\r\n\r\n  onBlur(): void {\r\n    const v = this.value;\r\n    if (v) {\r\n      this.sVal = v.toFixed(2);\r\n    }\r\n  }\r\n}\r\n","<div *ngIf=\"!readonly\" class=\"p-inputgroup\" >\r\n    <span class=\"p-inputgroup-addon\">\r\n        €\r\n    </span>\r\n  <input type=\"text\"\r\n         pInputText\r\n         [name]=\"name\"\r\n         [pKeyFilter]=\"realNumber\"\r\n         [placeholder]=\"placeHolder\"\r\n         [disabled]=\"disabled\"\r\n         [ngClass]=\"{'ng-invalid' : invalid}\"\r\n         [ngModel]=\"sVal\"\r\n         (ngModelChange)=\"onTextChange($event)\"\r\n         (blur)=\"onBlur()\"\r\n  >\r\n\r\n  <button type=\"button\"\r\n          pButton pRipple\r\n          tabindex=\"-1\"\r\n          [disabled]=\"disabled\"\r\n          (click)=\"onClear()\"\r\n          *ngIf=\"sVal && showClear\"\r\n          class=\"p-button-secondary\"\r\n          icon=\"pi\">\r\n    <i class=\"fa fa-times\"></i>\r\n  </button>\r\n\r\n</div>\r\n\r\n<input *ngIf=\"readonly\"\r\n       pInputText\r\n       [readonly]=\"true\"\r\n       [value]=\"readonlyCaption\">\r\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {CalendarModule} from \"primeng/calendar\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {RippleModule} from \"primeng/ripple\";\r\nimport {InputTextModule} from \"primeng/inputtext\";\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-date-picker',\r\n  standalone: true,\r\n  imports: [\r\n    NgIf,\r\n    CalendarModule,\r\n    FormsModule,\r\n    RippleModule,\r\n    NgClass,\r\n    InputTextModule\r\n  ],\r\n  templateUrl: './alpha-prime-date-picker.component.html',\r\n  styleUrl: './alpha-prime-date-picker.component.css'\r\n})\r\nexport class AlphaPrimeDatePickerComponent implements OnDestroy {\r\n\r\n  @Input() name = this.mPs.generateRandomName();\r\n\r\n  phInterval : any;\r\n  ph = 'dd/mm/yyyy';\r\n  @Input()\r\n  set placeHolder (ph: string | string[]) {\r\n    if (Array.isArray(ph)) {\r\n      let i = 0;\r\n      this.ph = ph[i];\r\n      this.phInterval = setInterval(\r\n        () => {\r\n          i++;\r\n          if (i >= ph.length) {\r\n            i = 0;\r\n          }\r\n          this.ph = ph[i];\r\n        }, 5000);\r\n    } else {\r\n      console.log('this is not an array');\r\n      this.ph = ph;\r\n    }\r\n  }\r\n\r\n  @Input() disabled = false;\r\n  @Input() showClear = true;\r\n  @Input() showTime = false;\r\n  @Input() showSeconds = false;\r\n  @Input() dateFormat = 'dd/mm/yy';\r\n  @Input() minDate: Date = new Date(1971,0,1);\r\n  @Input() maxDate: Date = new Date(3000,11,31);\r\n  @Input() date: Date | undefined;\r\n  @Input() readonly = false;\r\n  @Input() readonlyCaption: string | undefined | null = '';\r\n  @Input() sm = false;\r\n  @Output() dateChange = new EventEmitter<Date | undefined>();\r\n\r\n  constructor(private mPs: AlphaPrimeService) {}\r\n\r\n  baseInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0'\r\n  };\r\n\r\n  smInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0',\r\n    'font-size': 'x-small'\r\n  };\r\n\r\n  get inputStyle(): any {\r\n    return this.sm\r\n      ? this.smInputStyle\r\n      : this.baseInputStyle;\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.phInterval) {\r\n      clearInterval(this.phInterval);\r\n    }\r\n  }\r\n\r\n  onClear(): void {\r\n    this.date = undefined;\r\n    this.dateChange.emit(undefined);\r\n  }\r\n\r\n  onDateChanged(dt: Date): void {\r\n    this.dateChange.emit(dt);\r\n  }\r\n}\r\n","<div *ngIf=\"!readonly\"\r\n     class=\"p-inputgroup\" >\r\n\r\n  <p-calendar\r\n    [style]=\"{'width':'100%' }\"\r\n    [inputStyle]=\"inputStyle\"\r\n    class=\"p-calendar\"\r\n    [placeholder]=\"ph\"\r\n    [name]=\"name\"\r\n    appendTo=\"body\"\r\n    [showOnFocus]=\"false\"\r\n    [showTime]=\"showTime\"\r\n    [showSeconds]=\"showSeconds\"\r\n    [firstDayOfWeek]=\"1\"\r\n    [(ngModel)]=\"date\"\r\n    [minDate]=\"minDate\"\r\n    [maxDate]=\"maxDate\"\r\n    [disabled]=\"disabled\"\r\n    [readonlyInput]=\"false\"\r\n    (ngModelChange)=\"onDateChanged($event)\"\r\n    [dateFormat]=\"dateFormat\"\r\n    #cal  >\r\n  </p-calendar>\r\n\r\n  <button type=\"button\"\r\n          pButton\r\n          pRipple\r\n          tabindex=\"-1\"\r\n          [disabled]=\"disabled\"\r\n          (click)=\"onClear()\"\r\n          *ngIf=\"date && showClear\"\r\n          class=\"p-button-secondary\"\r\n          [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n          icon=\"pi\">\r\n    <i class=\"fa fa-times\"></i>\r\n  </button>\r\n\r\n  <button type=\"button\"\r\n          pButton\r\n          pRipple\r\n          tabindex=\"-1\"\r\n          class=\"p-button-info\"\r\n          [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n          [disabled]=\"disabled\"\r\n          (click)=\"cal.toggle()\"\r\n          icon=\"pi\">\r\n    <i class=\"fa fa-calendar\"></i>\r\n  </button>\r\n\r\n</div>\r\n\r\n<input *ngIf=\"readonly\"\r\n       pInputText\r\n       [readonly]=\"true\"\r\n       [value]=\"readonlyCaption\">\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {CalendarModule} from \"primeng/calendar\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {RippleModule} from \"primeng/ripple\";\r\nimport {InputTextModule} from \"primeng/inputtext\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-date-range-picker',\r\n  standalone: true,\r\n  imports: [\r\n    NgIf,\r\n    CalendarModule,\r\n    FormsModule,\r\n    RippleModule,\r\n    NgClass,\r\n    InputTextModule\r\n  ],\r\n  templateUrl: './alpha-prime-date-range-picker.component.html',\r\n  styleUrl: './alpha-prime-date-range-picker.component.css'\r\n})\r\nexport class AlphaPrimeDateRangePickerComponent {\r\n  dateRange: Date[] | undefined;\r\n\r\n  @Input() startDate: Date | undefined;\r\n  @Output() startDateChange = new EventEmitter<Date | undefined>();\r\n\r\n  @Input() endDate: Date | undefined;\r\n  @Output() endDateChange = new EventEmitter<Date | undefined>();\r\n\r\n  @Input() disabled = false;\r\n\r\n  @Input() minDate: Date = new Date(1971, 0, 1);\r\n  @Input() maxDate: Date = new Date(3000, 11, 31);\r\n  @Input() displayMonths = 1;\r\n  @Input() dateFormat = 'dd M yy';\r\n  @Input() placeHolder = '';\r\n  @Input() readonly = false;\r\n  @Input() readonlyCaption = '';\r\n  @Input() sm = false;\r\n\r\n  baseInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0'\r\n  };\r\n\r\n  smInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0',\r\n    'font-size': 'x-small'\r\n  };\r\n\r\n  get inputStyle(): any {\r\n    return this.sm\r\n      ? this.smInputStyle\r\n      : this.baseInputStyle;\r\n  }\r\n\r\n  onSelection(dateRange: Date[]) {\r\n    this.startDate = dateRange[0];\r\n    this.endDate = dateRange[1] == null\r\n      ? undefined\r\n      : dateRange[1];\r\n    this.startDateChange.emit(this.startDate);\r\n    this.endDateChange.emit(this.endDate);\r\n  }\r\n\r\n  onClear(): void {\r\n    this.dateRange = undefined;\r\n    this.startDate = undefined;\r\n    this.endDate = undefined;\r\n    this.startDateChange.emit(this.startDate);\r\n    this.endDateChange.emit(this.startDate);\r\n  }\r\n\r\n}\r\n","<div *ngIf=\"!readonly\"\r\n     class=\"p-inputgroup\" >\r\n\r\n  <p-calendar\r\n    [style]=\"{'width':'100%'}\"\r\n    [inputStyle]=\"inputStyle\"\r\n    class=\"p-calendar\"\r\n    selectionMode=\"range\"\r\n    [disabled]=\"disabled\"\r\n    [dateFormat]=\"dateFormat\"\r\n    [firstDayOfWeek]=\"1\"\r\n    [minDate]=\"minDate\"\r\n    [maxDate]=\"maxDate\"\r\n    [readonlyInput]=\"true\"\r\n    [numberOfMonths]=\"displayMonths\"\r\n    [placeholder]=\"placeHolder\"\r\n    appendTo=\"body\"\r\n    [(ngModel)]=\"dateRange\"\r\n    (ngModelChange)=\"onSelection($event)\"\r\n    #cal >\r\n  </p-calendar>\r\n\r\n  <button type=\"button\"\r\n          pButton\r\n          pRipple\r\n          tabindex=\"-1\"\r\n          [disabled]=\"disabled\"\r\n          (click)=\"onClear()\"\r\n          *ngIf=\"startDate\"\r\n          class=\"p-button-secondary\"\r\n          [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n          icon=\"pi\">\r\n    <i class=\"fa fa-times\"></i>\r\n  </button>\r\n\r\n  <button type=\"button\"\r\n          pButton\r\n          pRipple\r\n          tabindex=\"-1\"\r\n          [disabled]=\"disabled\"\r\n          class=\"p-button-success\"\r\n          [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n          *ngIf=\"endDate && cal.overlayVisible\"\r\n          (click)=\"cal.toggle()\"\r\n          icon=\"pi\">\r\n    <i class=\"fa fa-check\"></i>\r\n  </button>\r\n\r\n  <button type=\"button\"\r\n          pButton\r\n          pRipple\r\n          class=\"p-button-info\"\r\n          [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n          (click)=\"cal.toggle()\"\r\n          icon=\"pi\">\r\n    <i class=\"fa fa-calendar\"></i>\r\n  </button>\r\n\r\n</div>\r\n\r\n<input *ngIf=\"readonly\"\r\n       pInputText\r\n       [readonly]=\"true\"\r\n       [value]=\"readonlyCaption\">\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { Observable, Subscriber } from 'rxjs';\r\nimport {IAlphaPrimeModalConfig} from \"./alpha-prime-modal-abstractions\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AlphaPrimeModalService {\r\n\r\n  private dsOpen: (component: Type<any>, ddc: IAlphaPrimeModalConfig) => any =\r\n    () => {};\r\n  private modalStyleClass: string | undefined;\r\n  private postNavigationLog:\r\n    (path: string, title: string) => any =\r\n    () => {};\r\n\r\n  init(\r\n    dsOpen: (component: Type<any>, ddc: IAlphaPrimeModalConfig) => any,\r\n    postNavigationLog?: (path: string, title: string) => any,\r\n    modalStyleClass?: string) {\r\n    this.dsOpen = dsOpen;\r\n    if (postNavigationLog){\r\n      this.postNavigationLog = postNavigationLog;\r\n    }\r\n    if (modalStyleClass) {\r\n      this.modalStyleClass = modalStyleClass;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Opens a modal dialog.\r\n   *\r\n   * @template T - The type of the component to be opened in the modal.\r\n   *\r\n   * @param {Type<T>} component - The component to be opened in the modal.\r\n   * @param {string} anchor - The name of the component calling the openModal method.\r\n   * @param {string} modal - The name of the modal.\r\n   * @param {IAlphaPrimeModalConfig} [ddc] - Configuration options for the modal (optional).\r\n   *\r\n   * @return {Observable<T>} - An Observable that emits an instance of the opened component when the modal is displayed.\r\n   *                           If an error occurs during the opening of the modal, the Observable will emit an error instead.\r\n   */\r\n  openModal<T>(\r\n    component: Type<T>,\r\n    anchor: string,\r\n    modal: string,\r\n    ddc?: IAlphaPrimeModalConfig): Observable<T> {\r\n\r\n    return new Observable(\r\n      (subscriber: Subscriber<T>) => {\r\n\r\n        if (!ddc) {\r\n          ddc = {};\r\n        }\r\n\r\n        if (!ddc.data) {\r\n          ddc.data = {};\r\n        }\r\n\r\n        if (!ddc.styleClass\r\n          && this.modalStyleClass) {\r\n          ddc.styleClass = this.modalStyleClass;\r\n        }\r\n\r\n        if (ddc.draggable === undefined){\r\n          ddc.draggable = true;\r\n        }\r\n\r\n        const path =  `${anchor}//${modal}`;\r\n        const title = `modal ${modal} from ${anchor}`;\r\n\r\n        ddc.data.setInstance = (instance: T) => {\r\n          this.postNavigationLog(path, title);\r\n          subscriber.next(instance);\r\n          subscriber.complete();\r\n        };\r\n\r\n        this.dsOpen(component, ddc);\r\n      });\r\n  }\r\n\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {AlphaPrimeModalService} from \"../../services/alpha-prime-modal.service\";\r\nimport {\r\n  AlphaPrimeConfirmationModalComponent\r\n} from \"../alpha-prime-confirmation-modal/alpha-prime-confirmation-modal.component\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {TooltipModule} from \"primeng/tooltip\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-delete-button',\r\n  standalone: true,\r\n  imports: [\r\n    ButtonModule,\r\n    NgClass,\r\n    TooltipModule,\r\n    NgIf\r\n  ],\r\n  templateUrl: './alpha-prime-delete-button.component.html',\r\n  styleUrl: './alpha-prime-delete-button.component.css'\r\n})\r\nexport class AlphaPrimeDeleteButtonComponent {\r\n  private readonly logRoute = 'AlphaDeleteButton';\r\n\r\n  @Input() disabled = false;\r\n  @Input() busy = false;\r\n  @Output() clicked = new EventEmitter<any>();\r\n  @Input() caption = this.mPs.getTr('alpha.buttons.delete');\r\n  @Input() sm = false;\r\n  @Input() showConfirmationModal = true;\r\n\r\n  constructor(\r\n    private mPs: AlphaPrimeService,\r\n    private mMs: AlphaPrimeModalService) { }\r\n\r\n  onClicked(): void {\r\n    if (!this.showConfirmationModal) {\r\n      this.clicked.emit();\r\n      return;\r\n    }\r\n    this.mMs.openModal(\r\n      AlphaPrimeConfirmationModalComponent,\r\n      this.logRoute, 'AlphaConfirmation')\r\n      .subscribe(\r\n        modal => {\r\n          modal.init(\r\n            (confirmed: boolean) => {\r\n              if (confirmed) {\r\n                this.clicked.emit();\r\n              }\r\n            });\r\n        });\r\n  }\r\n}\r\n","<button pButton\r\n        class=\"p-button-danger\"\r\n        [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n        type=\"button\"\r\n        [disabled]=\"disabled\"\r\n        pTooltip=\"{{caption}}\"\r\n        icon=\"pi\"\r\n        (click)=\"onClicked()\">\r\n  <span *ngIf=\"!busy\">\r\n    <i class=\"fa fa-trash-alt\"></i>\r\n  </span>\r\n  <span *ngIf=\"busy\">\r\n    <i class=\"pi pi-spin pi-spinner\">\r\n  </i></span>\r\n</button>\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {NgClass} from \"@angular/common\";\r\nimport {TooltipModule} from \"primeng/tooltip\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-edit-button',\r\n  standalone: true,\r\n  imports: [\r\n    ButtonModule,\r\n    NgClass,\r\n    TooltipModule\r\n  ],\r\n  templateUrl: './alpha-prime-edit-button.component.html',\r\n  styleUrl: './alpha-prime-edit-button.component.css'\r\n})\r\nexport class AlphaPrimeEditButtonComponent {\r\n  @Input() disabled = false;\r\n  @Output() clicked = new EventEmitter<any>();\r\n  @Input() caption = this.mPs.getTr('alpha.buttons.edit');\r\n  @Input() sm = false;\r\n\r\n  constructor(private mPs: AlphaPrimeService) { }\r\n\r\n  onClicked(): void {\r\n    this.clicked.emit();\r\n  }\r\n\r\n}\r\n","<button pButton\r\n        class=\"p-button-info\"\r\n        [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n        type=\"button\"\r\n        [disabled]=\"disabled\"\r\n        icon=\"fa fa-pencil-alt\"\r\n        pTooltip=\"{{caption}}\"\r\n        (click)=\"onClicked()\">\r\n</button>\r\n","import {Component, Input} from '@angular/core';\r\nimport {ProgressBarModule} from \"primeng/progressbar\";\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-progress-bar',\r\n  standalone: true,\r\n  imports: [\r\n    ProgressBarModule,\r\n    NgIf\r\n  ],\r\n  templateUrl: './alpha-prime-progress-bar.component.html',\r\n  styleUrl: './alpha-prime-progress-bar.component.css'\r\n})\r\nexport class AlphaPrimeProgressBarComponent {\r\n\r\n  private tOut: any | undefined;\r\n  private _busy = false;\r\n\r\n  @Input()\r\n  set busy(busy: boolean) {\r\n    if (this.tOut){\r\n      clearTimeout(this.tOut);\r\n      this.tOut = undefined;\r\n    }\r\n    if (busy) {\r\n      this.showProgressBar();\r\n    } else {\r\n      this.hideProgressBar();\r\n    }\r\n  }\r\n  get busy(): boolean {\r\n    return this._busy;\r\n  }\r\n\r\n  @Input() delay = 2000;\r\n  @Input() value = 100;\r\n  @Input() mode: 'determinate' | 'indeterminate' | 'tiny' = 'indeterminate';\r\n\r\n  private showProgressBar(): void {\r\n    // start showing (directly or after a short delay)\r\n    if (this.mode === 'determinate') {\r\n      // we are in determinate mode.\r\n      // there should be no delay\r\n      this._busy = true;\r\n    } else {\r\n      // in other modes there should be a small\r\n      // delay before activating the bar\r\n      this.tOut = setTimeout(\r\n        () => {\r\n          this._busy = true;\r\n          this.tOut = undefined;\r\n        }, this.delay);\r\n    }\r\n  }\r\n\r\n  private hideProgressBar(): void {\r\n    this._busy = false;\r\n  }\r\n\r\n}\r\n","<p-progressBar *ngIf=\"busy && mode==='indeterminate'\"\r\n               mode=\"indeterminate\"\r\n               [value]=\"value\">\r\n</p-progressBar>\r\n\r\n<p-progressBar *ngIf=\"busy && mode==='determinate'\"\r\n               [showValue]=\"true\"\r\n               [style]=\"{'height': '1.3rem' }\"\r\n               mode=\"determinate\"\r\n               [value]=\"value\">\r\n</p-progressBar>\r\n\r\n<p-progressBar *ngIf=\"busy && mode==='tiny'\"\r\n               class=\"p-pro\"\r\n               [showValue]=\"false\"\r\n               [style]=\"{'height': '0.5rem' }\"\r\n               mode=\"determinate\"\r\n               [value]=\"value\">\r\n</p-progressBar>\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, Output, ViewChild} from '@angular/core';\r\nimport {IAlphaPrimeFileUpload} from \"./alpha-prime-file-upload\";\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {NgIf} from \"@angular/common\";\r\nimport {InputTextModule} from \"primeng/inputtext\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {RippleModule} from \"primeng/ripple\";\r\nimport {AlphaPrimeProgressBarComponent} from \"../alpha-prime-progress-bar/alpha-prime-progress-bar.component\";\r\n\r\nclass FormModel {\r\n  fileName = '';\r\n  fileData = '';\r\n\r\n  get hasData(): boolean {\r\n    return this.fileData.trim() !== '';\r\n  }\r\n\r\n  get invalid(): boolean {\r\n    return this.fileName.trim() === '';\r\n  }\r\n}\r\n\r\nclass FileUpload implements IAlphaPrimeFileUpload {\r\n  uploadId: string;\r\n  fileName: string;\r\n  fileData: string;\r\n\r\n  constructor(\r\n    uploadId: string,\r\n    fileName: string,\r\n    fileData: string) {\r\n    this.uploadId = uploadId;\r\n    this.fileName = fileName;\r\n    this.fileData = fileData;\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: 'alpha-prime-file-upload',\r\n  standalone: true,\r\n  imports: [\r\n    NgIf,\r\n    InputTextModule,\r\n    FormsModule,\r\n    ButtonModule,\r\n    RippleModule,\r\n    AlphaPrimeProgressBarComponent\r\n  ],\r\n  templateUrl: './alpha-prime-file-upload.component.html',\r\n  styleUrl: './alpha-prime-file-upload.component.css'\r\n})\r\nexport class AlphaPrimeFileUploadComponent implements AfterViewInit {\r\n\r\n  // /** request the FileInput with the corresponding name to clear. payload = fileInputName: string */\r\n  // public static readonly RESET = 'AlphaPrimeFileUploadComponent.reset';\r\n\r\n  @Input() name = this.mPs.generateRandomName();\r\n  /**\r\n   * sets the list of accepted extensions like .pdf, .doc\r\n   */\r\n  @Input() accept: string | undefined;\r\n\r\n  @Input() disabled = false;\r\n\r\n  /** when a new file is loaded it is automatically\r\n   * uploaded to the Server\r\n   */\r\n  @Input() autoUpload = true;\r\n\r\n  /** when the clear button is clicked delete\r\n   * the uploaded file (if any) from the server\r\n   */\r\n  @Input() deleteOnClear = false;\r\n\r\n  @Input() readonly = false;\r\n  @Input() readonlyCaption = '';\r\n  @Input() sm = false;\r\n\r\n  @ViewChild('fileInput', {static: false}) fileInput!: ElementRef<HTMLInputElement>;\r\n  @Output() fileUploaded = new EventEmitter<IAlphaPrimeFileUpload>();\r\n  @Output() fileDeleted = new EventEmitter<string>();\r\n  /**\r\n   * AfterViewInit will emit a delegate to the resetForm method\r\n   * so that the parent component can invoke this method from\r\n   * inside its own code */\r\n  @Output() ready = new EventEmitter<()=>any>();\r\n\r\n  busy = false;\r\n  fm = new FormModel();\r\n  fu: IAlphaPrimeFileUpload | undefined;\r\n  uploading = false;\r\n  progress = 0;\r\n\r\n  constructor(\r\n    private mPs: AlphaPrimeService) {\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.ready.emit(this.resetForm);\r\n  }\r\n\r\n  fileLit = this.mPs.getTr('alpha.common.file');\r\n\r\n  private delete(uploadId: string): void {\r\n    this.busy = true;\r\n    this.mPs.deleteUpload(uploadId)\r\n      .subscribe({\r\n        next: () => {\r\n          this.fileDeleted.emit(uploadId);\r\n          this.busy = false;\r\n        },\r\n        error: e => {\r\n          console.error(e);\r\n          this.fu = undefined;\r\n          this.busy = false;\r\n        }\r\n      });\r\n  }\r\n\r\n  private upload(): void {\r\n    this.busy = true;\r\n    this.uploading = true;\r\n    this.progress = 0;\r\n    this.mPs.upload(\r\n      this.fm.fileData,\r\n      progress => {\r\n        this.progress = progress;\r\n      }).subscribe({\r\n      next: (uploadId: string) => {\r\n        this.busy = false;\r\n        setTimeout(() => {\r\n          this.uploading = false;\r\n        }, 2000);\r\n        this.fu = new FileUpload(\r\n          uploadId,\r\n          this.fm.fileName,\r\n          this.fm.fileData);\r\n        this.fileUploaded.emit(this.fu);\r\n      },\r\n      error: (error) => {\r\n        console.error(error);\r\n        this.busy = false;\r\n        this.uploading = false;\r\n      }\r\n    });\r\n  }\r\n\r\n  resetForm(): void {\r\n    this.fm = new FormModel();\r\n    this.uploading = false;\r\n    this.progress = 0;\r\n    this.fu = undefined\r\n  }\r\n\r\n  onFileInputChanged(changeEvent: Event) {\r\n    try {\r\n      this.busy = true;\r\n      let reader: FileReader | undefined = new FileReader();\r\n\r\n      reader.onload = (loadEvent: ProgressEvent) => {\r\n        console.log('reader.onload', loadEvent);\r\n\r\n        const target = loadEvent.target! as FileReader;\r\n        // if (target == null) {\r\n        //   throw new Error('target should not be null');\r\n        // }\r\n        this.fm.fileData = target.result as string;\r\n        // dispose the reader\r\n        setTimeout(() => reader = undefined, 10);\r\n        this.busy = false;\r\n\r\n        if (this.autoUpload) {\r\n          this.upload();\r\n        }\r\n      }\r\n\r\n      reader.onerror = () => {\r\n        this.resetForm();\r\n        this.busy = false;\r\n      }\r\n\r\n      this.fm = new FormModel();\r\n      const input = (changeEvent.target as HTMLInputElement)!;\r\n      const file = input.files![0];\r\n      // https://stackoverflow.com/questions/4109276/how-to-detect-input-type-file-change-for-the-same-file\r\n      // reset the input value to empty string so that\r\n      // the file change event will be raised again\r\n      // with the same file\r\n      input.value = '';\r\n      if (!file) {\r\n        this.busy = false;\r\n        return;\r\n      }\r\n      this.fm.fileName = file.name;\r\n      reader.readAsDataURL(file);\r\n    } catch (error) {\r\n      this.fm = new FormModel();\r\n      console.error(error);\r\n      this.busy = false;\r\n    }\r\n  }\r\n\r\n  onBrowse() {\r\n    if (this.fileInput == null) {\r\n      throw new Error('fileInput should not be null');\r\n    }\r\n    this.fileInput.nativeElement.click();\r\n  }\r\n\r\n  onClear() {\r\n    if (this.fu) {\r\n      if (this.deleteOnClear) {\r\n        this.delete(this.fu.uploadId);\r\n      }\r\n    }\r\n    this.resetForm();\r\n  }\r\n\r\n  onSave() {\r\n    this.upload();\r\n  }\r\n\r\n}\r\n","<div *ngIf=\"readonly\">\r\n  <input name=\"fileName\"\r\n         pInputText\r\n         style=\"width: 100%;\"\r\n         type=\"text\"\r\n         [ngModel]=\"readonlyCaption\"\r\n         [readOnly]=\"true\" >\r\n</div>\r\n\r\n<div *ngIf=\"!readonly\"\r\n     class=\"p-inputgroup\">\r\n  <input\r\n    name=\"fileName\"\r\n    pInputText\r\n    placeholder=\"{{fileLit}} {{accept}}\"\r\n    style=\"width: 100%;\"\r\n    type=\"text\"\r\n    [(ngModel)]=\"fm.fileName\"\r\n    [readOnly]=\"true\" >\r\n\r\n  <button type=\"button\"\r\n          *ngIf=\"!fm.hasData\"\r\n          pButton pRipple\r\n          tabindex=\"-1\"\r\n          (click)=\"onBrowse()\"\r\n          [disabled]=\"disabled || busy\"\r\n          class=\"p-button-warning\"\r\n          icon=\"fa fa-folder-open\"\r\n  >\r\n  </button>\r\n\r\n  <button type=\"button\"\r\n          name=\"delete\"\r\n          *ngIf=\"fm.hasData\"\r\n          pButton pRipple\r\n          tabindex=\"-1\"\r\n          [disabled]=\"disabled || busy\"\r\n          icon=\"fa fa-trash-alt\"\r\n          class=\"p-button-danger\"\r\n          (click)=\"onClear()\"\r\n  >\r\n  </button>\r\n\r\n  <button type=\"button\"\r\n          name=\"save\"\r\n          *ngIf=\"!fu && fm.hasData\"\r\n          pButton pRipple\r\n          tabindex=\"-1\"\r\n          [disabled]=\"disabled || busy\"\r\n          icon=\"pi\"\r\n          class=\"p-button-info\"\r\n          (click)=\"onSave()\"\r\n  >\r\n    <span *ngIf=\"!busy\">\r\n        <i class=\"fas fa-upload\"></i>\r\n      </span>\r\n    <span *ngIf=\"busy\">\r\n        <i class=\"pi pi-spin pi-spinner\"></i>\r\n      </span>\r\n  </button>\r\n</div>\r\n\r\n<alpha-prime-progress-bar\r\n  [busy]=\"uploading\"\r\n  mode=\"tiny\"\r\n  [value]=\"progress\"\r\n></alpha-prime-progress-bar>\r\n\r\n<input #fileInput\r\n       name=\"fileInput\"\r\n       type=\"file\"\r\n       [accept]=\"accept\"\r\n       style=\"display: none;\"\r\n       (change)=\"onFileInputChanged($event)\">\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {AlphaPrimeDebugTagComponent} from \"../alpha-prime-debug-tag/alpha-prime-debug-tag.component\";\r\nimport {InputTextModule} from \"primeng/inputtext\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {RippleModule} from \"primeng/ripple\";\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-filter-box',\r\n  standalone: true,\r\n  imports: [\r\n    AlphaPrimeDebugTagComponent,\r\n    InputTextModule,\r\n    FormsModule,\r\n    ButtonModule,\r\n    RippleModule,\r\n    NgIf\r\n  ],\r\n  templateUrl: './alpha-prime-filter-box.component.html',\r\n  styleUrl: './alpha-prime-filter-box.component.css'\r\n})\r\nexport class AlphaPrimeFilterBoxComponent {\r\n\r\n  @Input() delay = 300;\r\n  @Input() showAdd = false;\r\n  @Input() term: string | undefined;\r\n  @Input() disabled = false;\r\n  @Input() placeholder = '';\r\n\r\n  @Output() termChange = new EventEmitter<string | undefined>();\r\n  @Output() addClicked = new EventEmitter<string | undefined>();\r\n\r\n  constructor(\r\n    private mPs: AlphaPrimeService) { }\r\n\r\n  get empty(): boolean {\r\n    return !this.term;\r\n  }\r\n\r\n  timer: any;\r\n\r\n  name = this.mPs.generateRandomName();\r\n\r\n  private changeTerm(term: string) {\r\n    this.term = term;\r\n    this.timer = setTimeout(\r\n      () => {\r\n        this.termChange.emit(term);\r\n      }, this.delay);\r\n  }\r\n\r\n  onTermChanged(term: string) {\r\n    this.stopTimerIfSet();\r\n    this.changeTerm(term);\r\n  }\r\n\r\n  onClear() {\r\n    this.stopTimerIfSet();\r\n    this.term = undefined;\r\n    this.termChange.emit(undefined);\r\n  }\r\n\r\n  onAddClicked() {\r\n    this.stopTimerIfSet();\r\n    this.addClicked.emit(this.term);\r\n  }\r\n\r\n  private stopTimerIfSet(){\r\n    if (this.timer) {\r\n      clearTimeout(this.timer);\r\n      this.timer = undefined;\r\n    }\r\n  }\r\n\r\n}\r\n","<alpha-prime-debug-tag tag=\"alphaFilterBox\"></alpha-prime-debug-tag>\r\n\r\n<div class=\"p-inputgroup\">\r\n  <input  type=\"text\"\r\n          pInputText\r\n          [name]=\"name\"\r\n          [disabled]=\"disabled\"\r\n          [placeholder]=\"placeholder\"\r\n          [ngModel]=\"term\"\r\n          (ngModelChange)=\"onTermChanged($event)\">\r\n\r\n  <button type=\"button\"\r\n          pButton\r\n          pRipple\r\n          icon=\"pi\"\r\n          class=\"p-button p-button-secondary\"\r\n          (click)=\"onClear()\"\r\n          *ngIf=\"term\">\r\n    <i class=\"fa fa-times\"></i>\r\n  </button>\r\n\r\n  <button type=\"button\"\r\n          pButton\r\n          pRipple\r\n          icon=\"pi\"\r\n          class=\"p-button p-button-info\"\r\n          (click)=\"onAddClicked()\"\r\n          *ngIf=\"showAdd\">\r\n    <i class=\"fa fa-plus\"></i>\r\n  </button>\r\n\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\nimport {NgClass, NgIf, NgStyle} from \"@angular/common\";\r\nimport {InputTextareaModule} from \"primeng/inputtextarea\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-grow-box-box',\r\n  standalone: true,\r\n  imports: [\r\n    NgClass,\r\n    NgIf,\r\n    NgStyle,\r\n    InputTextareaModule\r\n  ],\r\n  templateUrl: './alpha-prime-grow-box.component.html',\r\n  styleUrl: './alpha-prime-grow-box.component.css',\r\n\r\n  //see https://angular.io/guide/animations\r\n\r\n  animations: [\r\n    trigger('thin-thick', [\r\n      state('thin', style({\r\n        height: '6px'\r\n      })),\r\n      state('thick', style({\r\n      })),\r\n      transition('thin => thick', [\r\n        animate('200ms ease-in')\r\n      ]),\r\n      transition('thick => thin', [\r\n        animate('200ms')\r\n      ])\r\n    ])\r\n  ]\r\n})\r\nexport class AlphaPrimeGrowBoxComponent {\r\n\r\n  isCollapsed = true;\r\n  isAnimating = false;\r\n  keepExpanded = false;\r\n\r\n  @Input()\r\n  set expanded(expanded: boolean) {\r\n    this.isCollapsed = !expanded;\r\n    this.keepExpanded = expanded;\r\n  }\r\n  @Input()\r\n  set collapsed(collapsed: boolean) {\r\n    this.isCollapsed = collapsed;\r\n  }\r\n  @Input() divClass = '';\r\n  @Input() divStyle = { 'padding': '2px', 'border-radius': '2px', 'border-width': '1px', 'border-style': 'dotted' };\r\n\r\n  onHover(): void {\r\n    this.isCollapsed = false;\r\n  }\r\n\r\n  onLeave(): void {\r\n    if (this.keepExpanded) {\r\n      return;\r\n    }\r\n    this.isCollapsed = true;\r\n  }\r\n\r\n  onAnimStart(): void {\r\n    this.isAnimating = true;\r\n  }\r\n\r\n  onAnimDone(): void {\r\n    this.isAnimating = false;\r\n  }\r\n\r\n}\r\n","<div [@thin-thick]=\"isCollapsed ? 'thin' : 'thick'\"\r\n     [ngClass]=\"divClass\"\r\n     [ngStyle]=\"divStyle\"\r\n     (mouseenter)=\"onHover()\"\r\n     (mouseleave)=\"onLeave()\"\r\n     (@thin-thick.start)=\"onAnimStart()\"\r\n     (@thin-thick.done)=\"onAnimDone()\"> -->\r\n  <!-- single slot transclusion here -->\r\n  <ng-content *ngIf=\"!isCollapsed && !isAnimating\"></ng-content>\r\n</div>\r\n\r\n<textarea [rows]=\"2\" [cols]=\"30\" pInputTextarea [autoResize]=\"true\"></textarea>\r\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-label',\r\n  standalone: true,\r\n  imports: [\r\n    NgIf\r\n  ],\r\n  templateUrl: './alpha-prime-label.component.html',\r\n  styleUrl: './alpha-prime-label.component.css'\r\n})\r\nexport class AlphaPrimeLabelComponent implements OnInit, OnDestroy {\r\n\r\n  /** payload => show: boolean  */\r\n  static readonly SHOW_MESSAGE = `AlphaPrimeLabelComponent.ShowMessage`;\r\n\r\n  @Input() caption = '';\r\n  @Input() value: string | undefined = 'dummy';\r\n  @Input() invalid = false;\r\n\r\n  get empty(): boolean {\r\n    return (!this.value || this.value.trim() === '')\r\n  }\r\n\r\n  showMessage = false;\r\n\r\n  constructor(\r\n    private mPs: AlphaPrimeService) {\r\n  }\r\n\r\n  requiredOrInvalidLit = this.mPs.getTr('alpha.label.requiredOrInvalid');\r\n\r\n  showMessageSub = -1;\r\n\r\n  ngOnInit(): void {\r\n    this.showMessageSub = this.mPs.subscribe(\r\n      (show: boolean) => this.showMessage = show,\r\n      AlphaPrimeLabelComponent.SHOW_MESSAGE);\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.mPs.unsubscribe(this.showMessageSub);\r\n  }\r\n\r\n}\r\n","<span style=\"display: inline-block;\">{{caption}}</span>\r\n<span *ngIf=\"!showMessage && (empty || invalid)\"\r\n      style=\"display: inline-block;\"\r\n      class=\"p-invalid ml-1\">*</span>\r\n<span *ngIf=\"showMessage && (empty || invalid)\"\r\n      style=\"display: inline-block; color: red;\"\r\n      class=\"ml-1 font-bold\">{{requiredOrInvalidLit}}</span>\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {InputTextModule} from \"primeng/inputtext\";\r\nimport {KeyFilterModule} from \"primeng/keyfilter\";\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {RippleModule} from \"primeng/ripple\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-number-input',\r\n  standalone: true,\r\n  imports: [\r\n    InputTextModule,\r\n    KeyFilterModule,\r\n    NgClass,\r\n    FormsModule,\r\n    ButtonModule,\r\n    RippleModule,\r\n    NgIf\r\n  ],\r\n  templateUrl: './alpha-prime-number-input.component.html',\r\n  styleUrls: ['./alpha-prime-number-input.component.css']\r\n})\r\nexport class AlphaPrimeNumberInputComponent {\r\n\r\n  @Input() name = this.mPs.generateRandomName();\r\n  @Input() disabled = false;\r\n  @Input() placeHolder = '';\r\n  @Input() prefix = '';\r\n  @Input() suffix = '';\r\n  @Input() decimals: number = 0;\r\n  @Input() min = - Number.MAX_VALUE;\r\n  @Input() max = Number.MAX_VALUE;\r\n  @Input() locale = 'fr-BE';\r\n  @Input() readonly = false;\r\n  @Input() readonlyCaption: string | undefined = '';\r\n  @Input() sm = false;\r\n  @Input() showClear = true;\r\n\r\n  //https://www.regextester.com/\r\n  realNumber: RegExp = /[0-9\\,\\.\\-]/;\r\n\r\n  sVal: string | undefined;\r\n  invalid = false;\r\n  @Input()\r\n  set value(value: number | undefined) {\r\n    switch (value) {\r\n      case undefined:\r\n        this.sVal = undefined;\r\n        break;\r\n      case 0:\r\n        this.sVal = '0';\r\n        break;\r\n      default:\r\n        this.sVal = value.toString();\r\n    }\r\n  }\r\n  get value(): number | undefined {\r\n    if (!this.sVal) {\r\n      return undefined;\r\n    }\r\n    const n = Number(this.sVal);\r\n    return isNaN(n) ? undefined : n;\r\n  }\r\n  @Output() valueChange = new EventEmitter<number>();\r\n\r\n  baseInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0'\r\n  };\r\n\r\n  smInputStyle = {\r\n    'width': '100%',\r\n    'border-top-right-radius': '0',\r\n    'border-bottom-right-radius': '0',\r\n    'font-size': 'x-small'\r\n  };\r\n\r\n  get inputStyle(): any {\r\n    return this.sm\r\n      ? this.smInputStyle\r\n      : this.baseInputStyle;\r\n  }\r\n\r\n  constructor(\r\n    private mPs: AlphaPrimeService) { }\r\n\r\n  onTextChange(sVal: string | number | undefined) {\r\n    if (!sVal) {\r\n      this.onClear();\r\n      return;\r\n    }\r\n    sVal = `${sVal}`;\r\n    this.sVal = sVal.replaceAll(',', '.');\r\n    if (this.sVal === '-0'\r\n      || this.sVal === '-.'\r\n      || this.sVal === '-0.') {\r\n      this.invalid = false;\r\n      this.valueChange.emit(undefined);\r\n      return;\r\n    }\r\n    const n = Number(this.sVal);\r\n    let v: number | undefined;\r\n    if (isNaN(n)\r\n      || n < this.min\r\n      || n > this.max) {\r\n      this.invalid = true;\r\n      v = undefined;\r\n    } else {\r\n      this.invalid = false;\r\n      v = n;\r\n    }\r\n    this.valueChange.emit(v);\r\n  }\r\n\r\n  onClear(): void {\r\n    this.invalid = false;\r\n    this.sVal = undefined;\r\n    this.valueChange.emit(undefined);\r\n  }\r\n\r\n\r\n}\r\n","<div *ngIf=\"!readonly\" class=\"p-inputgroup\">\r\n  <input type=\"text\"\r\n         pInputText\r\n         [pKeyFilter]=\"realNumber\"\r\n         [placeholder]=\"placeHolder\"\r\n         [disabled]=\"disabled\"\r\n         [ngClass]=\"{'ng-invalid' : invalid}\"\r\n         [ngModel]=\"sVal\"\r\n         (ngModelChange)=\"onTextChange($event)\"\r\n  >\r\n\r\n  <button type=\"button\"\r\n          pButton pRipple\r\n          tabindex=\"-1\"\r\n          (click)=\"onClear()\"\r\n          *ngIf=\"value && showClear\"\r\n          class=\"p-button-secondary\"\r\n          icon=\"pi\">\r\n    <i class=\"fa fa-times\"></i>\r\n  </button>\r\n\r\n</div>\r\n\r\n<input *ngIf=\"readonly\"\r\n       pInputText\r\n       [readOnly]=\"true\"\r\n       [value]=\"readonlyCaption\">\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {NgClass} from \"@angular/common\";\r\nimport {TooltipModule} from \"primeng/tooltip\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-ok-button',\r\n  standalone: true,\r\n  imports: [\r\n    ButtonModule,\r\n    NgClass,\r\n    TooltipModule\r\n  ],\r\n  templateUrl: './alpha-prime-ok-button.component.html',\r\n  styleUrl: './alpha-prime-ok-button.component.css'\r\n})\r\nexport class AlphaPrimeOkButtonComponent {\r\n\r\n  @Input() disabled = false;\r\n  @Output() clicked = new EventEmitter<any>();\r\n  @Input() caption = this.mPs.getTr('alpha.buttons.ok');\r\n  @Input() sm = false;\r\n\r\n  constructor(private mPs: AlphaPrimeService) { }\r\n\r\n  onClicked(): void {\r\n    this.clicked.emit();\r\n  }\r\n\r\n}\r\n","<button pButton\r\n        class=\"p-button-info\"\r\n        [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n        type=\"button\"\r\n        icon=\"fa fa-check-square\"\r\n        [disabled]=\"disabled\"\r\n        pTooltip=\"{{caption}}\"\r\n        (click)=\"onClicked()\">\r\n</button>\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {InputTextModule} from \"primeng/inputtext\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {RippleModule} from \"primeng/ripple\";\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-password-input',\r\n  standalone: true,\r\n  imports: [\r\n    InputTextModule,\r\n    FormsModule,\r\n    ButtonModule,\r\n    RippleModule\r\n  ],\r\n  templateUrl: './alpha-prime-password-input.component.html',\r\n  styleUrl: './alpha-prime-password-input.component.css'\r\n})\r\nexport class AlphaPrimePasswordInputComponent {\r\n  inputType: 'password' | 'text' = 'password';\r\n  @Input() name = this.mPs.generateRandomName();\r\n  @Input() disabled = false;\r\n  @Input() password: string | undefined;\r\n  @Output() passwordChange = new EventEmitter<string>();\r\n\r\n  constructor(\r\n    private mPs: AlphaPrimeService) { }\r\n\r\n  get empty(): boolean {\r\n    return this.password === undefined\r\n      || this.password === '';\r\n  }\r\n\r\n  onShowHide() {\r\n    this.inputType = this.inputType === 'password'\r\n      ? 'text' : 'password';\r\n  }\r\n\r\n  onPasswordChanged(password: string) {\r\n    this.password = password;\r\n    this.passwordChange.emit(password);\r\n  }\r\n\r\n}\r\n","<div class=\"p-inputgroup\">\r\n  <input [type]=\"inputType\"\r\n         pInputText\r\n         name=\"name\"\r\n         maxlength=\"50\"\r\n         [disabled]=\"disabled\"\r\n         [ngModel]=\"password\"\r\n         (ngModelChange)=\"onPasswordChanged($event)\">\r\n  <button type=\"button\"\r\n          pButton\r\n          pRipple\r\n          tabindex=\"-1\"\r\n          icon=\"pi\"\r\n          [disabled]=\"empty\"\r\n          (click)=\"onShowHide()\">\r\n    <i class=\"fa fa-eye\"></i>\r\n  </button>\r\n</div>\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {AlphaPrimeLabelComponent} from \"../alpha-prime-label/alpha-prime-label.component\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {TooltipModule} from \"primeng/tooltip\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-save-button',\r\n  standalone: true,\r\n  imports: [\r\n    ButtonModule,\r\n    NgClass,\r\n    TooltipModule,\r\n    NgIf\r\n  ],\r\n  templateUrl: './alpha-prime-save-button.component.html',\r\n  styleUrl: './alpha-prime-save-button.component.css'\r\n})\r\nexport class AlphaPrimeSaveButtonComponent {\r\n  @Input() disabled = false;\r\n  @Output() clicked = new EventEmitter<any>();\r\n  @Input() caption = this.mPs.getTr('alpha.buttons.save');\r\n  @Input() busy = false;\r\n  @Input() sm = false;\r\n\r\n  constructor(\r\n    private mPs: AlphaPrimeService) {\r\n  }\r\n\r\n  onClicked(): void {\r\n    this.clicked.emit();\r\n  }\r\n\r\n  onMouseEnter(): void {\r\n    this.mPs.publish(true,\r\n      AlphaPrimeLabelComponent.SHOW_MESSAGE);\r\n  }\r\n\r\n  onMouseLeave(): void {\r\n    this.mPs.publish(false,\r\n      AlphaPrimeLabelComponent.SHOW_MESSAGE);\r\n  }\r\n\r\n}\r\n","<span\r\n  (mouseenter)=\"onMouseEnter()\"\r\n  (mouseleave)=\"onMouseLeave()\">\r\n  <button pButton\r\n          class=\"p-button-success\"\r\n          [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n          type=\"button\"\r\n          [disabled]=\"disabled\"\r\n          pTooltip=\"{{caption}}\"\r\n          icon=\"pi\"\r\n          (click)=\"onClicked()\">\r\n      <span *ngIf=\"!busy\">\r\n        <i class=\"fa fa-save\"></i>\r\n      </span>\r\n      <span *ngIf=\"busy\">\r\n        <i class=\"pi pi-spin pi-spinner\"></i>\r\n      </span>\r\n  </button>\r\n</span>\r\n","import {AlphaPrimeScrollerRow} from \"./alpha-prime-scroller-row\";\r\n\r\nexport class AlphaPrimeScrollerBag {\r\n  // totalHeightOfInvisibleRowsAbove & totalHeightOfInvisibleRowsAbove\r\n  // will sum the height of the invisible rows above and below\r\n  // those values will replace the actual paddingTop\r\n  // paddingBottom on successful injection\r\n  totalHeightOfInvisibleRowsAbove = 0;\r\n  totalHeightOfInvisibleRowsBellow = 0;\r\n  firstVisibleRow = -1;\r\n  lastVisibleRow = -1;\r\n\r\n  rows: AlphaPrimeScrollerRow<any>[];\r\n  nbRows: number;\r\n\r\n  constructor(rows: AlphaPrimeScrollerRow<any>[]) {\r\n    this.rows = rows;\r\n    this.nbRows = rows.length;\r\n  }\r\n\r\n  /**\r\n   * Analyzes the rows in a panel and calculates their positions and heights.\r\n   *\r\n   * @param {number} contentHeight - The total height of the panel's content.\r\n   * @param {number} fixedHeight - The fixed height of each row. Set to 0 for variable height.\r\n   * @param {number} spaceAbove - The space above the scrolling window.\r\n   * @param {number} panelBottom - The bottom position of the panel.\r\n   * @return {void}\r\n   */\r\n  analyseRows(\r\n    contentHeight: number,\r\n    fixedHeight: number,\r\n    spaceAbove: number,\r\n    panelBottom: number): void {\r\n\r\n    //const nbRows = this.rows.length;\r\n    const avgHeight = contentHeight / this.nbRows;\r\n    let offset = 0;\r\n    let hiddenHeight = 0;\r\n\r\n    this.firstVisibleRow = -1;\r\n    this.lastVisibleRow = -1;\r\n    this.totalHeightOfInvisibleRowsAbove = 0;\r\n    this.totalHeightOfInvisibleRowsBellow = 0;\r\n\r\n    for (let i = 0; i < this.nbRows; i++) {\r\n      const row = this.rows[i];\r\n      row.measuredTop = offset;\r\n\r\n      let height = fixedHeight > 0\r\n        ? fixedHeight : row.measuredHeight;\r\n\r\n      if (height < 0) {\r\n        height = avgHeight;\r\n        row.measuredHeight = avgHeight;\r\n        //console.log(`row ${i} has no height. avg = ${height}`);\r\n      }\r\n      row.measuredBottom = offset + height;\r\n\r\n      if (spaceAbove > row.measuredBottom) {\r\n        // this row is fully above the scrolling window\r\n        row.position = 'above';\r\n        row.visibleHeight = 0;\r\n        row.hiddenHeight = height;\r\n        this.totalHeightOfInvisibleRowsAbove += height;\r\n      } else {\r\n        if (this.firstVisibleRow < 0) {\r\n          // capture the index (i) of the first\r\n          // fully or partially visible row\r\n          this.firstVisibleRow = i;\r\n        }\r\n        if (spaceAbove > row.measuredTop) {\r\n          // this row is partially above the scrolling window\r\n          row.position = 'partiallyAbove';\r\n          row.visibleHeight = height - spaceAbove;\r\n          hiddenHeight = height - row.visibleHeight;\r\n          row.hiddenHeight = hiddenHeight;\r\n        } else {\r\n          if (row.measuredTop > panelBottom) {\r\n            // this row is fully bellow the scrolling window\r\n            row.position = 'bellow';\r\n            row.visibleHeight = 0;\r\n            row.hiddenHeight = height;\r\n            this.totalHeightOfInvisibleRowsBellow += height;\r\n            if (this.lastVisibleRow < 0) {\r\n              // capture the index (i) of the first\r\n              // fully invisible row\r\n              this.lastVisibleRow = i - 1;\r\n            }\r\n          }\r\n          else {\r\n            if (row.measuredBottom <= panelBottom){\r\n              row.position = 'fullyVisible';\r\n              row.visibleHeight = height;\r\n              row.hiddenHeight = 0;\r\n            } else {\r\n              row.position = 'partiallyBellow';\r\n              hiddenHeight = row.measuredBottom - panelBottom;\r\n              row.visibleHeight = height - hiddenHeight;\r\n              row.hiddenHeight = hiddenHeight;\r\n            }\r\n          }\r\n        }\r\n      }\r\n      offset += height;\r\n    }\r\n\r\n    if (this.lastVisibleRow < 0) {\r\n      // all rows are visible\r\n      this.lastVisibleRow = this.rows.length - 1;\r\n    }\r\n\r\n  }\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild} from '@angular/core';\r\nimport {AlphaPrimeScrollerModel} from \"./alpha-prime-scroller-model\";\r\nimport {AlphaPrimeScrollerRow} from \"./alpha-prime-scroller-row\";\r\nimport {AlphaPrimeDebugTagComponent} from \"../alpha-prime-debug-tag/alpha-prime-debug-tag.component\";\r\nimport {AlphaPrimeProgressBarComponent} from \"../alpha-prime-progress-bar/alpha-prime-progress-bar.component\";\r\nimport {NgIf} from \"@angular/common\";\r\nimport {AlphaPrimeScrollerBag} from \"./alpha-prime-scroller-bag\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-scroller',\r\n  standalone: true,\r\n  imports: [\r\n    AlphaPrimeDebugTagComponent,\r\n    AlphaPrimeDebugTagComponent,\r\n    AlphaPrimeProgressBarComponent,\r\n    NgIf\r\n  ],\r\n  templateUrl: './alpha-prime-scroller.component.html',\r\n  styleUrl: './alpha-prime-scroller.component.css'\r\n})\r\nexport class AlphaPrimeScrollerComponent  implements OnDestroy, AfterViewInit  {\r\n  private _allItemsFetched = false;\r\n  paddingTop = 0; // determines height of top filler\r\n  paddingBottom = 0; // determines height of bottom filler\r\n\r\n  get busy(): boolean {\r\n    return this.model.busy\r\n  }\r\n\r\n  private _model: AlphaPrimeScrollerModel<any> | undefined;\r\n  @Input()\r\n  set model(model: AlphaPrimeScrollerModel<any>) {\r\n    this._model = model;\r\n    model.onLoaded = () => {\r\n      this._allItemsFetched = model.endReached;\r\n      this.paddingTop = 0;\r\n      this.paddingBottom = 0;\r\n      if (model.endReached) {\r\n        this.allItemsFetched.emit(true);\r\n      }\r\n    };\r\n  }\r\n  /**\r\n   * Retrieves the model of the AlphaPrimeScroller.\r\n   *\r\n   * @returns {AlphaPrimeScrollerModel<any>} The model of the AlphaPrimeScroller.\r\n   * or a dummy object if the _model is undefined\r\n   */\r\n  get model(): AlphaPrimeScrollerModel<any> {\r\n    return this._model\r\n      ? this._model\r\n      : {\r\n         rows: [],\r\n         spaceAbove: -1,\r\n         panelHeight: -1,\r\n         panelBottom: -1,\r\n         contentHeight: -1,\r\n         spaceBellow: -1,\r\n         paddingTop: -1,\r\n         paddingBottom: -1,\r\n         busy: false\r\n        } as unknown as AlphaPrimeScrollerModel<any>;\r\n  }\r\n  get rows(): AlphaPrimeScrollerRow<any>[] {\r\n    return this.model.rows;\r\n  }\r\n  @Input() mirror = false;\r\n  @Input() showProgressBar = true;\r\n  @Input() fixedHeight = -1;\r\n\r\n  @Output() allItemsFetched = new EventEmitter<boolean>();\r\n  @Output() scrolled = new EventEmitter<number>(); // sends the scrollTop position to the caller\r\n\r\n  @ViewChild('scrollPanel') scrollPanelRef: ElementRef<HTMLDivElement> | undefined;\r\n  /**\r\n   * Returns the scroll panel element.\r\n   *\r\n   * @return {HTMLDivElement} The scroll panel element.\r\n   * If the scrollPanelRef is defined, it returns the nativeElement\r\n   * of the scrollPanelRef. Otherwise, it returns a dummy HTMLDivElement\r\n   * object with default scroll properties.\r\n   */\r\n  private get scrollPanel(): HTMLDivElement {\r\n    return this.scrollPanelRef\r\n      ? this.scrollPanelRef.nativeElement\r\n      : {\r\n          scrollTop: 0,\r\n          scrollHeight: 0,\r\n          clientHeight: 0\r\n        } as unknown as HTMLDivElement;\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.stopListening();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.startListening();\r\n  }\r\n\r\n  startListening() {\r\n    if (this.scrollPanelRef) {\r\n      this.scrollPanel.addEventListener('scroll',\r\n        this.handleScroll.bind(this));\r\n    }\r\n  }\r\n\r\n  stopListening() {\r\n    if (this.scrollPanelRef) {\r\n      this.scrollPanel.removeEventListener('scroll',\r\n        this.handleScroll.bind(this));\r\n    }\r\n  }\r\n\r\n  private updatePaddings(top: number, bottom: number): void {\r\n    this.model.paddingTop = top;\r\n    this.model.paddingBottom = bottom;\r\n    this.paddingTop = top;\r\n    this.paddingBottom = bottom;\r\n    // console.log(top, bottom);\r\n  }\r\n\r\n  handleScroll(/*event: Event*/): void {\r\n    if (this._model === undefined) {\r\n      return;\r\n    }\r\n    const spDiv = this.scrollPanel;\r\n    this.model.spaceAbove = spDiv.scrollTop;\r\n    //const spaceAbove = spDiv.scrollTop;\r\n    this.scrolled.emit(this.model.spaceAbove);\r\n    this.model.panelHeight = spDiv.clientHeight;\r\n    this.model.panelBottom = this.model.spaceAbove +\r\n                             this.model.panelHeight;\r\n    this.model.contentHeight = spDiv.scrollHeight;\r\n\r\n    const sb = new AlphaPrimeScrollerBag (this.rows)\r\n\r\n    sb.analyseRows(\r\n      this.model.contentHeight,\r\n      this.fixedHeight,\r\n      this.model.spaceAbove,\r\n      this.model.panelBottom);\r\n\r\n    this.model.spaceBellow = Math.round(\r\n      this.model.contentHeight -\r\n      this.model.spaceAbove -\r\n      this.model.panelHeight);\r\n\r\n    // console.log(`panelHeight:${panelHeight}-contentHeight:${contentHeight}`);\r\n    // console.log(`sa:${spaceAbove}-sb:${spaceBellow}-fvri:${firstVisibleRow}-pt:${this.paddingTop}-lvri:${lastVisibleRow}-pb:${this.paddingBottom}`);\r\n    // console.log(`padTop:${this.paddingTop}, padBtm:${this.paddingBottom}`);\r\n\r\n    if (this.paddingTop > 0\r\n      && this.model.spaceAbove <= this.paddingTop\r\n      && this.model.visibleFrom !== 0) {\r\n      this.slideUp(sb);\r\n      return;\r\n    }\r\n\r\n    if (this.model.spaceBellow <= this.paddingBottom + 5) {\r\n\r\n      if (this.model.visibleTo < this.model.nbRows) {\r\n        this.slideDown(sb);\r\n        return;\r\n\r\n      } else {\r\n\r\n        // need to get some data from the server\r\n\r\n        // there is already a request or\r\n        // the last request was not returning any rows\r\n        if (this.model.busy || this._allItemsFetched) {\r\n          this.updatePaddings(\r\n            sb.totalHeightOfInvisibleRowsAbove,\r\n            sb.totalHeightOfInvisibleRowsBellow);\r\n          return;\r\n        }\r\n\r\n        // get more data from the feeder\r\n        this.stopListening();\r\n        const curPos = spDiv.scrollTop;\r\n        this.model.loadNextItems(sb.firstVisibleRow)\r\n          .subscribe({\r\n            next: hasItems => {\r\n              this.updatePaddings(\r\n                sb.totalHeightOfInvisibleRowsAbove,\r\n                sb.totalHeightOfInvisibleRowsBellow);\r\n              spDiv.scrollTop = curPos;\r\n              if (hasItems) {\r\n                this.startListening();\r\n              } else {\r\n                this._allItemsFetched = true;\r\n                this.allItemsFetched.emit(true);\r\n              }\r\n              return;\r\n            },\r\n            error: error => {\r\n              console.error(error);\r\n              this.updatePaddings(\r\n                sb.totalHeightOfInvisibleRowsAbove,\r\n                sb.totalHeightOfInvisibleRowsBellow);\r\n              this.startListening();\r\n              return;\r\n            }\r\n          });\r\n      }\r\n      return;\r\n    }\r\n\r\n  }\r\n\r\n  slideUp(sb: AlphaPrimeScrollerBag): void{\r\n    this.model.slideItems(sb.firstVisibleRow, sb.lastVisibleRow);\r\n    this.updatePaddings(\r\n      sb.totalHeightOfInvisibleRowsAbove,\r\n      sb.totalHeightOfInvisibleRowsBellow);\r\n  }\r\n\r\n  slideDown(sb: AlphaPrimeScrollerBag): void {\r\n    this.model.slideItems(sb.firstVisibleRow,\r\n      this.model.visibleTo + this.model.take);\r\n    this.updatePaddings(\r\n      sb.totalHeightOfInvisibleRowsAbove,\r\n      sb.totalHeightOfInvisibleRowsBellow);\r\n  }\r\n\r\n\r\n}\r\n\r\n","<alpha-prime-debug-tag tag=\"alphaScroller\"></alpha-prime-debug-tag>\r\n<alpha-prime-progress-bar *ngIf=\"showProgressBar\"\r\n                          [delay]=\"10\"\r\n                          [busy]=\"busy\"></alpha-prime-progress-bar>\r\n\r\n<div\r\n  [className]=\"mirror ? 'backwardScrollPanel':'forwardScrollPanel'\"\r\n  #scrollPanel>\r\n  <!-- TOP FILLER -->\r\n  <div [style.height.px]=\"paddingTop\"></div>\r\n  <ng-content></ng-content>\r\n  <!-- BOTTOM FILLER -->\r\n  <div [style.height.px]=\"paddingBottom\"></div>\r\n</div>\r\n","import {v4 as uuidV4} from 'uuid';\r\n\r\nexport class AlphaPrimeScrollerRow<T> {\r\n  data: T;\r\n  selected = false;\r\n  disabled = false;\r\n  id = uuidV4();\r\n\r\n  /** Evaluated when the method measureHeight is invoked.\r\n   * The measureHeight method is invoked by the [ngStyle] tag\r\n   */\r\n  measuredHeight = -1;\r\n\r\n  /** This value is evaluated by the analyseRows method.\r\n   * The analyseRows method is invoked from the ScrollerBag class\r\n   */\r\n  measuredTop = -1;\r\n  /** This value is evaluated by the analyseRows method.\r\n   * The analyseRows method is invoked from the ScrollerBag class\r\n   */\r\n  measuredBottom = -1;\r\n\r\n  /**\r\n   * This value is evaluated by the analyseRows method.\r\n   * The analyseRows method is invoked from the ScrollerBag class\r\n   * */\r\n  position: 'unknown' | 'above' | 'partiallyAbove' | 'fullyVisible' |\r\n    'partiallyBellow' | 'bellow' = 'unknown';\r\n\r\n  /**\r\n   * This value is evaluated by the analyseRows method.\r\n   * The analyseRows method is invoked from the ScrollerBag class\r\n   * */\r\n  visibleHeight: number = -1;\r\n  /**\r\n   * This value is evaluated by the analyseRows method.\r\n   * The analyseRows method is invoked from the ScrollerBag class\r\n   * */\r\n  hiddenHeight: number = -1;\r\n\r\n  get dims(): string {\r\n    const p = this.position;\r\n    const t = Math.round(this.measuredTop);\r\n    const b = Math.round(this.measuredBottom);\r\n    const h = Math.round(this.measuredHeight);\r\n    const vh = Math.round(this.visibleHeight);\r\n    const hh = Math.round(this.hiddenHeight);\r\n    return `p:${p} t:${t} b:${b} h:${h} vh:${vh} hh:${hh}`\r\n  }\r\n\r\n  constructor(data: T) {\r\n    this.data = data;\r\n  }\r\n\r\n  /**\r\n   This method is called by the html container for this row\r\n   see [ngStyle] tag\r\n   the method\r\n   * sets the measureHeight of the row including the margin\r\n   * and returns the margin\r\n   Remark: there is no processing on the margin.\r\n   The margin is passed as an input parameter\r\n   and returned without any transformation\r\n   This make sure that the measuredHeight is set for\r\n   every row when processed by the *ngFor\r\n   <div *ngFor=\"let row of chModel.vRows; trackBy: trackByFn\"\r\n   #loopItem\r\n   [ngStyle]=\"{'margin-bottom.px': row.measureHeight(loopItem, 5)}\" >\r\n   */\r\n  measureHeight(loopItem: any, margin: number): number {\r\n    const offsetHeight = loopItem.offsetHeight;\r\n    if (offsetHeight > 0\r\n      && this.measuredHeight < offsetHeight) {\r\n      this.measuredHeight = offsetHeight + margin;\r\n    }\r\n    return margin;\r\n  }\r\n}\r\n","import {AlphaPrimeScrollerRow} from \"./alpha-prime-scroller-row\";\r\nimport {Observable, Subscriber} from \"rxjs\";\r\n\r\nexport class AlphaPrimeScrollerModel<T> {\r\n  onLoading: () => any = () => {};\r\n  onLoaded: (item: T | undefined) => any = () => {};\r\n\r\n  // for debugging purpose\r\n  spaceAbove = -1;\r\n  panelHeight = -1;\r\n  panelBottom = -1;\r\n  contentHeight = -1;\r\n  spaceBellow = -1;\r\n  paddingTop = -1;\r\n  paddingBottom = -1;\r\n  visibleFrom = 0;\r\n  visibleTo = 0;\r\n\r\n  get dims(): string {\r\n    const sa = Math.round(this.spaceAbove);\r\n    const ph = Math.round(this.panelHeight);\r\n    const pb = Math.round(this.panelBottom);\r\n    const ch = Math.round(this.contentHeight);\r\n    const sb = Math.round(this.spaceBellow);\r\n    const padT = Math.round(this.paddingTop);\r\n    const padB = Math.round(this.paddingBottom);\r\n    const vf = this.visibleFrom;\r\n    const vt = this.visibleTo;\r\n    return `sa: ${sa} ph: ${ph} pb:${pb} ch: ${ch} sb:${sb} padT:${padT} padB: ${padB} vf:${vf} vt:${vt}`;\r\n  }\r\n\r\n  rows: AlphaPrimeScrollerRow<T>[] = [];\r\n  get nbRows() {\r\n    return this.rows.length;\r\n  };\r\n  endReached = false;\r\n\r\n  /** visible rows */\r\n  get vRows(): AlphaPrimeScrollerRow<T>[] {\r\n    return this.rows.slice(this.visibleFrom, this.visibleTo);\r\n  }\r\n  busy = false;\r\n\r\n  feed: (skip: number, take: number) => Observable<T[]>;\r\n  take = 10;\r\n\r\n  constructor(\r\n    feed: (skip: number, take: number) => Observable<T[]>,\r\n    take?: number) {\r\n    this.feed = feed;\r\n    if (take) {\r\n      this.take = take;\r\n    }\r\n  }\r\n\r\n  loadItems(): Observable<T | undefined> {\r\n\r\n    this.endReached = false;\r\n    this.onLoading();\r\n    return new Observable<T | undefined>(\r\n      (subscriber: Subscriber<T | undefined>) => {\r\n        this.busy = true;\r\n\r\n        this.feed(this.nbRows, this.take)\r\n          .subscribe({\r\n            next: (items: T[]) => {\r\n              this.populateItems(items);\r\n              const item = items.length > 0\r\n                ? items[0] : undefined;\r\n              subscriber.next(item);\r\n              this.busy = false;\r\n              this.endReached = items.length < this.take;\r\n              this.onLoaded(item);\r\n            },\r\n            error: error => {\r\n              console.log(error);\r\n              subscriber.error(error);\r\n              this.busy = false;\r\n            }\r\n          });\r\n      });\r\n  }\r\n\r\n  /**\r\n   * called when the list is scrolled till end.\r\n   * Returns false when the number or retrieved\r\n   * items is zero\r\n   * @param from\r\n   */\r\n  loadNextItems(from: number): Observable<boolean> {\r\n    return new Observable(\r\n      (subscriber: Subscriber<any>) => {\r\n        this.busy = true;\r\n        this.feed(this.nbRows, this.take)\r\n          .subscribe({\r\n            next: (items: T[]) => {\r\n              this.appendItems(items, from);\r\n              this.busy = false;\r\n              this.endReached = items.length === 0;\r\n              subscriber.next(!this.endReached);\r\n            },\r\n            error: (error) => {\r\n              console.error('loadNextItems failed with', error);\r\n              this.busy = false;\r\n              subscriber.error(error);\r\n            }\r\n          });\r\n      });\r\n  }\r\n\r\n  private populateItems(items: T[]): void {\r\n    this.rows = items.map(\r\n      (item: T) => {\r\n        return new AlphaPrimeScrollerRow<T>(item);\r\n      });\r\n    this.visibleFrom = 0;\r\n    this.visibleTo = items.length;\r\n  }\r\n\r\n  findItemIndex(val: any, getVal: (item: T) => any): number {\r\n    return this.rows\r\n      .findIndex(\r\n        (row: AlphaPrimeScrollerRow<T>) => {\r\n          const rowItem = row.data;\r\n          const rowVal = getVal(rowItem);\r\n          return val === rowVal;\r\n        });\r\n  }\r\n\r\n  /** removes the element with id = itemId and returns\r\n   * (0) null when not found\r\n   * (1) the element directly following when available\r\n   * (2) the element directly preceding when deleting the last item\r\n   * (3) null if the rows are emptied\r\n   */\r\n  removeItem(itemId: any, getId: (item: T) => any): T | null {\r\n    const i = this.findItemIndex(itemId, getId);\r\n    if (i < 0) {\r\n      return null;\r\n    }\r\n    return this.removeItems(i, 1);\r\n  }\r\n\r\n  /** removes the element with id = itemId and returns\r\n   * (0) null when not found\r\n   * (1) the element directly following when available\r\n   * (2) the element directly preceding when deleting the last item\r\n   * (3) null if the rows are emptied\r\n   */\r\n  removeItems(start: number, deleteCount: number): T | null {\r\n    if (deleteCount >= this.nbRows) {\r\n      this.rows = [];\r\n      return null;\r\n    }\r\n    this.rows.splice(start, deleteCount);\r\n    if (start >= this.rows.length) {\r\n      // get the last element\r\n      start = this.rows.length - 1;\r\n    }\r\n    return this.rows[start].data;\r\n  }\r\n\r\n  replaceItem(item: T, getId: (item: T) => any): void {\r\n    const itemId = getId(item);\r\n    const i = this.findItemIndex(itemId, getId);\r\n    if (i < 0) {\r\n      return;\r\n    }\r\n    const row = new AlphaPrimeScrollerRow(item);\r\n    this.rows.splice(i, 1, row);\r\n  }\r\n\r\n  insertItem(start: number, item: T) {\r\n    const row = new AlphaPrimeScrollerRow<T>(item);\r\n    this.rows.splice(start, 0, row);\r\n    this.visibleTo++;\r\n  }\r\n\r\n  prependItem(item: T): void {\r\n    const row = new AlphaPrimeScrollerRow<T>(item);\r\n    this.rows.unshift(row);\r\n    this.visibleFrom = 0;\r\n    this.visibleTo++;\r\n  }\r\n\r\n  appendItem(item: T): void {\r\n    const row = new AlphaPrimeScrollerRow<T>(item);\r\n    this.rows.push(row);\r\n    this.visibleTo++;\r\n  }\r\n\r\n  appendItems(items: T[], from: number): void {\r\n    const rows = items.map(\r\n      (item: T) => {\r\n        return new AlphaPrimeScrollerRow<T>(item);\r\n      });\r\n    this.rows = this.rows.concat(rows);\r\n    this.visibleFrom = from;\r\n    this.visibleTo = this.rows.length;\r\n  }\r\n\r\n  slideItems(from: number, to: number) {\r\n    this.visibleFrom = from;\r\n    this.visibleTo = to;\r\n  }\r\n\r\n}\r\n","export interface IAlphaPrimeSelectOption {\r\n  id: string;\r\n  caption: any;\r\n  disabled: boolean;\r\n  data?: any;\r\n}\r\n\r\nexport class AlphaPrimeSelectInfo {\r\n  /** determine how to set the initial option Id out of 8 options:\r\n   *\r\n   * 'first': first,\r\n   * 'none': undefined,\r\n   * 'idOrNone': id if found,\r\n   * 'idOrFirst': id or first.\r\n   *\r\n   * 'lsOrFirst': localStorage item or first,\r\n   * 'lsOrNone' : localStorage item if found,\r\n   * 'lsOrIdOrNone': localStorage item or id if found,\r\n   * 'lsOrIdOrFirst': localStorage item or id or first.\r\n   *\r\n   * The default value is 'first' */\r\n  initMode: 'first' | 'none' | 'idOrNone' | 'idOrFirst'\r\n    | 'lsOrFirst' | 'lsOrNone' | 'lsOrIdOrNone' | 'lsOrIdOrFirst';\r\n  options: IAlphaPrimeSelectOption[] = [];\r\n  /** key if the localStorage item to retrieved/set */\r\n  lsItemKey: string | undefined;\r\n\r\n  /** initial value */\r\n  optionId: string | undefined;\r\n\r\n  getOption(optionId: string | undefined) {\r\n    if (optionId === undefined) {\r\n      return undefined;\r\n    }\r\n    const option = this.options.find(o => o.id === optionId);\r\n    if (option === undefined) {\r\n      throw new Error('option should not be undefined');\r\n    }\r\n    return option;\r\n  }\r\n\r\n  static First(\r\n    options: IAlphaPrimeSelectOption[]): AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'first', options)\r\n  }\r\n\r\n  static None(\r\n    options: IAlphaPrimeSelectOption[]): AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'none', options);\r\n  }\r\n\r\n  static OptionId(\r\n    options: IAlphaPrimeSelectOption[],\r\n    optionId: string | undefined):AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'idOrNone', options, undefined, optionId);\r\n  }\r\n\r\n  static OptionIdOrFirst(\r\n    options: IAlphaPrimeSelectOption[],\r\n    optionId: string | undefined):AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'idOrFirst', options, undefined, optionId);\r\n  }\r\n\r\n  static LsOrFirst(options: IAlphaPrimeSelectOption[],\r\n                   lsItemKey: string): AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'lsOrFirst', options, lsItemKey);\r\n  }\r\n\r\n  static LsOrNone(options: IAlphaPrimeSelectOption[],\r\n                  lsItemKey: string):AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'lsOrNone', options, lsItemKey);\r\n  }\r\n\r\n  static LsOrIdOrFirst(options: IAlphaPrimeSelectOption[],\r\n                       lsItemKey: string,\r\n                       optionId: string | undefined): AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'lsOrIdOrFirst', options, lsItemKey, optionId);\r\n  }\r\n\r\n  static LsOrIdOrNone(options: IAlphaPrimeSelectOption[],\r\n                      lsItemKey: string,\r\n                      optionId: string | undefined):AlphaPrimeSelectInfo {\r\n    return new AlphaPrimeSelectInfo(\r\n      'lsOrIdOrNone', options, lsItemKey, optionId);\r\n  }\r\n\r\n  private setIdOrNone(id: string | undefined): void {\r\n    const option = id\r\n      ? this.options.find(o => o.id === id)\r\n      : undefined;\r\n    this.optionId = option?.id;\r\n  }\r\n\r\n  private setFirst(): void {\r\n    this.optionId = this.options.length > 0\r\n      ? this.options[0].id\r\n      : undefined;\r\n  }\r\n\r\n  private setIdOrFirst(id: string | undefined): void {\r\n    this.setIdOrNone(id);\r\n    if (this.optionId) {\r\n      return;\r\n    }\r\n    this.setFirst();\r\n  }\r\n\r\n  private setLsOrNone(lsItemKey: string): void {\r\n    const lsId = localStorage.getItem(lsItemKey!) || undefined;\r\n    this.setIdOrNone(lsId);\r\n  }\r\n\r\n  private setLsOrFirst(lsItemKey: string): void {\r\n    const lsId = localStorage.getItem(lsItemKey!) || undefined;\r\n    this.setIdOrFirst(lsId);\r\n  }\r\n\r\n  private setLsOrIdOrNone(lsItemKey: string, id: string | undefined) {\r\n    const lsId = localStorage.getItem(lsItemKey!) || undefined;\r\n    this.setIdOrNone(lsId || id);\r\n  }\r\n\r\n  private setLsOrIdOrFirst(lsItemKey: string, id: string | undefined) {\r\n    const lsId = localStorage.getItem(lsItemKey!) || undefined;\r\n    this.setIdOrFirst(lsId || id);\r\n  }\r\n\r\n  private constructor(\r\n    initMode: 'first' | 'none' | 'idOrNone' | 'idOrFirst'\r\n      | 'lsOrFirst' | 'lsOrNone' | 'lsOrIdOrNone' | 'lsOrIdOrFirst',\r\n    options: IAlphaPrimeSelectOption[],\r\n    lsItemKey?: string,\r\n    id?: string) {\r\n\r\n    this.initMode = initMode;\r\n    this.options = options;\r\n    this.lsItemKey = lsItemKey;\r\n    this.optionId = id;\r\n\r\n    switch (initMode) {\r\n      case 'first':\r\n        this.setFirst();\r\n        break;\r\n      case 'none':\r\n        this.optionId = undefined;\r\n        break;\r\n      case 'idOrNone':\r\n        this.setIdOrNone(id);\r\n        break;\r\n      case 'idOrFirst':\r\n        this.setIdOrFirst(id);\r\n        break;\r\n\r\n      case 'lsOrFirst':\r\n        this.setLsOrFirst(lsItemKey!);\r\n        break;\r\n      case 'lsOrNone':\r\n        this.setLsOrNone(lsItemKey!);\r\n        break;\r\n      case 'lsOrIdOrNone':\r\n        this.setLsOrIdOrNone(lsItemKey!, id)\r\n        break;\r\n      case 'lsOrIdOrFirst':\r\n        this.setLsOrIdOrFirst(lsItemKey!, id);\r\n        break;\r\n    }\r\n  }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {AlphaPrimeSelectInfo, IAlphaPrimeSelectOption} from \"./alpha-prime-select-info\";\r\nimport {NgIf} from \"@angular/common\";\r\nimport {DropdownModule} from \"primeng/dropdown\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {RippleModule} from \"primeng/ripple\";\r\nimport {InputTextModule} from \"primeng/inputtext\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-select',\r\n  standalone: true,\r\n  imports: [\r\n    NgIf,\r\n    DropdownModule,\r\n    FormsModule,\r\n    ButtonModule,\r\n    RippleModule,\r\n    InputTextModule\r\n  ],\r\n  templateUrl: './alpha-prime-select.component.html',\r\n  styleUrl: './alpha-prime-select.component.css'\r\n})\r\nexport class AlphaPrimeSelectComponent {\r\n  @Input() name = this.mPs.generateRandomName();\r\n\r\n  private _asi: AlphaPrimeSelectInfo | undefined;\r\n  @Input()\r\n  set asi(asi: AlphaPrimeSelectInfo | undefined) {\r\n    this._asi = asi;\r\n    if (asi === undefined) {\r\n      this.options = [];\r\n      this._optionId = undefined;\r\n      return;\r\n    }\r\n    this.options = asi.options;\r\n    this._optionId = asi.optionId;\r\n  }\r\n  get asi(): AlphaPrimeSelectInfo | undefined {\r\n    return this._asi;\r\n  }\r\n\r\n  @Input() options: IAlphaPrimeSelectOption[] = []\r\n\r\n  @Input() placeHolder = '';\r\n  @Input() disabled = false;\r\n  @Input() readonly = false;\r\n  @Input() readonlyCaption: string | undefined | null = '';\r\n  /** whether of not to show the add button (default=false) */\r\n  @Input() showAdd = false;\r\n  /** whether of not to show the clear button (default=true) */\r\n  @Input() showClear = true;\r\n\r\n  private _optionId: string | undefined = undefined;\r\n  @Input()\r\n  set optionId(optionId: string | undefined) {\r\n    this._optionId = optionId;\r\n    if (optionId && this.asi?.lsItemKey) {\r\n      localStorage.setItem(this.asi!.lsItemKey, optionId);\r\n    }\r\n  }\r\n  get optionId(): string | undefined {\r\n    return this._optionId;\r\n  }\r\n\r\n  @Output() optionIdChange = new EventEmitter<string | undefined>();\r\n  @Output() optionChange = new EventEmitter<IAlphaPrimeSelectOption | undefined>();\r\n  @Output() addClicked = new EventEmitter();\r\n\r\n  constructor(private mPs: AlphaPrimeService) {\r\n  }\r\n\r\n  onOptionChange(id: string): void {\r\n    this.optionId = id;\r\n    this.optionIdChange.emit(id)\r\n    const option =\r\n      this.options.find(o => o.id === id);\r\n    this.optionChange.emit(option);\r\n  }\r\n\r\n  onClear(): void {\r\n    this.optionId = undefined;\r\n    this.optionIdChange.emit(undefined)\r\n    this.optionChange.emit(undefined)\r\n  }\r\n\r\n  onAdd(): void {\r\n    this.addClicked.emit();\r\n  }\r\n\r\n}\r\n","<div *ngIf=\"!readonly\"\r\n     style=\"font-size: x-small;\"\r\n     class=\"p-inputgroup\">\r\n\r\n  <p-dropdown\r\n    [style]=\"{\r\n            'width':'100%',\r\n            'border-top-right-radius': optionId && showClear || showAdd ? '0' : '',\r\n            'border-bottom-right-radius': optionId && showClear || showAdd ? '0' : ''}\"\r\n    class=\"p-dropdown\"\r\n    [options]=\"options\"\r\n    [disabled]=\"disabled\"\r\n    [readonly]=\"readonly\"\r\n    [placeholder]=\"placeHolder\"\r\n    appendTo=\"body\"\r\n    [autoDisplayFirst]=\"false\"\r\n    [virtualScroll]=\"true\"\r\n    [virtualScrollItemSize]=\"30\"\r\n    optionLabel=\"caption\"\r\n    optionValue=\"id\"\r\n    optionDisabled=\"disabled\"\r\n    [ngModel]=\"optionId\"\r\n    (ngModelChange)=\"onOptionChange($event)\"\r\n    #dd\r\n  ></p-dropdown>\r\n\r\n  <button type=\"button\"\r\n          pButton pRipple\r\n          tabindex=\"-1\"\r\n          (click)=\"onClear()\"\r\n          *ngIf=\"optionId && showClear\"\r\n          class=\"p-button-secondary\"\r\n          icon=\"pi\">\r\n    <i class=\"fa fa-times\"></i>\r\n  </button>\r\n\r\n  <button type=\"button\"\r\n          *ngIf=\"showAdd\"\r\n          tabindex=\"-1\"\r\n          pButton pRipple\r\n          [disabled]=\"disabled\"\r\n          (click)=\"onAdd()\"\r\n          class=\"p-button-info\"\r\n          icon=\"pi\">\r\n    <i class=\"fa fa-plus\"></i>\r\n  </button>\r\n\r\n</div>\r\n<div *ngIf=\"readonly\">\r\n  <input type=\"text\"\r\n         [readonly]=\"true\"\r\n         [value]=\"readonlyCaption\"\r\n         pInputText >\r\n</div>\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {AlphaPrimeLabelComponent} from \"../alpha-prime-label/alpha-prime-label.component\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {TooltipModule} from \"primeng/tooltip\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-submit-button',\r\n  standalone: true,\r\n  imports: [\r\n    ButtonModule,\r\n    NgClass,\r\n    TooltipModule,\r\n    NgIf\r\n  ],\r\n  templateUrl: './alpha-prime-submit-button.component.html',\r\n  styleUrl: './alpha-prime-submit-button.component.css'\r\n})\r\nexport class AlphaPrimeSubmitButtonComponent {\r\n  @Input() disabled = false;\r\n  @Input() busy = false;\r\n  @Output() clicked = new EventEmitter<any>();\r\n  @Input() caption = this.mPs.getTr('alpha.buttons.submit');\r\n  @Input() sm = false;\r\n\r\n  constructor(\r\n    private mPs: AlphaPrimeService) {\r\n  }\r\n\r\n  onClicked(): void {\r\n    this.clicked.emit();\r\n  }\r\n\r\n  onMouseEnter(): void {\r\n    this.mPs.publish(true, AlphaPrimeLabelComponent.SHOW_MESSAGE);\r\n  }\r\n\r\n  onMouseLeave(): void {\r\n    this.mPs.publish(false, AlphaPrimeLabelComponent.SHOW_MESSAGE);\r\n  }\r\n\r\n}\r\n","<span\r\n  (mouseenter)=\"onMouseEnter()\"\r\n  (mouseleave)=\"onMouseLeave()\">\r\n  <button pButton\r\n          class=\"p-button-success\"\r\n          [ngClass]=\"sm ? 'p-button-sm' : ''\"\r\n          type=\"button\"\r\n          [disabled]=\"disabled\"\r\n          pTooltip=\"{{caption}}\"\r\n          icon=\"pi\"\r\n          (click)=\"onClicked()\">\r\n    <span *ngIf=\"!busy\">\r\n      <i class=\"fa-regular fa-paper-plane\"></i>\r\n    </span>\r\n    <span *ngIf=\"busy\">\r\n      <i class=\"pi pi-spin pi-spinner\"></i>\r\n    </span>\r\n  </button>\r\n</span>\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {IAlphaPrimeSwitchOption} from \"./alpha-prime-switch-option\";\r\nimport {AlphaPrimeService} from \"../../services/alpha-prime.service\";\r\nimport {InputSwitchModule} from \"primeng/inputswitch\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n  selector: 'alpha-prime-switch',\r\n  standalone: true,\r\n  imports: [\r\n    InputSwitchModule,\r\n    FormsModule,\r\n    NgIf\r\n  ],\r\n  templateUrl: './alpha-prime-switch.component.html',\r\n  styleUrl: './alpha-prime-switch.component.css'\r\n})\r\nexport class AlphaPrimeSwitchComponent {\r\n  @Input() name = this.mPs.generateRandomName();\r\n  @Input() disabled = false;\r\n  private _switchOption: IAlphaPrimeSwitchOption = { caption: '', id: '', selected: true };\r\n  @Input()\r\n  set switchOption(switchOption: IAlphaPrimeSwitchOption) {\r\n    this._switchOption = switchOption;\r\n    if (switchOption.lsItemKey) {\r\n      const lsItem = localStorage.getItem(switchOption.lsItemKey);\r\n      if (lsItem) {\r\n        this._switchOption.selected = lsItem === 'true';\r\n      }\r\n    }\r\n  }\r\n  get switchOption(): IAlphaPrimeSwitchOption {\r\n    return this._switchOption;\r\n  }\r\n\r\n  @Output() switchOptionChange = new EventEmitter<IAlphaPrimeSwitchOption>();\r\n\r\n  constructor(\r\n    private mPs: AlphaPrimeService) { }\r\n\r\n  private check(selected: boolean): void {\r\n    this.switchOption.selected = selected;\r\n    this.switchOptionChange.emit(this.switchOption);\r\n    if (this.switchOption.lsItemKey) {\r\n      localStorage.setItem(\r\n        this.switchOption.lsItemKey,\r\n        selected ? 'true' : 'false');\r\n    }\r\n  }\r\n\r\n  onChange(e: { checked: boolean; }) {\r\n    this.check(e.checked);\r\n  }\r\n\r\n  onCaptionClicked(): void {\r\n    this.check(!this.switchOption.selected);\r\n  }\r\n\r\n}\r\n","<p-inputSwitch\r\n  [style]=\"{ 'display': 'inline-block', 'vertical-align': 'middle' }\"\r\n  (onChange)=\"onChange($event)\"\r\n  [(ngModel)]=\"switchOption.selected\"\r\n  [name]=\"name\"\r\n  [disabled]=\"disabled\">\r\n</p-inputSwitch>\r\n<span *ngIf=\"!disabled\" class=\"p-pl-2\"\r\n      style=\"display: inline-block; vertical-align: middle; cursor: pointer;\"\r\n      (click)=\"onCaptionClicked()\">\r\n      {{switchOption.caption}}\r\n</span>\r\n<span *ngIf=\"disabled\" class=\"p-pl-2\"\r\n      style=\"display: inline-block; vertical-align: middle;\"\r\n      disabled=\"true\">\r\n      {{switchOption.caption}}\r\n</span>\r\n","export interface IAlphaPrimeSwitchOption {\r\n  id: string;\r\n  caption: string;\r\n  selected: boolean;\r\n  /** optional localStorage item key that can store\r\n   * the value for this.selected\r\n   */\r\n  lsItemKey?: string\r\n}\r\nexport class AlphaPrimeSwitchOption\r\n  implements IAlphaPrimeSwitchOption {\r\n  id: string;\r\n  caption: string;\r\n  selected: boolean;\r\n  lsItemKey?: string\r\n\r\n  /** when specifying a lsItemKey the\r\n   * value of the selected param will\r\n   * be overwritten by the local storage\r\n   * value (true/false) if any\r\n   */\r\n  constructor(\r\n    id: string,\r\n    caption: string,\r\n    selected: boolean,\r\n    lsItemKey?: string) {\r\n    this.id = id;\r\n    this.caption = caption;\r\n    this.selected = selected;\r\n    this.lsItemKey = lsItemKey;\r\n    if (lsItemKey) {\r\n      const lsItem = localStorage.getItem(lsItemKey);\r\n      if (lsItem) {\r\n        this.selected = lsItem === 'true';\r\n      }\r\n    }\r\n  }\r\n\r\n}\r\n","import {Directive, ElementRef, Input, OnDestroy, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[alphaPrimeRemainingHeight]',\r\n  standalone: true\r\n})\r\nexport class AlphaPrimeRemainingHeightDirective\r\n  implements OnInit, OnDestroy {\r\n\r\n  /** bottom margin in pixels (default value is 0) */\r\n  @Input() bottomMarginInPx = 0;\r\n\r\n  constructor(private elementRef: ElementRef<HTMLDivElement>) { }\r\n\r\n  interval: any;\r\n\r\n  private setElementHeight() {\r\n    const native = this.elementRef.nativeElement;\r\n    const rect = native.getBoundingClientRect();\r\n    const spaceFromTop = window.innerHeight - rect.top - this.bottomMarginInPx;\r\n    // console.log(`innerHeight: ${this._innerHeight} rectTop: ${rect.top}`);\r\n    native.style.height = `${spaceFromTop}px`;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n\r\n    setTimeout(() => {\r\n      window.addEventListener(\r\n        'resize',\r\n        this.setElementHeight.bind(this));\r\n      this.setElementHeight();\r\n    }, 1);\r\n\r\n    this.interval = setInterval(() => {\r\n      this.setElementHeight();\r\n    }, 500);\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    window.removeEventListener(\r\n      'resize',\r\n      this.setElementHeight);\r\n    if (this.interval) {\r\n      clearInterval(this.interval);\r\n    }\r\n  }\r\n\r\n}\r\n","/*\r\n * Public API Surface of alpha-prime\r\n */\r\n\r\nexport * from './lib/components/alpha-prime-add-button/alpha-prime-add-button.component';\r\nexport * from './lib/components/alpha-prime-auto-complete/alpha-prime-auto-complete';\r\nexport * from './lib/components/alpha-prime-auto-complete/alpha-prime-auto-complete.component';\r\nexport * from './lib/components/alpha-prime-cancel-button/alpha-prime-cancel-button.component';\r\nexport * from './lib/components/alpha-prime-confirmation-modal/alpha-prime-confirmation-modal.component';\r\nexport * from './lib/components/alpha-prime-currency-input/alpha-prime-currency-input.component';\r\nexport * from './lib/components/alpha-prime-date-picker/alpha-prime-date-picker.component';\r\nexport * from './lib/components/alpha-prime-date-range-picker/alpha-prime-date-range-picker.component';\r\nexport * from './lib/components/alpha-prime-debug-tag/alpha-prime-debug-tag.component';\r\nexport * from './lib/components/alpha-prime-delete-button/alpha-prime-delete-button.component';\r\nexport * from './lib/components/alpha-prime-edit-button/alpha-prime-edit-button.component';\r\nexport * from './lib/components/alpha-prime-file-upload/alpha-prime-file-upload';\r\nexport * from './lib/components/alpha-prime-file-upload/alpha-prime-file-upload.component';\r\nexport * from './lib/components/alpha-prime-filter-box/alpha-prime-filter-box.component';\r\nexport * from './lib/components/alpha-prime-grow-box/alpha-prime-grow-box.component';\r\nexport * from './lib/components/alpha-prime-label/alpha-prime-label.component';\r\nexport * from './lib/components/alpha-prime-number-input/alpha-prime-number-input.component';\r\nexport * from './lib/components/alpha-prime-ok-button/alpha-prime-ok-button.component';\r\nexport * from './lib/components/alpha-prime-password-input/alpha-prime-password-input.component';\r\nexport * from './lib/components/alpha-prime-progress-bar/alpha-prime-progress-bar.component';\r\nexport * from './lib/components/alpha-prime-save-button/alpha-prime-save-button.component';\r\nexport * from './lib/components/alpha-prime-scroller/alpha-prime-scroller.component';\r\nexport * from './lib/components/alpha-prime-scroller/alpha-prime-scroller-model';\r\nexport * from './lib/components/alpha-prime-scroller/alpha-prime-scroller-row';\r\nexport * from './lib/components/alpha-prime-select/alpha-prime-select-info';\r\nexport * from './lib/components/alpha-prime-select/alpha-prime-select.component';\r\nexport * from './lib/components/alpha-prime-submit-button/alpha-prime-submit-button.component';\r\nexport * from './lib/components/alpha-prime-switch/alpha-prime-switch.component';\r\nexport * from './lib/components/alpha-prime-switch/alpha-prime-switch-option';\r\n\r\nexport * from './lib/directives/alpha-prime-remaining-height.directive';\r\n\r\nexport * from './lib/pipes/alpha-prime-boldify.pipe';\r\n\r\nexport * from './lib/services/alpha-prime-modal-abstractions';\r\nexport * from './lib/services/alpha-prime-modal.service';\r\nexport * from './lib/services/alpha-prime.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AlphaPrimeService","i1","i2","i3","i4","i6","i5","i2.AlphaPrimeModalService","uuidV4"],"mappings":"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"}