diff --git a/src/managers/AllDayManager.ts b/src/managers/AllDayManager.ts
index f80e891..74e770f 100644
--- a/src/managers/AllDayManager.ts
+++ b/src/managers/AllDayManager.ts
@@ -462,7 +462,10 @@ export class AllDayManager {
element.style.gridColumn = `${layout.startColumn} / ${layout.endColumn + 1}`;
if (layout.row > ALL_DAY_CONSTANTS.MAX_COLLAPSED_ROWS)
- element.classList.add('max-event-overflow-hide');
+ if (!this.isExpanded)
+ element.classList.add('max-event-overflow-hide');
+ else
+ element.classList.add('max-event-overflow-show');
// Remove transition class after animation
setTimeout(() => element.classList.remove('transitioning'), 200);
@@ -539,62 +542,62 @@ export class AllDayManager {
* Count number of events in a specific column using ColumnBounds
*/
private countEventsInColumn(columnBounds: ColumnBounds): number {
- let columnIndex = columnBounds.index;
- let count = 0;
+ let columnIndex = columnBounds.index;
+ let count = 0;
- this.currentLayouts.forEach((layout) => {
- // Check if event spans this column
- if (layout.startColumn <= columnIndex && layout.endColumn >= columnIndex) {
- count++;
- }
- });
- return count;
- }
+ this.currentLayouts.forEach((layout) => {
+ // Check if event spans this column
+ if (layout.startColumn <= columnIndex && layout.endColumn >= columnIndex) {
+ count++;
+ }
+ });
+ return count;
+ }
/**
* Update overflow indicators for collapsed state
*/
private updateOverflowIndicators(): void {
- const container = this.getAllDayContainer();
- if(!container) return;
+ const container = this.getAllDayContainer();
+ if (!container) return;
- // Create overflow indicators for each column that needs them
- let columns = ColumnDetectionUtils.getColumns();
+ // Create overflow indicators for each column that needs them
+ let columns = ColumnDetectionUtils.getColumns();
- columns.forEach((columnBounds) => {
- let totalEventsInColumn = this.countEventsInColumn(columnBounds);
- let overflowCount = totalEventsInColumn - ALL_DAY_CONSTANTS.MAX_COLLAPSED_ROWS
+ columns.forEach((columnBounds) => {
+ let totalEventsInColumn = this.countEventsInColumn(columnBounds);
+ let overflowCount = totalEventsInColumn - ALL_DAY_CONSTANTS.MAX_COLLAPSED_ROWS
- if (overflowCount > 0) {
- // Create new overflow indicator element
- let overflowElement = document.createElement('swp-event');
- overflowElement.className = 'max-event-indicator';
- overflowElement.style.gridRow = ALL_DAY_CONSTANTS.MAX_COLLAPSED_ROWS.toString();
- overflowElement.style.gridColumn = columnBounds.index.toString();
- overflowElement.innerHTML = `+${overflowCount + 1} more`;
- overflowElement.onclick = (e) => {
- e.stopPropagation();
- this.toggleExpanded();
- };
+ if (overflowCount > 0) {
+ // Create new overflow indicator element
+ let overflowElement = document.createElement('swp-event');
+ overflowElement.className = 'max-event-indicator';
+ overflowElement.style.gridRow = ALL_DAY_CONSTANTS.MAX_COLLAPSED_ROWS.toString();
+ overflowElement.style.gridColumn = columnBounds.index.toString();
+ overflowElement.innerHTML = `+${overflowCount + 1} more`;
+ overflowElement.onclick = (e) => {
+ e.stopPropagation();
+ this.toggleExpanded();
+ };
- container.appendChild(overflowElement);
- }
- });
- }
+ container.appendChild(overflowElement);
+ }
+ });
+ }
/**
* Clear overflow indicators and restore normal state
*/
private clearOverflowIndicators(): void {
- const container = this.getAllDayContainer();
- if(!container) return;
+ const container = this.getAllDayContainer();
+ if (!container) return;
- // Remove all overflow indicator elements
- container.querySelectorAll('.max-event-indicator').forEach((element) => {
- element.remove();
- });
+ // Remove all overflow indicator elements
+ container.querySelectorAll('.max-event-indicator').forEach((element) => {
+ element.remove();
+ });
- }
+ }
}
\ No newline at end of file
diff --git a/wwwroot/css/calendar-layout-css.css b/wwwroot/css/calendar-layout-css.css
index 61d1ffc..e6c9fd0 100644
--- a/wwwroot/css/calendar-layout-css.css
+++ b/wwwroot/css/calendar-layout-css.css
@@ -379,11 +379,13 @@ swp-allday-container swp-event.max-event-indicator span {
}
swp-allday-container swp-event.max-event-overflow-show {
- display: block;
+ opacity: 1;
+ transition: opacity 0.3s ease-in-out;
}
swp-allday-container swp-event.max-event-overflow-hide {
- display: none;
+ opacity: 0;
+ transition: opacity 0.3s ease-in-out;
}
/* Hide time element for all-day styled events */