90 lines
No EOL
2.5 KiB
JavaScript
90 lines
No EOL
2.5 KiB
JavaScript
/**
|
|
* All-day event layout constants
|
|
*/
|
|
export const ALL_DAY_CONSTANTS = {
|
|
EVENT_HEIGHT: 22,
|
|
EVENT_GAP: 2,
|
|
CONTAINER_PADDING: 4,
|
|
MAX_COLLAPSED_ROWS: 4,
|
|
get SINGLE_ROW_HEIGHT() {
|
|
return this.EVENT_HEIGHT + this.EVENT_GAP; // 28px
|
|
}
|
|
};
|
|
/**
|
|
* Work week presets
|
|
*/
|
|
export const WORK_WEEK_PRESETS = {
|
|
'standard': {
|
|
id: 'standard',
|
|
workDays: [1, 2, 3, 4, 5],
|
|
totalDays: 5,
|
|
firstWorkDay: 1
|
|
},
|
|
'compressed': {
|
|
id: 'compressed',
|
|
workDays: [1, 2, 3, 4],
|
|
totalDays: 4,
|
|
firstWorkDay: 1
|
|
},
|
|
'midweek': {
|
|
id: 'midweek',
|
|
workDays: [3, 4, 5],
|
|
totalDays: 3,
|
|
firstWorkDay: 3
|
|
},
|
|
'weekend': {
|
|
id: 'weekend',
|
|
workDays: [6, 7],
|
|
totalDays: 2,
|
|
firstWorkDay: 6
|
|
},
|
|
'fullweek': {
|
|
id: 'fullweek',
|
|
workDays: [1, 2, 3, 4, 5, 6, 7],
|
|
totalDays: 7,
|
|
firstWorkDay: 1
|
|
}
|
|
};
|
|
/**
|
|
* Configuration - DTO container for all configuration
|
|
* Pure data object loaded from JSON via ConfigManager
|
|
*/
|
|
export class Configuration {
|
|
constructor(config, gridSettings, dateViewSettings, timeFormatConfig, currentWorkWeek, selectedDate = new Date()) {
|
|
this.config = config;
|
|
this.gridSettings = gridSettings;
|
|
this.dateViewSettings = dateViewSettings;
|
|
this.timeFormatConfig = timeFormatConfig;
|
|
this.currentWorkWeek = currentWorkWeek;
|
|
this.selectedDate = selectedDate;
|
|
// Store as singleton instance for web components
|
|
Configuration._instance = this;
|
|
}
|
|
/**
|
|
* Get the current Configuration instance
|
|
* Used by web components that can't use dependency injection
|
|
*/
|
|
static getInstance() {
|
|
if (!Configuration._instance) {
|
|
throw new Error('Configuration has not been initialized. Call ConfigManager.load() first.');
|
|
}
|
|
return Configuration._instance;
|
|
}
|
|
// Helper methods
|
|
getWorkWeekSettings() {
|
|
return WORK_WEEK_PRESETS[this.currentWorkWeek] || WORK_WEEK_PRESETS['standard'];
|
|
}
|
|
setWorkWeek(workWeekId) {
|
|
if (WORK_WEEK_PRESETS[workWeekId]) {
|
|
this.currentWorkWeek = workWeekId;
|
|
this.dateViewSettings.weekDays = WORK_WEEK_PRESETS[workWeekId].totalDays;
|
|
}
|
|
}
|
|
setSelectedDate(date) {
|
|
this.selectedDate = date;
|
|
}
|
|
}
|
|
Configuration._instance = null;
|
|
// Backward compatibility alias
|
|
export { Configuration as CalendarConfig };
|
|
//# sourceMappingURL=CalendarConfig.js.map
|