Skip to content

Commit bd2c0a1

Browse files
authored
Merge pull request #18 from itigoore01/refactor
refactor(lib): strictモードを有効にし、リファクタリングをしました
2 parents b62c1e4 + c79baa1 commit bd2c0a1

File tree

13 files changed

+79
-55
lines changed

13 files changed

+79
-55
lines changed

package-lock.json

Lines changed: 11 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,19 @@
6666
"analyzeCommits": {
6767
"preset": "angular",
6868
"releaseRules": [
69-
{ "type": "docs", "scope": "lib", "release": "patch" },
70-
{ "type": "refactor", "release": "patch" },
71-
{ "type": "style", "release": "patch" }
69+
{
70+
"type": "docs",
71+
"scope": "lib",
72+
"release": "patch"
73+
},
74+
{
75+
"type": "refactor",
76+
"release": "patch"
77+
},
78+
{
79+
"type": "style",
80+
"release": "patch"
81+
}
7282
]
7383
},
7484
"prepare": [

projects/ngx-yubinbango/src/lib/address/yb-address.ts

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,36 +6,44 @@ import { YbLocality } from './yb-locality';
66
import { YbStreet } from './yb-street';
77
import { YbExtended } from './yb-extended';
88
import { Observable, merge, Subscription } from 'rxjs';
9-
import { startWith, mapTo, filter } from 'rxjs/operators';
9+
import { startWith, mapTo, filter, map } from 'rxjs/operators';
10+
11+
export type YbAddressAutocompleteMode = 'change' | 'keyup' | 'off';
1012

1113
@Directive({
1214
selector: '[ybAddress]',
1315
exportAs: 'ybAddress',
1416
})
1517
export class YbAddress implements OnDestroy, AfterContentInit {
1618

17-
@Input('ybAutocompleteMode') autocompleteMode: 'change' | 'keyup' | 'off' = 'keyup';
19+
@Input('ybAutocompleteMode') autocompleteMode: YbAddressAutocompleteMode = 'keyup';
1820

19-
@ContentChildren(YbPostalCode, { descendants: true }) postalCodes: QueryList<YbPostalCode>;
21+
@ContentChildren(YbPostalCode, { descendants: true }) postalCodes!: QueryList<YbPostalCode>;
2022

21-
@ContentChild(YbRegion) region: YbRegion;
23+
@ContentChild(YbRegion) region: YbRegion | null = null;
2224

23-
@ContentChild(YbLocality) locality: YbLocality;
25+
@ContentChild(YbLocality) locality: YbLocality | null = null;
2426

25-
@ContentChild(YbStreet) street: YbStreet;
27+
@ContentChild(YbStreet) street: YbStreet | null = null;
2628

27-
@ContentChild(YbExtended) extended: YbExtended;
29+
@ContentChild(YbExtended) extended: YbExtended | null = null;
2830

29-
private _changeSubscription: Subscription;
31+
private _changeSubscription: Subscription | null = null;
3032

31-
private _postalCodeValueChangeSubscription: Subscription;
33+
private _postalCodeValueChangeSubscription: Subscription | null = null;
3234

3335
get postalCodeValueChanges(): Observable<string> {
34-
return merge(...this.postalCodes.map(p => p._onChange));
36+
return merge(...this.postalCodes.map(p => p._onChange))
37+
.pipe(
38+
map(v => v || ''),
39+
);
3540
}
3641

3742
get postalCodeKeyup(): Observable<string> {
38-
return merge(...this.postalCodes.map(p => p._onKeyup));
43+
return merge(...this.postalCodes.map(p => p._onKeyup))
44+
.pipe(
45+
map(v => v || ''),
46+
);
3947
}
4048

4149
constructor(
@@ -65,16 +73,12 @@ export class YbAddress implements OnDestroy, AfterContentInit {
6573

6674
this._addressManager.getAddress(postalCode)
6775
.subscribe(addr => {
68-
// 一旦すべてリセット
69-
if (this.region) { this.region.value = ''; }
70-
if (this.locality) { this.locality.value = ''; }
71-
if (this.street) { this.street.value = ''; }
72-
if (this.extended) { this.extended.value = ''; }
73-
74-
if (this.region) { this.region.value += this._addressManager.getRegion(addr); }
75-
if (this.locality) { this.locality.value += this._addressManager.getLocality(addr); }
76-
if (this.street) { this.street.value += this._addressManager.getStreet(addr); }
77-
if (this.extended) { this.extended.value += this._addressManager.getExtended(addr); }
76+
if (addr) {
77+
if (this.region) { this.region.value = this._addressManager.getRegion(addr); }
78+
if (this.locality) { this.locality.value = this._addressManager.getLocality(addr); }
79+
if (this.street) { this.street.value = this._addressManager.getStreet(addr); }
80+
if (this.extended) { this.extended.value = this._addressManager.getExtended(addr); }
81+
}
7882
});
7983
}
8084

@@ -91,12 +95,12 @@ export class YbAddress implements OnDestroy, AfterContentInit {
9195
}
9296

9397
private _listenToPostalCode() {
94-
this._postalCodeValueChangeSubscription = merge<typeof YbAddress['prototype']['autocompleteMode']>(
98+
this._postalCodeValueChangeSubscription = merge<YbAddressAutocompleteMode>(
9599
this.postalCodeValueChanges.pipe(mapTo('change')),
96100
this.postalCodeKeyup.pipe(mapTo('keyup'))
97101
)
98102
.pipe(filter(mode => mode === this.autocompleteMode))
99-
.subscribe((mode) => {
103+
.subscribe((_) => {
100104
this.complete();
101105
});
102106
}

projects/ngx-yubinbango/src/lib/address/yb-extended.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Directive, Renderer2, ElementRef, Optional, Self } from '@angular/core';
1+
import { Directive, Renderer2, ElementRef, Optional, Self, Inject } from '@angular/core';
22
import { CompletionTarget } from '../core/common-behaviors/completion-target';
33
import { NgControl } from '@angular/forms';
44

@@ -10,7 +10,7 @@ export class YbExtended extends CompletionTarget {
1010
constructor(
1111
renderer: Renderer2,
1212
elementRef: ElementRef,
13-
@Self() @Optional() ngControl: NgControl,
13+
@Inject(NgControl) @Self() @Optional() ngControl: NgControl | undefined,
1414
) {
1515
super(ngControl, elementRef, renderer);
1616
}

projects/ngx-yubinbango/src/lib/address/yb-locality.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Directive, Renderer2, ElementRef, Self, Optional } from '@angular/core';
1+
import { Directive, Renderer2, ElementRef, Self, Optional, Inject } from '@angular/core';
22
import { CompletionTarget } from '../core/common-behaviors/completion-target';
33
import { NgControl } from '@angular/forms';
44

@@ -10,7 +10,7 @@ export class YbLocality extends CompletionTarget {
1010
constructor(
1111
renderer: Renderer2,
1212
elementRef: ElementRef,
13-
@Self() @Optional() ngControl: NgControl,
13+
@Inject(NgControl) @Self() @Optional() ngControl: NgControl | undefined,
1414
) {
1515
super(ngControl, elementRef, renderer);
1616
}

projects/ngx-yubinbango/src/lib/address/yb-postal-code.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ import { Subject } from 'rxjs';
77
})
88
export class YbPostalCode {
99

10-
get value(): string {
10+
get value(): string | null {
1111
return !!this._ngControl ? this._ngControl.value : this._elementRef.nativeElement.value;
1212
}
1313

14-
readonly _onChange = new Subject<string>();
14+
readonly _onChange = new Subject<string | null>();
1515

16-
readonly _onKeyup = new Subject<string>();
16+
readonly _onKeyup = new Subject<string | null>();
1717

1818
constructor(
1919
private _elementRef: ElementRef<HTMLInputElement>,

projects/ngx-yubinbango/src/lib/address/yb-region.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Directive, ElementRef, Renderer2, Self, Optional } from '@angular/core';
1+
import { Directive, ElementRef, Renderer2, Self, Optional, Inject } from '@angular/core';
22
import { NgControl } from '@angular/forms';
33
import { CompletionTarget } from '../core/common-behaviors/completion-target';
44

@@ -10,7 +10,7 @@ export class YbRegion extends CompletionTarget {
1010
constructor(
1111
renderer: Renderer2,
1212
elementRef: ElementRef,
13-
@Self() @Optional() ngControl: NgControl,
13+
@Inject(NgControl) @Self() @Optional() ngControl: NgControl | undefined,
1414
) {
1515
super(ngControl, elementRef, renderer);
1616
}

projects/ngx-yubinbango/src/lib/address/yb-street.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Directive, Renderer2, ElementRef, Self, Optional } from '@angular/core';
1+
import { Directive, Renderer2, ElementRef, Self, Optional, Inject } from '@angular/core';
22
import { CompletionTarget } from '../core/common-behaviors/completion-target';
33
import { NgControl } from '@angular/forms';
44

@@ -10,7 +10,7 @@ export class YbStreet extends CompletionTarget {
1010
constructor(
1111
renderer: Renderer2,
1212
elementRef: ElementRef,
13-
@Self() @Optional() ngControl: NgControl,
13+
@Inject(NgControl) @Self() @Optional() ngControl: NgControl | undefined,
1414
) {
1515
super(ngControl, elementRef, renderer);
1616
}

projects/ngx-yubinbango/src/lib/core/address-manager.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import { DefaultAddressManager } from './default-address-manager';
66
providedIn: 'root',
77
useExisting: DefaultAddressManager,
88
})
9-
export abstract class AddressManager<T = any> {
10-
abstract getAddress(postalCode: string): Observable<T>;
9+
export abstract class AddressManager<T = Object> {
10+
abstract getAddress(postalCode: string): Observable<T | null>;
1111
abstract validatePostalCode(postalCode: string): boolean;
1212
abstract normalizePostalCode(postalCode: string): string;
1313
abstract getRegion(address: T): string;

projects/ngx-yubinbango/src/lib/core/common-behaviors/completion-target.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export class CompletionTarget {
1313
return '';
1414
}
1515
set value(value: string) {
16-
if (this.ngControl) {
16+
if (this.ngControl && this.ngControl.control) {
1717
this.ngControl.control.setValue(value);
1818
} else if ('value' in this.elementRef.nativeElement) {
1919
this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);
@@ -23,7 +23,7 @@ export class CompletionTarget {
2323
}
2424

2525
constructor(
26-
public ngControl: NgControl,
26+
public ngControl: NgControl | undefined,
2727
public elementRef: ElementRef,
2828
public renderer: Renderer2,
2929
) { }

0 commit comments

Comments
 (0)