@falcon-ng/tailwind 0.0.4 → 0.0.5
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"falcon-ng-tailwind.mjs","sources":["../../../../projects/falcon-ng/tailwind/src/lib/module/angularmaterial.module.ts","../../../../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-core.module.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/open-id/auth-guard.service.ts","../../../../projects/falcon-ng/tailwind/src/lib/base-control.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/AutoComplete.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Button.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/ButtonToggle.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/CheckBox.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Chip.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/DatePicker.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Divider.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Editor.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Radio.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/RichTextEditor.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/select.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Slider.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/SlideToggle.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Textarea.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Textbox.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 { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {ScrollingModule} from \"@angular/cdk/scrolling\";\nimport {PortalModule} from \"@angular/cdk/portal\";\nimport {OverlayModule} from \"@angular/cdk/overlay\";\nimport {MatTreeModule} from \"@angular/material/tree\";\nimport {MatTooltipModule} from \"@angular/material/tooltip\";\nimport {MatToolbarModule} from \"@angular/material/toolbar\";\nimport {MatTabsModule} from \"@angular/material/tabs\";\nimport {MatTableModule} from \"@angular/material/table\";\nimport {MatSortModule} from \"@angular/material/sort\";\nimport {MatSnackBarModule} from \"@angular/material/snack-bar\";\nimport {MatSlideToggleModule} from \"@angular/material/slide-toggle\";\nimport {MatSliderModule} from \"@angular/material/slider\";\nimport {MatSidenavModule} from \"@angular/material/sidenav\";\nimport {MatSelectModule} from \"@angular/material/select\";\nimport {MatNativeDateModule, MatRippleModule} from \"@angular/material/core\";\nimport {MatRadioModule} from \"@angular/material/radio\";\nimport {MatProgressSpinnerModule} from \"@angular/material/progress-spinner\";\nimport {MatProgressBarModule} from \"@angular/material/progress-bar\";\nimport {MatPaginatorModule} from \"@angular/material/paginator\";\nimport {MatMenuModule} from \"@angular/material/menu\";\nimport {MatListModule} from \"@angular/material/list\";\nimport {MatInputModule} from \"@angular/material/input\";\nimport {MatIconModule} from \"@angular/material/icon\";\nimport {MatGridListModule} from \"@angular/material/grid-list\";\nimport {MatExpansionModule} from \"@angular/material/expansion\";\nimport {MatDividerModule} from \"@angular/material/divider\";\nimport {MatDialogModule} from \"@angular/material/dialog\";\nimport {MatDatepickerModule} from \"@angular/material/datepicker\";\nimport {MatStepperModule} from \"@angular/material/stepper\";\nimport {MatChipsModule} from \"@angular/material/chips\";\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\nimport {MatCardModule} from \"@angular/material/card\";\nimport {MatButtonToggleModule} from \"@angular/material/button-toggle\";\nimport {MatButtonModule} from \"@angular/material/button\";\nimport {MatBottomSheetModule} from \"@angular/material/bottom-sheet\";\nimport {MatBadgeModule} from \"@angular/material/badge\";\nimport {MatAutocompleteModule} from \"@angular/material/autocomplete\";\nimport {DragDropModule} from \"@angular/cdk/drag-drop\";\nimport {CdkTreeModule} from \"@angular/cdk/tree\";\nimport {CdkTableModule} from \"@angular/cdk/table\";\nimport {CdkStepperModule} from \"@angular/cdk/stepper\";\nimport {ClipboardModule} from \"@angular/cdk/clipboard\";\nimport {A11yModule} from \"@angular/cdk/a11y\";\n\n\n\n@NgModule({\n declarations: [],\n exports: [\n A11yModule,\n ClipboardModule,\n CdkStepperModule,\n CdkTableModule,\n CdkTreeModule,\n DragDropModule,\n MatAutocompleteModule,\n MatBadgeModule,\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatStepperModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatTreeModule,\n OverlayModule,\n PortalModule,\n ScrollingModule\n ]\n})\nexport class AngularmaterialModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { BaseControl } from '../../base-control';\n\n@Component({\n selector: 'falcon-textbox',\n templateUrl: './textbox.component.html',\n styleUrls: ['./textbox.component.scss'],\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>","import { Component } from '@angular/core';\nimport { BaseControl } from '../../base-control';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'falcon-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\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>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { BaseControl } from '../../base-control';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatSelectChange } from '@angular/material/select';\n\n@Component({\n selector: 'falcon-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\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\">\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 {BaseControl} from \"../../base-control\";\nimport {FormGroup} from \"@angular/forms\";\n\n@Component({\n selector: 'falcon-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\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>","import {Component, EventEmitter, Output} from '@angular/core';\nimport {FormControl, FormGroup} from '@angular/forms';\nimport {MatRadioChange} from \"@angular/material/radio\";\nimport {BaseControl} from \"../../base-control\";\n\n@Component({\n selector: 'falcon-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n})\nexport class RadioComponent {\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 '../../base-control';\n\n@Component({\n selector: 'falcon-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\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 {BaseControl} from \"../../base-control\";\nimport {FormGroup} from \"@angular/forms\";\n\n@Component({\n selector: 'falcon-slide-toggle',\n templateUrl: './slide-toggle.component.html',\n styleUrls: ['./slide-toggle.component.scss'],\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 {BaseControl} from \"../../base-control\";\nimport {FormGroup} from \"@angular/forms\";\n\n@Component({\n selector: 'falcon-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\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 {BaseControl} from \"../../base-control\";\nimport {MatButtonToggleChange} from \"@angular/material/button-toggle\";\n\n@Component({\n selector: 'falcon-button-toggle',\n templateUrl: './button-toggle.component.html',\n styleUrls: ['./button-toggle.component.scss'],\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, OnInit, Input } from '@angular/core';\nimport {BaseControl} from \"../../base-control\";\nimport {FormControl, FormGroup} from \"@angular/forms\";\nimport {IOptions} from \"../../model/interface\";\nimport {Observable} from \"rxjs\";\nimport { map, startWith } from 'rxjs/operators';\n@Component({\n selector: 'falcon-auto-complete',\n templateUrl: './auto-complete.component.html',\n styleUrls: ['./auto-complete.component.scss'],\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>","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { BaseControl } from '../../base-control';\nimport { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { Observable } from 'rxjs';\nimport { IOptions } from '../../model/interface';\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';\n\n@Component({\n selector: 'falcon-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\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 \"../../base-control\";\n\n@Component({\n selector: 'falcon-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.css']\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 {BaseControl} from \"../../base-control\";\nimport {FormGroup} from \"@angular/forms\";\n\n@Component({\n selector: 'lib-rich-text-editor',\n templateUrl: './rich-text-editor.component.html',\n styleUrls: ['./rich-text-editor.component.scss']\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>","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\";\n\nexport class Constant {\n public static ComponentMapper = [\n TextboxComponent,\n TextareaComponent,\n SelectComponent,\n DatePickerComponent,\n RadioComponent,\n CheckboxComponent,\n ButtonComponent,\n SlideToggleComponent,\n SliderComponent,\n ButtonToggleComponent,\n AutoCompleteComponent,\n ChipComponent,\n RichTextEditorComponent,\n //DividerComponent,\n ];\n}\n","import {ComponentRef, Directive, Input, OnInit, ViewContainerRef} from '@angular/core';\nimport {BaseControl} from \"./base-control\";\nimport {FormGroup} from \"@angular/forms\";\nimport {Constant} from \"./model/constant\";\n\n@Directive({\n selector: '[reactiveField]'\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, ReactiveFormsModule} from \"@angular/forms\";\nimport {BaseControl, Layout} from \"../base-control\";\nimport {CommonModule} from \"@angular/common\";\n\n@Component({\n selector: 'control-builder',\n templateUrl: './control-builder.component.html',\n styleUrls: ['./control-builder.component.scss']\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/**\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}","import { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { IRequestOptions } from '../../model/interface';\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} from \"../model/enum\";\nimport {IAppSettingViewModel} from \"../model/interface\";\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};","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} from '../../model/interface';\nimport { LoggerService } from '../logger.service';\nimport {EnvironmentViewModel} from \"../../model/environments\";\nimport {HttpMethod} from \"../../model/enum\";\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 {Profile, User, UserManager, UserManagerSettings} from 'oidc-client';\nimport {LoggerService} from '../logger.service';\nimport {TokenHelperService} from './TokenHelperService';\nimport {EnvironmentViewModel} from \"../../model/environments\";\nimport {AppSettingService} from \"../appsetting.service\";\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 private userManager!: UserManager;\n private user: any;\n public settings!: UserManagerSettings;\n\n private accessToken!: Object;\n private signingOut: boolean = false;\n\n constructor(private logger: LoggerService, private tokenHelperService: TokenHelperService) {\n\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\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(\"IdSvr silent renew error \" + e.message + new Date().toLocaleString());\n this.logout(false);\n });\n\n this.userManager.events.addUserLoaded(user => {\n this.logger.info(\"IdSvr user session is ready \" + new Date().toLocaleString());\n this.accessToken = this.tokenHelperService.getPayloadFromToken(user.access_token, false);\n this.user = user;\n });\n\n this.userManager.events.addUserUnloaded(() => {\n this.logger.info(\"IdSvr user session has ended \" + new Date().toLocaleString());\n\n if (!this.signingOut) {\n this.startAuthentication(window.location.pathname + window.location.search);\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(): Profile {\n return this.user.profile;\n }\n\n public getClaims(): Profile {\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 this.accessToken || 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({data: {returnUrl: returnUrl}}).catch(err => {\n //this.$log.debug(\"IdSvr sign in failed\", err);\n return err;\n });\n }\n\n async completeAuthentication(): Promise<Oidc.User> {\n this.logger.info(\"[AuthService] completeAuthentication\");\n let user = await new Promise<Oidc.User>((resolve, reject) => {\n this.userManager.signinRedirectCallback().then(user => {\n resolve(user)\n }).catch(error => {\n reject(error);\n });\n });\n this.user = user;\n return this.user;\n }\n\n public login(): Promise<void> {\n return this.userManager.signinRedirect();\n }\n\n public renewToken(): Promise<User> {\n return this.userManager.signinSilent();\n }\n\n public logout(signoutRedirect?: boolean): Promise<void> {\n\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(environment: EnvironmentViewModel): UserManagerSettings {\n return {\n authority: environment?.openID?.authority,\n client_id: environment?.openID?.client_id,\n redirect_uri: environment?.openID?.redirect_uri,\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 accessTokenExpiringNotificationTime: 20, //default 60\n checkSessionInterval: 2000, //default 2000\n silentRequestTimeout: 20000,\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(authService: AuthService, appSettings: AppSettingService, environment: EnvironmentViewModel) {\n return async () => {\n appSettings.isServiceReady.subscribe(item => {\n if (item)\n authService.initialize(environment);\n });\n }\n};","import {Component, Inject} from '@angular/core';\nimport {IDialogData} from \"../../model/interface\";\nimport {MAT_DIALOG_DATA} from \"@angular/material/dialog\";\n\n@Component({\n selector: 'lib-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss']\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})\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})\nexport class BottomSheetComponent {\n constructor(private _bottomSheetRef: MatBottomSheetRef<BottomSheetComponent>, @Inject(MAT_BOTTOM_SHEET_DATA) public data: any) { }\n\n ngOnInit(): void {\n }\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})\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})\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 \"../../model/interface\";\nimport {MatPaginator, PageEvent} from \"@angular/material/paginator\";\nimport {MatSort} from \"@angular/material/sort\";\nimport {MatTableDataSource} from \"@angular/material/table\";\nimport {TableAction} from \"../../model/enum\";\n\n@Component({\n selector: 'falcon-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss']\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\">\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>","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})\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, APP_INITIALIZER, inject} 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 \"./module/angularmaterial.module\";\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 {\n provide: APP_INITIALIZER,\n useFactory: appSettingsFactory,\n deps: [AppSettingService],\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n useFactory: authServiceFactory,\n deps: [AuthService, AppSettingService, EnvironmentViewModel],\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n useFactory: loggerServiceFactory,\n deps: [LoggerService, AppSettingService],\n multi: true,\n },\n {\n provide: MAT_SNACK_BAR_DEFAULT_OPTIONS,\n useValue: {duration: 5000},\n },\n ],\n})\nexport class FalconCoreModule {\n public static forRoot(\n environment: any,\n ): ModuleWithProviders<FalconCoreModule> {\n return {\n ngModule: FalconCoreModule,\n providers: [\n {provide: EnvironmentViewModel, useValue: environment},\n ],\n };\n }\n}","import { Injectable } from '@angular/core';\nimport { AuthService } from './auth.service';\nimport { CanActivate, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuardService implements CanActivate{\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 {ControlType} from './model/enum';\nimport {IValidator} from './model/ivalidator';\nimport {\n FloatLabelType,\n MatFormFieldAppearance,\n} from '@angular/material/form-field';\nimport {\n IComponentEvent,\n IMatHint,\n IOptions,\n ISelectOptions, ISliderProperty,\n ISuffixPrefixConfig,\n ITextAreaProperty,\n} from './model/interface';\n\n/**\n * @description\n * Class use for setting the layout.\n * @usageNotes\n * ```ts\n * new Dropdown({\n * key: 'brave',\n * label: 'Bravery Rating',\n * options: [\n * {key: 'solid', value: 'Solid'},\n * {key: 'great', value: 'Great'},\n * {key: 'good', value: 'Good'},\n * {key: 'unproven', value: 'Unproven'}\n * ],\n * order: 3\n * }),\n ** ```\n */\nexport interface Layout<T> {\n class?: string;\n baseControls: BaseControl<T>[];\n}\n\n/**\n * @description\n * Class use for setting the control properties.\n * @usageNotes\n * ```ts\n * new Dropdown({\n * formControlName: 'brave',\n * label: 'Bravery Rating',\n * options: [\n * {key: 'solid', value: 'Solid'},\n * {key: 'great', value: 'Great'},\n * {key: 'good', value: 'Good'},\n * {key: 'unproven', value: 'Unproven'}\n * ],\n * order: 3\n * }),\n ** ```\n */\nexport class BaseControl<T> {\n value: T | undefined;\n formControlName: string;\n label: string;\n labelPosition: any;\n order: number;\n controlType: ControlType;\n type: string;\n disabled: boolean;\n options: IOptions[] | any;\n validations: IValidator[];\n appearance: MatFormFieldAppearance | any;\n class: string;\n style: { [klass: string]: any };\n placeHolder: string;\n floatLabel: FloatLabelType;\n hint: IMatHint;\n suffix: ISuffixPrefixConfig;\n prefix: ISuffixPrefixConfig;\n textAreaProperty: ITextAreaProperty;\n event: IComponentEvent<T>;\n selectProperty: ISelectOptions;\n color: string;\n sliderProperty: ISliderProperty;\n chipSelectedOptions: IOptions[] | any;\n editorProperty: any;\n formArray: BaseControl<T>[] | undefined;\n constructor(\n options: {\n value?: T;\n formControlName?: string;\n label?: string;\n labelPosition?: any;\n order?: number;\n controlType?: ControlType;\n type?: string;\n disabled?: boolean;\n options?: IOptions[] | any;\n validations?: IValidator[];\n appearance?: MatFormFieldAppearance | any;\n class?: string;\n style?: { [klass: string]: any };\n placeHolder?: string;\n floatLabel?: FloatLabelType;\n hint?: IMatHint;\n suffix?: ISuffixPrefixConfig;\n prefix?: ISuffixPrefixConfig;\n textAreaProperty?: ITextAreaProperty;\n event?: IComponentEvent<T>;\n selectProperty?: ISelectOptions;\n color?: string;\n sliderProperty?: ISliderProperty;\n chipSelectedOptions?: IOptions[] | any;\n editorProperty?: any;\n formArray?: BaseControl<T>[];\n } = {}\n ) {\n this.value = options.value;\n this.formControlName = options.formControlName || '';\n this.label = options.label || '';\n this.labelPosition = options.labelPosition || 'before' || 'after';\n this.order = options.order === undefined ? 1 : options.order;\n this.controlType = options.controlType || ControlType.Button;\n this.type = options.type || '';\n this.disabled = options.disabled || false;\n this.options = options.options || [];\n this.validations = options.validations || [];\n this.appearance = options.appearance || 'outline';\n this.class = options.class || '';\n this.style = options.style || {};\n this.placeHolder = options.placeHolder || '';\n this.floatLabel = options.floatLabel || 'auto';\n this.hint = options.hint || ({} as IMatHint);\n this.prefix = options.prefix || ({} as ISuffixPrefixConfig);\n this.suffix = options.suffix || ({} as ISuffixPrefixConfig);\n this.textAreaProperty =\n options.textAreaProperty || ({} as ITextAreaProperty);\n this.event = options.event || {};\n this.selectProperty = options.selectProperty || {};\n this.color = options.color || '';\n this.sliderProperty = options.sliderProperty || {};\n this.chipSelectedOptions = options.chipSelectedOptions || {};\n this.editorProperty = options.editorProperty || {};\n this.formArray = options.formArray || undefined\n }\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class AutoComplete extends BaseControl<string> {\n override controlType = ControlType.AutoComplete;\n}\n","import {BaseControl} from \"../base-control\";\nimport {ControlType} from \"../model/enum\";\n\nexport class Button extends BaseControl<string> {\n override controlType = ControlType.Button;\n}","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class ButtonToggle extends BaseControl<string> {\n override controlType = ControlType.ButtonToggle;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class CheckBox extends BaseControl<boolean> {\n override controlType = ControlType.Checkbox;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Chip extends BaseControl<string> {\n override controlType = ControlType.Chip;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class DatePicker extends BaseControl<string> {\n override controlType = ControlType.DatePicker;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Divider extends BaseControl<string> {\n override controlType = ControlType.Divider;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Editor extends BaseControl<string> {\n override controlType = ControlType.Editor;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Radio extends BaseControl<string> {\n override controlType = ControlType.Radio;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class RichTextEditor extends BaseControl<any> {\n override controlType = ControlType.Editor;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Select extends BaseControl<string> {\n override controlType = ControlType.Select;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Slider extends BaseControl<number> {\n override controlType = ControlType.Slider;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class SliderToggle extends BaseControl<boolean> {\n override controlType = ControlType.SlideToggle;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Textarea extends BaseControl<string> {\n override controlType = ControlType.TextArea;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Textbox extends BaseControl<string> {\n override controlType = ControlType.TextBox;\n}\n","import {Observable} from 'rxjs';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport {BaseControl, Layout} from './base-control';\nimport {inject} from '@angular/core';\nimport {IValidator} from './model/ivalidator';\nimport {ControlType} from './model/enum';\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 === 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/module/angularmaterial.module';\nexport * from './lib/falcon-core.module';\nexport * from './lib/reactive-field.directive';\n\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/auth-guard.service';\nexport * from './lib/service/appsetting.service';\n\n\n/*\n * Public control type\n */\nexport * from './lib/control-type/AutoComplete';\nexport * from './lib/control-type/Button';\nexport * from './lib/control-type/ButtonToggle';\nexport * from './lib/control-type/CheckBox';\nexport * from './lib/control-type/Chip';\nexport * from './lib/control-type/DatePicker';\nexport * from './lib/control-type/Divider';\nexport * from './lib/control-type/Editor';\nexport * from './lib/control-type/Radio';\nexport * from './lib/control-type/RichTextEditor';\nexport * from './lib/control-type/select';\nexport * from './lib/control-type/Slider';\nexport * from './lib/control-type/SlideToggle';\nexport * from './lib/control-type/Textarea';\nexport * from './lib/control-type/Textbox';\n\n\n\nexport * from './lib/model/enum';\nexport * from './lib/model/constant';\nexport * from './lib/model/environments';\nexport * from './lib/model/ivalidator';\nexport * from './lib/control-builder/control-builder.component';\nexport * from './lib/base-form-component';\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';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i2","i4","i5","i6","i7","i8","i9","i10","i3.ReactiveFieldDirective","i2.EnvironmentViewModel","i4.LoggerService","i2.LoggerService","i1.LoggerService","i2.TokenHelperService","i11","i12.ProgressBarComponent","i1.AuthService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"falcon-ng-tailwind.mjs","sources":["../../../../projects/falcon-ng/tailwind/src/lib/module/angularmaterial.module.ts","../../../../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-core.module.ts","../../../../projects/falcon-ng/tailwind/src/lib/service/open-id/auth-guard.service.ts","../../../../projects/falcon-ng/tailwind/src/lib/base-control.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/AutoComplete.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Button.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/ButtonToggle.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/CheckBox.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Chip.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/DatePicker.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Divider.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Editor.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Radio.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/RichTextEditor.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/select.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Slider.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/SlideToggle.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Textarea.ts","../../../../projects/falcon-ng/tailwind/src/lib/control-type/Textbox.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 { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {ScrollingModule} from \"@angular/cdk/scrolling\";\nimport {PortalModule} from \"@angular/cdk/portal\";\nimport {OverlayModule} from \"@angular/cdk/overlay\";\nimport {MatTreeModule} from \"@angular/material/tree\";\nimport {MatTooltipModule} from \"@angular/material/tooltip\";\nimport {MatToolbarModule} from \"@angular/material/toolbar\";\nimport {MatTabsModule} from \"@angular/material/tabs\";\nimport {MatTableModule} from \"@angular/material/table\";\nimport {MatSortModule} from \"@angular/material/sort\";\nimport {MatSnackBarModule} from \"@angular/material/snack-bar\";\nimport {MatSlideToggleModule} from \"@angular/material/slide-toggle\";\nimport {MatSliderModule} from \"@angular/material/slider\";\nimport {MatSidenavModule} from \"@angular/material/sidenav\";\nimport {MatSelectModule} from \"@angular/material/select\";\nimport {MatNativeDateModule, MatRippleModule} from \"@angular/material/core\";\nimport {MatRadioModule} from \"@angular/material/radio\";\nimport {MatProgressSpinnerModule} from \"@angular/material/progress-spinner\";\nimport {MatProgressBarModule} from \"@angular/material/progress-bar\";\nimport {MatPaginatorModule} from \"@angular/material/paginator\";\nimport {MatMenuModule} from \"@angular/material/menu\";\nimport {MatListModule} from \"@angular/material/list\";\nimport {MatInputModule} from \"@angular/material/input\";\nimport {MatIconModule} from \"@angular/material/icon\";\nimport {MatGridListModule} from \"@angular/material/grid-list\";\nimport {MatExpansionModule} from \"@angular/material/expansion\";\nimport {MatDividerModule} from \"@angular/material/divider\";\nimport {MatDialogModule} from \"@angular/material/dialog\";\nimport {MatDatepickerModule} from \"@angular/material/datepicker\";\nimport {MatStepperModule} from \"@angular/material/stepper\";\nimport {MatChipsModule} from \"@angular/material/chips\";\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\nimport {MatCardModule} from \"@angular/material/card\";\nimport {MatButtonToggleModule} from \"@angular/material/button-toggle\";\nimport {MatButtonModule} from \"@angular/material/button\";\nimport {MatBottomSheetModule} from \"@angular/material/bottom-sheet\";\nimport {MatBadgeModule} from \"@angular/material/badge\";\nimport {MatAutocompleteModule} from \"@angular/material/autocomplete\";\nimport {DragDropModule} from \"@angular/cdk/drag-drop\";\nimport {CdkTreeModule} from \"@angular/cdk/tree\";\nimport {CdkTableModule} from \"@angular/cdk/table\";\nimport {CdkStepperModule} from \"@angular/cdk/stepper\";\nimport {ClipboardModule} from \"@angular/cdk/clipboard\";\nimport {A11yModule} from \"@angular/cdk/a11y\";\n\n\n\n@NgModule({\n declarations: [],\n exports: [\n A11yModule,\n ClipboardModule,\n CdkStepperModule,\n CdkTableModule,\n CdkTreeModule,\n DragDropModule,\n MatAutocompleteModule,\n MatBadgeModule,\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatStepperModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatTreeModule,\n OverlayModule,\n PortalModule,\n ScrollingModule\n ]\n})\nexport class AngularmaterialModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { BaseControl } from '../../base-control';\n\n@Component({\n selector: 'falcon-textbox',\n templateUrl: './textbox.component.html',\n styleUrls: ['./textbox.component.scss'],\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>","import { Component } from '@angular/core';\nimport { BaseControl } from '../../base-control';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'falcon-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\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>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { BaseControl } from '../../base-control';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatSelectChange } from '@angular/material/select';\n\n@Component({\n selector: 'falcon-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\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\">\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 {BaseControl} from \"../../base-control\";\nimport {FormGroup} from \"@angular/forms\";\n\n@Component({\n selector: 'falcon-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\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>","import {Component, EventEmitter, Output} from '@angular/core';\nimport {FormControl, FormGroup} from '@angular/forms';\nimport {MatRadioChange} from \"@angular/material/radio\";\nimport {BaseControl} from \"../../base-control\";\n\n@Component({\n selector: 'falcon-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n})\nexport class RadioComponent {\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 '../../base-control';\n\n@Component({\n selector: 'falcon-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\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 {BaseControl} from \"../../base-control\";\nimport {FormGroup} from \"@angular/forms\";\n\n@Component({\n selector: 'falcon-slide-toggle',\n templateUrl: './slide-toggle.component.html',\n styleUrls: ['./slide-toggle.component.scss'],\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 {BaseControl} from \"../../base-control\";\nimport {FormGroup} from \"@angular/forms\";\n\n@Component({\n selector: 'falcon-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\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 {BaseControl} from \"../../base-control\";\nimport {MatButtonToggleChange} from \"@angular/material/button-toggle\";\n\n@Component({\n selector: 'falcon-button-toggle',\n templateUrl: './button-toggle.component.html',\n styleUrls: ['./button-toggle.component.scss'],\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, OnInit, Input } from '@angular/core';\nimport {BaseControl} from \"../../base-control\";\nimport {FormControl, FormGroup} from \"@angular/forms\";\nimport {IOptions} from \"../../model/interface\";\nimport {Observable} from \"rxjs\";\nimport { map, startWith } from 'rxjs/operators';\n@Component({\n selector: 'falcon-auto-complete',\n templateUrl: './auto-complete.component.html',\n styleUrls: ['./auto-complete.component.scss'],\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>","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { BaseControl } from '../../base-control';\nimport { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { Observable } from 'rxjs';\nimport { IOptions } from '../../model/interface';\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';\n\n@Component({\n selector: 'falcon-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\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 \"../../base-control\";\n\n@Component({\n selector: 'falcon-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.css']\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 {BaseControl} from \"../../base-control\";\nimport {FormGroup} from \"@angular/forms\";\n\n@Component({\n selector: 'lib-rich-text-editor',\n templateUrl: './rich-text-editor.component.html',\n styleUrls: ['./rich-text-editor.component.scss']\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>","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\";\n\nexport class Constant {\n public static ComponentMapper = [\n TextboxComponent,\n TextareaComponent,\n SelectComponent,\n DatePickerComponent,\n RadioComponent,\n CheckboxComponent,\n ButtonComponent,\n SlideToggleComponent,\n SliderComponent,\n ButtonToggleComponent,\n AutoCompleteComponent,\n ChipComponent,\n RichTextEditorComponent,\n //DividerComponent,\n ];\n}\n","import {ComponentRef, Directive, Input, OnInit, ViewContainerRef} from '@angular/core';\nimport {BaseControl} from \"./base-control\";\nimport {FormGroup} from \"@angular/forms\";\nimport {Constant} from \"./model/constant\";\n\n@Directive({\n selector: '[reactiveField]'\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, ReactiveFormsModule} from \"@angular/forms\";\nimport {BaseControl, Layout} from \"../base-control\";\nimport {CommonModule} from \"@angular/common\";\n\n@Component({\n selector: 'control-builder',\n templateUrl: './control-builder.component.html',\n styleUrls: ['./control-builder.component.scss']\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/**\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}","import { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { IRequestOptions } from '../../model/interface';\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} from \"../model/enum\";\nimport {IAppSettingViewModel} from \"../model/interface\";\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};","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} from '../../model/interface';\nimport { LoggerService } from '../logger.service';\nimport {EnvironmentViewModel} from \"../../model/environments\";\nimport {HttpMethod} from \"../../model/enum\";\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 {Profile, User, UserManager, UserManagerSettings} from 'oidc-client';\nimport {LoggerService} from '../logger.service';\nimport {TokenHelperService} from './TokenHelperService';\nimport {EnvironmentViewModel} from \"../../model/environments\";\nimport {AppSettingService} from \"../appsetting.service\";\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 private userManager!: UserManager;\n private user: any;\n public settings!: UserManagerSettings;\n\n private accessToken!: Object;\n private signingOut: boolean = false;\n\n constructor(private logger: LoggerService, private tokenHelperService: TokenHelperService) {\n\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\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(\"IdSvr silent renew error \" + e.message + new Date().toLocaleString());\n this.logout(false);\n });\n\n this.userManager.events.addUserLoaded(user => {\n this.logger.info(\"IdSvr user session is ready \" + new Date().toLocaleString());\n this.accessToken = this.tokenHelperService.getPayloadFromToken(user.access_token, false);\n this.user = user;\n });\n\n this.userManager.events.addUserUnloaded(() => {\n this.logger.info(\"IdSvr user session has ended \" + new Date().toLocaleString());\n\n if (!this.signingOut) {\n this.startAuthentication(window.location.pathname + window.location.search);\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(): Profile {\n return this.user.profile;\n }\n\n public getClaims(): Profile {\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 this.accessToken || 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({data: {returnUrl: returnUrl}}).catch(err => {\n //this.$log.debug(\"IdSvr sign in failed\", err);\n return err;\n });\n }\n\n async completeAuthentication(): Promise<Oidc.User> {\n this.logger.info(\"[AuthService] completeAuthentication\");\n let user = await new Promise<Oidc.User>((resolve, reject) => {\n this.userManager.signinRedirectCallback().then(user => {\n resolve(user)\n }).catch(error => {\n reject(error);\n });\n });\n this.user = user;\n return this.user;\n }\n\n public login(): Promise<void> {\n return this.userManager.signinRedirect();\n }\n\n public renewToken(): Promise<User> {\n return this.userManager.signinSilent();\n }\n\n public logout(signoutRedirect?: boolean): Promise<void> {\n\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(environment: EnvironmentViewModel): UserManagerSettings {\n return {\n authority: environment?.openID?.authority,\n client_id: environment?.openID?.client_id,\n redirect_uri: environment?.openID?.redirect_uri,\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 accessTokenExpiringNotificationTime: 20, //default 60\n checkSessionInterval: 2000, //default 2000\n silentRequestTimeout: 20000,\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(authService: AuthService, appSettings: AppSettingService, environment: EnvironmentViewModel) {\n return async () => {\n appSettings.isServiceReady.subscribe(item => {\n if (item)\n authService.initialize(environment);\n });\n }\n};","import {Component, Inject} from '@angular/core';\nimport {IDialogData} from \"../../model/interface\";\nimport {MAT_DIALOG_DATA} from \"@angular/material/dialog\";\n\n@Component({\n selector: 'lib-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss']\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})\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})\nexport class BottomSheetComponent {\n constructor(private _bottomSheetRef: MatBottomSheetRef<BottomSheetComponent>, @Inject(MAT_BOTTOM_SHEET_DATA) public data: any) { }\n\n ngOnInit(): void {\n }\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})\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})\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 \"../../model/interface\";\nimport {MatPaginator, PageEvent} from \"@angular/material/paginator\";\nimport {MatSort} from \"@angular/material/sort\";\nimport {MatTableDataSource} from \"@angular/material/table\";\nimport {TableAction} from \"../../model/enum\";\n\n@Component({\n selector: 'falcon-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss']\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\">\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>","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})\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, APP_INITIALIZER, inject} 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 \"./module/angularmaterial.module\";\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 {\n provide: APP_INITIALIZER,\n useFactory: appSettingsFactory,\n deps: [AppSettingService],\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n useFactory: authServiceFactory,\n deps: [AuthService, AppSettingService, EnvironmentViewModel],\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n useFactory: loggerServiceFactory,\n deps: [LoggerService, AppSettingService],\n multi: true,\n },\n {\n provide: MAT_SNACK_BAR_DEFAULT_OPTIONS,\n useValue: {duration: 5000},\n },\n ],\n})\nexport class FalconCoreModule {\n public static forRoot(\n environment: any,\n ): ModuleWithProviders<FalconCoreModule> {\n return {\n ngModule: FalconCoreModule,\n providers: [\n {provide: EnvironmentViewModel, useValue: environment},\n ],\n };\n }\n}","import { Injectable } from '@angular/core';\nimport { AuthService } from './auth.service';\nimport { CanActivate, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuardService implements CanActivate{\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 {ControlType} from './model/enum';\nimport {IValidator} from './model/ivalidator';\nimport {\n FloatLabelType,\n MatFormFieldAppearance,\n} from '@angular/material/form-field';\nimport {\n IComponentEvent,\n IMatHint,\n IOptions,\n ISelectOptions, ISliderProperty,\n ISuffixPrefixConfig,\n ITextAreaProperty,\n} from './model/interface';\n\n/**\n * @description\n * Class use for setting the layout.\n * @usageNotes\n * ```ts\n * new Dropdown({\n * key: 'brave',\n * label: 'Bravery Rating',\n * options: [\n * {key: 'solid', value: 'Solid'},\n * {key: 'great', value: 'Great'},\n * {key: 'good', value: 'Good'},\n * {key: 'unproven', value: 'Unproven'}\n * ],\n * order: 3\n * }),\n ** ```\n */\nexport interface Layout<T> {\n class?: string;\n baseControls: BaseControl<T>[];\n}\n\n/**\n * @description\n * Class use for setting the control properties.\n * @usageNotes\n * ```ts\n * new Dropdown({\n * formControlName: 'brave',\n * label: 'Bravery Rating',\n * options: [\n * {key: 'solid', value: 'Solid'},\n * {key: 'great', value: 'Great'},\n * {key: 'good', value: 'Good'},\n * {key: 'unproven', value: 'Unproven'}\n * ],\n * order: 3\n * }),\n ** ```\n */\nexport class BaseControl<T> {\n value: T | undefined;\n formControlName: string;\n label: string;\n labelPosition: any;\n order: number;\n controlType: ControlType;\n type: string;\n disabled: boolean;\n options: IOptions[] | any;\n validations: IValidator[];\n appearance: MatFormFieldAppearance | any;\n class: string;\n style: { [klass: string]: any };\n placeHolder: string;\n floatLabel: FloatLabelType;\n hint: IMatHint;\n suffix: ISuffixPrefixConfig;\n prefix: ISuffixPrefixConfig;\n textAreaProperty: ITextAreaProperty;\n event: IComponentEvent<T>;\n selectProperty: ISelectOptions;\n color: string;\n sliderProperty: ISliderProperty;\n chipSelectedOptions: IOptions[] | any;\n editorProperty: any;\n formArray: BaseControl<T>[] | undefined;\n constructor(\n options: {\n value?: T;\n formControlName?: string;\n label?: string;\n labelPosition?: any;\n order?: number;\n controlType?: ControlType;\n type?: string;\n disabled?: boolean;\n options?: IOptions[] | any;\n validations?: IValidator[];\n appearance?: MatFormFieldAppearance | any;\n class?: string;\n style?: { [klass: string]: any };\n placeHolder?: string;\n floatLabel?: FloatLabelType;\n hint?: IMatHint;\n suffix?: ISuffixPrefixConfig;\n prefix?: ISuffixPrefixConfig;\n textAreaProperty?: ITextAreaProperty;\n event?: IComponentEvent<T>;\n selectProperty?: ISelectOptions;\n color?: string;\n sliderProperty?: ISliderProperty;\n chipSelectedOptions?: IOptions[] | any;\n editorProperty?: any;\n formArray?: BaseControl<T>[];\n } = {}\n ) {\n this.value = options.value;\n this.formControlName = options.formControlName || '';\n this.label = options.label || '';\n this.labelPosition = options.labelPosition || 'before' || 'after';\n this.order = options.order === undefined ? 1 : options.order;\n this.controlType = options.controlType || ControlType.Button;\n this.type = options.type || '';\n this.disabled = options.disabled || false;\n this.options = options.options || [];\n this.validations = options.validations || [];\n this.appearance = options.appearance || 'outline';\n this.class = options.class || '';\n this.style = options.style || {};\n this.placeHolder = options.placeHolder || '';\n this.floatLabel = options.floatLabel || 'auto';\n this.hint = options.hint || ({} as IMatHint);\n this.prefix = options.prefix || ({} as ISuffixPrefixConfig);\n this.suffix = options.suffix || ({} as ISuffixPrefixConfig);\n this.textAreaProperty =\n options.textAreaProperty || ({} as ITextAreaProperty);\n this.event = options.event || {};\n this.selectProperty = options.selectProperty || {};\n this.color = options.color || '';\n this.sliderProperty = options.sliderProperty || {};\n this.chipSelectedOptions = options.chipSelectedOptions || {};\n this.editorProperty = options.editorProperty || {};\n this.formArray = options.formArray || undefined\n }\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class AutoComplete extends BaseControl<string> {\n override controlType = ControlType.AutoComplete;\n}\n","import {BaseControl} from \"../base-control\";\nimport {ControlType} from \"../model/enum\";\n\nexport class Button extends BaseControl<string> {\n override controlType = ControlType.Button;\n}","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class ButtonToggle extends BaseControl<string> {\n override controlType = ControlType.ButtonToggle;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class CheckBox extends BaseControl<boolean> {\n override controlType = ControlType.Checkbox;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Chip extends BaseControl<string> {\n override controlType = ControlType.Chip;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class DatePicker extends BaseControl<string> {\n override controlType = ControlType.DatePicker;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Divider extends BaseControl<string> {\n override controlType = ControlType.Divider;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Editor extends BaseControl<string> {\n override controlType = ControlType.Editor;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Radio extends BaseControl<string> {\n override controlType = ControlType.Radio;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class RichTextEditor extends BaseControl<any> {\n override controlType = ControlType.Editor;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Select extends BaseControl<string> {\n override controlType = ControlType.Select;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Slider extends BaseControl<number> {\n override controlType = ControlType.Slider;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class SliderToggle extends BaseControl<boolean> {\n override controlType = ControlType.SlideToggle;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Textarea extends BaseControl<string> {\n override controlType = ControlType.TextArea;\n}\n","import { BaseControl } from '../base-control';\nimport { ControlType } from '../model/enum';\n\nexport class Textbox extends BaseControl<string> {\n override controlType = ControlType.TextBox;\n}\n","import {Observable} from 'rxjs';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport {BaseControl, Layout} from './base-control';\nimport {inject} from '@angular/core';\nimport {IValidator} from './model/ivalidator';\nimport {ControlType} from './model/enum';\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 === 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/module/angularmaterial.module';\nexport * from './lib/falcon-core.module';\nexport * from './lib/reactive-field.directive';\nexport * from './lib/control-builder/control-builder.component';\n\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/auth-guard.service';\nexport * from './lib/service/appsetting.service';\n\n\n/*\n * Public control type\n */\nexport * from './lib/control-type/AutoComplete';\nexport * from './lib/control-type/Button';\nexport * from './lib/control-type/ButtonToggle';\nexport * from './lib/control-type/CheckBox';\nexport * from './lib/control-type/Chip';\nexport * from './lib/control-type/DatePicker';\nexport * from './lib/control-type/Divider';\nexport * from './lib/control-type/Editor';\nexport * from './lib/control-type/Radio';\nexport * from './lib/control-type/RichTextEditor';\nexport * from './lib/control-type/select';\nexport * from './lib/control-type/Slider';\nexport * from './lib/control-type/SlideToggle';\nexport * from './lib/control-type/Textarea';\nexport * from './lib/control-type/Textbox';\n\n\n\nexport * from './lib/model/enum';\nexport * from './lib/model/constant';\nexport * from './lib/model/environments';\nexport * from './lib/model/ivalidator';\nexport * from './lib/control-builder/control-builder.component';\nexport * from './lib/base-form-component';\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';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i2","i4","i5","i6","i7","i8","i9","i10","i3.ReactiveFieldDirective","i2.EnvironmentViewModel","i4.LoggerService","i2.LoggerService","i1.LoggerService","i2.TokenHelperService","i11","i12.ProgressBarComponent","i1.AuthService"],"mappings":"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"}
|