|
@ -58,8 +58,8 @@ import { EMPTY, Subject } from 'rxjs'; |
|
|
import { catchError, takeUntil } from 'rxjs/operators'; |
|
|
import { catchError, takeUntil } from 'rxjs/operators'; |
|
|
|
|
|
|
|
|
import { |
|
|
import { |
|
|
AssetProfileDialogParams, |
|
|
AssetClassSelectOption, |
|
|
SelectOption |
|
|
AssetProfileDialogParams |
|
|
} from './interfaces/interfaces'; |
|
|
} from './interfaces/interfaces'; |
|
|
|
|
|
|
|
|
@Component({ |
|
|
@Component({ |
|
@ -79,21 +79,24 @@ export class AssetProfileDialog implements OnDestroy, OnInit { |
|
|
@ViewChild('assetProfileFormElement') |
|
|
@ViewChild('assetProfileFormElement') |
|
|
assetProfileFormElement: ElementRef<HTMLFormElement>; |
|
|
assetProfileFormElement: ElementRef<HTMLFormElement>; |
|
|
|
|
|
|
|
|
public assetProfileClass: string; |
|
|
public assetProfile: AdminMarketDataDetails['assetProfile']; |
|
|
public assetProfileSubClass: string; |
|
|
|
|
|
|
|
|
|
|
|
public assetClassOptions = Object.keys(AssetClass).map((id) => { |
|
|
public assetClassLabel: string; |
|
|
return { id, label: translate(id) } as SelectOption; |
|
|
public assetSubClassLabel: string; |
|
|
}); |
|
|
|
|
|
public assetSubClassOptions: SelectOption[] = []; |
|
|
|
|
|
|
|
|
|
|
|
public assetProfile: AdminMarketDataDetails['assetProfile']; |
|
|
public assetClassOptions: AssetClassSelectOption[] = Object.keys(AssetClass) |
|
|
|
|
|
.map((id) => { |
|
|
|
|
|
return { id, label: translate(id) } as AssetClassSelectOption; |
|
|
|
|
|
}) |
|
|
|
|
|
.sort((a, b) => { |
|
|
|
|
|
return a.label.localeCompare(b.label); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
public assetSubClassOptions: AssetClassSelectOption[] = []; |
|
|
|
|
|
|
|
|
public assetClassControl = new FormControl<AssetClass>(undefined); |
|
|
|
|
|
public assetSubClassControl = new FormControl<AssetSubClass>(undefined); |
|
|
|
|
|
public assetProfileForm = this.formBuilder.group({ |
|
|
public assetProfileForm = this.formBuilder.group({ |
|
|
assetClass: this.assetClassControl, |
|
|
assetClass: new FormControl<AssetClass>(undefined), |
|
|
assetSubClass: this.assetSubClassControl, |
|
|
assetSubClass: new FormControl<AssetSubClass>(undefined), |
|
|
comment: '', |
|
|
comment: '', |
|
|
countries: '', |
|
|
countries: '', |
|
|
currency: '', |
|
|
currency: '', |
|
@ -221,19 +224,22 @@ export class AssetProfileDialog implements OnDestroy, OnInit { |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
this.assetClassControl.valueChanges |
|
|
this.assetProfileForm |
|
|
.pipe(takeUntil(this.unsubscribeSubject)) |
|
|
.get('assetClass') |
|
|
|
|
|
.valueChanges.pipe(takeUntil(this.unsubscribeSubject)) |
|
|
.subscribe((assetClass) => { |
|
|
.subscribe((assetClass) => { |
|
|
const assetSubClasses = ASSET_CLASS_MAPPING.get(assetClass) ?? []; |
|
|
const assetSubClasses = ASSET_CLASS_MAPPING.get(assetClass) ?? []; |
|
|
|
|
|
|
|
|
this.assetSubClassOptions = assetSubClasses.map((assetSubClass) => { |
|
|
this.assetSubClassOptions = assetSubClasses |
|
|
return { |
|
|
.map((assetSubClass) => { |
|
|
id: assetSubClass, |
|
|
return { |
|
|
label: translate(assetSubClass) |
|
|
id: assetSubClass, |
|
|
}; |
|
|
label: translate(assetSubClass) |
|
|
}); |
|
|
}; |
|
|
|
|
|
}) |
|
|
|
|
|
.sort((a, b) => a.label.localeCompare(b.label)); |
|
|
|
|
|
|
|
|
this.assetSubClassControl.setValue(null); |
|
|
this.assetProfileForm.get('assetSubClass').setValue(null); |
|
|
|
|
|
|
|
|
this.changeDetectorRef.markForCheck(); |
|
|
this.changeDetectorRef.markForCheck(); |
|
|
}); |
|
|
}); |
|
@ -247,8 +253,8 @@ export class AssetProfileDialog implements OnDestroy, OnInit { |
|
|
.subscribe(({ assetProfile, marketData }) => { |
|
|
.subscribe(({ assetProfile, marketData }) => { |
|
|
this.assetProfile = assetProfile; |
|
|
this.assetProfile = assetProfile; |
|
|
|
|
|
|
|
|
this.assetProfileClass = translate(this.assetProfile?.assetClass); |
|
|
this.assetClassLabel = translate(this.assetProfile?.assetClass); |
|
|
this.assetProfileSubClass = translate(this.assetProfile?.assetSubClass); |
|
|
this.assetSubClassLabel = translate(this.assetProfile?.assetSubClass); |
|
|
this.countries = {}; |
|
|
this.countries = {}; |
|
|
|
|
|
|
|
|
this.isBenchmark = this.benchmarks.some(({ id }) => { |
|
|
this.isBenchmark = this.benchmarks.some(({ id }) => { |
|
|