@eui/eds 22.0.0-alpha.18 → 22.0.0-alpha.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/changelog.html +15 -0
- package/docs/components/EdsCalendarDay.html +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/documentation.json +1 -1
- package/docs/llms.txt +1 -1
- package/docs/properties.html +1 -1
- package/fesm2022/eui-eds-eds-calendar.mjs +2 -2
- package/fesm2022/eui-eds-eds-calendar.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -23857,7 +23857,7 @@
|
|
|
23857
23857
|
}
|
|
23858
23858
|
]
|
|
23859
23859
|
},
|
|
23860
|
-
"templateData": "@if (dayOfTheMonth()) {\n <div class=\"eds-calendar-day__header\">\n <button edsButton\n [edsButtonRounded]=\"isSelected()\"\n [edsPrimary]=\"isSelected()\"\n [edsNeutral]=\"!isSelected()\">\n {{ dayOfTheMonth() }}\n </button>\n @if (renderNewEvent()) {\n <button edsIconButton color=\"info\" size=\"s\" icon=\"plus:core\" ariaLabel=\"Add new event\" (click)=\"addNewItemClicked()\"></button>\n }\n </div>\n}\n\n<div class=\"eds-calendar-day__events\">\n @for (event of events(); track event.id; let idx = $index, l = $last) {\n @if (idx < maxNumberOfEventsToShow()) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type()) {\n <eds-tag [color]=\"tagColor(event.type())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n\n @if (l) {\n @if (events().length > maxNumberOfEventsToShow()) {\n <span class=\"eds-calendar-day__show-more\" (click)=\"showMoreEvents($event)\">\n +{{ events().length - maxNumberOfEventsToShow() }} more\n </span>\n }\n }\n }\n</div>\n\n<eds-popover #popover [title]=\"'Events'\">\n <div class=\"eds-calendar-day__popover-events\">\n @for (event of events(); track event.id) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type()) {\n <eds-tag [color]=\"tagColor(event.type())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n </div>\n</eds-popover>\n"
|
|
23860
|
+
"templateData": "@if (dayOfTheMonth()) {\n <div class=\"eds-calendar-day__header\">\n <button edsButton\n [edsButtonRounded]=\"isSelected()\"\n [edsPrimary]=\"isSelected()\"\n [edsNeutral]=\"!isSelected()\">\n {{ dayOfTheMonth() }}\n </button>\n @if (renderNewEvent()) {\n <button edsIconButton color=\"info\" size=\"s\" icon=\"plus:core\" ariaLabel=\"Add new event\" (click)=\"addNewItemClicked()\"></button>\n }\n </div>\n}\n\n<div class=\"eds-calendar-day__events\">\n @for (event of events(); track event.id; let idx = $index, l = $last) {\n @if (idx < maxNumberOfEventsToShow()) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type?.()) {\n <eds-tag [color]=\"tagColor(event.type?.())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n\n @if (l) {\n @if (events().length > maxNumberOfEventsToShow()) {\n <span class=\"eds-calendar-day__show-more\" (click)=\"showMoreEvents($event)\">\n +{{ events().length - maxNumberOfEventsToShow() }} more\n </span>\n }\n }\n }\n</div>\n\n<eds-popover #popover [title]=\"'Events'\">\n <div class=\"eds-calendar-day__popover-events\">\n @for (event of events(); track event.id) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type?.()) {\n <eds-tag [color]=\"tagColor(event.type?.())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n </div>\n</eds-popover>\n"
|
|
23861
23861
|
},
|
|
23862
23862
|
{
|
|
23863
23863
|
"name": "EdsCalendarHeader",
|
package/docs/llms.txt
CHANGED
package/docs/properties.html
CHANGED
|
@@ -413,7 +413,7 @@ class EdsCalendarDay {
|
|
|
413
413
|
}
|
|
414
414
|
}
|
|
415
415
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsCalendarDay, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
416
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsCalendarDay, isStandalone: true, selector: "eds-calendar-day", inputs: { edsDisabled: { classPropertyName: "edsDisabled", publicName: "edsDisabled", isSignal: true, isRequired: false, transformFunction: null }, dayOfTheMonth: { classPropertyName: "dayOfTheMonth", publicName: "dayOfTheMonth", isSignal: true, isRequired: false, transformFunction: null }, maxNumberOfEventsToShow: { classPropertyName: "maxNumberOfEventsToShow", publicName: "maxNumberOfEventsToShow", isSignal: true, isRequired: false, transformFunction: null }, events: { classPropertyName: "events", publicName: "events", isSignal: true, isRequired: false, transformFunction: null }, eventTemplate: { classPropertyName: "eventTemplate", publicName: "eventTemplate", isSignal: true, isRequired: false, transformFunction: null }, isSelected: { classPropertyName: "isSelected", publicName: "isSelected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { addNewItemEvent: "addNewItemEvent" }, host: { listeners: { "mouseenter": "onMouseOver()", "mouseleave": "onMouseOut()" }, properties: { "class": "hostClasses()" } }, queries: [{ propertyName: "eventTemplateDef", first: true, predicate: EdsCalendarEventCellDef, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (dayOfTheMonth()) {\n <div class=\"eds-calendar-day__header\">\n <button edsButton\n [edsButtonRounded]=\"isSelected()\"\n [edsPrimary]=\"isSelected()\"\n [edsNeutral]=\"!isSelected()\">\n {{ dayOfTheMonth() }}\n </button>\n @if (renderNewEvent()) {\n <button edsIconButton color=\"info\" size=\"s\" icon=\"plus:core\" ariaLabel=\"Add new event\" (click)=\"addNewItemClicked()\"></button>\n }\n </div>\n}\n\n<div class=\"eds-calendar-day__events\">\n @for (event of events(); track event.id; let idx = $index, l = $last) {\n @if (idx < maxNumberOfEventsToShow()) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type()) {\n <eds-tag [color]=\"tagColor(event.type())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n\n @if (l) {\n @if (events().length > maxNumberOfEventsToShow()) {\n <span class=\"eds-calendar-day__show-more\" (click)=\"showMoreEvents($event)\">\n +{{ events().length - maxNumberOfEventsToShow() }} more\n </span>\n }\n }\n }\n</div>\n\n<eds-popover #popover [title]=\"'Events'\">\n <div class=\"eds-calendar-day__popover-events\">\n @for (event of events(); track event.id) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type()) {\n <eds-tag [color]=\"tagColor(event.type())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n </div>\n</eds-popover>\n", styles: [".eui-21 :host{height:8rem;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:var(--eds-sp-2xs);overflow:hidden;width:100%;padding:var(--eds-sp-xs)}.eui-21 :host.eds-calendar-day--disabled{opacity:.5;pointer-events:none}.eui-21 :host .eds-calendar-day__header{display:flex;flex-direction:row;justify-content:space-between;width:100%}.eui-21 :host .eds-calendar-day__show-more{cursor:pointer;font:var(--eds-f-paragraph-xs);color:var(--eds-c-foreground-subtle)}.eui-21 :host .eds-calendar-day__show-more:hover{text-decoration:underline}.eui-21 :host .eds-calendar-day__events{display:flex;flex-direction:column;align-items:flex-start;gap:var(--eds-sp-2xs);margin-top:auto}.eui-21 :host .eds-calendar-day__popover-events{display:flex;flex-direction:column;align-items:flex-start;gap:var(--eds-sp-xs)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.EdsButton, selector: "button[edsButton]", inputs: ["e2eAttr", "id", "edsDisabled", "edsBlockButton", "edsIconButton", "edsAvatarButton", "edsLineWrap", "edsButtonPrimary", "edsButtonSecondary", "edsButtonTertiary", "edsButtonRounded", "edsTypeVariant", "isChecked"] }, { kind: "component", type: i1.EdsIconButton, selector: "button[edsIconButton]", inputs: ["icon", "color", "size", "ariaLabel", "rounded", "disabled"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EdsTag, selector: "eds-tag, span[edsTag]", inputs: ["color", "size", "e2eAttr", "aria-label"] }, { kind: "component", type: i4.EdsPopover, selector: "eds-popover", inputs: ["title", "position", "width", "hasBackDrop", "hasCloseButton", "isDismissable", "hasNoContentPadding"], outputs: ["outsideClick", "popoverOpen", "popoverClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
416
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsCalendarDay, isStandalone: true, selector: "eds-calendar-day", inputs: { edsDisabled: { classPropertyName: "edsDisabled", publicName: "edsDisabled", isSignal: true, isRequired: false, transformFunction: null }, dayOfTheMonth: { classPropertyName: "dayOfTheMonth", publicName: "dayOfTheMonth", isSignal: true, isRequired: false, transformFunction: null }, maxNumberOfEventsToShow: { classPropertyName: "maxNumberOfEventsToShow", publicName: "maxNumberOfEventsToShow", isSignal: true, isRequired: false, transformFunction: null }, events: { classPropertyName: "events", publicName: "events", isSignal: true, isRequired: false, transformFunction: null }, eventTemplate: { classPropertyName: "eventTemplate", publicName: "eventTemplate", isSignal: true, isRequired: false, transformFunction: null }, isSelected: { classPropertyName: "isSelected", publicName: "isSelected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { addNewItemEvent: "addNewItemEvent" }, host: { listeners: { "mouseenter": "onMouseOver()", "mouseleave": "onMouseOut()" }, properties: { "class": "hostClasses()" } }, queries: [{ propertyName: "eventTemplateDef", first: true, predicate: EdsCalendarEventCellDef, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (dayOfTheMonth()) {\n <div class=\"eds-calendar-day__header\">\n <button edsButton\n [edsButtonRounded]=\"isSelected()\"\n [edsPrimary]=\"isSelected()\"\n [edsNeutral]=\"!isSelected()\">\n {{ dayOfTheMonth() }}\n </button>\n @if (renderNewEvent()) {\n <button edsIconButton color=\"info\" size=\"s\" icon=\"plus:core\" ariaLabel=\"Add new event\" (click)=\"addNewItemClicked()\"></button>\n }\n </div>\n}\n\n<div class=\"eds-calendar-day__events\">\n @for (event of events(); track event.id; let idx = $index, l = $last) {\n @if (idx < maxNumberOfEventsToShow()) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type?.()) {\n <eds-tag [color]=\"tagColor(event.type?.())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n\n @if (l) {\n @if (events().length > maxNumberOfEventsToShow()) {\n <span class=\"eds-calendar-day__show-more\" (click)=\"showMoreEvents($event)\">\n +{{ events().length - maxNumberOfEventsToShow() }} more\n </span>\n }\n }\n }\n</div>\n\n<eds-popover #popover [title]=\"'Events'\">\n <div class=\"eds-calendar-day__popover-events\">\n @for (event of events(); track event.id) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type?.()) {\n <eds-tag [color]=\"tagColor(event.type?.())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n </div>\n</eds-popover>\n", styles: [".eui-21 :host{height:8rem;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:var(--eds-sp-2xs);overflow:hidden;width:100%;padding:var(--eds-sp-xs)}.eui-21 :host.eds-calendar-day--disabled{opacity:.5;pointer-events:none}.eui-21 :host .eds-calendar-day__header{display:flex;flex-direction:row;justify-content:space-between;width:100%}.eui-21 :host .eds-calendar-day__show-more{cursor:pointer;font:var(--eds-f-paragraph-xs);color:var(--eds-c-foreground-subtle)}.eui-21 :host .eds-calendar-day__show-more:hover{text-decoration:underline}.eui-21 :host .eds-calendar-day__events{display:flex;flex-direction:column;align-items:flex-start;gap:var(--eds-sp-2xs);margin-top:auto}.eui-21 :host .eds-calendar-day__popover-events{display:flex;flex-direction:column;align-items:flex-start;gap:var(--eds-sp-xs)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.EdsButton, selector: "button[edsButton]", inputs: ["e2eAttr", "id", "edsDisabled", "edsBlockButton", "edsIconButton", "edsAvatarButton", "edsLineWrap", "edsButtonPrimary", "edsButtonSecondary", "edsButtonTertiary", "edsButtonRounded", "edsTypeVariant", "isChecked"] }, { kind: "component", type: i1.EdsIconButton, selector: "button[edsIconButton]", inputs: ["icon", "color", "size", "ariaLabel", "rounded", "disabled"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EdsTag, selector: "eds-tag, span[edsTag]", inputs: ["color", "size", "e2eAttr", "aria-label"] }, { kind: "component", type: i4.EdsPopover, selector: "eds-popover", inputs: ["title", "position", "width", "hasBackDrop", "hasCloseButton", "isDismissable", "hasNoContentPadding"], outputs: ["outsideClick", "popoverOpen", "popoverClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
417
417
|
}
|
|
418
418
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsCalendarDay, decorators: [{
|
|
419
419
|
type: Component,
|
|
@@ -428,7 +428,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
428
428
|
'[class]': 'hostClasses()',
|
|
429
429
|
'(mouseenter)': 'onMouseOver()',
|
|
430
430
|
'(mouseleave)': 'onMouseOut()',
|
|
431
|
-
}, template: "@if (dayOfTheMonth()) {\n <div class=\"eds-calendar-day__header\">\n <button edsButton\n [edsButtonRounded]=\"isSelected()\"\n [edsPrimary]=\"isSelected()\"\n [edsNeutral]=\"!isSelected()\">\n {{ dayOfTheMonth() }}\n </button>\n @if (renderNewEvent()) {\n <button edsIconButton color=\"info\" size=\"s\" icon=\"plus:core\" ariaLabel=\"Add new event\" (click)=\"addNewItemClicked()\"></button>\n }\n </div>\n}\n\n<div class=\"eds-calendar-day__events\">\n @for (event of events(); track event.id; let idx = $index, l = $last) {\n @if (idx < maxNumberOfEventsToShow()) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type()) {\n <eds-tag [color]=\"tagColor(event.type())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n\n @if (l) {\n @if (events().length > maxNumberOfEventsToShow()) {\n <span class=\"eds-calendar-day__show-more\" (click)=\"showMoreEvents($event)\">\n +{{ events().length - maxNumberOfEventsToShow() }} more\n </span>\n }\n }\n }\n</div>\n\n<eds-popover #popover [title]=\"'Events'\">\n <div class=\"eds-calendar-day__popover-events\">\n @for (event of events(); track event.id) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type()) {\n <eds-tag [color]=\"tagColor(event.type())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n </div>\n</eds-popover>\n", styles: [".eui-21 :host{height:8rem;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:var(--eds-sp-2xs);overflow:hidden;width:100%;padding:var(--eds-sp-xs)}.eui-21 :host.eds-calendar-day--disabled{opacity:.5;pointer-events:none}.eui-21 :host .eds-calendar-day__header{display:flex;flex-direction:row;justify-content:space-between;width:100%}.eui-21 :host .eds-calendar-day__show-more{cursor:pointer;font:var(--eds-f-paragraph-xs);color:var(--eds-c-foreground-subtle)}.eui-21 :host .eds-calendar-day__show-more:hover{text-decoration:underline}.eui-21 :host .eds-calendar-day__events{display:flex;flex-direction:column;align-items:flex-start;gap:var(--eds-sp-2xs);margin-top:auto}.eui-21 :host .eds-calendar-day__popover-events{display:flex;flex-direction:column;align-items:flex-start;gap:var(--eds-sp-xs)}\n"] }]
|
|
431
|
+
}, template: "@if (dayOfTheMonth()) {\n <div class=\"eds-calendar-day__header\">\n <button edsButton\n [edsButtonRounded]=\"isSelected()\"\n [edsPrimary]=\"isSelected()\"\n [edsNeutral]=\"!isSelected()\">\n {{ dayOfTheMonth() }}\n </button>\n @if (renderNewEvent()) {\n <button edsIconButton color=\"info\" size=\"s\" icon=\"plus:core\" ariaLabel=\"Add new event\" (click)=\"addNewItemClicked()\"></button>\n }\n </div>\n}\n\n<div class=\"eds-calendar-day__events\">\n @for (event of events(); track event.id; let idx = $index, l = $last) {\n @if (idx < maxNumberOfEventsToShow()) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type?.()) {\n <eds-tag [color]=\"tagColor(event.type?.())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n\n @if (l) {\n @if (events().length > maxNumberOfEventsToShow()) {\n <span class=\"eds-calendar-day__show-more\" (click)=\"showMoreEvents($event)\">\n +{{ events().length - maxNumberOfEventsToShow() }} more\n </span>\n }\n }\n }\n</div>\n\n<eds-popover #popover [title]=\"'Events'\">\n <div class=\"eds-calendar-day__popover-events\">\n @for (event of events(); track event.id) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type?.()) {\n <eds-tag [color]=\"tagColor(event.type?.())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n </div>\n</eds-popover>\n", styles: [".eui-21 :host{height:8rem;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:var(--eds-sp-2xs);overflow:hidden;width:100%;padding:var(--eds-sp-xs)}.eui-21 :host.eds-calendar-day--disabled{opacity:.5;pointer-events:none}.eui-21 :host .eds-calendar-day__header{display:flex;flex-direction:row;justify-content:space-between;width:100%}.eui-21 :host .eds-calendar-day__show-more{cursor:pointer;font:var(--eds-f-paragraph-xs);color:var(--eds-c-foreground-subtle)}.eui-21 :host .eds-calendar-day__show-more:hover{text-decoration:underline}.eui-21 :host .eds-calendar-day__events{display:flex;flex-direction:column;align-items:flex-start;gap:var(--eds-sp-2xs);margin-top:auto}.eui-21 :host .eds-calendar-day__popover-events{display:flex;flex-direction:column;align-items:flex-start;gap:var(--eds-sp-xs)}\n"] }]
|
|
432
432
|
}], propDecorators: { edsDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "edsDisabled", required: false }] }], dayOfTheMonth: [{ type: i0.Input, args: [{ isSignal: true, alias: "dayOfTheMonth", required: false }] }], maxNumberOfEventsToShow: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxNumberOfEventsToShow", required: false }] }], events: [{ type: i0.Input, args: [{ isSignal: true, alias: "events", required: false }] }], eventTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "eventTemplate", required: false }] }], isSelected: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSelected", required: false }] }], addNewItemEvent: [{ type: i0.Output, args: ["addNewItemEvent"] }], popover: [{ type: i0.ViewChild, args: ['popover', { isSignal: true }] }], eventTemplateDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EdsCalendarEventCellDef), { ...{ read: TemplateRef }, isSignal: true }] }] } });
|
|
433
433
|
|
|
434
434
|
class EdsCalendarMonthly {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-eds-eds-calendar.mjs","sources":["../../eds-calendar/eds-calendar.ts","../../eds-calendar/eds-calendar.html","../../eds-calendar/eds-calendar.models.ts","../../eds-calendar/eds-calendar.utils.ts","../../eds-calendar/eds-calendar-header.ts","../../eds-calendar/eds-calendar-header.html","../../eds-calendar/eds-calendar-templates.directive.ts","../../eds-calendar/eds-calendar-day.ts","../../eds-calendar/eds-calendar-day.html","../../eds-calendar/eds-calendar-monthly.ts","../../eds-calendar/eds-calendar-monthly.html","../../eds-calendar/eds-calendar-weekly-day-header.ts","../../eds-calendar/eds-calendar-weekly-day-content.ts","../../eds-calendar/eds-calendar-weekly-day-content.html","../../eds-calendar/eds-calendar-weekly.ts","../../eds-calendar/eds-calendar-weekly.html","../../eds-calendar/eds-calendar-weekly-day-header-actions.ts","../../eds-calendar/eds-calendar-weekly-day-header-actions.html","../../eds-calendar/index.ts","../../eds-calendar/eui-eds-eds-calendar.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'eds-calendar',\n templateUrl: './eds-calendar.html',\n styleUrl: './eds-calendar.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'eds-calendar',\n '[attr.data-e2e]': '\"eds-calendar\"',\n },\n})\nexport class EdsCalendar {}\n","<ng-content select=\"eds-calendar-header\" />\n<ng-content select=\"eds-calendar-monthly\" />\n<ng-content select=\"eds-calendar-weekly\" />\n","import { Signal, WritableSignal } from '@angular/core';\n\nexport const EdsCalendarDayOfWeek = {\n MONDAY: 0,\n TUESDAY: 1,\n WEDNESDAY: 2,\n THURSDAY: 3,\n FRIDAY: 4,\n SATURDAY: 5,\n SUNDAY: 6,\n} as const;\n\nexport interface EdsCalendarDayHeaderActionOption {\n label: string;\n callback: (e: MouseEvent | KeyboardEvent, day?: Date) => void;\n id: string;\n}\n\nexport interface EdsCalendarDayData {\n id: number;\n date: Date;\n disabled?: boolean;\n isToday?: boolean;\n isWeekend?: boolean;\n metadata: Signal<EdsCalendarEvent[]>;\n}\n\nexport interface EdsCalendarEvent {\n id: string;\n date: WritableSignal<Date>;\n label: WritableSignal<string>;\n subLabel?: WritableSignal<string>;\n type?: WritableSignal<string>;\n}\n\nexport enum EdsCalendarNavigationDirection {\n Previous = 'previous',\n Next = 'next',\n}\n\nexport interface EdsCalendarNavigationEvent {\n direction: EdsCalendarNavigationDirection;\n current: Date;\n new: Date;\n mode: EdsCalendarMode;\n}\n\nexport enum EdsCalendarMode {\n Monthly = 'monthly',\n Weekly = 'weekly',\n Daily = 'daily',\n}\n\nexport interface EdsCalendarHeaderContext {\n currentDate: Date;\n mode: EdsCalendarMode;\n previous: () => void;\n next: () => void;\n cbToday: () => void;\n formattedDate: string;\n isToday: boolean;\n}\n\nexport interface EdsCalendarDayCell {\n day: number;\n month: number;\n year: number;\n isCurrentMonth: boolean;\n isToday?: boolean;\n isFuture?: boolean;\n isPast?: boolean;\n isWeekend?: boolean;\n dayOfWeek: number;\n dateString: string;\n weekNumber?: number;\n isFirstDayOfMonth?: boolean;\n isLastDayOfMonth?: boolean;\n isDisabled?: boolean;\n events?: EdsCalendarEvent[];\n}\n\nexport interface EdsCalendarMonthlyOptions {\n year?: number;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n emptyValue?: any;\n fillPreviousMonth?: boolean;\n fillNextMonth?: boolean;\n includeMetadata?: boolean;\n includeToday?: boolean;\n includeTemporalFlags?: boolean;\n includeWeekends?: boolean;\n includeWeekNumbers?: boolean;\n weekendDays?: number[];\n}\n\nexport enum EdsCalendarEventType {\n primary = 'primary',\n success = 'success',\n warning = 'warning',\n critical = 'critical',\n info = 'info',\n}\n","import { EdsCalendarDayOfWeek } from './eds-calendar.models';\n\nconst DayNameMap: { [s: string]: number } = {\n monday: EdsCalendarDayOfWeek.MONDAY,\n mon: EdsCalendarDayOfWeek.MONDAY,\n tuesday: EdsCalendarDayOfWeek.TUESDAY,\n tue: EdsCalendarDayOfWeek.TUESDAY,\n wednesday: EdsCalendarDayOfWeek.WEDNESDAY,\n wed: EdsCalendarDayOfWeek.WEDNESDAY,\n thursday: EdsCalendarDayOfWeek.THURSDAY,\n thu: EdsCalendarDayOfWeek.THURSDAY,\n friday: EdsCalendarDayOfWeek.FRIDAY,\n fri: EdsCalendarDayOfWeek.FRIDAY,\n saturday: EdsCalendarDayOfWeek.SATURDAY,\n sat: EdsCalendarDayOfWeek.SATURDAY,\n sunday: EdsCalendarDayOfWeek.SUNDAY,\n sun: EdsCalendarDayOfWeek.SUNDAY,\n};\n\n/**\n * Transforms a starting day input (string name or number) into an EdsCalendarDayOfWeek number.\n * Shared between EdsCalendarHeader and EdsCalendarMonthly.\n */\nexport function parseStartingDay(startingDay: string | number): number {\n if (typeof startingDay === 'number' || /^\\d+$/.test(String(startingDay))) {\n const numValue = typeof startingDay === 'string' ? parseInt(startingDay, 10) : startingDay;\n if (numValue >= 0 && numValue <= 6) {\n return numValue;\n }\n throw new Error(`Invalid starting day number: ${numValue}. Must be 0-6.`);\n }\n\n if (typeof startingDay === 'string') {\n const normalized = startingDay.toLowerCase().trim();\n if (normalized in DayNameMap) {\n return DayNameMap[normalized];\n }\n throw new Error(`Invalid starting day: \"${startingDay}\". Use day name or abbreviation.`);\n }\n\n throw new Error('Starting day must be a string (day name) or number (0-6).');\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n output,\n TemplateRef,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { LocaleService } from '@eui/core';\nimport {\n EdsCalendarNavigationEvent,\n EdsCalendarHeaderContext,\n EdsCalendarMode,\n EdsCalendarNavigationDirection,\n EdsCalendarDayOfWeek,\n} from './eds-calendar.models';\nimport { parseStartingDay } from './eds-calendar.utils';\nimport { EDS_ICON_BUTTON } from '@eui/eds/eds-icon-button';\nimport { EDS_BUTTON } from '@eui/eds/eds-button';\nimport { NumberInput, BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n selector: 'eds-calendar-header',\n templateUrl: './eds-calendar-header.html',\n styleUrl: './eds-calendar-header.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n ...EDS_ICON_BUTTON,\n ...EDS_BUTTON,\n ],\n host: {\n class: 'eds-calendar-header',\n },\n})\nexport class EdsCalendarHeader {\n /**\n * Determines whether weekends are included in the week view.\n */\n containWeekends = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n /**\n * Format options for displaying the date.\n */\n dateFormatOptions = input<Intl.DateTimeFormatOptions | null>(null);\n /**\n * The mode of the calendar header. This can be 'monthly', 'weekly', or 'daily'.\n */\n mode = input<EdsCalendarMode>(EdsCalendarMode.Monthly);\n /**\n * The currently selected date.\n */\n currentDate = model.required<Date>();\n /**\n * An optional sub-label to display below the main date label.\n */\n subLabel = input<string>('');\n /**\n * Determines whether the \"Today\" button is displayed.\n */\n showTodayButton = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n /**\n * Determines whether the navigation buttons (previous/next) are displayed.\n */\n showNavigationButtons = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n /**\n * Starting day of the week (0=Monday, 1=Tuesday, ..., 6=Sunday)\n */\n startingDay = input<number, NumberInput>(EdsCalendarDayOfWeek.MONDAY, { transform: parseStartingDay });\n /**\n * A custom template for the header.\n */\n customTemplate = input<TemplateRef<EdsCalendarHeaderContext> | null>(null);\n /**\n * Emits when the navigation buttons are clicked (previous/next).\n */\n navigationClicked = output<EdsCalendarNavigationEvent>();\n /**\n * Emits when the \"Today\" button is clicked.\n */\n todayClicked = output<Date>();\n /**\n * True if the current date is today.\n */\n isCurrentDateToday = computed(() => {\n const current = this.currentDate();\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n if (this.mode() === EdsCalendarMode.Daily) {\n return current.getDate() === today.getDate() &&\n current.getMonth() === today.getMonth() &&\n current.getFullYear() === today.getFullYear();\n } else if (this.mode() === EdsCalendarMode.Weekly) {\n const { start, end } = this.getWeekRange(current, this.startingDay());\n const compareDate = new Date(today);\n const startDate = new Date(start);\n const endDate = new Date(end);\n startDate.setHours(0, 0, 0, 0);\n endDate.setHours(23, 59, 59, 999);\n return compareDate >= startDate && compareDate <= endDate;\n } else {\n return current.getMonth() === today.getMonth() &&\n current.getFullYear() === today.getFullYear();\n }\n });\n /**\n * Formatted date string for display in the header.\n */\n formattedDate = computed(() => {\n const options: Intl.DateTimeFormatOptions = this.formattedOptions();\n\n if (this.mode() === EdsCalendarMode.Monthly) {\n const locale = this.locale().id;\n return this.currentDate().toLocaleDateString(locale, options);\n } else if (this.mode() === EdsCalendarMode.Weekly) {\n const { start, end } = this.getWeekRange(this.currentDate(), this.startingDay());\n const locale = this.locale().id;\n const startStr = start.toLocaleDateString(locale, options);\n const endStr = end.toLocaleDateString(locale, options);\n return `${startStr} - ${endStr}`;\n } else if (this.mode() === EdsCalendarMode.Daily) {\n const date = this.currentDate();\n const locale = this.locale().id;\n return date.toLocaleDateString(locale, options);\n }\n return '';\n });\n /**\n * Context object passed to the custom header template.\n */\n headerContext = computed<EdsCalendarHeaderContext>(() => ({\n currentDate: this.currentDate(),\n mode: this.mode(),\n previous: this.navigatePrevious.bind(this),\n next: this.navigateNext.bind(this),\n cbToday: this.goToToday.bind(this),\n formattedDate: this.formattedDate(),\n isToday: this.isCurrentDateToday(),\n }));\n /**\n * Calculates the maximum width required to display the longest month name.\n */\n maxMonthWidth = computed(() => {\n const currentYear = this.currentDate().getFullYear();\n const locale = this.locale().id;\n const monthNames: string[] = [];\n\n for (let i = 0; i < 12; i++) {\n const date = new Date(currentYear, i, 1);\n monthNames.push(date.toLocaleDateString(locale, this.formattedOptions()));\n }\n\n const longestMonth = monthNames.reduce((a, b) => a.length > b.length ? a : b);\n return this.mode() === EdsCalendarMode.Weekly ? `${longestMonth.length * 2 + 2}ch` : `${longestMonth.length}ch`;\n });\n\n private formattedOptions = computed(() => {\n if (this.dateFormatOptions() !== null) {\n return this.dateFormatOptions();\n }\n return this.getFormattedOptions();\n });\n private locale = inject(LocaleService).getSignal();\n\n navigatePrevious(): void {\n const current = this.currentDate();\n switch (this.mode()) {\n case EdsCalendarMode.Daily:\n this.currentDate.update(m => new Date(m.getFullYear(), m.getMonth(), m.getDate() - 1));\n break;\n case EdsCalendarMode.Weekly:\n this.currentDate.update(m => new Date(m.getFullYear(), m.getMonth(), m.getDate() - 7));\n break;\n case EdsCalendarMode.Monthly:\n default:\n this.currentDate.update(m => new Date(m.getFullYear(), m.getMonth() - 1, 1));\n break;\n }\n this.navigationClicked.emit({\n direction: EdsCalendarNavigationDirection.Previous,\n current: current,\n new: this.currentDate(),\n mode: this.mode(),\n });\n }\n\n navigateNext(): void {\n const current = this.currentDate();\n switch (this.mode()) {\n case EdsCalendarMode.Daily:\n this.currentDate.update(m => new Date(m.getFullYear(), m.getMonth(), m.getDate() + 1));\n break;\n case EdsCalendarMode.Weekly:\n this.currentDate.update(m => new Date(m.getFullYear(), m.getMonth(), m.getDate() + 7));\n break;\n case EdsCalendarMode.Monthly:\n default:\n this.currentDate.update(m => new Date(m.getFullYear(), m.getMonth() + 1, 1));\n break;\n }\n this.navigationClicked.emit({\n direction: EdsCalendarNavigationDirection.Next,\n current: current,\n new: this.currentDate(),\n mode: this.mode(),\n });\n }\n\n goToToday(): void {\n const today = new Date();\n this.todayClicked.emit(today);\n }\n\n private getFormattedOptions(): Intl.DateTimeFormatOptions {\n if (this.mode() === EdsCalendarMode.Monthly) {\n return { month: 'long', year: 'numeric' };\n } else if (this.mode() === EdsCalendarMode.Weekly) {\n return { year: 'numeric', month: 'short', day: 'numeric' };\n } else {\n return { year: 'numeric', month: 'long', day: 'numeric', weekday: 'long' };\n }\n }\n\n private getWeekRange(date: Date, startDay: number): { start: Date; end: Date } {\n const jsDay = date.getDay();\n const targetStartDay = (startDay + 1) % 7;\n const daysBack = (jsDay - targetStartDay + 7) % 7;\n\n const start = new Date(date);\n start.setDate(date.getDate() - daysBack);\n\n const end = new Date(start);\n const daysInWeek = this.containWeekends() ? 6 : 4;\n end.setDate(start.getDate() + daysInWeek);\n\n return { start, end };\n }\n}\n","@if (customTemplate(); as template) {\n <ng-container [ngTemplateOutletContext]=\"headerContext()\" [ngTemplateOutlet]=\"template\" />\n} @else {\n <div class=\"eds-calendar-header__nav\">\n <div class=\"eds-calendar-header__left\">\n @if (showNavigationButtons()) {\n <button edsIconButton color=\"neutral\" size=\"s\" icon=\"caret-left:core\" ariaLabel=\"Go to previous\" (click)=\"navigatePrevious()\"></button>\n }\n <div class=\"eds-calendar-header__label\" [style.min-width]=\"maxMonthWidth()\">\n <span class=\"eds-calendar-header__date\">{{ formattedDate() }}</span>\n @if (subLabel()) {\n <span class=\"eds-calendar-header__sublabel\">{{ subLabel() }}</span>\n }\n </div>\n @if (showNavigationButtons()) {\n <button edsIconButton color=\"neutral\" size=\"s\" icon=\"caret-right:core\" ariaLabel=\"Go to next\" (click)=\"navigateNext()\"></button>\n }\n </div>\n @if (showTodayButton()) {\n <button edsButton edsNeutral [disabled]=\"isCurrentDateToday()\" (click)=\"goToToday()\">Today</button>\n }\n </div>\n}\n","import { Directive } from '@angular/core';\nimport { EdsCalendarDayCell, EdsCalendarEvent } from './eds-calendar.models';\n\nexport interface EdsCalendarDayCellTemplateContext {\n $implicit: EdsCalendarDayCell;\n}\n\nexport interface EdsCalendarHeaderCellTemplateContext {\n date: Date;\n}\n\nexport interface EdsCalendarEventCellTemplateContext {\n $implicit: EdsCalendarEvent;\n label: string;\n type: string;\n}\n\n@Directive({ selector: 'ng-template[edsCalendarDayCell]' })\nexport class EdsCalendarDayCellDef {\n static ngTemplateContextGuard(_dir: EdsCalendarDayCellDef, ctx: unknown): ctx is EdsCalendarDayCellTemplateContext {\n return true;\n }\n}\n\n@Directive({ selector: 'ng-template[edsCalendarHeaderCell]' })\nexport class EdsCalendarHeaderCellDef {\n static ngTemplateContextGuard(_dir: EdsCalendarHeaderCellDef, ctx: unknown): ctx is EdsCalendarHeaderCellTemplateContext {\n return true;\n }\n}\n\n@Directive({ selector: 'ng-template[edsCalendarEventCell]' })\nexport class EdsCalendarEventCellDef {\n static ngTemplateContextGuard(_dir: EdsCalendarEventCellDef, ctx: unknown): ctx is EdsCalendarEventCellTemplateContext {\n return true;\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n input,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EDS_BUTTON } from '@eui/eds/eds-button';\nimport { EDS_ICON_BUTTON } from '@eui/eds/eds-icon-button';\nimport { EDS_TAG, EdsTagColor } from '@eui/eds/eds-tag';\nimport { EDS_POPOVER, EdsPopover } from '@eui/eds/eds-popover';\nimport { EDS_ICON } from '@eui/eds/eds-icon';\nimport { EdsCalendarEvent, EdsCalendarEventType } from './eds-calendar.models';\nimport { EdsCalendarEventCellDef, EdsCalendarEventCellTemplateContext } from './eds-calendar-templates.directive';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\n\n@Component({\n templateUrl: './eds-calendar-day.html',\n selector: 'eds-calendar-day',\n styleUrl: './eds-calendar-day.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n ...EDS_BUTTON,\n ...EDS_ICON_BUTTON,\n ...EDS_TAG,\n ...EDS_POPOVER,\n ...EDS_ICON,\n ],\n host: {\n '[class]': 'hostClasses()',\n '(mouseenter)': 'onMouseOver()',\n '(mouseleave)': 'onMouseOut()',\n },\n})\nexport class EdsCalendarDay {\n edsDisabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n dayOfTheMonth = input<number, NumberInput>(4, { transform: numberAttribute });\n maxNumberOfEventsToShow = input<number, NumberInput>(2, { transform: numberAttribute });\n events = input<EdsCalendarEvent[]>();\n eventTemplate = input<TemplateRef<EdsCalendarEventCellTemplateContext>>();\n resolvedEventTemplate = computed(() => this.eventTemplate() || this.eventTemplateDef());\n isSelected = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n addNewEvent = signal(false);\n addNewItemEvent = output();\n\n hostClasses = computed(() => {\n return [\n 'eds-calendar-day',\n this.edsDisabled() ? 'eds-calendar-day--disabled' : '',\n ].join(' ').trim();\n });\n\n protected renderNewEvent = computed(() => {\n return this.addNewEvent() && this.dayOfTheMonth() !== null;\n });\n\n private popover = viewChild<EdsPopover>('popover');\n private eventTemplateDef = contentChild(EdsCalendarEventCellDef, { read: TemplateRef });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n showMoreEvents(e: any): void {\n this.popover().openPopover(e.target);\n }\n\n onMouseOver(): void {\n if (!this.edsDisabled()) {\n this.addNewEvent.update(() => true);\n }\n }\n\n onMouseOut(): void {\n this.addNewEvent.update(() => false);\n }\n\n addNewItemClicked(): void {\n this.addNewItemEvent.emit();\n }\n\n protected tagColor(type: string | undefined): EdsTagColor {\n switch (type) {\n case EdsCalendarEventType.success:\n return 'success';\n case EdsCalendarEventType.warning:\n return 'warning';\n case EdsCalendarEventType.critical:\n return 'critical';\n case EdsCalendarEventType.primary:\n case EdsCalendarEventType.info:\n default:\n return 'info';\n }\n }\n}\n","@if (dayOfTheMonth()) {\n <div class=\"eds-calendar-day__header\">\n <button edsButton\n [edsButtonRounded]=\"isSelected()\"\n [edsPrimary]=\"isSelected()\"\n [edsNeutral]=\"!isSelected()\">\n {{ dayOfTheMonth() }}\n </button>\n @if (renderNewEvent()) {\n <button edsIconButton color=\"info\" size=\"s\" icon=\"plus:core\" ariaLabel=\"Add new event\" (click)=\"addNewItemClicked()\"></button>\n }\n </div>\n}\n\n<div class=\"eds-calendar-day__events\">\n @for (event of events(); track event.id; let idx = $index, l = $last) {\n @if (idx < maxNumberOfEventsToShow()) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type()) {\n <eds-tag [color]=\"tagColor(event.type())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n\n @if (l) {\n @if (events().length > maxNumberOfEventsToShow()) {\n <span class=\"eds-calendar-day__show-more\" (click)=\"showMoreEvents($event)\">\n +{{ events().length - maxNumberOfEventsToShow() }} more\n </span>\n }\n }\n }\n</div>\n\n<eds-popover #popover [title]=\"'Events'\">\n <div class=\"eds-calendar-day__popover-events\">\n @for (event of events(); track event.id) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type()) {\n <eds-tag [color]=\"tagColor(event.type())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n </div>\n</eds-popover>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n inject,\n input,\n output,\n Signal,\n TemplateRef,\n} from '@angular/core';\nimport { EdsCalendarDay as EdsCalendarDayComponent } from './eds-calendar-day';\nimport { EdsCalendarEvent, EdsCalendarDayCell, EdsCalendarMonthlyOptions, EdsCalendarDayOfWeek } from './eds-calendar.models';\nimport { parseStartingDay } from './eds-calendar.utils';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { LocaleService } from '@eui/core';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n EdsCalendarDayCellDef,\n EdsCalendarDayCellTemplateContext,\n EdsCalendarEventCellDef,\n EdsCalendarEventCellTemplateContext,\n EdsCalendarHeaderCellDef,\n EdsCalendarHeaderCellTemplateContext,\n} from './eds-calendar-templates.directive';\n\n@Component({\n templateUrl: './eds-calendar-monthly.html',\n selector: 'eds-calendar-monthly',\n styleUrl: './eds-calendar-monthly.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n EdsCalendarDayComponent,\n NgTemplateOutlet,\n ],\n host: {\n class: 'eds-calendar-monthly',\n },\n})\nexport class EdsCalendarMonthly {\n /**\n * Array of disabled days (Date objects)\n */\n disabledDays = input<Date[]>([]);\n events = input<EdsCalendarEvent[]>([]);\n hasEmptyValue = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Template for rendering each day cell\n */\n dayTemplate = input<TemplateRef<EdsCalendarDayCellTemplateContext>>();\n /**\n * Template for rendering each header cell\n */\n headerTemplate = input<TemplateRef<EdsCalendarHeaderCellTemplateContext>>();\n /**\n * Resolved day template: prefers input, falls back to content-projected directive\n */\n resolvedDayTemplate = computed(() => this.dayTemplate() || this.dayTemplateDef());\n /**\n * Resolved header template: prefers input, falls back to content-projected directive\n */\n resolvedHeaderTemplate = computed(() => this.headerTemplate() || this.headerTemplateDef());\n /**\n * Template for rendering each event cell\n */\n eventTemplate = input<TemplateRef<EdsCalendarEventCellTemplateContext>>();\n /**\n * Resolved event template: prefers input, falls back to content-projected directive\n */\n resolvedEventTemplate = computed(() => this.eventTemplate() || this.eventTemplateDef());\n /**\n * Display mode of the calendar ('compact' or 'truncated')\n */\n mode = input<'compact' | 'truncated'>('truncated');\n /**\n * Starting day of the week (0=Monday, 1=Tuesday, ..., 6=Sunday)\n */\n startingDay = input<number, NumberInput>(EdsCalendarDayOfWeek.MONDAY, { transform: parseStartingDay });\n /**\n * The reference date for the month.\n */\n date = input<Date>(new Date());\n /**\n * Fill with previous month days\n */\n fillPreviousMonth = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Fill with next month days\n */\n fillNextMonth = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Disable selection of future dates\n */\n disableFutureDates = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Disable selection of past dates\n */\n disablePastDates = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Disable selection of weekend dates\n */\n disableWeekends = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Disable days that are not in the current selected month\n */\n disabledDaysNotInMonth = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n newEventAddClicked = output<EdsCalendarDayCell>();\n\n monthlyCalendar: Signal<EdsCalendarDayCell[][]> = computed(() => {\n const currentEvents = this.events();\n\n return this.generateCalendarGrid(this.date().getMonth() + 1, this.startingDay(), {\n year: this.date().getFullYear(),\n emptyValue: this.hasEmptyValue() ? null : undefined,\n fillPreviousMonth: this.fillPreviousMonth(),\n fillNextMonth: this.fillNextMonth(),\n })\n .filter(week => week.some(day => (typeof day === 'number') || (typeof day === 'object' && day?.isCurrentMonth)))\n .map(week => week.map(day => {\n if (day && typeof day === 'object') {\n let isDisabled = false;\n if (this.disableFutureDates() && day.isFuture) {\n isDisabled = true;\n }\n if (this.disablePastDates() && day.isPast) {\n isDisabled = true;\n }\n if (this.disableWeekends() && day.isWeekend) {\n isDisabled = true;\n }\n if (this.disabledDaysNotInMonth() && !day.isCurrentMonth) {\n isDisabled = true;\n }\n const date = new Date(day.year, day.month - 1, day.day);\n if (this.disabledDays().some(disabledDate =>\n disabledDate.toDateString() === date.toDateString(),\n )) {\n isDisabled = true;\n }\n day.isDisabled = isDisabled;\n const dayEvents: EdsCalendarEvent[] = currentEvents.filter(event => {\n return event.date().getDate() === day.day &&\n (event.date().getMonth() + 1) === day.month &&\n event.date().getFullYear() === day.year;\n }).map(v => ({\n label: v.label,\n id: v.id,\n type: v?.type,\n date: v.date,\n ...v,\n }));\n if (dayEvents.length > 0) {\n day.events = dayEvents;\n }\n }\n return day;\n }));\n });\n\n daysHeaderArray = computed(() => {\n const days = Array.from({ length: 7 }, (_, i) => {\n const date = new Date(2024, 0, 1 + i);\n return date;\n });\n return days.slice(this.startingDay()).concat(days.slice(0, this.startingDay())).map(day => ({\n short: day.toLocaleDateString(this.locale(), { weekday: 'short' }),\n date: day,\n }));\n });\n\n private dayTemplateDef = contentChild(EdsCalendarDayCellDef, { read: TemplateRef });\n private headerTemplateDef = contentChild(EdsCalendarHeaderCellDef, { read: TemplateRef });\n private eventTemplateDef = contentChild(EdsCalendarEventCellDef, { read: TemplateRef });\n private locale = inject(LocaleService).getSignal();\n\n addNewItemClicked(day: EdsCalendarDayCell): void {\n this.newEventAddClicked.emit(day);\n }\n\n generateCalendarGrid(month: number, startingDay: number, options: EdsCalendarMonthlyOptions = {}): EdsCalendarDayCell[][] {\n if (!Number.isInteger(month) || month < 1 || month > 12) {\n throw new Error('Month must be an integer between 1 and 12.');\n }\n\n const {\n year = new Date().getFullYear(),\n emptyValue = null,\n fillPreviousMonth = false,\n fillNextMonth = false,\n includeMetadata = true,\n includeToday = true,\n includeTemporalFlags = true,\n includeWeekends = true,\n includeWeekNumbers = false,\n weekendDays = [0, 6],\n } = options;\n\n const grid = Array(6).fill(null).map(() => Array(7).fill(emptyValue));\n\n const daysInMonth = this.getDaysInMonth(month, year);\n const firstDayOfMonth = this.getFirstDayOfMonth(month, year);\n\n const firstDayISO = (firstDayOfMonth + 6) % 7;\n const columnOffset = (firstDayISO - startingDay + 7) % 7;\n\n const shouldReturnObjects = includeMetadata || fillPreviousMonth || fillNextMonth ||\n includeToday || includeTemporalFlags || includeWeekends;\n\n const cellOptions = {\n includeToday,\n includeTemporalFlags,\n includeWeekends,\n includeWeekNumbers,\n weekendDays,\n };\n\n if (fillPreviousMonth && columnOffset > 0) {\n const prevMonth = month === 1 ? 12 : month - 1;\n const prevYear = month === 1 ? year - 1 : year;\n const daysInPrevMonth = this.getDaysInMonth(prevMonth, prevYear);\n\n for (let i = columnOffset - 1; i >= 0; i--) {\n const day = daysInPrevMonth - (columnOffset - 1 - i);\n grid[0][i] = this.createEnhancedDayCell(day, prevMonth, prevYear, false, cellOptions);\n }\n }\n\n let currentDay = 1;\n let row = 0;\n let col = columnOffset;\n\n while (currentDay <= daysInMonth) {\n if (shouldReturnObjects) {\n grid[row][col] = this.createEnhancedDayCell(currentDay, month, year, true, cellOptions);\n } else {\n grid[row][col] = currentDay;\n }\n\n currentDay++;\n col++;\n\n if (col === 7) {\n col = 0;\n row++;\n }\n }\n\n if (fillNextMonth && (row < 6 || col > 0)) {\n const nextMonth = month === 12 ? 1 : month + 1;\n const nextYear = month === 12 ? year + 1 : year;\n let nextMonthDay = 1;\n\n while (row < 6) {\n while (col < 7) {\n if (grid[row][col] === emptyValue) {\n grid[row][col] = this.createEnhancedDayCell(\n nextMonthDay,\n nextMonth,\n nextYear,\n false,\n cellOptions,\n );\n nextMonthDay++;\n }\n col++;\n }\n col = 0;\n row++;\n }\n }\n\n return grid as EdsCalendarDayCell[][];\n }\n\n trackByDay(index: number, day: EdsCalendarDayCell): string | number {\n if (!day) return `empty-${index}`;\n return new Date(day.year, day.month, day.day).getTime();\n }\n\n private getDaysInMonth(month: number, year: number = new Date().getFullYear()): number {\n return new Date(year, month, 0).getDate();\n }\n\n private getFirstDayOfMonth(month: number, year: number = new Date().getFullYear()): number {\n return new Date(year, month - 1, 1).getDay();\n }\n\n private getISOWeekNumber(date: Date): number {\n const tempDate = new Date(date.getTime());\n tempDate.setHours(0, 0, 0, 0);\n tempDate.setDate(tempDate.getDate() + 3 - (tempDate.getDay() + 6) % 7);\n const week1 = new Date(tempDate.getFullYear(), 0, 4);\n return 1 + Math.round(((tempDate.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);\n }\n\n private compareDatesAtDayPrecision(date1: Date, date2: Date): 0 | 1 | -1 {\n const d1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());\n const d2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());\n if (d1 < d2) return -1;\n if (d1 > d2) return 1;\n return 0;\n }\n\n private createEnhancedDayCell(day: number, month: number, year: number, isCurrentMonth: boolean, options: object = {}): EdsCalendarDayCell {\n const {\n includeToday = true,\n includeTemporalFlags = true,\n includeWeekends = true,\n includeWeekNumbers = false,\n weekendDays = [0, 6],\n } = options as {\n includeToday?: boolean;\n includeTemporalFlags?: boolean;\n includeWeekends?: boolean;\n includeWeekNumbers?: boolean;\n weekendDays?: number[];\n };\n\n const cellDate = new Date(year, month - 1, day);\n const today = new Date();\n\n const cell = {\n day,\n month,\n year,\n isCurrentMonth,\n dayOfWeek: cellDate.getDay(),\n dateString: `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`,\n } as EdsCalendarDayCell;\n\n if (includeToday || includeTemporalFlags) {\n const comparison = this.compareDatesAtDayPrecision(cellDate, today);\n if (includeToday) {\n cell.isToday = comparison === 0;\n }\n if (includeTemporalFlags) {\n cell.isPast = comparison === -1;\n cell.isFuture = comparison === 1;\n }\n }\n\n if (includeWeekends) {\n cell.isWeekend = weekendDays.includes(cellDate.getDay());\n }\n\n if (includeWeekNumbers) {\n cell.weekNumber = this.getISOWeekNumber(cellDate);\n }\n\n const daysInMonth = this.getDaysInMonth(month, year);\n cell.isFirstDayOfMonth = isCurrentMonth && day === 1;\n cell.isLastDayOfMonth = isCurrentMonth && day === daysInMonth;\n\n return cell;\n }\n}\n","<table role=\"grid\" aria-label=\"Calendar\" [class.eds-calendar-monthly--compact]=\"this.mode() === 'compact'\" [class.eds-calendar-monthly--truncated]=\"this.mode() === 'truncated'\">\n <thead>\n <tr>\n @for (day of daysHeaderArray(); track $index) {\n @if (resolvedHeaderTemplate()) {\n <th class=\"eds-calendar-monthly--day-header\" scope=\"col\">\n <ng-container\n [ngTemplateOutlet]=\"resolvedHeaderTemplate()\"\n [ngTemplateOutletContext]=\"{ date: day.date }\">\n </ng-container>\n </th>\n } @else {\n <th class=\"eds-calendar-monthly--day-header\" scope=\"col\">{{ day.short }}</th>\n }\n }\n </tr>\n </thead>\n <tbody>\n @for (week of monthlyCalendar(); track $index; let weekIdx = $index) {\n <tr>\n @for (day of week; track trackByDay(dayIdx, day); let dayIdx = $index) {\n <td class=\"eds-calendar-monthly--day\"\n [class.weekend]=\"day?.isWeekend\"\n [class.disabled]=\"day?.isDisabled\"\n [attr.aria-disabled]=\"day?.isDisabled ? 'true' : null\"\n [attr.aria-current]=\"day?.isToday ? 'date' : null\">\n @if (resolvedDayTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedDayTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: day }\">\n </ng-container>\n } @else {\n <eds-calendar-day [dayOfTheMonth]=\"day?.day\"\n [isSelected]=\"day?.isToday\"\n [edsDisabled]=\"day?.isDisabled\"\n [maxNumberOfEventsToShow]=\"2\"\n [events]=\"day?.events\"\n [eventTemplate]=\"resolvedEventTemplate()\"\n (addNewItemEvent)=\"addNewItemClicked(day)\">\n </eds-calendar-day>\n }\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component, computed, inject, input, model } from '@angular/core';\nimport { LocaleService } from '@eui/core';\n\n@Component({\n selector: 'eds-calendar-weekly-day-header',\n template: `\n <span class=\"eds-calendar-weekly-day-header__day\"><strong>{{ dayOfTheWeek() }}</strong> {{ dayOfTheMonth() }}</span>\n @if (sublabel()) {\n <span class=\"eds-calendar-weekly-day-header__sublabel\">{{ sublabel() }}</span>\n }\n `,\n styles: `\n :host {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n width: 100%;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EdsCalendarWeeklyDayHeader {\n date = model.required<Date>();\n sublabel = input<string>();\n private locale = inject(LocaleService, { optional: true })?.getSignal();\n\n protected dayOfTheWeek = computed(() => {\n return this.date()?.toLocaleDateString(this.locale?.()?.id || 'en-US', { weekday: 'short' }).toUpperCase() ?? '';\n });\n\n protected dayOfTheMonth = computed(() => {\n return this.date()?.toLocaleDateString(this.locale?.()?.id || 'en-US', { day: 'numeric', month: 'long' }) ?? '';\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { EdsColorDirective } from '@eui/eds/shared';\nimport { EDS_CARD } from '@eui/eds/eds-card';\n\n@Component({\n selector: 'eds-calendar-weekly-day-content',\n templateUrl: './eds-calendar-weekly-day-content.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [...EDS_CARD],\n hostDirectives: [{\n directive: EdsColorDirective,\n inputs: ['edsPrimary', 'edsSuccess', 'edsInfo', 'edsWarning', 'edsCritical', 'edsColorVariant'],\n }],\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class EdsCalendarWeeklyDayContent {\n label = input.required<string>();\n subLabel = input<string>();\n protected colorDirective = inject(EdsColorDirective);\n\n hostClasses = computed(() => {\n const colorClass = this.colorDirective.getCssClass('eds-calendar-event');\n return ['eds-calendar-event', colorClass].join(' ').trim();\n });\n}\n","<eds-card>\n <eds-card-body>\n <strong>{{ label() }}</strong>\n @if (subLabel()) {\n <div class=\"eds-calendar-event__sublabel\">{{ subLabel() }}</div>\n }\n </eds-card-body>\n</eds-card>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n output,\n TemplateRef,\n} from '@angular/core';\nimport { CdkDrag, CdkDragDrop, CdkDropList } from '@angular/cdk/drag-drop';\nimport { EdsCalendarWeeklyDayHeader } from './eds-calendar-weekly-day-header';\nimport { EdsCalendarWeeklyDayContent } from './eds-calendar-weekly-day-content';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { EdsCalendarDayOfWeek, EdsCalendarDayData, EdsCalendarEvent } from './eds-calendar.models';\n\n@Component({\n selector: 'eds-calendar-weekly',\n templateUrl: './eds-calendar-weekly.html',\n styleUrl: './eds-calendar-weekly.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CdkDropList,\n CdkDrag,\n EdsCalendarWeeklyDayHeader,\n EdsCalendarWeeklyDayContent,\n NgTemplateOutlet,\n NgClass,\n ],\n host: {\n class: 'eds-calendar-weekly',\n },\n})\nexport class EdsCalendarWeekly {\n /**\n * Whether drag-and-drop is enabled for events (defaults to true)\n */\n dragAndDrop = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n /**\n * The reference date for the week.\n */\n date = model<Date>(new Date());\n /**\n * Events for the week.\n */\n events = model<EdsCalendarEvent[]>([]);\n /**\n * Whether to show weekends in the calendar (defaults to false)\n */\n showWeekends = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Starting day of the week (0=Monday, 1=Tuesday, ..., 6=Sunday)\n */\n startingDay = input<number, NumberInput>(EdsCalendarDayOfWeek.MONDAY, { transform: this.startingDayTransformer });\n /**\n * Array of disabled days (Date objects)\n */\n disabledDays = input<Date[]>([]);\n /**\n * Emits when an event is moved to a different day\n */\n eventMoved = output<{ event: EdsCalendarEvent; newDate: Date }>();\n /**\n * Optional custom template for day headers\n */\n dayHeaderTemplate = input<TemplateRef<EdsCalendarDayData>>();\n /**\n * Optional custom template for event content\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n eventContentTemplate = input<TemplateRef<any>>();\n\n daysInWeek = computed((): EdsCalendarDayData[] => {\n const referenceDate = this.date();\n const startingDay = this.startingDay();\n\n const firstDayOfWeek = this.getWeekStartDate(referenceDate, startingDay);\n\n const days: EdsCalendarDayData[] = [];\n for (let i = 0; i < 7; i++) {\n const date = new Date(firstDayOfWeek);\n date.setDate(firstDayOfWeek.getDate() + i);\n if (!this.showWeekends() && (date.getDay() === 0 || date.getDay() === 6)) {\n continue;\n }\n days.push({\n id: i,\n isToday: date.toDateString() === new Date().toDateString(),\n isWeekend: date.getDay() === 0 || date.getDay() === 6,\n date,\n disabled: this.disabledDays().some(disabledDate =>\n disabledDate.toDateString() === date.toDateString(),\n ),\n metadata: computed(() => {\n return this.events().filter(event => {\n const eventDate = event.date();\n return eventDate.getFullYear() === date.getFullYear() &&\n eventDate.getMonth() === date.getMonth() &&\n eventDate.getDate() === date.getDate();\n });\n }),\n });\n }\n return days;\n });\n\n /**\n * Emits when a day header action is triggered\n */\n dayAction = output<{ $event: MouseEvent | KeyboardEvent; day: EdsCalendarDayData }>();\n\n protected id = crypto.randomUUID();\n\n dropListIds = computed(() => {\n return this.daysInWeek().map((day) => `${this.id}_${day.date.getTime()}`);\n });\n\n private DayNameMap: { [s: string]: number } = {\n monday: EdsCalendarDayOfWeek.MONDAY,\n mon: EdsCalendarDayOfWeek.MONDAY,\n tuesday: EdsCalendarDayOfWeek.TUESDAY,\n tue: EdsCalendarDayOfWeek.TUESDAY,\n wednesday: EdsCalendarDayOfWeek.WEDNESDAY,\n wed: EdsCalendarDayOfWeek.WEDNESDAY,\n thursday: EdsCalendarDayOfWeek.THURSDAY,\n thu: EdsCalendarDayOfWeek.THURSDAY,\n friday: EdsCalendarDayOfWeek.FRIDAY,\n fri: EdsCalendarDayOfWeek.FRIDAY,\n saturday: EdsCalendarDayOfWeek.SATURDAY,\n sat: EdsCalendarDayOfWeek.SATURDAY,\n sunday: EdsCalendarDayOfWeek.SUNDAY,\n sun: EdsCalendarDayOfWeek.SUNDAY,\n };\n\n drop(dropEvent: CdkDragDrop<EdsCalendarDayData>): void {\n if (dropEvent.previousContainer.id === dropEvent.container.id) {\n return;\n }\n\n const movedEvent: EdsCalendarEvent = dropEvent.item.data;\n const targetDay: EdsCalendarDayData = dropEvent.container.data;\n\n this.events.update(currentEvents => {\n movedEvent.date.set(targetDay.date);\n return currentEvents.map(event =>\n event === movedEvent ? movedEvent : event,\n );\n });\n\n this.eventMoved.emit({\n event: movedEvent,\n newDate: targetDay.date,\n });\n }\n\n private getWeekStartDate(referenceDate: Date, startingDay: number): Date {\n const jsDay = referenceDate.getDay();\n const targetStartDay = (startingDay + 1) % 7;\n const daysBack = (jsDay - targetStartDay + 7) % 7;\n\n const result = new Date(referenceDate);\n result.setDate(referenceDate.getDate() - daysBack);\n return result;\n }\n\n private startingDayTransformer(startingDay: string | number): number {\n if (typeof startingDay === 'number' || /^\\d+$/.test(String(startingDay))) {\n startingDay = typeof startingDay === 'string' ? parseInt(startingDay, 10) : startingDay;\n if (startingDay >= 0 && startingDay <= 6) {\n return startingDay;\n }\n throw new Error(`Invalid starting day number: ${startingDay}. Must be 0-6.`);\n }\n\n if (typeof startingDay === 'string') {\n const normalized = startingDay.toLowerCase().trim();\n if (normalized in this.DayNameMap) {\n return this.DayNameMap[normalized];\n }\n throw new Error(`Invalid starting day: \"${startingDay}\". Use day name or abbreviation.`);\n }\n\n throw new Error('Starting day must be a string (day name) or number (0-6).');\n }\n}\n","@for (day of daysInWeek(); track day?.date?.getTime() || i; let i = $index) {\n <div [ngClass]=\"{ 'eds-day-column--weekend': day.isWeekend, 'eds-day-column--today': day.isToday, 'eds-day-column--disabled': day.disabled }\"\n [tabindex]=\"0\"\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\n [attr.aria-disabled]=\"day.disabled ? 'true' : null\"\n class=\"eds-day-column\"\n role=\"region\"\n [attr.aria-label]=\"day.date.toLocaleDateString()\">\n <!-- Day Header -->\n <div class=\"eds-day-header\">\n @if (dayHeaderTemplate()) {\n <ng-container *ngTemplateOutlet=\"dayHeaderTemplate(); context: day\" />\n } @else {\n <eds-calendar-weekly-day-header [date]=\"day.date\" />\n }\n </div>\n <!-- Day Content Area with Drag-and-Drop Support -->\n <div (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListConnectedTo]=\"dropListIds()\"\n [cdkDropListData]=\"day\"\n [cdkDropListDisabled]=\"!dragAndDrop()\"\n [id]=\"id + '_' + day.date.getTime()\"\n cdkDropList\n class=\"eds-day-content\">\n @for (event of day.metadata(); track event.id) {\n <div [cdkDragData]=\"event\"\n cdkDrag\n class=\"eds-event-card\">\n @if (eventContentTemplate()) {\n <ng-container *ngTemplateOutlet=\"eventContentTemplate(); context: event\" />\n } @else {\n <eds-calendar-weekly-day-content\n [edsCritical]=\"event.type ? event.type() === 'critical': false\"\n [edsInfo]=\"event.type ? event.type() === 'info' : false\"\n [edsPrimary]=\"event.type ? event.type() === 'primary' : false\"\n [edsSuccess]=\"event.type ? event.type() === 'success' : false\"\n [edsWarning]=\"event.type ? event.type() === 'warning' : false\"\n [label]=\"event.label()\"\n [subLabel]=\"event.subLabel()\">\n </eds-calendar-weekly-day-content>\n }\n </div>\n }\n </div>\n </div>\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, model, output, booleanAttribute } from '@angular/core';\nimport { LocaleService } from '@eui/core';\nimport { EDS_ICON_BUTTON } from '@eui/eds/eds-icon-button';\nimport { EDS_BUTTON } from '@eui/eds/eds-button';\nimport { EDS_DROPDOWN } from '@eui/eds/eds-dropdown';\nimport { EdsCalendarDayHeaderActionOption } from './eds-calendar.models';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n selector: 'eds-calendar-weekly-day-header-action',\n templateUrl: './eds-calendar-weekly-day-header-actions.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [...EDS_ICON_BUTTON, ...EDS_BUTTON, ...EDS_DROPDOWN],\n styles: `\n :host {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n }\n :host(.eds-calendar-weekly-day-header-action--disabled) {\n opacity: 0.5;\n pointer-events: none;\n }\n `,\n host: {\n class: 'eds-calendar-weekly-day-header-action',\n '[class.eds-calendar-weekly-day-header-action--disabled]': 'disabled()',\n },\n})\nexport class EdsCalendarWeeklyDayHeaderAction {\n disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n options = input<EdsCalendarDayHeaderActionOption[]>([]);\n date = model.required<Date>();\n action = output<MouseEvent | KeyboardEvent>();\n sublabel = input<string>();\n private locale = inject(LocaleService, { optional: true })?.getSignal();\n\n protected dayOfTheWeek = computed(() => {\n return this.date()?.toLocaleDateString(this.locale?.()?.id || 'en-US', { weekday: 'short' }).toUpperCase() ?? '';\n });\n\n protected dayOfTheMonth = computed(() => {\n return this.date()?.toLocaleDateString(this.locale?.()?.id || 'en-US', { day: 'numeric', month: 'long' }) ?? '';\n });\n}\n","<span class=\"eds-calendar-weekly-day-header-action__left\">\n <strong>{{ dayOfTheWeek() }}</strong> {{ dayOfTheMonth() }}\n @if (sublabel()) {\n <span class=\"eds-calendar-weekly-day-header-action__sublabel\">{{ sublabel() }}</span>\n }\n</span>\n<div class=\"eds-calendar-weekly-day-header-action__right\">\n <eds-dropdown>\n <button edsIconButton color=\"neutral\" size=\"s\" icon=\"dots-three-vertical:core\" ariaLabel=\"More options\" [disabled]=\"disabled()\"></button>\n <eds-dropdown-content>\n @for (option of options(); track option.id) {\n <eds-dropdown-item (click)=\"option.callback($event, date())\">{{ option.label }}</eds-dropdown-item>\n }\n </eds-dropdown-content>\n </eds-dropdown>\n</div>\n","import { EdsCalendar } from './eds-calendar';\nimport { EdsCalendarHeader } from './eds-calendar-header';\nimport { EdsCalendarMonthly } from './eds-calendar-monthly';\nimport { EdsCalendarDay } from './eds-calendar-day';\nimport { EdsCalendarWeekly } from './eds-calendar-weekly';\nimport { EdsCalendarWeeklyDayHeader } from './eds-calendar-weekly-day-header';\nimport { EdsCalendarWeeklyDayContent } from './eds-calendar-weekly-day-content';\nimport { EdsCalendarWeeklyDayHeaderAction } from './eds-calendar-weekly-day-header-actions';\nimport { EdsCalendarDayCellDef, EdsCalendarEventCellDef, EdsCalendarHeaderCellDef } from './eds-calendar-templates.directive';\n\nexport * from './eds-calendar';\nexport * from './eds-calendar-header';\nexport * from './eds-calendar-monthly';\nexport * from './eds-calendar-day';\nexport * from './eds-calendar-weekly';\nexport * from './eds-calendar-weekly-day-header';\nexport * from './eds-calendar-weekly-day-content';\nexport * from './eds-calendar-weekly-day-header-actions';\nexport * from './eds-calendar-templates.directive';\nexport * from './eds-calendar.models';\nexport * from './eds-calendar.utils';\n\n/** Convenience array for importing all eds-calendar components. */\nexport const EDS_CALENDAR = [\n EdsCalendar,\n EdsCalendarHeader,\n EdsCalendarMonthly,\n EdsCalendarDay,\n EdsCalendarWeekly,\n EdsCalendarWeeklyDayHeader,\n EdsCalendarWeeklyDayContent,\n EdsCalendarWeeklyDayHeaderAction,\n EdsCalendarDayCellDef,\n EdsCalendarEventCellDef,\n EdsCalendarHeaderCellDef,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","EdsCalendarDayComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-eds-eds-calendar.mjs","sources":["../../eds-calendar/eds-calendar.ts","../../eds-calendar/eds-calendar.html","../../eds-calendar/eds-calendar.models.ts","../../eds-calendar/eds-calendar.utils.ts","../../eds-calendar/eds-calendar-header.ts","../../eds-calendar/eds-calendar-header.html","../../eds-calendar/eds-calendar-templates.directive.ts","../../eds-calendar/eds-calendar-day.ts","../../eds-calendar/eds-calendar-day.html","../../eds-calendar/eds-calendar-monthly.ts","../../eds-calendar/eds-calendar-monthly.html","../../eds-calendar/eds-calendar-weekly-day-header.ts","../../eds-calendar/eds-calendar-weekly-day-content.ts","../../eds-calendar/eds-calendar-weekly-day-content.html","../../eds-calendar/eds-calendar-weekly.ts","../../eds-calendar/eds-calendar-weekly.html","../../eds-calendar/eds-calendar-weekly-day-header-actions.ts","../../eds-calendar/eds-calendar-weekly-day-header-actions.html","../../eds-calendar/index.ts","../../eds-calendar/eui-eds-eds-calendar.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'eds-calendar',\n templateUrl: './eds-calendar.html',\n styleUrl: './eds-calendar.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'eds-calendar',\n '[attr.data-e2e]': '\"eds-calendar\"',\n },\n})\nexport class EdsCalendar {}\n","<ng-content select=\"eds-calendar-header\" />\n<ng-content select=\"eds-calendar-monthly\" />\n<ng-content select=\"eds-calendar-weekly\" />\n","import { Signal, WritableSignal } from '@angular/core';\n\nexport const EdsCalendarDayOfWeek = {\n MONDAY: 0,\n TUESDAY: 1,\n WEDNESDAY: 2,\n THURSDAY: 3,\n FRIDAY: 4,\n SATURDAY: 5,\n SUNDAY: 6,\n} as const;\n\nexport interface EdsCalendarDayHeaderActionOption {\n label: string;\n callback: (e: MouseEvent | KeyboardEvent, day?: Date) => void;\n id: string;\n}\n\nexport interface EdsCalendarDayData {\n id: number;\n date: Date;\n disabled?: boolean;\n isToday?: boolean;\n isWeekend?: boolean;\n metadata: Signal<EdsCalendarEvent[]>;\n}\n\nexport interface EdsCalendarEvent {\n id: string;\n date: WritableSignal<Date>;\n label: WritableSignal<string>;\n subLabel?: WritableSignal<string>;\n type?: WritableSignal<string>;\n}\n\nexport enum EdsCalendarNavigationDirection {\n Previous = 'previous',\n Next = 'next',\n}\n\nexport interface EdsCalendarNavigationEvent {\n direction: EdsCalendarNavigationDirection;\n current: Date;\n new: Date;\n mode: EdsCalendarMode;\n}\n\nexport enum EdsCalendarMode {\n Monthly = 'monthly',\n Weekly = 'weekly',\n Daily = 'daily',\n}\n\nexport interface EdsCalendarHeaderContext {\n currentDate: Date;\n mode: EdsCalendarMode;\n previous: () => void;\n next: () => void;\n cbToday: () => void;\n formattedDate: string;\n isToday: boolean;\n}\n\nexport interface EdsCalendarDayCell {\n day: number;\n month: number;\n year: number;\n isCurrentMonth: boolean;\n isToday?: boolean;\n isFuture?: boolean;\n isPast?: boolean;\n isWeekend?: boolean;\n dayOfWeek: number;\n dateString: string;\n weekNumber?: number;\n isFirstDayOfMonth?: boolean;\n isLastDayOfMonth?: boolean;\n isDisabled?: boolean;\n events?: EdsCalendarEvent[];\n}\n\nexport interface EdsCalendarMonthlyOptions {\n year?: number;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n emptyValue?: any;\n fillPreviousMonth?: boolean;\n fillNextMonth?: boolean;\n includeMetadata?: boolean;\n includeToday?: boolean;\n includeTemporalFlags?: boolean;\n includeWeekends?: boolean;\n includeWeekNumbers?: boolean;\n weekendDays?: number[];\n}\n\nexport enum EdsCalendarEventType {\n primary = 'primary',\n success = 'success',\n warning = 'warning',\n critical = 'critical',\n info = 'info',\n}\n","import { EdsCalendarDayOfWeek } from './eds-calendar.models';\n\nconst DayNameMap: { [s: string]: number } = {\n monday: EdsCalendarDayOfWeek.MONDAY,\n mon: EdsCalendarDayOfWeek.MONDAY,\n tuesday: EdsCalendarDayOfWeek.TUESDAY,\n tue: EdsCalendarDayOfWeek.TUESDAY,\n wednesday: EdsCalendarDayOfWeek.WEDNESDAY,\n wed: EdsCalendarDayOfWeek.WEDNESDAY,\n thursday: EdsCalendarDayOfWeek.THURSDAY,\n thu: EdsCalendarDayOfWeek.THURSDAY,\n friday: EdsCalendarDayOfWeek.FRIDAY,\n fri: EdsCalendarDayOfWeek.FRIDAY,\n saturday: EdsCalendarDayOfWeek.SATURDAY,\n sat: EdsCalendarDayOfWeek.SATURDAY,\n sunday: EdsCalendarDayOfWeek.SUNDAY,\n sun: EdsCalendarDayOfWeek.SUNDAY,\n};\n\n/**\n * Transforms a starting day input (string name or number) into an EdsCalendarDayOfWeek number.\n * Shared between EdsCalendarHeader and EdsCalendarMonthly.\n */\nexport function parseStartingDay(startingDay: string | number): number {\n if (typeof startingDay === 'number' || /^\\d+$/.test(String(startingDay))) {\n const numValue = typeof startingDay === 'string' ? parseInt(startingDay, 10) : startingDay;\n if (numValue >= 0 && numValue <= 6) {\n return numValue;\n }\n throw new Error(`Invalid starting day number: ${numValue}. Must be 0-6.`);\n }\n\n if (typeof startingDay === 'string') {\n const normalized = startingDay.toLowerCase().trim();\n if (normalized in DayNameMap) {\n return DayNameMap[normalized];\n }\n throw new Error(`Invalid starting day: \"${startingDay}\". Use day name or abbreviation.`);\n }\n\n throw new Error('Starting day must be a string (day name) or number (0-6).');\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n output,\n TemplateRef,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { LocaleService } from '@eui/core';\nimport {\n EdsCalendarNavigationEvent,\n EdsCalendarHeaderContext,\n EdsCalendarMode,\n EdsCalendarNavigationDirection,\n EdsCalendarDayOfWeek,\n} from './eds-calendar.models';\nimport { parseStartingDay } from './eds-calendar.utils';\nimport { EDS_ICON_BUTTON } from '@eui/eds/eds-icon-button';\nimport { EDS_BUTTON } from '@eui/eds/eds-button';\nimport { NumberInput, BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n selector: 'eds-calendar-header',\n templateUrl: './eds-calendar-header.html',\n styleUrl: './eds-calendar-header.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n ...EDS_ICON_BUTTON,\n ...EDS_BUTTON,\n ],\n host: {\n class: 'eds-calendar-header',\n },\n})\nexport class EdsCalendarHeader {\n /**\n * Determines whether weekends are included in the week view.\n */\n containWeekends = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n /**\n * Format options for displaying the date.\n */\n dateFormatOptions = input<Intl.DateTimeFormatOptions | null>(null);\n /**\n * The mode of the calendar header. This can be 'monthly', 'weekly', or 'daily'.\n */\n mode = input<EdsCalendarMode>(EdsCalendarMode.Monthly);\n /**\n * The currently selected date.\n */\n currentDate = model.required<Date>();\n /**\n * An optional sub-label to display below the main date label.\n */\n subLabel = input<string>('');\n /**\n * Determines whether the \"Today\" button is displayed.\n */\n showTodayButton = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n /**\n * Determines whether the navigation buttons (previous/next) are displayed.\n */\n showNavigationButtons = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n /**\n * Starting day of the week (0=Monday, 1=Tuesday, ..., 6=Sunday)\n */\n startingDay = input<number, NumberInput>(EdsCalendarDayOfWeek.MONDAY, { transform: parseStartingDay });\n /**\n * A custom template for the header.\n */\n customTemplate = input<TemplateRef<EdsCalendarHeaderContext> | null>(null);\n /**\n * Emits when the navigation buttons are clicked (previous/next).\n */\n navigationClicked = output<EdsCalendarNavigationEvent>();\n /**\n * Emits when the \"Today\" button is clicked.\n */\n todayClicked = output<Date>();\n /**\n * True if the current date is today.\n */\n isCurrentDateToday = computed(() => {\n const current = this.currentDate();\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n if (this.mode() === EdsCalendarMode.Daily) {\n return current.getDate() === today.getDate() &&\n current.getMonth() === today.getMonth() &&\n current.getFullYear() === today.getFullYear();\n } else if (this.mode() === EdsCalendarMode.Weekly) {\n const { start, end } = this.getWeekRange(current, this.startingDay());\n const compareDate = new Date(today);\n const startDate = new Date(start);\n const endDate = new Date(end);\n startDate.setHours(0, 0, 0, 0);\n endDate.setHours(23, 59, 59, 999);\n return compareDate >= startDate && compareDate <= endDate;\n } else {\n return current.getMonth() === today.getMonth() &&\n current.getFullYear() === today.getFullYear();\n }\n });\n /**\n * Formatted date string for display in the header.\n */\n formattedDate = computed(() => {\n const options: Intl.DateTimeFormatOptions = this.formattedOptions();\n\n if (this.mode() === EdsCalendarMode.Monthly) {\n const locale = this.locale().id;\n return this.currentDate().toLocaleDateString(locale, options);\n } else if (this.mode() === EdsCalendarMode.Weekly) {\n const { start, end } = this.getWeekRange(this.currentDate(), this.startingDay());\n const locale = this.locale().id;\n const startStr = start.toLocaleDateString(locale, options);\n const endStr = end.toLocaleDateString(locale, options);\n return `${startStr} - ${endStr}`;\n } else if (this.mode() === EdsCalendarMode.Daily) {\n const date = this.currentDate();\n const locale = this.locale().id;\n return date.toLocaleDateString(locale, options);\n }\n return '';\n });\n /**\n * Context object passed to the custom header template.\n */\n headerContext = computed<EdsCalendarHeaderContext>(() => ({\n currentDate: this.currentDate(),\n mode: this.mode(),\n previous: this.navigatePrevious.bind(this),\n next: this.navigateNext.bind(this),\n cbToday: this.goToToday.bind(this),\n formattedDate: this.formattedDate(),\n isToday: this.isCurrentDateToday(),\n }));\n /**\n * Calculates the maximum width required to display the longest month name.\n */\n maxMonthWidth = computed(() => {\n const currentYear = this.currentDate().getFullYear();\n const locale = this.locale().id;\n const monthNames: string[] = [];\n\n for (let i = 0; i < 12; i++) {\n const date = new Date(currentYear, i, 1);\n monthNames.push(date.toLocaleDateString(locale, this.formattedOptions()));\n }\n\n const longestMonth = monthNames.reduce((a, b) => a.length > b.length ? a : b);\n return this.mode() === EdsCalendarMode.Weekly ? `${longestMonth.length * 2 + 2}ch` : `${longestMonth.length}ch`;\n });\n\n private formattedOptions = computed(() => {\n if (this.dateFormatOptions() !== null) {\n return this.dateFormatOptions();\n }\n return this.getFormattedOptions();\n });\n private locale = inject(LocaleService).getSignal();\n\n navigatePrevious(): void {\n const current = this.currentDate();\n switch (this.mode()) {\n case EdsCalendarMode.Daily:\n this.currentDate.update(m => new Date(m.getFullYear(), m.getMonth(), m.getDate() - 1));\n break;\n case EdsCalendarMode.Weekly:\n this.currentDate.update(m => new Date(m.getFullYear(), m.getMonth(), m.getDate() - 7));\n break;\n case EdsCalendarMode.Monthly:\n default:\n this.currentDate.update(m => new Date(m.getFullYear(), m.getMonth() - 1, 1));\n break;\n }\n this.navigationClicked.emit({\n direction: EdsCalendarNavigationDirection.Previous,\n current: current,\n new: this.currentDate(),\n mode: this.mode(),\n });\n }\n\n navigateNext(): void {\n const current = this.currentDate();\n switch (this.mode()) {\n case EdsCalendarMode.Daily:\n this.currentDate.update(m => new Date(m.getFullYear(), m.getMonth(), m.getDate() + 1));\n break;\n case EdsCalendarMode.Weekly:\n this.currentDate.update(m => new Date(m.getFullYear(), m.getMonth(), m.getDate() + 7));\n break;\n case EdsCalendarMode.Monthly:\n default:\n this.currentDate.update(m => new Date(m.getFullYear(), m.getMonth() + 1, 1));\n break;\n }\n this.navigationClicked.emit({\n direction: EdsCalendarNavigationDirection.Next,\n current: current,\n new: this.currentDate(),\n mode: this.mode(),\n });\n }\n\n goToToday(): void {\n const today = new Date();\n this.todayClicked.emit(today);\n }\n\n private getFormattedOptions(): Intl.DateTimeFormatOptions {\n if (this.mode() === EdsCalendarMode.Monthly) {\n return { month: 'long', year: 'numeric' };\n } else if (this.mode() === EdsCalendarMode.Weekly) {\n return { year: 'numeric', month: 'short', day: 'numeric' };\n } else {\n return { year: 'numeric', month: 'long', day: 'numeric', weekday: 'long' };\n }\n }\n\n private getWeekRange(date: Date, startDay: number): { start: Date; end: Date } {\n const jsDay = date.getDay();\n const targetStartDay = (startDay + 1) % 7;\n const daysBack = (jsDay - targetStartDay + 7) % 7;\n\n const start = new Date(date);\n start.setDate(date.getDate() - daysBack);\n\n const end = new Date(start);\n const daysInWeek = this.containWeekends() ? 6 : 4;\n end.setDate(start.getDate() + daysInWeek);\n\n return { start, end };\n }\n}\n","@if (customTemplate(); as template) {\n <ng-container [ngTemplateOutletContext]=\"headerContext()\" [ngTemplateOutlet]=\"template\" />\n} @else {\n <div class=\"eds-calendar-header__nav\">\n <div class=\"eds-calendar-header__left\">\n @if (showNavigationButtons()) {\n <button edsIconButton color=\"neutral\" size=\"s\" icon=\"caret-left:core\" ariaLabel=\"Go to previous\" (click)=\"navigatePrevious()\"></button>\n }\n <div class=\"eds-calendar-header__label\" [style.min-width]=\"maxMonthWidth()\">\n <span class=\"eds-calendar-header__date\">{{ formattedDate() }}</span>\n @if (subLabel()) {\n <span class=\"eds-calendar-header__sublabel\">{{ subLabel() }}</span>\n }\n </div>\n @if (showNavigationButtons()) {\n <button edsIconButton color=\"neutral\" size=\"s\" icon=\"caret-right:core\" ariaLabel=\"Go to next\" (click)=\"navigateNext()\"></button>\n }\n </div>\n @if (showTodayButton()) {\n <button edsButton edsNeutral [disabled]=\"isCurrentDateToday()\" (click)=\"goToToday()\">Today</button>\n }\n </div>\n}\n","import { Directive } from '@angular/core';\nimport { EdsCalendarDayCell, EdsCalendarEvent } from './eds-calendar.models';\n\nexport interface EdsCalendarDayCellTemplateContext {\n $implicit: EdsCalendarDayCell;\n}\n\nexport interface EdsCalendarHeaderCellTemplateContext {\n date: Date;\n}\n\nexport interface EdsCalendarEventCellTemplateContext {\n $implicit: EdsCalendarEvent;\n label: string;\n type: string;\n}\n\n@Directive({ selector: 'ng-template[edsCalendarDayCell]' })\nexport class EdsCalendarDayCellDef {\n static ngTemplateContextGuard(_dir: EdsCalendarDayCellDef, ctx: unknown): ctx is EdsCalendarDayCellTemplateContext {\n return true;\n }\n}\n\n@Directive({ selector: 'ng-template[edsCalendarHeaderCell]' })\nexport class EdsCalendarHeaderCellDef {\n static ngTemplateContextGuard(_dir: EdsCalendarHeaderCellDef, ctx: unknown): ctx is EdsCalendarHeaderCellTemplateContext {\n return true;\n }\n}\n\n@Directive({ selector: 'ng-template[edsCalendarEventCell]' })\nexport class EdsCalendarEventCellDef {\n static ngTemplateContextGuard(_dir: EdsCalendarEventCellDef, ctx: unknown): ctx is EdsCalendarEventCellTemplateContext {\n return true;\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n input,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EDS_BUTTON } from '@eui/eds/eds-button';\nimport { EDS_ICON_BUTTON } from '@eui/eds/eds-icon-button';\nimport { EDS_TAG, EdsTagColor } from '@eui/eds/eds-tag';\nimport { EDS_POPOVER, EdsPopover } from '@eui/eds/eds-popover';\nimport { EDS_ICON } from '@eui/eds/eds-icon';\nimport { EdsCalendarEvent, EdsCalendarEventType } from './eds-calendar.models';\nimport { EdsCalendarEventCellDef, EdsCalendarEventCellTemplateContext } from './eds-calendar-templates.directive';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\n\n@Component({\n templateUrl: './eds-calendar-day.html',\n selector: 'eds-calendar-day',\n styleUrl: './eds-calendar-day.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n ...EDS_BUTTON,\n ...EDS_ICON_BUTTON,\n ...EDS_TAG,\n ...EDS_POPOVER,\n ...EDS_ICON,\n ],\n host: {\n '[class]': 'hostClasses()',\n '(mouseenter)': 'onMouseOver()',\n '(mouseleave)': 'onMouseOut()',\n },\n})\nexport class EdsCalendarDay {\n edsDisabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n dayOfTheMonth = input<number, NumberInput>(4, { transform: numberAttribute });\n maxNumberOfEventsToShow = input<number, NumberInput>(2, { transform: numberAttribute });\n events = input<EdsCalendarEvent[]>();\n eventTemplate = input<TemplateRef<EdsCalendarEventCellTemplateContext>>();\n resolvedEventTemplate = computed(() => this.eventTemplate() || this.eventTemplateDef());\n isSelected = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n addNewEvent = signal(false);\n addNewItemEvent = output();\n\n hostClasses = computed(() => {\n return [\n 'eds-calendar-day',\n this.edsDisabled() ? 'eds-calendar-day--disabled' : '',\n ].join(' ').trim();\n });\n\n protected renderNewEvent = computed(() => {\n return this.addNewEvent() && this.dayOfTheMonth() !== null;\n });\n\n private popover = viewChild<EdsPopover>('popover');\n private eventTemplateDef = contentChild(EdsCalendarEventCellDef, { read: TemplateRef });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n showMoreEvents(e: any): void {\n this.popover().openPopover(e.target);\n }\n\n onMouseOver(): void {\n if (!this.edsDisabled()) {\n this.addNewEvent.update(() => true);\n }\n }\n\n onMouseOut(): void {\n this.addNewEvent.update(() => false);\n }\n\n addNewItemClicked(): void {\n this.addNewItemEvent.emit();\n }\n\n protected tagColor(type: string | undefined): EdsTagColor {\n switch (type) {\n case EdsCalendarEventType.success:\n return 'success';\n case EdsCalendarEventType.warning:\n return 'warning';\n case EdsCalendarEventType.critical:\n return 'critical';\n case EdsCalendarEventType.primary:\n case EdsCalendarEventType.info:\n default:\n return 'info';\n }\n }\n}\n","@if (dayOfTheMonth()) {\n <div class=\"eds-calendar-day__header\">\n <button edsButton\n [edsButtonRounded]=\"isSelected()\"\n [edsPrimary]=\"isSelected()\"\n [edsNeutral]=\"!isSelected()\">\n {{ dayOfTheMonth() }}\n </button>\n @if (renderNewEvent()) {\n <button edsIconButton color=\"info\" size=\"s\" icon=\"plus:core\" ariaLabel=\"Add new event\" (click)=\"addNewItemClicked()\"></button>\n }\n </div>\n}\n\n<div class=\"eds-calendar-day__events\">\n @for (event of events(); track event.id; let idx = $index, l = $last) {\n @if (idx < maxNumberOfEventsToShow()) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type?.()) {\n <eds-tag [color]=\"tagColor(event.type?.())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n\n @if (l) {\n @if (events().length > maxNumberOfEventsToShow()) {\n <span class=\"eds-calendar-day__show-more\" (click)=\"showMoreEvents($event)\">\n +{{ events().length - maxNumberOfEventsToShow() }} more\n </span>\n }\n }\n }\n</div>\n\n<eds-popover #popover [title]=\"'Events'\">\n <div class=\"eds-calendar-day__popover-events\">\n @for (event of events(); track event.id) {\n @if (resolvedEventTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedEventTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: event, label: event.label(), type: event.type?.() }\">\n </ng-container>\n } @else if (event.type?.()) {\n <eds-tag [color]=\"tagColor(event.type?.())\">\n {{ event.label() }}\n </eds-tag>\n } @else {\n <eds-tag>{{ event.label() }}</eds-tag>\n }\n }\n </div>\n</eds-popover>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n inject,\n input,\n output,\n Signal,\n TemplateRef,\n} from '@angular/core';\nimport { EdsCalendarDay as EdsCalendarDayComponent } from './eds-calendar-day';\nimport { EdsCalendarEvent, EdsCalendarDayCell, EdsCalendarMonthlyOptions, EdsCalendarDayOfWeek } from './eds-calendar.models';\nimport { parseStartingDay } from './eds-calendar.utils';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { LocaleService } from '@eui/core';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n EdsCalendarDayCellDef,\n EdsCalendarDayCellTemplateContext,\n EdsCalendarEventCellDef,\n EdsCalendarEventCellTemplateContext,\n EdsCalendarHeaderCellDef,\n EdsCalendarHeaderCellTemplateContext,\n} from './eds-calendar-templates.directive';\n\n@Component({\n templateUrl: './eds-calendar-monthly.html',\n selector: 'eds-calendar-monthly',\n styleUrl: './eds-calendar-monthly.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n EdsCalendarDayComponent,\n NgTemplateOutlet,\n ],\n host: {\n class: 'eds-calendar-monthly',\n },\n})\nexport class EdsCalendarMonthly {\n /**\n * Array of disabled days (Date objects)\n */\n disabledDays = input<Date[]>([]);\n events = input<EdsCalendarEvent[]>([]);\n hasEmptyValue = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Template for rendering each day cell\n */\n dayTemplate = input<TemplateRef<EdsCalendarDayCellTemplateContext>>();\n /**\n * Template for rendering each header cell\n */\n headerTemplate = input<TemplateRef<EdsCalendarHeaderCellTemplateContext>>();\n /**\n * Resolved day template: prefers input, falls back to content-projected directive\n */\n resolvedDayTemplate = computed(() => this.dayTemplate() || this.dayTemplateDef());\n /**\n * Resolved header template: prefers input, falls back to content-projected directive\n */\n resolvedHeaderTemplate = computed(() => this.headerTemplate() || this.headerTemplateDef());\n /**\n * Template for rendering each event cell\n */\n eventTemplate = input<TemplateRef<EdsCalendarEventCellTemplateContext>>();\n /**\n * Resolved event template: prefers input, falls back to content-projected directive\n */\n resolvedEventTemplate = computed(() => this.eventTemplate() || this.eventTemplateDef());\n /**\n * Display mode of the calendar ('compact' or 'truncated')\n */\n mode = input<'compact' | 'truncated'>('truncated');\n /**\n * Starting day of the week (0=Monday, 1=Tuesday, ..., 6=Sunday)\n */\n startingDay = input<number, NumberInput>(EdsCalendarDayOfWeek.MONDAY, { transform: parseStartingDay });\n /**\n * The reference date for the month.\n */\n date = input<Date>(new Date());\n /**\n * Fill with previous month days\n */\n fillPreviousMonth = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Fill with next month days\n */\n fillNextMonth = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Disable selection of future dates\n */\n disableFutureDates = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Disable selection of past dates\n */\n disablePastDates = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Disable selection of weekend dates\n */\n disableWeekends = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Disable days that are not in the current selected month\n */\n disabledDaysNotInMonth = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n newEventAddClicked = output<EdsCalendarDayCell>();\n\n monthlyCalendar: Signal<EdsCalendarDayCell[][]> = computed(() => {\n const currentEvents = this.events();\n\n return this.generateCalendarGrid(this.date().getMonth() + 1, this.startingDay(), {\n year: this.date().getFullYear(),\n emptyValue: this.hasEmptyValue() ? null : undefined,\n fillPreviousMonth: this.fillPreviousMonth(),\n fillNextMonth: this.fillNextMonth(),\n })\n .filter(week => week.some(day => (typeof day === 'number') || (typeof day === 'object' && day?.isCurrentMonth)))\n .map(week => week.map(day => {\n if (day && typeof day === 'object') {\n let isDisabled = false;\n if (this.disableFutureDates() && day.isFuture) {\n isDisabled = true;\n }\n if (this.disablePastDates() && day.isPast) {\n isDisabled = true;\n }\n if (this.disableWeekends() && day.isWeekend) {\n isDisabled = true;\n }\n if (this.disabledDaysNotInMonth() && !day.isCurrentMonth) {\n isDisabled = true;\n }\n const date = new Date(day.year, day.month - 1, day.day);\n if (this.disabledDays().some(disabledDate =>\n disabledDate.toDateString() === date.toDateString(),\n )) {\n isDisabled = true;\n }\n day.isDisabled = isDisabled;\n const dayEvents: EdsCalendarEvent[] = currentEvents.filter(event => {\n return event.date().getDate() === day.day &&\n (event.date().getMonth() + 1) === day.month &&\n event.date().getFullYear() === day.year;\n }).map(v => ({\n label: v.label,\n id: v.id,\n type: v?.type,\n date: v.date,\n ...v,\n }));\n if (dayEvents.length > 0) {\n day.events = dayEvents;\n }\n }\n return day;\n }));\n });\n\n daysHeaderArray = computed(() => {\n const days = Array.from({ length: 7 }, (_, i) => {\n const date = new Date(2024, 0, 1 + i);\n return date;\n });\n return days.slice(this.startingDay()).concat(days.slice(0, this.startingDay())).map(day => ({\n short: day.toLocaleDateString(this.locale(), { weekday: 'short' }),\n date: day,\n }));\n });\n\n private dayTemplateDef = contentChild(EdsCalendarDayCellDef, { read: TemplateRef });\n private headerTemplateDef = contentChild(EdsCalendarHeaderCellDef, { read: TemplateRef });\n private eventTemplateDef = contentChild(EdsCalendarEventCellDef, { read: TemplateRef });\n private locale = inject(LocaleService).getSignal();\n\n addNewItemClicked(day: EdsCalendarDayCell): void {\n this.newEventAddClicked.emit(day);\n }\n\n generateCalendarGrid(month: number, startingDay: number, options: EdsCalendarMonthlyOptions = {}): EdsCalendarDayCell[][] {\n if (!Number.isInteger(month) || month < 1 || month > 12) {\n throw new Error('Month must be an integer between 1 and 12.');\n }\n\n const {\n year = new Date().getFullYear(),\n emptyValue = null,\n fillPreviousMonth = false,\n fillNextMonth = false,\n includeMetadata = true,\n includeToday = true,\n includeTemporalFlags = true,\n includeWeekends = true,\n includeWeekNumbers = false,\n weekendDays = [0, 6],\n } = options;\n\n const grid = Array(6).fill(null).map(() => Array(7).fill(emptyValue));\n\n const daysInMonth = this.getDaysInMonth(month, year);\n const firstDayOfMonth = this.getFirstDayOfMonth(month, year);\n\n const firstDayISO = (firstDayOfMonth + 6) % 7;\n const columnOffset = (firstDayISO - startingDay + 7) % 7;\n\n const shouldReturnObjects = includeMetadata || fillPreviousMonth || fillNextMonth ||\n includeToday || includeTemporalFlags || includeWeekends;\n\n const cellOptions = {\n includeToday,\n includeTemporalFlags,\n includeWeekends,\n includeWeekNumbers,\n weekendDays,\n };\n\n if (fillPreviousMonth && columnOffset > 0) {\n const prevMonth = month === 1 ? 12 : month - 1;\n const prevYear = month === 1 ? year - 1 : year;\n const daysInPrevMonth = this.getDaysInMonth(prevMonth, prevYear);\n\n for (let i = columnOffset - 1; i >= 0; i--) {\n const day = daysInPrevMonth - (columnOffset - 1 - i);\n grid[0][i] = this.createEnhancedDayCell(day, prevMonth, prevYear, false, cellOptions);\n }\n }\n\n let currentDay = 1;\n let row = 0;\n let col = columnOffset;\n\n while (currentDay <= daysInMonth) {\n if (shouldReturnObjects) {\n grid[row][col] = this.createEnhancedDayCell(currentDay, month, year, true, cellOptions);\n } else {\n grid[row][col] = currentDay;\n }\n\n currentDay++;\n col++;\n\n if (col === 7) {\n col = 0;\n row++;\n }\n }\n\n if (fillNextMonth && (row < 6 || col > 0)) {\n const nextMonth = month === 12 ? 1 : month + 1;\n const nextYear = month === 12 ? year + 1 : year;\n let nextMonthDay = 1;\n\n while (row < 6) {\n while (col < 7) {\n if (grid[row][col] === emptyValue) {\n grid[row][col] = this.createEnhancedDayCell(\n nextMonthDay,\n nextMonth,\n nextYear,\n false,\n cellOptions,\n );\n nextMonthDay++;\n }\n col++;\n }\n col = 0;\n row++;\n }\n }\n\n return grid as EdsCalendarDayCell[][];\n }\n\n trackByDay(index: number, day: EdsCalendarDayCell): string | number {\n if (!day) return `empty-${index}`;\n return new Date(day.year, day.month, day.day).getTime();\n }\n\n private getDaysInMonth(month: number, year: number = new Date().getFullYear()): number {\n return new Date(year, month, 0).getDate();\n }\n\n private getFirstDayOfMonth(month: number, year: number = new Date().getFullYear()): number {\n return new Date(year, month - 1, 1).getDay();\n }\n\n private getISOWeekNumber(date: Date): number {\n const tempDate = new Date(date.getTime());\n tempDate.setHours(0, 0, 0, 0);\n tempDate.setDate(tempDate.getDate() + 3 - (tempDate.getDay() + 6) % 7);\n const week1 = new Date(tempDate.getFullYear(), 0, 4);\n return 1 + Math.round(((tempDate.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);\n }\n\n private compareDatesAtDayPrecision(date1: Date, date2: Date): 0 | 1 | -1 {\n const d1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());\n const d2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());\n if (d1 < d2) return -1;\n if (d1 > d2) return 1;\n return 0;\n }\n\n private createEnhancedDayCell(day: number, month: number, year: number, isCurrentMonth: boolean, options: object = {}): EdsCalendarDayCell {\n const {\n includeToday = true,\n includeTemporalFlags = true,\n includeWeekends = true,\n includeWeekNumbers = false,\n weekendDays = [0, 6],\n } = options as {\n includeToday?: boolean;\n includeTemporalFlags?: boolean;\n includeWeekends?: boolean;\n includeWeekNumbers?: boolean;\n weekendDays?: number[];\n };\n\n const cellDate = new Date(year, month - 1, day);\n const today = new Date();\n\n const cell = {\n day,\n month,\n year,\n isCurrentMonth,\n dayOfWeek: cellDate.getDay(),\n dateString: `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`,\n } as EdsCalendarDayCell;\n\n if (includeToday || includeTemporalFlags) {\n const comparison = this.compareDatesAtDayPrecision(cellDate, today);\n if (includeToday) {\n cell.isToday = comparison === 0;\n }\n if (includeTemporalFlags) {\n cell.isPast = comparison === -1;\n cell.isFuture = comparison === 1;\n }\n }\n\n if (includeWeekends) {\n cell.isWeekend = weekendDays.includes(cellDate.getDay());\n }\n\n if (includeWeekNumbers) {\n cell.weekNumber = this.getISOWeekNumber(cellDate);\n }\n\n const daysInMonth = this.getDaysInMonth(month, year);\n cell.isFirstDayOfMonth = isCurrentMonth && day === 1;\n cell.isLastDayOfMonth = isCurrentMonth && day === daysInMonth;\n\n return cell;\n }\n}\n","<table role=\"grid\" aria-label=\"Calendar\" [class.eds-calendar-monthly--compact]=\"this.mode() === 'compact'\" [class.eds-calendar-monthly--truncated]=\"this.mode() === 'truncated'\">\n <thead>\n <tr>\n @for (day of daysHeaderArray(); track $index) {\n @if (resolvedHeaderTemplate()) {\n <th class=\"eds-calendar-monthly--day-header\" scope=\"col\">\n <ng-container\n [ngTemplateOutlet]=\"resolvedHeaderTemplate()\"\n [ngTemplateOutletContext]=\"{ date: day.date }\">\n </ng-container>\n </th>\n } @else {\n <th class=\"eds-calendar-monthly--day-header\" scope=\"col\">{{ day.short }}</th>\n }\n }\n </tr>\n </thead>\n <tbody>\n @for (week of monthlyCalendar(); track $index; let weekIdx = $index) {\n <tr>\n @for (day of week; track trackByDay(dayIdx, day); let dayIdx = $index) {\n <td class=\"eds-calendar-monthly--day\"\n [class.weekend]=\"day?.isWeekend\"\n [class.disabled]=\"day?.isDisabled\"\n [attr.aria-disabled]=\"day?.isDisabled ? 'true' : null\"\n [attr.aria-current]=\"day?.isToday ? 'date' : null\">\n @if (resolvedDayTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"resolvedDayTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: day }\">\n </ng-container>\n } @else {\n <eds-calendar-day [dayOfTheMonth]=\"day?.day\"\n [isSelected]=\"day?.isToday\"\n [edsDisabled]=\"day?.isDisabled\"\n [maxNumberOfEventsToShow]=\"2\"\n [events]=\"day?.events\"\n [eventTemplate]=\"resolvedEventTemplate()\"\n (addNewItemEvent)=\"addNewItemClicked(day)\">\n </eds-calendar-day>\n }\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component, computed, inject, input, model } from '@angular/core';\nimport { LocaleService } from '@eui/core';\n\n@Component({\n selector: 'eds-calendar-weekly-day-header',\n template: `\n <span class=\"eds-calendar-weekly-day-header__day\"><strong>{{ dayOfTheWeek() }}</strong> {{ dayOfTheMonth() }}</span>\n @if (sublabel()) {\n <span class=\"eds-calendar-weekly-day-header__sublabel\">{{ sublabel() }}</span>\n }\n `,\n styles: `\n :host {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n width: 100%;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EdsCalendarWeeklyDayHeader {\n date = model.required<Date>();\n sublabel = input<string>();\n private locale = inject(LocaleService, { optional: true })?.getSignal();\n\n protected dayOfTheWeek = computed(() => {\n return this.date()?.toLocaleDateString(this.locale?.()?.id || 'en-US', { weekday: 'short' }).toUpperCase() ?? '';\n });\n\n protected dayOfTheMonth = computed(() => {\n return this.date()?.toLocaleDateString(this.locale?.()?.id || 'en-US', { day: 'numeric', month: 'long' }) ?? '';\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { EdsColorDirective } from '@eui/eds/shared';\nimport { EDS_CARD } from '@eui/eds/eds-card';\n\n@Component({\n selector: 'eds-calendar-weekly-day-content',\n templateUrl: './eds-calendar-weekly-day-content.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [...EDS_CARD],\n hostDirectives: [{\n directive: EdsColorDirective,\n inputs: ['edsPrimary', 'edsSuccess', 'edsInfo', 'edsWarning', 'edsCritical', 'edsColorVariant'],\n }],\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class EdsCalendarWeeklyDayContent {\n label = input.required<string>();\n subLabel = input<string>();\n protected colorDirective = inject(EdsColorDirective);\n\n hostClasses = computed(() => {\n const colorClass = this.colorDirective.getCssClass('eds-calendar-event');\n return ['eds-calendar-event', colorClass].join(' ').trim();\n });\n}\n","<eds-card>\n <eds-card-body>\n <strong>{{ label() }}</strong>\n @if (subLabel()) {\n <div class=\"eds-calendar-event__sublabel\">{{ subLabel() }}</div>\n }\n </eds-card-body>\n</eds-card>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n output,\n TemplateRef,\n} from '@angular/core';\nimport { CdkDrag, CdkDragDrop, CdkDropList } from '@angular/cdk/drag-drop';\nimport { EdsCalendarWeeklyDayHeader } from './eds-calendar-weekly-day-header';\nimport { EdsCalendarWeeklyDayContent } from './eds-calendar-weekly-day-content';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { EdsCalendarDayOfWeek, EdsCalendarDayData, EdsCalendarEvent } from './eds-calendar.models';\n\n@Component({\n selector: 'eds-calendar-weekly',\n templateUrl: './eds-calendar-weekly.html',\n styleUrl: './eds-calendar-weekly.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CdkDropList,\n CdkDrag,\n EdsCalendarWeeklyDayHeader,\n EdsCalendarWeeklyDayContent,\n NgTemplateOutlet,\n NgClass,\n ],\n host: {\n class: 'eds-calendar-weekly',\n },\n})\nexport class EdsCalendarWeekly {\n /**\n * Whether drag-and-drop is enabled for events (defaults to true)\n */\n dragAndDrop = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n /**\n * The reference date for the week.\n */\n date = model<Date>(new Date());\n /**\n * Events for the week.\n */\n events = model<EdsCalendarEvent[]>([]);\n /**\n * Whether to show weekends in the calendar (defaults to false)\n */\n showWeekends = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * Starting day of the week (0=Monday, 1=Tuesday, ..., 6=Sunday)\n */\n startingDay = input<number, NumberInput>(EdsCalendarDayOfWeek.MONDAY, { transform: this.startingDayTransformer });\n /**\n * Array of disabled days (Date objects)\n */\n disabledDays = input<Date[]>([]);\n /**\n * Emits when an event is moved to a different day\n */\n eventMoved = output<{ event: EdsCalendarEvent; newDate: Date }>();\n /**\n * Optional custom template for day headers\n */\n dayHeaderTemplate = input<TemplateRef<EdsCalendarDayData>>();\n /**\n * Optional custom template for event content\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n eventContentTemplate = input<TemplateRef<any>>();\n\n daysInWeek = computed((): EdsCalendarDayData[] => {\n const referenceDate = this.date();\n const startingDay = this.startingDay();\n\n const firstDayOfWeek = this.getWeekStartDate(referenceDate, startingDay);\n\n const days: EdsCalendarDayData[] = [];\n for (let i = 0; i < 7; i++) {\n const date = new Date(firstDayOfWeek);\n date.setDate(firstDayOfWeek.getDate() + i);\n if (!this.showWeekends() && (date.getDay() === 0 || date.getDay() === 6)) {\n continue;\n }\n days.push({\n id: i,\n isToday: date.toDateString() === new Date().toDateString(),\n isWeekend: date.getDay() === 0 || date.getDay() === 6,\n date,\n disabled: this.disabledDays().some(disabledDate =>\n disabledDate.toDateString() === date.toDateString(),\n ),\n metadata: computed(() => {\n return this.events().filter(event => {\n const eventDate = event.date();\n return eventDate.getFullYear() === date.getFullYear() &&\n eventDate.getMonth() === date.getMonth() &&\n eventDate.getDate() === date.getDate();\n });\n }),\n });\n }\n return days;\n });\n\n /**\n * Emits when a day header action is triggered\n */\n dayAction = output<{ $event: MouseEvent | KeyboardEvent; day: EdsCalendarDayData }>();\n\n protected id = crypto.randomUUID();\n\n dropListIds = computed(() => {\n return this.daysInWeek().map((day) => `${this.id}_${day.date.getTime()}`);\n });\n\n private DayNameMap: { [s: string]: number } = {\n monday: EdsCalendarDayOfWeek.MONDAY,\n mon: EdsCalendarDayOfWeek.MONDAY,\n tuesday: EdsCalendarDayOfWeek.TUESDAY,\n tue: EdsCalendarDayOfWeek.TUESDAY,\n wednesday: EdsCalendarDayOfWeek.WEDNESDAY,\n wed: EdsCalendarDayOfWeek.WEDNESDAY,\n thursday: EdsCalendarDayOfWeek.THURSDAY,\n thu: EdsCalendarDayOfWeek.THURSDAY,\n friday: EdsCalendarDayOfWeek.FRIDAY,\n fri: EdsCalendarDayOfWeek.FRIDAY,\n saturday: EdsCalendarDayOfWeek.SATURDAY,\n sat: EdsCalendarDayOfWeek.SATURDAY,\n sunday: EdsCalendarDayOfWeek.SUNDAY,\n sun: EdsCalendarDayOfWeek.SUNDAY,\n };\n\n drop(dropEvent: CdkDragDrop<EdsCalendarDayData>): void {\n if (dropEvent.previousContainer.id === dropEvent.container.id) {\n return;\n }\n\n const movedEvent: EdsCalendarEvent = dropEvent.item.data;\n const targetDay: EdsCalendarDayData = dropEvent.container.data;\n\n this.events.update(currentEvents => {\n movedEvent.date.set(targetDay.date);\n return currentEvents.map(event =>\n event === movedEvent ? movedEvent : event,\n );\n });\n\n this.eventMoved.emit({\n event: movedEvent,\n newDate: targetDay.date,\n });\n }\n\n private getWeekStartDate(referenceDate: Date, startingDay: number): Date {\n const jsDay = referenceDate.getDay();\n const targetStartDay = (startingDay + 1) % 7;\n const daysBack = (jsDay - targetStartDay + 7) % 7;\n\n const result = new Date(referenceDate);\n result.setDate(referenceDate.getDate() - daysBack);\n return result;\n }\n\n private startingDayTransformer(startingDay: string | number): number {\n if (typeof startingDay === 'number' || /^\\d+$/.test(String(startingDay))) {\n startingDay = typeof startingDay === 'string' ? parseInt(startingDay, 10) : startingDay;\n if (startingDay >= 0 && startingDay <= 6) {\n return startingDay;\n }\n throw new Error(`Invalid starting day number: ${startingDay}. Must be 0-6.`);\n }\n\n if (typeof startingDay === 'string') {\n const normalized = startingDay.toLowerCase().trim();\n if (normalized in this.DayNameMap) {\n return this.DayNameMap[normalized];\n }\n throw new Error(`Invalid starting day: \"${startingDay}\". Use day name or abbreviation.`);\n }\n\n throw new Error('Starting day must be a string (day name) or number (0-6).');\n }\n}\n","@for (day of daysInWeek(); track day?.date?.getTime() || i; let i = $index) {\n <div [ngClass]=\"{ 'eds-day-column--weekend': day.isWeekend, 'eds-day-column--today': day.isToday, 'eds-day-column--disabled': day.disabled }\"\n [tabindex]=\"0\"\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\n [attr.aria-disabled]=\"day.disabled ? 'true' : null\"\n class=\"eds-day-column\"\n role=\"region\"\n [attr.aria-label]=\"day.date.toLocaleDateString()\">\n <!-- Day Header -->\n <div class=\"eds-day-header\">\n @if (dayHeaderTemplate()) {\n <ng-container *ngTemplateOutlet=\"dayHeaderTemplate(); context: day\" />\n } @else {\n <eds-calendar-weekly-day-header [date]=\"day.date\" />\n }\n </div>\n <!-- Day Content Area with Drag-and-Drop Support -->\n <div (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListConnectedTo]=\"dropListIds()\"\n [cdkDropListData]=\"day\"\n [cdkDropListDisabled]=\"!dragAndDrop()\"\n [id]=\"id + '_' + day.date.getTime()\"\n cdkDropList\n class=\"eds-day-content\">\n @for (event of day.metadata(); track event.id) {\n <div [cdkDragData]=\"event\"\n cdkDrag\n class=\"eds-event-card\">\n @if (eventContentTemplate()) {\n <ng-container *ngTemplateOutlet=\"eventContentTemplate(); context: event\" />\n } @else {\n <eds-calendar-weekly-day-content\n [edsCritical]=\"event.type ? event.type() === 'critical': false\"\n [edsInfo]=\"event.type ? event.type() === 'info' : false\"\n [edsPrimary]=\"event.type ? event.type() === 'primary' : false\"\n [edsSuccess]=\"event.type ? event.type() === 'success' : false\"\n [edsWarning]=\"event.type ? event.type() === 'warning' : false\"\n [label]=\"event.label()\"\n [subLabel]=\"event.subLabel()\">\n </eds-calendar-weekly-day-content>\n }\n </div>\n }\n </div>\n </div>\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, model, output, booleanAttribute } from '@angular/core';\nimport { LocaleService } from '@eui/core';\nimport { EDS_ICON_BUTTON } from '@eui/eds/eds-icon-button';\nimport { EDS_BUTTON } from '@eui/eds/eds-button';\nimport { EDS_DROPDOWN } from '@eui/eds/eds-dropdown';\nimport { EdsCalendarDayHeaderActionOption } from './eds-calendar.models';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n selector: 'eds-calendar-weekly-day-header-action',\n templateUrl: './eds-calendar-weekly-day-header-actions.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [...EDS_ICON_BUTTON, ...EDS_BUTTON, ...EDS_DROPDOWN],\n styles: `\n :host {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n }\n :host(.eds-calendar-weekly-day-header-action--disabled) {\n opacity: 0.5;\n pointer-events: none;\n }\n `,\n host: {\n class: 'eds-calendar-weekly-day-header-action',\n '[class.eds-calendar-weekly-day-header-action--disabled]': 'disabled()',\n },\n})\nexport class EdsCalendarWeeklyDayHeaderAction {\n disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n options = input<EdsCalendarDayHeaderActionOption[]>([]);\n date = model.required<Date>();\n action = output<MouseEvent | KeyboardEvent>();\n sublabel = input<string>();\n private locale = inject(LocaleService, { optional: true })?.getSignal();\n\n protected dayOfTheWeek = computed(() => {\n return this.date()?.toLocaleDateString(this.locale?.()?.id || 'en-US', { weekday: 'short' }).toUpperCase() ?? '';\n });\n\n protected dayOfTheMonth = computed(() => {\n return this.date()?.toLocaleDateString(this.locale?.()?.id || 'en-US', { day: 'numeric', month: 'long' }) ?? '';\n });\n}\n","<span class=\"eds-calendar-weekly-day-header-action__left\">\n <strong>{{ dayOfTheWeek() }}</strong> {{ dayOfTheMonth() }}\n @if (sublabel()) {\n <span class=\"eds-calendar-weekly-day-header-action__sublabel\">{{ sublabel() }}</span>\n }\n</span>\n<div class=\"eds-calendar-weekly-day-header-action__right\">\n <eds-dropdown>\n <button edsIconButton color=\"neutral\" size=\"s\" icon=\"dots-three-vertical:core\" ariaLabel=\"More options\" [disabled]=\"disabled()\"></button>\n <eds-dropdown-content>\n @for (option of options(); track option.id) {\n <eds-dropdown-item (click)=\"option.callback($event, date())\">{{ option.label }}</eds-dropdown-item>\n }\n </eds-dropdown-content>\n </eds-dropdown>\n</div>\n","import { EdsCalendar } from './eds-calendar';\nimport { EdsCalendarHeader } from './eds-calendar-header';\nimport { EdsCalendarMonthly } from './eds-calendar-monthly';\nimport { EdsCalendarDay } from './eds-calendar-day';\nimport { EdsCalendarWeekly } from './eds-calendar-weekly';\nimport { EdsCalendarWeeklyDayHeader } from './eds-calendar-weekly-day-header';\nimport { EdsCalendarWeeklyDayContent } from './eds-calendar-weekly-day-content';\nimport { EdsCalendarWeeklyDayHeaderAction } from './eds-calendar-weekly-day-header-actions';\nimport { EdsCalendarDayCellDef, EdsCalendarEventCellDef, EdsCalendarHeaderCellDef } from './eds-calendar-templates.directive';\n\nexport * from './eds-calendar';\nexport * from './eds-calendar-header';\nexport * from './eds-calendar-monthly';\nexport * from './eds-calendar-day';\nexport * from './eds-calendar-weekly';\nexport * from './eds-calendar-weekly-day-header';\nexport * from './eds-calendar-weekly-day-content';\nexport * from './eds-calendar-weekly-day-header-actions';\nexport * from './eds-calendar-templates.directive';\nexport * from './eds-calendar.models';\nexport * from './eds-calendar.utils';\n\n/** Convenience array for importing all eds-calendar components. */\nexport const EDS_CALENDAR = [\n EdsCalendar,\n EdsCalendarHeader,\n EdsCalendarMonthly,\n EdsCalendarDay,\n EdsCalendarWeekly,\n EdsCalendarWeeklyDayHeader,\n EdsCalendarWeeklyDayContent,\n EdsCalendarWeeklyDayHeaderAction,\n EdsCalendarDayCellDef,\n EdsCalendarEventCellDef,\n EdsCalendarHeaderCellDef,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","EdsCalendarDayComponent"],"mappings":"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"}
|