Skip to content

Commit

Permalink
add boolean column desc builder
Browse files Browse the repository at this point in the history
  • Loading branch information
sgratzl committed Nov 29, 2018
1 parent c82e38b commit 4f7206a
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 1 deletion.
19 changes: 18 additions & 1 deletion src/builder/adapter/column.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ import {
INumberColumnDesc,
IPartialCategoryNode,
IActionColumnDesc,
ILinkColumnDesc
ILinkColumnDesc,
IBooleanColumnDesc
} from '../../model';

export interface IBuilderAdapterColumnDescProps extends Partial<IColumnDesc> {
Expand Down Expand Up @@ -190,6 +191,22 @@ export function buildString(props: IBuilderAdapterStringColumnDescProps): ILinkC
return desc;
}

export interface IBuilderAdapterBooleanColumnDescProps extends IBuilderAdapterColumnDescProps {
trueMarker?: string;
falseMarker?: string;
}

export function buildBoolean(props: IBuilderAdapterBooleanColumnDescProps): IBooleanColumnDesc {
const desc: any = build({...props, type: 'boolean'});

(<(keyof IBuilderAdapterBooleanColumnDescProps)[]>['trueMarker', 'falseMarker']).forEach((key) => {
if (props.hasOwnProperty(key)) {
desc[key] = props[key];
}
});
return desc;
}

export interface IBuilderAdapterActionsColumnDescProps extends IBuilderAdapterColumnDescProps {
actions?: IAction[];
groupActions?: IGroupAction[];
Expand Down
28 changes: 28 additions & 0 deletions src/builder/column/BooleanColumnBuilder.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import {IBooleanColumnDesc} from '../../model';
import ColumnBuilder from './ColumnBuilder';

export default class BooleanColumnBuilder extends ColumnBuilder<IBooleanColumnDesc> {

constructor(column: string) {
super('boolean', column);
}

trueMarker(marker: string) {
this.desc.trueMarker = marker;
return this;
}

falseMarker(marker: string) {
this.desc.falseMarker = marker;
return this;
}
}

/**
* builds a boolean column builder
* @param {string} column column which contains the associated data
* @returns {BooleanColumnBuilder}
*/
export function buildBooleanColumn(column: string) {
return new BooleanColumnBuilder(column);
}
1 change: 1 addition & 0 deletions src/builder/column/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ export * from './StringColumnBuilder';
export * from './DateColumnBuilder';
export * from './HierarchyColumnBuilder';
export * from './ActionsColumnBuilder';
export * from './BooleanColumnBuilder';

0 comments on commit 4f7206a

Please sign in to comment.