Some ignored filles was missing

This commit is contained in:
Janus C. H. Knudsen 2026-02-03 00:02:25 +01:00
parent 7db22245e2
commit fd5ab6bc0d
268 changed files with 31970 additions and 4 deletions

View file

@ -0,0 +1,74 @@
import { ICalendarEvent } from '../../../types/CalendarTypes';
/**
* AllDayDomReader - Centralized DOM reading utilities for all-day services
*
* STATELESS UTILITY - Pure functions for reading DOM state
* - Consistent selectors across all services
* - Unified computed style approach (not inline styles)
* - Type-safe return values
* - Single source of truth for DOM queries
*/
export declare class AllDayDomReader {
/**
* Get the all-day events container element
*/
static getAllDayContainer(): HTMLElement | null;
/**
* Get the calendar header element
*/
static getCalendarHeader(): HTMLElement | null;
/**
* Get the header spacer element
*/
static getHeaderSpacer(): HTMLElement | null;
/**
* Get all all-day event elements (excluding overflow indicators)
* Returns raw HTMLElements for DOM manipulation
*/
static getEventElements(): HTMLElement[];
/**
* Get all-day events as ICalendarEvent objects
* Returns parsed data for business logic
*/
static getEventsAsData(): ICalendarEvent[];
/**
* Get grid row from element using computed style
* Always uses computed style for consistency
*/
static getGridRow(element: HTMLElement): number;
/**
* Get grid column range from element using computed style
*/
static getGridColumnRange(element: HTMLElement): {
start: number;
end: number;
};
/**
* Get grid area from element using computed style
*/
static getGridArea(element: HTMLElement): string;
/**
* Calculate max row number from all events
* Uses computed styles for accurate reading
*/
static getMaxRowFromEvents(): number;
/**
* Check if all-day container is expanded
*/
static isExpanded(): boolean;
/**
* Get current all-day height from CSS variable
*/
static getCurrentHeight(): number;
/**
* Count events in specific column
*/
static countEventsInColumn(columnIndex: number): number;
/**
* Get current layouts from DOM elements
* Returns map of eventId layout info for comparison
*/
static getCurrentLayouts(): Map<string, {
gridArea: string;
}>;
}

View file

@ -0,0 +1,175 @@
/**
* AllDayDomReader - Centralized DOM reading utilities for all-day services
*
* STATELESS UTILITY - Pure functions for reading DOM state
* - Consistent selectors across all services
* - Unified computed style approach (not inline styles)
* - Type-safe return values
* - Single source of truth for DOM queries
*/
export class AllDayDomReader {
// ============================================
// CONTAINER GETTERS
// ============================================
/**
* Get the all-day events container element
*/
static getAllDayContainer() {
return document.querySelector('swp-calendar-header swp-allday-container');
}
/**
* Get the calendar header element
*/
static getCalendarHeader() {
return document.querySelector('swp-calendar-header');
}
/**
* Get the header spacer element
*/
static getHeaderSpacer() {
return document.querySelector('swp-header-spacer');
}
// ============================================
// EVENT ELEMENT GETTERS
// ============================================
/**
* Get all all-day event elements (excluding overflow indicators)
* Returns raw HTMLElements for DOM manipulation
*/
static getEventElements() {
const container = this.getAllDayContainer();
if (!container)
return [];
return Array.from(container.querySelectorAll('swp-allday-event:not(.max-event-indicator)'));
}
/**
* Get all-day events as ICalendarEvent objects
* Returns parsed data for business logic
*/
static getEventsAsData() {
const elements = this.getEventElements();
return elements
.map(element => {
const eventId = element.dataset.eventId;
const startStr = element.dataset.start;
const endStr = element.dataset.end;
// Validate required fields
if (!eventId || !startStr || !endStr) {
console.warn('AllDayDomReader: Invalid event data in DOM:', element);
return null;
}
const start = new Date(startStr);
const end = new Date(endStr);
if (isNaN(start.getTime()) || isNaN(end.getTime())) {
console.warn('AllDayDomReader: Invalid event dates:', { startStr, endStr });
return null;
}
return {
id: eventId,
title: element.dataset.title || '',
start,
end,
type: element.dataset.type || 'task',
allDay: true,
syncStatus: (element.dataset.syncStatus || 'synced')
};
})
.filter((event) => event !== null);
}
// ============================================
// GRID POSITION READERS
// ============================================
/**
* Get grid row from element using computed style
* Always uses computed style for consistency
*/
static getGridRow(element) {
const computedStyle = window.getComputedStyle(element);
return parseInt(computedStyle.gridRowStart) || 0;
}
/**
* Get grid column range from element using computed style
*/
static getGridColumnRange(element) {
const computedStyle = window.getComputedStyle(element);
return {
start: parseInt(computedStyle.gridColumnStart) || 0,
end: parseInt(computedStyle.gridColumnEnd) || 0
};
}
/**
* Get grid area from element using computed style
*/
static getGridArea(element) {
const computedStyle = window.getComputedStyle(element);
return computedStyle.gridArea;
}
/**
* Calculate max row number from all events
* Uses computed styles for accurate reading
*/
static getMaxRowFromEvents() {
const events = this.getEventElements();
if (events.length === 0)
return 0;
let maxRow = 0;
events.forEach(event => {
const row = this.getGridRow(event);
maxRow = Math.max(maxRow, row);
});
return maxRow;
}
// ============================================
// STATE READERS
// ============================================
/**
* Check if all-day container is expanded
*/
static isExpanded() {
const container = this.getAllDayContainer();
return container?.classList.contains('expanded') || false;
}
/**
* Get current all-day height from CSS variable
*/
static getCurrentHeight() {
const root = document.documentElement;
const heightStr = root.style.getPropertyValue('--all-day-row-height') || '0px';
return parseInt(heightStr) || 0;
}
/**
* Count events in specific column
*/
static countEventsInColumn(columnIndex) {
const events = this.getEventElements();
let count = 0;
events.forEach((event) => {
const { start, end } = this.getGridColumnRange(event);
if (start <= columnIndex && end > columnIndex) {
count++;
}
});
return count;
}
// ============================================
// LAYOUT READERS
// ============================================
/**
* Get current layouts from DOM elements
* Returns map of eventId layout info for comparison
*/
static getCurrentLayouts() {
const layoutsMap = new Map();
const events = this.getEventElements();
events.forEach(event => {
const eventId = event.dataset.eventId;
if (eventId) {
layoutsMap.set(eventId, {
gridArea: this.getGridArea(event)
});
}
});
return layoutsMap;
}
}
//# sourceMappingURL=AllDayDomReader.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"AllDayDomReader.js","sourceRoot":"","sources":["../../../../../src/features/all-day/utils/AllDayDomReader.ts"],"names":[],"mappings":"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"}