@eui/eds 22.0.0-alpha.21 → 22.0.0-alpha.23

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.
Files changed (200) hide show
  1. package/docs/changelog.html +61 -0
  2. package/docs/components/EdsButton.html +77 -203
  3. package/docs/components/EdsCalendarDay.html +1 -1
  4. package/docs/components/EdsCalendarHeader.html +1 -1
  5. package/docs/components/EdsDatepicker.html +1 -1
  6. package/docs/components/EdsDialogContainer.html +1 -1
  7. package/docs/components/EdsFeedbackMessage.html +35 -73
  8. package/docs/components/EdsFileUpload.html +1 -1
  9. package/docs/components/EdsFlexLayout.html +1 -1
  10. package/docs/components/EdsGridLayout.html +1 -1
  11. package/docs/components/EdsGridLayoutCell.html +1 -1
  12. package/docs/components/EdsGridLayoutRow.html +1 -1
  13. package/docs/components/EdsIconState.html +38 -3
  14. package/docs/components/EdsInputButton.html +0 -57
  15. package/docs/components/EdsInputCheckbox.html +0 -62
  16. package/docs/components/EdsInputIcon.html +0 -53
  17. package/docs/components/EdsInputNumber.html +0 -60
  18. package/docs/components/EdsInputRadio.html +0 -62
  19. package/docs/components/EdsInputText.html +0 -62
  20. package/docs/components/EdsLabel.html +1 -1
  21. package/docs/components/EdsLanguageSelectorDialog.html +3 -5
  22. package/docs/components/EdsLink.html +1 -1
  23. package/docs/components/EdsLoadingIndicator.html +1 -1
  24. package/docs/components/EdsPaginator.html +1 -1
  25. package/docs/components/EdsRating.html +66 -57
  26. package/docs/components/EdsSelect.html +0 -45
  27. package/docs/components/EdsSnc.html +2 -2
  28. package/docs/components/EdsTab.html +8 -133
  29. package/docs/components/EdsTabBody.html +21 -41
  30. package/docs/components/EdsTabHeader.html +13 -25
  31. package/docs/components/EdsTabHeaderLabel.html +4 -126
  32. package/docs/components/EdsTabHeaderLeftContent.html +4 -126
  33. package/docs/components/EdsTabHeaderRightContent.html +4 -126
  34. package/docs/components/EdsTabHeaderSublabel.html +4 -126
  35. package/docs/components/EdsTabs.html +113 -140
  36. package/docs/components/EdsTextarea.html +0 -62
  37. package/docs/components/EdsTreeListToolbar.html +1 -1
  38. package/docs/components/EdsTrend.html +1 -1
  39. package/docs/directives/EdsColorDirective.html +0 -9
  40. package/docs/directives/EdsFlexColDirective.html +1 -1
  41. package/docs/directives/EdsFlexGrowDirective.html +1 -1
  42. package/docs/directives/EdsFlexNoShrinkDirective.html +1 -1
  43. package/docs/directives/EdsSizeDirective.html +0 -3
  44. package/docs/directives/EdsTooltip.html +45 -281
  45. package/docs/js/search/search_index.js +2 -2
  46. package/docs/json/EdsButton.md +15 -24
  47. package/docs/json/EdsFeedbackMessage.md +4 -10
  48. package/docs/json/EdsIconState.md +2 -1
  49. package/docs/json/EdsRating.md +2 -0
  50. package/docs/json/EdsTab.md +1 -1
  51. package/docs/json/EdsTabs.md +7 -8
  52. package/docs/json/EdsTooltip.md +3 -3
  53. package/docs/json/documentation.json +1803 -2031
  54. package/docs/llms.txt +72 -109
  55. package/docs/miscellaneous/typealiases.html +179 -16
  56. package/docs/miscellaneous/variables.html +16 -16
  57. package/docs/properties.html +1 -1
  58. package/eds-flex-layout/package.json +4 -0
  59. package/eds-grid-layout/package.json +4 -0
  60. package/eds-icon-state/package.json +4 -0
  61. package/eds-label/package.json +4 -0
  62. package/eds-link/package.json +4 -0
  63. package/eds-loading-indicator/package.json +4 -0
  64. package/eds-snc/package.json +4 -0
  65. package/eds-trend/package.json +4 -0
  66. package/fesm2022/eui-eds-eds-alert.mjs +3 -3
  67. package/fesm2022/eui-eds-eds-alert.mjs.map +1 -1
  68. package/fesm2022/eui-eds-eds-button.mjs +53 -85
  69. package/fesm2022/eui-eds-eds-button.mjs.map +1 -1
  70. package/fesm2022/eui-eds-eds-calendar.mjs +4 -4
  71. package/fesm2022/eui-eds-eds-calendar.mjs.map +1 -1
  72. package/fesm2022/eui-eds-eds-datepicker.mjs +2 -2
  73. package/fesm2022/eui-eds-eds-datepicker.mjs.map +1 -1
  74. package/fesm2022/eui-eds-eds-dialog.mjs +4 -4
  75. package/fesm2022/eui-eds-eds-dialog.mjs.map +1 -1
  76. package/fesm2022/eui-eds-eds-discussion-thread.mjs +3 -3
  77. package/fesm2022/eui-eds-eds-discussion-thread.mjs.map +1 -1
  78. package/fesm2022/eui-eds-eds-feedback-message.mjs +28 -42
  79. package/fesm2022/eui-eds-eds-feedback-message.mjs.map +1 -1
  80. package/fesm2022/eui-eds-eds-file-upload.mjs +2 -2
  81. package/fesm2022/eui-eds-eds-file-upload.mjs.map +1 -1
  82. package/fesm2022/{eui-eds-utilities-eds-flex-layout.mjs → eui-eds-eds-flex-layout.mjs} +1 -1
  83. package/fesm2022/eui-eds-eds-flex-layout.mjs.map +1 -0
  84. package/fesm2022/{eui-eds-utilities-eds-grid-layout.mjs → eui-eds-eds-grid-layout.mjs} +1 -1
  85. package/fesm2022/eui-eds-eds-grid-layout.mjs.map +1 -0
  86. package/fesm2022/eui-eds-eds-growl.mjs +3 -3
  87. package/fesm2022/eui-eds-eds-growl.mjs.map +1 -1
  88. package/fesm2022/eui-eds-eds-icon-state.mjs +56 -0
  89. package/fesm2022/eui-eds-eds-icon-state.mjs.map +1 -0
  90. package/fesm2022/eui-eds-eds-input-button.mjs +10 -13
  91. package/fesm2022/eui-eds-eds-input-button.mjs.map +1 -1
  92. package/fesm2022/eui-eds-eds-input-checkbox.mjs +6 -17
  93. package/fesm2022/eui-eds-eds-input-checkbox.mjs.map +1 -1
  94. package/fesm2022/eui-eds-eds-input-icon.mjs +10 -9
  95. package/fesm2022/eui-eds-eds-input-icon.mjs.map +1 -1
  96. package/fesm2022/eui-eds-eds-input-number.mjs +5 -14
  97. package/fesm2022/eui-eds-eds-input-number.mjs.map +1 -1
  98. package/fesm2022/eui-eds-eds-input-radio.mjs +6 -17
  99. package/fesm2022/eui-eds-eds-input-radio.mjs.map +1 -1
  100. package/fesm2022/eui-eds-eds-input-text.mjs +5 -16
  101. package/fesm2022/eui-eds-eds-input-text.mjs.map +1 -1
  102. package/fesm2022/{eui-eds-utilities-eds-label.mjs → eui-eds-eds-label.mjs} +1 -1
  103. package/fesm2022/eui-eds-eds-label.mjs.map +1 -0
  104. package/fesm2022/eui-eds-eds-language-selector.mjs +5 -9
  105. package/fesm2022/eui-eds-eds-language-selector.mjs.map +1 -1
  106. package/fesm2022/{eui-eds-utilities-eds-link.mjs → eui-eds-eds-link.mjs} +1 -1
  107. package/fesm2022/eui-eds-eds-link.mjs.map +1 -0
  108. package/fesm2022/{eui-eds-utilities-eds-loading-indicator.mjs → eui-eds-eds-loading-indicator.mjs} +1 -1
  109. package/fesm2022/eui-eds-eds-loading-indicator.mjs.map +1 -0
  110. package/fesm2022/eui-eds-eds-paginator.mjs +2 -2
  111. package/fesm2022/eui-eds-eds-paginator.mjs.map +1 -1
  112. package/fesm2022/eui-eds-eds-progress-bar.mjs +3 -3
  113. package/fesm2022/eui-eds-eds-progress-bar.mjs.map +1 -1
  114. package/fesm2022/eui-eds-eds-rating.mjs +30 -16
  115. package/fesm2022/eui-eds-eds-rating.mjs.map +1 -1
  116. package/fesm2022/eui-eds-eds-select.mjs +10 -33
  117. package/fesm2022/eui-eds-eds-select.mjs.map +1 -1
  118. package/fesm2022/{eui-eds-utilities-eds-snc.mjs → eui-eds-eds-snc.mjs} +3 -3
  119. package/fesm2022/eui-eds-eds-snc.mjs.map +1 -0
  120. package/fesm2022/eui-eds-eds-tabs.mjs +192 -259
  121. package/fesm2022/eui-eds-eds-tabs.mjs.map +1 -1
  122. package/fesm2022/eui-eds-eds-textarea.mjs +5 -16
  123. package/fesm2022/eui-eds-eds-textarea.mjs.map +1 -1
  124. package/fesm2022/eui-eds-eds-tooltip.mjs +71 -86
  125. package/fesm2022/eui-eds-eds-tooltip.mjs.map +1 -1
  126. package/fesm2022/eui-eds-eds-tree-list.mjs +2 -2
  127. package/fesm2022/eui-eds-eds-tree-list.mjs.map +1 -1
  128. package/fesm2022/eui-eds-eds-tree.mjs +2 -2
  129. package/fesm2022/eui-eds-eds-tree.mjs.map +1 -1
  130. package/fesm2022/{eui-eds-utilities-eds-trend.mjs → eui-eds-eds-trend.mjs} +1 -1
  131. package/fesm2022/eui-eds-eds-trend.mjs.map +1 -0
  132. package/package.json +33 -33
  133. package/types/eui-eds-eds-button.d.ts +47 -33
  134. package/types/eui-eds-eds-button.d.ts.map +1 -1
  135. package/types/eui-eds-eds-feedback-message.d.ts +20 -10
  136. package/types/eui-eds-eds-feedback-message.d.ts.map +1 -1
  137. package/types/{eui-eds-utilities-eds-flex-layout.d.ts → eui-eds-eds-flex-layout.d.ts} +1 -1
  138. package/types/eui-eds-eds-flex-layout.d.ts.map +1 -0
  139. package/types/{eui-eds-utilities-eds-grid-layout.d.ts → eui-eds-eds-grid-layout.d.ts} +1 -1
  140. package/types/eui-eds-eds-grid-layout.d.ts.map +1 -0
  141. package/types/{eui-eds-utilities-eds-icon-state.d.ts → eui-eds-eds-icon-state.d.ts} +8 -3
  142. package/types/eui-eds-eds-icon-state.d.ts.map +1 -0
  143. package/types/eui-eds-eds-input-button.d.ts +5 -1
  144. package/types/eui-eds-eds-input-button.d.ts.map +1 -1
  145. package/types/eui-eds-eds-input-checkbox.d.ts +0 -4
  146. package/types/eui-eds-eds-input-checkbox.d.ts.map +1 -1
  147. package/types/eui-eds-eds-input-icon.d.ts +5 -1
  148. package/types/eui-eds-eds-input-icon.d.ts.map +1 -1
  149. package/types/eui-eds-eds-input-number.d.ts +1 -5
  150. package/types/eui-eds-eds-input-number.d.ts.map +1 -1
  151. package/types/eui-eds-eds-input-radio.d.ts +0 -4
  152. package/types/eui-eds-eds-input-radio.d.ts.map +1 -1
  153. package/types/eui-eds-eds-input-text.d.ts +1 -5
  154. package/types/eui-eds-eds-input-text.d.ts.map +1 -1
  155. package/types/{eui-eds-utilities-eds-label.d.ts → eui-eds-eds-label.d.ts} +1 -1
  156. package/types/eui-eds-eds-label.d.ts.map +1 -0
  157. package/types/eui-eds-eds-language-selector.d.ts.map +1 -1
  158. package/types/{eui-eds-utilities-eds-link.d.ts → eui-eds-eds-link.d.ts} +1 -1
  159. package/types/eui-eds-eds-link.d.ts.map +1 -0
  160. package/types/{eui-eds-utilities-eds-loading-indicator.d.ts → eui-eds-eds-loading-indicator.d.ts} +1 -1
  161. package/types/eui-eds-eds-loading-indicator.d.ts.map +1 -0
  162. package/types/eui-eds-eds-rating.d.ts +19 -2
  163. package/types/eui-eds-eds-rating.d.ts.map +1 -1
  164. package/types/eui-eds-eds-select.d.ts +1 -5
  165. package/types/eui-eds-eds-select.d.ts.map +1 -1
  166. package/types/{eui-eds-utilities-eds-snc.d.ts → eui-eds-eds-snc.d.ts} +1 -1
  167. package/types/eui-eds-eds-snc.d.ts.map +1 -0
  168. package/types/eui-eds-eds-tabs.d.ts +87 -100
  169. package/types/eui-eds-eds-tabs.d.ts.map +1 -1
  170. package/types/eui-eds-eds-textarea.d.ts +1 -5
  171. package/types/eui-eds-eds-textarea.d.ts.map +1 -1
  172. package/types/eui-eds-eds-tooltip.d.ts +27 -25
  173. package/types/eui-eds-eds-tooltip.d.ts.map +1 -1
  174. package/types/{eui-eds-utilities-eds-trend.d.ts → eui-eds-eds-trend.d.ts} +1 -1
  175. package/types/eui-eds-eds-trend.d.ts.map +1 -0
  176. package/fesm2022/eui-eds-utilities-eds-flex-layout.mjs.map +0 -1
  177. package/fesm2022/eui-eds-utilities-eds-grid-layout.mjs.map +0 -1
  178. package/fesm2022/eui-eds-utilities-eds-icon-state.mjs +0 -49
  179. package/fesm2022/eui-eds-utilities-eds-icon-state.mjs.map +0 -1
  180. package/fesm2022/eui-eds-utilities-eds-label.mjs.map +0 -1
  181. package/fesm2022/eui-eds-utilities-eds-link.mjs.map +0 -1
  182. package/fesm2022/eui-eds-utilities-eds-loading-indicator.mjs.map +0 -1
  183. package/fesm2022/eui-eds-utilities-eds-snc.mjs.map +0 -1
  184. package/fesm2022/eui-eds-utilities-eds-trend.mjs.map +0 -1
  185. package/types/eui-eds-utilities-eds-flex-layout.d.ts.map +0 -1
  186. package/types/eui-eds-utilities-eds-grid-layout.d.ts.map +0 -1
  187. package/types/eui-eds-utilities-eds-icon-state.d.ts.map +0 -1
  188. package/types/eui-eds-utilities-eds-label.d.ts.map +0 -1
  189. package/types/eui-eds-utilities-eds-link.d.ts.map +0 -1
  190. package/types/eui-eds-utilities-eds-loading-indicator.d.ts.map +0 -1
  191. package/types/eui-eds-utilities-eds-snc.d.ts.map +0 -1
  192. package/types/eui-eds-utilities-eds-trend.d.ts.map +0 -1
  193. package/utilities/eds-flex-layout/package.json +0 -4
  194. package/utilities/eds-grid-layout/package.json +0 -4
  195. package/utilities/eds-icon-state/package.json +0 -4
  196. package/utilities/eds-label/package.json +0 -4
  197. package/utilities/eds-link/package.json +0 -4
  198. package/utilities/eds-loading-indicator/package.json +0 -4
  199. package/utilities/eds-snc/package.json +0 -4
  200. package/utilities/eds-trend/package.json +0 -4
