diff --git a/ej.widgets.all/ej.mobile.all-tests.ts b/ej.widgets.all/ej.mobile.all-tests.ts
new file mode 100644
index 0000000000..86381d522a
--- /dev/null
+++ b/ej.widgets.all/ej.mobile.all-tests.ts
@@ -0,0 +1,336 @@
+///
+///
+
+$(document).ready(function () {
+
+ $("#CoreLinearGauge").ejLinearGauge({
+ labelColor: "#8c8c8c", width: 500,
+ scales: [{
+ width: 4, border: { color: "transparent",width:0 }, showBarPointers: false, showRanges: true, length: 310,
+ position: { x: 52, y: 50 }, markerPointers: [{
+ value: 50, length: 10, width: 10, backgroundColor: "#4D4D4D", border: { color: "#4D4D4D" }
+ }],
+ labels: [{ font: { size: "11px", fontFamily: "Segoe UI", fontStyle: "bold" }, distanceFromScale:{x: -13} }],
+ ticks: [{ type: "majorinterval", width: 1, color: "#8c8c8c" }],
+ ranges: [{
+ endValue: 60,
+ startValue: 0,
+ backgroundColor: "#F6B53F",
+ border: { color: "#F6B53F" }, startWidth: 4, endWidth: 4
+ }, {
+ endValue: 100,
+ startValue: 60,
+ backgroundColor: "#E94649",
+ border: { color: "#E94649" }, startWidth: 4, endWidth: 4
+ }]
+ }],
+ init:onLinearGaugeinit,
+ mouseClick:onLinearGaugemouseClick
+ });
+});
+
+function onLinearGaugeinit()
+{
+ console.log("init");
+}
+function onLinearGaugemouseClick()
+{
+ console.log("mouseClick");
+}
+
+$(document).ready(function () {
+
+ $("#CoreCircularGauge").ejCircularGauge({
+ backgroundColor: "transparent", width: 500,
+ scales: [{
+ showRanges: true,
+ startAngle: 122, sweepAngle: 296, radius: 130, showScaleBar: true, size: 1, maximum: 120, majorIntervalValue: 20, minorIntervalValue: 10,
+ border: {
+ width: 0.5,
+ },
+ pointers: [{
+ value: 60,
+ showBackNeedle: true,
+ backNeedleLength: 20,
+ length: 95,
+ width: 7,
+ pointerCap: { radius: 12 }
+ }],
+ ticks: [{
+ type: "major",
+ distanceFromScale: 2,
+ height: 16,
+ width: 1, color: "#8c8c8c"
+ }, { type: "minor", height: 8, width: 1, distanceFromScale: 2, color: "#8c8c8c" }],
+ labels: [{
+ color: "#8c8c8c"
+ }],
+ ranges: [{
+ distanceFromScale: -30,
+ startValue: 0,
+ endValue: 70
+ }, {
+ distanceFromScale: -30,
+ startValue: 70,
+ endValue: 110,
+ backgroundColor: "#fc0606",
+ border: { color: "#fc0606" }
+ },
+ {
+ distanceFromScale: -30,
+ startValue: 110,
+ endValue: 120,
+ backgroundColor: "#f5b43f",
+ border: { color: "#f5b43f" }
+ }]
+ }],
+ mouseClick:onCircularMouseClick
+ });
+
+});
+
+function onCircularMouseClick()
+{
+ console.log("Mouse click..");
+}
+
+$(document).ready(function () {
+
+ $("#DigitalCore").ejDigitalGauge({
+ width: 525,
+ height: 305,
+ items: [{
+ segmentSettings: {
+ width: 1,
+ spacing: 0,
+ color: "#8c8c8c"
+ },
+ characterSettings: {
+ opacity: 0.8,
+ },
+ value: "123456789",
+ position: { x: 52, y: 52 }
+ }],
+ init:onDigitalGaugeinit,
+ itemRendering:onDigitalGaugeItemRendering
+ });
+});
+
+function onDigitalGaugeinit()
+{
+ console.log("init");
+}
+function onDigitalGaugeItemRendering()
+{
+ console.log("itemRendering");
+}
+
+$(document).ready(function () {
+
+ $("#container").ejChart(
+ {
+
+
+
+ //Initializing Common Properties for all the series
+ commonSeriesOptions:
+ {
+ type: 'line', enableAnimation: true,
+ tooltip:{ visible :true, template:'Tooltip'},
+ marker:
+ {
+ shape: 'circle',
+ size:
+ {
+ height: 10, width: 10
+ },
+ visible: true
+ },
+ border : {width: 2}
+ },
+
+
+
+ title :{text: 'Efficiency of oil-fired power production'},
+ size: { height: "600" },
+ legend: { visible: true},
+ create:onChartCreate
+ });
+
+});
+
+function onChartCreate()
+{
+ console.log("create");
+}
+
+$(document).ready(function () {
+
+ $("#scrollcontent").ejRangeNavigator({
+
+ enableDeferredUpdate: true,
+ padding: "15",
+ allowSnapping:true,
+ selectedRangeSettings: {
+ start:"2015/5/25", end:"2016/5/25"
+ },
+
+ })
+});
+
+$(document).ready(function () {
+ $("#BulletGraph1").ejBulletGraph({
+ qualitativeRangeSize: 32,
+ quantitativeScaleLength: 475, tooltipSettings: {template: "Tooltip", visible: true}, orientation: ej.datavisualization.BulletGraph.Orientation.Horizontal,
+ flowDirection: ej.datavisualization.BulletGraph.FlowDirection.Forward,
+ quantitativeScaleSettings: {
+ location: { x: 110, y: 10 },
+ minimum: 0,
+ maximum: 10,
+ interval: 1,
+ minorTicksPerInterval: 4,
+ majorTickSettings:{ size: 13, width: 1, stroke: 'gray'},
+ minorTickSettings:{ size: 5, width: 1, stroke: 'gray'},
+
+ labelSettings: {
+ position: ej.datavisualization.BulletGraph.LabelPosition.Below, offset: 14, size: 10
+ },
+ featuredMeasureSettings: { width: 6 },
+ comparativeMeasureSettings:{
+ width: 5
+ },
+ featureMeasures: [{ value: 8, comparativeMeasureValue: 6.7, category: ""}]
+ },
+ qualitativeRanges: [{
+ rangeEnd: 4.3
+ }, {
+ rangeEnd: 7.3
+ }, {
+ rangeEnd: 10
+ }],
+ captionSettings: { textAngle: 0,
+ location: { x: 17, y: 20 }, text: "Revenue YTD", font: { color: null, fontFamily: 'Segoe UI', fontStyle: ej.datavisualization.BulletGraph.FontStyle.Normal, size: '12px', fontWeight: ej.datavisualization.BulletGraph.FontWeight.Normal, opacity: 1 }, //'#707070'
+ subTitle: { textAngle: 0,
+ text: "$ in Thousands", location: { x: 10, y: 35 }, font: { color: null, fontFamily: 'Segoe UI', fontStyle: ej.datavisualization.BulletGraph.FontStyle.Normal, size: '12px', fontWeight: ej.datavisualization.BulletGraph.FontWeight.Normal, opacity: 1} //'#707070'
+ }
+ }
+
+
+
+ });
+
+ $("#BulletGraph2").ejBulletGraph({ qualitativeRangeSize: 32, height:140,
+ quantitativeScaleLength: 475, orientation: ej.datavisualization.BulletGraph.Orientation.Horizontal,
+ flowDirection: ej.datavisualization.BulletGraph.FlowDirection.Forward,
+ quantitativeScaleSettings: {
+ location: { x: 110, y: 10 },
+ minimum: -10,
+ maximum: 10,
+ interval: 2,
+ minorTicksPerInterval: 4,
+ majorTickSettings:{ size: 13, width: 1},
+ minorTickSettings:{ size: 5, width: 1},
+
+ labelSettings: {
+ position: ej.datavisualization.BulletGraph.LabelPosition.Below, offset: 14, size: 10, labelSuffix: ' %'
+ },
+ featuredMeasureSettings: { width: 6 },
+ comparativeMeasureSettings:{ width: 5 },
+ featureMeasures: [{ value: 8, comparativeMeasureValue: 6.7}]
+ },
+ qualitativeRanges: [{
+ rangeEnd: -4, rangeStroke: "#61a301"
+ }, {
+ rangeEnd: 3, rangeStroke: "#fcda21"
+ }, {
+ rangeEnd: 10, rangeStroke: "#d61e3f"
+ }],
+ captionSettings: { textAngle: 0,
+ location: { x: 60, y: 25 }, text: "Profit", font: { color: null, fontFamily: 'Segoe UI', fontStyle: ej.datavisualization.BulletGraph.FontStyle.Normal, size: '13px', fontWeight: ej.datavisualization.BulletGraph.FontWeight.Normal, opacity: 1 }, //'#707070'
+ //subTitle: { textAngle: 0,
+ // text: "profit in %", location: { x: 35, y: 35 }, font: { color: null, fontFamily: 'Segoe UI', fontStyle: ej.datavisualization.BulletGraph.FontStyle.Normal, size: '12px', fontWeight: ej.datavisualization.BulletGraph.FontWeight.Normal, opacity: 1} //'#707070'
+ //}
+ },
+ drawLabels:onBulletDrawLabel
+ });
+
+});
+
+ function onBulletDrawLabel()
+ {
+ console.log("drawLabel");
+ }
+
+
+$(document).ready(function () {
+
+ $("#barcode").ejBarcode({ text: "HTTP://WWW.SYNCFUSION.COM", symbologyType: "qrbarcode", xDimension: 8, displayText: true, load:onBarcodeLoad });
+
+});
+
+function onBarcodeLoad()
+ {
+ console.log("load");
+ }
+
+ jQuery(function ($) {
+ $("#container").ejMap({
+ mouseover:MapMouseOver,
+ onRenderComplete:MapOnRenderComplete,
+ navigationControl:{enableNavigation:true,orientation:'vertical',absolutePosition:{x:5,y:15},dockPosition: 'none'},
+ background:'white',
+ enableAnimation: true,
+ layers: [
+ {
+ layerType: "geometry",
+ enableSelection: false,
+ enableMouseHover:false,
+
+ showMapItems: false,
+ markerTemplate: 'template',
+ shapeSettings: {
+ fill: "#626171",
+ strokeThickness: "1",
+ stroke: "#6F6F79",
+ highlightStroke:"#6F6F79",
+ valuePath: "name",
+ highlightColor: "gray"
+
+ },
+
+ }
+ ]
+
+ });
+ });
+ function MapMouseOver() {
+ console.log("mouseover");
+ }
+ function MapOnRenderComplete() {
+ console.log("onRenderComplete");
+ }
+
+
+ jQuery(function ($) {
+ $("#treemapContainer").ejTreeMap({
+ treeMapItemSelected:onTreeMapItemSelected,
+
+ levels: [
+ { groupPath: "Continent", groupGap: 5}
+ ],
+ colorValuePath: "Growth",
+ rangeColorMapping: [
+ { color: "#DC562D", from: "0", to: "1" },
+ { color: "#FED124", from: "1", to: "1.5" },
+ { color: "#487FC1", from: "1.5", to: "2" },
+ { color: "#0E9F49", from: "2", to: "3" }
+ ],
+ showTooltip:true,
+ leafItemSettings: { labelPath: "Region" }
+ });
+ });
+ function onTreeMapItemSelected() {
+ console.log("TreeMapItemSelected");
+ }
+
+
\ No newline at end of file
diff --git a/ej.widgets.all/ej.mobile.all.d.ts b/ej.widgets.all/ej.mobile.all.d.ts
new file mode 100644
index 0000000000..cdf403f36c
--- /dev/null
+++ b/ej.widgets.all/ej.mobile.all.d.ts
@@ -0,0 +1,19908 @@
+// Type definitions for ej.mobile.all v14.1.0.41
+// Project: http://help.syncfusion.com/js/typescript
+// Definitions by: Syncfusion
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+
+/*!
+* filename: ej.mobile.all.d.ts
+* version : 14.1.0.41
+* Copyright Syncfusion Inc. 2001 - 2016. All rights reserved.
+* Use of this code is subject to the terms of our license.
+* A copy of the current license can be obtained at any time by e-mailing
+* licensing@syncfusion.com. Any infringement will be prosecuted under
+* applicable laws.
+*/
+declare module ej {
+
+ var dataUtil: dataUtil;
+ function isMobile(): boolean;
+ function isIOS(): boolean;
+ function isAndroid(): boolean;
+ function isFlat(): boolean;
+ function isWindows(): boolean;
+ function isCssCalc(): boolean;
+ function getCurrentPage(): JQuery;
+ function isLowerResolution(): boolean;
+ function browserInfo(): browserInfoOptions;
+ function isTouchDevice(): boolean;
+ function addPrefix(style: string): string;
+ function animationEndEvent(): string;
+ function blockDefaultActions(e: Object): void;
+ function buildTag(tag: string, innerHtml: string, styles: Object, attrs: Object): JQuery;
+ function cancelEvent(): string;
+ function copyObject(): string;
+ function createObject(nameSpace: string, value: Object, initIn: string): JQuery;
+ function defineClass(className: string, constructor:any, proto: Object, replace: boolean): Object;
+ function destroyWidgets(element: Object): void;
+ function endEvent(): string;
+ function event(type: string, data: any, eventProp: Object): Object;
+ function getAndroidVersion(): Object;
+ function getAttrVal(ele: Object, val: string, option: Object): Object;
+ function getBooleanVal(ele: Object, val: string, option: Object): Object;
+ function getClearString(): string;
+ function getDimension(element: Object, method: string): Object;
+ function getFontString(fontObj: Object): string;
+ function getFontStyle(style: string): string;
+ function getMaxZindex(): number;
+ function getNameSpace(className: string): string;
+ function getObject(nameSpace: string): Object;
+ function getOffset(ele: string): Object;
+ function getRenderMode(): string;
+ function getScrollableParents(element: Object): void;
+ function getTheme(): string;
+ function getZindexPartial(element: Object, popupEle: string): number;
+ function hasRenderMode(element: string): void;
+ function hasStyle(prop: string): boolean;
+ function hasTheme(element: string): string;
+ function hexFromRGB(color: string): string;
+ function ieClearRemover(element: string): void;
+ function isAndroidWebView(): string;
+ function isDevice(): boolean;
+ function isIOS7(): boolean;
+ function isIOSWebView(): boolean;
+ function isLowerAndroid(): boolean;
+ function isNullOrUndefined(value: Object): boolean;
+ function isPlainObject(): JQuery;
+ function isPortrait(): any;
+ function isTablet(): boolean;
+ function isWindowsWebView(): string;
+ function listenEvents(selectors:any, eventTypes: any, handlers: any, remove?: any, pluginObj?: any, disableMouse?: boolean): void;
+ function listenTouchEvent(selectors:any, eventTypes: any, handlers: any, remove?: any, pluginObj?: any, disableMouse?: boolean): void;
+ function logBase(val: string, base: string): number;
+ function measureText(text: string, maxwidth: number, font: string): string;
+ function moveEvent(): string;
+ function print(element: string): void;
+ function proxy(fn: Object, context: string, arg: string): boolean;
+ function round(value: string, div: string, up: string): any;
+ function sendAjaxRequest(ajaxOptions: Object): void;
+ function setCaretToPos(nput: string, pos1: string, pos2: string): void;
+ function setRenderMode(element: string): void;
+ function setTheme(): Object;
+ function startEvent(): string;
+ function tapEvent(): string;
+ function tapHoldEvent(): string;
+ function throwError(): Object;
+ function transitionEndEvent(): Object;
+ function userAgent(): boolean;
+ function widget(pluginName: string, className: string, proto: Object): Object;
+ function avg(json: Object, filedName: string): any;
+ function getGuid(prefix: string): number;
+ function group(jsonArray: any, field: string, agg: string, level: number, groupDs: string): Object;
+ function isJson(jsonData: string): string;
+ function max(jsonArray: any, fieldName: string, comparer: string): any;
+ function min(jsonArray: any, fieldName: string, comparer: string): any;
+ function merge(first: string, second: string): any;
+ function mergeshort(jsonArray: any, fieldName: string, comparer: string): any;
+ function parseJson(jsonText: string): string;
+ function parseTable(table: number, headerOption: string, headerRowIndex: string): Object;
+ function select(jsonArray: any, fields: string): any;
+ function setTransition(): boolean;
+ function sum(json: string, fieldName: string): string;
+ function swap(array: any, x: string, y: string): any;
+ var cssUA: string;
+ var serverTimezoneOffset: number;
+ var transform: string;
+ var transformOrigin: string;
+ var transformStyle: string;
+ var transition: string;
+ var transitionDelay: string;
+ var transitionDuration: string;
+ var transitionProperty: string;
+ var transitionTimingFunction: string;
+ export module device {
+ function isAndroid(): boolean;
+ function isIOS(): boolean;
+ function isFlat(): boolean;
+ function isIOS7(): boolean;
+ function isWindows(): boolean;
+ }
+ export module widget {
+ var autoInit: boolean;
+ var registeredInstances: Array;
+ var registeredWidgets: Array;
+ function register(pluginName: string, className: string, prototype: any): void;
+ function destroyAll(elements: Element): void;
+ function init(element: Element): void;
+ function registerInstance(element: Element, pluginName: string, className: string, prototype: any):void;
+ }
+
+ interface browserInfoOptions {
+ name: string;
+ version: string;
+ culture: Object;
+ isMSPointerEnabled: boolean;
+ }
+ class WidgetBase {
+ destroy(): void;
+ element: JQuery;
+ setModel(options: Object, forceSet?: boolean):any;
+ option(prop?: Object, value?: Object, forceSet?: boolean): any;
+ persistState(): void;
+ restoreState(silent: boolean): void;
+ }
+
+ class Widget extends WidgetBase {
+ constructor(pluginName: string, className: string, proto: any);
+ static fn: Widget;
+ static extend(widget: Widget): any;
+ register(pluginName: string, className: string, prototype: any): void;
+ destroyAll(elements: Element): void;
+ model: any;
+ }
+
+
+ interface BaseEvent {
+ cancel: boolean;
+ type: string;
+ }
+ class DataManager {
+ constructor(dataSource?: any, query?: ej.Query, adaptor?: any);
+ setDefaultQuery(query: ej.Query): void;
+ executeQuery(query?: ej.Query, done?: any, fail?: any, always?: any): JQueryPromise;
+ executeLocal(query?: ej.Query): ej.DataManager;
+ saveChanges(changes?: Changes, key?: string, tableName?: string): JQueryDeferred;
+ insert(data: Object, tableName: string): JQueryPromise;
+ remove(keyField: string, value: any, tableName: string): Object;
+ update(keyField: string, value: any, tableName: string): Object;
+ }
+
+ class Query {
+ constructor();
+ static fn: Query;
+ static extend(prototype: Object): Query;
+ key(field: string): ej.Query;
+ using(dataManager: ej.DataManager): ej.Query;
+ execute(dataManager: ej.DataManager, done: any, fail?: string, always?: string): any;
+ executeLocal(dataManager: ej.DataManager): ej.DataManager;
+ clone(): ej.Query;
+ from(tableName: any): ej.Query;
+ addParams(key: string, value: string): ej.Query;
+ expand(tables: any): ej.Query;
+ where(fieldName: string, operator: ej.FilterOperators, value: string, ignoreCase?: boolean): ej.Query;
+ where(predicate:ej.Predicate):ej.Query;
+ search(searchKey: any, fieldNames?: any, operator?: string, ignoreCase?: boolean): ej.Query;
+ sortBy(fieldName: string, comparer?: ej.SortOrder, isFromGroup?: boolean): ej.Query;
+ sortByDesc(fieldName: string): ej.Query;
+ group(fieldName: string): ej.Query;
+ page(pageIndex: number, pageSize: number): ej.Query;
+ take(nos: number): ej.Query;
+ skip(nos: number): ej.Query;
+ select(fieldNames: any): ej.Query;
+ hierarchy(query: ej.Query, selectorFn: any): ej.Query;
+ foreignKey(key: string): ej.Query;
+ requiresCount(): ej.Query;
+ range(start:number, end:number): ej.Query;
+ }
+
+ class Adaptor {
+ constructor(ds: any);
+ pvt: Object;
+ type: ej.Adaptor;
+ options: AdaptorOptions;
+ extend(overrides: any): ej.Adaptor;
+ processQuery(dm: ej.DataManager, query: ej.Query):any;
+ processResponse(data: Object, ds: any, query: ej.Query, xhr: JQueryXHR, request?: Object, changes?: Changes): Object;
+ convertToQueryString(req: any, query: ej.Query, dm: ej.DataManager): JQueryParam;
+ }
+
+ interface AdaptorOptions {
+ from?: string;
+ requestType?: string;
+ sortBy?: string;
+ select?: string;
+ skip?: string;
+ group?: string;
+ take?: string;
+ search?: string;
+ count?: string;
+ where?: string;
+ aggregates?: string;
+ }
+
+ class UrlAdaptor extends ej.Adaptor {
+ constructor();
+ processQuery(dm: ej.DataManager, query: ej.Query, hierarchyFilters?: Object): {
+ type: string; url: string; ejPvtData: Object; contentType?: string; data?: Object;
+ }
+ convertToQueryString(req: Object, query: ej.Query, dm: ej.DataManager): JQueryParam;
+ processResponse(data: Object, ds: any, query: ej.Query, xhr: JQueryXHR, request?: Object, changes?: Changes): Object;
+ onGroup(e: any): void;
+ batchRequest(dm: ej.DataManager, changes: Changes, e: any): void;
+ beforeSend(dm: ej.DataManager, request: any, settings?:any): void;
+ insert(dm: ej.DataManager, data: Object, tableName: string): { url: string; data: any };
+ remove(dm: ej.DataManager, keyField: string, value: any, tableName: string): { type: string; url: string; data?: any };
+ update(dm: ej.DataManager, keyField: string, value: any, tableName: string): { type: string; url: string; data: any };
+ getFiltersFrom(data: Object, query: ej.Query): ej.Predicate;
+ }
+
+ class ODataAdaptor extends ej.UrlAdaptor {
+ constructor();
+ options: UrlAdaptorOptions;
+ onEachWhere(filter: any, requiresCast: boolean): any;
+ onPredicate(pred: ej.Predicate, query: ej.Query, requiresCast: boolean): string;
+ onComplexPredicate(pred: ej.Predicate, requiresCast: boolean): string;
+ onWhere(filters: Array): string;
+ onEachSearch(e: Object): void;
+ onSearch(e: Object): string;
+ onEachSort(e: Object): string;
+ onSortBy(e: Object): string;
+ onGroup(e: Object): string;
+ onSelect(e: Object): string;
+ onCount(e: Object): string;
+ beforeSend(dm: ej.DataManager, request: any, settings?: any): void;
+ processResponse(data: Object, ds: Object, query: ej.Query, xhr:any, request: any, changes: Changes): {
+ result: Object; count: number
+ };
+ convertToQueryString(req: Object, query: ej.Query, dm: ej.DataManager): JQueryParam;
+ insert(dm: ej.DataManager, data: Object, tableName: string): { url: string; data: Object; }
+ remove(dm: ej.DataManager, keyField: string, value: any, tableName: string): { url: string; type: string; }
+ update(dm: ej.DataManager, keyField: string, value: any, tableName: string): { url: string; type: string; data: Object; accept: string; }
+ batchRequest(dm: ej.DataManager, changes: Changes, e: any): { url: string; type: string; data: Object; contentType: string; }
+ generateDeleteRequest(arr: Array, e: any): string;
+ generateInsertRequest(arr: Array, e: any): string;
+ generateUpdateRequest(arr: Array, e: any): string;
+ }
+ interface UrlAdaptorOptions {
+ requestType?: string;
+ accept?: string;
+ multipartAccept?: string;
+ sortBy?: string;
+ select?: string;
+ skip?: string;
+ take?: string;
+ count?: string;
+ where?: string;
+ expand?: string;
+ batch?: string;
+ changeSet?: string;
+ batchPre?: string;
+ contentId?: string;
+ batchContent?: string;
+ changeSetContent?: string;
+ batchChangeSetContentType?: string;
+ }
+
+ class ODataV4Adaptor extends ej.ODataAdaptor {
+ constructor();
+ options: ODataAdaptorOptions;
+ onCount(e: Object): string;
+ onEachSearch(e: Object): void;
+ onSearch(e: Object): string;
+ beforeSend(dm: ej.DataManager, request: any, settings?: any): void;
+ processResponse(data: Object, ds: Object, query: ej.Query, xhr:any, request: any, changes: Changes): {
+ result: Object; count: number
+ };
+
+ }
+ interface ODataAdaptorOptions {
+ requestType?: string;
+ accept?: string;
+ multipartAccept?: string;
+ sortBy?: string;
+ select?: string;
+ skip?: string;
+ take?: string;
+ count?: string;
+ search?: string;
+ where?: string;
+ expand?: string;
+ batch?: string;
+ changeSet?: string;
+ batchPre?: string;
+ contentId?: string;
+ batchContent?: string;
+ changeSetContent?: string;
+ batchChangeSetContentType?: string;
+ }
+
+ class JsonAdaptor extends ej.Adaptor {
+ constructor();
+ processQuery(ds: Object, query: ej.Query): string;
+ batchRequest(dm: ej.DataManager, changes: Changes, e:any): Changes;
+ onWhere(ds: Object, e: any): any;
+ onSearch(ds: Object, e: any): any
+ onSortBy(ds: Object, e: any, query: ej.Query): Object;
+ onGroup(ds: Object, e: any, query: ej.Query): Object;
+ onPage(ds: Object, e: any, query: ej.Query): Object;
+ onRange(ds: Object, e: any): Object;
+ onTake(ds: Object, e: any): Object;
+ onSkip(ds: Object, e: any): Object;
+ onSelect(ds: Object, e: any): Object;
+ insert(dm: ej.DataManager, data: any): Object;
+ remove(dm: ej.DataManager, keyField: string, value:any, tableName: string): Object;
+ update(dm: ej.DataManager, keyField: string, value:any, tableName: string): Object;
+ }
+ class TableModel {
+ constructor(name: string, jsonArray: Array, dataManager: ej.DataManager, modelComputed: any);
+ on(eventName: string, handler: any): void;
+ off(eventName: string, handler: any): void;
+ setDataManager(dataManager: DataManager): void;
+ saveChanges(): void;
+ rejectChanges(): void;
+ insert(json: any): void;
+ update(value: any): void;
+ remove(key: string): void;
+ isDirty(): boolean;
+ getChanges(): Changes;
+ toArray(): Array;
+ setDirty(dirty:any, model:any): void;
+ get(index: number): void;
+ length(): number;
+ bindTo(element: any): void;
+ }
+ class Model {
+ constructor(json: any, table: string, name: string);
+ formElements: Array;
+ computes(value: any): void;
+ on(eventName: string, handler: any): void;
+ off(eventName: string, handler: any): void;
+ set(field: string, value: any): void;
+ get(field: string): any;
+ revert(suspendEvent: any): void;
+ save(dm: ej.DataManager, key: string): void;
+ markCommit(): void;
+ markDelete(): void;
+ changeState(state: boolean, args: any): void;
+ properties(): any;
+ bindTo(element: any): void;
+ unbind(element: any): void;
+ }
+ interface Changes {
+ changed?: Array;
+ added?: Array;
+ deleted?: Array;
+ }
+ class Predicate {
+ constructor(field: string, operator: ej.FilterOperators, value: any, ignoreCase: boolean);
+ and(field: string, operator: any, value:any, ignoreCase:boolean): void;
+ or(field: string, operator: any, value: any, ignoreCase: boolean): void;
+ validate(record: Object): boolean;
+ toJSON(): {
+ isComplex: boolean;
+ field: string;
+ operator: string;
+ value: any;
+ ignoreCase: boolean;
+ condition: string;
+ predicates: any;
+ };
+ }
+ interface dataUtil {
+ swap(array: Array, x: number, y: number): void;
+ mergeSort(jsonArray: Array, fieldName: string, comparer:any): Array;
+ max(jsonArray: Array, fieldName: string, comparer: string): Array;
+ min(jsonArray: Array, fieldName: string, comparer: string): Array;
+ distinct(jsonArray: Array, fieldName: string, requiresCompleteRecord:any): Array;
+ sum(json:any, fieldName: string): number;
+ avg(json:any, fieldName: string): number;
+ select(jsonArray: Array, fieldName: string, fields:string): Array;
+ group(jsonArray: Array, field: string, /* internal */ level: number): Array;
+ parseTable(table: string, headerOption: ej.headerOption, headerRowIndex: number): Object;
+ }
+ interface AjaxSettings {
+ type?: string;
+ cache: boolean;
+ data?: any;
+ dataType?: string;
+ contentType?: any;
+ async?: boolean;
+ }
+ enum FilterOperators {
+ contains,
+ endsWith,
+ equal,
+ greaterThan,
+ greaterThanOrEqual,
+ lessThan,
+ lessThanOrEqual,
+ notEqual,
+ startsWith
+ }
+
+ enum MatrixDefaults {
+ m11,
+ m12,
+ m21,
+ m22,
+ offsetX,
+ offsetY,
+ type
+ }
+ enum MatrixTypes {
+ Identity,
+ Scaling,
+ Translation,
+ Unknown
+ }
+
+ enum Orientation {
+ Horizontal,
+ Vertical
+ }
+
+ enum SliderType {
+ Default,
+ MinRange,
+ Range
+ }
+
+ enum eventType {
+ click,
+ mouseDown,
+ mouseLeave,
+ mouseMove,
+ mouseUp
+ }
+ enum headerOption {
+ row,
+ tHead
+ }
+
+ enum filterType{
+ StartsWith,
+ Contains,
+ EndsWith,
+ LessThan,
+ GreaterThan,
+ LessThanOrEqual ,
+ GreaterThanOrEqual,
+ Equal,
+ NotEqual
+ }
+ enum Animation{
+ Fade,
+ None,
+ Slide
+ }
+ enum Type{
+ Overlay,
+ Slide
+ }
+ enum SortOrder
+ {
+ Ascending,
+ Descending
+ }
+
+ var globalize:globalize;
+ var cultures:culture;
+ function addCulture(name: string, culture ?: any): void;
+ function preferredCulture(culture ?: string): culture;
+ function format(value: any, format: string, culture ?: string): string;
+ function parseInt(value: string, radix?: any, culture ?: string): number;
+ function parseFloat(value: string, radix?: any, culture ?: string): number;
+ function parseDate(value: string, format: string, culture ?: string): Date;
+ function getLocalizedConstants(controlName: string, culture ?: string): any;
+
+interface globalize {
+ addCulture(name: string, culture?: any): void;
+ preferredCulture(culture?: string): culture;
+ format(value: any, format: string, culture?: string): string;
+ parseInt(value: string, radix?: any, culture?: string): number;
+ parseFloat(value: string, radix?: any, culture?: string): number;
+ parseDate(value: string, format: string, culture?: string): Date;
+ getLocalizedConstants(controlName: string, culture?: string): any;
+ }
+ interface culture {
+ name?: string;
+ englishName?: string;
+ namtiveName?: string;
+ language?: string;
+ isRTL: boolean;
+ numberFormat?: formatSettings;
+ calendars?: calendarsSettings;
+ }
+ interface formatSettings {
+ pattern: Array;
+ decimals: number;
+ groupSizes: Array;
+ percent: percentSettings;
+ currency: currencySettings;
+ }
+ interface percentSettings {
+ pattern: Array;
+ decimals: number;
+ groupSizes: Array;
+ symbol: string;
+ }
+ interface currencySettings {
+ pattern: Array;
+ decimals: number;
+ groupSizes: Array;
+ symbol: string;
+ }
+ interface calendarsSettings {
+ standard: standardSettings;
+ }
+ interface standardSettings {
+ firstDay: number;
+ days: daySettings;
+ months: monthSettings;
+ AM: Array;
+ PM: Array;
+ twoDigitYearMax: number;
+ patterns: patternSettings;
+ }
+ interface daySettings {
+ names: Array;
+ namesAbbr: Array;
+ namesShort: Array;
+ }
+ interface monthSettings {
+ names: Array;
+ namesAbbr: Array;
+ }
+ interface patternSettings {
+ d: string;
+ D: string;
+ t: string;
+ T: string;
+ f: string;
+ F: string;
+ M: string;
+ Y: string;
+ S: string;
+ }
+}
+declare module App {
+
+var addMetaTags: boolean;
+ var allowPopState: boolean;
+ var allowPushState: boolean;
+ var activePage: JQuery;
+ var waitingPopUp: JQuery;
+ var hashMonitoring: boolean;
+ var pageTransition: string;
+ var renderEJMControlByDef: boolean;
+ function createPage(element: JQuery): void;
+ function getLoaction(): string;
+ function initPage(): void;
+ function loadView(url: string): void;
+ function transferPage(fromPage: Object, toPage: Object, options?: any, isFromAjax?: boolean): void;
+ function userAgent(): void;
+
+ var pageHistory: {
+ activeHistory(): string;
+ add(url: string, options?: PageOption): void;
+ clearForward(): void;
+ find(url: string): number;
+ lastHistory(): string;
+ nextHistory(): string;
+ prevHistory(): string;
+ makeUrlAbsolute(hashString: string): void;
+ }
+ //Pageoption type for appview page
+ interface PageOption {
+ title?: string;
+ href?: string;
+ hash?: string;
+ }
+ var route: {
+ convertToRelativeUrl(): void;
+ hasProtocol(url: string): boolean;
+ setPageRenderMode(element: JQuery): void;
+ splitUrl(url: string): any;
+ }
+}
+declare module ej.mobile {
+
+ //Global Interface
+ interface windowsOption {
+ renderDefault?: boolean;
+ }
+ enum RenderMode{
+ Auto,
+ IOS7,
+ Android,
+ Windows,
+ Flat
+ }
+ enum Theme{
+ Auto,
+ Dark,
+ Light
+ }
+class Accordion extends ej.Widget {
+ static fn: Accordion;
+ constructor(element: JQuery, options?: AccordionOptions);
+ model: AccordionOptions;
+ validTags: Array;
+ defaults: AccordionOptions;
+ collapseAll(): void;
+ disableItems(itemIndexes: Array): void;
+ enableItems(itemIndexes: Array): void;
+ selectItems(activeList: Array): void;
+ deselectItems(activeList: Array): void;
+ expandAll(): void;
+ hide(): void;
+ show(): void;
+ destroy(): void;
+ getItemsCount(): number;
+}
+//ejmAccordion Option
+interface AccordionOptions {
+ theme?: ej.mobile.Theme;
+ renderMode?: ej.mobile.RenderMode;
+ cssClass?: string;
+ enableCache?: boolean;
+ allowMultipleOpen?: boolean;
+ collapsible?: boolean;
+ enabled?: boolean;
+ enableMultipleOpen?: boolean;
+ heightAdjustMode?: ej.mobile.Accordion.HeightAdjustMode;
+ windows?: windowsOption;
+ enablePersistence?: boolean;
+ selectedItems?: Array;
+ disabledItems?: Array;
+ showHeaderIcon?: boolean;
+ spinnerText?: string;
+ items?: Array;
+ active? (e: AccordionActiveEventArgs): void;
+ ajaxBeforeLoad? (e: AccordionAjaxBeforeLoadEventArgs): void;
+ ajaxError? (e: AccordionAjaxErrorEventArgs): void;
+ ajaxLoad? (e: AccordionAjaxLoadEventArgs): void;
+ ajaxSuccess? (e: AccordionAjaxSuccessEventArgs): void;
+ beforeActive? (e: AccordionBeforeActiveEventArgs): void;
+ destroy? (e: AccordionEventArgs): void;
+ create? (e: AccordionEventArgs): void;
+}
+
+interface itemCollection {
+ ajaxUrl?: string;
+ logoClass?: string;
+}
+//ejmejmAccordionEvent Arugument
+interface AccordionEventArgs {
+ cancel: boolean;
+ type: string;
+ model: AccordionOptions;
+}
+interface AccordionActiveEventArgs extends AccordionEventArgs {
+ items: string;
+ lastSelectedItemIndices: number;
+ selectedItemIndices: number;
+}
+interface AccordionAjaxBeforeLoadEventArgs extends AccordionEventArgs {
+ url: string;
+}
+interface AccordionAjaxErrorEventArgs extends AccordionEventArgs {
+ title: string;
+ data: Object;
+ url: string;
+}
+interface AccordionAjaxLoadEventArgs extends AccordionEventArgs {
+}
+interface AccordionAjaxSuccessEventArgs extends AccordionEventArgs {
+ content: Object;
+ data: Object;
+ url: string;
+}
+interface AccordionBeforeActiveEventArgs extends AccordionEventArgs {
+ activeItemIndex?: number;
+}
+export module Accordion {
+ enum HeightAdjustMode {
+ Content,
+ Auto,
+ Fill
+ }
+}
+class Autocomplete extends ej.Widget {
+ static fn: Autocomplete;
+ element: JQuery;
+ constructor(element: JQuery, options?: AutocompleteOptions);
+ model: AutocompleteOptions;
+ defaults: AutocompleteOptions;
+ disable(): void;
+ enable(): void;
+ destroy(): void;
+ clearText(): void;
+ getSelectedItems(): Array;
+ getValue(): string;
+
+}
+interface AutocompleteOptions {
+ allowScrolling?: boolean;
+ filterType?: ej.mobile.Autocomplete.FilterType;
+ caseSensitiveSearch?: boolean;
+ cssClass?: string;
+ enableAutoFill?: boolean;
+ delimiterChar?: string;
+ enableMultiSelect?: boolean;
+ enableCheckbox?: boolean;
+ dataSource?: any;
+ filterMode?: string;
+ itemsCount?: string|number;
+ templateId?: string;
+ fields?: fieldOptions;
+ imageField?: string;
+ renderMode?: ej.mobile.RenderMode;
+ theme?: ej.mobile.Theme;
+ mapper?: string;
+ watermarkText?: string;
+ imageClass?: string;
+ allowSorting?: boolean;
+ value?: string;
+ sortOrder?: ej.mobile.Autocomplete.SortOrder;
+ emptyResultText?: string;
+ showEmptyResultText?: boolean;
+ minCharacter?: number;
+ enableDistinct?: boolean;
+ enablePersistence?: boolean;
+ enabled?: boolean;
+ mode?: ej.mobile.Autocomplete.Mode;
+ selectedKeys?: string;
+ windows?: windowsOption;
+ touchEnd? (e: AutocompleteTouchEndEventArgs): void;
+ keyPress? (e: AutocompleteKeyPressEventArgs): void;
+ select? (e: AutocompleteSelectEventArgs): void;
+ change? (e: AutocompleteChangeEventArgs): void;
+ focusIn? (e: AutocompleteFocusInEventArgs): void;
+ focusOut? (e: AutocompleteFocusOutEventArgs): void;
+ destroy? (e: AutocompleteEventArgs): void;
+ create? (e: AutocompleteEventArgs): void;
+}
+interface fieldOptions {
+ text?: string;
+ key?: string;
+}
+interface AutocompleteEventArgs {
+ cancel: boolean;
+ model: AutocompleteOptions;
+ type: string;
+}
+interface AutocompleteTouchEndEventArgs extends AutocompleteEventArgs {
+ text: string;
+ isChecked: boolean;
+ checkedItemsText: Object;
+ value: string;
+}
+interface AutocompleteKeyPressEventArgs extends AutocompleteEventArgs {
+ value: string;
+}
+interface AutocompleteSelectEventArgs extends AutocompleteEventArgs {
+ text: string;
+ isChecked: boolean;
+ checkedItemsText: Object;
+ value: string;
+}
+interface AutocompleteChangeEventArgs extends AutocompleteEventArgs {
+ text: string;
+ isChecked: boolean;
+ checkedItemsText: Object;
+ value: string;
+}
+interface AutocompleteFocusInEventArgs extends AutocompleteEventArgs {
+ value: string;
+}
+interface AutocompleteFocusOutEventArgs extends AutocompleteEventArgs {
+ value: string;
+}
+export module Autocomplete {
+ enum FilterType {
+ StartsWith,
+ Contains
+ }
+ enum Mode {
+ Search,
+ Default
+ }
+ enum SortOrder {
+ Ascending,
+ Descending
+ }
+}
+class Button extends ej.Widget {
+ static fn: Button;
+ element: JQuery;
+ constructor(element: JQuery, options?: ButtonOptions);
+ model: ButtonOptions;
+ validTags: Array;
+ defaults: ButtonOptions;
+ disable(): void;
+ enable(): void;
+}
+class Actionlink extends ej.Widget {
+ static fn: Actionlink;
+ element: JQuery;
+ constructor(element: Element, options?: ButtonOptions);
+ model: Object;
+ validTags: Array;
+ defaults: ButtonOptions;
+ disable(): void;
+ enable(): void;
+}
+interface ButtonOptions {
+ touchStart?(e: ButtonEventArgs): void;
+ touchEnd?(e: ButtonEventArgs): void;
+ cssClass?: string;
+ enabled?: (boolean | string);
+ inline?: (boolean | string);
+ renderMode?: (ej.mobile.RenderMode | string);
+ text?: string;
+ theme?: (ej.mobile.Theme | string);
+ imageClass?: string;
+ imagePosition?: (ej.mobile.Button.ImagePosition | string);
+ contentType?: (ej.mobile.Button.ContentType | string);
+ ios7?: ios7ButtonOptions;
+ android?: androidButtonOption;
+ windows?: windowsButtonOptions;
+ flat?: flatButtonOption;
+}
+interface ButtonEventArgs {
+ element: Object;
+ text: string;
+}
+interface ios7ButtonOptions {
+ style?: (ej.mobile.Button.IOS7.Style | string);
+ color?: (ej.mobile.Button.IOS7.Color | string);
+}
+interface androidButtonOption {
+ style?: (ej.mobile.Button.Android.Style | string);
+}
+interface windowsButtonOptions extends windowsOption {
+ style?: (ej.mobile.Button.Windows.Style | string);
+}
+interface flatButtonOption {
+ style?: (ej.mobile.Button.Flat.Style | string);
+}
+export module Button{
+export module IOS7{
+ enum Style{
+ Normal,
+ Back,
+ Header,
+ Dialog
+ }
+ enum Color{
+ Gray,
+ Black,
+ Blue,
+ Green,
+ Red
+ }
+ }
+export module Android{
+ enum Style{
+ Normal,
+ Small,
+ Dialog
+ }
+
+}
+export module Windows{
+ enum Style{
+ Normal,
+ Back
+ }
+}
+export module Flat{
+ enum Style{
+ Normal,
+ Back,
+ Header
+ }
+}
+ enum ImagePosition{
+ Left,
+ Right
+ }
+ enum ContentType{
+ Text,
+ Image,
+ Both
+ }
+}
+class DatePicker extends ej.Widget {
+ static fn: DatePicker;
+ static Locale:any;
+ element: JQuery;
+ constructor(element: JQuery, options?: DatePickerOptions);
+ model: DatePickerOptions;
+ defaults: DatePickerOptions;
+ disable(): void;
+ enable(): void;
+ hide(): void;
+ show(): void;
+ setCurrentDate(date:string): void;
+ getValue(): string;
+ destroy(): void;
+}
+
+//ejmDatePicker Options
+interface DatePickerOptions {
+ cssClass?: string;
+ renderMode?: ej.mobile.RenderMode;
+ theme?: ej.mobile.Theme;
+ culture?: string;
+ dateFormat?: string;
+ value?: string;
+ enabled?: boolean;
+ enablePersistence?: boolean;
+ ios7?: ios7Option;
+ windows?: windowsOption;
+ maxDate?: string;
+ minDate?: string;
+ load? (e: DatePickerEventArgs): void;
+ select? (e: DatePickerEventArgs): void;
+ focusIn? (e: DatePickerEventArgs): void;
+ focusOut? (e: DatePickerEventArgs): void;
+ open? (e: DatePickerEventArgs): void;
+ close? (e: DatePickerEventArgs): void;
+ change? (e: DatePickerEventArgs): void;
+ destroy? (e: DatePickerArgs): void;
+ create? (e: DatePickerArgs): void;
+}
+
+interface DatePickerArgs {
+ type: string;
+ model: DatePickerOptions;
+ value: string;
+}
+//ejmDatePickerEvent Arugument
+interface DatePickerEventArgs extends DatePickerArgs {
+ cancel: boolean;
+
+}
+
+interface ios7Option {
+ renderDefault: boolean;
+}
+
+
+//Class ejmDropDownList
+class DropDownList extends ej.Widget {
+ static fn: DropDownList;
+ constructor(element: JQuery, options?: DropDownListOptions);
+ model: DropDownListOptions;
+ defaults: DropDownListOptions;
+ show(): void;
+ hide(): void;
+ getValue():string;
+ selectItemByIndex(index:(number|string)): void;
+ unselectItemByIndex(index:(number|string)): void;
+ selectItemByIndices(indices:Array): void;
+ unselectItemByIndices(indices: Array): void;
+ destroy(): void;
+ getSelectedItemsValue(): Array;
+ getSelectedItemValue(): string;
+}
+
+//ejmDropDownList WindowsOption
+interface windowsDropDownListOption extends windowsOption {
+ type?: ej.mobile.DropDownList.WindowsType;
+}
+
+interface androidDropDownListOption {
+ popUpHeight?: number|string;
+}
+
+interface fieldsDropDownListOption {
+ text?: string;
+ groupBy?: string;
+ imageClass?: string;
+ imageUrl?: string;
+ checkBy?: string;
+ enableTemplate?: string;
+ templateID?: string;
+ value?: string;
+}
+
+//ejmDropDownList Option
+interface DropDownListOptions {
+ theme?: ej.mobile.Theme;
+ renderMode?: ej.mobile.RenderMode;
+ cssClass?: string;
+ readOnly?: boolean;
+ targetID?: string;
+ selectedItemIndex?: number|string;
+ dataSource?: any;
+ fields?: fieldsDropDownListOption;
+ query?: string;
+ allowVirtualScrolling?: boolean;
+ virtualScrollMode?: ej.mobile.DropDownList.VirtualScrollingMode;
+ itemRequestCount?: number|string;
+ enabled?: boolean;
+ enableMultiSelect?: boolean;
+ delimiterChar?: string;
+ enableGrouping?: boolean;
+ mode?: ej.mobile.DropDownList.Mode;
+ enableTemplate?: boolean;
+ enablePersistence?: boolean;
+ windows?: windowsDropDownListOption;
+ android?: androidDropDownListOption;
+ items?: Array;
+ focusIn? (e: DropDownArgs): void;
+ focusOut? (e: DropDownArgs): void;
+ select? (e: DropDownSelectArgs): void;
+ change? (e: DropDownSelectArgs): void;
+ checkChange? (e: DropDownListEventArgs): void;
+}
+
+interface DropDownArgs {
+ cancel: boolean;
+ type: string;
+ model: DropDownListOptions;
+}
+//ejmDropDownListEvent Arugument
+interface DropDownListEventArgs extends DropDownArgs {
+ checked: boolean;
+}
+
+interface DropDownSelectArgs extends DropDownArgs {
+ selectedText: string;
+ value: string;
+ selectedItem: Object;
+}
+
+export module DropDownList{
+ enum VirtualScrollingMode{
+ Continuous,
+ Normal
+ }
+ enum WindowsType{
+ ComboBox,
+ List
+ }
+ enum Mode {
+ Normal,
+ Native
+ }
+}
+
+class Numeric extends ej.Widget {
+ static fn: Numeric;
+ element: JQuery;
+ constructor(element: JQuery, options?: EditorOptions);
+ model: EditorOptions;
+ ValidTags: Array;
+ defaults: EditorOptions;
+ disable(): void;
+ enable(): void;
+ getValue(): any;
+ setValue(value:number): void;
+
+}
+
+interface EditorOptions {
+ cssClass?: string;
+ enableStrictMode?: boolean;
+ enabled?: boolean;
+ showBorder?: boolean;
+ showSpinButton?: boolean;
+ incrementStep?: number;
+ maxValue?: number;
+ minValue?: number;
+ name?: string;
+ enablePersistence?: boolean;
+ readOnly?: boolean;
+ renderMode?: ej.mobile.RenderMode;
+ decimalPlaces?: number;
+ theme?: ej.mobile.Theme;
+ value?: number;
+ watermarkText?: string;
+ windows?: windowsOption;
+ change? (e: EditorEventArgs): void;
+ focusIn? (e: EditorEventArgs): void;
+ focusOut? (e: EditorEventArgs): void;
+ destroy?(e:EditorBaseArgs):void;
+ create?(e:EditorBaseArgs):void;
+}
+
+interface EditorBaseArgs{
+ cancel: boolean;
+ type: string;
+ model: EditorOptions;
+}
+
+interface EditorEventArgs extends EditorBaseArgs {
+ value: number;
+ element: Object;
+}
+
+
+class Grid extends ej.Widget {
+ static fn: Grid;
+ element: JQuery;
+ constructor(element: JQuery, options?: GridOptions);
+ model: GridOptions;
+ validTags: Array;
+ defaults: GridOptions;
+ disable(): void;
+ enable(): void;
+ destroy(): void;
+ getColumnByField(field:string): void;
+ getColumnByHeaderText(headerText:string): void;
+ getColumnByIndex(index:number): void;
+ getColumnFieldNames(): void;
+ getColumnIndexByField(field:string): void;
+ getColumnMemberByIndex(colIdx:number): void;
+ hideColumns(col:string): void;
+ refreshContent(requestType:string): void;
+ showColumns(col:string): void;
+}
+interface GridOptions {
+ cssClass?: string;
+ allowPaging?: boolean;
+ allowSorting?: boolean;
+ allowFiltering?: boolean;
+ allowScrolling?: boolean;
+ allowSelection?: boolean;
+ dataSource: any;
+ caption?: string;
+ enablePersistence?: boolean;
+ selectedRowIndex?: number;
+ showCaption?: boolean;
+ allowColumnSelector?: boolean;
+ transition?: string;
+ columns?: Array