@falcon-ng/tailwind 0.0.23 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -636,15 +636,14 @@ class GenericHttpClient {
636
636
  * ```
637
637
  */
638
638
  request(method, url, options) {
639
+ this.logger.info('Http Client request started!');
639
640
  return Observable.create((observer) => {
640
641
  let destinationUrl = '';
641
642
  if (this.environment.baseUrl != undefined)
642
643
  destinationUrl = this.environment.baseUrl + url;
643
644
  else
644
645
  destinationUrl = url;
645
- this.httpClient
646
- .request(new HttpRequest(method, destinationUrl, options))
647
- .subscribe((response) => {
646
+ this.httpClient.request(new HttpRequest(method, destinationUrl, options)).subscribe((response) => {
648
647
  const responsTye = response;
649
648
  switch (responsTye.type) {
650
649
  case HttpEventType.Sent:
@@ -661,18 +660,18 @@ class GenericHttpClient {
661
660
  observer.next(response.body);
662
661
  this.logger.info('Http Client : Response -> 😺 Done!', responsTye.body);
663
662
  }
664
- }, error => {
663
+ }, (error) => {
664
+ this.logger.error('********** Errors *******************');
665
+ this.logger.error(error);
665
666
  switch (error.status) {
666
667
  case HttpStatusCode.Forbidden:
667
668
  // observer.complete();
668
- this.snackBarViewModel.messageText =
669
- 'Access to the requested resource is forbidden.';
669
+ this.snackBarViewModel.messageText = 'Access to the requested resource is forbidden.';
670
670
  this.snackBarViewModel.actionText = 'Forbidden';
671
671
  this.isHttpError = true;
672
672
  break;
673
673
  case HttpStatusCode.BadRequest:
674
- this.snackBarViewModel.messageText =
675
- 'Server cannot or will not process the request.';
674
+ this.snackBarViewModel.messageText = 'Server cannot or will not process the request.';
676
675
  this.snackBarViewModel.actionText = 'Bad Request';
677
676
  this.isHttpError = true;
678
677
  break;
@@ -683,19 +682,19 @@ class GenericHttpClient {
683
682
  this.isHttpError = true;
684
683
  break;
685
684
  case HttpStatusCode.InternalServerError:
686
- this.snackBarViewModel.messageText =
687
- 'Server encountered an unexpected condition.';
685
+ this.snackBarViewModel.messageText = 'Server encountered an unexpected condition.';
688
686
  this.snackBarViewModel.actionText = 'Internal server error';
689
687
  this.isHttpError = true;
690
688
  break;
691
689
  case 0:
692
- this.snackBarViewModel.messageText =
693
- 'Not connected to the service.';
690
+ this.snackBarViewModel.messageText = 'Not connected to the service.';
694
691
  this.snackBarViewModel.actionText = 'Service not available';
695
692
  this.isHttpError = true;
696
693
  break;
697
694
  }
695
+ this.logger.error(`Error code : ${HttpStatusCode.Forbidden}`);
698
696
  observer.error(error);
697
+ this.logger.info(`Snackbar condition : ${this.environment.snackBarEnable} && ${this.environment.snackBarEnable} && ${this.isHttpError}`);
699
698
  if (this.environment.snackBarEnable != undefined &&
700
699
  this.environment.snackBarEnable &&
701
700
  this.isHttpError)
@@ -1 +1 @@
1
- {"version":3,"file":"falcon-ng-tailwind.mjs","sources":["../../../../projects/falcon-ng/tailwind/src/lib/component/textbox/textbox.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/textbox/textbox.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/textarea/textarea.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/textarea/textarea.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/select/select.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/select/select.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/date-picker/date-picker.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/date-picker/date-picker.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/radio/radio.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/radio/radio.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/checkbox/checkbox.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/checkbox/checkbox.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/slide-toggle/slide-toggle.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/slide-toggle/slide-toggle.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/slider/slider.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/slider/slider.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/button-toggle/button-toggle.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/button-toggle/button-toggle.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/auto-complete/auto-complete.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/auto-complete/auto-complete.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/chips/chip.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/chips/chip.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/button/button.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/button/button.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/rich-text-editor/rich-text-editor.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/rich-text-editor/rich-text-editor.component.html","../../../../projects/falcon-ng/tailwind/src/lib/model/constant.ts","../../../../projects/falcon-ng/tailwind/src/lib/reactive-field.directive.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-builder/control-builder.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-builder/control-builder.component.html","../../../../projects/falcon-ng/tailwind/src/lib/model/environments.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/http/igeneric-http-client.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/logger.service.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/http/generic-http-client.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/appsetting.service.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/open-id/TokenHelperService.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/open-id/auth.service.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/dialog/dialog.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/dialog/dialog.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/snack-bar/snack-bar.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/snack-bar/snack-bar.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/bottom-sheet/bottom-sheet.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/bottom-sheet/bottom-sheet.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/progress-bar/progress-bar.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/progress-bar/progress-bar.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/progress-spinner/progress-spinner.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/progress-spinner/progress-spinner.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/table/table.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/table/table.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/pagination/pagination.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/pagination/pagination.component.html","../../../../projects/falcon-ng/tailwind/src/lib/falcon-tailwind.module.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/open-id/auth-guard.service.ts","../../../../projects/falcon-ng/tailwind/src/lib/base-form-component.ts","../../../../projects/falcon-ng/tailwind/src/public-api.ts","../../../../projects/falcon-ng/tailwind/src/falcon-ng-tailwind.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-textbox',\n templateUrl: './textbox.component.html',\n styleUrls: ['./textbox.component.scss'],\n standalone: false\n})\nexport class TextboxComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n}\n","<mat-form-field [formGroup]=\"formGroup\" [appearance]=\"control.appearance\" class=\"textbox-form\">\n <mat-label>{{control.label}}</mat-label>\n <input matInput [type]=\"control.type\" [formControlName]=\"control.formControlName\" [class]=\"control.class\"\n [required]=\"formGroup.get(control.formControlName)?.errors !== null && formGroup.get(control.formControlName)?.errors?.['required']\">\n\n <span matPrefix [matTooltip]=\"control.prefix.toolTipText!\"\n [ngClass]=\"{'material-icons': control.prefix.isIcon}\">{{control.prefix.text}}&nbsp;&nbsp;</span>\n <span matSuffix [matTooltip]=\"control.suffix.toolTipText!\"\n [ngClass]=\"{'material-icons': control.suffix.isIcon}\">{{control.suffix.text}}&nbsp;&nbsp;</span>\n <mat-hint *ngIf=\"control.hint.link?.isLink; else elseBlock\">\n <ng-container *ngIf=\"control.hint.link?.queryParams !== undefined; else withoutQueryBlock\">\n <a [routerLink]=\"[control.hint.link?.routerLink]\" [queryParams]=\"{ query: control.hint.link?.queryParams }\"\n routerLinkActive=\"router-link-active\">{{control.hint.text}}</a>\n </ng-container>\n </mat-hint>\n <ng-template #elseBlock>\n <mat-hint>{{control.hint.text}}</mat-hint>\n </ng-template>\n <ng-template #withoutQueryBlock>\n <a [routerLink]=\"[control.hint.link?.routerLink]\" routerLinkActive=\"router-link-active\">{{control.hint.text}}</a>\n </ng-template>\n\n <ng-container *ngFor=\"let validation of control.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"formGroup.get(control.formControlName)?.hasError(validation.name || '')\">{{validation.message}}\n </mat-error>\n </ng-container>\n</mat-form-field>\n","import { Component } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n standalone: false\n})\nexport class TextareaComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n}\n","<mat-form-field [appearance]=\"control.appearance\" [formGroup]=\"formGroup\" [floatLabel]=\"control.floatLabel\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\" class=\"textarea-form\">\n <mat-label>{{control.label}}</mat-label>\n\n <textarea matInput [formControlName]=\"control.formControlName\" [placeholder]=\"control.placeHolder\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [cdkTextareaAutosize]=\"control.textAreaProperty.cdkTextareaAutosize\"\n [cdkAutosizeMinRows]=\"control.textAreaProperty.cdkAutosizeMinRows\"\n [cdkAutosizeMaxRows]=\"control.textAreaProperty.cdkAutosizeMaxRows\" [rows]=\"control.textAreaProperty.rows\"\n [cols]=\"control.textAreaProperty.cols\"></textarea>\n\n <span matPrefix [ngClass]=\"{'material-icons': control.prefix.isIcon}\">{{control.prefix.text}}</span>\n <span matSuffix [ngClass]=\"{'material-icons': control.suffix.isIcon}\">{{control.suffix.text}}</span>\n\n\n <mat-hint>{{control.hint.text}}</mat-hint>\n\n <ng-container *ngFor=\"let validation of control.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"formGroup.get(control.formControlName)?.hasError(validation.name || '')\">{{validation.message}}\n </mat-error>\n </ng-container>\n</mat-form-field>\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatSelectChange } from '@angular/material/select';\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n standalone: false\n})\nexport class SelectComponent implements OnInit {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n @Output() selectionChange: EventEmitter<MatSelectChange> =\n new EventEmitter<MatSelectChange>();\n\n constructor() {}\n\n ngOnInit(): void {\n if (this.formGroup === undefined) {\n this.formGroup = new FormGroup({\n default: new FormControl(),\n });\n }\n }\n\n selectChange($event: any) {\n this.selectionChange.emit($event.value);\n if (this.control.event !== undefined)\n this.control.event.change?.emit($event);\n }\n}\n","<mat-form-field [appearance]=\"control.appearance\" [formGroup]=\"formGroup\" [floatLabel]=\"control.floatLabel\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\" class=\"w-full\">\n <mat-label>{{control.label}}</mat-label>\n <mat-select [multiple]=\"control.selectProperty.multiple\" (selectionChange)=\"selectChange($event)\"\n [formControlName]=\"control.formControlName != undefined ? control.formControlName : 'default'\"\n [placeholder]=\"control.placeHolder\" [ngStyle]=\"control.style\" [ngClass]=\"control.class\" [(value)]=\"control.value\">\n <mat-option *ngFor=\"let item of control.options\" [value]=\"item.key\" [disabled]=\"item.disabled\">\n {{item.value}}\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"control.hint.show\">\n <ng-container *ngIf=\"control.hint.link?.isLink; else elseBlock\">\n <ng-container *ngIf=\"control.hint.link?.queryParams !== undefined; else withoutQueryBlock\">\n <a [routerLink]=\"[control.hint.link?.routerLink]\" [queryParams]=\"{ query: control.hint.link?.queryParams }\"\n routerLinkActive=\"router-link-active\">{{control.hint.text}}</a>\n </ng-container>\n </ng-container>\n <ng-template #elseBlock>\n <span>{{control.hint.text}}</span>\n </ng-template>\n <ng-template #withoutQueryBlock>\n <a [routerLink]=\"[control.hint.link?.routerLink]\" routerLinkActive=\"router-link-active\">{{control.hint.text}}</a>\n </ng-template>\n </mat-hint>\n</mat-form-field>","import { Component } from '@angular/core';\nimport {FormGroup} from \"@angular/forms\";\nimport {BaseControl} from \"@falcon-ng/core\"\n\n@Component({\n selector: 'falcon-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n standalone: false\n})\nexport class DatePickerComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n}\n","<mat-form-field [appearance]=\"control.appearance\" [formGroup]=\"formGroup\"\n [floatLabel]=\"control.floatLabel\" [ngStyle]=\"control.style\"\n [ngClass]=\"control.class\">\n <mat-label>{{control.label}}</mat-label>\n <input matInput [matDatepicker]=\"picker\" [formControlName]=\"control.formControlName\"\n [placeholder]=\"control.placeHolder\" [type]=\"control.type\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [required]=\"formGroup.get(control.formControlName)?.errors !== null && formGroup.get(control.formControlName)?.errors?.['required']\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon *ngIf=\"control.suffix.isIcon\">keyboard_arrow_down</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n <mat-hint>{{control.hint.text}}</mat-hint>\n <ng-container *ngFor=\"let validation of control.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"formGroup.get(control.formControlName)?.hasError(validation.name || '')\">{{validation.message}}\n </mat-error>\n </ng-container>\n</mat-form-field>\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport {FormControl, FormGroup} from '@angular/forms';\nimport {MatRadioChange} from \"@angular/material/radio\";\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n standalone: false\n})\nexport class RadioComponent implements OnInit{\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n @Output() radioGroupChange: EventEmitter<MatRadioChange> =\n new EventEmitter<MatRadioChange>();\n\n ngOnInit(): void {\n console.log(this.control.options)\n if (this.formGroup === undefined) {\n this.formGroup = new FormGroup({\n default: new FormControl(),\n });\n }\n }\n\n radioGroupChangeEvent($event: any) {\n this.radioGroupChange.emit($event.value);\n }\n}\n","<div [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [formGroup]=\"formGroup\">\n <label class=\"radio-label-padding\">{{control.label | titlecase}}</label>\n <mat-radio-group [attr.aria-label]=\"control.label\"\n [labelPosition]=\"control.appearance\"\n [formControlName]=\"control.formControlName != undefined ? control.formControlName : 'default'\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n (change)=\"radioGroupChangeEvent($event)\">\n <mat-radio-button [ngClass]=\"control.class\"\n *ngFor=\"let item of control.options\" [value]=\"item.value\">{{item.viewValue | titlecase}}\n </mat-radio-button>\n </mat-radio-group>\n</div>","import { Component } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {BaseControl} from \"@falcon-ng/core\"\n\n@Component({\n selector: 'falcon-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n standalone: false\n})\nexport class CheckboxComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n change($event: any) {\n if (this.control.event !== undefined)\n this.control?.event?.change?.emit($event);\n }\n}\n","<div [formGroup]=\"formGroup\">\n <mat-checkbox [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [color]=\"control.color != null ? control.color : 'accent'\" [labelPosition]=\"control.labelPosition\"\n [formControlName]=\"control.formControlName\" (change)=\"change($event)\">\n {{control.label}}</mat-checkbox>\n</div>","import { Component } from '@angular/core';\nimport {FormGroup} from \"@angular/forms\";\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-slide-toggle',\n templateUrl: './slide-toggle.component.html',\n styleUrls: ['./slide-toggle.component.scss'],\n standalone: false\n})\nexport class SlideToggleComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n}\n","<div [formGroup]=\"formGroup\">\n <mat-slide-toggle [labelPosition]=\"control.appearance\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [formControlName]=\"control.formControlName\" [color]=\"control.color\">\n {{control.label}}\n </mat-slide-toggle>\n</div>","import { Component } from '@angular/core';\nimport {FormGroup} from \"@angular/forms\";\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n standalone: false\n})\nexport class SliderComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n}\n","<div [ngStyle]=\"control.style\" [ngClass]=\"control.class\" [formGroup]=\"formGroup\">\n<mat-label>{{control.label}}</mat-label>&nbsp;&nbsp;&nbsp;\n <mat-slider\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [color]=\"control.color\"\n [max]=\"control.sliderProperty.max\"\n [min]=\"control.sliderProperty.min\"\n [step]=\"control.sliderProperty.step\">\n <input matSliderThumb [formControlName]=\"control.formControlName\">\n </mat-slider>\n</div>","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {FormControl, FormGroup} from \"@angular/forms\";\nimport {MatButtonToggleChange} from \"@angular/material/button-toggle\";\nimport {BaseControl} from \"@falcon-ng/core\"\n\n@Component({\n selector: 'falcon-button-toggle',\n templateUrl: './button-toggle.component.html',\n styleUrls: ['./button-toggle.component.scss'],\n standalone: false\n})\nexport class ButtonToggleComponent implements OnInit {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n @Output() toggleGroupChange: EventEmitter<MatButtonToggleChange> = new EventEmitter<MatButtonToggleChange>();\n ngOnInit(): void {\n if (this.formGroup === undefined) {\n this.formGroup = new FormGroup({\n default: new FormControl()\n });\n }\n }\n\n toggleChange($event: any) {\n this.toggleGroupChange.emit($event.value);\n }\n}\n","<div [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [formGroup]=\"formGroup\">\n <mat-label [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n *ngIf=\"control.label != undefined\">\n {{control.label | titlecase}}\n </mat-label>\n <mat-button-toggle-group\n [formControlName]=\"control.formControlName != undefined ? control.formControlName : 'default'\"\n [appearance]=\"control.appearance\" [ngStyle]=\"control.style\"\n [ngClass]=\"control.class\" [attr.aria-label]=\"control.label\"\n class=\"botton-toggle\" (change)=\"toggleChange($event)\">\n <mat-button-toggle *ngFor=\"let item of control.options\" [value]=\"item?.value\"\n [ngStyle]=\"control.style\"\n [ngClass]=\"control.class\">\n <mat-icon [ngClass]=\"item?.class\" aria-hidden=\"false\" aria-label=\"item icon\" *ngIf=\"item?.icon != undefined\">\n {{item?.icon}}\n </mat-icon>\n {{item.viewValue | titlecase}}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>","import { Component } from '@angular/core';\nimport {FormControl, FormGroup} from \"@angular/forms\";\nimport {Observable} from \"rxjs\";\nimport { map, startWith } from 'rxjs/operators';\nimport {BaseControl,IOptions} from \"@falcon-ng/core\"\n@Component({\n selector: 'falcon-auto-complete',\n templateUrl: './auto-complete.component.html',\n styleUrls: ['./auto-complete.component.scss'],\n standalone: false\n})\nexport class AutoCompleteComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n autoCompleteControl = new FormControl();\n constructor() { }\n filteredOptions!: Observable<IOptions[]>;\n\n ngOnInit() {\n this.filteredOptions = this.autoCompleteControl.valueChanges.pipe(startWith(''),map(value => this._filter(value)));\n }\n\n private _filter(value: string): IOptions[] {\n const filterValue = value.toLowerCase();\n return this.control.options.filter((option: IOptions) => option?.key?.toLowerCase().includes(filterValue));\n }\n\n optionSelected(value: any) {\n this.formGroup?.get(this.control?.formControlName)?.setValue(value);\n }\n}\n","<mat-form-field *ngIf=\"control.appearance != 'plain'; else plainInput\" [appearance]=\"control.appearance\"\n [formGroup]=\"formGroup\" [ngStyle]=\"control.style\" [ngClass]=\"control.class\">\n <mat-label>{{control.label}}</mat-label>\n <input matInput [formControl]=\"autoCompleteControl\" [formControlName]=\"control.formControlName\"\n [placeholder]=\"control.placeHolder\" [type]=\"control.type\" [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [matAutocomplete]=\"auto\"\n [required]=\"formGroup.get(control.formControlName)?.errors !== null && formGroup.get(control.formControlName)?.errors?.['required']\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)='optionSelected($event.option.viewValue)'>\n <mat-option *ngFor=\"let item of filteredOptions | async\" [value]=\"item.key\">\n {{item.value}}\n </mat-option>\n </mat-autocomplete>\n\n <span matPrefix [matTooltip]=\"control.prefix.toolTipText!\"\n [ngClass]=\"{'material-icons': control.prefix.isIcon}\">{{control.prefix.text}} &nbsp;&nbsp;</span>\n <span matSuffix [matTooltip]=\"control.suffix.toolTipText!\"\n [ngClass]=\"{'material-icons': control.suffix.isIcon}\">{{control.suffix.text}} &nbsp;&nbsp;</span>\n\n <mat-hint>{{control.hint.text}}</mat-hint>\n <ng-container *ngFor=\"let validation of control.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"formGroup.get(control.formControlName)?.hasError(validation?.name || '')\">{{validation.message}}\n </mat-error>\n </ng-container>\n</mat-form-field>\n\n<ng-template #plainInput>\n <div [formGroup]=\"formGroup\" [ngStyle]=\"control.style\" [ngClass]=\"control.class\">\n <input type=\"text\" [formControl]=\"autoCompleteControl\" [formControlName]=\"control.formControlName\"\n [placeholder]=\"control.placeHolder\" [type]=\"control.type\" [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [matAutocomplete]=\"auto\"\n [required]=\"formGroup.get(control.formControlName)?.errors !== null && formGroup.get(control.formControlName)?.errors?.['required']\"\n class=\"bg-gray-200 appearance-none border-2 border-gray-200 rounded w-full py-2 px-4 text-gray-700 leading-tight focus:outline-none focus:bg-white focus:border-purple-500\">\n </div>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)='optionSelected($event.option.viewValue)'>\n <mat-option *ngFor=\"let item of filteredOptions | async\" [value]=\"item.key\">\n {{item.value}}\n </mat-option>\n </mat-autocomplete>\n</ng-template>\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { Observable } from 'rxjs';\nimport { IOptions } from '@falcon-ng/core';\nimport { MatAutocomplete, MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { map, startWith } from 'rxjs/operators';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n standalone: false,\n})\nexport class ChipComponent implements OnInit {\n @Input() control!: BaseControl<any>;\n @Input() formGroup!: FormGroup;\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\n selectable = true;\n removable = true;\n addOnBlur = true;\n filteredOptions: Observable<IOptions[]>;\n autoCompleteControl = new FormControl('');\n private items!: FormArray;\n\n @ViewChild('chipAutoCompleteInput')\n chipAutoCompleteInput!: ElementRef<HTMLInputElement>;\n @ViewChild('chipTextInput') chipTextInput!: ElementRef<HTMLInputElement>;\n @ViewChild('auto') matAutocomplete!: MatAutocomplete;\n\n constructor(private fb: FormBuilder) {\n this.filteredOptions = this.autoCompleteControl.valueChanges.pipe(\n startWith(null),\n map((value: string | null) => (value ? this._filter(value) : this.control?.options.slice()))\n );\n }\n\n ngOnInit() {\n setTimeout(() => {\n if (this.control.chipSelectedOptions.length > 0) {\n this.items = this.formGroup.controls[this.control.formControlName] as FormArray;\n this.control.chipSelectedOptions.forEach((value: any) => {\n this.items.controls.push(this.createItem(value.value));\n });\n }\n });\n }\n\n add(event: MatChipInputEvent): void {\n const input = event.input;\n const value = event.value;\n if ((value || '').trim()) {\n this.control.chipSelectedOptions.push({\n key: value.trim(),\n value: value.trim(),\n });\n this.items = this.formGroup.get(this.control.formControlName) as FormArray;\n this.items.push(this.createItem(value));\n }\n if (input) {\n input.value = '';\n }\n }\n\n createItem(value: String): FormGroup {\n return this.fb.group({\n key: value,\n value: value,\n });\n }\n\n remove(option: IOptions): void {\n const index = this.control.chipSelectedOptions.indexOf(option);\n if (index >= 0) {\n this.control.chipSelectedOptions.splice(index, 1);\n this.items.removeAt(index);\n }\n }\n\n optionSelected(event: MatAutocompleteSelectedEvent): void {\n this.control.chipSelectedOptions.push({\n key: event.option.value,\n value: event.option.value,\n });\n this.items = this.formGroup.get(this.control.formControlName) as FormArray;\n this.items.push(this.createItem(event.option.value));\n this.chipAutoCompleteInput.nativeElement.value = '';\n this.formGroup.get(this.control.formControlName)?.setValue(null);\n }\n\n private _filter(value: string): any {\n if (value !== null) {\n const filterValue = value.toLowerCase();\n return this.control?.options?.filter((option: IOptions) =>\n option.value.toLowerCase().includes(filterValue)\n );\n }\n }\n\n drop(event: CdkDragDrop<IOptions[]>) {\n moveItemInArray(this.control.options, event.previousIndex, event.currentIndex);\n }\n\n keyboardEnterEvent(event: any): void {\n if (this.control.event !== undefined) this.control.event.keyboardEnter?.emit(event);\n this.chipTextInput.nativeElement.value = '';\n }\n}\n","<ng-container [ngSwitch]=\"control.type\">\n <mat-form-field class=\"chip-list\" *ngSwitchCase=\"'search'\" [appearance]=\"control.appearance\" [formGroup]=\"formGroup\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\">\n <mat-label>{{control.label}}</mat-label>\n <mat-chip-grid #chipGrid aria-label=\"item selection\">\n <mat-chip-row *ngFor=\"let option of control.chipSelectedOptions\" [removable]=\"removable\"\n (removed)=\"remove(option)\">\n {{option.value}}\n <mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\n </mat-chip-row>\n\n <input matInput #chipAutoCompleteInput [formControl]=\"autoCompleteControl\"\n [formArrayName]=\"control.formControlName\" [placeholder]=\"control.placeHolder\" [ngStyle]=\"control.style\"\n [ngClass]=\"control.class\" [matAutocomplete]=\"auto\" [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"add($event)\"\n [required]=\"formGroup.get(control.formControlName)?.errors !== null && formGroup.get(control.formControlName)?.errors?.['required']\"\n (keyup.enter)=\"keyboardEnterEvent($event)\">\n\n </mat-chip-grid>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"optionSelected($event)\">\n <mat-option *ngFor=\"let item of filteredOptions | async\" [value]=\"item.key\">\n {{item.value}}\n </mat-option>\n </mat-autocomplete>\n <mat-hint>\n <ng-container *ngIf=\"control.hint.link?.isLink; else elseBlock\">\n <ng-container *ngIf=\"control.hint.link?.queryParams !== undefined; else withoutQueryBlock\">\n <a [routerLink]=\"[control.hint.link?.routerLink]\" [queryParams]=\"{ query: control.hint.link?.queryParams }\"\n routerLinkActive=\"router-link-active\">{{control.hint.text}}</a>\n </ng-container>\n </ng-container>\n <ng-template #elseBlock>\n <span>{{control.hint.text}}</span>\n </ng-template>\n <ng-template #withoutQueryBlock>\n <a [routerLink]=\"[control.hint.link?.routerLink]\"\n routerLinkActive=\"router-link-active\">{{control.hint.text}}</a>\n </ng-template>\n </mat-hint>\n </mat-form-field>\n\n <mat-form-field class=\"chip-list\" *ngSwitchCase=\"'text'\" [appearance]=\"control.appearance\" [formGroup]=\"formGroup\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\">\n <mat-label>{{control.label}}</mat-label>\n <mat-chip-grid #chipGrid aria-label=\"item selection\">\n <mat-chip-row *ngFor=\"let option of control.chipSelectedOptions\" [value]=\"selectable\" [removable]=\"removable\"\n (removed)=\"remove(option)\">\n {{option?.value}}\n <mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\n </mat-chip-row>\n\n <input matInput #chipTextInput [formArrayName]=\"control.formControlName\" multiple\n [placeholder]=\"control.placeHolder\" [matChipInputFor]=\"chipGrid\" [ngStyle]=\"control.style\"\n [ngClass]=\"control.class\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"addOnBlur\" (matChipInputTokenEnd)=\"add($event)\"\n [required]=\"formGroup.get(control.formControlName)?.errors !== null && formGroup.get(control.formControlName)?.errors?.['required']\"\n (keyup.enter)=\"keyboardEnterEvent($event)\">\n\n </mat-chip-grid>\n </mat-form-field>\n\n <mat-chip-listbox aria-label=\"Chips selection\" *ngSwitchDefault>\n <mat-chip color=\"{{control.color}}\" selected>{{control.label}}</mat-chip>\n </mat-chip-listbox>\n\n\n <mat-chip-set class=\"chip-list\" cdkDropList cdkDropListOrientation=\"horizontal\" (cdkDropListDropped)=\"drop($event)\"\n *ngSwitchCase=\"'dragDrop'\" class=\"example-chip\">\n <mat-chip class=\"example-box\" cdkDrag *ngFor=\"let option of control.options\">\n {{option?.value}}\n </mat-chip>\n </mat-chip-set>\n\n</ng-container>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.css'],\n standalone: false,\n})\nexport class ButtonComponent {\n @Input() control!: BaseControl<string>;\n @Input() formGroup!: FormGroup;\n @Output() btnClick = new EventEmitter<string>();\n childBtnClick() {\n this.btnClick.emit('Button Click Event');\n }\n}\n","<div [ngStyle]=\"control.style\" [ngClass]=\"control.class\">\n <ng-container [ngSwitch]=\"control.appearance\">\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [color]=\"control.color\"\n [ngClass]=\"control.class\" [ngStyle]=\"control.style\" mat-button *ngSwitchCase=\"0\">\n <mat-icon *ngIf=\"control.suffix.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon>&nbsp;{{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-raised-button *ngSwitchCase=\"1\">\n <mat-icon *ngIf=\"control.suffix.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon>&nbsp;{{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-stroked-button *ngSwitchCase=\"2\">\n <mat-icon *ngIf=\"control.suffix.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon>&nbsp;{{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-flat-button *ngSwitchCase=\"3\">\n <mat-icon *ngIf=\"control.suffix.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon>&nbsp;{{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-icon-button [attr.aria-label]=\"control.label\"\n *ngSwitchCase=\"4\">\n <mat-icon>{{control.label}}</mat-icon>\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-fab [attr.aria-label]=\"control.label\"\n *ngSwitchCase=\"5\">\n <mat-icon>{{control.label}}</mat-icon>\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-mini-fab [attr.aria-label]=\"control.label\"\n *ngSwitchCase=\"6\">\n <mat-icon>{{control.label}}</mat-icon>\n </button>\n <a mat-stroked-button *ngSwitchCase=\"7\" [ngClass]=\"control.class\" [ngStyle]=\"control.style\"\n routerLink=\"[]\">{{control.label}}</a>\n <a mat-stroked-button *ngSwitchCase=\"8\" [ngClass]=\"control.class\" [ngStyle]=\"control.style\"\n href=\"{{control.value}}\">{{control.label}}</a>\n </ng-container>\n</div>","import {Component, Input} from '@angular/core';\nimport {FormGroup} from \"@angular/forms\";\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'lib-rich-text-editor',\n templateUrl: './rich-text-editor.component.html',\n styleUrls: ['./rich-text-editor.component.scss'],\n standalone: false\n})\nexport class RichTextEditorComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n}\n","<ng-container [formGroup]=\"formGroup\">\n <mat-label>{{control.label}}</mat-label>\n <angular-editor [formControlName]=\"control.formControlName\" [config]=\"control.editorProperty\">\n </angular-editor>\n <mat-hint>{{control.hint.text}}</mat-hint>\n <ng-container *ngFor=\"let validation of control.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"formGroup.get(control.formControlName)?.hasError(validation?.name || '')\">{{validation.message}}\n </mat-error>\n </ng-container>\n</ng-container>\n","import { TextboxComponent } from '../component/textbox/textbox.component';\nimport { TextareaComponent } from '../component/textarea/textarea.component';\nimport { SelectComponent } from '../component/select/select.component';\nimport { DatePickerComponent } from '../component/date-picker/date-picker.component';\nimport { RadioComponent } from '../component/radio/radio.component';\nimport { CheckboxComponent } from '../component/checkbox/checkbox.component';\nimport { SlideToggleComponent } from '../component/slide-toggle/slide-toggle.component';\nimport { SliderComponent } from '../component/slider/slider.component';\nimport { ButtonToggleComponent } from '../component/button-toggle/button-toggle.component';\nimport { AutoCompleteComponent } from '../component/auto-complete/auto-complete.component';\nimport { ChipComponent } from '../component/chips/chip.component';\nimport {ButtonComponent} from \"../component/button/button.component\";\nimport {RichTextEditorComponent} from \"../component/rich-text-editor/rich-text-editor.component\";\nexport class Constant {\n public static ComponentMapper = {\n textbox: TextboxComponent,\n textarea: TextareaComponent,\n select: SelectComponent,\n datepicker: DatePickerComponent,\n radio: RadioComponent,\n checkbox: CheckboxComponent,\n button: ButtonComponent,\n slideToggle: SlideToggleComponent,\n slider: SliderComponent,\n buttonToggle: ButtonToggleComponent,\n autocomplete: AutoCompleteComponent,\n chip: ChipComponent,\n editor: RichTextEditorComponent,\n divider: RichTextEditorComponent\n };\n}\n","import {ComponentRef, Directive, Input, OnInit, ViewContainerRef} from '@angular/core';\nimport {FormGroup} from \"@angular/forms\";\nimport {Constant} from \"./model/constant\";\nimport { BaseControl } from '@falcon-ng/core';\n\n@Directive({\n selector: '[reactiveField]',\n standalone: false\n})\nexport class ReactiveFieldDirective implements OnInit {\n @Input() control!: BaseControl<string>;\n @Input() formGroup!: FormGroup;\n private componentRef!: ComponentRef<any>;\n constructor(private viewContainerRef: ViewContainerRef) {\n }\n\n ngOnInit(): void {\n if (this.control !== undefined) {\n this.componentRef = this.viewContainerRef.createComponent(Constant.ComponentMapper[this.control.controlType]);\n this.componentRef.instance.control = this.control;\n this.componentRef.instance.formGroup = this.formGroup;\n }\n }\n\n}\n","import {Component, Input} from '@angular/core';\nimport {FormGroup} from \"@angular/forms\";\nimport { Layout } from '../model/layout';\n\n@Component({\n selector: 'control-builder',\n templateUrl: './control-builder.component.html',\n styleUrls: ['./control-builder.component.scss'],\n standalone: false\n})\nexport class ControlBuilderComponent {\n @Input() layout!: Layout<string>;\n @Input() formGroup!: FormGroup;\n}\n","<div [class]=\"layout.class\">\n <ng-container *ngFor=\"let control of layout.baseControls\">\n <ng-container reactiveField [control]=\"control\" [formGroup]=\"formGroup\"></ng-container>\n </ng-container>\n</div>","export abstract class EnvironmentViewModel {\n abstract readonly production: boolean;\n abstract readonly openID?: IOpenIdViewModel;\n abstract readonly baseUrl?: string;\n abstract readonly snackBarEnable?: boolean;\n}\n\n/**\n * @description\n * Interface use for an app setting configuration for Open Id Client setting.\n */\nexport declare interface IOpenIdViewModel {\n authority?: string;\n client_id?: string;\n redirect_uri?: string;\n response_type?: string;\n scope?: string;\n silent_redirect_uri?: string;\n post_logout_redirect_uri?: string;\n filterProtocolClaims?: boolean;\n loadUserInfo?: boolean;\n automaticSilentRenew?: boolean;\n monitorSession?: boolean;\n accessTokenExpiringNotificationTime?: number;\n checkSessionInterval?: number;\n silentRequestTimeout?: number;\n}\n","import { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { IRequestOptions } from '@falcon-ng/core';\nimport { HttpClient } from '@angular/common/http';\n@Injectable()\nexport abstract class IGenericHttpClient<T> {\n /**\n * @description\n * Generic Http GET method to Get the response and bind to the view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpService.HttpGet(\"get_url\").subscribe(data => {\n * console.log('success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n abstract get(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T>;\n\n /**\n * @description\n * Generic Http post method to post the view model and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpService.Post(post_url,post-view-model\").subscribe(data => {\n * console.log('data is not success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n abstract post(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T>;\n\n /**\n * @description\n * Generic Http put method to post the view model and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpService.Put(put_url,post-view-model).subscribe(data => {\n * console.log('data is not success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n abstract put(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T>;\n\n /**\n * @description\n * Generic Http patch method to patch the view model and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpService.Patch(put_url,post-view-model).subscribe(data => {\n * console.log('data is not success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n abstract patch(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T>;\n\n /**\n * @description\n * Generic Http Delete method to Delete the item and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpClientService.Delete(this.deleteUserUrl).subscribe(item => {\n * console.log('success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n abstract delete(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T>;\n\n /**\n * @description\n * Gets the underlying HttpClient instance\n * @returns {HttpClient}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpClientService.getHttpClient();\n * ```\n */\n abstract getHttpClient(): HttpClient;\n}\n","import { Injectable } from '@angular/core';\nimport { AppSettingService } from './appsetting.service';\nimport {LoggingLevel, IAppSettingViewModel} from \"@falcon-ng/core\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoggerService {\n private initialized: boolean = false;\n private _level: LoggingLevel = LoggingLevel.Warnings;\n constructor() { }\n\n async initialize(appSettings: IAppSettingViewModel): Promise<void> {\n if (this.initialized) return;\n this._level = appSettings.loggingLevel as LoggingLevel;\n this.initialized = true;\n }\n\n private log(message: any, level = LoggingLevel.Warnings, ...optionalParams: any[]) {\n if (this.shouldLog(level)) {\n switch (level) {\n case LoggingLevel.Errors:\n console.error(message, optionalParams);\n break;\n case LoggingLevel.Warnings:\n console.warn(message, optionalParams);\n break;\n case LoggingLevel.Info:\n console.info(message, optionalParams);\n break;\n default:\n console.debug(message, optionalParams);\n }\n }\n }\n\n private shouldLog(level: LoggingLevel) {\n if (this._level === LoggingLevel.None) {\n return false;\n } else if (this._level === LoggingLevel.Errors) {\n return level === LoggingLevel.Errors;\n } else if (this._level === LoggingLevel.Warnings) {\n return level === LoggingLevel.Errors || level === LoggingLevel.Warnings;\n } else if (this._level === LoggingLevel.Info) {\n return level === LoggingLevel.Errors || level === LoggingLevel.Warnings || level === LoggingLevel.Info;\n } else {\n return true;\n }\n }\n\n error(message: any, ...optionalParams: any[]) {\n this.log(message, LoggingLevel.Errors, optionalParams);\n }\n\n warning(message: any, ...optionalParams: any[]) {\n this.log(message, LoggingLevel.Warnings, optionalParams);\n }\n\n info(message: any, ...optionalParams: any[]) {\n this.log(message, LoggingLevel.Info, optionalParams);\n }\n\n verbose(message: any, ...optionalParams: any[]) {\n this.log(message, LoggingLevel.Verbose, optionalParams);\n }\n}\nexport function loggerServiceFactory(loggerService: LoggerService, appSettings: AppSettingService) {\n return async () => {\n appSettings.isServiceReady.subscribe(item => {\n if (item)\n loggerService.initialize(appSettings.getAppsettingValue() as IAppSettingViewModel);\n });\n }\n};\n","import {\n HttpClient,\n HttpRequest,\n HttpEventType,\n HttpEvent,\n HttpStatusCode,\n} from '@angular/common/http';\nimport { Observable, from } from 'rxjs';\nimport { IGenericHttpClient } from './igeneric-http-client';\nimport { Injectable } from '@angular/core';\nimport { IRequestOptions, SnackbarModel, HttpMethod } from '@falcon-ng/core';\nimport { LoggerService } from '../logger.service';\nimport { EnvironmentViewModel } from '../../model/environments';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n@Injectable({\n providedIn: 'root',\n})\nexport class GenericHttpClient<T> implements IGenericHttpClient<T> {\n private snackBarViewModel: SnackbarModel = {} as SnackbarModel;\n private isHttpError: boolean = false;\n\n constructor(\n private httpClient: HttpClient,\n private environment: EnvironmentViewModel,\n private _snackBar: MatSnackBar,\n private logger: LoggerService\n ) {}\n\n /**\n * @description\n * Gets the underlying HttpClient instance\n * @returns {HttpClient}\n */\n public getHttpClient(): HttpClient {\n return this.httpClient;\n }\n\n /**\n * @description\n * Generic Http GET method to Get the response and bind to the view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpService.Get(\"get_url\").subscribe(data => {\n * console.log('success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n public get(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T> {\n return this.request<T>(HttpMethod.Get, destinationUrl, options);\n }\n\n /**\n * @description\n * Generic Http post method to post the view model and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpClientService.Post(post-url,post-view-model).subscribe(item => {\n * console.log(item);\n * },\n * err => {\n * console.log(err);\n * });\n * ```\n */\n public post(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T> {\n return this.request<T>(HttpMethod.Post, destinationUrl, options);\n }\n\n /**\n * @description\n * Generic Http Put method to post the view model and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpClientService.Put(post-url, post-view-model).subscribe(item => {\n * console.log(item);\n * },\n * err => {\n * console.log(err);\n * });\n * ```\n */\n public put(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T> {\n return this.request<T>(HttpMethod.Put, destinationUrl, options);\n }\n\n /**\n * @description\n * Generic Http post method to post the view model and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpClientService.Post(post-url,post-view-model).subscribe(item => {\n * console.log(item);\n * },\n * err => {\n * console.log(err);\n * });\n * ```\n */\n public patch(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T> {\n return this.request<T>(HttpMethod.Patch, destinationUrl, options);\n }\n\n /**\n * @description\n * Generic Http Delete method to Delete the item and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpClientService.Delete(this.deleteUserUrl).subscribe(item => {\n * console.log('success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n public delete(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T> {\n return this.request<T>(HttpMethod.Delete, destinationUrl, options);\n }\n\n /**\n * @description\n * Http request method to accept different method type and params\n * @param {string} method Http methods - GET, POST, PUT, DELETE.\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.request<T>(HttpMethod.Delete, destinationUrl, options);\n * ```\n */\n private request<T>(\n method: string,\n url: string,\n options?: IRequestOptions\n ): Observable<T> {\n return Observable.create((observer: any) => {\n let destinationUrl = '';\n if (this.environment.baseUrl != undefined)\n destinationUrl = this.environment.baseUrl + url;\n else destinationUrl = url;\n this.httpClient\n .request<T>(new HttpRequest(method, destinationUrl, options))\n .subscribe(\n (response: any) => {\n const responsTye = response as HttpEvent<any>;\n switch (responsTye.type) {\n case HttpEventType.Sent:\n this.logger.info('Http Client : Sent ->', 'Request sent!');\n break;\n case HttpEventType.ResponseHeader:\n this.logger.info(\n 'Http Client : ResponseHeader ->',\n 'Response header received!'\n );\n break;\n case HttpEventType.DownloadProgress:\n const kbLoaded = Math.round(responsTye.loaded / 1024);\n this.logger.info(\n 'Http Client : DownloadProgress ->',\n `Download in progress! ${kbLoaded}Kb loaded`\n );\n break;\n case HttpEventType.Response:\n observer.next(response.body);\n this.logger.info(\n 'Http Client : Response -> 😺 Done!',\n responsTye.body\n );\n }\n },\n error => {\n switch (error.status) {\n case HttpStatusCode.Forbidden:\n // observer.complete();\n this.snackBarViewModel.messageText =\n 'Access to the requested resource is forbidden.';\n this.snackBarViewModel.actionText = 'Forbidden';\n this.isHttpError = true;\n break;\n case HttpStatusCode.BadRequest:\n this.snackBarViewModel.messageText =\n 'Server cannot or will not process the request.';\n this.snackBarViewModel.actionText = 'Bad Request';\n this.isHttpError = true;\n break;\n case HttpStatusCode.Unauthorized:\n this.snackBarViewModel.messageText =\n 'Request has not been applied because it lacks valid authentication credentials.';\n this.snackBarViewModel.actionText = 'Unauthorized';\n this.isHttpError = true;\n break;\n case HttpStatusCode.InternalServerError:\n this.snackBarViewModel.messageText =\n 'Server encountered an unexpected condition.';\n this.snackBarViewModel.actionText = 'Internal server error';\n this.isHttpError = true;\n break;\n case 0:\n this.snackBarViewModel.messageText =\n 'Not connected to the service.';\n this.snackBarViewModel.actionText = 'Service not available';\n this.isHttpError = true;\n break;\n }\n observer.error(error);\n if (\n this.environment.snackBarEnable != undefined &&\n this.environment.snackBarEnable &&\n this.isHttpError\n )\n this._snackBar.open(\n this.snackBarViewModel.messageText,\n this.snackBarViewModel.actionText\n );\n }\n );\n });\n }\n}\n","import {Injectable} from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport {Subject, Observable, from} from 'rxjs';\nimport {LoggerService} from './logger.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppSettingService {\n static APP_SETTINGS_LOADED = \"APP_SETTINGS_LOADED\";\n private listeners: any;\n initialized: boolean = false;\n private eventsSubject: Subject<any>;\n public isServiceReady: Subject<boolean> = new Subject<boolean>();\n private events: Observable<any>;\n private appSettings: any;\n\n constructor(private http: HttpClient, private logger: LoggerService) {\n this.listeners = {};\n this.eventsSubject = new Subject<any>();\n\n this.events = from(this.eventsSubject);\n this.events.subscribe(\n ({name, args}) => {\n if (this.listeners[name]) {\n for (let listener of this.listeners[name]) {\n listener(...args);\n }\n }\n });\n }\n\n async load() {\n if (this.initialized) return;\n let data = await this.http.get('assets/appsetting.json').toPromise();\n this.appSettings = data;\n this.initialized = true;\n this.isServiceReady.next(this.initialized);\n this.logger.info(\"[AppSettingService] load --> isServiceReady\", this.initialized);\n }\n\n on(name: any, listener: any) {\n if (!this.listeners[name]) {\n this.listeners[name] = [];\n }\n\n this.listeners[name].push(listener);\n }\n\n public getAppsettingValue<T>(): T | null {\n return this.appSettings ? <T>this.appSettings : null;\n }\n}\n\nexport function appSettingsFactory(appSettings: AppSettingService) {\n return async () => await appSettings.load();\n};","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenHelperService {\n constructor() { }\n\n getTokenExpirationDate(dataIdToken: any): Date {\n if (!dataIdToken.hasOwnProperty('exp')) {\n return new Date();\n }\n\n const date = new Date(0); // The 0 here is the key, which sets the date to the epoch\n date.setUTCSeconds(dataIdToken.exp);\n\n return date;\n }\n\n getPayloadFromToken(token: any, encode: boolean) {\n let data = {};\n if (typeof token !== 'undefined') {\n const encoded = token.split('.')[1];\n if (encode) {\n return encoded;\n }\n data = JSON.parse(this.urlBase64Decode(encoded));\n }\n\n return data;\n }\n\n getHeaderFromToken(token: any, encode: boolean) {\n let data = {};\n if (typeof token !== 'undefined') {\n const encoded = token.split('.')[0];\n if (encode) {\n return encoded;\n }\n data = JSON.parse(this.urlBase64Decode(encoded));\n }\n\n return data;\n }\n\n getSignatureFromToken(token: any, encode: boolean) {\n let data = {};\n if (typeof token !== 'undefined') {\n const encoded = token.split('.')[2];\n if (encode) {\n return encoded;\n }\n data = JSON.parse(this.urlBase64Decode(encoded));\n }\n\n return data;\n }\n\n urlBase64Decode(str: string) {\n let output = str.replace('-', '+').replace('_', '/');\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += '==';\n break;\n case 3:\n output += '=';\n break;\n default:\n throw Error('Illegal base64url string!');\n }\n\n return window.atob(output);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LoggerService } from '../logger.service';\nimport { TokenHelperService } from './TokenHelperService';\nimport { EnvironmentViewModel } from '../../model/environments';\nimport { AppSettingService } from '../appsetting.service';\nimport {\n User,\n UserManager,\n UserManagerSettings,\n UserProfile,\n} from 'oidc-client-ts';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n static USER_LOADED_EVENT = 'USER_LOADED';\n static USER_UNLOADED_EVENT = 'USER_UNLOADED';\n\n private initialized: boolean = false;\n public userManager!: UserManager;\n private user: any;\n public settings!: UserManagerSettings;\n\n private accessToken!: Object;\n private signingOut: boolean = false;\n\n constructor(\n private logger: LoggerService,\n private tokenHelperService: TokenHelperService\n ) {}\n\n async initialize(environment: EnvironmentViewModel): Promise<void> {\n if (this.initialized) return;\n this.settings = this.getClientSettings(environment);\n this.userManager = new UserManager(this.settings);\n this.userManager.events.addUserLoaded(user => {\n this.user = user;\n });\n\n this.userManager.events.addAccessTokenExpiring(() => {\n this.logger.info('IdSvr token expiring ' + new Date().toLocaleString());\n });\n\n this.userManager.events.addAccessTokenExpired(() => {\n this.logger.info('IdSvr token expired ' + new Date().toLocaleString());\n this.logout(false);\n });\n\n this.userManager.events.addSilentRenewError(e => {\n this.logger.error(\n 'IdSvr silent renew error ' + e.message + new Date().toLocaleString()\n );\n this.logout(false);\n });\n\n this.userManager.events.addUserLoaded(user => {\n this.logger.info(\n 'IdSvr user session is ready ' + new Date().toLocaleString()\n );\n this.accessToken = this.tokenHelperService.getPayloadFromToken(\n user.access_token,\n false\n );\n this.user = user;\n });\n\n this.userManager.events.addUserUnloaded(() => {\n this.logger.info(\n 'IdSvr user session has ended ' + new Date().toLocaleString()\n );\n\n if (!this.signingOut) {\n this.startAuthentication(\n window.location.pathname + window.location.search\n );\n }\n });\n\n this.userManager.events.addUserSignedOut(() => {\n this.logger.info('IdSvr user signed out ' + new Date().toLocaleString());\n this.logout(false);\n });\n\n this.user = await this.userManager.getUser();\n this.initialized = true;\n }\n\n public isLoggedIn(): boolean {\n return this.user != null && !this.user.expired;\n }\n\n public getUser(): Promise<User | null> {\n return this.userManager.getUser();\n }\n\n public getProfile(): UserProfile {\n return this.user.profile;\n }\n\n public getClaims(): UserProfile {\n return this.user.profile;\n }\n\n public getAuthorizationHeaderValue(): string {\n if (this.user != null)\n return `${this.user.token_type} ${this.user.access_token}`;\n return '';\n }\n\n getAccessToken(): any {\n return (\n this.accessToken ||\n this.tokenHelperService.getPayloadFromToken(this.user.access_token, false)\n );\n }\n\n async startAuthentication(returnUrl: string): Promise<void> {\n this.logger.info('[AuthService] startAuthentication', returnUrl);\n await this.userManager.clearStaleState();\n await this.userManager.signinRedirect().catch(err => {\n //this.log.debug(\"IdSvr sign in failed\", err);\n return err;\n });\n }\n\n public login(): Promise<void> {\n return this.userManager.signinRedirect();\n }\n\n public renewToken(): Promise<User | null> {\n return this.userManager.signinSilent();\n }\n\n public logout(signoutRedirect?: boolean): Promise<void> {\n if (signoutRedirect === undefined || signoutRedirect !== false) {\n this.signingOut = true;\n signoutRedirect = true;\n }\n\n return this.userManager.signoutRedirect();\n }\n\n private getClientSettings(\n environment: EnvironmentViewModel\n ): UserManagerSettings {\n return {\n authority: environment?.openID?.authority as string,\n client_id: environment?.openID?.client_id as string,\n redirect_uri: environment?.openID?.redirect_uri as string,\n post_logout_redirect_uri: environment?.openID?.post_logout_redirect_uri,\n response_type: environment?.openID?.response_type,\n scope: environment?.openID?.scope,\n filterProtocolClaims: environment?.openID?.filterProtocolClaims,\n loadUserInfo: true,\n monitorSession: true,\n silent_redirect_uri: environment?.openID?.silent_redirect_uri,\n automaticSilentRenew: environment?.openID?.automaticSilentRenew,\n accessTokenExpiringNotificationTimeInSeconds: 2,\n checkSessionIntervalInSeconds: 2,\n silentRequestTimeoutInSeconds: 2,\n };\n }\n\n async isServiceReady(): Promise<boolean> {\n return new Promise(async (resolve, reject) => {\n if (this.initialized) {\n this.logger.info('[AuthService] isServiceReady', true);\n resolve(true);\n } else {\n this.logger.info('[AuthService] isServiceReady', false);\n reject(false);\n }\n });\n }\n}\n\nexport function authServiceFactory(\n authService: AuthService,\n appSettings: AppSettingService,\n environment: EnvironmentViewModel\n) {\n return async () => {\n appSettings.isServiceReady.subscribe(item => {\n if (item) authService.initialize(environment);\n });\n };\n}\n","import {Component, Inject} from '@angular/core';\nimport {IDialogData} from \"@falcon-ng/core\";\nimport {MAT_DIALOG_DATA} from \"@angular/material/dialog\";\n@Component({\n selector: 'lib-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n standalone: false\n})\nexport class DialogComponent {\n constructor(@Inject(MAT_DIALOG_DATA) public data: IDialogData) {}\n}\n","<span mat-dialog-title>{{data.title}}</span>\n<mat-divider></mat-divider>\n<div mat-dialog-content>\n <span class=\"mat-h3\">{{data.bodyMessage}}</span>\n</div>\n<mat-divider></mat-divider>\n<div mat-dialog-actions>\n <button mat-raised-button [mat-dialog-close]=\"\" cdkFocusInitial>{{data.cancelBtnText}}</button>\n <button mat-raised-button [color]=\"'warn'\" [mat-dialog-close]=\"data\">\n {{data.mainbtnText}}\n </button>\n </div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-snack-bar',\n templateUrl: './snack-bar.component.html',\n styleUrls: ['./snack-bar.component.scss'],\n standalone: false\n})\nexport class SnackBarComponent {\n\n}\n","<span>Pizza party!!! 🍕</span>","import {Component, Inject} from '@angular/core';\nimport {MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef} from \"@angular/material/bottom-sheet\";\n\n@Component({\n selector: 'lib-bottom-sheet',\n templateUrl: './bottom-sheet.component.html',\n styleUrls: ['./bottom-sheet.component.scss'],\n standalone: false\n})\nexport class BottomSheetComponent {\n constructor(private _bottomSheetRef: MatBottomSheetRef<BottomSheetComponent>, @Inject(MAT_BOTTOM_SHEET_DATA) public data: any) { }\n\n click(event: MouseEvent, item : any): void {\n this._bottomSheetRef.dismiss(item);\n event.preventDefault();\n }\n}\n","<mat-nav-list>\n <ng-container *ngFor=\"let item of data\">\n <a [href]=\"item.link\" mat-list-item (click)=\"click($event,item)\">\n <span matListItemTitle>{{item.levelOneText}}</span>\n <span matLine>{{item.levelTwoText}}</span>\n </a>\n </ng-container>\n\n</mat-nav-list>\n","import {Component, Input} from '@angular/core';\nimport {ThemePalette} from \"@angular/material/core\";\nimport {ProgressBarMode} from \"@angular/material/progress-bar\";\n\n@Component({\n selector: 'falcon-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n standalone: false\n})\nexport class ProgressBarComponent {\n @Input() bufferValue!: number;\n @Input() color: ThemePalette;\n @Input() mode!: ProgressBarMode;\n @Input() value!: number;\n}\n","<mat-progress-bar [mode]=\"mode\" [bufferValue]=\"bufferValue\" [color]=\"color\" [value]=\"value\"></mat-progress-bar>","import {Component, Input} from '@angular/core';\nimport {ThemePalette} from \"@angular/material/core\";\nimport {ProgressSpinnerMode} from \"@angular/material/progress-spinner\";\n\n@Component({\n selector: 'falcon-progress-spinner',\n templateUrl: './progress-spinner.component.html',\n styleUrls: ['./progress-spinner.component.scss'],\n standalone: false\n})\nexport class ProgressSpinnerComponent {\n @Input() diameter: number = 100;\n @Input() color: ThemePalette;\n @Input() mode!: ProgressSpinnerMode;\n @Input() value!: number;\n @Input() strokeWidth: number = 5;\n}\n","<mat-progress-spinner\n [color]=\"color\"\n [mode]=\"mode\"\n [diameter]=\"diameter\"\n[strokeWidth]=\"strokeWidth\"\n [value]=\"value\">\n</mat-progress-spinner>","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {MatTableConfig} from \"@falcon-ng/core\";\nimport {MatPaginator, PageEvent} from \"@angular/material/paginator\";\nimport {MatSort} from \"@angular/material/sort\";\nimport {MatTableDataSource} from \"@angular/material/table\";\nimport {TableAction} from \"@falcon-ng/core\";\n@Component({\n selector: 'falcon-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n standalone: false\n})\nexport class TableComponent implements OnInit {\n @Input() matTableConfig!: MatTableConfig;\n @ViewChild(MatPaginator, { static: false }) paginator!: MatPaginator;\n @ViewChild(MatSort, { static: false }) sort!: MatSort;\n @Output() pageEvent = new EventEmitter<PageEvent>();\n @Input() displayedColumns!: string[];\n @Output() tableActionRowEvent = new EventEmitter<any>();\n ngOnInit(): void {\n const cols = this.matTableConfig.columns?.map((c) => c.columnDef);\n if (this.displayedColumns !== undefined)\n this.displayedColumns.unshift(...cols as string[]);\n else this.displayedColumns = cols as string[];\n }\n ngAfterViewInit() {\n setTimeout(() => {\n this.matTableConfig.dataSource = new MatTableDataSource(\n this.matTableConfig.dataSource,\n );\n this.matTableConfig.dataSource.paginator = this.paginator;\n this.matTableConfig.dataSource.sort = this.sort;\n });\n }\n applyFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value;\n this.matTableConfig.dataSource.filter = filterValue\n .trim()\n .toLowerCase();\n\n if (this.matTableConfig.dataSource.paginator) {\n this.matTableConfig.dataSource.paginator.firstPage();\n }\n }\n\n public page(e: any) {\n this.pageEvent.emit(e);\n }\n\n public tableAction($item: any, action: TableAction) {\n const item = Object.assign($item, { action: action });\n this.tableActionRowEvent.next(item);\n }\n}\n","<div class=\"flex justify-end\">\n <mat-form-field *ngIf=\"matTableConfig.filter\" appearance=\"outline\">\n <mat-label>Filter</mat-label>\n <input matInput (keyup)=\"applyFilter($event)\" #input>\n </mat-form-field>\n</div>\n<falcon-progress-bar *ngIf=\"matTableConfig.progressBar\" [mode]=\"'indeterminate'\"></falcon-progress-bar>\n<div class=\"mat-elevation-z8\">\n <table mat-table [dataSource]=\"matTableConfig.dataSource\" matSort>\n <ng-container *ngFor=\"let column of matTableConfig.columns\" matColumnDef={{column.columnDef}}>\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{ column.header }}</th>\n <ng-container *ngIf=\"column?.link?.isLink; else elseBlock\">\n <td mat-cell *matCellDef=\"let element\">\n <a [routerLink]=\"column?.link?.routerLink(element)\">\n {{column?.cell(element) !== undefined ? column?.cell(element) : '' }}\n </a>\n </td>\n </ng-container>\n <ng-template #elseBlock>\n <td mat-cell *matCellDef=\"let element\">\n {{ column.cell(element) !== undefined ? column.cell(element) : ''}}\n </td>\n </ng-template>\n\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" class=\"mat-row-element example-expanded-row\"></tr>\n\n &lt;!&ndash; Row shown when there is no matching data. &ndash;&gt;\n <tr class=\"mat-row\" *matNoDataRow>\n <td class=\"mat-cell\" colspan=\"columns.length\">No data matching the filter</td>\n </tr>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef style=\"text-align: center;\"></th>\n <td mat-cell *matCellDef=\"let element\">\n\n <div *ngIf=\"matTableConfig.action?.isMenu; else nonMenuBlock\">\n\n <button mat-icon-button matTooltip=\"Action\" [matMenuTriggerFor]=\"tableActionMenu\"\n aria-label=\"Table action menu\">\n <mat-icon color=\"primary\">more_horiz</mat-icon>\n </button>\n <mat-menu #tableActionMenu=\"matMenu\">\n <a [routerLink]=\"item?.link?.routerLink\" mat-menu-item *ngFor=\"let item of matTableConfig.action?.menu\"\n [disabled]=\"item.disabled\">\n <mat-icon [color]=\"item?.icon?.iconColor\">{{item?.icon?.iconText}}</mat-icon>\n <span>{{item.text}}</span>\n </a>\n </mat-menu>\n </div>\n <ng-template #nonMenuBlock>\n <div class=\"flex justify-between\">\n <div>\n <button *ngIf=\"matTableConfig.action?.view\" mat-icon-button aria-label=\"view button\" color=\"primary\"\n matTooltip=\"View\" (click)=\"tableAction(element, 0)\">\n <mat-icon>visibility</mat-icon>\n </button>\n <button *ngIf=\"matTableConfig.action?.edit\" mat-icon-button aria-label=\"edit button\" color=\"primary\"\n matTooltip=\"Edit\" (click)=\"tableAction(element, 1)\">\n <mat-icon>create</mat-icon>\n </button>\n <button *ngIf=\"matTableConfig.action?.delete\" mat-icon-button aria-label=\"Delete button\" color=\"warn\"\n matTooltip=\"Delete\" (click)=\"tableAction(element, 2)\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n <button *ngIf=\"matTableConfig.action?.arrowRight\" mat-icon-button aria-label=\"Arrow button\" color=\"primary\"\n matTooltip=\"Expand\" (click)=\"tableAction(element, 3)\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n </ng-template>\n </td>\n </ng-container>\n\n </table>\n <mat-paginator *ngIf=\"matTableConfig.paginationConfig?.pagination\" (page)=\"page($event)\"\n [pageSizeOptions]=\"matTableConfig.paginationConfig?.pageSizeOptions!\" showFirstLastButtons>\n </mat-paginator>\n</div>","import {Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'falcon-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n standalone: false\n})\nexport class PaginationComponent {\n @Input() totalPage: number = 10;\n @Input() pageSize: number = 10;\n @Output() paginationEvent = new EventEmitter<number>();\n paginationSize: number[] = new Array(10);\n preDisable: boolean = true;\n nextDisable: boolean = false;\n private start!: number;\n private end!: number;\n currentPage: number = 1;\n firstLoad: boolean = false;\n\n constructor() {}\n\n ngOnInit(): void {\n this.firstLoad = true;\n this.paginationSize = [\n ...Array.from(\n {\n length:\n this.totalPage < this.pageSize\n ? this.totalPage\n : this.pageSize,\n },\n (_, i) => i + 1,\n ),\n ];\n if (this.paginationSize.length == this.totalPage)\n this.nextDisable = true;\n }\n\n receiveBtnChange($event: any) {\n this.firstLoad = false;\n this.currentPage = $event;\n if ($event == this.totalPage) this.nextDisable = true;\n else if ($event == 1) {\n this.nextDisable = false;\n this.preDisable = true;\n } else {\n this.nextDisable = false;\n this.preDisable = false;\n }\n\n if ($event === 'previous') {\n this.preDisable = true;\n } else if ($event === 'next') {\n } else {\n if (this.totalPage <= this.pageSize) {\n this.paginationSize = [\n ...Array.from({ length: this.totalPage }, (_, i) => i + 1),\n ];\n } else {\n // start\n if ($event < 6) {\n this.start = 1;\n } else {\n if ($event + 5 < this.totalPage) {\n this.start = $event - 5;\n } else {\n this.start = this.totalPage - this.pageSize;\n }\n }\n //End\n if ($event + 5 < this.totalPage) {\n this.end = this.start + 9;\n } else {\n this.end = this.totalPage;\n }\n this.paginationSize = this.range(this.start, this.end);\n }\n }\n this.paginationEvent.emit($event);\n }\n private range(start: number, end: number) {\n return Array(Math.abs(start - end) + 1)\n .fill(start)\n .map((v, i) => v + i * (start > end ? -1 : 1));\n }\n}\n","<div class=\"flex justify-between\">\n <span class=\"mat-h3\">Page {{currentPage}} of {{totalPage}}</span>\n <mat-button-toggle-group name=\"fontStyle\" aria-label=\"Font Style\">\n <mat-button-toggle value=\"bold\" *ngFor=\"let item of paginationSize; index as i;\"\n (change)=\"receiveBtnChange(item)\" [checked]=\"firstLoad && i ==0\">\n &nbsp;&nbsp; <span class=\"mat-h3\">{{item}}</span>&nbsp;&nbsp;\n </mat-button-toggle>\n </mat-button-toggle-group>\n\n</div>","import { ModuleWithProviders, NgModule, inject, provideAppInitializer } from '@angular/core';\nimport {TextboxComponent} from './component/textbox/textbox.component';\nimport {TextareaComponent} from './component/textarea/textarea.component';\nimport {SelectComponent} from './component/select/select.component';\nimport {ReactiveFieldDirective} from './reactive-field.directive';\nimport {AngularmaterialModule} from \"@falcon-ng/core\";\nimport {CommonModule} from \"@angular/common\";\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\nimport {ControlBuilderComponent} from \"./control-builder/control-builder.component\";\nimport {EnvironmentViewModel} from \"./model/environments\";\nimport {RouterModule} from \"@angular/router\";\nimport {IGenericHttpClient} from \"./service/http/igeneric-http-client\";\nimport {GenericHttpClient} from \"./service/http/generic-http-client\";\nimport {AppSettingService, appSettingsFactory} from \"./service/appsetting.service\";\nimport {AuthService, authServiceFactory} from \"./service/open-id/auth.service\";\nimport {LoggerService, loggerServiceFactory} from \"./service/logger.service\";\nimport {MAT_SNACK_BAR_DEFAULT_OPTIONS} from \"@angular/material/snack-bar\";\nimport { provideHttpClient, withInterceptors } from \"@angular/common/http\";\nimport { DatePickerComponent } from './component/date-picker/date-picker.component';\nimport { CheckboxComponent } from './component/checkbox/checkbox.component';\nimport { RadioComponent } from './component/radio/radio.component';\nimport { AutoCompleteComponent } from './component/auto-complete/auto-complete.component';\nimport { ButtonToggleComponent } from './component/button-toggle/button-toggle.component';\nimport { ChipComponent } from './component/chips/chip.component';\nimport { SliderComponent } from './component/slider/slider.component';\nimport { SlideToggleComponent } from './component/slide-toggle/slide-toggle.component';\nimport { ButtonComponent } from './component/button/button.component';\nimport { DialogComponent } from './component/dialog/dialog.component';\nimport { SnackBarComponent } from './component/snack-bar/snack-bar.component';\nimport { BottomSheetComponent } from './component/bottom-sheet/bottom-sheet.component';\nimport { ProgressBarComponent } from './component/progress-bar/progress-bar.component';\nimport { ProgressSpinnerComponent } from './component/progress-spinner/progress-spinner.component';\nimport { TableComponent } from './component/table/table.component';\nimport { PaginationComponent } from './component/pagination/pagination.component';\nimport { RichTextEditorComponent } from './component/rich-text-editor/rich-text-editor.component';\nimport {AngularEditorModule} from \"@kolkov/angular-editor\";\n\n@NgModule({\n declarations: [\n TextboxComponent,\n TextareaComponent,\n SelectComponent,\n ReactiveFieldDirective,\n ControlBuilderComponent,\n DatePickerComponent,\n CheckboxComponent,\n RadioComponent,\n AutoCompleteComponent,\n ButtonToggleComponent,\n ChipComponent,\n SliderComponent,\n SlideToggleComponent,\n ButtonComponent,\n DialogComponent,\n SnackBarComponent,\n BottomSheetComponent,\n ProgressBarComponent,\n ProgressSpinnerComponent,\n TableComponent,\n PaginationComponent,\n RichTextEditorComponent\n ],\n imports: [\n AngularmaterialModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n AngularEditorModule,\n ],\n exports: [\n AngularmaterialModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ControlBuilderComponent,\n RouterModule,\n ProgressBarComponent,\n ProgressSpinnerComponent,\n PaginationComponent,\n TableComponent,\n AngularEditorModule,\n ButtonComponent,\n ],\n providers: [\n provideHttpClient(\n withInterceptors([\n (req, next) => {\n // Get the auth token from the service.\n const authToken = inject(AuthService).getAuthorizationHeaderValue();\n inject(LoggerService).info(\"Auth bearer token \", authToken);\n if (authToken) {\n req = req.clone({\n setHeaders: {\n 'Content-Type': 'application/json',\n Authorization: authToken\n }\n });\n }\n return next(req);\n },\n ])\n ),\n {provide: IGenericHttpClient, useClass: GenericHttpClient},\n provideAppInitializer(() => {\n const initializerFn = (appSettingsFactory)(inject(AppSettingService));\n return initializerFn();\n }),\n provideAppInitializer(() => {\n const initializerFn = (authServiceFactory)(inject(AuthService), inject(AppSettingService), inject(EnvironmentViewModel));\n return initializerFn();\n }),\n provideAppInitializer(() => {\n const initializerFn = (loggerServiceFactory)(inject(LoggerService), inject(AppSettingService));\n return initializerFn();\n }),\n {\n provide: MAT_SNACK_BAR_DEFAULT_OPTIONS,\n useValue: {duration: 5000},\n },\n ],\n})\nexport class FalconTailwindModule {\n public static forRoot(\n environment: any,\n ): ModuleWithProviders<FalconTailwindModule> {\n return {\n ngModule: FalconTailwindModule,\n providers: [\n {provide: EnvironmentViewModel, useValue: environment},\n ],\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AuthService } from './auth.service';\nimport { RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuardService {\n\n constructor(private authService : AuthService) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) : boolean | Observable<boolean> | Promise<boolean> {\n return new Promise<boolean>(resolve => {\n this.authService.isServiceReady().then(() => {\n if (this.authService.isLoggedIn()) {\n resolve(true);\n } else {\n this.authService.startAuthentication(state.url);\n resolve(false);\n }\n })\n });\n }\n}\n","import {Observable} from 'rxjs';\nimport {\n FormBuilder,\n FormGroup,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport {inject} from '@angular/core';\nimport {BaseControl,IValidator} from \"@falcon-ng/core\"\nimport { Layout } from './model/layout';\n\n/**\n * @description\n * Base form component initialized to create form controls, set validation, submit.\n *\n * @usageNotes\n * The following snippet shows how a component can implement this abstract class to\n * define its own initialization method.\n * ```ts\n * export class InputComponent extends BaseFormComponent<any> implements OnInit {\n * constructor(fb : FormBuilder) {\n * super(fb);\n * this.defineForm();\n * }\n * protected defineForm(): void {\n * }\n * ngOnInit(): void {\n * this.formGroup = this.createControls();\n * }\n * protected submitDatasource(model: any): Observable<any> {\n * return of(model);\n * }\n * ```\n */\nexport abstract class BaseFormComponent<T> {\n public formGroup!: FormGroup;\n\n protected abstract defineForm(): void;\n\n protected abstract submitDataSource(model: T): Observable<T>;\n\n public dataSource: T | undefined = undefined;\n public controlsConfig!: Layout<T>;\n public showLoading: boolean = false;\n protected fb = inject(FormBuilder);\n\n constructor() {\n }\n\n /**\n * @description\n * Method evoke on when the form is submitted.\n * @returns submitDatasource() method with form data if valid otherwise form invalid.\n */\n public onSubmit() {\n if (this.formGroup !== undefined && this.formGroup.valid) {\n this.submitDataSource(this.formGroup.value);\n } else {\n this.validateAllFormFields(this.formGroup);\n }\n }\n\n /**\n * @description\n * Private method to validate all form controls before is form submited.\n * @param formGroup Validate form group.\n * @returns Groups of controls added to the form builder.\n */\n private validateAllFormFields(formGroup: FormGroup) {\n if (this.formGroup !== undefined) this.formGroup.markAllAsTouched();\n }\n\n /**\n * @description\n * Create the reactive form controls\n * @returns Groups of controls added to the form builder.\n */\n protected createControls() {\n const group = this.fb.group({});\n this.controlsConfig.baseControls.forEach((controls, index) => {\n this.bindControl(controls, group, index);\n });\n return group;\n }\n\n /**\n * @description\n * Private method to bind the form control.\n * @param controlConfig field to bind.\n * @param group group to add.\n * @param index index of the layout\n */\n private bindControl(\n controlConfig: BaseControl<T>,\n group: FormGroup,\n index: number\n ) {\n if (controlConfig.controlType === 'button') return;\n let control = null;\n if (controlConfig.formArray !== undefined) {\n control =\n controlConfig.formArray.length > 0\n ? this.fb.array([\n this.createFormArrayGroup(\n controlConfig.formArray[\n controlConfig.formArray.length - 1\n ].formArray,\n ),\n ])\n : this.fb.array(\n [],\n this.bindValidations(controlConfig.validations || []),\n );\n } else {\n control = this.fb.control(\n {\n value: controlConfig.value,\n disabled: controlConfig.disabled,\n },\n this.bindValidations(controlConfig.validations || [])\n );\n }\n group.addControl(controlConfig.formControlName, control);\n }\n\n /**\n * @description\n * Private method to bind the validation to the form controls on form submit.\n * @param validations Push the validation to the controls.\n * @returns Validation.\n */\n private bindValidations(validations: IValidator[]) {\n if (validations.length > 0) {\n const validList: (ValidatorFn | null | undefined)[] = [];\n validations.forEach((valid: IValidator) => {\n validList.push(valid.validator);\n });\n return Validators.compose(validList);\n }\n return null;\n }\n\n /**\n * Create an form array element\n * @param layoutConfig layout of form array\n * @returns Form array group\n */\n private createFormArrayGroup(componentConfig: BaseControl<T>[] | undefined): FormGroup {\n var formGroup: FormGroup = this.fb.group({});\n componentConfig?.forEach((item, index) => {\n var control = null;\n if (item.formArray !== undefined) {\n control =\n item.formArray.length > 0\n ? this.fb.array(\n [\n this.createFormArrayGroup(\n item.formArray[item.formArray.length - 1].formArray,\n ),\n ],\n this.bindValidations(item.validations || []),\n )\n : this.fb.array(\n [],\n this.bindValidations(item.validations || []),\n );\n } else {\n control = this.fb.control(\n {\n value: item.value,\n disabled: item.disabled,\n },\n this.bindValidations(item.validations || []),\n );\n }\n formGroup.addControl(item.formControlName, control);\n });\n return formGroup;\n }\n\n /**\n * @description\n * Reset fild values to default or specify some value.\n * @param defaultValues Specify the specific value to set to the controls.\n * @returns void.\n */\n public reset(defaultValues?: any): void {\n this.formGroup.reset(defaultValues);\n }\n\n /**\n * @description\n * Reset specific fild Errors.\n * @param name Name of the field to reset the error.\n * @returns void.\n */\n resetFieldErrors(name: string): void {\n this.formGroup?.get(name)?.setErrors(null);\n }\n\n /**\n * @description\n * Get the controls value from the form.\n * @returns Form controls values.\n */\n get value(): any {\n return this.formGroup.value;\n }\n\n /**\n * @description\n * Updating parts of the data model.\n * Use the patchValue() method to replace any properties defined in the object that have changed in the form model.\n * @returns Form controls values.\n * @param value The object that matches the structure of the group.\n * @param options Configuration options that determine how the control propagates changes and\n * emits events after the value is patched.\n * `onlySelf`: When true, each change only affects this control and not its parent. Default is\n * true.\n * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * @usageNotes\n * The following snippet shows how a component can implement this abstract class to\n * define its own initialization method.\n * ```ts\n * this.formGroup.patchValue({\n * name: 'Todd Motto',\n * event: {\n * title: 'AngularCamp 2016',\n * location: 'Barcelona, Spain'\n * }\n * });\n * ```\n */\n protected patchValue(\n value: { [key: string]: any },\n options?: { onlySelf?: boolean; emitEvent?: boolean }\n ) {\n return this.formGroup.patchValue(value, options);\n }\n\n /**\n * @description\n * Updating parts of the data model.\n * Use the setValue() method to set a new value for an individual control. The setValue() method strictly adheres to the structure of the form group and replaces the entire value for the control.\n * @returns Form controls values.\n * @param value The object that matches the structure of the group.\n * @param options Configuration options that determine how the control propagates changes and\n * emits events after the value is patched.\n * `onlySelf`: When true, each change only affects this control and not its parent. Default is\n * true.\n * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * @usageNotes\n * The following snippet shows how a component can implement this abstract class to\n * define its own initialization method.\n * ```ts\n * this.formGroup.setValue({\n * name: 'Todd Motto',\n * event: {\n * title: 'AngularCamp 2016',\n * location: 'Barcelona, Spain'\n * }\n * });\n * ```\n */\n protected setValue(\n value: { [key: string]: any },\n options?: { onlySelf?: boolean; emitEvent?: boolean }\n ) {\n return this.formGroup.setValue(value, options);\n }\n\n /**\n * @description\n * Dynamically remove the form control.\n * @param index Index of item.\n * @usageNotes\n * The following snippet shows how to remove the form control from Froup Group\n * ```ts\n * removeControl(1);\n * ```\n */\n protected removeControl(layoutIndex: number, index: number) {\n this.formGroup.removeControl(\n this.controlsConfig.baseControls[layoutIndex].formControlName\n );\n this.controlsConfig.baseControls.splice(index, 1);\n }\n\n /**\n * @description\n * Dynamically add the form control.\n * @param configToAdd Configuration of the form control.\n * @param index Add controls to the specific index.\n * @usageNotes\n * The following snippet shows how a component can implement this abstract class to\n * define its own initialization method.\n * ```ts\n * var configToadd = {\n * componentProperty: {\n * label: \"Outline Auto complete\",\n * options: [{ value: 'Extra-cheese', viewValue: 'Extra cheese' },\n * { value: 'Bellsprout', viewValue: 'Bellsprout' },\n * { value: 'Mushroom', viewValue: 'Mushroom' },\n * { value: 'Onion', viewValue: 'Onion' },\n * { value: 'Pepperoni', viewValue: 'Pepperoni' },\n * { value: 'Sausage', viewValue: 'Sausage' },\n * { value: 'Tomato', viewValue: 'Tomato' }],\n * appearance: Appearance.Outline,\n * color: 'accent'\n * },\n * componentType: ComponentType.AutoComplete,\n * formControlName: \"test\"\n * };\n * this.addControl(configToadd); or this.addControl(configToadd,1);\n * ```\n */\n // protected addControl(layoutToAdd?: BaseControl<string>[],index?: number) {\n // layoutToAdd.forEach((layout, layoutIndex) => {\n // layout.componentConfig.forEach(\n // (componentConfig, componentIndex) => {\n // if (componentConfig.formArray !== undefined) {\n // componentConfig.formArray.forEach((control) => {\n // this.formGroup.setControl(\n // 'productOption',\n // this.createFormArrayGroup(control.componentConfig),\n // );\n // this.controlsConfig.container.layoutConfig[1].componentConfig[0].formArray.push(\n // layout,\n // );\n // });\n // } else {\n // this.formGroup.addControl(\n // componentConfig.formControlName,\n // new UntypedFormControl(\n // {\n // value: componentConfig.componentProperty.value,\n // disabled:\n // componentConfig.componentProperty.disabled,\n // },\n // this.bindValidations(\n // componentConfig.validations || [],\n // ),\n // ),\n // );\n // index !== null\n // ? this.controlsConfig.container.layoutConfig.splice(\n // index,\n // 0,\n // layout,\n // )\n // : this.controlsConfig.container.layoutConfig.push(\n // layout,\n // );\n // }\n // },\n // );\n // });\n // }\n}\n","/*\n * Public API Surface of falcon-core-module\n */\nexport * from './lib/falcon-tailwind.module';\nexport * from './lib/reactive-field.directive';\nexport * from './lib/control-builder/control-builder.component';\n\n/*\n * Public API Surface of falcon core module service\n */\nexport * from './lib/service/http/igeneric-http-client';\nexport * from './lib/service/logger.service';\nexport * from './lib/service/open-id/auth.service';\nexport * from './lib/service/open-id/TokenHelperService';\nexport * from './lib/service/open-id/auth-guard.service';\nexport * from './lib/service/appsetting.service';\n\nexport * from './lib/model/constant';\nexport * from './lib/model/environments';\nexport * from './lib/control-builder/control-builder.component';\nexport * from './lib/base-form-component';\nexport * from './lib/model/layout';\n\n/*\n * Public component type\n */\nexport * from './lib/component/table/table.component';\nexport * from './lib/component/pagination/pagination.component';\nexport * from './lib/component/progress-bar/progress-bar.component';\nexport * from './lib/component/progress-spinner/progress-spinner.component';\nexport * from './lib/component/button/button.component';\nexport * from './lib/component/dialog/dialog.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","i5","i2","i1","i6","i7","i8","i3.ReactiveFieldDirective","i2.EnvironmentViewModel","i4.LoggerService","i2.LoggerService","i1.LoggerService","i2.TokenHelperService","i9","i10","i11.ProgressBarComponent","i1.AuthService"],"mappings":"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"}
1
+ {"version":3,"file":"falcon-ng-tailwind.mjs","sources":["../../../../projects/falcon-ng/tailwind/src/lib/component/textbox/textbox.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/textbox/textbox.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/textarea/textarea.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/textarea/textarea.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/select/select.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/select/select.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/date-picker/date-picker.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/date-picker/date-picker.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/radio/radio.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/radio/radio.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/checkbox/checkbox.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/checkbox/checkbox.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/slide-toggle/slide-toggle.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/slide-toggle/slide-toggle.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/slider/slider.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/slider/slider.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/button-toggle/button-toggle.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/button-toggle/button-toggle.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/auto-complete/auto-complete.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/auto-complete/auto-complete.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/chips/chip.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/chips/chip.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/button/button.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/button/button.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/rich-text-editor/rich-text-editor.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/rich-text-editor/rich-text-editor.component.html","../../../../projects/falcon-ng/tailwind/src/lib/model/constant.ts","../../../../projects/falcon-ng/tailwind/src/lib/reactive-field.directive.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-builder/control-builder.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-builder/control-builder.component.html","../../../../projects/falcon-ng/tailwind/src/lib/model/environments.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/http/igeneric-http-client.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/logger.service.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/http/generic-http-client.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/appsetting.service.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/open-id/TokenHelperService.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/open-id/auth.service.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/dialog/dialog.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/dialog/dialog.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/snack-bar/snack-bar.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/snack-bar/snack-bar.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/bottom-sheet/bottom-sheet.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/bottom-sheet/bottom-sheet.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/progress-bar/progress-bar.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/progress-bar/progress-bar.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/progress-spinner/progress-spinner.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/progress-spinner/progress-spinner.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/table/table.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/table/table.component.html","../../../../projects/falcon-ng/tailwind/src/lib/component/pagination/pagination.component.ts","../../../../projects/falcon-ng/tailwind/src/lib/component/pagination/pagination.component.html","../../../../projects/falcon-ng/tailwind/src/lib/falcon-tailwind.module.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/open-id/auth-guard.service.ts","../../../../projects/falcon-ng/tailwind/src/lib/base-form-component.ts","../../../../projects/falcon-ng/tailwind/src/public-api.ts","../../../../projects/falcon-ng/tailwind/src/falcon-ng-tailwind.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-textbox',\n templateUrl: './textbox.component.html',\n styleUrls: ['./textbox.component.scss'],\n standalone: false\n})\nexport class TextboxComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n}\n","<mat-form-field [formGroup]=\"formGroup\" [appearance]=\"control.appearance\" class=\"textbox-form\">\n <mat-label>{{control.label}}</mat-label>\n <input matInput [type]=\"control.type\" [formControlName]=\"control.formControlName\" [class]=\"control.class\"\n [required]=\"formGroup.get(control.formControlName)?.errors !== null && formGroup.get(control.formControlName)?.errors?.['required']\">\n\n <span matPrefix [matTooltip]=\"control.prefix.toolTipText!\"\n [ngClass]=\"{'material-icons': control.prefix.isIcon}\">{{control.prefix.text}}&nbsp;&nbsp;</span>\n <span matSuffix [matTooltip]=\"control.suffix.toolTipText!\"\n [ngClass]=\"{'material-icons': control.suffix.isIcon}\">{{control.suffix.text}}&nbsp;&nbsp;</span>\n <mat-hint *ngIf=\"control.hint.link?.isLink; else elseBlock\">\n <ng-container *ngIf=\"control.hint.link?.queryParams !== undefined; else withoutQueryBlock\">\n <a [routerLink]=\"[control.hint.link?.routerLink]\" [queryParams]=\"{ query: control.hint.link?.queryParams }\"\n routerLinkActive=\"router-link-active\">{{control.hint.text}}</a>\n </ng-container>\n </mat-hint>\n <ng-template #elseBlock>\n <mat-hint>{{control.hint.text}}</mat-hint>\n </ng-template>\n <ng-template #withoutQueryBlock>\n <a [routerLink]=\"[control.hint.link?.routerLink]\" routerLinkActive=\"router-link-active\">{{control.hint.text}}</a>\n </ng-template>\n\n <ng-container *ngFor=\"let validation of control.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"formGroup.get(control.formControlName)?.hasError(validation.name || '')\">{{validation.message}}\n </mat-error>\n </ng-container>\n</mat-form-field>\n","import { Component } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n standalone: false\n})\nexport class TextareaComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n}\n","<mat-form-field [appearance]=\"control.appearance\" [formGroup]=\"formGroup\" [floatLabel]=\"control.floatLabel\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\" class=\"textarea-form\">\n <mat-label>{{control.label}}</mat-label>\n\n <textarea matInput [formControlName]=\"control.formControlName\" [placeholder]=\"control.placeHolder\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [cdkTextareaAutosize]=\"control.textAreaProperty.cdkTextareaAutosize\"\n [cdkAutosizeMinRows]=\"control.textAreaProperty.cdkAutosizeMinRows\"\n [cdkAutosizeMaxRows]=\"control.textAreaProperty.cdkAutosizeMaxRows\" [rows]=\"control.textAreaProperty.rows\"\n [cols]=\"control.textAreaProperty.cols\"></textarea>\n\n <span matPrefix [ngClass]=\"{'material-icons': control.prefix.isIcon}\">{{control.prefix.text}}</span>\n <span matSuffix [ngClass]=\"{'material-icons': control.suffix.isIcon}\">{{control.suffix.text}}</span>\n\n\n <mat-hint>{{control.hint.text}}</mat-hint>\n\n <ng-container *ngFor=\"let validation of control.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"formGroup.get(control.formControlName)?.hasError(validation.name || '')\">{{validation.message}}\n </mat-error>\n </ng-container>\n</mat-form-field>\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatSelectChange } from '@angular/material/select';\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n standalone: false\n})\nexport class SelectComponent implements OnInit {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n @Output() selectionChange: EventEmitter<MatSelectChange> =\n new EventEmitter<MatSelectChange>();\n\n constructor() {}\n\n ngOnInit(): void {\n if (this.formGroup === undefined) {\n this.formGroup = new FormGroup({\n default: new FormControl(),\n });\n }\n }\n\n selectChange($event: any) {\n this.selectionChange.emit($event.value);\n if (this.control.event !== undefined)\n this.control.event.change?.emit($event);\n }\n}\n","<mat-form-field [appearance]=\"control.appearance\" [formGroup]=\"formGroup\" [floatLabel]=\"control.floatLabel\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\" class=\"w-full\">\n <mat-label>{{control.label}}</mat-label>\n <mat-select [multiple]=\"control.selectProperty.multiple\" (selectionChange)=\"selectChange($event)\"\n [formControlName]=\"control.formControlName != undefined ? control.formControlName : 'default'\"\n [placeholder]=\"control.placeHolder\" [ngStyle]=\"control.style\" [ngClass]=\"control.class\" [(value)]=\"control.value\">\n <mat-option *ngFor=\"let item of control.options\" [value]=\"item.key\" [disabled]=\"item.disabled\">\n {{item.value}}\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"control.hint.show\">\n <ng-container *ngIf=\"control.hint.link?.isLink; else elseBlock\">\n <ng-container *ngIf=\"control.hint.link?.queryParams !== undefined; else withoutQueryBlock\">\n <a [routerLink]=\"[control.hint.link?.routerLink]\" [queryParams]=\"{ query: control.hint.link?.queryParams }\"\n routerLinkActive=\"router-link-active\">{{control.hint.text}}</a>\n </ng-container>\n </ng-container>\n <ng-template #elseBlock>\n <span>{{control.hint.text}}</span>\n </ng-template>\n <ng-template #withoutQueryBlock>\n <a [routerLink]=\"[control.hint.link?.routerLink]\" routerLinkActive=\"router-link-active\">{{control.hint.text}}</a>\n </ng-template>\n </mat-hint>\n</mat-form-field>","import { Component } from '@angular/core';\nimport {FormGroup} from \"@angular/forms\";\nimport {BaseControl} from \"@falcon-ng/core\"\n\n@Component({\n selector: 'falcon-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n standalone: false\n})\nexport class DatePickerComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n}\n","<mat-form-field [appearance]=\"control.appearance\" [formGroup]=\"formGroup\"\n [floatLabel]=\"control.floatLabel\" [ngStyle]=\"control.style\"\n [ngClass]=\"control.class\">\n <mat-label>{{control.label}}</mat-label>\n <input matInput [matDatepicker]=\"picker\" [formControlName]=\"control.formControlName\"\n [placeholder]=\"control.placeHolder\" [type]=\"control.type\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [required]=\"formGroup.get(control.formControlName)?.errors !== null && formGroup.get(control.formControlName)?.errors?.['required']\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon *ngIf=\"control.suffix.isIcon\">keyboard_arrow_down</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n <mat-hint>{{control.hint.text}}</mat-hint>\n <ng-container *ngFor=\"let validation of control.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"formGroup.get(control.formControlName)?.hasError(validation.name || '')\">{{validation.message}}\n </mat-error>\n </ng-container>\n</mat-form-field>\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport {FormControl, FormGroup} from '@angular/forms';\nimport {MatRadioChange} from \"@angular/material/radio\";\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n standalone: false\n})\nexport class RadioComponent implements OnInit{\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n @Output() radioGroupChange: EventEmitter<MatRadioChange> =\n new EventEmitter<MatRadioChange>();\n\n ngOnInit(): void {\n console.log(this.control.options)\n if (this.formGroup === undefined) {\n this.formGroup = new FormGroup({\n default: new FormControl(),\n });\n }\n }\n\n radioGroupChangeEvent($event: any) {\n this.radioGroupChange.emit($event.value);\n }\n}\n","<div [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [formGroup]=\"formGroup\">\n <label class=\"radio-label-padding\">{{control.label | titlecase}}</label>\n <mat-radio-group [attr.aria-label]=\"control.label\"\n [labelPosition]=\"control.appearance\"\n [formControlName]=\"control.formControlName != undefined ? control.formControlName : 'default'\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n (change)=\"radioGroupChangeEvent($event)\">\n <mat-radio-button [ngClass]=\"control.class\"\n *ngFor=\"let item of control.options\" [value]=\"item.value\">{{item.viewValue | titlecase}}\n </mat-radio-button>\n </mat-radio-group>\n</div>","import { Component } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {BaseControl} from \"@falcon-ng/core\"\n\n@Component({\n selector: 'falcon-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n standalone: false\n})\nexport class CheckboxComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n change($event: any) {\n if (this.control.event !== undefined)\n this.control?.event?.change?.emit($event);\n }\n}\n","<div [formGroup]=\"formGroup\">\n <mat-checkbox [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [color]=\"control.color != null ? control.color : 'accent'\" [labelPosition]=\"control.labelPosition\"\n [formControlName]=\"control.formControlName\" (change)=\"change($event)\">\n {{control.label}}</mat-checkbox>\n</div>","import { Component } from '@angular/core';\nimport {FormGroup} from \"@angular/forms\";\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-slide-toggle',\n templateUrl: './slide-toggle.component.html',\n styleUrls: ['./slide-toggle.component.scss'],\n standalone: false\n})\nexport class SlideToggleComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n}\n","<div [formGroup]=\"formGroup\">\n <mat-slide-toggle [labelPosition]=\"control.appearance\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [formControlName]=\"control.formControlName\" [color]=\"control.color\">\n {{control.label}}\n </mat-slide-toggle>\n</div>","import { Component } from '@angular/core';\nimport {FormGroup} from \"@angular/forms\";\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n standalone: false\n})\nexport class SliderComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n}\n","<div [ngStyle]=\"control.style\" [ngClass]=\"control.class\" [formGroup]=\"formGroup\">\n<mat-label>{{control.label}}</mat-label>&nbsp;&nbsp;&nbsp;\n <mat-slider\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [color]=\"control.color\"\n [max]=\"control.sliderProperty.max\"\n [min]=\"control.sliderProperty.min\"\n [step]=\"control.sliderProperty.step\">\n <input matSliderThumb [formControlName]=\"control.formControlName\">\n </mat-slider>\n</div>","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {FormControl, FormGroup} from \"@angular/forms\";\nimport {MatButtonToggleChange} from \"@angular/material/button-toggle\";\nimport {BaseControl} from \"@falcon-ng/core\"\n\n@Component({\n selector: 'falcon-button-toggle',\n templateUrl: './button-toggle.component.html',\n styleUrls: ['./button-toggle.component.scss'],\n standalone: false\n})\nexport class ButtonToggleComponent implements OnInit {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n @Output() toggleGroupChange: EventEmitter<MatButtonToggleChange> = new EventEmitter<MatButtonToggleChange>();\n ngOnInit(): void {\n if (this.formGroup === undefined) {\n this.formGroup = new FormGroup({\n default: new FormControl()\n });\n }\n }\n\n toggleChange($event: any) {\n this.toggleGroupChange.emit($event.value);\n }\n}\n","<div [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [formGroup]=\"formGroup\">\n <mat-label [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n *ngIf=\"control.label != undefined\">\n {{control.label | titlecase}}\n </mat-label>\n <mat-button-toggle-group\n [formControlName]=\"control.formControlName != undefined ? control.formControlName : 'default'\"\n [appearance]=\"control.appearance\" [ngStyle]=\"control.style\"\n [ngClass]=\"control.class\" [attr.aria-label]=\"control.label\"\n class=\"botton-toggle\" (change)=\"toggleChange($event)\">\n <mat-button-toggle *ngFor=\"let item of control.options\" [value]=\"item?.value\"\n [ngStyle]=\"control.style\"\n [ngClass]=\"control.class\">\n <mat-icon [ngClass]=\"item?.class\" aria-hidden=\"false\" aria-label=\"item icon\" *ngIf=\"item?.icon != undefined\">\n {{item?.icon}}\n </mat-icon>\n {{item.viewValue | titlecase}}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>","import { Component } from '@angular/core';\nimport {FormControl, FormGroup} from \"@angular/forms\";\nimport {Observable} from \"rxjs\";\nimport { map, startWith } from 'rxjs/operators';\nimport {BaseControl,IOptions} from \"@falcon-ng/core\"\n@Component({\n selector: 'falcon-auto-complete',\n templateUrl: './auto-complete.component.html',\n styleUrls: ['./auto-complete.component.scss'],\n standalone: false\n})\nexport class AutoCompleteComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n autoCompleteControl = new FormControl();\n constructor() { }\n filteredOptions!: Observable<IOptions[]>;\n\n ngOnInit() {\n this.filteredOptions = this.autoCompleteControl.valueChanges.pipe(startWith(''),map(value => this._filter(value)));\n }\n\n private _filter(value: string): IOptions[] {\n const filterValue = value.toLowerCase();\n return this.control.options.filter((option: IOptions) => option?.key?.toLowerCase().includes(filterValue));\n }\n\n optionSelected(value: any) {\n this.formGroup?.get(this.control?.formControlName)?.setValue(value);\n }\n}\n","<mat-form-field *ngIf=\"control.appearance != 'plain'; else plainInput\" [appearance]=\"control.appearance\"\n [formGroup]=\"formGroup\" [ngStyle]=\"control.style\" [ngClass]=\"control.class\">\n <mat-label>{{control.label}}</mat-label>\n <input matInput [formControl]=\"autoCompleteControl\" [formControlName]=\"control.formControlName\"\n [placeholder]=\"control.placeHolder\" [type]=\"control.type\" [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [matAutocomplete]=\"auto\"\n [required]=\"formGroup.get(control.formControlName)?.errors !== null && formGroup.get(control.formControlName)?.errors?.['required']\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)='optionSelected($event.option.viewValue)'>\n <mat-option *ngFor=\"let item of filteredOptions | async\" [value]=\"item.key\">\n {{item.value}}\n </mat-option>\n </mat-autocomplete>\n\n <span matPrefix [matTooltip]=\"control.prefix.toolTipText!\"\n [ngClass]=\"{'material-icons': control.prefix.isIcon}\">{{control.prefix.text}} &nbsp;&nbsp;</span>\n <span matSuffix [matTooltip]=\"control.suffix.toolTipText!\"\n [ngClass]=\"{'material-icons': control.suffix.isIcon}\">{{control.suffix.text}} &nbsp;&nbsp;</span>\n\n <mat-hint>{{control.hint.text}}</mat-hint>\n <ng-container *ngFor=\"let validation of control.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"formGroup.get(control.formControlName)?.hasError(validation?.name || '')\">{{validation.message}}\n </mat-error>\n </ng-container>\n</mat-form-field>\n\n<ng-template #plainInput>\n <div [formGroup]=\"formGroup\" [ngStyle]=\"control.style\" [ngClass]=\"control.class\">\n <input type=\"text\" [formControl]=\"autoCompleteControl\" [formControlName]=\"control.formControlName\"\n [placeholder]=\"control.placeHolder\" [type]=\"control.type\" [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [matAutocomplete]=\"auto\"\n [required]=\"formGroup.get(control.formControlName)?.errors !== null && formGroup.get(control.formControlName)?.errors?.['required']\"\n class=\"bg-gray-200 appearance-none border-2 border-gray-200 rounded w-full py-2 px-4 text-gray-700 leading-tight focus:outline-none focus:bg-white focus:border-purple-500\">\n </div>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)='optionSelected($event.option.viewValue)'>\n <mat-option *ngFor=\"let item of filteredOptions | async\" [value]=\"item.key\">\n {{item.value}}\n </mat-option>\n </mat-autocomplete>\n</ng-template>\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { Observable } from 'rxjs';\nimport { IOptions } from '@falcon-ng/core';\nimport { MatAutocomplete, MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { map, startWith } from 'rxjs/operators';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n standalone: false,\n})\nexport class ChipComponent implements OnInit {\n @Input() control!: BaseControl<any>;\n @Input() formGroup!: FormGroup;\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\n selectable = true;\n removable = true;\n addOnBlur = true;\n filteredOptions: Observable<IOptions[]>;\n autoCompleteControl = new FormControl('');\n private items!: FormArray;\n\n @ViewChild('chipAutoCompleteInput')\n chipAutoCompleteInput!: ElementRef<HTMLInputElement>;\n @ViewChild('chipTextInput') chipTextInput!: ElementRef<HTMLInputElement>;\n @ViewChild('auto') matAutocomplete!: MatAutocomplete;\n\n constructor(private fb: FormBuilder) {\n this.filteredOptions = this.autoCompleteControl.valueChanges.pipe(\n startWith(null),\n map((value: string | null) => (value ? this._filter(value) : this.control?.options.slice()))\n );\n }\n\n ngOnInit() {\n setTimeout(() => {\n if (this.control.chipSelectedOptions.length > 0) {\n this.items = this.formGroup.controls[this.control.formControlName] as FormArray;\n this.control.chipSelectedOptions.forEach((value: any) => {\n this.items.controls.push(this.createItem(value.value));\n });\n }\n });\n }\n\n add(event: MatChipInputEvent): void {\n const input = event.input;\n const value = event.value;\n if ((value || '').trim()) {\n this.control.chipSelectedOptions.push({\n key: value.trim(),\n value: value.trim(),\n });\n this.items = this.formGroup.get(this.control.formControlName) as FormArray;\n this.items.push(this.createItem(value));\n }\n if (input) {\n input.value = '';\n }\n }\n\n createItem(value: String): FormGroup {\n return this.fb.group({\n key: value,\n value: value,\n });\n }\n\n remove(option: IOptions): void {\n const index = this.control.chipSelectedOptions.indexOf(option);\n if (index >= 0) {\n this.control.chipSelectedOptions.splice(index, 1);\n this.items.removeAt(index);\n }\n }\n\n optionSelected(event: MatAutocompleteSelectedEvent): void {\n this.control.chipSelectedOptions.push({\n key: event.option.value,\n value: event.option.value,\n });\n this.items = this.formGroup.get(this.control.formControlName) as FormArray;\n this.items.push(this.createItem(event.option.value));\n this.chipAutoCompleteInput.nativeElement.value = '';\n this.formGroup.get(this.control.formControlName)?.setValue(null);\n }\n\n private _filter(value: string): any {\n if (value !== null) {\n const filterValue = value.toLowerCase();\n return this.control?.options?.filter((option: IOptions) =>\n option.value.toLowerCase().includes(filterValue)\n );\n }\n }\n\n drop(event: CdkDragDrop<IOptions[]>) {\n moveItemInArray(this.control.options, event.previousIndex, event.currentIndex);\n }\n\n keyboardEnterEvent(event: any): void {\n if (this.control.event !== undefined) this.control.event.keyboardEnter?.emit(event);\n this.chipTextInput.nativeElement.value = '';\n }\n}\n","<ng-container [ngSwitch]=\"control.type\">\n <mat-form-field class=\"chip-list\" *ngSwitchCase=\"'search'\" [appearance]=\"control.appearance\" [formGroup]=\"formGroup\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\">\n <mat-label>{{control.label}}</mat-label>\n <mat-chip-grid #chipGrid aria-label=\"item selection\">\n <mat-chip-row *ngFor=\"let option of control.chipSelectedOptions\" [removable]=\"removable\"\n (removed)=\"remove(option)\">\n {{option.value}}\n <mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\n </mat-chip-row>\n\n <input matInput #chipAutoCompleteInput [formControl]=\"autoCompleteControl\"\n [formArrayName]=\"control.formControlName\" [placeholder]=\"control.placeHolder\" [ngStyle]=\"control.style\"\n [ngClass]=\"control.class\" [matAutocomplete]=\"auto\" [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"add($event)\"\n [required]=\"formGroup.get(control.formControlName)?.errors !== null && formGroup.get(control.formControlName)?.errors?.['required']\"\n (keyup.enter)=\"keyboardEnterEvent($event)\">\n\n </mat-chip-grid>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"optionSelected($event)\">\n <mat-option *ngFor=\"let item of filteredOptions | async\" [value]=\"item.key\">\n {{item.value}}\n </mat-option>\n </mat-autocomplete>\n <mat-hint>\n <ng-container *ngIf=\"control.hint.link?.isLink; else elseBlock\">\n <ng-container *ngIf=\"control.hint.link?.queryParams !== undefined; else withoutQueryBlock\">\n <a [routerLink]=\"[control.hint.link?.routerLink]\" [queryParams]=\"{ query: control.hint.link?.queryParams }\"\n routerLinkActive=\"router-link-active\">{{control.hint.text}}</a>\n </ng-container>\n </ng-container>\n <ng-template #elseBlock>\n <span>{{control.hint.text}}</span>\n </ng-template>\n <ng-template #withoutQueryBlock>\n <a [routerLink]=\"[control.hint.link?.routerLink]\"\n routerLinkActive=\"router-link-active\">{{control.hint.text}}</a>\n </ng-template>\n </mat-hint>\n </mat-form-field>\n\n <mat-form-field class=\"chip-list\" *ngSwitchCase=\"'text'\" [appearance]=\"control.appearance\" [formGroup]=\"formGroup\"\n [ngStyle]=\"control.style\" [ngClass]=\"control.class\">\n <mat-label>{{control.label}}</mat-label>\n <mat-chip-grid #chipGrid aria-label=\"item selection\">\n <mat-chip-row *ngFor=\"let option of control.chipSelectedOptions\" [value]=\"selectable\" [removable]=\"removable\"\n (removed)=\"remove(option)\">\n {{option?.value}}\n <mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\n </mat-chip-row>\n\n <input matInput #chipTextInput [formArrayName]=\"control.formControlName\" multiple\n [placeholder]=\"control.placeHolder\" [matChipInputFor]=\"chipGrid\" [ngStyle]=\"control.style\"\n [ngClass]=\"control.class\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"addOnBlur\" (matChipInputTokenEnd)=\"add($event)\"\n [required]=\"formGroup.get(control.formControlName)?.errors !== null && formGroup.get(control.formControlName)?.errors?.['required']\"\n (keyup.enter)=\"keyboardEnterEvent($event)\">\n\n </mat-chip-grid>\n </mat-form-field>\n\n <mat-chip-listbox aria-label=\"Chips selection\" *ngSwitchDefault>\n <mat-chip color=\"{{control.color}}\" selected>{{control.label}}</mat-chip>\n </mat-chip-listbox>\n\n\n <mat-chip-set class=\"chip-list\" cdkDropList cdkDropListOrientation=\"horizontal\" (cdkDropListDropped)=\"drop($event)\"\n *ngSwitchCase=\"'dragDrop'\" class=\"example-chip\">\n <mat-chip class=\"example-box\" cdkDrag *ngFor=\"let option of control.options\">\n {{option?.value}}\n </mat-chip>\n </mat-chip-set>\n\n</ng-container>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'falcon-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.css'],\n standalone: false,\n})\nexport class ButtonComponent {\n @Input() control!: BaseControl<string>;\n @Input() formGroup!: FormGroup;\n @Output() btnClick = new EventEmitter<string>();\n childBtnClick() {\n this.btnClick.emit('Button Click Event');\n }\n}\n","<div [ngStyle]=\"control.style\" [ngClass]=\"control.class\">\n <ng-container [ngSwitch]=\"control.appearance\">\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [color]=\"control.color\"\n [ngClass]=\"control.class\" [ngStyle]=\"control.style\" mat-button *ngSwitchCase=\"0\">\n <mat-icon *ngIf=\"control.suffix.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon>&nbsp;{{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-raised-button *ngSwitchCase=\"1\">\n <mat-icon *ngIf=\"control.suffix.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon>&nbsp;{{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-stroked-button *ngSwitchCase=\"2\">\n <mat-icon *ngIf=\"control.suffix.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon>&nbsp;{{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-flat-button *ngSwitchCase=\"3\">\n <mat-icon *ngIf=\"control.suffix.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon>&nbsp;{{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-icon-button [attr.aria-label]=\"control.label\"\n *ngSwitchCase=\"4\">\n <mat-icon>{{control.label}}</mat-icon>\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-fab [attr.aria-label]=\"control.label\"\n *ngSwitchCase=\"5\">\n <mat-icon>{{control.label}}</mat-icon>\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\" [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-mini-fab [attr.aria-label]=\"control.label\"\n *ngSwitchCase=\"6\">\n <mat-icon>{{control.label}}</mat-icon>\n </button>\n <a mat-stroked-button *ngSwitchCase=\"7\" [ngClass]=\"control.class\" [ngStyle]=\"control.style\"\n routerLink=\"[]\">{{control.label}}</a>\n <a mat-stroked-button *ngSwitchCase=\"8\" [ngClass]=\"control.class\" [ngStyle]=\"control.style\"\n href=\"{{control.value}}\">{{control.label}}</a>\n </ng-container>\n</div>","import {Component, Input} from '@angular/core';\nimport {FormGroup} from \"@angular/forms\";\nimport { BaseControl } from '@falcon-ng/core';\n\n@Component({\n selector: 'lib-rich-text-editor',\n templateUrl: './rich-text-editor.component.html',\n styleUrls: ['./rich-text-editor.component.scss'],\n standalone: false\n})\nexport class RichTextEditorComponent {\n control!: BaseControl<string>;\n formGroup!: FormGroup;\n}\n","<ng-container [formGroup]=\"formGroup\">\n <mat-label>{{control.label}}</mat-label>\n <angular-editor [formControlName]=\"control.formControlName\" [config]=\"control.editorProperty\">\n </angular-editor>\n <mat-hint>{{control.hint.text}}</mat-hint>\n <ng-container *ngFor=\"let validation of control.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"formGroup.get(control.formControlName)?.hasError(validation?.name || '')\">{{validation.message}}\n </mat-error>\n </ng-container>\n</ng-container>\n","import { TextboxComponent } from '../component/textbox/textbox.component';\nimport { TextareaComponent } from '../component/textarea/textarea.component';\nimport { SelectComponent } from '../component/select/select.component';\nimport { DatePickerComponent } from '../component/date-picker/date-picker.component';\nimport { RadioComponent } from '../component/radio/radio.component';\nimport { CheckboxComponent } from '../component/checkbox/checkbox.component';\nimport { SlideToggleComponent } from '../component/slide-toggle/slide-toggle.component';\nimport { SliderComponent } from '../component/slider/slider.component';\nimport { ButtonToggleComponent } from '../component/button-toggle/button-toggle.component';\nimport { AutoCompleteComponent } from '../component/auto-complete/auto-complete.component';\nimport { ChipComponent } from '../component/chips/chip.component';\nimport {ButtonComponent} from \"../component/button/button.component\";\nimport {RichTextEditorComponent} from \"../component/rich-text-editor/rich-text-editor.component\";\nexport class Constant {\n public static ComponentMapper = {\n textbox: TextboxComponent,\n textarea: TextareaComponent,\n select: SelectComponent,\n datepicker: DatePickerComponent,\n radio: RadioComponent,\n checkbox: CheckboxComponent,\n button: ButtonComponent,\n slideToggle: SlideToggleComponent,\n slider: SliderComponent,\n buttonToggle: ButtonToggleComponent,\n autocomplete: AutoCompleteComponent,\n chip: ChipComponent,\n editor: RichTextEditorComponent,\n divider: RichTextEditorComponent\n };\n}\n","import {ComponentRef, Directive, Input, OnInit, ViewContainerRef} from '@angular/core';\nimport {FormGroup} from \"@angular/forms\";\nimport {Constant} from \"./model/constant\";\nimport { BaseControl } from '@falcon-ng/core';\n\n@Directive({\n selector: '[reactiveField]',\n standalone: false\n})\nexport class ReactiveFieldDirective implements OnInit {\n @Input() control!: BaseControl<string>;\n @Input() formGroup!: FormGroup;\n private componentRef!: ComponentRef<any>;\n constructor(private viewContainerRef: ViewContainerRef) {\n }\n\n ngOnInit(): void {\n if (this.control !== undefined) {\n this.componentRef = this.viewContainerRef.createComponent(Constant.ComponentMapper[this.control.controlType]);\n this.componentRef.instance.control = this.control;\n this.componentRef.instance.formGroup = this.formGroup;\n }\n }\n\n}\n","import {Component, Input} from '@angular/core';\nimport {FormGroup} from \"@angular/forms\";\nimport { Layout } from '../model/layout';\n\n@Component({\n selector: 'control-builder',\n templateUrl: './control-builder.component.html',\n styleUrls: ['./control-builder.component.scss'],\n standalone: false\n})\nexport class ControlBuilderComponent {\n @Input() layout!: Layout<string>;\n @Input() formGroup!: FormGroup;\n}\n","<div [class]=\"layout.class\">\n <ng-container *ngFor=\"let control of layout.baseControls\">\n <ng-container reactiveField [control]=\"control\" [formGroup]=\"formGroup\"></ng-container>\n </ng-container>\n</div>","export abstract class EnvironmentViewModel {\n abstract readonly production: boolean;\n abstract readonly openID?: IOpenIdViewModel;\n abstract readonly baseUrl?: string;\n abstract readonly snackBarEnable?: boolean;\n}\n\n/**\n * @description\n * Interface use for an app setting configuration for Open Id Client setting.\n */\nexport declare interface IOpenIdViewModel {\n authority?: string;\n client_id?: string;\n redirect_uri?: string;\n response_type?: string;\n scope?: string;\n silent_redirect_uri?: string;\n post_logout_redirect_uri?: string;\n filterProtocolClaims?: boolean;\n loadUserInfo?: boolean;\n automaticSilentRenew?: boolean;\n monitorSession?: boolean;\n accessTokenExpiringNotificationTime?: number;\n checkSessionInterval?: number;\n silentRequestTimeout?: number;\n}\n","import { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { IRequestOptions } from '@falcon-ng/core';\nimport { HttpClient } from '@angular/common/http';\n@Injectable()\nexport abstract class IGenericHttpClient<T> {\n /**\n * @description\n * Generic Http GET method to Get the response and bind to the view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpService.HttpGet(\"get_url\").subscribe(data => {\n * console.log('success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n abstract get(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T>;\n\n /**\n * @description\n * Generic Http post method to post the view model and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpService.Post(post_url,post-view-model\").subscribe(data => {\n * console.log('data is not success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n abstract post(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T>;\n\n /**\n * @description\n * Generic Http put method to post the view model and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpService.Put(put_url,post-view-model).subscribe(data => {\n * console.log('data is not success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n abstract put(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T>;\n\n /**\n * @description\n * Generic Http patch method to patch the view model and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpService.Patch(put_url,post-view-model).subscribe(data => {\n * console.log('data is not success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n abstract patch(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T>;\n\n /**\n * @description\n * Generic Http Delete method to Delete the item and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpClientService.Delete(this.deleteUserUrl).subscribe(item => {\n * console.log('success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n abstract delete(\n destinationUrl: string,\n options?: IRequestOptions | any\n ): Observable<T>;\n\n /**\n * @description\n * Gets the underlying HttpClient instance\n * @returns {HttpClient}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpClientService.getHttpClient();\n * ```\n */\n abstract getHttpClient(): HttpClient;\n}\n","import { Injectable } from '@angular/core';\nimport { AppSettingService } from './appsetting.service';\nimport {LoggingLevel, IAppSettingViewModel} from \"@falcon-ng/core\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoggerService {\n private initialized: boolean = false;\n private _level: LoggingLevel = LoggingLevel.Warnings;\n constructor() { }\n\n async initialize(appSettings: IAppSettingViewModel): Promise<void> {\n if (this.initialized) return;\n this._level = appSettings.loggingLevel as LoggingLevel;\n this.initialized = true;\n }\n\n private log(message: any, level = LoggingLevel.Warnings, ...optionalParams: any[]) {\n if (this.shouldLog(level)) {\n switch (level) {\n case LoggingLevel.Errors:\n console.error(message, optionalParams);\n break;\n case LoggingLevel.Warnings:\n console.warn(message, optionalParams);\n break;\n case LoggingLevel.Info:\n console.info(message, optionalParams);\n break;\n default:\n console.debug(message, optionalParams);\n }\n }\n }\n\n private shouldLog(level: LoggingLevel) {\n if (this._level === LoggingLevel.None) {\n return false;\n } else if (this._level === LoggingLevel.Errors) {\n return level === LoggingLevel.Errors;\n } else if (this._level === LoggingLevel.Warnings) {\n return level === LoggingLevel.Errors || level === LoggingLevel.Warnings;\n } else if (this._level === LoggingLevel.Info) {\n return level === LoggingLevel.Errors || level === LoggingLevel.Warnings || level === LoggingLevel.Info;\n } else {\n return true;\n }\n }\n\n error(message: any, ...optionalParams: any[]) {\n this.log(message, LoggingLevel.Errors, optionalParams);\n }\n\n warning(message: any, ...optionalParams: any[]) {\n this.log(message, LoggingLevel.Warnings, optionalParams);\n }\n\n info(message: any, ...optionalParams: any[]) {\n this.log(message, LoggingLevel.Info, optionalParams);\n }\n\n verbose(message: any, ...optionalParams: any[]) {\n this.log(message, LoggingLevel.Verbose, optionalParams);\n }\n}\nexport function loggerServiceFactory(loggerService: LoggerService, appSettings: AppSettingService) {\n return async () => {\n appSettings.isServiceReady.subscribe(item => {\n if (item)\n loggerService.initialize(appSettings.getAppsettingValue() as IAppSettingViewModel);\n });\n }\n};\n","import {\n HttpClient,\n HttpRequest,\n HttpEventType,\n HttpEvent,\n HttpStatusCode,\n} from '@angular/common/http';\nimport { Observable, from } from 'rxjs';\nimport { IGenericHttpClient } from './igeneric-http-client';\nimport { Injectable } from '@angular/core';\nimport { IRequestOptions, SnackbarModel, HttpMethod } from '@falcon-ng/core';\nimport { LoggerService } from '../logger.service';\nimport { EnvironmentViewModel } from '../../model/environments';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n@Injectable({\n providedIn: 'root',\n})\nexport class GenericHttpClient<T> implements IGenericHttpClient<T> {\n private snackBarViewModel: SnackbarModel = {} as SnackbarModel;\n private isHttpError: boolean = false;\n\n constructor(\n private httpClient: HttpClient,\n private environment: EnvironmentViewModel,\n private _snackBar: MatSnackBar,\n private logger: LoggerService\n ) {}\n\n /**\n * @description\n * Gets the underlying HttpClient instance\n * @returns {HttpClient}\n */\n public getHttpClient(): HttpClient {\n return this.httpClient;\n }\n\n /**\n * @description\n * Generic Http GET method to Get the response and bind to the view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpService.Get(\"get_url\").subscribe(data => {\n * console.log('success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n public get(destinationUrl: string, options?: IRequestOptions | any): Observable<T> {\n return this.request<T>(HttpMethod.Get, destinationUrl, options);\n }\n\n /**\n * @description\n * Generic Http post method to post the view model and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpClientService.Post(post-url,post-view-model).subscribe(item => {\n * console.log(item);\n * },\n * err => {\n * console.log(err);\n * });\n * ```\n */\n public post(destinationUrl: string, options?: IRequestOptions | any): Observable<T> {\n return this.request<T>(HttpMethod.Post, destinationUrl, options);\n }\n\n /**\n * @description\n * Generic Http Put method to post the view model and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpClientService.Put(post-url, post-view-model).subscribe(item => {\n * console.log(item);\n * },\n * err => {\n * console.log(err);\n * });\n * ```\n */\n public put(destinationUrl: string, options?: IRequestOptions | any): Observable<T> {\n return this.request<T>(HttpMethod.Put, destinationUrl, options);\n }\n\n /**\n * @description\n * Generic Http post method to post the view model and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpClientService.Post(post-url,post-view-model).subscribe(item => {\n * console.log(item);\n * },\n * err => {\n * console.log(err);\n * });\n * ```\n */\n public patch(destinationUrl: string, options?: IRequestOptions | any): Observable<T> {\n return this.request<T>(HttpMethod.Patch, destinationUrl, options);\n }\n\n /**\n * @description\n * Generic Http Delete method to Delete the item and bind the return view model\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.genericHttpClientService.Delete(this.deleteUserUrl).subscribe(item => {\n * console.log('success');\n * }, error => {\n * console.log(error);\n * });\n * ```\n */\n public delete(destinationUrl: string, options?: IRequestOptions | any): Observable<T> {\n return this.request<T>(HttpMethod.Delete, destinationUrl, options);\n }\n\n /**\n * @description\n * Http request method to accept different method type and params\n * @param {string} method Http methods - GET, POST, PUT, DELETE.\n * @param {string} destinationUrl endPoint it doesn't need / in front of the end point.\n * @param {IRequestOptions} options options of the request like headers, body, etc.\n * @returns {Observable<T>}\n * @usageNotes\n * The following snippet shows how to use this method\n * ```ts\n * this.request<T>(HttpMethod.Delete, destinationUrl, options);\n * ```\n */\n private request<T>(method: string, url: string, options?: IRequestOptions): Observable<T> {\n this.logger.info('Http Client request started!');\n return Observable.create((observer: any) => {\n let destinationUrl = '';\n if (this.environment.baseUrl != undefined) destinationUrl = this.environment.baseUrl + url;\n else destinationUrl = url;\n this.httpClient.request<T>(new HttpRequest(method, destinationUrl, options)).subscribe(\n (response: any) => {\n const responsTye = response as HttpEvent<any>;\n switch (responsTye.type) {\n case HttpEventType.Sent:\n this.logger.info('Http Client : Sent ->', 'Request sent!');\n break;\n case HttpEventType.ResponseHeader:\n this.logger.info('Http Client : ResponseHeader ->', 'Response header received!');\n break;\n case HttpEventType.DownloadProgress:\n const kbLoaded = Math.round(responsTye.loaded / 1024);\n this.logger.info(\n 'Http Client : DownloadProgress ->',\n `Download in progress! ${kbLoaded}Kb loaded`\n );\n break;\n case HttpEventType.Response:\n observer.next(response.body);\n this.logger.info('Http Client : Response -> 😺 Done!', responsTye.body);\n }\n },\n (error: any) => {\n this.logger.error('********** Errors *******************');\n this.logger.error(error);\n switch (error.status) {\n case HttpStatusCode.Forbidden:\n // observer.complete();\n this.snackBarViewModel.messageText = 'Access to the requested resource is forbidden.';\n this.snackBarViewModel.actionText = 'Forbidden';\n this.isHttpError = true;\n break;\n case HttpStatusCode.BadRequest:\n this.snackBarViewModel.messageText = 'Server cannot or will not process the request.';\n this.snackBarViewModel.actionText = 'Bad Request';\n this.isHttpError = true;\n break;\n case HttpStatusCode.Unauthorized:\n this.snackBarViewModel.messageText =\n 'Request has not been applied because it lacks valid authentication credentials.';\n this.snackBarViewModel.actionText = 'Unauthorized';\n this.isHttpError = true;\n break;\n case HttpStatusCode.InternalServerError:\n this.snackBarViewModel.messageText = 'Server encountered an unexpected condition.';\n this.snackBarViewModel.actionText = 'Internal server error';\n this.isHttpError = true;\n break;\n case 0:\n this.snackBarViewModel.messageText = 'Not connected to the service.';\n this.snackBarViewModel.actionText = 'Service not available';\n this.isHttpError = true;\n break;\n }\n this.logger.error(`Error code : ${HttpStatusCode.Forbidden}`);\n observer.error(error);\n this.logger.info(\n `Snackbar condition : ${this.environment.snackBarEnable} && ${this.environment.snackBarEnable} && ${this.isHttpError}`\n );\n if (\n this.environment.snackBarEnable != undefined &&\n this.environment.snackBarEnable &&\n this.isHttpError\n )\n this._snackBar.open(\n this.snackBarViewModel.messageText,\n this.snackBarViewModel.actionText\n );\n }\n );\n });\n }\n}\n","import {Injectable} from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport {Subject, Observable, from} from 'rxjs';\nimport {LoggerService} from './logger.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppSettingService {\n static APP_SETTINGS_LOADED = \"APP_SETTINGS_LOADED\";\n private listeners: any;\n initialized: boolean = false;\n private eventsSubject: Subject<any>;\n public isServiceReady: Subject<boolean> = new Subject<boolean>();\n private events: Observable<any>;\n private appSettings: any;\n\n constructor(private http: HttpClient, private logger: LoggerService) {\n this.listeners = {};\n this.eventsSubject = new Subject<any>();\n\n this.events = from(this.eventsSubject);\n this.events.subscribe(\n ({name, args}) => {\n if (this.listeners[name]) {\n for (let listener of this.listeners[name]) {\n listener(...args);\n }\n }\n });\n }\n\n async load() {\n if (this.initialized) return;\n let data = await this.http.get('assets/appsetting.json').toPromise();\n this.appSettings = data;\n this.initialized = true;\n this.isServiceReady.next(this.initialized);\n this.logger.info(\"[AppSettingService] load --> isServiceReady\", this.initialized);\n }\n\n on(name: any, listener: any) {\n if (!this.listeners[name]) {\n this.listeners[name] = [];\n }\n\n this.listeners[name].push(listener);\n }\n\n public getAppsettingValue<T>(): T | null {\n return this.appSettings ? <T>this.appSettings : null;\n }\n}\n\nexport function appSettingsFactory(appSettings: AppSettingService) {\n return async () => await appSettings.load();\n};","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenHelperService {\n constructor() { }\n\n getTokenExpirationDate(dataIdToken: any): Date {\n if (!dataIdToken.hasOwnProperty('exp')) {\n return new Date();\n }\n\n const date = new Date(0); // The 0 here is the key, which sets the date to the epoch\n date.setUTCSeconds(dataIdToken.exp);\n\n return date;\n }\n\n getPayloadFromToken(token: any, encode: boolean) {\n let data = {};\n if (typeof token !== 'undefined') {\n const encoded = token.split('.')[1];\n if (encode) {\n return encoded;\n }\n data = JSON.parse(this.urlBase64Decode(encoded));\n }\n\n return data;\n }\n\n getHeaderFromToken(token: any, encode: boolean) {\n let data = {};\n if (typeof token !== 'undefined') {\n const encoded = token.split('.')[0];\n if (encode) {\n return encoded;\n }\n data = JSON.parse(this.urlBase64Decode(encoded));\n }\n\n return data;\n }\n\n getSignatureFromToken(token: any, encode: boolean) {\n let data = {};\n if (typeof token !== 'undefined') {\n const encoded = token.split('.')[2];\n if (encode) {\n return encoded;\n }\n data = JSON.parse(this.urlBase64Decode(encoded));\n }\n\n return data;\n }\n\n urlBase64Decode(str: string) {\n let output = str.replace('-', '+').replace('_', '/');\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += '==';\n break;\n case 3:\n output += '=';\n break;\n default:\n throw Error('Illegal base64url string!');\n }\n\n return window.atob(output);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LoggerService } from '../logger.service';\nimport { TokenHelperService } from './TokenHelperService';\nimport { EnvironmentViewModel } from '../../model/environments';\nimport { AppSettingService } from '../appsetting.service';\nimport {\n User,\n UserManager,\n UserManagerSettings,\n UserProfile,\n} from 'oidc-client-ts';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n static USER_LOADED_EVENT = 'USER_LOADED';\n static USER_UNLOADED_EVENT = 'USER_UNLOADED';\n\n private initialized: boolean = false;\n public userManager!: UserManager;\n private user: any;\n public settings!: UserManagerSettings;\n\n private accessToken!: Object;\n private signingOut: boolean = false;\n\n constructor(\n private logger: LoggerService,\n private tokenHelperService: TokenHelperService\n ) {}\n\n async initialize(environment: EnvironmentViewModel): Promise<void> {\n if (this.initialized) return;\n this.settings = this.getClientSettings(environment);\n this.userManager = new UserManager(this.settings);\n this.userManager.events.addUserLoaded(user => {\n this.user = user;\n });\n\n this.userManager.events.addAccessTokenExpiring(() => {\n this.logger.info('IdSvr token expiring ' + new Date().toLocaleString());\n });\n\n this.userManager.events.addAccessTokenExpired(() => {\n this.logger.info('IdSvr token expired ' + new Date().toLocaleString());\n this.logout(false);\n });\n\n this.userManager.events.addSilentRenewError(e => {\n this.logger.error(\n 'IdSvr silent renew error ' + e.message + new Date().toLocaleString()\n );\n this.logout(false);\n });\n\n this.userManager.events.addUserLoaded(user => {\n this.logger.info(\n 'IdSvr user session is ready ' + new Date().toLocaleString()\n );\n this.accessToken = this.tokenHelperService.getPayloadFromToken(\n user.access_token,\n false\n );\n this.user = user;\n });\n\n this.userManager.events.addUserUnloaded(() => {\n this.logger.info(\n 'IdSvr user session has ended ' + new Date().toLocaleString()\n );\n\n if (!this.signingOut) {\n this.startAuthentication(\n window.location.pathname + window.location.search\n );\n }\n });\n\n this.userManager.events.addUserSignedOut(() => {\n this.logger.info('IdSvr user signed out ' + new Date().toLocaleString());\n this.logout(false);\n });\n\n this.user = await this.userManager.getUser();\n this.initialized = true;\n }\n\n public isLoggedIn(): boolean {\n return this.user != null && !this.user.expired;\n }\n\n public getUser(): Promise<User | null> {\n return this.userManager.getUser();\n }\n\n public getProfile(): UserProfile {\n return this.user.profile;\n }\n\n public getClaims(): UserProfile {\n return this.user.profile;\n }\n\n public getAuthorizationHeaderValue(): string {\n if (this.user != null)\n return `${this.user.token_type} ${this.user.access_token}`;\n return '';\n }\n\n getAccessToken(): any {\n return (\n this.accessToken ||\n this.tokenHelperService.getPayloadFromToken(this.user.access_token, false)\n );\n }\n\n async startAuthentication(returnUrl: string): Promise<void> {\n this.logger.info('[AuthService] startAuthentication', returnUrl);\n await this.userManager.clearStaleState();\n await this.userManager.signinRedirect().catch(err => {\n //this.log.debug(\"IdSvr sign in failed\", err);\n return err;\n });\n }\n\n public login(): Promise<void> {\n return this.userManager.signinRedirect();\n }\n\n public renewToken(): Promise<User | null> {\n return this.userManager.signinSilent();\n }\n\n public logout(signoutRedirect?: boolean): Promise<void> {\n if (signoutRedirect === undefined || signoutRedirect !== false) {\n this.signingOut = true;\n signoutRedirect = true;\n }\n\n return this.userManager.signoutRedirect();\n }\n\n private getClientSettings(\n environment: EnvironmentViewModel\n ): UserManagerSettings {\n return {\n authority: environment?.openID?.authority as string,\n client_id: environment?.openID?.client_id as string,\n redirect_uri: environment?.openID?.redirect_uri as string,\n post_logout_redirect_uri: environment?.openID?.post_logout_redirect_uri,\n response_type: environment?.openID?.response_type,\n scope: environment?.openID?.scope,\n filterProtocolClaims: environment?.openID?.filterProtocolClaims,\n loadUserInfo: true,\n monitorSession: true,\n silent_redirect_uri: environment?.openID?.silent_redirect_uri,\n automaticSilentRenew: environment?.openID?.automaticSilentRenew,\n accessTokenExpiringNotificationTimeInSeconds: 2,\n checkSessionIntervalInSeconds: 2,\n silentRequestTimeoutInSeconds: 2,\n };\n }\n\n async isServiceReady(): Promise<boolean> {\n return new Promise(async (resolve, reject) => {\n if (this.initialized) {\n this.logger.info('[AuthService] isServiceReady', true);\n resolve(true);\n } else {\n this.logger.info('[AuthService] isServiceReady', false);\n reject(false);\n }\n });\n }\n}\n\nexport function authServiceFactory(\n authService: AuthService,\n appSettings: AppSettingService,\n environment: EnvironmentViewModel\n) {\n return async () => {\n appSettings.isServiceReady.subscribe(item => {\n if (item) authService.initialize(environment);\n });\n };\n}\n","import {Component, Inject} from '@angular/core';\nimport {IDialogData} from \"@falcon-ng/core\";\nimport {MAT_DIALOG_DATA} from \"@angular/material/dialog\";\n@Component({\n selector: 'lib-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n standalone: false\n})\nexport class DialogComponent {\n constructor(@Inject(MAT_DIALOG_DATA) public data: IDialogData) {}\n}\n","<span mat-dialog-title>{{data.title}}</span>\n<mat-divider></mat-divider>\n<div mat-dialog-content>\n <span class=\"mat-h3\">{{data.bodyMessage}}</span>\n</div>\n<mat-divider></mat-divider>\n<div mat-dialog-actions>\n <button mat-raised-button [mat-dialog-close]=\"\" cdkFocusInitial>{{data.cancelBtnText}}</button>\n <button mat-raised-button [color]=\"'warn'\" [mat-dialog-close]=\"data\">\n {{data.mainbtnText}}\n </button>\n </div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-snack-bar',\n templateUrl: './snack-bar.component.html',\n styleUrls: ['./snack-bar.component.scss'],\n standalone: false\n})\nexport class SnackBarComponent {\n\n}\n","<span>Pizza party!!! 🍕</span>","import {Component, Inject} from '@angular/core';\nimport {MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef} from \"@angular/material/bottom-sheet\";\n\n@Component({\n selector: 'lib-bottom-sheet',\n templateUrl: './bottom-sheet.component.html',\n styleUrls: ['./bottom-sheet.component.scss'],\n standalone: false\n})\nexport class BottomSheetComponent {\n constructor(private _bottomSheetRef: MatBottomSheetRef<BottomSheetComponent>, @Inject(MAT_BOTTOM_SHEET_DATA) public data: any) { }\n\n click(event: MouseEvent, item : any): void {\n this._bottomSheetRef.dismiss(item);\n event.preventDefault();\n }\n}\n","<mat-nav-list>\n <ng-container *ngFor=\"let item of data\">\n <a [href]=\"item.link\" mat-list-item (click)=\"click($event,item)\">\n <span matListItemTitle>{{item.levelOneText}}</span>\n <span matLine>{{item.levelTwoText}}</span>\n </a>\n </ng-container>\n\n</mat-nav-list>\n","import {Component, Input} from '@angular/core';\nimport {ThemePalette} from \"@angular/material/core\";\nimport {ProgressBarMode} from \"@angular/material/progress-bar\";\n\n@Component({\n selector: 'falcon-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n standalone: false\n})\nexport class ProgressBarComponent {\n @Input() bufferValue!: number;\n @Input() color: ThemePalette;\n @Input() mode!: ProgressBarMode;\n @Input() value!: number;\n}\n","<mat-progress-bar [mode]=\"mode\" [bufferValue]=\"bufferValue\" [color]=\"color\" [value]=\"value\"></mat-progress-bar>","import {Component, Input} from '@angular/core';\nimport {ThemePalette} from \"@angular/material/core\";\nimport {ProgressSpinnerMode} from \"@angular/material/progress-spinner\";\n\n@Component({\n selector: 'falcon-progress-spinner',\n templateUrl: './progress-spinner.component.html',\n styleUrls: ['./progress-spinner.component.scss'],\n standalone: false\n})\nexport class ProgressSpinnerComponent {\n @Input() diameter: number = 100;\n @Input() color: ThemePalette;\n @Input() mode!: ProgressSpinnerMode;\n @Input() value!: number;\n @Input() strokeWidth: number = 5;\n}\n","<mat-progress-spinner\n [color]=\"color\"\n [mode]=\"mode\"\n [diameter]=\"diameter\"\n[strokeWidth]=\"strokeWidth\"\n [value]=\"value\">\n</mat-progress-spinner>","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {MatTableConfig} from \"@falcon-ng/core\";\nimport {MatPaginator, PageEvent} from \"@angular/material/paginator\";\nimport {MatSort} from \"@angular/material/sort\";\nimport {MatTableDataSource} from \"@angular/material/table\";\nimport {TableAction} from \"@falcon-ng/core\";\n@Component({\n selector: 'falcon-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n standalone: false\n})\nexport class TableComponent implements OnInit {\n @Input() matTableConfig!: MatTableConfig;\n @ViewChild(MatPaginator, { static: false }) paginator!: MatPaginator;\n @ViewChild(MatSort, { static: false }) sort!: MatSort;\n @Output() pageEvent = new EventEmitter<PageEvent>();\n @Input() displayedColumns!: string[];\n @Output() tableActionRowEvent = new EventEmitter<any>();\n ngOnInit(): void {\n const cols = this.matTableConfig.columns?.map((c) => c.columnDef);\n if (this.displayedColumns !== undefined)\n this.displayedColumns.unshift(...cols as string[]);\n else this.displayedColumns = cols as string[];\n }\n ngAfterViewInit() {\n setTimeout(() => {\n this.matTableConfig.dataSource = new MatTableDataSource(\n this.matTableConfig.dataSource,\n );\n this.matTableConfig.dataSource.paginator = this.paginator;\n this.matTableConfig.dataSource.sort = this.sort;\n });\n }\n applyFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value;\n this.matTableConfig.dataSource.filter = filterValue\n .trim()\n .toLowerCase();\n\n if (this.matTableConfig.dataSource.paginator) {\n this.matTableConfig.dataSource.paginator.firstPage();\n }\n }\n\n public page(e: any) {\n this.pageEvent.emit(e);\n }\n\n public tableAction($item: any, action: TableAction) {\n const item = Object.assign($item, { action: action });\n this.tableActionRowEvent.next(item);\n }\n}\n","<div class=\"flex justify-end\">\n <mat-form-field *ngIf=\"matTableConfig.filter\" appearance=\"outline\">\n <mat-label>Filter</mat-label>\n <input matInput (keyup)=\"applyFilter($event)\" #input>\n </mat-form-field>\n</div>\n<falcon-progress-bar *ngIf=\"matTableConfig.progressBar\" [mode]=\"'indeterminate'\"></falcon-progress-bar>\n<div class=\"mat-elevation-z8\">\n <table mat-table [dataSource]=\"matTableConfig.dataSource\" matSort>\n <ng-container *ngFor=\"let column of matTableConfig.columns\" matColumnDef={{column.columnDef}}>\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{ column.header }}</th>\n <ng-container *ngIf=\"column?.link?.isLink; else elseBlock\">\n <td mat-cell *matCellDef=\"let element\">\n <a [routerLink]=\"column?.link?.routerLink(element)\">\n {{column?.cell(element) !== undefined ? column?.cell(element) : '' }}\n </a>\n </td>\n </ng-container>\n <ng-template #elseBlock>\n <td mat-cell *matCellDef=\"let element\">\n {{ column.cell(element) !== undefined ? column.cell(element) : ''}}\n </td>\n </ng-template>\n\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" class=\"mat-row-element example-expanded-row\"></tr>\n\n &lt;!&ndash; Row shown when there is no matching data. &ndash;&gt;\n <tr class=\"mat-row\" *matNoDataRow>\n <td class=\"mat-cell\" colspan=\"columns.length\">No data matching the filter</td>\n </tr>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef style=\"text-align: center;\"></th>\n <td mat-cell *matCellDef=\"let element\">\n\n <div *ngIf=\"matTableConfig.action?.isMenu; else nonMenuBlock\">\n\n <button mat-icon-button matTooltip=\"Action\" [matMenuTriggerFor]=\"tableActionMenu\"\n aria-label=\"Table action menu\">\n <mat-icon color=\"primary\">more_horiz</mat-icon>\n </button>\n <mat-menu #tableActionMenu=\"matMenu\">\n <a [routerLink]=\"item?.link?.routerLink\" mat-menu-item *ngFor=\"let item of matTableConfig.action?.menu\"\n [disabled]=\"item.disabled\">\n <mat-icon [color]=\"item?.icon?.iconColor\">{{item?.icon?.iconText}}</mat-icon>\n <span>{{item.text}}</span>\n </a>\n </mat-menu>\n </div>\n <ng-template #nonMenuBlock>\n <div class=\"flex justify-between\">\n <div>\n <button *ngIf=\"matTableConfig.action?.view\" mat-icon-button aria-label=\"view button\" color=\"primary\"\n matTooltip=\"View\" (click)=\"tableAction(element, 0)\">\n <mat-icon>visibility</mat-icon>\n </button>\n <button *ngIf=\"matTableConfig.action?.edit\" mat-icon-button aria-label=\"edit button\" color=\"primary\"\n matTooltip=\"Edit\" (click)=\"tableAction(element, 1)\">\n <mat-icon>create</mat-icon>\n </button>\n <button *ngIf=\"matTableConfig.action?.delete\" mat-icon-button aria-label=\"Delete button\" color=\"warn\"\n matTooltip=\"Delete\" (click)=\"tableAction(element, 2)\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n <button *ngIf=\"matTableConfig.action?.arrowRight\" mat-icon-button aria-label=\"Arrow button\" color=\"primary\"\n matTooltip=\"Expand\" (click)=\"tableAction(element, 3)\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n </ng-template>\n </td>\n </ng-container>\n\n </table>\n <mat-paginator *ngIf=\"matTableConfig.paginationConfig?.pagination\" (page)=\"page($event)\"\n [pageSizeOptions]=\"matTableConfig.paginationConfig?.pageSizeOptions!\" showFirstLastButtons>\n </mat-paginator>\n</div>","import {Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'falcon-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n standalone: false\n})\nexport class PaginationComponent {\n @Input() totalPage: number = 10;\n @Input() pageSize: number = 10;\n @Output() paginationEvent = new EventEmitter<number>();\n paginationSize: number[] = new Array(10);\n preDisable: boolean = true;\n nextDisable: boolean = false;\n private start!: number;\n private end!: number;\n currentPage: number = 1;\n firstLoad: boolean = false;\n\n constructor() {}\n\n ngOnInit(): void {\n this.firstLoad = true;\n this.paginationSize = [\n ...Array.from(\n {\n length:\n this.totalPage < this.pageSize\n ? this.totalPage\n : this.pageSize,\n },\n (_, i) => i + 1,\n ),\n ];\n if (this.paginationSize.length == this.totalPage)\n this.nextDisable = true;\n }\n\n receiveBtnChange($event: any) {\n this.firstLoad = false;\n this.currentPage = $event;\n if ($event == this.totalPage) this.nextDisable = true;\n else if ($event == 1) {\n this.nextDisable = false;\n this.preDisable = true;\n } else {\n this.nextDisable = false;\n this.preDisable = false;\n }\n\n if ($event === 'previous') {\n this.preDisable = true;\n } else if ($event === 'next') {\n } else {\n if (this.totalPage <= this.pageSize) {\n this.paginationSize = [\n ...Array.from({ length: this.totalPage }, (_, i) => i + 1),\n ];\n } else {\n // start\n if ($event < 6) {\n this.start = 1;\n } else {\n if ($event + 5 < this.totalPage) {\n this.start = $event - 5;\n } else {\n this.start = this.totalPage - this.pageSize;\n }\n }\n //End\n if ($event + 5 < this.totalPage) {\n this.end = this.start + 9;\n } else {\n this.end = this.totalPage;\n }\n this.paginationSize = this.range(this.start, this.end);\n }\n }\n this.paginationEvent.emit($event);\n }\n private range(start: number, end: number) {\n return Array(Math.abs(start - end) + 1)\n .fill(start)\n .map((v, i) => v + i * (start > end ? -1 : 1));\n }\n}\n","<div class=\"flex justify-between\">\n <span class=\"mat-h3\">Page {{currentPage}} of {{totalPage}}</span>\n <mat-button-toggle-group name=\"fontStyle\" aria-label=\"Font Style\">\n <mat-button-toggle value=\"bold\" *ngFor=\"let item of paginationSize; index as i;\"\n (change)=\"receiveBtnChange(item)\" [checked]=\"firstLoad && i ==0\">\n &nbsp;&nbsp; <span class=\"mat-h3\">{{item}}</span>&nbsp;&nbsp;\n </mat-button-toggle>\n </mat-button-toggle-group>\n\n</div>","import { ModuleWithProviders, NgModule, inject, provideAppInitializer } from '@angular/core';\nimport {TextboxComponent} from './component/textbox/textbox.component';\nimport {TextareaComponent} from './component/textarea/textarea.component';\nimport {SelectComponent} from './component/select/select.component';\nimport {ReactiveFieldDirective} from './reactive-field.directive';\nimport {AngularmaterialModule} from \"@falcon-ng/core\";\nimport {CommonModule} from \"@angular/common\";\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\nimport {ControlBuilderComponent} from \"./control-builder/control-builder.component\";\nimport {EnvironmentViewModel} from \"./model/environments\";\nimport {RouterModule} from \"@angular/router\";\nimport {IGenericHttpClient} from \"./service/http/igeneric-http-client\";\nimport {GenericHttpClient} from \"./service/http/generic-http-client\";\nimport {AppSettingService, appSettingsFactory} from \"./service/appsetting.service\";\nimport {AuthService, authServiceFactory} from \"./service/open-id/auth.service\";\nimport {LoggerService, loggerServiceFactory} from \"./service/logger.service\";\nimport {MAT_SNACK_BAR_DEFAULT_OPTIONS} from \"@angular/material/snack-bar\";\nimport { provideHttpClient, withInterceptors } from \"@angular/common/http\";\nimport { DatePickerComponent } from './component/date-picker/date-picker.component';\nimport { CheckboxComponent } from './component/checkbox/checkbox.component';\nimport { RadioComponent } from './component/radio/radio.component';\nimport { AutoCompleteComponent } from './component/auto-complete/auto-complete.component';\nimport { ButtonToggleComponent } from './component/button-toggle/button-toggle.component';\nimport { ChipComponent } from './component/chips/chip.component';\nimport { SliderComponent } from './component/slider/slider.component';\nimport { SlideToggleComponent } from './component/slide-toggle/slide-toggle.component';\nimport { ButtonComponent } from './component/button/button.component';\nimport { DialogComponent } from './component/dialog/dialog.component';\nimport { SnackBarComponent } from './component/snack-bar/snack-bar.component';\nimport { BottomSheetComponent } from './component/bottom-sheet/bottom-sheet.component';\nimport { ProgressBarComponent } from './component/progress-bar/progress-bar.component';\nimport { ProgressSpinnerComponent } from './component/progress-spinner/progress-spinner.component';\nimport { TableComponent } from './component/table/table.component';\nimport { PaginationComponent } from './component/pagination/pagination.component';\nimport { RichTextEditorComponent } from './component/rich-text-editor/rich-text-editor.component';\nimport {AngularEditorModule} from \"@kolkov/angular-editor\";\n\n@NgModule({\n declarations: [\n TextboxComponent,\n TextareaComponent,\n SelectComponent,\n ReactiveFieldDirective,\n ControlBuilderComponent,\n DatePickerComponent,\n CheckboxComponent,\n RadioComponent,\n AutoCompleteComponent,\n ButtonToggleComponent,\n ChipComponent,\n SliderComponent,\n SlideToggleComponent,\n ButtonComponent,\n DialogComponent,\n SnackBarComponent,\n BottomSheetComponent,\n ProgressBarComponent,\n ProgressSpinnerComponent,\n TableComponent,\n PaginationComponent,\n RichTextEditorComponent\n ],\n imports: [\n AngularmaterialModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n AngularEditorModule,\n ],\n exports: [\n AngularmaterialModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ControlBuilderComponent,\n RouterModule,\n ProgressBarComponent,\n ProgressSpinnerComponent,\n PaginationComponent,\n TableComponent,\n AngularEditorModule,\n ButtonComponent,\n ],\n providers: [\n provideHttpClient(\n withInterceptors([\n (req, next) => {\n // Get the auth token from the service.\n const authToken = inject(AuthService).getAuthorizationHeaderValue();\n inject(LoggerService).info(\"Auth bearer token \", authToken);\n if (authToken) {\n req = req.clone({\n setHeaders: {\n 'Content-Type': 'application/json',\n Authorization: authToken\n }\n });\n }\n return next(req);\n },\n ])\n ),\n {provide: IGenericHttpClient, useClass: GenericHttpClient},\n provideAppInitializer(() => {\n const initializerFn = (appSettingsFactory)(inject(AppSettingService));\n return initializerFn();\n }),\n provideAppInitializer(() => {\n const initializerFn = (authServiceFactory)(inject(AuthService), inject(AppSettingService), inject(EnvironmentViewModel));\n return initializerFn();\n }),\n provideAppInitializer(() => {\n const initializerFn = (loggerServiceFactory)(inject(LoggerService), inject(AppSettingService));\n return initializerFn();\n }),\n {\n provide: MAT_SNACK_BAR_DEFAULT_OPTIONS,\n useValue: {duration: 5000},\n },\n ],\n})\nexport class FalconTailwindModule {\n public static forRoot(\n environment: any,\n ): ModuleWithProviders<FalconTailwindModule> {\n return {\n ngModule: FalconTailwindModule,\n providers: [\n {provide: EnvironmentViewModel, useValue: environment},\n ],\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AuthService } from './auth.service';\nimport { RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuardService {\n\n constructor(private authService : AuthService) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) : boolean | Observable<boolean> | Promise<boolean> {\n return new Promise<boolean>(resolve => {\n this.authService.isServiceReady().then(() => {\n if (this.authService.isLoggedIn()) {\n resolve(true);\n } else {\n this.authService.startAuthentication(state.url);\n resolve(false);\n }\n })\n });\n }\n}\n","import {Observable} from 'rxjs';\nimport {\n FormBuilder,\n FormGroup,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport {inject} from '@angular/core';\nimport {BaseControl,IValidator} from \"@falcon-ng/core\"\nimport { Layout } from './model/layout';\n\n/**\n * @description\n * Base form component initialized to create form controls, set validation, submit.\n *\n * @usageNotes\n * The following snippet shows how a component can implement this abstract class to\n * define its own initialization method.\n * ```ts\n * export class InputComponent extends BaseFormComponent<any> implements OnInit {\n * constructor(fb : FormBuilder) {\n * super(fb);\n * this.defineForm();\n * }\n * protected defineForm(): void {\n * }\n * ngOnInit(): void {\n * this.formGroup = this.createControls();\n * }\n * protected submitDatasource(model: any): Observable<any> {\n * return of(model);\n * }\n * ```\n */\nexport abstract class BaseFormComponent<T> {\n public formGroup!: FormGroup;\n\n protected abstract defineForm(): void;\n\n protected abstract submitDataSource(model: T): Observable<T>;\n\n public dataSource: T | undefined = undefined;\n public controlsConfig!: Layout<T>;\n public showLoading: boolean = false;\n protected fb = inject(FormBuilder);\n\n constructor() {\n }\n\n /**\n * @description\n * Method evoke on when the form is submitted.\n * @returns submitDatasource() method with form data if valid otherwise form invalid.\n */\n public onSubmit() {\n if (this.formGroup !== undefined && this.formGroup.valid) {\n this.submitDataSource(this.formGroup.value);\n } else {\n this.validateAllFormFields(this.formGroup);\n }\n }\n\n /**\n * @description\n * Private method to validate all form controls before is form submited.\n * @param formGroup Validate form group.\n * @returns Groups of controls added to the form builder.\n */\n private validateAllFormFields(formGroup: FormGroup) {\n if (this.formGroup !== undefined) this.formGroup.markAllAsTouched();\n }\n\n /**\n * @description\n * Create the reactive form controls\n * @returns Groups of controls added to the form builder.\n */\n protected createControls() {\n const group = this.fb.group({});\n this.controlsConfig.baseControls.forEach((controls, index) => {\n this.bindControl(controls, group, index);\n });\n return group;\n }\n\n /**\n * @description\n * Private method to bind the form control.\n * @param controlConfig field to bind.\n * @param group group to add.\n * @param index index of the layout\n */\n private bindControl(\n controlConfig: BaseControl<T>,\n group: FormGroup,\n index: number\n ) {\n if (controlConfig.controlType === 'button') return;\n let control = null;\n if (controlConfig.formArray !== undefined) {\n control =\n controlConfig.formArray.length > 0\n ? this.fb.array([\n this.createFormArrayGroup(\n controlConfig.formArray[\n controlConfig.formArray.length - 1\n ].formArray,\n ),\n ])\n : this.fb.array(\n [],\n this.bindValidations(controlConfig.validations || []),\n );\n } else {\n control = this.fb.control(\n {\n value: controlConfig.value,\n disabled: controlConfig.disabled,\n },\n this.bindValidations(controlConfig.validations || [])\n );\n }\n group.addControl(controlConfig.formControlName, control);\n }\n\n /**\n * @description\n * Private method to bind the validation to the form controls on form submit.\n * @param validations Push the validation to the controls.\n * @returns Validation.\n */\n private bindValidations(validations: IValidator[]) {\n if (validations.length > 0) {\n const validList: (ValidatorFn | null | undefined)[] = [];\n validations.forEach((valid: IValidator) => {\n validList.push(valid.validator);\n });\n return Validators.compose(validList);\n }\n return null;\n }\n\n /**\n * Create an form array element\n * @param layoutConfig layout of form array\n * @returns Form array group\n */\n private createFormArrayGroup(componentConfig: BaseControl<T>[] | undefined): FormGroup {\n var formGroup: FormGroup = this.fb.group({});\n componentConfig?.forEach((item, index) => {\n var control = null;\n if (item.formArray !== undefined) {\n control =\n item.formArray.length > 0\n ? this.fb.array(\n [\n this.createFormArrayGroup(\n item.formArray[item.formArray.length - 1].formArray,\n ),\n ],\n this.bindValidations(item.validations || []),\n )\n : this.fb.array(\n [],\n this.bindValidations(item.validations || []),\n );\n } else {\n control = this.fb.control(\n {\n value: item.value,\n disabled: item.disabled,\n },\n this.bindValidations(item.validations || []),\n );\n }\n formGroup.addControl(item.formControlName, control);\n });\n return formGroup;\n }\n\n /**\n * @description\n * Reset fild values to default or specify some value.\n * @param defaultValues Specify the specific value to set to the controls.\n * @returns void.\n */\n public reset(defaultValues?: any): void {\n this.formGroup.reset(defaultValues);\n }\n\n /**\n * @description\n * Reset specific fild Errors.\n * @param name Name of the field to reset the error.\n * @returns void.\n */\n resetFieldErrors(name: string): void {\n this.formGroup?.get(name)?.setErrors(null);\n }\n\n /**\n * @description\n * Get the controls value from the form.\n * @returns Form controls values.\n */\n get value(): any {\n return this.formGroup.value;\n }\n\n /**\n * @description\n * Updating parts of the data model.\n * Use the patchValue() method to replace any properties defined in the object that have changed in the form model.\n * @returns Form controls values.\n * @param value The object that matches the structure of the group.\n * @param options Configuration options that determine how the control propagates changes and\n * emits events after the value is patched.\n * `onlySelf`: When true, each change only affects this control and not its parent. Default is\n * true.\n * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * @usageNotes\n * The following snippet shows how a component can implement this abstract class to\n * define its own initialization method.\n * ```ts\n * this.formGroup.patchValue({\n * name: 'Todd Motto',\n * event: {\n * title: 'AngularCamp 2016',\n * location: 'Barcelona, Spain'\n * }\n * });\n * ```\n */\n protected patchValue(\n value: { [key: string]: any },\n options?: { onlySelf?: boolean; emitEvent?: boolean }\n ) {\n return this.formGroup.patchValue(value, options);\n }\n\n /**\n * @description\n * Updating parts of the data model.\n * Use the setValue() method to set a new value for an individual control. The setValue() method strictly adheres to the structure of the form group and replaces the entire value for the control.\n * @returns Form controls values.\n * @param value The object that matches the structure of the group.\n * @param options Configuration options that determine how the control propagates changes and\n * emits events after the value is patched.\n * `onlySelf`: When true, each change only affects this control and not its parent. Default is\n * true.\n * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * @usageNotes\n * The following snippet shows how a component can implement this abstract class to\n * define its own initialization method.\n * ```ts\n * this.formGroup.setValue({\n * name: 'Todd Motto',\n * event: {\n * title: 'AngularCamp 2016',\n * location: 'Barcelona, Spain'\n * }\n * });\n * ```\n */\n protected setValue(\n value: { [key: string]: any },\n options?: { onlySelf?: boolean; emitEvent?: boolean }\n ) {\n return this.formGroup.setValue(value, options);\n }\n\n /**\n * @description\n * Dynamically remove the form control.\n * @param index Index of item.\n * @usageNotes\n * The following snippet shows how to remove the form control from Froup Group\n * ```ts\n * removeControl(1);\n * ```\n */\n protected removeControl(layoutIndex: number, index: number) {\n this.formGroup.removeControl(\n this.controlsConfig.baseControls[layoutIndex].formControlName\n );\n this.controlsConfig.baseControls.splice(index, 1);\n }\n\n /**\n * @description\n * Dynamically add the form control.\n * @param configToAdd Configuration of the form control.\n * @param index Add controls to the specific index.\n * @usageNotes\n * The following snippet shows how a component can implement this abstract class to\n * define its own initialization method.\n * ```ts\n * var configToadd = {\n * componentProperty: {\n * label: \"Outline Auto complete\",\n * options: [{ value: 'Extra-cheese', viewValue: 'Extra cheese' },\n * { value: 'Bellsprout', viewValue: 'Bellsprout' },\n * { value: 'Mushroom', viewValue: 'Mushroom' },\n * { value: 'Onion', viewValue: 'Onion' },\n * { value: 'Pepperoni', viewValue: 'Pepperoni' },\n * { value: 'Sausage', viewValue: 'Sausage' },\n * { value: 'Tomato', viewValue: 'Tomato' }],\n * appearance: Appearance.Outline,\n * color: 'accent'\n * },\n * componentType: ComponentType.AutoComplete,\n * formControlName: \"test\"\n * };\n * this.addControl(configToadd); or this.addControl(configToadd,1);\n * ```\n */\n // protected addControl(layoutToAdd?: BaseControl<string>[],index?: number) {\n // layoutToAdd.forEach((layout, layoutIndex) => {\n // layout.componentConfig.forEach(\n // (componentConfig, componentIndex) => {\n // if (componentConfig.formArray !== undefined) {\n // componentConfig.formArray.forEach((control) => {\n // this.formGroup.setControl(\n // 'productOption',\n // this.createFormArrayGroup(control.componentConfig),\n // );\n // this.controlsConfig.container.layoutConfig[1].componentConfig[0].formArray.push(\n // layout,\n // );\n // });\n // } else {\n // this.formGroup.addControl(\n // componentConfig.formControlName,\n // new UntypedFormControl(\n // {\n // value: componentConfig.componentProperty.value,\n // disabled:\n // componentConfig.componentProperty.disabled,\n // },\n // this.bindValidations(\n // componentConfig.validations || [],\n // ),\n // ),\n // );\n // index !== null\n // ? this.controlsConfig.container.layoutConfig.splice(\n // index,\n // 0,\n // layout,\n // )\n // : this.controlsConfig.container.layoutConfig.push(\n // layout,\n // );\n // }\n // },\n // );\n // });\n // }\n}\n","/*\n * Public API Surface of falcon-core-module\n */\nexport * from './lib/falcon-tailwind.module';\nexport * from './lib/reactive-field.directive';\nexport * from './lib/control-builder/control-builder.component';\n\n/*\n * Public API Surface of falcon core module service\n */\nexport * from './lib/service/http/igeneric-http-client';\nexport * from './lib/service/logger.service';\nexport * from './lib/service/open-id/auth.service';\nexport * from './lib/service/open-id/TokenHelperService';\nexport * from './lib/service/open-id/auth-guard.service';\nexport * from './lib/service/appsetting.service';\n\nexport * from './lib/model/constant';\nexport * from './lib/model/environments';\nexport * from './lib/control-builder/control-builder.component';\nexport * from './lib/base-form-component';\nexport * from './lib/model/layout';\n\n/*\n * Public component type\n */\nexport * from './lib/component/table/table.component';\nexport * from './lib/component/pagination/pagination.component';\nexport * from './lib/component/progress-bar/progress-bar.component';\nexport * from './lib/component/progress-spinner/progress-spinner.component';\nexport * from './lib/component/button/button.component';\nexport * from './lib/component/dialog/dialog.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","i5","i2","i1","i6","i7","i8","i3.ReactiveFieldDirective","i2.EnvironmentViewModel","i4.LoggerService","i2.LoggerService","i1.LoggerService","i2.TokenHelperService","i9","i10","i11.ProgressBarComponent","i1.AuthService"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@falcon-ng/tailwind",
3
- "version": "0.0.23",
3
+ "version": "0.0.24",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0",