novo-elements 11.3.0 → 11.3.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.
- package/elements/calendar/calendar.component.d.ts +1 -1
- package/elements/calendar/month-select/month-select.component.d.ts +1 -1
- package/elements/calendar/month-view/month-view.component.d.ts +1 -1
- package/elements/calendar/strategies/default-selection.strategy.d.ts +1 -1
- package/elements/calendar/strategies/range-selection.strategy.d.ts +1 -1
- package/elements/calendar/strategies/week-selection.strategy.d.ts +1 -1
- package/elements/calendar/year-select/year-select.component.d.ts +1 -1
- package/elements/query-builder/condition-definitions/picker-condition.definition.d.ts +2 -0
- package/elements/select/Select.d.ts +1 -2
- package/fesm2022/novo-elements-elements-calendar.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-query-builder.mjs +18 -4
- package/fesm2022/novo-elements-elements-query-builder.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-select.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectorRef, ElementRef, EventEmitter, OnInit } from '@angular/core';
|
|
2
2
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
3
|
import { NovoLabelService } from 'novo-elements/services';
|
|
4
|
-
import type
|
|
4
|
+
import { type DatePickerSelectModes, type NovoDateSelectEvent, type NovoDateSelectionStrategy, type NovoMonthSelectEvent, type NovoYearSelectEvent, type OverlayDate } from 'novo-elements/utils';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class NovoCalendarElement implements OnInit {
|
|
7
7
|
labels: NovoLabelService;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
2
|
import { NovoLabelService } from 'novo-elements/services';
|
|
3
|
-
import type
|
|
3
|
+
import { type DateLike } from 'novo-elements/utils';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class NovoMonthSelectElement implements OnInit {
|
|
6
6
|
labels: NovoLabelService;
|
|
@@ -2,7 +2,7 @@ import { ChangeDetectorRef, ElementRef, EventEmitter, OnInit } from '@angular/co
|
|
|
2
2
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
3
|
import { Day as DateFnsDay } from 'date-fns';
|
|
4
4
|
import { NovoLabelService } from 'novo-elements/services';
|
|
5
|
-
import type
|
|
5
|
+
import { type DateLike, type Day, type OverlayDate } from 'novo-elements/utils';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class NovoMonthViewElement implements OnInit {
|
|
8
8
|
labels: NovoLabelService;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FactoryProvider, InjectionToken } from '@angular/core';
|
|
2
|
-
import type
|
|
2
|
+
import { type DateLike, type NovoDateSelectionStrategy } from 'novo-elements/utils';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/** Injection token used to customize the date range selection behavior. */
|
|
5
5
|
export declare const NOVO_DATE_SELECTION_STRATEGY: InjectionToken<NovoDateSelectionStrategy<DateLike>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type DateLike, type NovoDateSelectionStrategy } from 'novo-elements/utils';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class RangeSelectionStrategy implements NovoDateSelectionStrategy<DateLike[]> {
|
|
4
4
|
selectionFinished(date: DateLike, currentRange: DateLike[]): DateLike[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type DateLike, type NovoDateSelectionStrategy } from 'novo-elements/utils';
|
|
2
2
|
export declare class WeekSelectionStrategy implements NovoDateSelectionStrategy<DateLike[]> {
|
|
3
3
|
private weekStartsOn;
|
|
4
4
|
constructor(weekStartsOn?: Day);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
2
|
import { NovoLabelService } from 'novo-elements/services';
|
|
3
|
-
import type
|
|
3
|
+
import { type DateLike } from 'novo-elements/utils';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class NovoYearSelectElement implements OnInit {
|
|
6
6
|
labels: NovoLabelService;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { UntypedFormGroup } from '@angular/forms';
|
|
1
2
|
import { NovoLabelService } from 'novo-elements/services';
|
|
2
3
|
import { BaseFieldDef, Operator } from '../query-builder.types';
|
|
3
4
|
import { AbstractConditionFieldDef } from './abstract-condition.definition';
|
|
@@ -10,6 +11,7 @@ type FieldOption = BaseFieldDef['options'][number];
|
|
|
10
11
|
export declare class NovoDefaultPickerConditionDef extends AbstractConditionFieldDef {
|
|
11
12
|
defaultOperator: Operator;
|
|
12
13
|
constructor(labelService: NovoLabelService);
|
|
14
|
+
onOperatorSelect(formGroup: UntypedFormGroup): void;
|
|
13
15
|
showAddOption(meta: any, select: any, filterValue: string): boolean;
|
|
14
16
|
optionTracker(option: FieldOption): string;
|
|
15
17
|
hideOption(option: FieldOption, filterValue: string): boolean;
|
|
@@ -4,8 +4,7 @@ import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, Injector, N
|
|
|
4
4
|
import { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';
|
|
5
5
|
import { Observable, Subject } from 'rxjs';
|
|
6
6
|
import { NovoLabelService } from 'novo-elements/services';
|
|
7
|
-
import { CanDisableCtor, CanRequireCtor, CanUpdateErrorStateCtor, ErrorStateMatcher, HasOverlayCtor, HasTabIndexCtor, NovoOptgroup, NovoOption } from 'novo-elements/elements/common';
|
|
8
|
-
import { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';
|
|
7
|
+
import { CanDisableCtor, CanRequireCtor, CanUpdateErrorStateCtor, ErrorStateMatcher, HasOverlayCtor, HasTabIndexCtor, NovoOptgroup, NovoOption, NovoOverlayTemplateComponent } from 'novo-elements/elements/common';
|
|
9
8
|
import { NovoFieldControl, NovoFieldElement } from 'novo-elements/elements/field';
|
|
10
9
|
import * as i0 from "@angular/core";
|
|
11
10
|
/** Change event object that is emitted when the select value has changed. */
|
|
@@ -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 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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"}
|
|
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 { DateUtil, type DateLike, type NovoDateSelectionStrategy } 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 { DateUtil, type DateLike, type NovoDateSelectionStrategy } 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 { DateUtil, type DateLike, type NovoDateSelectionStrategy } 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, type DateLike, type Day, type 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 { DateUtil, type DateLike } 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 { DateUtil, type DateLike } 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 {\n Helpers,\n type DatePickerSelectModes,\n type NovoDateSelectEvent,\n type NovoDateSelectionStrategy,\n type NovoMonthSelectEvent,\n type NovoYearSelectEvent,\n type 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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"}
|
|
@@ -1278,6 +1278,17 @@ class NovoDefaultPickerConditionDef extends AbstractConditionFieldDef {
|
|
|
1278
1278
|
this.defaultOperator = Operator.includeAny;
|
|
1279
1279
|
this.defineOperatorEditGroup(Operator.includeAny, Operator.includeAll, Operator.excludeAny);
|
|
1280
1280
|
}
|
|
1281
|
+
onOperatorSelect(formGroup) {
|
|
1282
|
+
super.onOperatorSelect(formGroup);
|
|
1283
|
+
// For multi-select operators, ensure value is an array, not null/boolean
|
|
1284
|
+
const newOperator = formGroup.get('operator').value;
|
|
1285
|
+
if ([Operator.includeAny, Operator.includeAll, Operator.excludeAny].includes(newOperator)) {
|
|
1286
|
+
const currentValue = formGroup.get('value').value;
|
|
1287
|
+
if (!Array.isArray(currentValue)) {
|
|
1288
|
+
formGroup.get('value').setValue([]);
|
|
1289
|
+
}
|
|
1290
|
+
}
|
|
1291
|
+
}
|
|
1281
1292
|
showAddOption(meta, select, filterValue) {
|
|
1282
1293
|
if (!(meta?.allowCustomFilterValues)) {
|
|
1283
1294
|
return false;
|
|
@@ -1286,7 +1297,7 @@ class NovoDefaultPickerConditionDef extends AbstractConditionFieldDef {
|
|
|
1286
1297
|
if (!filterValue) {
|
|
1287
1298
|
return false;
|
|
1288
1299
|
}
|
|
1289
|
-
if (select.value && select.value.find(selectValue => selectValue.trim().toLowerCase() === filterValue)) {
|
|
1300
|
+
if (select?.value && Array.isArray(select.value) && select.value.find(selectValue => selectValue.trim().toLowerCase() === filterValue)) {
|
|
1290
1301
|
return false;
|
|
1291
1302
|
}
|
|
1292
1303
|
return meta?.options && meta.options.find(opt => {
|
|
@@ -1302,7 +1313,10 @@ class NovoDefaultPickerConditionDef extends AbstractConditionFieldDef {
|
|
|
1302
1313
|
!option.label.toLowerCase().includes(filterValue.toLowerCase()));
|
|
1303
1314
|
}
|
|
1304
1315
|
customOptions(options, select) {
|
|
1305
|
-
|
|
1316
|
+
if (!Array.isArray(select.value)) {
|
|
1317
|
+
return [];
|
|
1318
|
+
}
|
|
1319
|
+
return select.value.filter((selectedOption) => {
|
|
1306
1320
|
return (!options || !(options.find(option => option.value === selectedOption)));
|
|
1307
1321
|
}).map(value => ({
|
|
1308
1322
|
value,
|
|
@@ -1332,7 +1346,7 @@ class NovoDefaultPickerConditionDef extends AbstractConditionFieldDef {
|
|
|
1332
1346
|
<novo-option [disabled]="!meta?.allowCustomFilterValues" [hidden]="!meta?.allowCustomFilterValues">
|
|
1333
1347
|
<novo-select-search #filterInput allowDeselectDuringFilter></novo-select-search>
|
|
1334
1348
|
</novo-option>
|
|
1335
|
-
<!--
|
|
1349
|
+
<!-- What about optionUrl/optionType -->
|
|
1336
1350
|
@for (option of meta?.options; track optionTracker) {
|
|
1337
1351
|
<novo-option [hidden]="hideOption(option, filterInput?.value)" [value]="option.value" [attr.data-automation-value]="option.label">
|
|
1338
1352
|
{{ option.label}}
|
|
@@ -1379,7 +1393,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1379
1393
|
<novo-option [disabled]="!meta?.allowCustomFilterValues" [hidden]="!meta?.allowCustomFilterValues">
|
|
1380
1394
|
<novo-select-search #filterInput allowDeselectDuringFilter></novo-select-search>
|
|
1381
1395
|
</novo-option>
|
|
1382
|
-
<!--
|
|
1396
|
+
<!-- What about optionUrl/optionType -->
|
|
1383
1397
|
@for (option of meta?.options; track optionTracker) {
|
|
1384
1398
|
<novo-option [hidden]="hideOption(option, filterInput?.value)" [value]="option.value" [attr.data-automation-value]="option.label">
|
|
1385
1399
|
{{ option.label}}
|