@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
83 lines (82 loc) • 6.35 kB
TypeScript
import { TimeOfPerformanceImpl, TimeOfPerformanceState } from "@docsvision/webclient/BackOffice/TimeOfPerformanceImpl";
import { $BusinessCalendarController } from "@docsvision/webclient/Generated/DocsVision.WebClient.Controllers";
import { GenModels } from "@docsvision/webclient/Generated/DocsVision.WebClient.Models";
import { Panel, PanelParams } from "@docsvision/webclient/Platform/Panel";
import { $DeviceType } from '@docsvision/webclient/StandardServices';
import { $ControlStore } from "@docsvision/webclient/System/LayoutServices";
import { IBindingResult } from "@docsvision/webclient/System/IBindingResult";
import { BasicApiEvent, CancelableApiEvent } from "@docsvision/webclient/System/ApiEvent";
/**
* Содержит публичные свойства элемента управления [Срок исполнения]{@link TimeOfPerformance}.
*/
export declare class TimeOfPerformanceParams extends PanelParams {
/** Стандартный CSS класс со стилями элемента управления */
standardCssClass?: string;
/** Обязательное поле */
required?: boolean;
/** Имя элемента управления {@link DateTimePicker}, содержащего дату начала периода */
startDateControlName: string;
/** Имя элемента управления {@link DateTimePicker}, содержащего дату завершения периода */
endDateControlName: string;
/** Имя элемента управления {@link NumberControl}, содержащего длительность периода */
durationControlName: string;
/** Настройка, определяющая как дочерние элементы должны быть расположены в пространстве - в строку или в столбец. */
orientation?: GenModels.Orientation;
/**
* Флаг, определяющий, что использовать для рассчета длительности и даты завершения - бизнес-календарь или обычный календарь.
* Для заданий и групп заданий значение по умолчанию получается из настроек справочника видов.
*/
useBusinessCalendar?: boolean;
/**
* Параметр, определяющий, какой бизнес-календарь будет использован.
* 1. Если значение не задано, то будет использован системный календарь
* (или настройки по умолчанию рабочий день с 9 до 18, пн-пт, если он не доступен).
* 2. Если задан сотрудник или подразделение, то календарь настроенный для сотрудника или подразделения в справочнике сотрудников.
* Если в справочнике сотрдуников календарь не настрен, то см. пункт 1.
* 3. Если задано несколько сотрудников одного подразделения, то календарь настроенный для этого подразделения. Иначе см. пункт 1.
*/
businessCalendarSources?: GenModels.BusinessCalendarSource[];
/** Событие, возникающее перед получением длительности периода. */
gettingDuration?: CancelableApiEvent<GenModels.CalendarDurationRequestModel>;
/** Событие, возникающее после получения длительности периода. */
gotDuration?: BasicApiEvent<number>;
/** Событие, возникающее перед получением конца периода. */
gettingEndDate?: CancelableApiEvent<GenModels.CalendarEndDateRequestModel>;
/** Событие, возникающее после получения конца периода. */
gotEndDate?: BasicApiEvent<Date>;
services?: $BusinessCalendarController & $ControlStore & $DeviceType;
}
/**
* Класс элемента управления Срок исполнения.
*
* Добавляет в web-разметку блок с тремя контролами: дата начала, конец и длительность периода. При изменении значения каждого из контролов
* автоматически обновляется значение других с учетом бизнес календаря (см. {@link useBusinessCalendar} и {@link businessCalendarSources}). В частности:
* 1. При изменении даты начала вычисляется дата заврешения
* 2. При изменении даты завершения вычисляется длительность
* 3. При изменении длительности вычисляется дата завершения
*/
export declare class TimeOfPerformance extends Panel<TimeOfPerformanceParams, TimeOfPerformanceState> {
/** @internal */
protected createParams(): TimeOfPerformanceParams;
/** @internal */
init(): void;
/** @internal */
protected set useBusinessCalendarBinding(biding: IBindingResult<boolean>);
protected set required(required: boolean);
/**
* Возвращает длительность периода на основе даты начала и конца.
*/
getDuration(startDate: Date, endDate: Date): Promise<number>;
/**
* Возвращает конец периода на основе даты начала и длительности.
*/
getEndDate(startDate: Date, duration: number): Promise<Date>;
/** Запускает перессчет длительности. */
updateDuration(): Promise<void>;
/** Запускает перессчет даты начала. */
updateStartDate(): Promise<void>;
/** Запускает перессчет даты завершения. */
updateEndDate(): Promise<void>;
/** @internal */
createImpl(): TimeOfPerformanceImpl;
}