UNPKG

@docsvision/webclient

Version:

Type definitions for DocsVision WebClient scripts and extensions.

187 lines (186 loc) 13.5 kB
import { BaseControl, BaseControlParams } from "@docsvision/webclient/System/BaseControl"; import { IDataChangedEventArgsEx } from "@docsvision/webclient/System/IDataChangedEventArgs"; import { InputBasedControlState } from "@docsvision/webclient/System/InputBasedControlImpl"; import { $LayoutInfo } from "@docsvision/webclient/System/LayoutServices"; import { IBindingsWriteRequest } from "@docsvision/webclient/System/IBindingsWriteRequest"; import { EditMode } from "@docsvision/webclient/System/EditMode"; import { BasicApiEvent, CancelableApiEvent } from "@docsvision/webclient/System/ApiEvent"; import { ICancelableEventArgs } from "@docsvision/webclient/System/ICancelableEventArgs"; import { IEventArgs } from "@docsvision/webclient/System/IEventArgs"; import { IValidationParams } from "@docsvision/webclient/System/IValidationParams"; import { IValidationResult } from "@docsvision/webclient/System/IValidationResult"; import { $LabelWidth } from '@docsvision/webclient/System/$LabelWidth'; import { Optional } from '@docsvision/web/core/services'; import { EditPopover } from '@docsvision/webclient/Helpers/PopoverHelpers/EditPopover/EditPopover'; import { IKeyboardEventArgs } from "@docsvision/webclient/System/IKeyboardEventArgs"; export declare const EDIT_IN_PLACE_SUFFIX = "_modal_control"; /** Класс параметров для базового класса {@link InputBasedControl}. */ export declare class InputBasedControlParams<ModelT> extends BaseControlParams { /** Значение элемента управления. @covered */ value?: ModelT; /** * Флаг, определяющий возможность изменения значения элемента управления: * true - разрешено (разрешена настроенная операция редактирования), * false - не разрешено. * @covered */ canEdit?: boolean; /** * Флаг, определяющий, что элемент управления находится в * модальном окне редактирования значения элемента управления в режиме редактирования. * {@link EditMode.EditInPlace} * * Элемент управления, расположеный в модальном окне редактирования, доступен по названию: `названиеЭУ**_modal_control**` */ modalMode?: boolean; /** Возвращает значение по умолчанию @covered */ default?: any; /** Возвращает режим редактирования. @partly_covered */ editMode?: EditMode; /** Флаг сохранения карточки, при введении данных в режиме edit in place. */ savingCardWithEditInPlaceMode?: boolean; /** Текст всплывающей подсказки */ tip?: string; /** * Текст заполнителя. * * Заполнитель отображается в элементе управления, когда его (элемента управления) значение не задано. */ placeHolder?: string; /** * Текст метки. * * Метка - текст отображаемый рядом (слева или вверху) с элементом управления. */ labelText?: string; /** Флаг, определяющий, что метка должна отображаться, когда значение элемента управления не задано: true - отображать, false - не отображать. */ showEmptyLabel?: boolean; /** Флаг, указывающий, обязательно ли должно быть задано значение элемента управления: true - обязательно, false - не обязательно. */ required?: boolean; /** * Флаг, определяющий, должно ли переноситься на следующую строку тектовое содержимое, когда оно не помещается в одну строку: * true - переносить, * false - не переносить. */ wrapLongValueUnderLabel?: boolean; /** Флаг, определяющий, что модальное окно редактирования значения открыто: true - открыто, false - не открыто. */ isEditDialogShown?: boolean; /** Флаг, определяющий минимальный текстовый внешний вид элемента управления, подходящий для встраивания в текст. */ simpleView?: boolean; /** Флаг, определяющий, что в режиме edit in place был совершен клик по тексту. */ clickedLabel?: boolean; /** Флаг, определяющий, что в режиме edit in place был совершен клик по иконке, расположенной рядом с текстом. */ clickedIcon?: boolean; displayIcon?: boolean; /** Событие возникает при изменении значения элемента управления. @covered */ dataChanged?: BasicApiEvent<IDataChangedEventArgsEx<ModelT>>; /** Событие возникает при открытии модального окна редактирования. @covered */ inPlaceEditOpening?: CancelableApiEvent<IEventArgs>; /** Событие возникает после открытия модального окна редактирования. @covered */ inPlaceEditOpened?: BasicApiEvent<IEventArgs>; /** Событие возникает при закрытии диалогового окна редактирования. @covered */ inPlaceEditClosing?: CancelableApiEvent<IEventArgs>; /** Событие возникает после закрытия диалогового окна редактирования. @covered */ inPlaceEditClosed?: BasicApiEvent<IEventArgs>; /** Событие возникает при сохранении изменения значения в модальном окна редактирования. */ editPopoverAccepting?: CancelableApiEvent<any>; /** Событие возникает при нажатии на клавишу клавиатуры в поле для ввода данных */ inputKeyDown?: BasicApiEvent<IKeyboardEventArgs>; /** @internal Specifies control name, that should be placed into binding. Used in edit-in-place scenario. */ editInPlaceCreatorControlName?: string; } /** * Базовый класс элементов управления, поддерживающих ввод данных. * * @param P Класс, наследующийся от {@link InputBasedControlParams} и описывающий публичные свойства компонента. * @param S Интерфейс, расширяющий {@link InputBasedControlState} и описывающий внутренние переменные инетрфейсного компонента. */ export declare abstract class InputBasedControl<ModelT, P extends InputBasedControlParams<ModelT>, S extends InputBasedControlState<ModelT>> extends BaseControl<P, S> { protected isAccepting: boolean; constructor(props: P); /** При переопределении в производных классах должен возвращать объект, содержащий соответствующие сервисы. */ protected abstract getServices(): Optional<$LayoutInfo> & Optional<$LabelWidth>; /** @internal */ protected set defaultValue(value: ModelT); private get myControlImpl(); /** * Проверяет возможность отображения диалогового окна редактирования. * @returns true - если операция редактирования доступна и элемент управления находится в режиме редактирования "По месту"; иначе - false. * @covered */ canShowEditDialog(): boolean; /** * Открывает диалоговое окно редактирования значения. * * Внимание, в связи с изменениями в React 16, в Web-клиент начиная с версии 10 данный метод асинхронный. * @covered */ showEditDialog(): Promise<InputBasedControl<ModelT, P, S>>; /** * Закрывает диалоговое окно редактирования значения, отменяя правки. * @covered */ hideEditDialog(): Promise<unknown>; /** * Закрывает диалоговое окно редактирования значения, применяя правки. * @covered */ acceptEditDialog(): Promise<unknown>; /** * Проверяет наличие значения у элемента управления. * @returns true - если значение элемента управления установлено, иначе - false. * @covered */ hasValue(): boolean; private get isEditDialogShown(); /** Тоже что и {@link InputBasedControlParams.value} @covered */ get value(): ModelT; /** @covered */ set value(val: ModelT); /** * Для контрола, находящегося в режиме редактирования по месту возвращает основной экземпляр контрола. * * При открытии окна редактирования по месту контрол создает свою копию в модальном окне, так что пользователь взаимодейсвует * именно с ней. При помощи данного свойства имея ссылку на данную копию (например, из свойства sender события) можно обратится к основному * контролу. Если контрол не редактируется в режиме "по месту", то свойство вернет ссылку на сам контрол. * @covered */ get primaryInstance(): this; /** * Для контрола в режиме редактирования по месту возвращает экземпляр контрола, находящегося в модальном окне. * * При открытии окна редактирования по месту контрол создает свою копию в модальном окне, так что пользователь взаимодейсвует * именно с ней. При помощи данного свойства имея ссылку на основной контрол, можно получить ссылку на экземпляр данной копии. * Если контрол не редактируется в режиме "по месту", то свойство вернет null. Если обратится к данному свойству из экземпляра копии, * то будет возвращена ссылка на текущий экземпляр. */ /** @covered */ get editInPlaceInstance(): this; /** @covered */ get editPopover(): EditPopover; /** Запускает валидацию элемента управления. @covered */ validate(params: IValidationParams): IValidationResult[]; /** @internal */ componentDidMount(): void; private get myGenericControlImpl(); /** @internal */ onEditPopoverAccepting(sender: any, event: ICancelableEventArgs<IEventArgs>): void; /** @covered */ copyParametersFromEditInPlace(editPopoverControl: InputBasedControl<any, any, any>): void; /** Вызывается при закрытии edit-in-place окна, для определения - нужно ли сохранять значение на сервере или нет. */ protected shouldSaveEditInPlaceValue(): boolean; /** * При переопределении в дочерних классах возвращает объект, * в котором перечислены параметры, значения которых необходимо * перенести из edit-in-place окна в основной контрол. В объекте в качестве ключей имена параметров, * а в качестве значений соответствующие значения из аргумента params. */ protected getParamsToKeep(params: P): { value: ModelT; }; /** * Возвращает модель данных, которая будет передана на сервер при сохранении значения контрола. * Сами данные получаются путем вызова {@link getBindings}. @covered */ getBindingsWriteRequests(): IBindingsWriteRequest[]; }