novo-elements 11.2.0 → 11.2.1-next.2

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 (104) hide show
  1. package/fesm2022/novo-elements-addons-ace-editor.mjs.map +1 -1
  2. package/fesm2022/novo-elements-addons-ckeditor.mjs.map +1 -1
  3. package/fesm2022/novo-elements-addons-code-editor.mjs +3 -3
  4. package/fesm2022/novo-elements-addons-code-editor.mjs.map +1 -1
  5. package/fesm2022/novo-elements-elements-agenda.mjs +15 -15
  6. package/fesm2022/novo-elements-elements-agenda.mjs.map +1 -1
  7. package/fesm2022/novo-elements-elements-aside.mjs.map +1 -1
  8. package/fesm2022/novo-elements-elements-autocomplete.mjs +7 -5
  9. package/fesm2022/novo-elements-elements-autocomplete.mjs.map +1 -1
  10. package/fesm2022/novo-elements-elements-avatar.mjs +2 -1
  11. package/fesm2022/novo-elements-elements-avatar.mjs.map +1 -1
  12. package/fesm2022/novo-elements-elements-breadcrumbs.mjs.map +1 -1
  13. package/fesm2022/novo-elements-elements-button.mjs.map +1 -1
  14. package/fesm2022/novo-elements-elements-calendar.mjs +7 -4
  15. package/fesm2022/novo-elements-elements-calendar.mjs.map +1 -1
  16. package/fesm2022/novo-elements-elements-card.mjs +1 -1
  17. package/fesm2022/novo-elements-elements-card.mjs.map +1 -1
  18. package/fesm2022/novo-elements-elements-category-dropdown.mjs.map +1 -1
  19. package/fesm2022/novo-elements-elements-checkbox.mjs.map +1 -1
  20. package/fesm2022/novo-elements-elements-chips.mjs +18 -14
  21. package/fesm2022/novo-elements-elements-chips.mjs.map +1 -1
  22. package/fesm2022/novo-elements-elements-color-picker.mjs +1 -1
  23. package/fesm2022/novo-elements-elements-color-picker.mjs.map +1 -1
  24. package/fesm2022/novo-elements-elements-common.mjs +28 -28
  25. package/fesm2022/novo-elements-elements-common.mjs.map +1 -1
  26. package/fesm2022/novo-elements-elements-data-table.mjs +28 -28
  27. package/fesm2022/novo-elements-elements-data-table.mjs.map +1 -1
  28. package/fesm2022/novo-elements-elements-date-picker.mjs +4 -4
  29. package/fesm2022/novo-elements-elements-date-picker.mjs.map +1 -1
  30. package/fesm2022/novo-elements-elements-date-time-picker.mjs.map +1 -1
  31. package/fesm2022/novo-elements-elements-divider.mjs.map +1 -1
  32. package/fesm2022/novo-elements-elements-drag-drop.mjs +7 -7
  33. package/fesm2022/novo-elements-elements-drag-drop.mjs.map +1 -1
  34. package/fesm2022/novo-elements-elements-dropdown.mjs +9 -9
  35. package/fesm2022/novo-elements-elements-dropdown.mjs.map +1 -1
  36. package/fesm2022/novo-elements-elements-expansion.mjs +5 -5
  37. package/fesm2022/novo-elements-elements-expansion.mjs.map +1 -1
  38. package/fesm2022/novo-elements-elements-field.mjs +20 -14
  39. package/fesm2022/novo-elements-elements-field.mjs.map +1 -1
  40. package/fesm2022/novo-elements-elements-flex.mjs +12 -12
  41. package/fesm2022/novo-elements-elements-flex.mjs.map +1 -1
  42. package/fesm2022/novo-elements-elements-form.mjs +16 -15
  43. package/fesm2022/novo-elements-elements-form.mjs.map +1 -1
  44. package/fesm2022/novo-elements-elements-header.mjs +6 -6
  45. package/fesm2022/novo-elements-elements-header.mjs.map +1 -1
  46. package/fesm2022/novo-elements-elements-icon.mjs.map +1 -1
  47. package/fesm2022/novo-elements-elements-layout.mjs +2 -2
  48. package/fesm2022/novo-elements-elements-layout.mjs.map +1 -1
  49. package/fesm2022/novo-elements-elements-list.mjs +12 -12
  50. package/fesm2022/novo-elements-elements-list.mjs.map +1 -1
  51. package/fesm2022/novo-elements-elements-loading.mjs +5 -5
  52. package/fesm2022/novo-elements-elements-loading.mjs.map +1 -1
  53. package/fesm2022/novo-elements-elements-menu.mjs +4 -4
  54. package/fesm2022/novo-elements-elements-menu.mjs.map +1 -1
  55. package/fesm2022/novo-elements-elements-modal.mjs.map +1 -1
  56. package/fesm2022/novo-elements-elements-multi-picker.mjs.map +1 -1
  57. package/fesm2022/novo-elements-elements-non-ideal-state.mjs.map +1 -1
  58. package/fesm2022/novo-elements-elements-picker.mjs +5 -5
  59. package/fesm2022/novo-elements-elements-picker.mjs.map +1 -1
  60. package/fesm2022/novo-elements-elements-places.mjs.map +1 -1
  61. package/fesm2022/novo-elements-elements-popover.mjs +3 -3
  62. package/fesm2022/novo-elements-elements-popover.mjs.map +1 -1
  63. package/fesm2022/novo-elements-elements-progress.mjs +3 -3
  64. package/fesm2022/novo-elements-elements-progress.mjs.map +1 -1
  65. package/fesm2022/novo-elements-elements-query-builder.mjs +27 -25
  66. package/fesm2022/novo-elements-elements-query-builder.mjs.map +1 -1
  67. package/fesm2022/novo-elements-elements-quick-note.mjs +2 -2
  68. package/fesm2022/novo-elements-elements-quick-note.mjs.map +1 -1
  69. package/fesm2022/novo-elements-elements-radio.mjs.map +1 -1
  70. package/fesm2022/novo-elements-elements-search.mjs.map +1 -1
  71. package/fesm2022/novo-elements-elements-select-search.mjs +2 -2
  72. package/fesm2022/novo-elements-elements-select-search.mjs.map +1 -1
  73. package/fesm2022/novo-elements-elements-select.mjs +5 -5
  74. package/fesm2022/novo-elements-elements-select.mjs.map +1 -1
  75. package/fesm2022/novo-elements-elements-simple-table.mjs +30 -30
  76. package/fesm2022/novo-elements-elements-simple-table.mjs.map +1 -1
  77. package/fesm2022/novo-elements-elements-slider.mjs.map +1 -1
  78. package/fesm2022/novo-elements-elements-stepper.mjs +4 -4
  79. package/fesm2022/novo-elements-elements-stepper.mjs.map +1 -1
  80. package/fesm2022/novo-elements-elements-switch.mjs.map +1 -1
  81. package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
  82. package/fesm2022/novo-elements-elements-tabs.mjs +2 -1
  83. package/fesm2022/novo-elements-elements-tabs.mjs.map +1 -1
  84. package/fesm2022/novo-elements-elements-tiles.mjs.map +1 -1
  85. package/fesm2022/novo-elements-elements-time-picker.mjs +1 -0
  86. package/fesm2022/novo-elements-elements-time-picker.mjs.map +1 -1
  87. package/fesm2022/novo-elements-elements-tip-well.mjs.map +1 -1
  88. package/fesm2022/novo-elements-elements-toast.mjs.map +1 -1
  89. package/fesm2022/novo-elements-elements-toolbar.mjs +1 -1
  90. package/fesm2022/novo-elements-elements-toolbar.mjs.map +1 -1
  91. package/fesm2022/novo-elements-elements-tooltip.mjs +3 -4
  92. package/fesm2022/novo-elements-elements-tooltip.mjs.map +1 -1
  93. package/fesm2022/novo-elements-elements-unless.mjs +1 -1
  94. package/fesm2022/novo-elements-elements-unless.mjs.map +1 -1
  95. package/fesm2022/novo-elements-elements-value.mjs +2 -2
  96. package/fesm2022/novo-elements-elements-value.mjs.map +1 -1
  97. package/fesm2022/novo-elements-pipes.mjs +9 -9
  98. package/fesm2022/novo-elements-pipes.mjs.map +1 -1
  99. package/fesm2022/novo-elements-services.mjs +21 -22
  100. package/fesm2022/novo-elements-services.mjs.map +1 -1
  101. package/fesm2022/novo-elements-utils.mjs +33 -17
  102. package/fesm2022/novo-elements-utils.mjs.map +1 -1
  103. package/package.json +1 -1
  104. package/services/date-format/DateFormat.d.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-calendar.mjs","sources":["../../../projects/novo-elements/src/elements/calendar/strategies/default-selection.strategy.ts","../../../projects/novo-elements/src/elements/calendar/strategies/multi-date-selection.strategy.ts","../../../projects/novo-elements/src/elements/calendar/strategies/range-selection.strategy.ts","../../../projects/novo-elements/src/elements/calendar/strategies/week-selection.strategy.ts","../../../projects/novo-elements/src/elements/calendar/month-view/month-view.component.ts","../../../projects/novo-elements/src/elements/calendar/month-view/month-view.component.html","../../../projects/novo-elements/src/elements/calendar/month-select/month-select.component.ts","../../../projects/novo-elements/src/elements/calendar/month-select/month-select.component.html","../../../projects/novo-elements/src/elements/calendar/year-select/year-select.component.ts","../../../projects/novo-elements/src/elements/calendar/year-select/year-select.component.html","../../../projects/novo-elements/src/elements/calendar/calendar.component.ts","../../../projects/novo-elements/src/elements/calendar/calendar.component.html","../../../projects/novo-elements/src/elements/calendar/Calendar.module.ts","../../../projects/novo-elements/src/elements/calendar/novo-elements-elements-calendar.ts"],"sourcesContent":["import { FactoryProvider, Injectable, InjectionToken, Optional, SkipSelf } from '@angular/core';\nimport type { DateLike, NovoDateSelectionStrategy } from 'novo-elements/utils';\nimport { DateUtil } from 'novo-elements/utils';\n\n/** Injection token used to customize the date range selection behavior. */\nexport const NOVO_DATE_SELECTION_STRATEGY = new InjectionToken<NovoDateSelectionStrategy>('NOVO_DATE_SELECTION_STRATEGY');\n\n/** Provides the default date selection behavior. Single Date */\n@Injectable()\nexport class DefaultDateSelectionStrategy implements NovoDateSelectionStrategy<DateLike[]> {\n selectionFinished(date: DateLike | null, currentValue: DateLike[], event: Event): DateLike[] {\n return [date];\n }\n\n createPreview(activeDate: DateLike | null, [currentDate]: DateLike[]) {\n return [activeDate];\n }\n\n isSelected(activeDate: DateLike | null, [currentDate]: DateLike[]) {\n return DateUtil.isSameDay(activeDate, currentDate);\n }\n}\n\n/** @docs-private */\nexport function NOVO_DATE_SELECTION_STRATEGY_PROVIDER_FACTORY(parent: NovoDateSelectionStrategy<unknown>) {\n return parent || new DefaultDateSelectionStrategy();\n}\n\n/** @docs-private */\nexport const NOVO_DATE_SELECTION_STRATEGY_PROVIDER: FactoryProvider = {\n provide: NOVO_DATE_SELECTION_STRATEGY,\n deps: [[new Optional(), new SkipSelf(), NOVO_DATE_SELECTION_STRATEGY]],\n useFactory: NOVO_DATE_SELECTION_STRATEGY_PROVIDER_FACTORY,\n};\n","import { Injectable } from '@angular/core';\nimport type { DateLike, NovoDateSelectionStrategy } from 'novo-elements/utils';\n\n@Injectable()\nexport class MultiDateSelectionStrategy implements NovoDateSelectionStrategy<DateLike[]> {\n selectionFinished(dateLike: DateLike | null, currentValue: DateLike[], event: Event): DateLike[] {\n const date = dateLike as Date;\n const current = new Set(currentValue.map((c: Date) => c.getTime()));\n if (current.has(date.getTime())) {\n current.delete(date.getTime());\n } else {\n current.add(date.getTime());\n }\n return [...current].map((c) => new Date(c));\n }\n\n createPreview(activeDate: DateLike | null, currentValue: DateLike[]) {\n return [activeDate];\n }\n\n isSelected(activeDate: DateLike | null, currentValue: DateLike[]) {\n return currentValue && currentValue.includes(activeDate);\n }\n}\n","import { Injectable } from '@angular/core';\nimport type { DateLike, NovoDateSelectionStrategy } from 'novo-elements/utils';\nimport { DateUtil } from 'novo-elements/utils';\n\n@Injectable()\nexport class RangeSelectionStrategy implements NovoDateSelectionStrategy<DateLike[]> {\n selectionFinished(date: DateLike, currentRange: DateLike[]) {\n let [start, end] = currentRange;\n\n if (start == null) {\n start = date;\n } else if (end == null && date && DateUtil.differenceInCalendarDays(date, start) >= 0) {\n end = date;\n } else {\n start = date;\n end = null;\n }\n\n return [start, end];\n }\n\n createPreview(activeDate: DateLike | null, currentRange: DateLike[]) {\n let start: DateLike | null = null;\n let end: DateLike | null = null;\n const [currStart, currEnd] = currentRange;\n\n if (currStart && !currEnd && activeDate) {\n start = currStart;\n end = activeDate;\n }\n\n return [start, end];\n }\n\n isSelected(activeDate: DateLike | null, currentRange: DateLike[]) {\n const [start, end] = currentRange;\n return DateUtil.isWithinRange(activeDate, start, end);\n }\n}\n","import type { DateLike, NovoDateSelectionStrategy } from 'novo-elements/utils';\nimport { DateUtil } from 'novo-elements/utils';\n\nexport class WeekSelectionStrategy implements NovoDateSelectionStrategy<DateLike[]> {\n constructor(private weekStartsOn: Day = 0) {}\n\n selectionFinished(date: DateLike | null): DateLike[] {\n return this._createWeekRange(date);\n }\n\n createPreview(activeDate: DateLike | null): DateLike[] {\n return this._createWeekRange(activeDate);\n }\n\n private _createWeekRange(date: DateLike | null): DateLike[] {\n if (date) {\n const { weekStartsOn } = this;\n const start = DateUtil.startOfWeek(date as DateLike, { weekStartsOn });\n const end = DateUtil.endOfWeek(date as DateLike, { weekStartsOn });\n return [start, end];\n }\n\n return [null, null];\n }\n\n isSelected(activeDate: DateLike | null, currentRange: DateLike[]) {\n const [start, end] = currentRange;\n return DateUtil.isWithinRange(activeDate, start, end);\n }\n}\n","// NG2\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n// Vendor\nimport { addDays, Day as DateFnsDay, isToday } from 'date-fns';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { BooleanInput, DateUtil } from 'novo-elements/utils';\nimport type { DateLike, Day, OverlayDate } from 'novo-elements/utils';\n\n@Component({\n selector: 'novo-month-view',\n templateUrl: './month-view.component.html',\n styleUrls: ['./month-view.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NovoMonthViewElement implements OnInit {\n @Input()\n minDate: Date;\n @Input()\n maxDate: Date;\n @Input()\n activeDate: Date = new Date();\n // Weekstart must be 0-6 (Sunday - Saturday)\n @Input()\n selected: DateLike[] = [];\n @Input()\n preview: DateLike[] = [];\n @Input()\n overlays: OverlayDate[] = [];\n @Input()\n disabledDateMessage: string;\n\n @Input()\n @BooleanInput()\n isRange: boolean = false;\n\n @Input()\n @BooleanInput()\n @HostBinding('class.hide-overflow-days')\n public hideOverflowDays: boolean = false;\n\n _weekStartsOn: DateFnsDay = 0;\n\n @Input()\n get weekStartsOn(): DateFnsDay {\n return this._weekStartsOn;\n }\n set weekStartsOn(value: DateFnsDay) {\n this._weekStartsOn = value;\n this.weekdays = this.labels.getWeekdays(value);\n this.updateView(this.activeDate);\n }\n\n // Select callback for output\n @Output()\n select: EventEmitter<any> = new EventEmitter(false);\n // Select callback for output\n @Output()\n hover: EventEmitter<any> = new EventEmitter(false);\n\n // List of all the weekdays\n weekdays: string[] = this.labels.getWeekdays(this.weekStartsOn);\n // List of all months\n monthNames: string[] = this.labels.getMonths();\n\n monthLabel: string;\n weeks: any;\n\n constructor(\n public labels: NovoLabelService,\n private element: ElementRef,\n private cdr: ChangeDetectorRef,\n private _sanitizer: DomSanitizer,\n ) {}\n\n ngOnInit() {\n // Set labels\n this.updateView(this.activeDate);\n }\n\n updateView(date: Date) {\n this.monthLabel = this.labels.formatDateWithFormat(this.activeDate, { month: 'short' });\n this.buildMonth(this.activeDate);\n }\n\n onSelect(event: Event, day: Day) {\n // Helpers.swallowEvent(event);\n this.select.next({ event, day });\n this.cdr.markForCheck();\n }\n\n onHover(event: Event, day: Day): void {\n this.isRange && this.hover.next({ event, day });\n }\n\n buildMonth(month: Date) {\n // Reset the weeks\n this.weeks = [];\n const start = DateUtil.startOfMonth(month);\n\n // House keeping variables to know when we are done building the month\n let done = false,\n date = DateUtil.startOfWeek(start, { weekStartsOn: this.weekStartsOn }),\n monthIndex = date.getMonth(),\n count = 0;\n\n while (!done) {\n // Build the days for the weeks\n this.weeks.push({ days: this.buildWeek(new Date(date.getTime()), month) });\n\n // Increment variables for the next iteration\n date = addDays(date, 7);\n done = count++ > 2 && monthIndex !== date.getMonth();\n monthIndex = date.getMonth();\n }\n }\n\n buildWeek(date: Date, month: Date): Array<Object> {\n // Build out of the days of the week\n const days = [];\n // Iterate over the days of the week\n for (let i = 0; i < 7; i++) {\n // Push a variable on the day array with lots of helpers to make the template easier\n days.push({\n name: this.weekdays[i],\n number: date.getDate(),\n isToday: isToday(date),\n date,\n });\n\n // Increment for the next iteration\n date = addDays(date, 1);\n }\n\n return days;\n }\n\n isDisabled(day: DateLike) {\n return (this.minDate && DateUtil.isBefore(day, this.minDate)) || (this.maxDate && DateUtil.isAfter(day, this.maxDate));\n }\n\n /** Returns whether a cell should be marked as selected. */\n _isSelected(value: DateLike) {\n return this.selected && this.selected.find((d) => DateUtil.isSameDay(d, value));\n }\n\n /** Returns whether a cell should be marked as preview. */\n _isPreview(value: DateLike) {\n return this.preview && this.preview.find((d) => DateUtil.isSameDay(d, value));\n }\n\n /** Returns whether a cell should be marked as an overlay. */\n _isOverlay(value: DateLike) {\n return this.overlays && this.overlays.find((o) => DateUtil.isSameDay(o.date, value));\n }\n\n /** Returns whether a cell should be marked as an overlay. */\n _hasOverlayType(value: DateLike) {\n let overlay = this.overlays && this.overlays.find((o) => DateUtil.isSameDay(o.date, value));\n return overlay ? overlay.type : null;\n }\n\n /** Gets whether a value is the start of the main range. */\n _isRangeStart(value: DateLike) {\n return isStart(value, this.selected, this.isRange);\n }\n\n /** Gets whether a value is the end of the main range. */\n _isRangeEnd(value: DateLike) {\n return isEnd(value, this.selected, this.isRange);\n }\n\n /** Gets whether a value is within the currently-selected range. */\n _isInRange(value: DateLike): boolean {\n return isInRange(value, this.selected, this.isRange);\n }\n\n /** Gets whether a value is the start of the preview range. */\n _isPreviewStart(value: DateLike) {\n return isStart(value, this.preview, this.isRange);\n }\n\n /** Gets whether a value is the end of the preview range. */\n _isPreviewEnd(value: DateLike) {\n return isEnd(value, this.preview, this.isRange);\n }\n\n /** Gets whether a value is inside the preview range. */\n _isInPreview(value: DateLike) {\n return isInRange(value, this.preview, this.isRange);\n }\n}\n\n/** Checks whether a value is the start of a range. */\nfunction isStart(value: DateLike, range: DateLike[] | null, rangeEnabled: boolean): boolean {\n const [start, end] = range ?? [];\n return rangeEnabled && end !== null && !DateUtil.isSameDay(start, end) && value < end && DateUtil.isSameDay(value, start);\n}\n\n/** Checks whether a value is the end of a range. */\nfunction isEnd(value: DateLike, range: DateLike[] | null, rangeEnabled: boolean): boolean {\n const [start, end] = range ?? [];\n return rangeEnabled && start !== null && !DateUtil.isSameDay(start, end) && value >= start && DateUtil.isSameDay(value, end);\n}\n\n/** Checks whether a value is inside of a range. */\nfunction isInRange(value: DateLike, range: DateLike[] | null, rangeEnabled: boolean): boolean {\n const [start, end] = range ?? [];\n return rangeEnabled && start !== null && end !== null && !DateUtil.isSameDay(start, end) && value >= start && value <= end;\n}\n","<div class=\"calendar-table\" cellspacing=\"0\" cellpadding=\"0\">\n <div class=\"calendar-thead\">\n <div class=\"calendar-th weekday\" *ngFor=\"let day of weekdays\" title=\"{{ day }}\"\n [attr.data-automation-id]=\"day.substr(0, 2)\">\n {{ day.substr(0, 2) }}\n </div>\n </div>\n <div class=\"calendar-body\">\n <div class=\"calendar-week\" *ngFor=\"let week of weeks\">\n <div class=\"calendar-date\" *ngFor=\"let day of week.days\"\n [class.today]=\"day.isToday\"\n [class.notinmonth]=\"day.date.getMonth() !== activeDate.getMonth()\"\n [class.selected]=\"_isSelected(day.date)\"\n [class.preview]=\"_isPreview(day.date)\"\n [class.overlay]=\"_isOverlay(day.date)\"\n [class]=\"_hasOverlayType(day.date)\"\n [class.inRange]=\"_isInRange(day.date)\"\n [class.rangeStart]=\"_isRangeStart(day.date)\"\n [class.rangeEnd]=\"_isRangeEnd(day.date)\"\n [class.inPreview]=\"_isInPreview(day.date)\"\n [class.previewStart]=\"_isPreviewStart(day.date)\"\n [class.previewEnd]=\"_isPreviewEnd(day.date)\"\n [class.calendar-date]=\"true\"\n [attr.aria-label]=\"day.name\"\n [attr.aria-disabled]=\"isDisabled(day.date)\"\n [attr.aria-selected]=\"_isSelected(day.date)\"\n [attr.data-automation-id]=\"day.number\"\n [title]=\"isDisabled(day.date) ? disabledDateMessage : ''\"\n (mouseover)=\"onHover($event, day)\">\n <novo-button\n class=\"day\"\n tabindex=\"0\"\n [attr.data-automation-id]=\"day.number\"\n [disabled]=\"isDisabled(day.date)\"\n (click)=\"onSelect($event, day)\">\n {{ day.number }}\n </novo-button>\n </div>\n </div>\n </div>\n</div>","// NG2\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NovoLabelService } from 'novo-elements/services';\nimport type { DateLike } from 'novo-elements/utils';\nimport { DateUtil } from 'novo-elements/utils';\n\n@Component({\n selector: 'novo-month-select',\n templateUrl: './month-select.component.html',\n styleUrls: ['./month-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NovoMonthSelectElement implements OnInit {\n @Input()\n activeDate: DateLike = new Date();\n @Input()\n selected: DateLike[] = [];\n\n // Select callback for output\n @Output()\n select: EventEmitter<any> = new EventEmitter(false);\n\n // List of all months\n monthNames: string[] = this.labels.getMonths();\n\n constructor(public labels: NovoLabelService) {}\n\n ngOnInit() {}\n\n onSelect(event: Event, month: number) {\n // Helpers.swallowEvent(event);\n this.select.next({ event, month });\n }\n\n _isActive(month: number) {\n return this.activeDate && month === DateUtil.getMonth(this.activeDate);\n }\n\n _isSelected(month: number) {\n return this.selected && month === DateUtil.getMonth(this.selected[0]);\n }\n}\n","<div *ngFor=\"let month of monthNames; let i = index\" (click)=\"onSelect($event, i)\" tabindex=\"0\">\n <div class=\"month\" [class.selected]=\"_isSelected(i)\" [attr.data-automation-id]=\"month\">\n {{ month }}</div>\n</div>","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NovoLabelService } from 'novo-elements/services';\nimport type { DateLike } from 'novo-elements/utils';\nimport { DateUtil } from 'novo-elements/utils';\n\n@Component({\n selector: 'novo-year-select',\n templateUrl: './year-select.component.html',\n styleUrls: ['./year-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NovoYearSelectElement implements OnInit {\n @Input()\n minYear: string | number;\n @Input()\n maxYear: string | number;\n\n @Input()\n activeDate: DateLike = new Date();\n @Input()\n selected: DateLike[] = [];\n // Select callback for output\n @Output()\n select: EventEmitter<any> = new EventEmitter(false);\n\n // List of all years (generated in ngOnInit)\n years: Array<any> = [];\n\n constructor(public labels: NovoLabelService) {}\n\n ngOnInit() {\n // Determine the year array\n const now = new Date();\n const start = this.minYear ? Number(this.minYear) : now.getFullYear() - 100;\n const end = this.maxYear ? Number(this.maxYear) : now.getFullYear() + 10;\n const years = [];\n for (let i = start; i <= end; i++) {\n years.push(i);\n }\n this.years = years.reverse();\n }\n\n onSelect(event: Event, year: number) {\n // Helpers.swallowEvent(event);\n this.select.next({ event, year });\n }\n\n _isActive(year: number) {\n return this.activeDate && year === DateUtil.getYear(this.activeDate);\n }\n\n _isSelected(year: number) {\n return this.selected && year === DateUtil.getYear(this.selected[0]);\n }\n}\n","<div *ngFor=\"let year of years\" (click)=\"onSelect($event, year)\" tabindex=\"0\">\n <div class=\"year\" [class.selected]=\"_isSelected(year)\" [attr.data-automation-id]=\"year\">{{ year }}</div>\n</div>","// NG2\nimport { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n// Vendor\nimport { addMonths, isDate, isSameDay, setMonth, setYear, startOfDay, startOfMonth, subMonths } from 'date-fns';\n// APP\nimport { NovoLabelService } from 'novo-elements/services';\nimport { Helpers } from 'novo-elements/utils';\nimport type {\n DatePickerSelectModes,\n NovoDateSelectEvent,\n NovoDateSelectionStrategy,\n NovoMonthSelectEvent,\n NovoYearSelectEvent,\n OverlayDate,\n} from 'novo-elements/utils';\nimport { DefaultDateSelectionStrategy, MultiDateSelectionStrategy, RangeSelectionStrategy, WeekSelectionStrategy } from './strategies';\n\n@Component({\n selector: 'novo-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n standalone: false\n})\nexport class NovoCalendarElement implements OnInit {\n @Input()\n minYear: string | number;\n @Input()\n maxYear: string | number;\n @Input()\n minDate: string | number;\n @Input()\n maxDate: string | number;\n // Default view mode (select days)\n @Input()\n activeView: string = 'days';\n @Input()\n layout: string = 'horizontal';\n\n _selected: Date[] = [];\n @Input()\n get selected(): Date[] {\n return this._selected;\n }\n set selected(value) {\n this._selected = value ? value.filter(isDate).map((d) => startOfDay(d)) : [];\n }\n @Output()\n selectedChange: EventEmitter<Date[]> = new EventEmitter();\n @Input()\n preview: Date[] = [];\n @Output()\n previewChange: EventEmitter<Date[]> = new EventEmitter();\n @Output()\n activeDateChange: EventEmitter<Date> = new EventEmitter();\n\n @Input()\n overlays: OverlayDate[] = [];\n @Input()\n disabledDateMessage: string;\n\n _activeDate: Date = new Date();\n _mode: DatePickerSelectModes = 'single';\n _numberOfMonths: number[] = [0];\n _weekStartsOn: Day = 0;\n _strategy: NovoDateSelectionStrategy<any> = new DefaultDateSelectionStrategy();\n\n months: any;\n\n @Input()\n get activeDate(): Date {\n return this._activeDate;\n }\n set activeDate(value) {\n if (!isSameDay(value, this._activeDate)) {\n this._activeDate = value;\n this.activeDateChange.next(value);\n this.updateView(value);\n }\n }\n\n @Input()\n get weekStartsOn(): Day {\n return this._weekStartsOn;\n }\n set weekStartsOn(value: Day) {\n this._weekStartsOn = value;\n if (this.mode === 'week') {\n this._strategy = new WeekSelectionStrategy(this.weekStartsOn);\n }\n }\n\n @Input()\n get numberOfMonths(): number {\n return this._numberOfMonths.length;\n }\n set numberOfMonths(value) {\n this._numberOfMonths = Array.from(Array(Number(value)).keys());\n this.updateView(this.activeDate);\n }\n\n @Input()\n get mode(): DatePickerSelectModes {\n return this._mode;\n }\n set mode(value) {\n if (this._mode !== value) {\n this._mode = value;\n switch (value) {\n case 'multiple':\n this._strategy = new MultiDateSelectionStrategy();\n break;\n case 'range':\n this._strategy = new RangeSelectionStrategy();\n break;\n case 'week':\n this._strategy = new WeekSelectionStrategy(this.weekStartsOn);\n break;\n case 'single':\n default:\n this._strategy = new DefaultDateSelectionStrategy();\n break;\n }\n }\n }\n\n @HostBinding('style.width')\n get hb_width() {\n if (this.layout === 'vertical') {\n return this._sanitizer.bypassSecurityTrustStyle(`min-content`);\n }\n return this._sanitizer.bypassSecurityTrustStyle(`min-content`);\n }\n\n @HostBinding('class.layout-horizontal')\n get hb_horiztonal() {\n return this.layout !== 'vertical';\n }\n\n @HostBinding('class.layout-vertical')\n get hb_vertical() {\n return this.layout === 'vertical';\n }\n\n constructor(\n public labels: NovoLabelService,\n private element: ElementRef,\n private cdr: ChangeDetectorRef,\n private _sanitizer: DomSanitizer,\n ) {}\n\n ngOnInit() {\n if (!this.activeDate) {\n this.activeDate = this.selected.length ? this.selected[0] : new Date();\n }\n this.updateView(this.activeDate);\n }\n\n updateView(activeDate: Date) {\n this.activeDate = new Date(activeDate ? new Date(activeDate) : new Date());\n this.months = [];\n const month = startOfMonth(this.activeDate);\n for (const i of this._numberOfMonths) {\n const date = addMonths(month, i);\n const label = this.labels.formatDateWithFormat(date, { month: 'short' });\n this.months.push({ date, label });\n }\n }\n\n setToday() {\n const tmp = new Date();\n this.updateView(tmp);\n // Go back to days\n this.openView(null, 'days');\n }\n\n monthSelected({ event, month }: NovoMonthSelectEvent): void {\n const date = this.activeDate ? this.activeDate : new Date().getMonth();\n const tmp = setMonth(date, month);\n this.updateView(tmp);\n // Go back to days\n this.openView(null, 'days');\n }\n\n yearSelected({ event, year }: NovoYearSelectEvent): void {\n const date = this.activeDate ? this.activeDate : new Date();\n const tmp = setYear(date, year);\n this.updateView(tmp);\n // Go back to days\n this.openView(null, 'days');\n }\n\n dateSelected({ event, day }: NovoDateSelectEvent) {\n // Helpers.swallowEvent(event);\n this.selected = this._strategy.selectionFinished(day.date, this.selected, event);\n this.selectedChange.emit(this.selected);\n this.cdr.markForCheck();\n }\n\n updatePreview({ event, day }: NovoDateSelectEvent) {\n this.preview = this._strategy.createPreview(day.date, this.selected, event);\n this.previewChange.emit(this.preview);\n }\n\n prevMonth(event: Event): void {\n Helpers.swallowEvent(event);\n const tmp = subMonths(this.activeDate, 1);\n this.updateView(tmp);\n }\n\n nextMonth(event: Event): void {\n Helpers.swallowEvent(event);\n const tmp = addMonths(this.activeDate, 1);\n this.updateView(tmp);\n }\n\n openView(event: Event, type: string) {\n Helpers.swallowEvent(event);\n\n // If they click the toggle two time in a row, close it (go back to days)\n if (type === this.activeView) {\n this.activeView = 'days';\n } else {\n this.activeView = type;\n }\n\n // Make sure to scroll the selected one into view\n if (this.activeView === 'years' || this.activeView === 'months') {\n setTimeout(() => {\n const container = this.element.nativeElement.querySelector(`.calendar-content.${this.activeView}`);\n const selectedItem = this.element.nativeElement.querySelector(\n `.calendar-content.${this.activeView} .${this.activeView === 'years' ? 'year' : 'month'}.selected`,\n );\n if (container && selectedItem) {\n container.scrollTop = selectedItem.offsetTop - 100;\n }\n });\n }\n }\n\n _isRange() {\n return ['week', 'range'].includes(this.mode);\n }\n}\n","<div class=\"calendar-header\">\n <novo-button theme=\"icon\" icon=\"previous\" size=\"small\" (click)=\"prevMonth($event)\"\n data-automation-id=\"calendar-previous\" tabindex=\"0\"></novo-button>\n <ng-container *ngFor=\"let month of months; let i = index;\">\n <span class=\"heading\" [class.secondary]=\"i > 0\">\n <span class=\"month\" (click)=\"openView($event, 'months')\"\n data-automation-id=\"header-month\" tabindex=\"0\">{{ month.label }}</span>\n <span class=\"year\" (click)=\"openView($event, 'years')\"\n data-automation-id=\"header-year\" tabindex=\"0\">{{ month.date?.getFullYear() }}</span>\n </span>\n </ng-container>\n <novo-button theme=\"icon\" icon=\"next\" size=\"small\" (click)=\"nextMonth($event)\" data-automation-id=\"calendar-next\" tabindex=\"0\">\n </novo-button>\n</div>\n<section class=\"calendar-content\" [ngSwitch]=\"activeView\">\n <ng-container *ngSwitchCase=\"'days'\">\n <ng-container *ngFor=\"let month of months; let i = index\">\n <div class=\"calendar-header\" *ngIf=\"layout==='vertical' && i > 0\">\n <span class=\"previous\" (click)=\"prevMonth($event)\" data-automation-id=\"calendar-previous\" tabindex=\"0\"></span>\n <span class=\"heading\">\n <span class=\"month\" (click)=\"openView($event, 'months')\"\n data-automation-id=\"header-month\" tabindex=\"0\">{{ month.label }}</span>\n <span class=\"year\" (click)=\"openView($event, 'years')\"\n data-automation-id=\"header-year\" tabindex=\"0\">{{ month.date?.getFullYear() }}</span>\n </span>\n <span class=\"next\" (click)=\"nextMonth($event)\" data-automation-id=\"calendar-next\"></span>\n </div>\n <novo-month-view\n class=\"month-view\"\n [activeDate]=\"month.date\"\n [selected]=\"selected\"\n [preview]=\"preview\"\n [overlays]=\"overlays\"\n [isRange]=\"_isRange()\"\n [hideOverflowDays]=\"months.length > 1\"\n [weekStartsOn]=\"weekStartsOn\"\n [disabledDateMessage]=\"disabledDateMessage\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (select)=\"dateSelected($event)\"\n (hover)=\"updatePreview($event)\"></novo-month-view>\n </ng-container>\n </ng-container>\n <novo-month-select\n *ngSwitchCase=\"'months'\"\n [activeDate]=\"activeDate\"\n [selected]=\"selected\"\n (select)=\"monthSelected($event)\">\n </novo-month-select>\n <novo-year-select\n *ngSwitchCase=\"'years'\"\n [activeDate]=\"activeDate\"\n [selected]=\"selected\"\n (select)=\"yearSelected($event)\">\n </novo-year-select>\n</section>","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { NovoPipesModule } from 'novo-elements/pipes';\nimport { NovoCalendarElement } from './calendar.component';\nimport { NovoMonthSelectElement } from './month-select/month-select.component';\nimport { NovoMonthViewElement } from './month-view/month-view.component';\nimport { NovoYearSelectElement } from './year-select/year-select.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, NovoButtonModule, NovoPipesModule, NovoIconModule],\n declarations: [NovoMonthViewElement, NovoMonthSelectElement, NovoYearSelectElement, NovoCalendarElement],\n exports: [NovoMonthViewElement, NovoMonthSelectElement, NovoYearSelectElement, NovoCalendarElement],\n})\nexport class NovoCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i5.NovoMonthViewElement","i6.NovoMonthSelectElement","i7.NovoYearSelectElement"],"mappings":";;;;;;;;;;;;;;AAIA;MACa,4BAA4B,GAAG,IAAI,cAAc,CAA4B,8BAA8B;AAExH;MAEa,4BAA4B,CAAA;AACvC,IAAA,iBAAiB,CAAC,IAAqB,EAAE,YAAwB,EAAE,KAAY,EAAA;QAC7E,OAAO,CAAC,IAAI,CAAC;;AAGf,IAAA,aAAa,CAAC,UAA2B,EAAE,CAAC,WAAW,CAAa,EAAA;QAClE,OAAO,CAAC,UAAU,CAAC;;AAGrB,IAAA,UAAU,CAAC,UAA2B,EAAE,CAAC,WAAW,CAAa,EAAA;QAC/D,OAAO,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC;;+GAVzC,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAA5B,4BAA4B,EAAA,CAAA,CAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC;;AAeD;AACM,SAAU,6CAA6C,CAAC,MAA0C,EAAA;AACtG,IAAA,OAAO,MAAM,IAAI,IAAI,4BAA4B,EAAE;AACrD;AAEA;AACa,MAAA,qCAAqC,GAAoB;AACpE,IAAA,OAAO,EAAE,4BAA4B;AACrC,IAAA,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,4BAA4B,CAAC,CAAC;AACtE,IAAA,UAAU,EAAE,6CAA6C;;;MC5B9C,0BAA0B,CAAA;AACrC,IAAA,iBAAiB,CAAC,QAAyB,EAAE,YAAwB,EAAE,KAAY,EAAA;QACjF,MAAM,IAAI,GAAG,QAAgB;QAC7B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAO,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;YAC/B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;aACzB;YACL,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;AAE7B,QAAA,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;;IAG7C,aAAa,CAAC,UAA2B,EAAE,YAAwB,EAAA;QACjE,OAAO,CAAC,UAAU,CAAC;;IAGrB,UAAU,CAAC,UAA2B,EAAE,YAAwB,EAAA;QAC9D,OAAO,YAAY,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;;+GAjB/C,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAA1B,0BAA0B,EAAA,CAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC;;;MCEY,sBAAsB,CAAA;IACjC,iBAAiB,CAAC,IAAc,EAAE,YAAwB,EAAA;AACxD,QAAA,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,YAAY;AAE/B,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,GAAG,IAAI;;AACP,aAAA,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;YACrF,GAAG,GAAG,IAAI;;aACL;YACL,KAAK,GAAG,IAAI;YACZ,GAAG,GAAG,IAAI;;AAGZ,QAAA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;;IAGrB,aAAa,CAAC,UAA2B,EAAE,YAAwB,EAAA;QACjE,IAAI,KAAK,GAAoB,IAAI;QACjC,IAAI,GAAG,GAAoB,IAAI;AAC/B,QAAA,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,YAAY;AAEzC,QAAA,IAAI,SAAS,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE;YACvC,KAAK,GAAG,SAAS;YACjB,GAAG,GAAG,UAAU;;AAGlB,QAAA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;;IAGrB,UAAU,CAAC,UAA2B,EAAE,YAAwB,EAAA;AAC9D,QAAA,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,YAAY;QACjC,OAAO,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC;;+GA/B5C,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAtB,sBAAsB,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;;MCDY,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAoB,eAAoB,CAAC,EAAA;QAArB,IAAY,CAAA,YAAA,GAAZ,YAAY;;AAEhC,IAAA,iBAAiB,CAAC,IAAqB,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;;AAGpC,IAAA,aAAa,CAAC,UAA2B,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;;AAGlC,IAAA,gBAAgB,CAAC,IAAqB,EAAA;QAC5C,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI;AAC7B,YAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAgB,EAAE,EAAE,YAAY,EAAE,CAAC;AACtE,YAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAgB,EAAE,EAAE,YAAY,EAAE,CAAC;AAClE,YAAA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;;AAGrB,QAAA,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;;IAGrB,UAAU,CAAC,UAA2B,EAAE,YAAwB,EAAA;AAC9D,QAAA,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,YAAY;QACjC,OAAO,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC;;AAExD;;;;;;;;;;;MCHY,oBAAoB,CAAA;AA4B/B,IAAA,IACI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,aAAa;;IAE3B,IAAI,YAAY,CAAC,KAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;AAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;;AAkBlC,IAAA,WAAA,CACS,MAAwB,EACvB,OAAmB,EACnB,GAAsB,EACtB,UAAwB,EAAA;QAHzB,IAAM,CAAA,MAAA,GAAN,MAAM;QACL,IAAO,CAAA,OAAA,GAAP,OAAO;QACP,IAAG,CAAA,GAAA,GAAH,GAAG;QACH,IAAU,CAAA,UAAA,GAAV,UAAU;AAnDpB,QAAA,IAAA,CAAA,UAAU,GAAS,IAAI,IAAI,EAAE;;QAG7B,IAAQ,CAAA,QAAA,GAAe,EAAE;QAEzB,IAAO,CAAA,OAAA,GAAe,EAAE;QAExB,IAAQ,CAAA,QAAA,GAAkB,EAAE;QAM5B,IAAO,CAAA,OAAA,GAAY,KAAK;QAKjB,IAAgB,CAAA,gBAAA,GAAY,KAAK;QAExC,IAAa,CAAA,aAAA,GAAe,CAAC;;AAc7B,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,CAAC,KAAK,CAAC;;AAGnD,QAAA,IAAA,CAAA,KAAK,GAAsB,IAAI,YAAY,CAAC,KAAK,CAAC;;QAGlD,IAAQ,CAAA,QAAA,GAAa,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;;AAE/D,QAAA,IAAA,CAAA,UAAU,GAAa,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;;IAY9C,QAAQ,GAAA;;AAEN,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;;AAGlC,IAAA,UAAU,CAAC,IAAU,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACvF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;;IAGlC,QAAQ,CAAC,KAAY,EAAE,GAAQ,EAAA;;QAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;IAGzB,OAAO,CAAC,KAAY,EAAE,GAAQ,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;;AAGjD,IAAA,UAAU,CAAC,KAAW,EAAA;;AAEpB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;;AAG1C,QAAA,IAAI,IAAI,GAAG,KAAK,EACd,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,EACvE,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,EAC5B,KAAK,GAAG,CAAC;QAEX,OAAO,CAAC,IAAI,EAAE;;YAEZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;;AAG1E,YAAA,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACvB,YAAA,IAAI,GAAG,KAAK,EAAE,GAAG,CAAC,IAAI,UAAU,KAAK,IAAI,CAAC,QAAQ,EAAE;AACpD,YAAA,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE;;;IAIhC,SAAS,CAAC,IAAU,EAAE,KAAW,EAAA;;QAE/B,MAAM,IAAI,GAAG,EAAE;;AAEf,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;;YAE1B,IAAI,CAAC,IAAI,CAAC;AACR,gBAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtB,gBAAA,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE;AACtB,gBAAA,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI;AACL,aAAA,CAAC;;AAGF,YAAA,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;;AAGzB,QAAA,OAAO,IAAI;;AAGb,IAAA,UAAU,CAAC,GAAa,EAAA;AACtB,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;;;AAIxH,IAAA,WAAW,CAAC,KAAe,EAAA;QACzB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;;;AAIjF,IAAA,UAAU,CAAC,KAAe,EAAA;QACxB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;;;AAI/E,IAAA,UAAU,CAAC,KAAe,EAAA;QACxB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;;AAItF,IAAA,eAAe,CAAC,KAAe,EAAA;AAC7B,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3F,OAAO,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI;;;AAItC,IAAA,aAAa,CAAC,KAAe,EAAA;AAC3B,QAAA,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;;;AAIpD,IAAA,WAAW,CAAC,KAAe,EAAA;AACzB,QAAA,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;;;AAIlD,IAAA,UAAU,CAAC,KAAe,EAAA;AACxB,QAAA,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;;;AAItD,IAAA,eAAe,CAAC,KAAe,EAAA;AAC7B,QAAA,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;;;AAInD,IAAA,aAAa,CAAC,KAAe,EAAA;AAC3B,QAAA,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;;;AAIjD,IAAA,YAAY,CAAC,KAAe,EAAA;AAC1B,QAAA,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;;+GA9K1C,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,4dC1BjC,ovDAwCM,EAAA,MAAA,EAAA,CAAA,27GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;ADKJ,UAAA,CAAA;AADC,IAAA,YAAY,EAAE;;AACU,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAKlB,UAAA,CAAA;AAFN,IAAA,YAAY,EAAE;;AAE0B,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA;4FAxB9B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGV,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,ovDAAA,EAAA,MAAA,EAAA,CAAA,27GAAA,CAAA,EAAA;yKAInB,OAAO,EAAA,CAAA;sBADN;gBAGD,OAAO,EAAA,CAAA;sBADN;gBAGD,UAAU,EAAA,CAAA;sBADT;gBAID,QAAQ,EAAA,CAAA;sBADP;gBAGD,OAAO,EAAA,CAAA;sBADN;gBAGD,QAAQ,EAAA,CAAA;sBADP;gBAGD,mBAAmB,EAAA,CAAA;sBADlB;gBAKD,OAAO,EAAA,CAAA;sBAFN;gBAOM,gBAAgB,EAAA,CAAA;sBAHtB;;sBAEA,WAAW;uBAAC,0BAA0B;gBAMnC,YAAY,EAAA,CAAA;sBADf;gBAYD,MAAM,EAAA,CAAA;sBADL;gBAID,KAAK,EAAA,CAAA;sBADJ;;AAwIH;AACA,SAAS,OAAO,CAAC,KAAe,EAAE,KAAwB,EAAE,YAAqB,EAAA;IAC/E,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,IAAI,EAAE;AAChC,IAAA,OAAO,YAAY,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;AAC3H;AAEA;AACA,SAAS,KAAK,CAAC,KAAe,EAAE,KAAwB,EAAE,YAAqB,EAAA;IAC7E,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,IAAI,EAAE;AAChC,IAAA,OAAO,YAAY,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;AAC9H;AAEA;AACA,SAAS,SAAS,CAAC,KAAe,EAAE,KAAwB,EAAE,YAAqB,EAAA;IACjF,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,IAAI,EAAE;IAChC,OAAO,YAAY,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG;AAC5H;;AE5NA;MAaa,sBAAsB,CAAA;AAajC,IAAA,WAAA,CAAmB,MAAwB,EAAA;QAAxB,IAAM,CAAA,MAAA,GAAN,MAAM;AAXzB,QAAA,IAAA,CAAA,UAAU,GAAa,IAAI,IAAI,EAAE;QAEjC,IAAQ,CAAA,QAAA,GAAe,EAAE;;AAIzB,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,CAAC,KAAK,CAAC;;AAGnD,QAAA,IAAA,CAAA,UAAU,GAAa,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;;AAI9C,IAAA,QAAQ;IAER,QAAQ,CAAC,KAAY,EAAE,KAAa,EAAA;;QAElC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;;AAGpC,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,UAAU,IAAI,KAAK,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;;AAGxE,IAAA,WAAW,CAAC,KAAa,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;;+GA3B5D,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,yKCbnC,wOAGM,EAAA,MAAA,EAAA,CAAA,8OAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDUO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAGZ,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,wOAAA,EAAA,MAAA,EAAA,CAAA,8OAAA,CAAA,EAAA;qFAInB,UAAU,EAAA,CAAA;sBADT;gBAGD,QAAQ,EAAA,CAAA;sBADP;gBAKD,MAAM,EAAA,CAAA;sBADL;;;MERU,qBAAqB,CAAA;AAiBhC,IAAA,WAAA,CAAmB,MAAwB,EAAA;QAAxB,IAAM,CAAA,MAAA,GAAN,MAAM;AAVzB,QAAA,IAAA,CAAA,UAAU,GAAa,IAAI,IAAI,EAAE;QAEjC,IAAQ,CAAA,QAAA,GAAe,EAAE;;AAGzB,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,CAAC,KAAK,CAAC;;QAGnD,IAAK,CAAA,KAAA,GAAe,EAAE;;IAItB,QAAQ,GAAA;;AAEN,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG,GAAG;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE;QACxE,MAAM,KAAK,GAAG,EAAE;AAChB,QAAA,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;AACjC,YAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;;AAEf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE;;IAG9B,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;;QAEjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;AAGnC,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;;AAGtE,IAAA,WAAW,CAAC,IAAY,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;;+GAzC1D,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,gNCZlC,gNAEM,EAAA,MAAA,EAAA,CAAA,kRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDUO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGX,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,gNAAA,EAAA,MAAA,EAAA,CAAA,kRAAA,CAAA,EAAA;qFAInB,OAAO,EAAA,CAAA;sBADN;gBAGD,OAAO,EAAA,CAAA;sBADN;gBAID,UAAU,EAAA,CAAA;sBADT;gBAGD,QAAQ,EAAA,CAAA;sBADP;gBAID,MAAM,EAAA,CAAA;sBADL;;;AEvBH;MAwBa,mBAAmB,CAAA;AAgB9B,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;IAEvB,IAAI,QAAQ,CAAC,KAAK,EAAA;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;;AAwB9E,IAAA,IACI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;;IAEzB,IAAI,UAAU,CAAC,KAAK,EAAA;QAClB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;;;AAI1B,IAAA,IACI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,aAAa;;IAE3B,IAAI,YAAY,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;;;AAIjE,IAAA,IACI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM;;IAEpC,IAAI,cAAc,CAAC,KAAK,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9D,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;;AAGlC,IAAA,IACI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;;IAEnB,IAAI,IAAI,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;YAClB,QAAQ,KAAK;AACX,gBAAA,KAAK,UAAU;AACb,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,0BAA0B,EAAE;oBACjD;AACF,gBAAA,KAAK,OAAO;AACV,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAsB,EAAE;oBAC7C;AACF,gBAAA,KAAK,MAAM;oBACT,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;oBAC7D;AACF,gBAAA,KAAK,QAAQ;AACb,gBAAA;AACE,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,4BAA4B,EAAE;oBACnD;;;;AAKR,IAAA,IACI,QAAQ,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;YAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA,WAAA,CAAa,CAAC;;QAEhE,OAAO,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA,WAAA,CAAa,CAAC;;AAGhE,IAAA,IACI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU;;AAGnC,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU;;AAGnC,IAAA,WAAA,CACS,MAAwB,EACvB,OAAmB,EACnB,GAAsB,EACtB,UAAwB,EAAA;QAHzB,IAAM,CAAA,MAAA,GAAN,MAAM;QACL,IAAO,CAAA,OAAA,GAAP,OAAO;QACP,IAAG,CAAA,GAAA,GAAH,GAAG;QACH,IAAU,CAAA,UAAA,GAAV,UAAU;;QAjHpB,IAAU,CAAA,UAAA,GAAW,MAAM;QAE3B,IAAM,CAAA,MAAA,GAAW,YAAY;QAE7B,IAAS,CAAA,SAAA,GAAW,EAAE;AAStB,QAAA,IAAA,CAAA,cAAc,GAAyB,IAAI,YAAY,EAAE;QAEzD,IAAO,CAAA,OAAA,GAAW,EAAE;AAEpB,QAAA,IAAA,CAAA,aAAa,GAAyB,IAAI,YAAY,EAAE;AAExD,QAAA,IAAA,CAAA,gBAAgB,GAAuB,IAAI,YAAY,EAAE;QAGzD,IAAQ,CAAA,QAAA,GAAkB,EAAE;AAI5B,QAAA,IAAA,CAAA,WAAW,GAAS,IAAI,IAAI,EAAE;QAC9B,IAAK,CAAA,KAAA,GAA0B,QAAQ;AACvC,QAAA,IAAA,CAAA,eAAe,GAAa,CAAC,CAAC,CAAC;QAC/B,IAAa,CAAA,aAAA,GAAQ,CAAC;AACtB,QAAA,IAAA,CAAA,SAAS,GAAmC,IAAI,4BAA4B,EAAE;;IAsF9E,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE;;AAExE,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;;AAGlC,IAAA,UAAU,CAAC,UAAgB,EAAA;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AAC1E,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;QAChB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3C,QAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE;YACpC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;AAChC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACxE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;;IAIrC,QAAQ,GAAA;AACN,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;;AAEpB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;;AAG7B,IAAA,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAwB,EAAA;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE;QACtE,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;;AAEpB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;;AAG7B,IAAA,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAuB,EAAA;AAC/C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE;QAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;;AAEpB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;;AAG7B,IAAA,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,EAAuB,EAAA;;AAE9C,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;QAChF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,aAAa,CAAC,EAAE,KAAK,EAAE,GAAG,EAAuB,EAAA;AAC/C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC3E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;AAGvC,IAAA,SAAS,CAAC,KAAY,EAAA;AACpB,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;QAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;;AAGtB,IAAA,SAAS,CAAC,KAAY,EAAA;AACpB,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;QAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;;IAGtB,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;AACjC,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;;AAG3B,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM;;aACnB;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;;AAIxB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAC/D,UAAU,CAAC,MAAK;AACd,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,qBAAqB,IAAI,CAAC,UAAU,CAAA,CAAE,CAAC;AAClG,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAC3D,CAAqB,kBAAA,EAAA,IAAI,CAAC,UAAU,CAAA,EAAA,EAAK,IAAI,CAAC,UAAU,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA,SAAA,CAAW,CACnG;AACD,gBAAA,IAAI,SAAS,IAAI,YAAY,EAAE;oBAC7B,SAAS,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,GAAG,GAAG;;AAEtD,aAAC,CAAC;;;IAIN,QAAQ,GAAA;AACN,QAAA,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;+GAzNnC,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,mrBCxBhC,+mFAuDU,EAAA,MAAA,EAAA,CAAA,+kEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD/BG,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cAGb,KAAK,EAAA,QAAA,EAAA,+mFAAA,EAAA,MAAA,EAAA,CAAA,+kEAAA,CAAA,EAAA;yKAInB,OAAO,EAAA,CAAA;sBADN;gBAGD,OAAO,EAAA,CAAA;sBADN;gBAGD,OAAO,EAAA,CAAA;sBADN;gBAGD,OAAO,EAAA,CAAA;sBADN;gBAID,UAAU,EAAA,CAAA;sBADT;gBAGD,MAAM,EAAA,CAAA;sBADL;gBAKG,QAAQ,EAAA,CAAA;sBADX;gBAQD,cAAc,EAAA,CAAA;sBADb;gBAGD,OAAO,EAAA,CAAA;sBADN;gBAGD,aAAa,EAAA,CAAA;sBADZ;gBAGD,gBAAgB,EAAA,CAAA;sBADf;gBAID,QAAQ,EAAA,CAAA;sBADP;gBAGD,mBAAmB,EAAA,CAAA;sBADlB;gBAYG,UAAU,EAAA,CAAA;sBADb;gBAaG,YAAY,EAAA,CAAA;sBADf;gBAYG,cAAc,EAAA,CAAA;sBADjB;gBAUG,IAAI,EAAA,CAAA;sBADP;gBA0BG,QAAQ,EAAA,CAAA;sBADX,WAAW;uBAAC,aAAa;gBAStB,aAAa,EAAA,CAAA;sBADhB,WAAW;uBAAC,yBAAyB;gBAMlC,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,uBAAuB;;;AE3ItC;MAkBa,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAlB,kBAAkB,EAAA,YAAA,EAAA,CAHd,oBAAoB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,CAD7F,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,CAAA,EAAA,OAAA,EAAA,CAE5E,oBAAoB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA;gHAEvF,kBAAkB,EAAA,OAAA,EAAA,CAJnB,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;;4FAI3E,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,CAAC;oBACvF,YAAY,EAAE,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,CAAC;oBACxG,OAAO,EAAE,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,CAAC;AACpG,iBAAA;;;ACjBD;;AAEG;;;;"}
