UNPKG

@eclipse-scout/core

Version:
252 lines 11.8 kB
/// <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