import * as React from 'react';
import { VField } from './vField';
import { VArr } from './vArr';
import { VSubmit } from './vSubmit';
import { uid } from 'tonva-react-form';
export abstract class VBand {
protected label: string;
protected view = () =>
;
constructor(label:string) {
this.label = label;
}
render():JSX.Element {
//text-sm-right
return
{this.renderContent()}
;
}
setAddRow(addRow:()=>Promise) {}
get key() {return this.label}
public getVFields():VField[] {return;}
public getVArr():VArr {return;}
public getVSubmit():VSubmit {return;}
protected renderContent():JSX.Element {
return content
;
}
}
export interface FieldRes {
label: string;
placeHolder: string;
suffix: string;
}
export class VFieldBand extends VBand {
protected vField:VField;
constructor(label:string, vField:VField) {
super(label);
this.vField = vField;
}
get key() {return this.vField.name}
public getVFields():VField[] {return [this.vField];}
protected renderContent():JSX.Element {
return this.vField.render();
/*
{this.vField.render()}
;*/
}
}
export class VArrBand extends VBand {
protected vArr:VArr;
constructor(label:string, vArr:VArr) {
super(label);
this.vArr = vArr;
}
setAddRow(addRow:()=>Promise) {this.vArr.setAddRow(addRow)}
get key() {return this.vArr.name}
public getVArr():VArr {return this.vArr;}
render():JSX.Element {
return
{this.vArr && this.vArr.render()}
;
}
}
export class VFieldsBand extends VBand {
protected vFields: VField[];
constructor(label:string, vFields:VField[]) {
super(label);
this.vFields = vFields;
}
get key() {return this.vFields[0].name}
public getVFields():VField[] {return this.vFields;}
protected renderContent():JSX.Element {
return
fields
;
}
}
export class VSubmitBand extends VBand {
protected vSubmit: VSubmit;
constructor(vSubmit:VSubmit) {
super(undefined);
this.vSubmit = vSubmit;
}
get key() {return '$submit'}
public getVSubmit():VSubmit {return this.vSubmit;}
render():JSX.Element {
return ;
}
}