1
+ {"version":3,"file":"novo-elements-elements-calendar.mjs","sources":["../../../projects/novo-elements/src/elements/calendar/strategies/default-selection.strategy.ts","../../../projects/novo-elements/src/elements/calendar/strategies/multi-date-selection.strategy.ts","../../../projects/novo-elements/src/elements/calendar/strategies/range-selection.strategy.ts","../../../projects/novo-elements/src/elements/calendar/strategies/week-selection.strategy.ts","../../../projects/novo-elements/src/elements/calendar/month-view/month-view.component.ts","../../../projects/novo-elements/src/elements/calendar/month-view/month-view.component.html","../../../projects/novo-elements/src/elements/calendar/month-select/month-select.component.ts","../../../projects/novo-elements/src/elements/calendar/month-select/month-select.component.html","../../../projects/novo-elements/src/elements/calendar/year-select/year-select.component.ts","../../../projects/novo-elements/src/elements/calendar/year-select/year-select.component.html","../../../projects/novo-elements/src/elements/calendar/calendar.component.ts","../../../projects/novo-elements/src/elements/calendar/calendar.component.html","../../../projects/novo-elements/src/elements/calendar/Calendar.module.ts","../../../projects/novo-elements/src/elements/calendar/novo-elements-elements-calendar.ts"],"sourcesContent":["import { FactoryProvider, Injectable, InjectionToken, Optional, SkipSelf } from '@angular/core';\nimport type { DateLike, NovoDateSelectionStrategy } from 'novo-elements/utils';\nimport { DateUtil } from 'novo-elements/utils';\n\n/** Injection token used to customize the date range selection behavior. */\nexport const NOVO_DATE_SELECTION_STRATEGY = new InjectionToken<NovoDateSelectionStrategy>('NOVO_DATE_SELECTION_STRATEGY');\n\n/** Provides the default date selection behavior. Single Date */\n@Injectable()\nexport class DefaultDateSelectionStrategy implements NovoDateSelectionStrategy<DateLike[]> {\n selectionFinished(date: DateLike | null, currentValue: DateLike[], event: Event): DateLike[] {\n return [date];\n }\n\n createPreview(activeDate: DateLike | null, [currentDate]: DateLike[]) {\n return [activeDate];\n }\n\n isSelected(activeDate: DateLike | null, [currentDate]: DateLike[]) {\n return DateUtil.isSameDay(activeDate, currentDate);\n }\n}\n\n/** @docs-private */\nexport function NOVO_DATE_SELECTION_STRATEGY_PROVIDER_FACTORY(parent: NovoDateSelectionStrategy<unknown>) {\n return parent || new DefaultDateSelectionStrategy();\n}\n\n/** @docs-private */\nexport const NOVO_DATE_SELECTION_STRATEGY_PROVIDER: FactoryProvider = {\n provide: NOVO_DATE_SELECTION_STRATEGY,\n deps: [[new Optional(), new SkipSelf(), NOVO_DATE_SELECTION_STRATEGY]],\n useFactory: NOVO_DATE_SELECTION_STRATEGY_PROVIDER_FACTORY,\n};\n","import { Injectable } from '@angular/core';\nimport type { DateLike, NovoDateSelectionStrategy } from 'novo-elements/utils';\n\n@Injectable()\nexport class MultiDateSelectionStrategy implements NovoDateSelectionStrategy<DateLike[]> {\n selectionFinished(dateLike: DateLike | null, currentValue: DateLike[], event: Event): DateLike[] {\n const date = dateLike as Date;\n const current = new Set(currentValue.map((c: Date) => c.getTime()));\n if (current.has(date.getTime())) {\n current.delete(date.getTime());\n } else {\n current.add(date.getTime());\n }\n return [...current].map((c) => new Date(c));\n }\n\n createPreview(activeDate: DateLike | null, currentValue: DateLike[]) {\n return [activeDate];\n }\n\n isSelected(activeDate: DateLike | null, currentValue: DateLike[]) {\n return currentValue && currentValue.includes(activeDate);\n }\n}\n","import { Injectable } from '@angular/core';\nimport type { DateLike, NovoDateSelectionStrategy } from 'novo-elements/utils';\nimport { DateUtil } from 'novo-elements/utils';\n\n@Injectable()\nexport class RangeSelectionStrategy implements NovoDateSelectionStrategy<DateLike[]> {\n selectionFinished(date: DateLike, currentRange: DateLike[]) {\n let [start, end] = currentRange;\n\n if (start == null) {\n start = date;\n } else if (end == null && date && DateUtil.differenceInCalendarDays(date, start) >= 0) {\n end = date;\n } else {\n start = date;\n end = null;\n }\n\n return [start, end];\n }\n\n createPreview(activeDate: DateLike | null, currentRange: DateLike[]) {\n let start: DateLike | null = null;\n let end: DateLike | null = null;\n const [currStart, currEnd] = currentRange;\n\n if (currStart && !currEnd && activeDate) {\n start = currStart;\n end = activeDate;\n }\n\n return [start, end];\n }\n\n isSelected(activeDate: DateLike | null, currentRange: DateLike[]) {\n const [start, end] = currentRange;\n return DateUtil.isWithinRange(activeDate, start, end);\n }\n}\n","import type { DateLike, NovoDateSelectionStrategy } from 'novo-elements/utils';\nimport { DateUtil } from 'novo-elements/utils';\n\nexport class WeekSelectionStrategy implements NovoDateSelectionStrategy<DateLike[]> {\n constructor(private weekStartsOn: Day = 0) {}\n\n selectionFinished(date: DateLike | null): DateLike[] {\n return this._createWeekRange(date);\n }\n\n createPreview(activeDate: DateLike | null): DateLike[] {\n return this._createWeekRange(activeDate);\n }\n\n private _createWeekRange(date: DateLike | null): DateLike[] {\n if (date) {\n const { weekStartsOn } = this;\n const start = DateUtil.startOfWeek(date as DateLike, { weekStartsOn });\n const end = DateUtil.endOfWeek(date as DateLike, { weekStartsOn });\n return [start, end];\n }\n\n return [null, null];\n }\n\n isSelected(activeDate: DateLike | null, currentRange: DateLike[]) {\n const [start, end] = currentRange;\n return DateUtil.isWithinRange(activeDate, start, end);\n }\n}\n","// NG2\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n// Vendor\nimport { addDays, Day as DateFnsDay, isToday } from 'date-fns';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { BooleanInput, DateUtil } from 'novo-elements/utils';\nimport type { DateLike, Day, OverlayDate } from 'novo-elements/utils';\n\n@Component({\n selector: 'novo-month-view',\n templateUrl: './month-view.component.html',\n styleUrls: ['./month-view.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoMonthViewElement implements OnInit {\n @Input()\n minDate: Date;\n @Input()\n maxDate: Date;\n @Input()\n activeDate: Date = new Date();\n // Weekstart must be 0-6 (Sunday - Saturday)\n @Input()\n selected: DateLike[] = [];\n @Input()\n preview: DateLike[] = [];\n @Input()\n overlays: OverlayDate[] = [];\n @Input()\n disabledDateMessage: string;\n\n @Input()\n @BooleanInput()\n isRange: boolean = false;\n\n @Input()\n @BooleanInput()\n @HostBinding('class.hide-overflow-days')\n public hideOverflowDays: boolean = false;\n\n _weekStartsOn: DateFnsDay = 0;\n\n @Input()\n get weekStartsOn(): DateFnsDay {\n return this._weekStartsOn;\n }\n set weekStartsOn(value: DateFnsDay) {\n this._weekStartsOn = value;\n this.weekdays = this.labels.getWeekdays(value);\n this.updateView(this.activeDate);\n }\n\n // Select callback for output\n @Output()\n select: EventEmitter<any> = new EventEmitter(false);\n // Select callback for output\n @Output()\n hover: EventEmitter<any> = new EventEmitter(false);\n\n // List of all the weekdays\n weekdays: string[] = this.labels.getWeekdays(this.weekStartsOn);\n // List of all months\n monthNames: string[] = this.labels.getMonths();\n\n monthLabel: string;\n weeks: any;\n\n constructor(\n public labels: NovoLabelService,\n private element: ElementRef,\n private cdr: ChangeDetectorRef,\n private _sanitizer: DomSanitizer,\n ) {}\n\n ngOnInit() {\n // Set labels\n this.updateView(this.activeDate);\n }\n\n updateView(date: Date) {\n this.monthLabel = this.labels.formatDateWithFormat(this.activeDate, { month: 'short' });\n this.buildMonth(this.activeDate);\n }\n\n onSelect(event: Event, day: Day) {\n // Helpers.swallowEvent(event);\n this.select.next({ event, day });\n this.cdr.markForCheck();\n }\n\n onHover(event: Event, day: Day): void {\n this.isRange && this.hover.next({ event, day });\n }\n\n buildMonth(month: Date) {\n // Reset the weeks\n this.weeks = [];\n const start = DateUtil.startOfMonth(month);\n\n // House keeping variables to know when we are done building the month\n let done = false;\n let date = DateUtil.startOfWeek(start, { weekStartsOn: this.weekStartsOn });\n let monthIndex = date.getMonth();\n let count = 0;\n\n while (!done) {\n // Build the days for the weeks\n this.weeks.push({ days: this.buildWeek(new Date(date.getTime()), month) });\n\n // Increment variables for the next iteration\n date = addDays(date, 7);\n done = count++ > 2 && monthIndex !== date.getMonth();\n monthIndex = date.getMonth();\n }\n }\n\n buildWeek(date: Date, month: Date): Array<Object> {\n // Build out of the days of the week\n const days = [];\n // Iterate over the days of the week\n for (let i = 0; i < 7; i++) {\n // Push a variable on the day array with lots of helpers to make the template easier\n days.push({\n name: this.weekdays[i],\n number: date.getDate(),\n isToday: isToday(date),\n date,\n });\n\n // Increment for the next iteration\n date = addDays(date, 1);\n }\n\n return days;\n }\n\n isDisabled(day: DateLike) {\n return (this.minDate && DateUtil.isBefore(day, this.minDate)) || (this.maxDate && DateUtil.isAfter(day, this.maxDate));\n }\n\n /** Returns whether a cell should be marked as selected. */\n _isSelected(value: DateLike) {\n return this.selected && this.selected.find((d) => DateUtil.isSameDay(d, value));\n }\n\n /** Returns whether a cell should be marked as preview. */\n _isPreview(value: DateLike) {\n return this.preview && this.preview.find((d) => DateUtil.isSameDay(d, value));\n }\n\n /** Returns whether a cell should be marked as an overlay. */\n _isOverlay(value: DateLike) {\n return this.overlays && this.overlays.find((o) => DateUtil.isSameDay(o.date, value));\n }\n\n /** Returns whether a cell should be marked as an overlay. */\n _hasOverlayType(value: DateLike) {\n const overlay = this.overlays && this.overlays.find((o) => DateUtil.isSameDay(o.date, value));\n return overlay ? overlay.type : null;\n }\n\n /** Gets whether a value is the start of the main range. */\n _isRangeStart(value: DateLike) {\n return isStart(value, this.selected, this.isRange);\n }\n\n /** Gets whether a value is the end of the main range. */\n _isRangeEnd(value: DateLike) {\n return isEnd(value, this.selected, this.isRange);\n }\n\n /** Gets whether a value is within the currently-selected range. */\n _isInRange(value: DateLike): boolean {\n return isInRange(value, this.selected, this.isRange);\n }\n\n /** Gets whether a value is the start of the preview range. */\n _isPreviewStart(value: DateLike) {\n return isStart(value, this.preview, this.isRange);\n }\n\n /** Gets whether a value is the end of the preview range. */\n _isPreviewEnd(value: DateLike) {\n return isEnd(value, this.preview, this.isRange);\n }\n\n /** Gets whether a value is inside the preview range. */\n _isInPreview(value: DateLike) {\n return isInRange(value, this.preview, this.isRange);\n }\n}\n\n/** Checks whether a value is the start of a range. */\nfunction isStart(value: DateLike, range: DateLike[] | null, rangeEnabled: boolean): boolean {\n const [start, end] = range ?? [];\n return rangeEnabled && end !== null && !DateUtil.isSameDay(start, end) && value < end && DateUtil.isSameDay(value, start);\n}\n\n/** Checks whether a value is the end of a range. */\nfunction isEnd(value: DateLike, range: DateLike[] | null, rangeEnabled: boolean): boolean {\n const [start, end] = range ?? [];\n return rangeEnabled && start !== null && !DateUtil.isSameDay(start, end) && value >= start && DateUtil.isSameDay(value, end);\n}\n\n/** Checks whether a value is inside of a range. */\nfunction isInRange(value: DateLike, range: DateLike[] | null, rangeEnabled: boolean): boolean {\n const [start, end] = range ?? [];\n return rangeEnabled && start !== null && end !== null && !DateUtil.isSameDay(start, end) && value >= start && value <= end;\n}\n","<div class=\"calendar-table\" cellspacing=\"0\" cellpadding=\"0\">\n <div class=\"calendar-thead\">\n <div class=\"calendar-th weekday\" *ngFor=\"let day of weekdays\" title=\"{{ day }}\"\n [attr.data-automation-id]=\"day.substr(0, 2)\">\n {{ day.substr(0, 2) }}\n </div>\n </div>\n <div class=\"calendar-body\">\n <div class=\"calendar-week\" *ngFor=\"let week of weeks\">\n <div class=\"calendar-date\" *ngFor=\"let day of week.days\"\n [class.today]=\"day.isToday\"\n [class.notinmonth]=\"day.date.getMonth() !== activeDate.getMonth()\"\n [class.selected]=\"_isSelected(day.date)\"\n [class.preview]=\"_isPreview(day.date)\"\n [class.overlay]=\"_isOverlay(day.date)\"\n [class]=\"_hasOverlayType(day.date)\"\n [class.inRange]=\"_isInRange(day.date)\"\n [class.rangeStart]=\"_isRangeStart(day.date)\"\n [class.rangeEnd]=\"_isRangeEnd(day.date)\"\n [class.inPreview]=\"_isInPreview(day.date)\"\n [class.previewStart]=\"_isPreviewStart(day.date)\"\n [class.previewEnd]=\"_isPreviewEnd(day.date)\"\n [class.calendar-date]=\"true\"\n [attr.aria-label]=\"day.name\"\n [attr.aria-disabled]=\"isDisabled(day.date)\"\n [attr.aria-selected]=\"_isSelected(day.date)\"\n [attr.data-automation-id]=\"day.number\"\n [title]=\"isDisabled(day.date) ? disabledDateMessage : ''\"\n (mouseover)=\"onHover($event, day)\">\n <novo-button\n class=\"day\"\n tabindex=\"0\"\n [attr.data-automation-id]=\"day.number\"\n [disabled]=\"isDisabled(day.date)\"\n (click)=\"onSelect($event, day)\">\n {{ day.number }}\n </novo-button>\n </div>\n </div>\n </div>\n</div>","// NG2\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NovoLabelService } from 'novo-elements/services';\nimport type { DateLike } from 'novo-elements/utils';\nimport { DateUtil } from 'novo-elements/utils';\n\n@Component({\n selector: 'novo-month-select',\n templateUrl: './month-select.component.html',\n styleUrls: ['./month-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoMonthSelectElement implements OnInit {\n @Input()\n activeDate: DateLike = new Date();\n @Input()\n selected: DateLike[] = [];\n\n // Select callback for output\n @Output()\n select: EventEmitter<any> = new EventEmitter(false);\n\n // List of all months\n monthNames: string[] = this.labels.getMonths();\n\n constructor(public labels: NovoLabelService) {}\n\n ngOnInit() {}\n\n onSelect(event: Event, month: number) {\n // Helpers.swallowEvent(event);\n this.select.next({ event, month });\n }\n\n _isActive(month: number) {\n return this.activeDate && month === DateUtil.getMonth(this.activeDate);\n }\n\n _isSelected(month: number) {\n return this.selected && month === DateUtil.getMonth(this.selected[0]);\n }\n}\n","<div *ngFor=\"let month of monthNames; let i = index\" (click)=\"onSelect($event, i)\" tabindex=\"0\">\n <div class=\"month\" [class.selected]=\"_isSelected(i)\" [attr.data-automation-id]=\"month\">\n {{ month }}</div>\n</div>","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NovoLabelService } from 'novo-elements/services';\nimport type { DateLike } from 'novo-elements/utils';\nimport { DateUtil } from 'novo-elements/utils';\n\n@Component({\n selector: 'novo-year-select',\n templateUrl: './year-select.component.html',\n styleUrls: ['./year-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoYearSelectElement implements OnInit {\n @Input()\n minYear: string | number;\n @Input()\n maxYear: string | number;\n\n @Input()\n activeDate: DateLike = new Date();\n @Input()\n selected: DateLike[] = [];\n // Select callback for output\n @Output()\n select: EventEmitter<any> = new EventEmitter(false);\n\n // List of all years (generated in ngOnInit)\n years: Array<any> = [];\n\n constructor(public labels: NovoLabelService) {}\n\n ngOnInit() {\n // Determine the year array\n const now = new Date();\n const start = this.minYear ? Number(this.minYear) : now.getFullYear() - 100;\n const end = this.maxYear ? Number(this.maxYear) : now.getFullYear() + 10;\n const years = [];\n for (let i = start; i <= end; i++) {\n years.push(i);\n }\n this.years = years.reverse();\n }\n\n onSelect(event: Event, year: number) {\n // Helpers.swallowEvent(event);\n this.select.next({ event, year });\n }\n\n _isActive(year: number) {\n return this.activeDate && year === DateUtil.getYear(this.activeDate);\n }\n\n _isSelected(year: number) {\n return this.selected && year === DateUtil.getYear(this.selected[0]);\n }\n}\n","<div *ngFor=\"let year of years\" (click)=\"onSelect($event, year)\" tabindex=\"0\">\n <div class=\"year\" [class.selected]=\"_isSelected(year)\" [attr.data-automation-id]=\"year\">{{ year }}</div>\n</div>","// NG2\nimport { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n// Vendor\nimport { addMonths, isDate, isSameDay, setMonth, setYear, startOfDay, startOfMonth, subMonths } from 'date-fns';\n// APP\nimport { NovoLabelService } from 'novo-elements/services';\nimport { Helpers } from 'novo-elements/utils';\nimport type {\n DatePickerSelectModes,\n NovoDateSelectEvent,\n NovoDateSelectionStrategy,\n NovoMonthSelectEvent,\n NovoYearSelectEvent,\n OverlayDate,\n} from 'novo-elements/utils';\nimport { DefaultDateSelectionStrategy, MultiDateSelectionStrategy, RangeSelectionStrategy, WeekSelectionStrategy } from './strategies';\n\n@Component({\n selector: 'novo-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n standalone: false,\n})\nexport class NovoCalendarElement implements OnInit {\n @Input()\n minYear: string | number;\n @Input()\n maxYear: string | number;\n @Input()\n minDate: string | number;\n @Input()\n maxDate: string | number;\n // Default view mode (select days)\n @Input()\n activeView: string = 'days';\n @Input()\n layout: string = 'horizontal';\n\n _selected: Date[] = [];\n @Input()\n get selected(): Date[] {\n return this._selected;\n }\n set selected(value) {\n this._selected = value ? value.filter(isDate).map((d) => startOfDay(d)) : [];\n }\n @Output()\n selectedChange: EventEmitter<Date[]> = new EventEmitter();\n @Input()\n preview: Date[] = [];\n @Output()\n previewChange: EventEmitter<Date[]> = new EventEmitter();\n @Output()\n activeDateChange: EventEmitter<Date> = new EventEmitter();\n\n @Input()\n overlays: OverlayDate[] = [];\n @Input()\n disabledDateMessage: string;\n\n _activeDate: Date = new Date();\n _mode: DatePickerSelectModes = 'single';\n _numberOfMonths: number[] = [0];\n _weekStartsOn: Day = 0;\n _strategy: NovoDateSelectionStrategy<any> = new DefaultDateSelectionStrategy();\n\n months: any;\n\n @Input()\n get activeDate(): Date {\n return this._activeDate;\n }\n set activeDate(value) {\n if (!isSameDay(value, this._activeDate)) {\n this._activeDate = value;\n this.activeDateChange.next(value);\n this.updateView(value);\n }\n }\n\n @Input()\n get weekStartsOn(): Day {\n return this._weekStartsOn;\n }\n set weekStartsOn(value: Day) {\n this._weekStartsOn = value;\n if (this.mode === 'week') {\n this._strategy = new WeekSelectionStrategy(this.weekStartsOn);\n }\n }\n\n @Input()\n get numberOfMonths(): number {\n return this._numberOfMonths.length;\n }\n set numberOfMonths(value) {\n this._numberOfMonths = Array.from(Array(Number(value)).keys());\n this.updateView(this.activeDate);\n }\n\n @Input()\n get mode(): DatePickerSelectModes {\n return this._mode;\n }\n set mode(value) {\n if (this._mode !== value) {\n this._mode = value;\n switch (value) {\n case 'multiple':\n this._strategy = new MultiDateSelectionStrategy();\n break;\n case 'range':\n this._strategy = new RangeSelectionStrategy();\n break;\n case 'week':\n this._strategy = new WeekSelectionStrategy(this.weekStartsOn);\n break;\n case 'single':\n default:\n this._strategy = new DefaultDateSelectionStrategy();\n break;\n }\n }\n }\n\n @HostBinding('style.width')\n get hb_width() {\n if (this.layout === 'vertical') {\n return this._sanitizer.bypassSecurityTrustStyle('min-content');\n }\n return this._sanitizer.bypassSecurityTrustStyle('min-content');\n }\n\n @HostBinding('class.layout-horizontal')\n get hb_horiztonal() {\n return this.layout !== 'vertical';\n }\n\n @HostBinding('class.layout-vertical')\n get hb_vertical() {\n return this.layout === 'vertical';\n }\n\n constructor(\n public labels: NovoLabelService,\n private element: ElementRef,\n private cdr: ChangeDetectorRef,\n private _sanitizer: DomSanitizer,\n ) {}\n\n ngOnInit() {\n if (!this.activeDate) {\n this.activeDate = this.selected.length ? this.selected[0] : new Date();\n }\n this.updateView(this.activeDate);\n }\n\n updateView(activeDate: Date) {\n this.activeDate = new Date(activeDate ? new Date(activeDate) : new Date());\n this.months = [];\n const month = startOfMonth(this.activeDate);\n for (const i of this._numberOfMonths) {\n const date = addMonths(month, i);\n const label = this.labels.formatDateWithFormat(date, { month: 'short' });\n this.months.push({ date, label });\n }\n }\n\n setToday() {\n const tmp = new Date();\n this.updateView(tmp);\n // Go back to days\n this.openView(null, 'days');\n }\n\n monthSelected({ event, month }: NovoMonthSelectEvent): void {\n const date = this.activeDate ? this.activeDate : new Date().getMonth();\n const tmp = setMonth(date, month);\n this.updateView(tmp);\n // Go back to days\n this.openView(null, 'days');\n }\n\n yearSelected({ event, year }: NovoYearSelectEvent): void {\n const date = this.activeDate ? this.activeDate : new Date();\n const tmp = setYear(date, year);\n this.updateView(tmp);\n // Go back to days\n this.openView(null, 'days');\n }\n\n dateSelected({ event, day }: NovoDateSelectEvent) {\n // Helpers.swallowEvent(event);\n this.selected = this._strategy.selectionFinished(day.date, this.selected, event);\n this.selectedChange.emit(this.selected);\n this.cdr.markForCheck();\n }\n\n updatePreview({ event, day }: NovoDateSelectEvent) {\n this.preview = this._strategy.createPreview(day.date, this.selected, event);\n this.previewChange.emit(this.preview);\n }\n\n prevMonth(event: Event): void {\n Helpers.swallowEvent(event);\n const tmp = subMonths(this.activeDate, 1);\n this.updateView(tmp);\n }\n\n nextMonth(event: Event): void {\n Helpers.swallowEvent(event);\n const tmp = addMonths(this.activeDate, 1);\n this.updateView(tmp);\n }\n\n openView(event: Event, type: string) {\n Helpers.swallowEvent(event);\n\n // If they click the toggle two time in a row, close it (go back to days)\n if (type === this.activeView) {\n this.activeView = 'days';\n } else {\n this.activeView = type;\n }\n\n // Make sure to scroll the selected one into view\n if (this.activeView === 'years' || this.activeView === 'months') {\n setTimeout(() => {\n const container = this.element.nativeElement.querySelector(`.calendar-content.${this.activeView}`);\n const selectedItem = this.element.nativeElement.querySelector(\n `.calendar-content.${this.activeView} .${this.activeView === 'years' ? 'year' : 'month'}.selected`,\n );\n if (container && selectedItem) {\n container.scrollTop = selectedItem.offsetTop - 100;\n }\n });\n }\n }\n\n _isRange() {\n return ['week', 'range'].includes(this.mode);\n }\n}\n","<div class=\"calendar-header\">\n <novo-button theme=\"icon\" icon=\"previous\" size=\"small\" (click)=\"prevMonth($event)\"\n data-automation-id=\"calendar-previous\" tabindex=\"0\"></novo-button>\n <ng-container *ngFor=\"let month of months; let i = index;\">\n <span class=\"heading\" [class.secondary]=\"i > 0\">\n <span class=\"month\" (click)=\"openView($event, 'months')\"\n data-automation-id=\"header-month\" tabindex=\"0\">{{ month.label }}</span>\n <span class=\"year\" (click)=\"openView($event, 'years')\"\n data-automation-id=\"header-year\" tabindex=\"0\">{{ month.date?.getFullYear() }}</span>\n </span>\n </ng-container>\n <novo-button theme=\"icon\" icon=\"next\" size=\"small\" (click)=\"nextMonth($event)\" data-automation-id=\"calendar-next\" tabindex=\"0\">\n </novo-button>\n</div>\n<section class=\"calendar-content\" [ngSwitch]=\"activeView\">\n <ng-container *ngSwitchCase=\"'days'\">\n <ng-container *ngFor=\"let month of months; let i = index\">\n <div class=\"calendar-header\" *ngIf=\"layout==='vertical' && i > 0\">\n <span class=\"previous\" (click)=\"prevMonth($event)\" data-automation-id=\"calendar-previous\" tabindex=\"0\"></span>\n <span class=\"heading\">\n <span class=\"month\" (click)=\"openView($event, 'months')\"\n data-automation-id=\"header-month\" tabindex=\"0\">{{ month.label }}</span>\n <span class=\"year\" (click)=\"openView($event, 'years')\"\n data-automation-id=\"header-year\" tabindex=\"0\">{{ month.date?.getFullYear() }}</span>\n </span>\n <span class=\"next\" (click)=\"nextMonth($event)\" data-automation-id=\"calendar-next\"></span>\n </div>\n <novo-month-view\n class=\"month-view\"\n [activeDate]=\"month.date\"\n [selected]=\"selected\"\n [preview]=\"preview\"\n [overlays]=\"overlays\"\n [isRange]=\"_isRange()\"\n [hideOverflowDays]=\"months.length > 1\"\n [weekStartsOn]=\"weekStartsOn\"\n [disabledDateMessage]=\"disabledDateMessage\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (select)=\"dateSelected($event)\"\n (hover)=\"updatePreview($event)\"></novo-month-view>\n </ng-container>\n </ng-container>\n <novo-month-select\n *ngSwitchCase=\"'months'\"\n [activeDate]=\"activeDate\"\n [selected]=\"selected\"\n (select)=\"monthSelected($event)\">\n </novo-month-select>\n <novo-year-select\n *ngSwitchCase=\"'years'\"\n [activeDate]=\"activeDate\"\n [selected]=\"selected\"\n (select)=\"yearSelected($event)\">\n </novo-year-select>\n</section>","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { NovoPipesModule } from 'novo-elements/pipes';\nimport { NovoCalendarElement } from './calendar.component';\nimport { NovoMonthSelectElement } from './month-select/month-select.component';\nimport { NovoMonthViewElement } from './month-view/month-view.component';\nimport { NovoYearSelectElement } from './year-select/year-select.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, NovoButtonModule, NovoPipesModule, NovoIconModule],\n declarations: [NovoMonthViewElement, NovoMonthSelectElement, NovoYearSelectElement, NovoCalendarElement],\n exports: [NovoMonthViewElement, NovoMonthSelectElement, NovoYearSelectElement, NovoCalendarElement],\n})\nexport class NovoCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i5.NovoMonthViewElement","i6.NovoMonthSelectElement","i7.NovoYearSelectElement"],"mappings":"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"}
@@ -31,7 +31,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
31
31
  args: [{
32
32
  selector: 'novo-card-actions',
33
33
  template: '<ng-content></ng-content>',
34
- standalone: false
34
+ standalone: false,
35
35
  }]
