Skip to content

Commit

Permalink
declare kiss-control-base
Browse files Browse the repository at this point in the history
  • Loading branch information
begandroide committed Aug 13, 2021
1 parent b505ac4 commit d28ce90
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { VisibilityMode } from '../visibility-modes';

@Component({
selector: 'app-kiss-control-base',
template: ``,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class KissControlBaseComponent implements OnInit {
visibilityMode!: VisibilityMode;
form: FormGroup;

protected formBuilder: FormBuilder;
protected cdRef: ChangeDetectorRef;

constructor(injector: Injector) {
this.formBuilder = injector.get(FormBuilder);
this.cdRef = injector.get(ChangeDetectorRef);
this.form = this.buildForm();
}

ngOnInit(): void {
this.switchVisibilityMode();
}

/**
* switch over the visibility mode
**/
private switchVisibilityMode(): void {
switch (this.visibilityMode) {
case VisibilityMode.Editor:
this.form.disable();
this.cdRef.detectChanges();
break;
case VisibilityMode.Preview:
case VisibilityMode.Answering:
case VisibilityMode.Closed:
case VisibilityMode.Hidding:
break;
default:
throw new Error('Unknown visibility mode: ' + this.visibilityMode);
}
}

protected buildForm(): FormGroup {
return this.formBuilder.group({
input: ['', [
Validators.required
]]
});
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { KissControlBaseComponent } from './kiss-control-base.component';



@NgModule({
declarations: [
KissControlBaseComponent
],
exports: [
KissControlBaseComponent,
],
imports: [
CommonModule
]
})
export class KissControlBaseModule { }

0 comments on commit d28ce90

Please sign in to comment.