@eclipse-scout/core
Version:
Eclipse Scout runtime
252 lines • 11.8 kB
TypeScript
/// <reference types="jquery" />
import { CellModel, DateRange, EnumObject, Event, InitModelOf, JsonDateRange, KeyStrokeContext, Menu, MenuBar, PlannerEventMap, PlannerHeader, PlannerHeaderDisplayModeClickEvent, PlannerModel, Range, TooltipSupport, Widget, YearPanel, YearPanelDateSelectEvent } from '../index';
export declare class Planner extends Widget implements PlannerModel {
model: PlannerModel;
eventMap: PlannerEventMap;
self: Planner;
activityMap: Record<string, PlannerActivity>;
activitySelectable: boolean;
availableDisplayModes: PlannerDisplayMode[];
displayMode: PlannerDisplayMode;
displayModeOptions: Record<PlannerDisplayMode, PlannerDisplayModeOptions>;
headerVisible: boolean;
label: string;
resources: PlannerResource[];
resourceMap: Record<string, PlannerResource>;
multiSelect: boolean;
rangeSelectable: boolean;
selectionRange: DateRange;
selectedResources: PlannerResource[];
viewRange: DateRange;
startRange: DateRange;
lastRange: DateRange;
beginScale: number;
endScale: number;
selectedActivity: PlannerActivity;
menus: Menu[];
startRow: PlannerResource;
lastRow: PlannerResource;
menuBar: MenuBar;
header: PlannerHeader;
yearPanel: YearPanel;
defaultMenuTypes: string[];
/** scale calculator */
transformLeft: (t: number) => number;
transformWidth: (t0: number, t1: number) => number;
yearPanelVisible: boolean;
$range: JQuery;
$modes: JQuery;
$selectors: JQuery[];
$grid: JQuery;
$highlight: JQuery;
$timeline: JQuery;
$timelineLarge: JQuery;
$timelineSmall: JQuery;
$scaleTitle: JQuery;
$scale: JQuery;
protected _resourceTitleWidth: number;
protected _rangeSelectionStarted: boolean;
protected _resourceSelectionMode: PlannerResourceSelectionMode;
protected _tooltipSupport: TooltipSupport;
protected _$body: JQuery<Body>;
protected _gridScrollHandler: (event: JQuery.ScrollEvent) => void;
protected _cellMousemoveHandler: (event: JQuery.MouseMoveEvent<Document>) => void;
protected _resizeMousemoveHandler: (event: JQuery.MouseMoveEvent<Document>) => void;
protected _resourceTitleMousemoveHandler: (event: JQuery.MouseMoveEvent<Document>) => void;
constructor();
static Direction: {
readonly BACKWARD: -1;
readonly FORWARD: 1;
};
/**
* Enum providing display-modes for planner (extends calendar).
* @see IPlannerDisplayMode.java
*/
static DisplayMode: {
readonly DAY: 1;
readonly WEEK: 2;
readonly MONTH: 3;
readonly WORK_WEEK: 4;
readonly CALENDAR_WEEK: 5;
readonly YEAR: 6;
};
static RANGE_SELECTION_MOVE_THRESHOLD: number;
static MenuType: {
readonly Activity: "Planner.Activity";
readonly EmptySpace: "Planner.EmptySpace";
readonly Range: "Planner.Range";
readonly Resource: "Planner.Resource";
};
static ResourceSelectionMode: {
readonly DEFAULT: 0;
readonly DESELECT: 1;
readonly ADD: 2;
};
protected _createKeyStrokeContext(): KeyStrokeContext;
protected _init(model: InitModelOf<this>): void;
protected _initResource(resource: PlannerResourceModel): PlannerResource;
protected _initActivity(activityModel: PlannerActivityModel): void;
protected _render(): void;
protected _renderProperties(): void;
protected _remove(): void;
get$Scrollable(): JQuery;
protected _onPreviousClick(event: Event<PlannerHeader>): void;
protected _onNextClick(event: Event<PlannerHeader>): void;
protected _navigateDate(direction: PlannerDirection): void;
protected _onTodayClick(event: Event<PlannerHeader>): void;
protected _today(): Date;
protected _onDisplayModeClick(event: PlannerHeaderDisplayModeClickEvent): void;
protected _onYearClick(event: Event<PlannerHeader>): void;
protected _onYearPanelDateSelect(event: YearPanelDateSelectEvent): void;
protected _onResourceTitleMouseDown(event: JQuery.MouseDownEvent): void;
protected _onResourceTitleMousemove(event: JQuery.MouseMoveEvent<Document>): void;
protected _onResourceTitleContextMenu(event: JQuery.ContextMenuEvent): void;
protected _onRangeSelectorContextMenu(event: JQuery.ContextMenuEvent): void;
protected _onActivityContextMenu(event: JQuery.ContextMenuEvent): void;
protected _showContextMenu(event: JQuery.ContextMenuEvent, allowedType: string): void;
protected _onGridScroll(event: JQuery.ScrollEvent): void;
/**
* @internal
*/
_reconcileScrollPos(): void;
protected _renderRange(): void;
protected _renderScale(): void;
/**
* Returns every hidden range of the view range created by first and last our of day.
*/
protected _findHiddenRangesInWeekMode(): Range[];
protected _renderDayScale(): void;
protected _renderWeekScale(): void;
protected _renderMonthScale(): void;
protected _renderCalendarWeekScale(): void;
protected _renderYearScale(): void;
protected _incrementTimelineScaleItems($largeComp: JQuery, $smallComp: JQuery, newDate: Date, newLargeGroup: boolean): void;
protected _scaleTooltipText($scale: JQuery): string;
protected _removeAllResources(): void;
protected _renderResources(resources?: PlannerResource[]): void;
protected _linkResource($resource: JQuery, resource: PlannerResource): void;
protected _linkActivity($activity: JQuery, activity: PlannerActivity): void;
protected _rerenderActivities(resources?: PlannerResource[]): void;
protected _buildResourceHtml(resource: PlannerResource): string;
protected _renderActivitiesForResource(resource: PlannerResource): void;
protected _linkActivitiesForResource(resource: PlannerResource): void;
protected _buildActivitiesHtml(resource: PlannerResource): string;
protected _removeActivitiesForResource(resource: PlannerResource): void;
protected _buildActivityHtml(activity: PlannerActivity): string;
protected _onCellMouseDown(event: JQuery.MouseDownEvent): void;
protected _startRangeSelection(pageX: number, pageY: number): void;
/**
* @returns true if the range selection may be started, false if not
*/
protected _prepareRangeSelectionByMousemove(mousedownEvent: JQuery.MouseDownEvent, mousemoveEvent: JQuery.MouseMoveEvent<Document>): boolean;
protected _onCellMousemove(mousedownEvent: JQuery.MouseDownEvent, event: JQuery.MouseMoveEvent<Document>): void;
protected _onResizeMouseDown(event: JQuery.MouseDownEvent): boolean;
protected _onResizeMousemove(event: JQuery.MouseMoveEvent): void;
protected _onDocumentMouseUp(event: JQuery.MouseUpEvent<Document>): void;
protected _removeMouseMoveHandlers(): void;
protected _select(updateResources?: boolean): void;
protected _adjustSelectionRange(range: DateRange): DateRange;
protected _findRow(y: number): PlannerResource;
protected _findScale(x: number): DateRange;
protected _findScaleByFromDate(from: Date): DateRange;
protected _findScaleByToDate(to: Date): DateRange;
protected _findScaleByFunction(func: (index: number, element: HTMLElement) => boolean): DateRange;
/**
* @returns the visible view range (the difference to this.viewRange is that first and last hourOfDay are considered).
*/
protected _visibleViewRange(): DateRange;
protected _dateFormat(date: Date, pattern: string): string;
protected _renderViewRange(): void;
protected _renderHeaderVisible(): void;
protected _renderYearPanelVisible(animated: boolean): void;
protected _onYearPanelWidthChange(): void;
protected _afterYearPanelWidthChange(): void;
protected _setMenus(menus: Menu[]): void;
protected _removeMenus(): void;
protected _updateMenuBar(): void;
protected _filterMenus(allowedTypes: string[], onlyVisible: boolean, enableDisableKeyStrokes?: boolean): Menu[];
setDisplayModeOptions(displayModeOptions: Partial<Record<PlannerDisplayMode, PlannerDisplayModeOptions>>): void;
protected _setDisplayModeOptions(displayModeOptions: Record<PlannerDisplayMode, PlannerDisplayModeOptions>): void;
/**
* Make sure configured our is between 0 and 23.
*/
protected _adjustHours(optionsMap: Record<PlannerDisplayMode, PlannerDisplayModeOptions>): void;
protected _renderDisplayModeOptions(): void;
protected _renderAvailableDisplayModes(): void;
protected _renderDisplayMode(): void;
protected _setViewRange(viewRange: DateRange | JsonDateRange): void;
protected _setDisplayMode(displayMode: PlannerDisplayMode): void;
protected _setAvailableDisplayModes(availableDisplayModes: PlannerDisplayMode[]): void;
protected _setSelectionRange(selectionRange: DateRange | JsonDateRange): void;
protected _setSelectedResources(selectedResources: PlannerResource[] | string[]): void;
protected _removeSelectedResources(): void;
protected _renderSelectedResources(): void;
protected _renderActivitySelectable(): void;
protected _renderRangeSelectable(): void;
protected _renderMultiSelect(): void;
protected _removeSelectors(): void;
protected _renderSelectionRange(): void;
protected _renderSelectionRangeInternal($startRow: JQuery, $lastRow: JQuery, colorizeScale: boolean): void;
protected _setSelectedActivity(selectedActivity: PlannerActivity | string): void;
protected _removeSelectedActivity(): void;
protected _renderSelectedActivity(): void;
protected _renderLabel(): void;
resourcesByIds(ids: string[]): PlannerResource[];
activityById(id: string): PlannerActivity;
resourceById(id: string): PlannerResource;
setDisplayMode(displayMode: PlannerDisplayMode): void;
layoutYearPanel(): void;
setYearPanelVisible(visible: boolean): void;
setViewRangeFrom(date: Date): void;
setViewRange(viewRange: DateRange): void;
selectRange(range: DateRange): void;
selectActivity(activity: PlannerActivity | string): void;
selectResources(resources: PlannerResource[] | PlannerResource): void;
/**
* Returns true if a deselection happened. False if the given resources were not selected at all.
*/
deselectResources(resources: PlannerResource[] | PlannerResource): boolean;
insertResources(resources: PlannerResourceModel[]): void;
deleteResources(resources: PlannerResource[]): void;
deleteAllResources(): void;
updateResources(resources: PlannerResourceModel[]): void;
}
export type PlannerDisplayMode = EnumObject<typeof Planner.DisplayMode>;
export type PlannerDirection = EnumObject<typeof Planner.Direction>;
export type PlannerResourceSelectionMode = EnumObject<typeof Planner.ResourceSelectionMode>;
export type PlannerMenuType = EnumObject<typeof Planner.MenuType>;
export interface PlannerActivityModel {
id: string;
beginTime: string | Date;
endTime: string | Date;
text?: string;
backgroundColor?: string;
foregroundColor?: string;
level?: number;
levelColor?: string;
tooltipText?: string;
cssClass?: string;
$activity?: JQuery;
}
export interface PlannerActivity extends PlannerActivityModel {
beginTime: Date;
endTime: Date;
}
export interface PlannerResourceModel {
id: string;
resourceCell: CellModel;
activities: PlannerActivityModel[];
$resource?: JQuery;
$cells?: JQuery;
}
export interface PlannerResource extends PlannerResourceModel {
activities: PlannerActivity[];
}
export interface PlannerDisplayModeOptions {
interval?: number;
firstHourOfDay?: number;
lastHourOfDay?: number;
labelPeriod?: number;
minSelectionIntervalCount?: number;
}
//# sourceMappingURL=Planner.d.ts.map