98 lines
2.8 KiB
TypeScript
98 lines
2.8 KiB
TypeScript
import { ICalendarEvent } from '../types/CalendarTypes';
|
|
import { Configuration } from '../configurations/CalendarConfig';
|
|
import { DateService } from '../utils/DateService';
|
|
/**
|
|
* Base class for event elements
|
|
*/
|
|
export declare abstract class BaseSwpEventElement extends HTMLElement {
|
|
protected dateService: DateService;
|
|
protected config: Configuration;
|
|
constructor();
|
|
/**
|
|
* Create a clone for drag operations
|
|
* Must be implemented by subclasses
|
|
*/
|
|
abstract createClone(): HTMLElement;
|
|
get eventId(): string;
|
|
set eventId(value: string);
|
|
get start(): Date;
|
|
set start(value: Date);
|
|
get end(): Date;
|
|
set end(value: Date);
|
|
get title(): string;
|
|
set title(value: string);
|
|
get description(): string;
|
|
set description(value: string);
|
|
get type(): string;
|
|
set type(value: string);
|
|
}
|
|
/**
|
|
* Web Component for timed calendar events (Light DOM)
|
|
*/
|
|
export declare class SwpEventElement extends BaseSwpEventElement {
|
|
/**
|
|
* Observed attributes - changes trigger attributeChangedCallback
|
|
*/
|
|
static get observedAttributes(): string[];
|
|
/**
|
|
* Called when element is added to DOM
|
|
*/
|
|
connectedCallback(): void;
|
|
/**
|
|
* Called when observed attribute changes
|
|
*/
|
|
attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
|
|
/**
|
|
* Update event position during drag
|
|
* @param columnDate - The date of the column
|
|
* @param snappedY - The Y position in pixels
|
|
*/
|
|
updatePosition(columnDate: Date, snappedY: number): void;
|
|
/**
|
|
* Update event height during resize
|
|
* @param newHeight - The new height in pixels
|
|
*/
|
|
updateHeight(newHeight: number): void;
|
|
/**
|
|
* Create a clone for drag operations
|
|
*/
|
|
createClone(): SwpEventElement;
|
|
/**
|
|
* Render inner HTML structure
|
|
*/
|
|
private render;
|
|
/**
|
|
* Update time display when attributes change
|
|
*/
|
|
private updateDisplay;
|
|
/**
|
|
* Calculate start/end minutes from Y position
|
|
*/
|
|
private calculateTimesFromPosition;
|
|
/**
|
|
* Create SwpEventElement from ICalendarEvent
|
|
*/
|
|
static fromCalendarEvent(event: ICalendarEvent): SwpEventElement;
|
|
/**
|
|
* Extract ICalendarEvent from DOM element
|
|
*/
|
|
static extractCalendarEventFromElement(element: HTMLElement): ICalendarEvent;
|
|
}
|
|
/**
|
|
* Web Component for all-day calendar events
|
|
*/
|
|
export declare class SwpAllDayEventElement extends BaseSwpEventElement {
|
|
connectedCallback(): void;
|
|
/**
|
|
* Create a clone for drag operations
|
|
*/
|
|
createClone(): SwpAllDayEventElement;
|
|
/**
|
|
* Apply CSS grid positioning
|
|
*/
|
|
applyGridPositioning(row: number, startColumn: number, endColumn: number): void;
|
|
/**
|
|
* Create from ICalendarEvent
|
|
*/
|
|
static fromCalendarEvent(event: ICalendarEvent): SwpAllDayEventElement;
|
|
}
|