import {
ChangeDetectionStrategy,
Component,
ContentChild,
forwardRef,
HostBinding,
Inject,
Input,
TemplateRef
} from "@angular/core";
import { SdmFormControl } from "./SdmFormControl";
import { SdInputValidate } from "@simplysm/sd-angular";
@Component({
selector: "sdm-form-item",
changeDetection: ChangeDetectionStrategy.OnPush,
template: `
`,
styles: [/* language=SCSS */ `
:host {
> label {
font-size: small;
font-weight: bold;
}
&[sd-layout="cascade"] {
display: block;
margin-bottom: var(--gap-default);
> label {
display: block;
}
}
&[sd-layout="table"] {
display: table-row;
> label {
display: table-cell;
vertical-align: middle;
}
> ._content {
display: table-cell;
vertical-align: middle;
text-align: right;
}
}
}
`]
})
export class SdmFormItemControl {
@Input()
@SdInputValidate(String)
public label?: string;
@ContentChild("label", { static: true })
public labelTemplateRef?: TemplateRef<{ label?: string }>;
@HostBinding("attr.sd-layout")
public get layout(): "cascade" | "table" {
return this._parentFormControl.layout;
}
public constructor(@Inject(forwardRef(() => SdmFormControl))
private readonly _parentFormControl: SdmFormControl) {
}
}