/// import { Disposable } from '@devexpress/analytics-core/analytics-utils'; import * as ko from 'knockout'; import { DxPromise } from '@devexpress/analytics-core/analytics-internal'; import { IParameterValueViewModel } from '../data/_parameters'; import { Dimension } from '../model/data-item/dimension'; import { DataField, IDataField } from '../model/data-sources/_data-field'; import { CalculatedField } from '../model/data-sources/calculated-field'; import { DataSource, IDataSourceConsumer } from '../model/data-sources/data-source'; import { DashboardItem } from '../model/items/dashboard-item'; import { DynamicListLookUpSettings } from '../model/parameters/dynamic-list-lookup-settings'; import { Parameter } from '../model/parameters/parameter'; import { IDataServiceClient } from './_service-client'; export interface IFilterItem { Level: number; Text: string; Value: any; IsBlank: boolean; IsChecked: boolean; IsVisible: boolean; } export interface IFieldConstraint { (field: IDataField): boolean; } export interface IDataFieldsProvider { findDataField(dataSourceName: string, dataMemberName: string, fullFieldName: string, hasGroupSeparator?: boolean): JQueryPromise; getDataFieldsArray: (dataSourceName: string, dataMember: string, fieldPath: string, filterDelegate: (field: IDataField) => boolean) => JQueryPromise>; } export interface IDataItemValuesProvider { getDimensionUniqueValues(dataSourceName: string, dataMember: string, dimension: Dimension): JQueryPromise>; } export declare function patchCalcFieldPath(dataSource: DataSource, calculatedField: CalculatedField, fieldName: string): string; export declare function trimLeadingPathElement(path: string, element: string): string; export declare function splitFullFieldName(fullFieldName: string): { path: string; name: string; }; export declare function isStartedWith(path: any, value: any): boolean; export declare function findDataMember(dataSource: DataSource, path: string): { dataMember: string; fieldPath: string; }; export declare function getFirstDataMember(dataSource: DataSource): string; export interface IDataSourceProvider { findDataSource: (dsName: string) => DataSource; } export declare class DataSourceBrowser extends Disposable implements IDataFieldsProvider, IDataItemValuesProvider, IDataSourceProvider { _dataSources: ko.ObservableArray; private isDesignMode; parameters?: ko.ObservableArray; _serviceClient?: ko.Observable; isLoading: ko.Observable; private _dynamicParametersValueCache; private _dimensionValuesCache; private _fieldsCache; private _dataSourcesSubscription; _cacheNestedFields(path: string, field: DataField): void; private _findInFieldsCache; constructor(_dataSources: ko.ObservableArray, isDesignMode: ko.Observable, parameters?: ko.ObservableArray, _serviceClient?: ko.Observable, isLoading?: ko.Observable); getDimensionFilterItems(dashboardItem: DashboardItem, dimensionDataMember: string, previousState: Array, branch: Array): JQueryPromise>; getDimensionFilterString(dashboardItem: DashboardItem, dimensionDataMember: string, previousState: Array): JQueryPromise; getDataFieldsArray(dataSourceName: string, dataMember: string, fieldPath: string, filterDelegate?: (field: IDataField) => boolean): JQueryPromise>; isFolder(path: string): boolean; findPathToFieldInTree(dataSourceName: string, dataMemberName: string, fieldName: string, constraint: IFieldConstraint): JQueryPromise; findDataField(dataSourceName: string, dataMemberName: string, fullFieldName: string, separateGroupFields?: boolean): JQueryPromise; fuzzyFindFields(startPath: string, searchFor: string): JQueryPromise>; findDataSource(dsName: string): DataSource; dataMembersSupported(dsc: IDataSourceConsumer): boolean; getDataFields(dsc: IDataSourceConsumer): ko.ObservableArray; clearFieldsCache(path: string): void; clearDynamicParametersValueCache(): void; clearDimensionValuesCache(): void; removeDataSource: (dataSource: DataSource) => void; initDataSource(dataSource: DataSource): void; dynamicLookUpValuesLoaded: (dynamicListLookUpSettings: DynamicListLookUpSettings) => void; getParameterValues(parameterType: string, dynamicListLookUpSettings: DynamicListLookUpSettings, forceRequest?: boolean, tempParameterValues?: { [key: string]: any; }, changedParameters?: string[]): DxPromise; getDimensionUniqueValues(dataSourceName: string, dataMember: string, dimension: Dimension): JQueryPromise>; splitFullPath(fullPath?: string): { dataSource: string; dataMember: string; fieldPath: string; }; private _subscribeDataSources; private _unsubscribeDataSources; dispose(): void; } export declare function isNonCollectionDataField(dataField: IDataField): boolean; export declare function getDataFields(fieldsNames: Array, dataSource: string, dataMember: string, dataFieldProvider: IDataFieldsProvider): JQueryPromise>;