@@ -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 color=\"neutral\" [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 [rounded]=\"isSelected()\" [color]=\"isSelected() ? 'primary' : 'neutral'\">\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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"}
@@ -326,13 +326,13 @@ class EdsDatepicker {
326
326
  }
327
327
  }
328
328
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsDatepicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
329
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsDatepicker, isStandalone: true, selector: "eds-datepicker", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isDatetimepicker: { classPropertyName: "isDatetimepicker", publicName: "isDatetimepicker", isSignal: true, isRequired: false, transformFunction: null }, hasSeconds: { classPropertyName: "hasSeconds", publicName: "hasSeconds", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dateChange: "dateChange", value: "valueChange" }, host: { properties: { "attr.data-e2e": "e2eAttr()" } }, ngImport: i0, template: "<div edsInputGroup class=\"eds-datepicker__group\">\n <div edsInputGroupAddon>\n <input edsInputText\n [edsClearable]=\"false\"\n [id]=\"inputId()\"\n [placeholder]=\"placeholder()\"\n [value]=\"displayValue()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [attr.aria-label]=\"ariaLabel()\"\n (input)=\"onInputChange($event)\"\n (blur)=\"onTouched()\"\n (click)=\"onInputClick()\"/>\n @if (!readonly() && !disabled()) {\n <button edsButton edsButtonSecondary edsNeutral edsSizeS\n type=\"button\"\n [attr.aria-label]=\"'Open calendar'\"\n (click)=\"toggle()\">\n <eds-icon icon=\"calendar-blank:core\"/>\n </button>\n }\n </div>\n</div>\n\n@if (isOpen()) {\n <div class=\"eds-datepicker__dropdown\" [class.eds-datepicker__dropdown--up]=\"dropUp()\" (click)=\"$event.stopPropagation()\">\n <div class=\"eds-datepicker__header\">\n <button class=\"eds-datepicker__nav-btn\" type=\"button\" (click)=\"prevMonth()\" aria-label=\"Previous month\">\u2039</button>\n <span class=\"eds-datepicker__month-label\">{{ monthLabel() }}</span>\n <button class=\"eds-datepicker__nav-btn\" type=\"button\" (click)=\"nextMonth()\" aria-label=\"Next month\">\u203A</button>\n </div>\n <div class=\"eds-datepicker__weekdays\">\n @for (day of weekDays; track day) {\n <span class=\"eds-datepicker__weekday\">{{ day }}</span>\n }\n </div>\n <div class=\"eds-datepicker__days\">\n @for (day of calendarDays(); track $index) {\n @if (day === null) {\n <span class=\"eds-datepicker__day eds-datepicker__day--empty\"></span>\n } @else {\n <button class=\"eds-datepicker__day\"\n type=\"button\"\n [class.eds-datepicker__day--today]=\"isToday(day)\"\n [class.eds-datepicker__day--selected]=\"isSelected(day)\"\n [class.eds-datepicker__day--outside]=\"isOutsideRange(day)\"\n [disabled]=\"isOutsideRange(day)\"\n (click)=\"selectDay(day)\">\n {{ adapter.getDate(day) }}\n </button>\n }\n }\n </div>\n\n @if (isDatetimepicker()) {\n <div class=\"eds-datepicker__time\">\n <eds-timepicker [hasSeconds]=\"hasSeconds()\" [disabled]=\"disabled()\" (timeChange)=\"onTimeChange($event)\"/>\n </div>\n }\n </div>\n}\n", styles: [".eui-21 :host{display:inline-block;position:relative;width:100%}.eui-21 :host .eds-datepicker__group{margin-bottom:0}.eui-21 :host .eds-datepicker__dropdown{position:absolute;top:100%;left:0;z-index:1000;margin-top:var(--eds-sp-3xs);background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-divider);border-radius:var(--eds-br-m);box-shadow:var(--eds-sh-2);padding:var(--eds-sp-s);width:280px}.eui-21 :host .eds-datepicker__dropdown--up{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--eds-sp-3xs)}.eui-21 :host .eds-datepicker__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-datepicker__month-label{font:var(--eds-f-label-m-semibold);color:var(--eds-c-foreground-default)}.eui-21 :host .eds-datepicker__nav-btn{background:none;border:none;cursor:pointer;font-size:18px;padding:var(--eds-sp-3xs) var(--eds-sp-xs);border-radius:var(--eds-br-xs);color:var(--eds-c-foreground-subtle)}.eui-21 :host .eds-datepicker__nav-btn:hover{background-color:var(--eds-c-surface-neutral-subtler);color:var(--eds-c-foreground-default)}.eui-21 :host .eds-datepicker__nav-btn:focus-visible{outline:2px solid var(--eds-c-focus-default, #0e47cb);outline-offset:1px}.eui-21 :host .eds-datepicker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:var(--eds-sp-3xs)}.eui-21 :host .eds-datepicker__weekday{font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-subtler);padding:var(--eds-sp-3xs) 0}.eui-21 :host .eds-datepicker__days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.eui-21 :host .eds-datepicker__day{background:none;border:none;cursor:pointer;font:var(--eds-f-paragraph-s);padding:var(--eds-sp-3xs);border-radius:var(--eds-br-xs);text-align:center;min-height:32px;display:flex;align-items:center;justify-content:center}.eui-21 :host .eds-datepicker__day:hover:not(:disabled){background-color:var(--eds-c-surface-neutral-subtler)}.eui-21 :host .eds-datepicker__day--today{font-weight:700;border:var(--eds-bw-xs) solid var(--eds-c-border-primary)}.eui-21 :host .eds-datepicker__day--selected{background-color:var(--eds-c-surface-primary)!important;color:var(--eds-c-on-surface-primary);font-weight:600}.eui-21 :host .eds-datepicker__day--outside{color:var(--eds-c-foreground-subtler);opacity:.4;cursor:default}.eui-21 :host .eds-datepicker__day--empty{cursor:default}.eui-21 :host .eds-datepicker__day:focus-visible{outline:2px solid var(--eds-c-focus-default, #0e47cb);outline-offset:1px}.eui-21 :host .eds-datepicker__time{margin-top:var(--eds-sp-s);padding-top:var(--eds-sp-s);border-top:var(--eds-bw-xs) solid var(--eds-c-border-divider);display:flex;justify-content:center}\n"], dependencies: [{ kind: "component", type: i1.EdsIcon, selector: "eds-icon, span[edsIcon]", inputs: ["icon", "set", "color", "size", "ariaLabel", "ariaHidden", "rounded", "isLoading"] }, { kind: "component", type: i2.EdsInputText, selector: "input[edsInputText]", inputs: ["e2eAttr", "disabled", "readonly", "isInvalid"] }, { kind: "component", type: i3.EdsInputGroup, selector: "div[edsInputGroup]", inputs: ["e2eAttr"] }, { kind: "component", type: i3.EdsInputGroupAddon, selector: "div[edsInputGroupAddon], eds-input-group-addon", inputs: ["e2eAttr"] }, { kind: "component", type: i4.EdsButton, selector: "button[edsButton]", inputs: ["e2eAttr", "id", "edsDisabled", "edsBlockButton", "edsIconButton", "edsAvatarButton", "edsLineWrap", "edsButtonPrimary", "edsButtonSecondary", "edsButtonTertiary", "edsButtonRounded", "edsTypeVariant", "isChecked"] }, { kind: "component", type: i5.EdsTimepicker, selector: "eds-timepicker", inputs: ["e2eAttr", "stepHours", "stepMinutes", "stepSeconds", "hasSeconds", "disabled", "readonly"], outputs: ["timeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
329
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsDatepicker, isStandalone: true, selector: "eds-datepicker", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isDatetimepicker: { classPropertyName: "isDatetimepicker", publicName: "isDatetimepicker", isSignal: true, isRequired: false, transformFunction: null }, hasSeconds: { classPropertyName: "hasSeconds", publicName: "hasSeconds", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dateChange: "dateChange", value: "valueChange" }, host: { properties: { "attr.data-e2e": "e2eAttr()" } }, ngImport: i0, template: "<div edsInputGroup class=\"eds-datepicker__group\">\n <div edsInputGroupAddon>\n <input edsInputText\n [edsClearable]=\"false\"\n [id]=\"inputId()\"\n [placeholder]=\"placeholder()\"\n [value]=\"displayValue()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [attr.aria-label]=\"ariaLabel()\"\n (input)=\"onInputChange($event)\"\n (blur)=\"onTouched()\"\n (click)=\"onInputClick()\"/>\n @if (!readonly() && !disabled()) {\n <button edsButton variant=\"secondary\" color=\"neutral\" size=\"s\" type=\"button\" [attr.aria-label]=\"'Open calendar'\" (click)=\"toggle()\">\n <eds-icon icon=\"calendar-blank:core\"/>\n </button>\n }\n </div>\n</div>\n\n@if (isOpen()) {\n <div class=\"eds-datepicker__dropdown\" [class.eds-datepicker__dropdown--up]=\"dropUp()\" (click)=\"$event.stopPropagation()\">\n <div class=\"eds-datepicker__header\">\n <button class=\"eds-datepicker__nav-btn\" type=\"button\" (click)=\"prevMonth()\" aria-label=\"Previous month\">\u2039</button>\n <span class=\"eds-datepicker__month-label\">{{ monthLabel() }}</span>\n <button class=\"eds-datepicker__nav-btn\" type=\"button\" (click)=\"nextMonth()\" aria-label=\"Next month\">\u203A</button>\n </div>\n <div class=\"eds-datepicker__weekdays\">\n @for (day of weekDays; track day) {\n <span class=\"eds-datepicker__weekday\">{{ day }}</span>\n }\n </div>\n <div class=\"eds-datepicker__days\">\n @for (day of calendarDays(); track $index) {\n @if (day === null) {\n <span class=\"eds-datepicker__day eds-datepicker__day--empty\"></span>\n } @else {\n <button class=\"eds-datepicker__day\"\n type=\"button\"\n [class.eds-datepicker__day--today]=\"isToday(day)\"\n [class.eds-datepicker__day--selected]=\"isSelected(day)\"\n [class.eds-datepicker__day--outside]=\"isOutsideRange(day)\"\n [disabled]=\"isOutsideRange(day)\"\n (click)=\"selectDay(day)\">\n {{ adapter.getDate(day) }}\n </button>\n }\n }\n </div>\n\n @if (isDatetimepicker()) {\n <div class=\"eds-datepicker__time\">\n <eds-timepicker [hasSeconds]=\"hasSeconds()\" [disabled]=\"disabled()\" (timeChange)=\"onTimeChange($event)\"/>\n </div>\n }\n </div>\n}\n", styles: [".eui-21 :host{display:inline-block;position:relative;width:100%}.eui-21 :host .eds-datepicker__group{margin-bottom:0}.eui-21 :host .eds-datepicker__dropdown{position:absolute;top:100%;left:0;z-index:1000;margin-top:var(--eds-sp-3xs);background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-divider);border-radius:var(--eds-br-m);box-shadow:var(--eds-sh-2);padding:var(--eds-sp-s);width:280px}.eui-21 :host .eds-datepicker__dropdown--up{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--eds-sp-3xs)}.eui-21 :host .eds-datepicker__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-datepicker__month-label{font:var(--eds-f-label-m-semibold);color:var(--eds-c-foreground-default)}.eui-21 :host .eds-datepicker__nav-btn{background:none;border:none;cursor:pointer;font-size:18px;padding:var(--eds-sp-3xs) var(--eds-sp-xs);border-radius:var(--eds-br-xs);color:var(--eds-c-foreground-subtle)}.eui-21 :host .eds-datepicker__nav-btn:hover{background-color:var(--eds-c-surface-neutral-subtler);color:var(--eds-c-foreground-default)}.eui-21 :host .eds-datepicker__nav-btn:focus-visible{outline:2px solid var(--eds-c-focus-default, #0e47cb);outline-offset:1px}.eui-21 :host .eds-datepicker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:var(--eds-sp-3xs)}.eui-21 :host .eds-datepicker__weekday{font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-subtler);padding:var(--eds-sp-3xs) 0}.eui-21 :host .eds-datepicker__days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.eui-21 :host .eds-datepicker__day{background:none;border:none;cursor:pointer;font:var(--eds-f-paragraph-s);padding:var(--eds-sp-3xs);border-radius:var(--eds-br-xs);text-align:center;min-height:32px;display:flex;align-items:center;justify-content:center}.eui-21 :host .eds-datepicker__day:hover:not(:disabled){background-color:var(--eds-c-surface-neutral-subtler)}.eui-21 :host .eds-datepicker__day--today{font-weight:700;border:var(--eds-bw-xs) solid var(--eds-c-border-primary)}.eui-21 :host .eds-datepicker__day--selected{background-color:var(--eds-c-surface-primary)!important;color:var(--eds-c-on-surface-primary);font-weight:600}.eui-21 :host .eds-datepicker__day--outside{color:var(--eds-c-foreground-subtler);opacity:.4;cursor:default}.eui-21 :host .eds-datepicker__day--empty{cursor:default}.eui-21 :host .eds-datepicker__day:focus-visible{outline:2px solid var(--eds-c-focus-default, #0e47cb);outline-offset:1px}.eui-21 :host .eds-datepicker__time{margin-top:var(--eds-sp-s);padding-top:var(--eds-sp-s);border-top:var(--eds-bw-xs) solid var(--eds-c-border-divider);display:flex;justify-content:center}\n"], dependencies: [{ kind: "component", type: i1.EdsIcon, selector: "eds-icon, span[edsIcon]", inputs: ["icon", "set", "color", "size", "ariaLabel", "ariaHidden", "rounded", "isLoading"] }, { kind: "component", type: i2.EdsInputText, selector: "input[edsInputText]", inputs: ["e2eAttr", "disabled", "readonly", "isInvalid"] }, { kind: "component", type: i3.EdsInputGroup, selector: "div[edsInputGroup]", inputs: ["e2eAttr"] }, { kind: "component", type: i3.EdsInputGroupAddon, selector: "div[edsInputGroupAddon], eds-input-group-addon", inputs: ["e2eAttr"] }, { kind: "component", type: i4.EdsButton, selector: "button[edsButton]", inputs: ["e2eAttr", "id", "variant", "color", "size", "disabled", "block", "iconButton", "avatarButton", "lineWrap", "rounded", "isChecked"] }, { kind: "component", type: i5.EdsTimepicker, selector: "eds-timepicker", inputs: ["e2eAttr", "stepHours", "stepMinutes", "stepSeconds", "hasSeconds", "disabled", "readonly"], outputs: ["timeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
330
330
  }
331
331
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsDatepicker, decorators: [{
332
332
  type: Component,
333
333
  args: [{ selector: 'eds-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, imports: [...EDS_ICON, ...EDS_INPUT_TEXT, ...EDS_INPUT_GROUP, ...EDS_BUTTON, ...EDS_TIMEPICKER], host: {
334
334
  '[attr.data-e2e]': 'e2eAttr()',
335
- }, template: "<div edsInputGroup class=\"eds-datepicker__group\">\n <div edsInputGroupAddon>\n <input edsInputText\n [edsClearable]=\"false\"\n [id]=\"inputId()\"\n [placeholder]=\"placeholder()\"\n [value]=\"displayValue()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [attr.aria-label]=\"ariaLabel()\"\n (input)=\"onInputChange($event)\"\n (blur)=\"onTouched()\"\n (click)=\"onInputClick()\"/>\n @if (!readonly() && !disabled()) {\n <button edsButton edsButtonSecondary edsNeutral edsSizeS\n type=\"button\"\n [attr.aria-label]=\"'Open calendar'\"\n (click)=\"toggle()\">\n <eds-icon icon=\"calendar-blank:core\"/>\n </button>\n }\n </div>\n</div>\n\n@if (isOpen()) {\n <div class=\"eds-datepicker__dropdown\" [class.eds-datepicker__dropdown--up]=\"dropUp()\" (click)=\"$event.stopPropagation()\">\n <div class=\"eds-datepicker__header\">\n <button class=\"eds-datepicker__nav-btn\" type=\"button\" (click)=\"prevMonth()\" aria-label=\"Previous month\">\u2039</button>\n <span class=\"eds-datepicker__month-label\">{{ monthLabel() }}</span>\n <button class=\"eds-datepicker__nav-btn\" type=\"button\" (click)=\"nextMonth()\" aria-label=\"Next month\">\u203A</button>\n </div>\n <div class=\"eds-datepicker__weekdays\">\n @for (day of weekDays; track day) {\n <span class=\"eds-datepicker__weekday\">{{ day }}</span>\n }\n </div>\n <div class=\"eds-datepicker__days\">\n @for (day of calendarDays(); track $index) {\n @if (day === null) {\n <span class=\"eds-datepicker__day eds-datepicker__day--empty\"></span>\n } @else {\n <button class=\"eds-datepicker__day\"\n type=\"button\"\n [class.eds-datepicker__day--today]=\"isToday(day)\"\n [class.eds-datepicker__day--selected]=\"isSelected(day)\"\n [class.eds-datepicker__day--outside]=\"isOutsideRange(day)\"\n [disabled]=\"isOutsideRange(day)\"\n (click)=\"selectDay(day)\">\n {{ adapter.getDate(day) }}\n </button>\n }\n }\n </div>\n\n @if (isDatetimepicker()) {\n <div class=\"eds-datepicker__time\">\n <eds-timepicker [hasSeconds]=\"hasSeconds()\" [disabled]=\"disabled()\" (timeChange)=\"onTimeChange($event)\"/>\n </div>\n }\n </div>\n}\n", styles: [".eui-21 :host{display:inline-block;position:relative;width:100%}.eui-21 :host .eds-datepicker__group{margin-bottom:0}.eui-21 :host .eds-datepicker__dropdown{position:absolute;top:100%;left:0;z-index:1000;margin-top:var(--eds-sp-3xs);background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-divider);border-radius:var(--eds-br-m);box-shadow:var(--eds-sh-2);padding:var(--eds-sp-s);width:280px}.eui-21 :host .eds-datepicker__dropdown--up{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--eds-sp-3xs)}.eui-21 :host .eds-datepicker__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-datepicker__month-label{font:var(--eds-f-label-m-semibold);color:var(--eds-c-foreground-default)}.eui-21 :host .eds-datepicker__nav-btn{background:none;border:none;cursor:pointer;font-size:18px;padding:var(--eds-sp-3xs) var(--eds-sp-xs);border-radius:var(--eds-br-xs);color:var(--eds-c-foreground-subtle)}.eui-21 :host .eds-datepicker__nav-btn:hover{background-color:var(--eds-c-surface-neutral-subtler);color:var(--eds-c-foreground-default)}.eui-21 :host .eds-datepicker__nav-btn:focus-visible{outline:2px solid var(--eds-c-focus-default, #0e47cb);outline-offset:1px}.eui-21 :host .eds-datepicker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:var(--eds-sp-3xs)}.eui-21 :host .eds-datepicker__weekday{font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-subtler);padding:var(--eds-sp-3xs) 0}.eui-21 :host .eds-datepicker__days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.eui-21 :host .eds-datepicker__day{background:none;border:none;cursor:pointer;font:var(--eds-f-paragraph-s);padding:var(--eds-sp-3xs);border-radius:var(--eds-br-xs);text-align:center;min-height:32px;display:flex;align-items:center;justify-content:center}.eui-21 :host .eds-datepicker__day:hover:not(:disabled){background-color:var(--eds-c-surface-neutral-subtler)}.eui-21 :host .eds-datepicker__day--today{font-weight:700;border:var(--eds-bw-xs) solid var(--eds-c-border-primary)}.eui-21 :host .eds-datepicker__day--selected{background-color:var(--eds-c-surface-primary)!important;color:var(--eds-c-on-surface-primary);font-weight:600}.eui-21 :host .eds-datepicker__day--outside{color:var(--eds-c-foreground-subtler);opacity:.4;cursor:default}.eui-21 :host .eds-datepicker__day--empty{cursor:default}.eui-21 :host .eds-datepicker__day:focus-visible{outline:2px solid var(--eds-c-focus-default, #0e47cb);outline-offset:1px}.eui-21 :host .eds-datepicker__time{margin-top:var(--eds-sp-s);padding-top:var(--eds-sp-s);border-top:var(--eds-bw-xs) solid var(--eds-c-border-divider);display:flex;justify-content:center}\n"] }]
335
+ }, template: "<div edsInputGroup class=\"eds-datepicker__group\">\n <div edsInputGroupAddon>\n <input edsInputText\n [edsClearable]=\"false\"\n [id]=\"inputId()\"\n [placeholder]=\"placeholder()\"\n [value]=\"displayValue()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [attr.aria-label]=\"ariaLabel()\"\n (input)=\"onInputChange($event)\"\n (blur)=\"onTouched()\"\n (click)=\"onInputClick()\"/>\n @if (!readonly() && !disabled()) {\n <button edsButton variant=\"secondary\" color=\"neutral\" size=\"s\" type=\"button\" [attr.aria-label]=\"'Open calendar'\" (click)=\"toggle()\">\n <eds-icon icon=\"calendar-blank:core\"/>\n </button>\n }\n </div>\n</div>\n\n@if (isOpen()) {\n <div class=\"eds-datepicker__dropdown\" [class.eds-datepicker__dropdown--up]=\"dropUp()\" (click)=\"$event.stopPropagation()\">\n <div class=\"eds-datepicker__header\">\n <button class=\"eds-datepicker__nav-btn\" type=\"button\" (click)=\"prevMonth()\" aria-label=\"Previous month\">\u2039</button>\n <span class=\"eds-datepicker__month-label\">{{ monthLabel() }}</span>\n <button class=\"eds-datepicker__nav-btn\" type=\"button\" (click)=\"nextMonth()\" aria-label=\"Next month\">\u203A</button>\n </div>\n <div class=\"eds-datepicker__weekdays\">\n @for (day of weekDays; track day) {\n <span class=\"eds-datepicker__weekday\">{{ day }}</span>\n }\n </div>\n <div class=\"eds-datepicker__days\">\n @for (day of calendarDays(); track $index) {\n @if (day === null) {\n <span class=\"eds-datepicker__day eds-datepicker__day--empty\"></span>\n } @else {\n <button class=\"eds-datepicker__day\"\n type=\"button\"\n [class.eds-datepicker__day--today]=\"isToday(day)\"\n [class.eds-datepicker__day--selected]=\"isSelected(day)\"\n [class.eds-datepicker__day--outside]=\"isOutsideRange(day)\"\n [disabled]=\"isOutsideRange(day)\"\n (click)=\"selectDay(day)\">\n {{ adapter.getDate(day) }}\n </button>\n }\n }\n </div>\n\n @if (isDatetimepicker()) {\n <div class=\"eds-datepicker__time\">\n <eds-timepicker [hasSeconds]=\"hasSeconds()\" [disabled]=\"disabled()\" (timeChange)=\"onTimeChange($event)\"/>\n </div>\n }\n </div>\n}\n", styles: [".eui-21 :host{display:inline-block;position:relative;width:100%}.eui-21 :host .eds-datepicker__group{margin-bottom:0}.eui-21 :host .eds-datepicker__dropdown{position:absolute;top:100%;left:0;z-index:1000;margin-top:var(--eds-sp-3xs);background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-divider);border-radius:var(--eds-br-m);box-shadow:var(--eds-sh-2);padding:var(--eds-sp-s);width:280px}.eui-21 :host .eds-datepicker__dropdown--up{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--eds-sp-3xs)}.eui-21 :host .eds-datepicker__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-datepicker__month-label{font:var(--eds-f-label-m-semibold);color:var(--eds-c-foreground-default)}.eui-21 :host .eds-datepicker__nav-btn{background:none;border:none;cursor:pointer;font-size:18px;padding:var(--eds-sp-3xs) var(--eds-sp-xs);border-radius:var(--eds-br-xs);color:var(--eds-c-foreground-subtle)}.eui-21 :host .eds-datepicker__nav-btn:hover{background-color:var(--eds-c-surface-neutral-subtler);color:var(--eds-c-foreground-default)}.eui-21 :host .eds-datepicker__nav-btn:focus-visible{outline:2px solid var(--eds-c-focus-default, #0e47cb);outline-offset:1px}.eui-21 :host .eds-datepicker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:var(--eds-sp-3xs)}.eui-21 :host .eds-datepicker__weekday{font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-subtler);padding:var(--eds-sp-3xs) 0}.eui-21 :host .eds-datepicker__days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.eui-21 :host .eds-datepicker__day{background:none;border:none;cursor:pointer;font:var(--eds-f-paragraph-s);padding:var(--eds-sp-3xs);border-radius:var(--eds-br-xs);text-align:center;min-height:32px;display:flex;align-items:center;justify-content:center}.eui-21 :host .eds-datepicker__day:hover:not(:disabled){background-color:var(--eds-c-surface-neutral-subtler)}.eui-21 :host .eds-datepicker__day--today{font-weight:700;border:var(--eds-bw-xs) solid var(--eds-c-border-primary)}.eui-21 :host .eds-datepicker__day--selected{background-color:var(--eds-c-surface-primary)!important;color:var(--eds-c-on-surface-primary);font-weight:600}.eui-21 :host .eds-datepicker__day--outside{color:var(--eds-c-foreground-subtler);opacity:.4;cursor:default}.eui-21 :host .eds-datepicker__day--empty{cursor:default}.eui-21 :host .eds-datepicker__day:focus-visible{outline:2px solid var(--eds-c-focus-default, #0e47cb);outline-offset:1px}.eui-21 :host .eds-datepicker__time{margin-top:var(--eds-sp-s);padding-top:var(--eds-sp-s);border-top:var(--eds-bw-xs) solid var(--eds-c-border-divider);display:flex;justify-content:center}\n"] }]
336
336
  }], ctorParameters: () => [], propDecorators: { e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }], inputId: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputId", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], dateFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateFormat", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], isDatetimepicker: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDatetimepicker", required: false }] }], hasSeconds: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasSeconds", required: false }] }], dateChange: [{ type: i0.Output, args: ["dateChange"] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
337
337
 
338
338
  // Luxon is expected to be available as a peer dependency