All files / src/components/tek-grid dynamic-filter-datasource-factory.ts

100% Statements 6/6
100% Branches 0/0
100% Functions 3/3
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21112x     112x   15x               15x 82x            
import { Datasource, DatasourceFactory, IDictionary } from '@zeedhi/core';
import { IDynamicFilterDatasourceFactory } from './interfaces';
 
export class DynamicFilterDatasourceFactory implements IDynamicFilterDatasourceFactory {
	factory(options: IDictionary<boolean>): Datasource {
		return DatasourceFactory.factory({
			data: this.getFilterOptionsData(options),
			loadAll: true,
			translate: ['text'],
		});
	}
 
	private getFilterOptionsData(options: IDictionary<boolean>): IDictionary<any>[] {
		const optionsKeys = Object.keys(options);
		return optionsKeys.map((item) => ({
			text: `TEKGRID_${item}`,
			value: item,
		}));
	}
}