@falcon-ng/tailwind 0.0.20 → 0.0.22
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.
- package/fesm2022/falcon-ng-tailwind.mjs +131 -113
- package/fesm2022/falcon-ng-tailwind.mjs.map +1 -1
- package/index.d.ts +11 -0
- package/package.json +1 -1
|
@@ -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}} </span>\n <span matSuffix [matTooltip]=\"control.suffix.toolTipText!\"\n [ngClass]=\"{'material-icons': control.suffix.isIcon}\">{{control.suffix.text}} </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> \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}} </span>\n <span matSuffix [matTooltip]=\"control.suffix.toolTipText!\"\n [ngClass]=\"{'material-icons': control.suffix.isIcon}\">{{control.suffix.text}} </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 {\n MatAutocomplete,\n MatAutocompleteSelectedEvent,\n} 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) =>\n value ? this._filter(value) : this.control?.options.slice()\n )\n );\n\n }\n\n ngOnInit() {\n setTimeout(() => {\n if (this.control.chipSelectedOptions.length > 0) {\n this.items = this.formGroup.controls[\n this.control.formControlName\n ] 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(\n this.control.formControlName\n ) 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(\n this.control.options,\n event.previousIndex,\n event.currentIndex\n );\n }\n\n keyboardEnterEvent(event: any): void {\n if (this.control.event !== undefined)\n 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\"\n [matChipInputFor]=\"chipGrid\" [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" [matChipInputAddOnBlur]=\"addOnBlur\"\n (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()\"\n [color]=\"control.color\" [ngClass]=\"control.class\"\n [ngStyle]=\"control.style\" mat-button *ngSwitchCase=\"0\">\n <mat-icon *ngIf=\"control?.suffix?.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon> {{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\"\n [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\"\n mat-raised-button *ngSwitchCase=\"1\">\n <mat-icon *ngIf=\"control.suffix?.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon> {{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\"\n [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\"\n mat-stroked-button *ngSwitchCase=\"2\">\n <mat-icon *ngIf=\"control.suffix?.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon> {{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\"\n [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\"\n mat-flat-button *ngSwitchCase=\"3\">\n <mat-icon *ngIf=\"control.suffix.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon> {{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\"\n [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\"\n mat-icon-button [attr.aria-label]=\"control.label\" *ngSwitchCase=\"4\">\n <mat-icon>{{control.label}}</mat-icon>\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\"\n [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-fab\n [attr.aria-label]=\"control.label\" *ngSwitchCase=\"5\">\n <mat-icon>{{control.label}}</mat-icon>\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\"\n [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-mini-fab\n [attr.aria-label]=\"control.label\" *ngSwitchCase=\"6\">\n <mat-icon>{{control.label}}</mat-icon>\n </button>\n <a mat-stroked-button *ngSwitchCase=\"7\" [ngClass]=\"control.class\"\n [ngStyle]=\"control.style\" routerLink=\"[]\">{{control.label}}</a>\n <a mat-stroked-button *ngSwitchCase=\"8\" [ngClass]=\"control.class\"\n [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';\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","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 { HttpClient, HttpRequest, HttpEventType, HttpEvent, HttpStatusCode } 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(private httpClient: HttpClient, private environment: EnvironmentViewModel,\n private _snackBar: MatSnackBar, private logger: LoggerService) { }\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 return Observable.create((observer: any) => {\n let destinationUrl = '';\n if (this.environment.baseUrl != undefined)\n destinationUrl = (this.environment.baseUrl) + url\n else\n 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('Http Client : DownloadProgress ->', `Download in progress! ${kbLoaded}Kb loaded`);\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) => {\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 = '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 observer.error(error);\n if ((this.environment.snackBarEnable != undefined && this.environment.snackBarEnable) && this.isHttpError)\n this._snackBar.open(this.snackBarViewModel.messageText, this.snackBarViewModel.actionText);\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 <!– Row shown when there is no matching data. –>\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\n *ngFor=\"let item of matTableConfig?.action?.menu\" [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\"\n color=\"primary\" 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\"\n color=\"primary\" 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\"\n color=\"warn\" 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\"\n color=\"primary\" 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>\n","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 <span class=\"mat-h3\">{{item}}</span> \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}} </span>\n <span matSuffix [matTooltip]=\"control.suffix.toolTipText!\"\n [ngClass]=\"{'material-icons': control.suffix.isIcon}\">{{control.suffix.text}} </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> \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}} </span>\n <span matSuffix [matTooltip]=\"control.suffix.toolTipText!\"\n [ngClass]=\"{'material-icons': control.suffix.isIcon}\">{{control.suffix.text}} </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 {\n MatAutocomplete,\n MatAutocompleteSelectedEvent,\n} 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) =>\n value ? this._filter(value) : this.control?.options.slice()\n )\n );\n\n }\n\n ngOnInit() {\n setTimeout(() => {\n if (this.control.chipSelectedOptions.length > 0) {\n this.items = this.formGroup.controls[\n this.control.formControlName\n ] 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(\n this.control.formControlName\n ) 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(\n this.control.options,\n event.previousIndex,\n event.currentIndex\n );\n }\n\n keyboardEnterEvent(event: any): void {\n if (this.control.event !== undefined)\n 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\"\n [matChipInputFor]=\"chipGrid\" [ngStyle]=\"control.style\" [ngClass]=\"control.class\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" [matChipInputAddOnBlur]=\"addOnBlur\"\n (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()\"\n [color]=\"control.color\" [ngClass]=\"control.class\"\n [ngStyle]=\"control.style\" mat-button *ngSwitchCase=\"0\">\n <mat-icon *ngIf=\"control?.suffix?.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon> {{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\"\n [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\"\n mat-raised-button *ngSwitchCase=\"1\">\n <mat-icon *ngIf=\"control.suffix?.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon> {{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\"\n [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\"\n mat-stroked-button *ngSwitchCase=\"2\">\n <mat-icon *ngIf=\"control.suffix?.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon> {{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\"\n [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\"\n mat-flat-button *ngSwitchCase=\"3\">\n <mat-icon *ngIf=\"control.suffix.isIcon\" style=\"margin-bottom: 1px;\">\n {{control.suffix.text}}</mat-icon> {{control.label}}\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\"\n [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\"\n mat-icon-button [attr.aria-label]=\"control.label\" *ngSwitchCase=\"4\">\n <mat-icon>{{control.label}}</mat-icon>\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\"\n [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-fab\n [attr.aria-label]=\"control.label\" *ngSwitchCase=\"5\">\n <mat-icon>{{control.label}}</mat-icon>\n </button>\n <button [disabled]=\"control.disabled\" (click)=\"childBtnClick()\"\n [type]=\"control.type\" [ngClass]=\"control.class\"\n [color]=\"control.color\" [ngStyle]=\"control.style\" mat-mini-fab\n [attr.aria-label]=\"control.label\" *ngSwitchCase=\"6\">\n <mat-icon>{{control.label}}</mat-icon>\n </button>\n <a mat-stroked-button *ngSwitchCase=\"7\" [ngClass]=\"control.class\"\n [ngStyle]=\"control.style\" routerLink=\"[]\">{{control.label}}</a>\n <a mat-stroked-button *ngSwitchCase=\"8\" [ngClass]=\"control.class\"\n [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 <!– Row shown when there is no matching data. –>\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\n *ngFor=\"let item of matTableConfig?.action?.menu\" [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\"\n color=\"primary\" 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\"\n color=\"primary\" 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\"\n color=\"warn\" 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\"\n color=\"primary\" 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>\n","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 <span class=\"mat-h3\">{{item}}</span> \n </mat-button-toggle>\n </mat-button-toggle-group>\n\n</div>","import {\n ModuleWithProviders,\n NgModule,\n inject,\n provideAppInitializer,\n} 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 {\n AppSettingService,\n appSettingsFactory,\n} from './service/appsetting.service';\nimport {\n AuthService,\n authServiceFactory,\n} 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(\n inject(AuthService),\n inject(AppSettingService),\n inject(EnvironmentViewModel)\n );\n return initializerFn();\n }),\n provideAppInitializer(() => {\n const initializerFn = loggerServiceFactory(\n inject(LoggerService),\n inject(AppSettingService)\n );\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 { provide: IGenericHttpClient, useClass: GenericHttpClient },\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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"}
|