export class childCtrl extends BaseController {
/* Bindings */
group: CfdPlatformGroup;
onChangeOfGroup: (a: { group: CfdPlatformGroup }) => {};
unsub$ = new Subject<void>();
groupIn$ = new BehaviorSubject<CfdPlatformGroup>(null);
groupOut$ = new Subject<NgModelChange>();
groupModel = {};
/*@ngInject */
constructor() {
super();
}
$onInit() {
this.groupModel = createNgModelObsMediator([
'name',
'spread',
'leverage',
],
this.groupIn$,
this.groupOut$,
);
useStream(this.streamModelOut(), this.unsub$);
}
$onDestroy() {
this.unsub$.next();
this.unsub$.complete();
}
onGroupChange(newGroup: CfdPlatformGroup) {
this.groupIn$.next(newGroup);
}
streamModelOut() {
return pipe(
() => this.groupOut$,
tap(group => this.onChangeOfGroup({ group })),
)(null);
}
}
export const child = {
template,
controller: childCtrl,
bindings: {
group: '<',
onChangeOfGroup: '&',
operation: '<',
},
};
export default child;