igniteui-webcomponents-datasources
Version:
Reference custom data providers for the Ignite UI Web Components data source.
273 lines (272 loc) • 10.5 kB
JavaScript
import { VirtualDataSource } from "igniteui-webcomponents-core";
import { RestVirtualDataSourceDataProvider } from "./RestVirtualDataSourceDataProvider";
export class RestVirtualDataSource extends VirtualDataSource {
constructor() {
super();
this._baseUri = null;
this._isFilteringSupportedByServer = false;
this._entitySet = null;
this._timeoutMilliseconds = 10000;
this._isAggregationSupportedByServer = false;
this._enableJsonp = true;
this._fixedFullCount = -1;
this._provideFullCount = null;
this._provideOrderByParameter = null;
this._provideFilterParameter = null;
this._provideAggregationParameter = null;
this._provideAggregatedCount = null;
this._provideUri = null;
this._performFetch = null;
this._providePagingParameter = null;
this._provideDesiredPropertiesParameter = null;
this.dataProvider = ((() => {
let $ret = new RestVirtualDataSourceDataProvider();
$ret.executionContext = this.executionContext;
$ret.enableJsonp = this.enableJsonp;
$ret.isAggregationSupported = this.isGroupingSupported;
return $ret;
})());
this.externalDataSource = this;
}
onBaseUriChanged(oldValue, newValue) {
if (this.actualDataProvider) {
this.actualDataProvider.baseUri = this.baseUri;
this.queueAutoRefresh();
}
}
get baseUri() {
return this._baseUri;
}
set baseUri(value) {
let oldValue = this._baseUri;
this._baseUri = value;
if (oldValue != this._baseUri) {
this.onBaseUriChanged(oldValue, this._baseUri);
}
}
onEntitySetChanged(oldValue, newValue) {
if (this.actualDataProvider) {
this.actualDataProvider.entitySet = this.entitySet;
this.queueAutoRefresh();
}
this.queueAutoRefresh();
}
set isFilteringSupportedByServer(v) {
this._isFilteringSupportedByServer = v;
}
get isFilteringSupportedByServer() {
return this._isFilteringSupportedByServer;
}
get_isFilteringSupported() {
if (this._isFilteringSupportedByServer) {
return true;
}
return false;
}
get entitySet() {
return this._entitySet;
}
set entitySet(value) {
let oldValue = this._entitySet;
this._entitySet = value;
if (this._entitySet != oldValue) {
this.onEntitySetChanged(oldValue, this._entitySet);
}
}
onTimeoutMillisecondsChanged(oldValue, newValue) {
if (this.actualDataProvider) {
this.actualDataProvider.timeoutMilliseconds = this.timeoutMilliseconds;
}
}
get timeoutMilliseconds() {
return this._timeoutMilliseconds;
}
set timeoutMilliseconds(value) {
let oldValue = this._timeoutMilliseconds;
this._timeoutMilliseconds = value;
if (oldValue != this._timeoutMilliseconds) {
this.onTimeoutMillisecondsChanged(oldValue, this._timeoutMilliseconds);
}
}
get isSortingSupportedOverride() {
return true;
}
get isFilteringSupportedOverride() {
return true;
}
get isGroupingSupportedOverride() {
return this.isAggregationSupportedByServer;
}
get isAggregationSupportedByServer() {
return this._isAggregationSupportedByServer;
}
set isAggregationSupportedByServer(isSupported) {
this._isAggregationSupportedByServer = isSupported;
if (this.actualDataProvider) {
this.actualDataProvider.isAggregationSupported = this.isAggregationSupportedByServer;
}
}
get enableJsonp() {
return this._enableJsonp;
}
set enableJsonp(isEnabled) {
this._enableJsonp = isEnabled;
if (this.actualDataProvider) {
this.actualDataProvider.enableJsonp = this.enableJsonp;
}
}
get fixedFullCount() {
return this._fixedFullCount;
}
set fixedFullCount(value) {
this._fixedFullCount = value;
}
get provideFullCount() {
return this._provideFullCount;
}
set provideFullCount(value) {
this._provideFullCount = value;
if (this.actualDataProvider) {
this.actualDataProvider.provideFullCount = this.provideFullCount;
this.queueAutoRefresh();
}
}
get provideOrderByParameter() {
return this._provideOrderByParameter;
}
set provideOrderByParameter(value) {
this._provideOrderByParameter = value;
if (this.actualDataProvider) {
this.actualDataProvider.provideOrderByParameter = this.provideOrderByParameter;
this.queueAutoRefresh();
}
}
get provideFilterParameter() {
return this._provideFilterParameter;
}
set provideFilterParameter(value) {
this._provideFilterParameter = value;
if (this.actualDataProvider) {
this.actualDataProvider.provideFilterParameter = this.provideFilterParameter;
this.queueAutoRefresh();
}
}
get provideAggregationParameter() {
return this._provideAggregationParameter;
}
set provideAggregationParameter(value) {
this._provideAggregationParameter = value;
if (this.actualDataProvider) {
this.actualDataProvider.provideAggregationParameter = this.provideAggregationParameter;
this.queueAutoRefresh();
}
}
get provideAggregatedCount() {
return this._provideAggregatedCount;
}
set provideAggregatedCount(value) {
this._provideAggregatedCount = value;
if (this.actualDataProvider) {
this.actualDataProvider.provideAggregatedCount = this.provideAggregatedCount;
this.queueAutoRefresh();
}
}
get provideUri() {
return this._provideUri;
}
set provideUri(value) {
this._provideUri = value;
if (this.actualDataProvider) {
this.actualDataProvider.provideUri = this.provideUri;
this.queueAutoRefresh();
}
}
get performFetch() {
return this._performFetch;
}
set performFetch(value) {
this._performFetch = value;
if (this.actualDataProvider) {
this.actualDataProvider.performFetch = this.performFetch;
this.queueAutoRefresh();
}
}
get providePagingParameter() {
return this._providePagingParameter;
}
set providePagingParameter(value) {
this._providePagingParameter = value;
if (this.actualDataProvider) {
this.actualDataProvider.providePagingParameter = this.providePagingParameter;
this.queueAutoRefresh();
}
}
get provideDesiredPropertiesParameter() {
return this._provideDesiredPropertiesParameter;
}
set provideDesiredPropertiesParameter(value) {
this._provideDesiredPropertiesParameter = value;
if (this.actualDataProvider) {
this.actualDataProvider.provideDesiredPropertiesParameter = this.provideDesiredPropertiesParameter;
this.queueAutoRefresh();
}
}
get provideItems() {
return this._provideItems;
}
set provideItems(value) {
this._provideItems = value;
if (this.actualDataProvider) {
this.actualDataProvider.provideItems = this.provideItems;
this.queueAutoRefresh();
}
}
clone() {
let dataSource = new RestVirtualDataSource();
dataSource.executionContext = this.executionContext;
dataSource.includeSummaryRowsInSection = this.includeSummaryRowsInSection;
dataSource.isSectionCollapsable = this.isSectionCollapsable;
dataSource.isSectionExpandedDefault = this.isSectionExpandedDefault;
//dataSource.isSectionHeaderNormalRow = this.isSectionHeaderNormalRow;
dataSource.isSectionSummaryRowsAtBottom = this.isSectionSummaryRowsAtBottom;
//dataSource.isSectionContentVisible = this.isSectionContentVisible;
dataSource.primaryKey = this.primaryKey;
dataSource.propertiesRequested = this.propertiesRequested;
dataSource.sectionHeaderDisplayMode = this.sectionHeaderDisplayMode;
dataSource.shouldEmitSectionFooters = this.shouldEmitSectionFooters;
dataSource.shouldEmitSectionHeaders = this.shouldEmitSectionHeaders;
dataSource.shouldEmitShiftedRows = this.shouldEmitShiftedRows;
dataSource.summaryScope = this.summaryScope;
for (var i = 0; i < this.groupDescriptions.size(); i++) {
dataSource.groupDescriptions.add(this.groupDescriptions.get(i));
}
for (var i = 0; i < this.sortDescriptions.size(); i++) {
dataSource.sortDescriptions.add(this.sortDescriptions.get(i));
}
for (var i = 0; i < this.filterExpressions.size(); i++) {
dataSource.filterExpressions.add(this.filterExpressions.get(i));
}
for (var i = 0; i < this.summaryDescriptions.size(); i++) {
dataSource.summaryDescriptions.add(this.summaryDescriptions.get(i));
}
dataSource.pageSizeRequested = this.pageSizeRequested;
dataSource.maxCachedPages = this.maxCachedPages;
dataSource.baseUri = this.baseUri;
dataSource.entitySet = this.entitySet;
dataSource.timeoutMilliseconds = this.timeoutMilliseconds;
dataSource.isAggregationSupportedByServer = this.isAggregationSupportedByServer;
dataSource.enableJsonp = this.enableJsonp;
dataSource.fixedFullCount = this.fixedFullCount;
dataSource.provideAggregationParameter = this.provideAggregationParameter;
dataSource.provideAggregatedCount = this.provideAggregatedCount;
dataSource.provideFilterParameter = this.provideFilterParameter;
dataSource.provideFullCount = this.provideFullCount;
dataSource.provideOrderByParameter = this.provideOrderByParameter;
dataSource.provideUri = this.provideUri;
dataSource.performFetch = this.performFetch;
dataSource.providePagingParameter = this.providePagingParameter;
dataSource.provideItems = this.provideItems;
dataSource.provideDesiredPropertiesParameter = this.provideDesiredPropertiesParameter;
return dataSource;
}
}