ohayolibs
Version:
Ohayo is a set of essential modules for ohayojp.
95 lines (86 loc) • 2.89 kB
text/typescript
import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewEncapsulation } from '@angular/core';
import { REP_TYPE } from '@ohayo/theme';
import { OhayoConfigService, InputBoolean, InputNumber, NumberInput, toNumber } from '@ohayo/util';
import { NzSafeAny } from 'ng-zorro-antd/core/types/any';
import { BehaviorSubject, Observable } from 'rxjs';
import { filter } from 'rxjs/operators';
import { SEErrorRefresh, SELayout } from './se.types';
export class SEContainerComponent {
static ngAcceptInputType_col: NumberInput;
static ngAcceptInputType_colInCon: NumberInput;
static ngAcceptInputType_labelWidth: NumberInput;
private errorNotify$ = new BehaviorSubject<SEErrorRefresh>(null as NzSafeAny);
colInCon: REP_TYPE;
col: REP_TYPE;
labelWidth: number;
title: string | TemplateRef<void>;
get gutter(): number {
return this.nzLayout === 'horizontal' ? this._gutter : 0;
}
set gutter(value: number) {
this._gutter = toNumber(value);
}
private _gutter: number;
get nzLayout(): SELayout {
return this._nzLayout;
}
set nzLayout(value: SELayout) {
this._nzLayout = value;
if (value === 'inline') {
this.size = 'compact';
}
}
private _nzLayout: SELayout;
size: 'default' | 'compact';
firstVisual: boolean;
ingoreDirty: boolean;
line = false;
set errors(val: SEErrorRefresh[]) {
this.setErrors(val);
}
get errorNotify(): Observable<SEErrorRefresh> {
return this.errorNotify$.pipe(filter(v => v != null));
}
constructor(configSrv: OhayoConfigService) {
configSrv.attach(this, 'se', {
size: 'default',
nzLayout: 'horizontal',
gutter: 32,
col: 2,
labelWidth: 150,
firstVisual: false,
ingoreDirty: false,
});
}
setErrors(errors: SEErrorRefresh[]): void {
for (const error of errors) {
this.errorNotify$.next(error);
}
}
}