/// /// import { IModelSerializer, ISerializableModelConstructor, ISerializationInfoArray } from '@devexpress/analytics-core/analytics-utils'; import { template } from 'devextreme/core/templates/template'; import dxForm, { SimpleItem as dxFormSimpleItem } from 'devextreme/ui/form'; import { AsyncRule, CompareRule, CustomRule, EmailRule, NumericRule, PatternRule, RangeRule, RequiredRule, StringLengthRule } from 'devextreme/ui/validation_rules'; import * as ko from 'knockout'; import { DashboardLocalizationId } from '../../data/localization/_default'; import { DisposableType } from '../disposable-object'; import { DxElement } from '../../common/common-interfaces'; export type IDashboardSerializationInfoArray = Array; export declare let NotSupportedProperty: string; export type DevExtremeValidationRules = Array; export interface FormAdapterContext { bindingContext: ko.BindingContext; widgetContainer: HTMLElement; } export interface FormAdapterItemOptions { editorOptions?: Object; comparableEditorOptions?: string[]; editorType?: 'dxAutocomplete' | 'dxCalendar' | 'dxCheckBox' | 'dxColorBox' | 'dxDateBox' | 'dxDropDownBox' | 'dxHtmlEditor' | 'dxLookup' | 'dxNumberBox' | 'dxRadioGroup' | 'dxRangeSlider' | 'dxSelectBox' | 'dxSlider' | 'dxSwitch' | 'dxTagBox' | 'dxTextArea' | 'dxTextBox'; customEditorType?: string; template?: template | ((data: { component?: dxForm; dataField?: string; editorOptions?: any; editorType?: string; name?: string; }, itemElement: DxElement) => string | Element | JQuery); label?: { text?: string; visible?: boolean; }; validationRules?: DevExtremeValidationRules; } export type FormAdapterItem = FormAdapterItemOptions | ((context: FormAdapterContext) => FormAdapterItemOptions); export interface PropertyEditorInfo { propertyName: string; displayName?: DashboardLocalizationId; values?: { [key: string]: DashboardLocalizationId; }; simpleFormAdapterItem?: SimpleFormAdapterItems; formAdapterItem?: FormAdapterItem; dxFormItem?: dxFormSimpleItem; externalUpdateCallback?: (formUpdateHandler: ({ forceValidate }: { forceValidate: boolean; }) => void) => DisposableType; validateBeforeSet?: boolean; validationRules?: Array; valuesArray?: Array<{ value: any; displayValue: DashboardLocalizationId | string; localizationId?: string; }>; editorOptions?: Object; } export interface PropertySerializationInfo { propertyName: string; modelName?: string; defaultVal?: any; type?: ISerializableModelConstructor; info?: ISerializationInfoArray; from?: (val: any, serializer?: IModelSerializer) => any; toJsonObject?: any; array?: boolean; alwaysSerialize?: boolean; isTwoWay?: boolean; category?: PropertyCategory; } export interface IDashboardSerializationInfo extends PropertySerializationInfo, PropertyEditorInfo { } export interface ITypedDashboardSerializationInfo extends IDashboardSerializationInfo { propertyName: Extract; } export declare enum PropertyCategory { ClientState = 0, Data = 1, Interactivity = 2, ViewModel = 3, Map = 4, Initialize = 5, Coloring = 6, NoUpdate = 7, NoUpdateByObservableValue = 8 } export type SimpleFormAdapterItems = 'textBoxEditor' | 'numberBoxEditor' | 'dateBoxEditor' | 'timeBoxEditor' | 'dateTimeBoxEditor' | 'colorBoxEditor' | 'checkBoxEditor' | 'selectBoxEditor' | 'guidEditor' | 'listEditor' | 'buttonGroupEditor' | 'onOffButtonGroupEditor' | 'yesNoButtonGroupEditor' | 'discreteContinuousButtonGroupEditor'; export declare function parseBool(value: any): any; export declare function floatFromModel(value: string): ko.Observable; export declare function fromStringToDate(val: string): ko.Observable; export declare function fromDateToString(date: Date): string; export declare function nullableFloatToModel(value: any): {}; export declare let integerValidationRule: { type: string; validationCallback: (e: any) => boolean; }; export declare let itemType: IDashboardSerializationInfo; export declare let componentName: IDashboardSerializationInfo; export declare let url: IDashboardSerializationInfo; export declare let name: IDashboardSerializationInfo; export declare let name_ViewModel: IDashboardSerializationInfo; export declare let nameTag: IDashboardSerializationInfo; export declare let dataMember: IDashboardSerializationInfo; export declare let filter: IDashboardSerializationInfo; export declare let contentArrangementMode: IDashboardSerializationInfo; export declare let contentLineCount: IDashboardSerializationInfo; export declare let BindingSectionTitles: { Arguments: string; SingleArgument: string; SeriesDimension: string; }; export declare let columnsPropertyName: string; export declare let rowsPropertyName: string; export declare let argumentsPropertyName: string; export declare let valuesPropertyName: string; export declare let argumentPropertyName: string; export declare let valuePropertyName: string; export declare let actualValuePropertyName: string; export declare let targetValuePropertyName: string; export declare let sparklineArgumentPropertyName: string; export declare let weightPropertyName: string; export declare let colorPropertyName: string;