Pārlūkot izejas kodu

Grouping Form Field Components in barrel, and using object spread operator to decalre in NgModule

Richard Knight 6 gadi atpakaļ
vecāks
revīzija
6e7c1da01e

+ 2 - 5
src/app/dynaform/components/fields/basicinput/basicinput.component.ts

@@ -8,12 +8,9 @@ import { Component, Input } from '@angular/core';
 export class BasicinputComponent {
 
 	@Input()
-	type = 'text';
+	control;
 
 	@Input()
-	value?: string;
-
-	@Input()
-	isDisabled = false;
+	meta;
 
 }

+ 6 - 4
src/app/dynaform/components/layout/dynarow/dynarow.component.ts

@@ -2,7 +2,7 @@
 
 import { Component, ComponentFactoryResolver, Input, ViewChild, OnInit, forwardRef } from '@angular/core';
 import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
-import { ComponentHostDirective } from '@directives/component-host.directive';
+// import { ComponentHostDirective } from '@directives/component-host.directive';
 
 // Group into barrel: https://basarat.gitbooks.io/typescript/docs/tips/barrel.html
 import { BasicinputComponent } from './../../fields/basicinput/basicinput.component';
@@ -27,13 +27,14 @@ type ValidComponentType = BasicinputComponent | DropdownModifiedInputComponent |
 		}
 	]
 })
-export class DynarowComponent implements OnInit, ControlValueAccessor {
+export class DynarowComponent /* implements OnInit, ControlValueAccessor */ {
 
+	/*
 	@Input()
 	meta; // TODO: Add type - will be a union type of all input types available - probably (?)
 	
-	@ViewChild(ComponentHostDirective)
-	host: ComponentHostDirective;
+	// @ViewChild(ComponentHostDirective)
+	// host: ComponentHostDirective;
 
 	label: string;
 	currentValue: string | boolean;
@@ -79,4 +80,5 @@ export class DynarowComponent implements OnInit, ControlValueAccessor {
 	}
 
 	public registerOnTouched(fn: any): void {}
+	*/
 }

+ 4 - 13
src/app/dynaform/dynaform.module.ts

@@ -5,9 +5,8 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
 import { DynaformComponent } from './components/dynaform/dynaform.component';
 import { DynafieldDirective } from './directives/dynafield.directive';
 
-import {
-	BasicinputComponent, DropdownModifiedInputComponent, CheckbuttonComponent, CheckbuttonGroupComponent
-} from './components/fields';
+import * as formFieldComponents from './components/fields';
+const ffcArr = Object.values(formFieldComponents); // Array of all the Form Field Components
 
 @NgModule({
 	imports: [
@@ -18,17 +17,9 @@ import {
 	declarations: [
 		DynaformComponent,
 		DynafieldDirective,
-		BasicinputComponent,
-		DropdownModifiedInputComponent,
-		CheckbuttonComponent,
-		CheckbuttonGroupComponent
-	],
-	entryComponents: [
-		BasicinputComponent,
-		DropdownModifiedInputComponent,
-		CheckbuttonComponent,
-		CheckbuttonGroupComponent
+		...ffcArr
 	],
+	entryComponents: ffcArr,
 	exports: [
 		DynaformComponent
 	]