Skip to content
This repository was archived by the owner on Apr 16, 2024. It is now read-only.

Commit 4a20666

Browse files
committed
Raname LazyInput to LazyControl and set LazyMetadata component type
1 parent e4743d4 commit 4a20666

19 files changed

+77
-76
lines changed

src/app/_external/default-input/default-input.component.ts renamed to src/app/_external/default-control/default-control.component.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import {Component, Input, OnInit} from '@angular/core';
22
import {FormControl} from '@angular/forms';
3-
import {Subject} from 'rxjs/Subject';
4-
import {LazyInputComponent} from '../../_frameworks/lazy-forms';
3+
import {LazyControlComponent} from '../../_frameworks/lazy-forms';
54
import {BaseMetadata} from '../metadata.models';
65

7-
export class DefaultInputMetadata extends BaseMetadata {
6+
export class DefaultControlMetadata extends BaseMetadata {
87
type: string;
98
step?: number;
10-
component = DefaultInputComponent;
9+
component = DefaulControlComponent;
1110

1211
constructor(options: {} = {}) {
1312
super(options);
@@ -17,12 +16,12 @@ export class DefaultInputMetadata extends BaseMetadata {
1716
}
1817

1918
@Component({
20-
templateUrl: './default-input.component.html',
21-
styleUrls: ['./default-input.component.scss']
19+
templateUrl: './default-control.component.html',
20+
styleUrls: ['./default-control.component.scss']
2221
})
23-
export class DefaultInputComponent implements OnInit, LazyInputComponent {
22+
export class DefaulControlComponent implements OnInit, LazyControlComponent {
2423
@Input() value: string | number | Date;
25-
@Input() metadata: DefaultInputMetadata;
24+
@Input() metadata: DefaultControlMetadata;
2625
control: FormControl;
2726

2827
ngOnInit() {

src/app/_external/external.module.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import {NgModule} from '@angular/core';
33
import {FlexLayoutModule} from '@angular/flex-layout';
44
import {ReactiveFormsModule} from '@angular/forms';
55
import {LazyFormModule} from '../_frameworks/lazy-forms';
6-
import {DefaultInputComponent} from './default-input/default-input.component';
7-
import {NestedFormInputComponent} from './nested-form-input/nested-form-input.component';
8-
import {FormArrayInputComponent} from './form-array-input/form-array-input.component';
6+
import {DefaulControlComponent} from './default-control/default-control.component';
7+
import {NestedFormControlComponent} from './nested-form-control/nested-form-control.component';
8+
import {FormArrayControlComponent} from './form-array-control/form-array-control.component';
99

1010
@NgModule({
1111
imports: [
@@ -15,14 +15,14 @@ import {FormArrayInputComponent} from './form-array-input/form-array-input.compo
1515
LazyFormModule,
1616
],
1717
declarations: [
18-
DefaultInputComponent,
19-
NestedFormInputComponent,
20-
FormArrayInputComponent,
18+
DefaulControlComponent,
19+
NestedFormControlComponent,
20+
FormArrayControlComponent,
2121
],
2222
entryComponents: [
23-
DefaultInputComponent,
24-
NestedFormInputComponent,
25-
FormArrayInputComponent,
23+
DefaulControlComponent,
24+
NestedFormControlComponent,
25+
FormArrayControlComponent,
2626
]
2727
})
2828
export class ExternalModule {}

src/app/_external/form-array-input/form-array-input.component.ts renamed to src/app/_external/form-array-control/form-array-control.component.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
import {Component, Input, OnInit} from '@angular/core';
22
import {FormArray} from '@angular/forms';
3-
import {LazyInputComponent} from '../../_frameworks/lazy-forms';
4-
import {DefaultInputMetadata} from '../default-input/default-input.component';
3+
import {LazyControlComponent} from '../../_frameworks/lazy-forms';
4+
import {DefaultControlMetadata} from '../default-control/default-control.component';
55
import {BaseMetadata} from '../metadata.models';
66

7-
export class FormArrayInputMetadata extends BaseMetadata {
8-
component = FormArrayInputComponent;
9-
child: DefaultInputMetadata;
7+
export class FormArrayControlMetadata extends BaseMetadata {
8+
component = FormArrayControlComponent;
9+
child: DefaultControlMetadata;
1010

1111
constructor(options: {} = {}) {
1212
super(options);
13-
this.child = new DefaultInputMetadata(options['child']);
13+
this.child = new DefaultControlMetadata(options['child']);
1414
}
1515
}
1616

1717
@Component({
18-
templateUrl: './form-array-input.component.html',
19-
styleUrls: ['./form-array-input.component.scss']
18+
templateUrl: './form-array-control.component.html',
19+
styleUrls: ['./form-array-control.component.scss']
2020
})
21-
export class FormArrayInputComponent implements OnInit, LazyInputComponent {
21+
export class FormArrayControlComponent implements OnInit, LazyControlComponent {
2222
@Input() value: string[];
23-
@Input() metadata: FormArrayInputMetadata;
23+
@Input() metadata: FormArrayControlMetadata;
2424
control: FormArray;
2525
altValue = [];
2626

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import {Component, Input} from '@angular/core';
2+
import {FormGroup} from '@angular/forms';
3+
import {LazyControlComponent} from '../../_frameworks/lazy-forms';
4+
import {UserModel} from '../../decorators-form-example/model';
5+
import {BaseMetadata} from '../metadata.models';
6+
7+
export class NestedFormControlMetadata extends BaseMetadata {
8+
component = NestedFormControlComponent;
9+
}
10+
11+
@Component({
12+
selector: 'app-nested-form-input',
13+
templateUrl: './nested-form-control.component.html',
14+
styleUrls: ['./nested-form-control.component.scss']
15+
})
16+
export class NestedFormControlComponent implements LazyControlComponent {
17+
@Input() value: UserModel;
18+
@Input() metadata: NestedFormControlMetadata;
19+
control = new FormGroup({});
20+
// control: FormGroup;
21+
}

src/app/_external/nested-form-input/nested-form-input.component.ts

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export * from './lazy-form.directive';
22
export * from './lazy-form.module';
3-
export * from './lazy-input.component';
3+
export * from './lazy-control.component';
44
export * from './lazy-metadata';
55
export * from './lazy-selector.component';

src/app/_frameworks/lazy-forms/lazy-input.component.ts renamed to src/app/_frameworks/lazy-forms/lazy-control.component.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@ import {AbstractControl} from '@angular/forms';
22
import {Subject} from 'rxjs/Subject';
33
import {LazyMetadata} from './lazy-metadata';
44

5-
export abstract class LazyInputComponent {
5+
export abstract class LazyControlComponent {
66
abstract value: any;
77
abstract metadata: LazyMetadata;
88
abstract control: AbstractControl;
99
}
1010

11-
export abstract class LazyInputComponentExtended extends LazyInputComponent {
11+
export abstract class LazyControlComponentExtended extends LazyControlComponent {
1212
controlSetStart: Subject<any>;
1313
controlSetEnd: Subject<any>;
1414

15-
static supplement(target: LazyInputComponent): LazyInputComponentExtended {
15+
static supplement(target: LazyControlComponent): LazyControlComponentExtended {
1616
// supply subjects
17-
(target as LazyInputComponentExtended).controlSetStart = new Subject();
18-
(target as LazyInputComponentExtended).controlSetEnd = new Subject();
17+
(target as LazyControlComponentExtended).controlSetStart = new Subject();
18+
(target as LazyControlComponentExtended).controlSetEnd = new Subject();
1919

2020
// property value
2121
let _control = target['control'];
@@ -43,6 +43,6 @@ export abstract class LazyInputComponentExtended extends LazyInputComponent {
4343
});
4444
}
4545

46-
return target as LazyInputComponentExtended;
46+
return target as LazyControlComponentExtended;
4747
}
4848
}

src/app/_frameworks/lazy-forms/lazy-metadata.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import {Type} from '@angular/core';
2+
import {LazyControlComponent} from './lazy-control.component';
3+
14
export abstract class LazyMetadata {
25
key: string;
3-
abstract readonly component: any;
6+
abstract readonly component: Type<LazyControlComponent>;
47

58
constructor(options: {} = {}) {
69
this.key = options['key'];

src/app/_frameworks/lazy-forms/lazy-selector.component.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import cloneDeep from 'lodash-es/cloneDeep';
1313
import 'rxjs/add/operator/takeUntil';
1414
import {Subject} from 'rxjs/Subject';
1515
import {LazyHostDirective} from './lazy-host.directive';
16-
import {LazyInputComponent, LazyInputComponentExtended} from './lazy-input.component';
16+
import {LazyControlComponent, LazyControlComponentExtended} from './lazy-control.component';
1717
import {LazyMetadata} from './lazy-metadata';
1818
import {LazySelectorService} from './lazy-selector.service';
1919

@@ -27,7 +27,7 @@ export class LazySelectorComponent implements OnInit, OnDestroy {
2727
@Input() value: any;
2828
@Input() metadata: LazyMetadata;
2929
@ViewChild(LazyHostDirective) lazyHost: LazyHostDirective;
30-
private child: LazyInputComponentExtended;
30+
private child: LazyControlComponentExtended;
3131
private ngUnsubscribe: Subject<void> = new Subject<void>();
3232

3333
constructor(private componentFactoryResolver: ComponentFactoryResolver,
@@ -63,7 +63,7 @@ export class LazySelectorComponent implements OnInit, OnDestroy {
6363
private loadChild() {
6464
const viewContainerRef = this.clearComponent();
6565
const componentRef = viewContainerRef.createComponent(this.getComponentFactory());
66-
this.child = LazyInputComponentExtended.supplement(componentRef.instance);
66+
this.child = LazyControlComponentExtended.supplement(componentRef.instance);
6767
this.setChildValueAndMetadata();
6868
this.addChildControlIfExists();
6969
this.setHooks(componentRef);
@@ -75,7 +75,7 @@ export class LazySelectorComponent implements OnInit, OnDestroy {
7575
return viewContainerRef;
7676
}
7777

78-
private getComponentFactory(): ComponentFactory<LazyInputComponent> {
78+
private getComponentFactory(): ComponentFactory<LazyControlComponent> {
7979
return this.componentFactoryResolver.resolveComponentFactory(this.metadata.component);
8080
}
8181

@@ -84,7 +84,7 @@ export class LazySelectorComponent implements OnInit, OnDestroy {
8484
this.child.metadata = this.metadata;
8585
}
8686

87-
private setHooks(componentRef: ComponentRef<LazyInputComponent>) {
87+
private setHooks(componentRef: ComponentRef<LazyControlComponent>) {
8888
componentRef.onDestroy(() => this.removeChildControl());
8989
this.child.controlSetStart.takeUntil(this.ngUnsubscribe)
9090
.subscribe(() => {

src/app/decorators-form-example/model.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
import {DefaultInputMetadata} from '../_external/default-input/default-input.component';
1+
import {DefaultControlMetadata} from '../_external/default-control/default-control.component';
22
import {metadata, MetadataAccessor} from '../_external/metadata.models';
33

44
export class UserModel extends MetadataAccessor {
5-
@metadata(new DefaultInputMetadata({
5+
@metadata(new DefaultControlMetadata({
66
label: 'First Name',
77
required: true,
88
}))
99
firstName: string;
1010

11-
@metadata(new DefaultInputMetadata({
11+
@metadata(new DefaultControlMetadata({
1212
label: 'Last Name',
1313
}))
1414
lastName: string;
1515

16-
@metadata(new DefaultInputMetadata({
16+
@metadata(new DefaultControlMetadata({
1717
label: 'Age',
1818
type: 'number'
1919
}))

src/app/form-array-example/model.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import {DefaultInputMetadata} from '../_external/default-input/default-input.component';
2-
import {FormArrayInputMetadata} from '../_external/form-array-input/form-array-input.component';
1+
import {DefaultControlMetadata} from '../_external/default-control/default-control.component';
2+
import {FormArrayControlMetadata} from '../_external/form-array-control/form-array-control.component';
33
import {metadata, MetadataAccessor} from '../_external/metadata.models';
44

55
export class FormArrayExampleModel extends MetadataAccessor {
6-
@metadata(new DefaultInputMetadata({
6+
@metadata(new DefaultControlMetadata({
77
label: 'Label for Title',
88
placeholder: 'My placeholder'
99
}))
1010
title: string;
1111

12-
@metadata(new FormArrayInputMetadata({minLength: 4}))
12+
@metadata(new FormArrayControlMetadata({minLength: 4}))
1313
array: string[];
1414

1515
constructor(options: {} = {}) {

src/app/nested-form-example/model.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import {DefaultInputMetadata} from '../_external/default-input/default-input.component';
1+
import {DefaultControlMetadata} from '../_external/default-control/default-control.component';
22
import {metadata, MetadataAccessor} from '../_external/metadata.models';
3-
import {NestedFormInputMetadata} from '../_external/nested-form-input/nested-form-input.component';
3+
import {NestedFormControlMetadata} from '../_external/nested-form-control/nested-form-control.component';
44
import {UserModel} from '../decorators-form-example/model';
55

66
export class NestedFormExampleModel extends MetadataAccessor {
7-
@metadata(new DefaultInputMetadata({
7+
@metadata(new DefaultControlMetadata({
88
label: 'Title',
99
}))
1010
title: string;
1111

12-
@metadata(new NestedFormInputMetadata())
12+
@metadata(new NestedFormControlMetadata())
1313
userModel: UserModel;
1414

1515
constructor(options: {} = {}) {

src/app/no-decorators-form-example/no-decorators-form-example.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {Component} from '@angular/core';
22
import {FormGroup} from '@angular/forms';
3-
import {DefaultInputMetadata} from '../_external/default-input/default-input.component';
3+
import {DefaultControlMetadata} from '../_external/default-control/default-control.component';
44

55
@Component({
66
selector: 'app-no-decorators-form-example',
@@ -11,7 +11,7 @@ export class NoDecoratorsFormExampleComponent {
1111

1212
form = new FormGroup({});
1313
value = 'Populated value';
14-
metadata = new DefaultInputMetadata({
14+
metadata = new DefaultControlMetadata({
1515
key: 'sampleField',
1616
label: 'Sample Label',
1717
required: true,

0 commit comments

Comments
 (0)