36
36
  }] });
37
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-card.mjs","sources":["../../../projects/novo-elements/src/elements/card/Card.ts","../../../projects/novo-elements/src/elements/card/Card.module.ts","../../../projects/novo-elements/src/elements/card/novo-elements-elements-card.ts"],"sourcesContent":["// NG2\nimport { Component, EventEmitter, HostBinding, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\n// APP\nimport { NovoLabelService } from 'novo-elements/services';\nimport { BooleanInput } from 'novo-elements/utils';\n\n@Component({\n selector: 'novo-card-actions',\n template: '<ng-content></ng-content>',\n standalone: false\n})\nexport class CardActionsElement {}\n\n/**\n * Content of a card, needed as it's used as a selector in the API.\n */\n@Component({\n selector: 'novo-card-content, [novo-card-content], [novoCardContent]',\n host: { class: 'novo-card-content', '[class.condensed]': 'condensed' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./CardContent.scss'],\n standalone: false\n})\nexport class CardContentElement {\n @Input() @BooleanInput() condensed: boolean = false;\n}\n\n/**\n * Content of a card, needed as it's used as a selector in the API.\n */\n@Component({\n selector: 'novo-card-header, [novo-card-header], [novoCardHeader]',\n host: { class: 'novo-card-header' },\n template: `\n <ng-content select=\"novo-avatar, [novo-avatar], novo-icon\"></ng-content>\n <div class=\"novo-card-header-text\">\n <ng-content select=\"novo-title, [novo-title], novo-text, novo-label, novo-caption\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div class=\"novo-card-header-actions\">\n <ng-content select=\"novo-action\"></ng-content>\n </div>\n `,\n styleUrls: ['./CardHeader.scss'],\n standalone: false\n})\nexport class CardHeaderElement {}\n\n@Component({\n selector: 'novo-card-footer, [novo-card-footer], [novoCardFooter]',\n host: { class: 'novo-card-footer' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./CardFooter.scss'],\n standalone: false\n})\nexport class CardFooterElement {}\n\n@Component({\n selector: 'novo-card',\n host: {\n class: 'novo-card',\n '[attr.data-automation-id]': 'cardAutomationId',\n '[class.loading]': 'loading || config.loading',\n },\n template: `\n <!--Loading-->\n <div class=\"card-loading-container\" *ngIf=\"loading || config.loading\">\n <novo-loading theme=\"line\" [attr.data-automation-id]=\"cardAutomationId + '-loading'\"></novo-loading>\n </div>\n <!--Card Header-->\n <header *ngIf=\"title || config.title\">\n <div class=\"title\">\n <!--Grabber Icon-->\n <novo-icon\n *ngIf=\"move || config.move\"\n tooltip=\"{{ labels.move }}\"\n tooltipPosition=\"bottom-right\"\n [attr.data-automation-id]=\"cardAutomationId + '-move'\"\n >move</novo-icon\n >\n <!--Card Title-->\n <h3 [attr.data-automation-id]=\"cardAutomationId + '-title'\">\n <span [tooltip]=\"iconTooltip\" tooltipPosition=\"right\"><i *ngIf=\"icon\" [ngClass]=\"iconClass\"></i></span>\n {{ title || config.title }}\n </h3>\n </div>\n <!--Card Actions-->\n <div class=\"actions\" [attr.data-automation-id]=\"cardAutomationId + '-actions'\">\n <ng-content select=\"novo-card-actions\"></ng-content>\n <novo-button\n theme=\"icon\"\n icon=\"refresh\"\n (click)=\"toggleRefresh()\"\n *ngIf=\"refresh || config.refresh\"\n [attr.data-automation-id]=\"cardAutomationId + '-refresh'\"\n tooltip=\"{{ labels.refresh }}\"\n tooltipPosition=\"bottom-left\"\n ></novo-button>\n\n <novo-button\n theme=\"icon\"\n icon=\"close-o\"\n (click)=\"toggleClose()\"\n *ngIf=\"close || config.close\"\n [attr.data-automation-id]=\"cardAutomationId + '-close'\"\n tooltip=\"{{ labels.close }}\"\n tooltipPosition=\"bottom-left\"\n ></novo-button>\n </div>\n </header>\n <!--Content (transcluded)-->\n <ng-content *ngIf=\"!(loading || config.loading) && !(message || config.message)\"></ng-content>\n <!--Error/Empty Message-->\n <p\n class=\"card-message\"\n *ngIf=\"!(loading || config.loading) && (message || config.message)\"\n [attr.data-automation-id]=\"cardAutomationId + '-message'\"\n >\n <i *ngIf=\"messageIconClass\" [ngClass]=\"messageIconClass\"></i> <span [innerHtml]=\"message || config.message\"></span>\n </p>\n <!--Card Footer-->\n <ng-content\n *ngIf=\"!(loading || config.loading) && !(message || config.message)\"\n select=\"footer,novo-card-footer,[novo-card-footer],[novoCardFooter]\"\n ></ng-content>\n `,\n styleUrls: ['./Card.scss'],\n standalone: false\n})\nexport class CardElement implements OnChanges, OnInit {\n @Input()\n padding: boolean = true;\n @Input()\n config: any = {};\n @Input()\n title: string;\n @Input()\n message: string;\n @Input()\n messageIcon: string;\n @Input()\n icon: string;\n @Input()\n iconTooltip: string;\n @Input()\n refresh: boolean;\n @Input()\n close: boolean;\n @Input()\n move: boolean;\n @Input()\n loading: boolean;\n\n @Input()\n @BooleanInput()\n @HostBinding('class.novo-card-inline')\n inline: boolean;\n\n @Input()\n inset: string = 'none';\n @HostBinding('class')\n get hbInset() {\n return `novo-card-inset-${this.inset}`;\n }\n\n @Output()\n onClose: EventEmitter<void> = new EventEmitter();\n @Output()\n onRefresh: EventEmitter<void> = new EventEmitter();\n\n cardAutomationId: string;\n labels: NovoLabelService;\n iconClass: string | null;\n messageIconClass: string;\n\n constructor(labels: NovoLabelService) {\n this.labels = labels;\n }\n\n ngOnInit() {\n this.config = this.config || {};\n }\n\n ngOnChanges(changes?: SimpleChanges) {\n this.config = this.config || {};\n this.cardAutomationId = `${(this.title || this.config.title || 'no-title').trim().toLowerCase().replace(/\\s/g, '-')}-card`;\n\n const newIcon: string = this.icon || this.config.icon;\n const newMessageIcon: string = this.messageIcon || this.config.messageIcon;\n this.iconClass = newIcon ? `bhi-${newIcon}` : null;\n this.messageIconClass = newMessageIcon ? `bhi-${newMessageIcon}` : null;\n }\n\n toggleClose() {\n if (!this.config.onClose) {\n this.onClose.next();\n } else {\n this.config.onClose();\n }\n }\n\n toggleRefresh() {\n if (!this.config.onRefresh) {\n this.onRefresh.next();\n } else {\n this.config.onRefresh();\n }\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { NovoLoadingModule } from 'novo-elements/elements/loading';\nimport { NovoTooltipModule } from 'novo-elements/elements/tooltip';\nimport { CardActionsElement, CardContentElement, CardElement, CardFooterElement, CardHeaderElement } from './Card';\n\n@NgModule({\n imports: [CommonModule, NovoIconModule, NovoButtonModule, NovoLoadingModule, NovoTooltipModule],\n declarations: [CardElement, CardActionsElement, CardContentElement, CardHeaderElement, CardFooterElement],\n exports: [CardElement, CardActionsElement, CardContentElement, CardHeaderElement, CardFooterElement],\n})\nexport class NovoCardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"novo-elements-elements-card.mjs","sources":["../../../projects/novo-elements/src/elements/card/Card.ts","../../../projects/novo-elements/src/elements/card/Card.module.ts","../../../projects/novo-elements/src/elements/card/novo-elements-elements-card.ts"],"sourcesContent":["// NG2\nimport { Component, EventEmitter, HostBinding, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\n// APP\nimport { NovoLabelService } from 'novo-elements/services';\nimport { BooleanInput } from 'novo-elements/utils';\n\n@Component({\n selector: 'novo-card-actions',\n template: '<ng-content></ng-content>',\n standalone: false,\n})\nexport class CardActionsElement {}\n\n/**\n * Content of a card, needed as it's used as a selector in the API.\n */\n@Component({\n selector: 'novo-card-content, [novo-card-content], [novoCardContent]',\n host: { class: 'novo-card-content', '[class.condensed]': 'condensed' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./CardContent.scss'],\n standalone: false,\n})\nexport class CardContentElement {\n @Input() @BooleanInput() condensed: boolean = false;\n}\n\n/**\n * Content of a card, needed as it's used as a selector in the API.\n */\n@Component({\n selector: 'novo-card-header, [novo-card-header], [novoCardHeader]',\n host: { class: 'novo-card-header' },\n template: `\n <ng-content select=\"novo-avatar, [novo-avatar], novo-icon\"></ng-content>\n <div class=\"novo-card-header-text\">\n <ng-content select=\"novo-title, [novo-title], novo-text, novo-label, novo-caption\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div class=\"novo-card-header-actions\">\n <ng-content select=\"novo-action\"></ng-content>\n </div>\n `,\n styleUrls: ['./CardHeader.scss'],\n standalone: false,\n})\nexport class CardHeaderElement {}\n\n@Component({\n selector: 'novo-card-footer, [novo-card-footer], [novoCardFooter]',\n host: { class: 'novo-card-footer' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./CardFooter.scss'],\n standalone: false,\n})\nexport class CardFooterElement {}\n\n@Component({\n selector: 'novo-card',\n host: {\n class: 'novo-card',\n '[attr.data-automation-id]': 'cardAutomationId',\n '[class.loading]': 'loading || config.loading',\n },\n template: `\n <!--Loading-->\n <div class=\"card-loading-container\" *ngIf=\"loading || config.loading\">\n <novo-loading theme=\"line\" [attr.data-automation-id]=\"cardAutomationId + '-loading'\"></novo-loading>\n </div>\n <!--Card Header-->\n <header *ngIf=\"title || config.title\">\n <div class=\"title\">\n <!--Grabber Icon-->\n <novo-icon\n *ngIf=\"move || config.move\"\n tooltip=\"{{ labels.move }}\"\n tooltipPosition=\"bottom-right\"\n [attr.data-automation-id]=\"cardAutomationId + '-move'\"\n >move</novo-icon\n >\n <!--Card Title-->\n <h3 [attr.data-automation-id]=\"cardAutomationId + '-title'\">\n <span [tooltip]=\"iconTooltip\" tooltipPosition=\"right\"><i *ngIf=\"icon\" [ngClass]=\"iconClass\"></i></span>\n {{ title || config.title }}\n </h3>\n </div>\n <!--Card Actions-->\n <div class=\"actions\" [attr.data-automation-id]=\"cardAutomationId + '-actions'\">\n <ng-content select=\"novo-card-actions\"></ng-content>\n <novo-button\n theme=\"icon\"\n icon=\"refresh\"\n (click)=\"toggleRefresh()\"\n *ngIf=\"refresh || config.refresh\"\n [attr.data-automation-id]=\"cardAutomationId + '-refresh'\"\n tooltip=\"{{ labels.refresh }}\"\n tooltipPosition=\"bottom-left\"\n ></novo-button>\n\n <novo-button\n theme=\"icon\"\n icon=\"close-o\"\n (click)=\"toggleClose()\"\n *ngIf=\"close || config.close\"\n [attr.data-automation-id]=\"cardAutomationId + '-close'\"\n tooltip=\"{{ labels.close }}\"\n tooltipPosition=\"bottom-left\"\n ></novo-button>\n </div>\n </header>\n <!--Content (transcluded)-->\n <ng-content *ngIf=\"!(loading || config.loading) && !(message || config.message)\"></ng-content>\n <!--Error/Empty Message-->\n <p\n class=\"card-message\"\n *ngIf=\"!(loading || config.loading) && (message || config.message)\"\n [attr.data-automation-id]=\"cardAutomationId + '-message'\"\n >\n <i *ngIf=\"messageIconClass\" [ngClass]=\"messageIconClass\"></i> <span [innerHtml]=\"message || config.message\"></span>\n </p>\n <!--Card Footer-->\n <ng-content\n *ngIf=\"!(loading || config.loading) && !(message || config.message)\"\n select=\"footer,novo-card-footer,[novo-card-footer],[novoCardFooter]\"\n ></ng-content>\n `,\n styleUrls: ['./Card.scss'],\n standalone: false,\n})\nexport class CardElement implements OnChanges, OnInit {\n @Input()\n padding: boolean = true;\n @Input()\n config: any = {};\n @Input()\n title: string;\n @Input()\n message: string;\n @Input()\n messageIcon: string;\n @Input()\n icon: string;\n @Input()\n iconTooltip: string;\n @Input()\n refresh: boolean;\n @Input()\n close: boolean;\n @Input()\n move: boolean;\n @Input()\n loading: boolean;\n\n @Input()\n @BooleanInput()\n @HostBinding('class.novo-card-inline')\n inline: boolean;\n\n @Input()\n inset: string = 'none';\n @HostBinding('class')\n get hbInset() {\n return `novo-card-inset-${this.inset}`;\n }\n\n @Output()\n onClose: EventEmitter<void> = new EventEmitter();\n @Output()\n onRefresh: EventEmitter<void> = new EventEmitter();\n\n cardAutomationId: string;\n labels: NovoLabelService;\n iconClass: string | null;\n messageIconClass: string;\n\n constructor(labels: NovoLabelService) {\n this.labels = labels;\n }\n\n ngOnInit() {\n this.config = this.config || {};\n }\n\n ngOnChanges(changes?: SimpleChanges) {\n this.config = this.config || {};\n this.cardAutomationId = `${(this.title || this.config.title || 'no-title').trim().toLowerCase().replace(/\\s/g, '-')}-card`;\n\n const newIcon: string = this.icon || this.config.icon;\n const newMessageIcon: string = this.messageIcon || this.config.messageIcon;\n this.iconClass = newIcon ? `bhi-${newIcon}` : null;\n this.messageIconClass = newMessageIcon ? `bhi-${newMessageIcon}` : null;\n }\n\n toggleClose() {\n if (!this.config.onClose) {\n this.onClose.next();\n } else {\n this.config.onClose();\n }\n }\n\n toggleRefresh() {\n if (!this.config.onRefresh) {\n this.onRefresh.next();\n } else {\n this.config.onRefresh();\n }\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { NovoLoadingModule } from 'novo-elements/elements/loading';\nimport { NovoTooltipModule } from 'novo-elements/elements/tooltip';\nimport { CardActionsElement, CardContentElement, CardElement, CardFooterElement, CardHeaderElement } from './Card';\n\n@NgModule({\n imports: [CommonModule, NovoIconModule, NovoButtonModule, NovoLoadingModule, NovoTooltipModule],\n declarations: [CardElement, CardActionsElement, CardContentElement, CardHeaderElement, CardFooterElement],\n exports: [CardElement, CardActionsElement, CardContentElement, CardHeaderElement, CardFooterElement],\n})\nexport class NovoCardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-category-dropdown.mjs","sources":["../../../projects/novo-elements/src/elements/category-dropdown/CategoryDropdown.ts","../../../projects/novo-elements/src/elements/category-dropdown/CategoryDropdown.module.ts","../../../projects/novo-elements/src/elements/category-dropdown/novo-elements-elements-category-dropdown.ts"],"sourcesContent":["// NG2\nimport { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { Helpers, Key, OutsideClick } from 'novo-elements/utils';\n\n@Component({\n selector: 'novo-category-dropdown',\n template: `\n <ng-content select=\"button\"></ng-content>\n <div class=\"dropdown-container\" *ngIf=\"active\">\n <div class=\"novo-category-dropdown-search\" *ngIf=\"search\" data-automation-id=\"novo-category-dropdown-search\">\n <input\n type=\"text\"\n [placeholder]=\"search.placeholder || labels.search\"\n [value]=\"_query\"\n (input)=\"queryCategories($event.target.value)\"\n />\n <i class=\"bhi-search\" *ngIf=\"!_query\"></i>\n <i class=\"bhi-times\" *ngIf=\"_query\" (click)=\"clearQuery($event)\"></i>\n </div>\n <novo-nav theme=\"white\" [outlet]=\"novoCategoryDropdownOutlet\" direction=\"vertical\">\n <novo-tab *ngFor=\"let category of _categories\" [attr.data-automation-id]=\"category\" (activeChange)=\"onCategorySelected(category)\">\n <span>{{ category }} ({{ _categoryMap[category].length }})</span>\n </novo-tab>\n </novo-nav>\n <novo-nav-outlet #novoCategoryDropdownOutlet>\n <novo-nav-content *ngFor=\"let category of _categories\">\n <novo-list direction=\"vertical\">\n <novo-list-item\n *ngFor=\"let item of _categoryMap[category]\"\n (click)=\"select($event, item)\"\n [attr.data-automation-id]=\"item.label\"\n >\n <item-content>{{ item.label }}</item-content>\n <item-end class=\"novo-category-dropdown-hover\" *ngIf=\"item.hoverText && !item.selected\">{{ item.hoverText }}</item-end>\n <item-end class=\"novo-category-dropdown-hover\" *ngIf=\"item.hoverIcon && !item.selected\"\n ><i class=\"bhi-{{ item.hoverIcon }}\"></i\n ></item-end>\n <item-end *ngIf=\"item.selected\"><i class=\"bhi-check\"></i></item-end>\n </novo-list-item>\n <novo-list-item *ngIf=\"_categoryMap[category].length === 0 && search\" class=\"novo-category-dropdown-empty-item\">\n <item-content>{{ search.emptyMessage || labels.noItems }}</item-content>\n </novo-list-item>\n </novo-list>\n </novo-nav-content>\n </novo-nav-outlet>\n <footer *ngIf=\"footer\" class=\"novo-category-dropdown-footer-align-{{ footer.align || 'right' }}\">\n <a *ngFor=\"let link of footer.links\" (click)=\"executeClickCallback($event, link)\">{{ link.label }}</a>\n </footer>\n </div>\n `,\n styleUrls: ['./CategoryDropdown.scss'],\n host: {\n '(keydown)': 'onKeyDown($event)',\n '[class.active]': 'active',\n },\n standalone: false\n})\nexport class NovoCategoryDropdownElement extends OutsideClick implements OnInit, OnDestroy {\n _query: string = '';\n _categoryMap: any = {};\n _categories: string[] = [];\n clickHandler: Function;\n _masterCategoryMap: any;\n _queryTimeout: any;\n // Boolean to keep the selection persist when closing the dropdown\n @Input()\n persistSelection: boolean = false;\n // Boolean to close the dropdown on selection\n @Input()\n closeOnSelect: boolean = false;\n // Search Config\n // {\n // placeholder: 'STRING' // defaults to \"SEARCH\" - placeholder for search input\n // emptyMessage: 'STRING' // defaults to \"There are no items.\" - empty message when there are no items in the category\n // debounce: 'NUMBER (in MS)' // defaults to 300ms - debounce time for the search\n // compare: 'FUNCTION' // default to simple indexOf - compare function for category search, should accept (query, item) and return true/false\n // }\n @Input()\n search: any;\n // Footer config\n // {\n // align: 'STRING' // defaults to \"right\" - alignment of the links\n // links: 'ARRAY' // array of links to go into the footer, be away of spacing - { label, callback } for the object inside\n // }\n @Input()\n footer: any;\n // Event that is emitted whenever an item is selected\n @Output('itemSelected')\n _select: EventEmitter<any> = new EventEmitter();\n // Event that is emitted whenever a category is selected\n @Output()\n categorySelected: EventEmitter<any> = new EventEmitter<any>();\n\n @Input()\n set categories(categories: any) {\n this._masterCategoryMap = Object.assign({}, categories);\n this._categoryMap = Object.assign({}, categories);\n this._categories = Object.keys(categories);\n }\n\n constructor(element: ElementRef, public labels: NovoLabelService) {\n super(element);\n this.clickHandler = this.toggleActive.bind(this);\n }\n\n ngOnInit() {\n const button = this.element.nativeElement.querySelector('button');\n button.addEventListener('click', this.clickHandler);\n }\n\n ngOnDestroy() {\n const button = this.element.nativeElement.querySelector('button');\n if (button) {\n button.removeEventListener('click', this.clickHandler);\n }\n }\n\n onKeyDown(event) {\n if (this.active && (event.key === Key.Escape || event.key === Key.Enter)) {\n this.toggleActive();\n }\n }\n\n clearSelection() {\n this._categories.forEach((category) => {\n this._categoryMap[category].forEach((item) => {\n item.selected = false;\n });\n });\n }\n\n select(event, item) {\n Helpers.swallowEvent(event);\n // If we persist the selection, clear and show a check\n if (this.persistSelection) {\n this.clearSelection();\n item.selected = true;\n }\n // Emit the item\n this._select.emit(item);\n // Close, if input is set\n if (this.closeOnSelect) {\n this.toggleActive();\n }\n }\n\n onCategorySelected(category) {\n this.categorySelected.emit(category);\n }\n\n clearQuery(event) {\n Helpers.swallowEvent(event);\n this._query = '';\n // Reset the categories\n this._categories.forEach((category) => {\n this._categoryMap[category] = this._masterCategoryMap[category];\n });\n }\n\n queryCategories(query) {\n // Save the query\n this._query = query;\n // Check timeout\n if (this._queryTimeout) {\n clearTimeout(this._queryTimeout);\n }\n // Store a timeout, to debounce user input\n this._queryTimeout = setTimeout(() => {\n this._categories.forEach((category) => {\n if (this.search.compare) {\n this._categoryMap[category] = this._masterCategoryMap[category].filter((item) => this.search.compare(query, item));\n } else {\n this._categoryMap[category] = this._masterCategoryMap[category].filter(\n (item) => ~item.label.toLowerCase().indexOf(query.toLowerCase()),\n );\n }\n });\n }, this.search.debounce || 300);\n }\n\n executeClickCallback(event, link) {\n link.callback(event);\n // Close, if input is set\n if (this.closeOnSelect) {\n this.toggleActive();\n }\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NovoListModule } from 'novo-elements/elements/list';\nimport { NovoTabModule } from 'novo-elements/elements/tabs';\n// APP\nimport { NovoCategoryDropdownElement } from './CategoryDropdown';\n\n@NgModule({\n imports: [CommonModule, NovoTabModule, NovoListModule],\n declarations: [NovoCategoryDropdownElement],\n exports: [NovoCategoryDropdownElement],\n})\nexport class NovoCategoryDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAAA;AA0DM,MAAO,2BAA4B,SAAQ,YAAY,CAAA;IAoC3D,IACI,UAAU,CAAC,UAAe,EAAA;QAC5B,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC;QACjD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;;IAG5C,WAAY,CAAA,OAAmB,EAAS,MAAwB,EAAA;QAC9D,KAAK,CAAC,OAAO,CAAC;QADwB,IAAM,CAAA,MAAA,GAAN,MAAM;QA1C9C,IAAM,CAAA,MAAA,GAAW,EAAE;QACnB,IAAY,CAAA,YAAA,GAAQ,EAAE;QACtB,IAAW,CAAA,WAAA,GAAa,EAAE;;QAM1B,IAAgB,CAAA,gBAAA,GAAY,KAAK;;QAGjC,IAAa,CAAA,aAAA,GAAY,KAAK;;AAmB9B,QAAA,IAAA,CAAA,OAAO,GAAsB,IAAI,YAAY,EAAE;;AAG/C,QAAA,IAAA,CAAA,gBAAgB,GAAsB,IAAI,YAAY,EAAO;QAW3D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGlD,QAAQ,GAAA;AACN,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC;QACjE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;;IAGrD,WAAW,GAAA;AACT,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC;QACjE,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;;;AAI1D,IAAA,SAAS,CAAC,KAAK,EAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,GAAG,KAAe,QAAA,qBAAI,KAAK,CAAC,GAAG,KAAc,OAAA,iBAAC,EAAE;YACxE,IAAI,CAAC,YAAY,EAAE;;;IAIvB,cAAc,GAAA;QACZ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;YACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC3C,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACvB,aAAC,CAAC;AACJ,SAAC,CAAC;;IAGJ,MAAM,CAAC,KAAK,EAAE,IAAI,EAAA;AAChB,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;;AAE3B,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;;AAGtB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEvB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,YAAY,EAAE;;;AAIvB,IAAA,kBAAkB,CAAC,QAAQ,EAAA;AACzB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAGtC,IAAA,UAAU,CAAC,KAAK,EAAA;AACd,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;;QAEhB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACpC,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AACjE,SAAC,CAAC;;AAGJ,IAAA,eAAe,CAAC,KAAK,EAAA;;AAEnB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;;AAEnB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;;;AAGlC,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;YACnC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACpC,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACvB,oBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;;qBAC7G;AACL,oBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,MAAM,CACpE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CACjE;;AAEL,aAAC,CAAC;SACH,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;;IAGjC,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAA;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAEpB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,YAAY,EAAE;;;+GA/HZ,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAnD1B,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CX,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6yGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAQU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBArDvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EACxB,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CX,EAEO,IAAA,EAAA;AACF,wBAAA,WAAW,EAAE,mBAAmB;AAChC,wBAAA,gBAAgB,EAAE,QAAQ;AAC7B,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,MAAA,EAAA,CAAA,6yGAAA,CAAA,EAAA;8GAWnB,gBAAgB,EAAA,CAAA;sBADf;gBAID,aAAa,EAAA,CAAA;sBADZ;gBAUD,MAAM,EAAA,CAAA;sBADL;gBAQD,MAAM,EAAA,CAAA;sBADL;gBAID,OAAO,EAAA,CAAA;sBADN,MAAM;uBAAC,cAAc;gBAItB,gBAAgB,EAAA,CAAA;sBADf;gBAIG,UAAU,EAAA,CAAA;sBADb;;;AC9FH;MAaa,0BAA0B,CAAA;+GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAA1B,0BAA0B,EAAA,YAAA,EAAA,CAHtB,2BAA2B,CADhC,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,cAAc,CAAA,EAAA,OAAA,EAAA,CAE3C,2BAA2B,CAAA,EAAA,CAAA,CAAA;AAE1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,EAJ3B,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;;4FAI1C,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,cAAc,CAAC;oBACtD,YAAY,EAAE,CAAC,2BAA2B,CAAC;oBAC3C,OAAO,EAAE,CAAC,2BAA2B,CAAC;AACvC,iBAAA;;;ACZD;;AAEG;;;;"}
1
+ {"version":3,"file":"novo-elements-elements-category-dropdown.mjs","sources":["../../../projects/novo-elements/src/elements/category-dropdown/CategoryDropdown.ts","../../../projects/novo-elements/src/elements/category-dropdown/CategoryDropdown.module.ts","../../../projects/novo-elements/src/elements/category-dropdown/novo-elements-elements-category-dropdown.ts"],"sourcesContent":["// NG2\nimport { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { Helpers, Key, OutsideClick } from 'novo-elements/utils';\n\n@Component({\n selector: 'novo-category-dropdown',\n template: `\n <ng-content select=\"button\"></ng-content>\n <div class=\"dropdown-container\" *ngIf=\"active\">\n <div class=\"novo-category-dropdown-search\" *ngIf=\"search\" data-automation-id=\"novo-category-dropdown-search\">\n <input\n type=\"text\"\n [placeholder]=\"search.placeholder || labels.search\"\n [value]=\"_query\"\n (input)=\"queryCategories($event.target.value)\"\n />\n <i class=\"bhi-search\" *ngIf=\"!_query\"></i>\n <i class=\"bhi-times\" *ngIf=\"_query\" (click)=\"clearQuery($event)\"></i>\n </div>\n <novo-nav theme=\"white\" [outlet]=\"novoCategoryDropdownOutlet\" direction=\"vertical\">\n <novo-tab *ngFor=\"let category of _categories\" [attr.data-automation-id]=\"category\" (activeChange)=\"onCategorySelected(category)\">\n <span>{{ category }} ({{ _categoryMap[category].length }})</span>\n </novo-tab>\n </novo-nav>\n <novo-nav-outlet #novoCategoryDropdownOutlet>\n <novo-nav-content *ngFor=\"let category of _categories\">\n <novo-list direction=\"vertical\">\n <novo-list-item\n *ngFor=\"let item of _categoryMap[category]\"\n (click)=\"select($event, item)\"\n [attr.data-automation-id]=\"item.label\"\n >\n <item-content>{{ item.label }}</item-content>\n <item-end class=\"novo-category-dropdown-hover\" *ngIf=\"item.hoverText && !item.selected\">{{ item.hoverText }}</item-end>\n <item-end class=\"novo-category-dropdown-hover\" *ngIf=\"item.hoverIcon && !item.selected\"\n ><i class=\"bhi-{{ item.hoverIcon }}\"></i\n ></item-end>\n <item-end *ngIf=\"item.selected\"><i class=\"bhi-check\"></i></item-end>\n </novo-list-item>\n <novo-list-item *ngIf=\"_categoryMap[category].length === 0 && search\" class=\"novo-category-dropdown-empty-item\">\n <item-content>{{ search.emptyMessage || labels.noItems }}</item-content>\n </novo-list-item>\n </novo-list>\n </novo-nav-content>\n </novo-nav-outlet>\n <footer *ngIf=\"footer\" class=\"novo-category-dropdown-footer-align-{{ footer.align || 'right' }}\">\n <a *ngFor=\"let link of footer.links\" (click)=\"executeClickCallback($event, link)\">{{ link.label }}</a>\n </footer>\n </div>\n `,\n styleUrls: ['./CategoryDropdown.scss'],\n host: {\n '(keydown)': 'onKeyDown($event)',\n '[class.active]': 'active',\n },\n standalone: false,\n})\nexport class NovoCategoryDropdownElement extends OutsideClick implements OnInit, OnDestroy {\n _query: string = '';\n _categoryMap: any = {};\n _categories: string[] = [];\n clickHandler: Function;\n _masterCategoryMap: any;\n _queryTimeout: any;\n // Boolean to keep the selection persist when closing the dropdown\n @Input()\n persistSelection: boolean = false;\n // Boolean to close the dropdown on selection\n @Input()\n closeOnSelect: boolean = false;\n // Search Config\n // {\n // placeholder: 'STRING' // defaults to \"SEARCH\" - placeholder for search input\n // emptyMessage: 'STRING' // defaults to \"There are no items.\" - empty message when there are no items in the category\n // debounce: 'NUMBER (in MS)' // defaults to 300ms - debounce time for the search\n // compare: 'FUNCTION' // default to simple indexOf - compare function for category search, should accept (query, item) and return true/false\n // }\n @Input()\n search: any;\n // Footer config\n // {\n // align: 'STRING' // defaults to \"right\" - alignment of the links\n // links: 'ARRAY' // array of links to go into the footer, be away of spacing - { label, callback } for the object inside\n // }\n @Input()\n footer: any;\n // Event that is emitted whenever an item is selected\n @Output('itemSelected')\n _select: EventEmitter<any> = new EventEmitter();\n // Event that is emitted whenever a category is selected\n @Output()\n categorySelected: EventEmitter<any> = new EventEmitter<any>();\n\n @Input()\n set categories(categories: any) {\n this._masterCategoryMap = Object.assign({}, categories);\n this._categoryMap = Object.assign({}, categories);\n this._categories = Object.keys(categories);\n }\n\n constructor(element: ElementRef, public labels: NovoLabelService) {\n super(element);\n this.clickHandler = this.toggleActive.bind(this);\n }\n\n ngOnInit() {\n const button = this.element.nativeElement.querySelector('button');\n button.addEventListener('click', this.clickHandler);\n }\n\n ngOnDestroy() {\n const button = this.element.nativeElement.querySelector('button');\n if (button) {\n button.removeEventListener('click', this.clickHandler);\n }\n }\n\n onKeyDown(event) {\n if (this.active && (event.key === Key.Escape || event.key === Key.Enter)) {\n this.toggleActive();\n }\n }\n\n clearSelection() {\n this._categories.forEach((category) => {\n this._categoryMap[category].forEach((item) => {\n item.selected = false;\n });\n });\n }\n\n select(event, item) {\n Helpers.swallowEvent(event);\n // If we persist the selection, clear and show a check\n if (this.persistSelection) {\n this.clearSelection();\n item.selected = true;\n }\n // Emit the item\n this._select.emit(item);\n // Close, if input is set\n if (this.closeOnSelect) {\n this.toggleActive();\n }\n }\n\n onCategorySelected(category) {\n this.categorySelected.emit(category);\n }\n\n clearQuery(event) {\n Helpers.swallowEvent(event);\n this._query = '';\n // Reset the categories\n this._categories.forEach((category) => {\n this._categoryMap[category] = this._masterCategoryMap[category];\n });\n }\n\n queryCategories(query) {\n // Save the query\n this._query = query;\n // Check timeout\n if (this._queryTimeout) {\n clearTimeout(this._queryTimeout);\n }\n // Store a timeout, to debounce user input\n this._queryTimeout = setTimeout(() => {\n this._categories.forEach((category) => {\n if (this.search.compare) {\n this._categoryMap[category] = this._masterCategoryMap[category].filter((item) => this.search.compare(query, item));\n } else {\n this._categoryMap[category] = this._masterCategoryMap[category].filter(\n (item) => ~item.label.toLowerCase().indexOf(query.toLowerCase()),\n );\n }\n });\n }, this.search.debounce || 300);\n }\n\n executeClickCallback(event, link) {\n link.callback(event);\n // Close, if input is set\n if (this.closeOnSelect) {\n this.toggleActive();\n }\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NovoListModule } from 'novo-elements/elements/list';\nimport { NovoTabModule } from 'novo-elements/elements/tabs';\n// APP\nimport { NovoCategoryDropdownElement } from './CategoryDropdown';\n\n@NgModule({\n imports: [CommonModule, NovoTabModule, NovoListModule],\n declarations: [NovoCategoryDropdownElement],\n exports: [NovoCategoryDropdownElement],\n})\nexport class NovoCategoryDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-checkbox.mjs","sources":["../../../projects/novo-elements/src/elements/checkbox/Checkbox.ts","../../../projects/novo-elements/src/elements/checkbox/CheckList.ts","../../../projects/novo-elements/src/elements/checkbox/Checkbox.module.ts","../../../projects/novo-elements/src/elements/checkbox/novo-elements-elements-checkbox.ts"],"sourcesContent":["// NG2\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Attribute,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanInput, Helpers } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst CHECKBOX_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoCheckboxElement),\n multi: true,\n};\n\n/** Change event object emitted by NovoCheckbox. */\nexport class NovoCheckboxChange {\n /** The source NovoCheckbox of the event. */\n source: NovoCheckboxElement;\n /** The new `checked` value of the checkbox. */\n checked: boolean;\n}\n\nconst LAYOUT_DEFAULTS = { iconStyle: 'box' };\nlet nextId = 0;\n@Component({\n selector: 'novo-checkbox',\n providers: [CHECKBOX_VALUE_ACCESSOR],\n styleUrls: ['./Checkbox.scss'],\n template: `\n <div class=\"novo-checkbox-group\" [class.checked]=\"checked\" [class.disabled]=\"disabled\">\n <input\n #input\n type=\"checkbox\"\n [required]=\"_required\"\n [checked]=\"checked\"\n [id]=\"id\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n (change)=\"_onInteractionEvent($event)\"\n (click)=\"_onInputClick($event)\"\n />\n <label [attr.for]=\"name\" (click)=\"select($event)\" [class.disabled]=\"disabled\">\n <i\n [class.bhi-checkbox-empty]=\"!checked && !indeterminate && boxIcon\"\n [class.bhi-checkbox-filled]=\"checked && !indeterminate && boxIcon\"\n [class.bhi-checkbox-indeterminate]=\"indeterminate && boxIcon\"\n [class.bhi-circle-o]=\"!checked && !indeterminate && !boxIcon\"\n [class.bhi-check]=\"checked && !indeterminate && !boxIcon\"\n [class.bhi-circle]=\"indeterminate && !boxIcon\"\n ></i>\n <span *ngIf=\"label\">{{ label }}</span>\n <span *ngIf=\"!label\" class=\"novo-checkbox-text\"><ng-content></ng-content></span>\n </label>\n </div>\n `,\n host: {\n class: 'novo-checkbox',\n '[class.has-label]': 'label',\n },\n standalone: false\n})\nexport class NovoCheckboxElement implements ControlValueAccessor, OnInit {\n /**\n * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will\n * take precedence so this may be omitted.\n */\n @Input('aria-label') ariaLabel: string = '';\n\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** The 'aria-describedby' attribute is read after the element's label and field type. */\n @Input('aria-describedby') ariaDescribedby: string;\n\n private _uniqueId: string = `novo-checkbox-${++nextId}`;\n boxIcon: boolean = true;\n\n @Input() id: string = this._uniqueId;\n @Input() name: string = this._uniqueId;\n @Input() label: string;\n @Input() disabled: boolean = false;\n @Input() layoutOptions: { iconStyle?: string }; // TODO - avoid configs like this\n @Input() color: string;\n /** The value attribute of the native input element */\n @Input() value: string;\n @Input() tabIndex: number;\n\n /** Whether the checkbox is required. */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n _required: boolean;\n\n /** Whether the checkbox is checked. */\n @BooleanInput()\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n set checked(value: boolean) {\n if (value !== this.checked) {\n this._checked = value;\n this._cdr.markForCheck();\n }\n }\n _checked: boolean = false;\n\n @BooleanInput()\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n set indeterminate(value: boolean) {\n const changed = value !== this._indeterminate;\n this._indeterminate = coerceBooleanProperty(value);\n if (changed) {\n this.indeterminateChange.emit(this._indeterminate);\n }\n this._syncIndeterminate(this._indeterminate);\n }\n _indeterminate: boolean = false;\n\n /** The native `<input type=\"checkbox\">` element */\n @ViewChild('input') _inputElement: ElementRef<HTMLInputElement>;\n\n /** Event emitted when the checkbox's `checked` value changes. */\n @Output() readonly change: EventEmitter<NovoCheckboxChange> = new EventEmitter<NovoCheckboxChange>();\n\n /** Event emitted when the checkbox's `indeterminate` value changes. */\n @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n\n\n onModelChange: Function = () => {};\n onModelTouched: Function = () => {};\n\n constructor(private _cdr: ChangeDetectorRef, private _focusMonitor: FocusMonitor, @Attribute('tabindex') tabIndex: string) {\n this.tabIndex = parseInt(tabIndex, 10) || 0;\n }\n\n ngOnInit() {\n this.layoutOptions = Object.assign({}, LAYOUT_DEFAULTS, this.layoutOptions);\n this.boxIcon = this.layoutOptions.iconStyle === 'box';\n }\n\n select(event: Event) {\n Helpers.swallowEvent(event);\n if (!this.disabled) {\n this.checked = !this.checked;\n this.onModelChange(this.checked);\n this.onSelect.emit({ originalEvent: event, value: this.checked });\n }\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n _getAriaChecked(): 'true' | 'false' | 'mixed' {\n if (this.checked) {\n return 'true';\n }\n\n return this.indeterminate ? 'mixed' : 'false';\n }\n\n private _emitChangeEvent() {\n const event = new NovoCheckboxChange();\n event.source = this;\n event.checked = this.checked;\n\n this.onModelChange(this.checked);\n this.change.emit(event);\n\n // Assigning the value again here is redundant, but we have to do it in case it was\n // changed inside the `change` listener which will cause the input to be out of sync.\n if (this._inputElement) {\n this._inputElement.nativeElement.checked = this.checked;\n }\n }\n\n /** Toggles the `checked` state of the checkbox. */\n toggle(): void {\n this.checked = !this.checked;\n }\n\n /**\n * Event handler for checkbox input element.\n * Toggles checked state if element is not disabled.\n * Do not toggle on (change) event since IE doesn't fire change event when\n * indeterminate checkbox is clicked.\n * @param event\n */\n _onInputClick(event: Event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `checkbox` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n if (!this.disabled) {\n // When user manually click on the checkbox, `indeterminate` is set to false.\n if (this.indeterminate) {\n Promise.resolve().then(() => {\n this._indeterminate = false;\n this.indeterminateChange.emit(this._indeterminate);\n });\n }\n this.toggle();\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this._emitChangeEvent();\n }\n }\n\n /** Focuses the checkbox. */\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\n if (origin) {\n this._focusMonitor.focusVia(this._inputElement, origin, options);\n } else {\n this._inputElement.nativeElement.focus(options);\n }\n }\n\n _onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n\n private _syncIndeterminate(value: boolean) {\n const nativeCheckbox = this._inputElement;\n if (nativeCheckbox) {\n nativeCheckbox.nativeElement.indeterminate = value;\n }\n }\n}\n","// NG2\nimport { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// APP\nimport { Helpers } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst CHECKLIST_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoCheckListElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-check-list',\n styleUrls: ['./CheckList.scss'],\n providers: [CHECKLIST_VALUE_ACCESSOR],\n template: `\n <div\n class=\"novo-checkbox-group\"\n *ngFor=\"let option of _options; let i = index\"\n [ngClass]=\"{ checked: option.checked }\"\n [class.disabled]=\"disabled\"\n [attr.data-automation-id]=\"option.label\"\n >\n <input\n [name]=\"name\"\n type=\"checkbox\"\n [ngModel]=\"option.checked\"\n [attr.id]=\"name + i\"\n [value]=\"option.checked\"\n (change)=\"select($event, option)\"\n [disabled]=\"disabled\"\n />\n <label [attr.for]=\"name + i\" (click)=\"select($event, option)\">\n <i [ngClass]=\"{ 'bhi-checkbox-empty': !option.checked, 'bhi-checkbox-filled': option.checked }\"></i>\n <span>{{ option.label }}</span>\n </label>\n </div>\n `,\n standalone: false\n})\nexport class NovoCheckListElement implements ControlValueAccessor, OnInit {\n @Input() name: string;\n @Input() options: Array<any>;\n @Input() disabled: boolean;\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n\n _options: Array<any>;\n model: any;\n onModelChange: Function = () => {};\n onModelTouched: Function = () => {};\n\n ngOnInit() {\n this.setModel();\n this.setupOptions();\n }\n\n select(event, item) {\n Helpers.swallowEvent(event);\n if (!this.disabled) {\n item.checked = !item.checked;\n this.model = this._options.filter((checkBox) => checkBox.checked).map((x) => x.value);\n this.onModelChange(this.model.length > 0 ? this.model : '');\n this.onSelect.emit({ selected: this.model });\n }\n }\n\n setupOptions() {\n this.options = this.options || [];\n this._options = [];\n if (this.options.length && !this.options[0].value) {\n this.options.forEach((option) => {\n const formattedOption = {\n value: option,\n label: option,\n checked: this.model && this.model.length && this.model.indexOf(option.value) !== -1,\n };\n this._options.push(formattedOption);\n });\n } else {\n this.options.forEach((option) => {\n const formattedOption = option;\n formattedOption.checked = this.model && this.model.length && this.model.indexOf(option.value) !== -1;\n this._options.push(formattedOption);\n });\n }\n }\n\n setModel(): void {\n const checkedOptions = this.options.filter((checkBox) => checkBox.checked).map((x) => x.value);\n this.writeValue(checkedOptions);\n }\n\n writeValue(model: any): void {\n this.model = model || [];\n if (model) {\n this.setupOptions();\n }\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NovoCheckboxElement } from './Checkbox';\nimport { NovoCheckListElement } from './CheckList';\n\n@NgModule({\n imports: [CommonModule, A11yModule, FormsModule],\n declarations: [NovoCheckboxElement, NovoCheckListElement],\n exports: [NovoCheckboxElement, NovoCheckListElement],\n})\nexport class NovoCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1"],"mappings":"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"}
1
+ {"version":3,"file":"novo-elements-elements-checkbox.mjs","sources":["../../../projects/novo-elements/src/elements/checkbox/Checkbox.ts","../../../projects/novo-elements/src/elements/checkbox/CheckList.ts","../../../projects/novo-elements/src/elements/checkbox/Checkbox.module.ts","../../../projects/novo-elements/src/elements/checkbox/novo-elements-elements-checkbox.ts"],"sourcesContent":["// NG2\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Attribute,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanInput, Helpers } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst CHECKBOX_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoCheckboxElement),\n multi: true,\n};\n\n/** Change event object emitted by NovoCheckbox. */\nexport class NovoCheckboxChange {\n /** The source NovoCheckbox of the event. */\n source: NovoCheckboxElement;\n /** The new `checked` value of the checkbox. */\n checked: boolean;\n}\n\nconst LAYOUT_DEFAULTS = { iconStyle: 'box' };\nlet nextId = 0;\n@Component({\n selector: 'novo-checkbox',\n providers: [CHECKBOX_VALUE_ACCESSOR],\n styleUrls: ['./Checkbox.scss'],\n template: `\n <div class=\"novo-checkbox-group\" [class.checked]=\"checked\" [class.disabled]=\"disabled\">\n <input\n #input\n type=\"checkbox\"\n [required]=\"_required\"\n [checked]=\"checked\"\n [id]=\"id\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n (change)=\"_onInteractionEvent($event)\"\n (click)=\"_onInputClick($event)\"\n />\n <label [attr.for]=\"name\" (click)=\"select($event)\" [class.disabled]=\"disabled\">\n <i\n [class.bhi-checkbox-empty]=\"!checked && !indeterminate && boxIcon\"\n [class.bhi-checkbox-filled]=\"checked && !indeterminate && boxIcon\"\n [class.bhi-checkbox-indeterminate]=\"indeterminate && boxIcon\"\n [class.bhi-circle-o]=\"!checked && !indeterminate && !boxIcon\"\n [class.bhi-check]=\"checked && !indeterminate && !boxIcon\"\n [class.bhi-circle]=\"indeterminate && !boxIcon\"\n ></i>\n <span *ngIf=\"label\">{{ label }}</span>\n <span *ngIf=\"!label\" class=\"novo-checkbox-text\"><ng-content></ng-content></span>\n </label>\n </div>\n `,\n host: {\n class: 'novo-checkbox',\n '[class.has-label]': 'label',\n },\n standalone: false,\n})\nexport class NovoCheckboxElement implements ControlValueAccessor, OnInit {\n /**\n * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will\n * take precedence so this may be omitted.\n */\n @Input('aria-label') ariaLabel: string = '';\n\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** The 'aria-describedby' attribute is read after the element's label and field type. */\n @Input('aria-describedby') ariaDescribedby: string;\n\n private _uniqueId: string = `novo-checkbox-${++nextId}`;\n boxIcon: boolean = true;\n\n @Input() id: string = this._uniqueId;\n @Input() name: string = this._uniqueId;\n @Input() label: string;\n @Input() disabled: boolean = false;\n @Input() layoutOptions: { iconStyle?: string }; // TODO - avoid configs like this\n @Input() color: string;\n /** The value attribute of the native input element */\n @Input() value: string;\n @Input() tabIndex: number;\n\n /** Whether the checkbox is required. */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n _required: boolean;\n\n /** Whether the checkbox is checked. */\n @BooleanInput()\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n set checked(value: boolean) {\n if (value !== this.checked) {\n this._checked = value;\n this._cdr.markForCheck();\n }\n }\n _checked: boolean = false;\n\n @BooleanInput()\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n set indeterminate(value: boolean) {\n const changed = value !== this._indeterminate;\n this._indeterminate = coerceBooleanProperty(value);\n if (changed) {\n this.indeterminateChange.emit(this._indeterminate);\n }\n this._syncIndeterminate(this._indeterminate);\n }\n _indeterminate: boolean = false;\n\n /** The native `<input type=\"checkbox\">` element */\n @ViewChild('input') _inputElement: ElementRef<HTMLInputElement>;\n\n /** Event emitted when the checkbox's `checked` value changes. */\n @Output() readonly change: EventEmitter<NovoCheckboxChange> = new EventEmitter<NovoCheckboxChange>();\n\n /** Event emitted when the checkbox's `indeterminate` value changes. */\n @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n\n\n onModelChange: Function = () => {};\n onModelTouched: Function = () => {};\n\n constructor(private _cdr: ChangeDetectorRef, private _focusMonitor: FocusMonitor, @Attribute('tabindex') tabIndex: string) {\n this.tabIndex = parseInt(tabIndex, 10) || 0;\n }\n\n ngOnInit() {\n this.layoutOptions = Object.assign({}, LAYOUT_DEFAULTS, this.layoutOptions);\n this.boxIcon = this.layoutOptions.iconStyle === 'box';\n }\n\n select(event: Event) {\n Helpers.swallowEvent(event);\n if (!this.disabled) {\n this.checked = !this.checked;\n this.onModelChange(this.checked);\n this.onSelect.emit({ originalEvent: event, value: this.checked });\n }\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n _getAriaChecked(): 'true' | 'false' | 'mixed' {\n if (this.checked) {\n return 'true';\n }\n\n return this.indeterminate ? 'mixed' : 'false';\n }\n\n private _emitChangeEvent() {\n const event = new NovoCheckboxChange();\n event.source = this;\n event.checked = this.checked;\n\n this.onModelChange(this.checked);\n this.change.emit(event);\n\n // Assigning the value again here is redundant, but we have to do it in case it was\n // changed inside the `change` listener which will cause the input to be out of sync.\n if (this._inputElement) {\n this._inputElement.nativeElement.checked = this.checked;\n }\n }\n\n /** Toggles the `checked` state of the checkbox. */\n toggle(): void {\n this.checked = !this.checked;\n }\n\n /**\n * Event handler for checkbox input element.\n * Toggles checked state if element is not disabled.\n * Do not toggle on (change) event since IE doesn't fire change event when\n * indeterminate checkbox is clicked.\n * @param event\n */\n _onInputClick(event: Event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `checkbox` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n if (!this.disabled) {\n // When user manually click on the checkbox, `indeterminate` is set to false.\n if (this.indeterminate) {\n Promise.resolve().then(() => {\n this._indeterminate = false;\n this.indeterminateChange.emit(this._indeterminate);\n });\n }\n this.toggle();\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this._emitChangeEvent();\n }\n }\n\n /** Focuses the checkbox. */\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\n if (origin) {\n this._focusMonitor.focusVia(this._inputElement, origin, options);\n } else {\n this._inputElement.nativeElement.focus(options);\n }\n }\n\n _onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n\n private _syncIndeterminate(value: boolean) {\n const nativeCheckbox = this._inputElement;\n if (nativeCheckbox) {\n nativeCheckbox.nativeElement.indeterminate = value;\n }\n }\n}\n","// NG2\nimport { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// APP\nimport { Helpers } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst CHECKLIST_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoCheckListElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-check-list',\n styleUrls: ['./CheckList.scss'],\n providers: [CHECKLIST_VALUE_ACCESSOR],\n template: `\n <div\n class=\"novo-checkbox-group\"\n *ngFor=\"let option of _options; let i = index\"\n [ngClass]=\"{ checked: option.checked }\"\n [class.disabled]=\"disabled\"\n [attr.data-automation-id]=\"option.label\"\n >\n <input\n [name]=\"name\"\n type=\"checkbox\"\n [ngModel]=\"option.checked\"\n [attr.id]=\"name + i\"\n [value]=\"option.checked\"\n (change)=\"select($event, option)\"\n [disabled]=\"disabled\"\n />\n <label [attr.for]=\"name + i\" (click)=\"select($event, option)\">\n <i [ngClass]=\"{ 'bhi-checkbox-empty': !option.checked, 'bhi-checkbox-filled': option.checked }\"></i>\n <span>{{ option.label }}</span>\n </label>\n </div>\n `,\n standalone: false,\n})\nexport class NovoCheckListElement implements ControlValueAccessor, OnInit {\n @Input() name: string;\n @Input() options: Array<any>;\n @Input() disabled: boolean;\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n\n _options: Array<any>;\n model: any;\n onModelChange: Function = () => {};\n onModelTouched: Function = () => {};\n\n ngOnInit() {\n this.setModel();\n this.setupOptions();\n }\n\n select(event, item) {\n Helpers.swallowEvent(event);\n if (!this.disabled) {\n item.checked = !item.checked;\n this.model = this._options.filter((checkBox) => checkBox.checked).map((x) => x.value);\n this.onModelChange(this.model.length > 0 ? this.model : '');\n this.onSelect.emit({ selected: this.model });\n }\n }\n\n setupOptions() {\n this.options = this.options || [];\n this._options = [];\n if (this.options.length && !this.options[0].value) {\n this.options.forEach((option) => {\n const formattedOption = {\n value: option,\n label: option,\n checked: this.model && this.model.length && this.model.indexOf(option.value) !== -1,\n };\n this._options.push(formattedOption);\n });\n } else {\n this.options.forEach((option) => {\n const formattedOption = option;\n formattedOption.checked = this.model && this.model.length && this.model.indexOf(option.value) !== -1;\n this._options.push(formattedOption);\n });\n }\n }\n\n setModel(): void {\n const checkedOptions = this.options.filter((checkBox) => checkBox.checked).map((x) => x.value);\n this.writeValue(checkedOptions);\n }\n\n writeValue(model: any): void {\n this.model = model || [];\n if (model) {\n this.setupOptions();\n }\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NovoCheckboxElement } from './Checkbox';\nimport { NovoCheckListElement } from './CheckList';\n\n@NgModule({\n imports: [CommonModule, A11yModule, FormsModule],\n declarations: [NovoCheckboxElement, NovoCheckListElement],\n exports: [NovoCheckboxElement, NovoCheckListElement],\n})\nexport class NovoCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1"],"mappings":"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"}