@acorex/components 21.0.2-next.39 → 21.0.2-next.40

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/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "21.0.2-next.39",
3
+ "version": "21.0.2-next.40",
4
4
  "peerDependencies": {
5
- "@acorex/core": "21.0.2-next.39",
6
- "@acorex/cdk": "21.0.2-next.39",
5
+ "@acorex/core": "21.0.2-next.40",
6
+ "@acorex/cdk": "21.0.2-next.40",
7
7
  "polytype": ">=0.17.0",
8
8
  "angular-imask": ">=7.6.1",
9
9
  "gridstack": ">=12.0.0",
@@ -14,6 +14,26 @@ type AXCalendarViewDepth = AXCalendarViewType;
14
14
  * - `select`: month/year dropdowns with prev/next arrows on the edges.
15
15
  */
16
16
  type AXCalendarNavigationLookType = 'classic' | 'select';
17
+ /**
18
+ * Controls how many years appear in the year selector.
19
+ * - A number applies the same range to past and future years.
20
+ * - An object sets past and future ranges separately.
21
+ * `minValue` and `maxValue` take priority when set.
22
+ */
23
+ type AXCalendarYearRange = number | {
24
+ past: number;
25
+ future: number;
26
+ };
27
+ declare function getCalendarYearBounds(options: {
28
+ referenceYear: number;
29
+ yearRange: AXCalendarYearRange;
30
+ minValue?: Date;
31
+ maxValue?: Date;
32
+ getYear: (date: Date) => number;
33
+ }): {
34
+ minYear: number;
35
+ maxYear: number;
36
+ };
17
37
  type AXCalendarDisabledDates = Date[] | ((date: Date) => boolean);
18
38
  type AXCalendarHolidayDates = Date[] | ((date: Date) => boolean);
19
39
  type AXCalendarCellCssClass = string | {
@@ -208,6 +228,12 @@ declare class AXCalendarComponent extends AXCalendarComponent_base implements Af
208
228
  * - `select`: month/year dropdowns with prev/next arrows on the edges.
209
229
  */
210
230
  look: _angular_core.InputSignal<AXCalendarNavigationLookType>;
231
+ /**
232
+ * Years shown in the year selector when `look` is `select`.
233
+ * Use a number for equal past/future ranges, or `{ past, future }` for asymmetric ranges.
234
+ * `minValue` and `maxValue` take priority when set.
235
+ */
236
+ yearRange: _angular_core.InputSignal<AXCalendarYearRange>;
211
237
  protected readonly isRtl: _angular_core.Signal<boolean>;
212
238
  protected calendar: _angular_core.WritableSignal<string>;
213
239
  /** Week column order from the active locale profile (0 = Sun … 6 = Sat). */
@@ -433,7 +459,7 @@ declare class AXCalendarComponent extends AXCalendarComponent_base implements Af
433
459
  */
434
460
  protected getMonthName(date: AXDateTime, style: 'short' | 'long'): string;
435
461
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXCalendarComponent, never>;
436
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXCalendarComponent, "ax-calendar", never, { "rtl": { "alias": "rtl"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "holidayDates": { "alias": "holidayDates"; "required": false; }; "type": { "alias": "type"; "required": false; }; "dayCellTemplate": { "alias": "dayCellTemplate"; "required": false; }; "monthCellTemplate": { "alias": "monthCellTemplate"; "required": false; }; "yearCellTemplate": { "alias": "yearCellTemplate"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "showNavigation": { "alias": "showNavigation"; "required": false; }; "count": { "alias": "count"; "required": false; }; "id": { "alias": "id"; "required": false; }; "weekend": { "alias": "weekend"; "required": false; "isSignal": true; }; "weekdays": { "alias": "weekdays"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; }, { "onOptionChanged": "onOptionChanged"; "valueChange": "valueChange"; "onValueChanged": "onValueChanged"; "minValueChange": "minValueChange"; "maxValueChange": "maxValueChange"; "onBlur": "onBlur"; "onFocus": "onFocus"; "depthChange": "depthChange"; "typeChange": "typeChange"; "activeViewChange": "activeViewChange"; "disabledDatesChange": "disabledDatesChange"; "holidayDatesChange": "holidayDatesChange"; "onNavigate": "onNavigate"; "onSlotClick": "onSlotClick"; "countChange": "countChange"; }, never, ["ax-header", "ax-footer"], true, never>;
462
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXCalendarComponent, "ax-calendar", never, { "rtl": { "alias": "rtl"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "holidayDates": { "alias": "holidayDates"; "required": false; }; "type": { "alias": "type"; "required": false; }; "dayCellTemplate": { "alias": "dayCellTemplate"; "required": false; }; "monthCellTemplate": { "alias": "monthCellTemplate"; "required": false; }; "yearCellTemplate": { "alias": "yearCellTemplate"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "showNavigation": { "alias": "showNavigation"; "required": false; }; "count": { "alias": "count"; "required": false; }; "id": { "alias": "id"; "required": false; }; "weekend": { "alias": "weekend"; "required": false; "isSignal": true; }; "weekdays": { "alias": "weekdays"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "yearRange": { "alias": "yearRange"; "required": false; "isSignal": true; }; }, { "onOptionChanged": "onOptionChanged"; "valueChange": "valueChange"; "onValueChanged": "onValueChanged"; "minValueChange": "minValueChange"; "maxValueChange": "maxValueChange"; "onBlur": "onBlur"; "onFocus": "onFocus"; "depthChange": "depthChange"; "typeChange": "typeChange"; "activeViewChange": "activeViewChange"; "disabledDatesChange": "disabledDatesChange"; "holidayDatesChange": "holidayDatesChange"; "onNavigate": "onNavigate"; "onSlotClick": "onSlotClick"; "countChange": "countChange"; }, never, ["ax-header", "ax-footer"], true, never>;
437
463
  }
438
464
 
439
465
  declare class AXCalendarModule {
@@ -442,5 +468,5 @@ declare class AXCalendarModule {
442
468
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXCalendarModule>;
443
469
  }
444
470
 
445
- export { AXCalendarComponent, AXCalendarModule, AXCalendarNavigateEvent, AXCalendarRangeComponent, AXCalendarSlotClick, CALENDAR_INPUTS, CALENDAR_OUTPUTS, MXCalendarBaseComponent };
446
- export type { AXCalendarCellCssClass, AXCalendarDisabledDates, AXCalendarHolidayDates, AXCalendarNavigationLookType, AXCalendarView, AXCalendarViewDepth, AXCalendarViewSlot, AXCalendarViewType, AXDateTimePickerType };
471
+ export { AXCalendarComponent, AXCalendarModule, AXCalendarNavigateEvent, AXCalendarRangeComponent, AXCalendarSlotClick, CALENDAR_INPUTS, CALENDAR_OUTPUTS, MXCalendarBaseComponent, getCalendarYearBounds };
472
+ export type { AXCalendarCellCssClass, AXCalendarDisabledDates, AXCalendarHolidayDates, AXCalendarNavigationLookType, AXCalendarView, AXCalendarViewDepth, AXCalendarViewSlot, AXCalendarViewType, AXCalendarYearRange, AXDateTimePickerType };
@@ -5,7 +5,7 @@ import * as polytype from 'polytype';
5
5
  import * as _angular_core from '@angular/core';
6
6
  import { EventEmitter } from '@angular/core';
7
7
  import { MXInputBaseValueComponent, MXLookComponent, AXEvent, AXFocusEvent, AXValueChangedEvent } from '@acorex/cdk/common';
8
- import { MXCalendarBaseComponent, AXDateTimePickerType, AXCalendarNavigationLookType, AXCalendarNavigateEvent } from '@acorex/components/calendar';
8
+ import { MXCalendarBaseComponent, AXDateTimePickerType, AXCalendarNavigationLookType, AXCalendarYearRange, AXCalendarNavigateEvent } from '@acorex/components/calendar';
9
9
  import { AXDateTimeInputComponent } from '@acorex/components/datetime-input';
10
10
  import { AXDateTimePickerComponent } from '@acorex/components/datetime-picker';
11
11
  import { AXDecoratorGenericComponent } from '@acorex/components/decorators';
@@ -72,6 +72,12 @@ declare class AXDateTimeBoxComponent extends AXDateTimeBoxComponent_base {
72
72
  * Day view navigation style of the embedded calendar.
73
73
  */
74
74
  readonly calendarLook: _angular_core.InputSignal<AXCalendarNavigationLookType>;
75
+ /**
76
+ * Years shown in the year selector when `calendarLook` is `select`.
77
+ * Use a number for equal past/future ranges, or `{ past, future }` for asymmetric ranges.
78
+ * `minValue` and `maxValue` take priority when set.
79
+ */
80
+ readonly yearRange: _angular_core.InputSignal<AXCalendarYearRange>;
75
81
  /**
76
82
  * Input style of the datetime box.
77
83
  * - `default`: text input with calendar popup.
@@ -162,7 +168,7 @@ declare class AXDateTimeBoxComponent extends AXDateTimeBoxComponent_base {
162
168
  protected _handleInputOnClick(): void;
163
169
  private get __hostName();
164
170
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXDateTimeBoxComponent, never>;
165
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXDateTimeBoxComponent, "ax-datetime-box", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "id": { "alias": "id"; "required": false; }; "type": { "alias": "type"; "required": false; }; "look": { "alias": "look"; "required": false; }; "holidayDates": { "alias": "holidayDates"; "required": false; }; "allowTyping": { "alias": "allowTyping"; "required": false; "isSignal": true; }; "picker": { "alias": "picker"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "weekend": { "alias": "weekend"; "required": false; "isSignal": true; }; "weekdays": { "alias": "weekdays"; "required": false; "isSignal": true; }; "calendarLook": { "alias": "calendarLook"; "required": false; "isSignal": true; }; "boxLook": { "alias": "boxLook"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "onOpened": "onOpened"; "onClosed": "onClosed"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "formatChange": "formatChange"; }, never, ["ax-prefix", "ax-suffix", "ax-prefix", "ax-clear-button", "ax-suffix", "ax-validation-rule"], true, never>;
171
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXDateTimeBoxComponent, "ax-datetime-box", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "id": { "alias": "id"; "required": false; }; "type": { "alias": "type"; "required": false; }; "look": { "alias": "look"; "required": false; }; "holidayDates": { "alias": "holidayDates"; "required": false; }; "allowTyping": { "alias": "allowTyping"; "required": false; "isSignal": true; }; "picker": { "alias": "picker"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "weekend": { "alias": "weekend"; "required": false; "isSignal": true; }; "weekdays": { "alias": "weekdays"; "required": false; "isSignal": true; }; "calendarLook": { "alias": "calendarLook"; "required": false; "isSignal": true; }; "yearRange": { "alias": "yearRange"; "required": false; "isSignal": true; }; "boxLook": { "alias": "boxLook"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "onOpened": "onOpened"; "onClosed": "onClosed"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "formatChange": "formatChange"; }, never, ["ax-prefix", "ax-suffix", "ax-prefix", "ax-clear-button", "ax-suffix", "ax-validation-rule"], true, never>;
166
172
  }
167
173
 
168
174
  declare class AXDateTimeBoxModule {
@@ -2,7 +2,7 @@ import * as polytype from 'polytype';
2
2
  import * as _angular_core from '@angular/core';
3
3
  import { OnInit, InjectionToken } from '@angular/core';
4
4
  import { MXValueComponent, AXValueChangedEvent } from '@acorex/cdk/common';
5
- import { MXCalendarBaseComponent, AXCalendarNavigationLookType, AXDateTimePickerType, AXCalendarNavigateEvent } from '@acorex/components/calendar';
5
+ import { MXCalendarBaseComponent, AXCalendarNavigationLookType, AXCalendarYearRange, AXDateTimePickerType, AXCalendarNavigateEvent } from '@acorex/components/calendar';
6
6
  import { AXTabsComponent, AXTabStripChangedEvent } from '@acorex/components/tabs';
7
7
  import { AXDateTimeParts, AXDateTime } from '@acorex/core/date-time';
8
8
 
@@ -25,6 +25,12 @@ declare class AXDateTimePickerComponent extends AXDateTimePickerComponent_base i
25
25
  * Day view navigation style of the embedded calendar.
26
26
  */
27
27
  calendarLook: _angular_core.InputSignal<AXCalendarNavigationLookType>;
28
+ /**
29
+ * Years shown in the year selector when `calendarLook` is `select`.
30
+ * Use a number for equal past/future ranges, or `{ past, future }` for asymmetric ranges.
31
+ * `minValue` and `maxValue` take priority when set.
32
+ */
33
+ yearRange: _angular_core.InputSignal<AXCalendarYearRange>;
28
34
  protected buttonText: _angular_core.Signal<"dateTime.today" | "dateTime.now">;
29
35
  private defaultConfig;
30
36
  protected pickerHoursMinValue: _angular_core.WritableSignal<number>;
@@ -131,7 +137,7 @@ declare class AXDateTimePickerComponent extends AXDateTimePickerComponent_base i
131
137
  protected internalSetValue(value: Date): Date | null;
132
138
  protected isTodayDisabled(): boolean;
133
139
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXDateTimePickerComponent, never>;
134
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXDateTimePickerComponent, "ax-datetime-picker", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "holidayDates": { "alias": "holidayDates"; "required": false; }; "type": { "alias": "type"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "showNavigation": { "alias": "showNavigation"; "required": false; }; "weekend": { "alias": "weekend"; "required": false; "isSignal": true; }; "weekdays": { "alias": "weekdays"; "required": false; "isSignal": true; }; "calendarLook": { "alias": "calendarLook"; "required": false; "isSignal": true; }; "currentTimeButton": { "alias": "currentTimeButton"; "required": false; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "picker": { "alias": "picker"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "onClick": "onClick"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "depthChange": "depthChange"; "typeChange": "typeChange"; "activeViewChange": "activeViewChange"; "disabledDatesChange": "disabledDatesChange"; "holidayDatesChange": "holidayDatesChange"; "onNavigate": "onNavigate"; "onSlotClick": "onSlotClick"; }, never, never, true, never>;
140
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXDateTimePickerComponent, "ax-datetime-picker", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "holidayDates": { "alias": "holidayDates"; "required": false; }; "type": { "alias": "type"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "showNavigation": { "alias": "showNavigation"; "required": false; }; "weekend": { "alias": "weekend"; "required": false; "isSignal": true; }; "weekdays": { "alias": "weekdays"; "required": false; "isSignal": true; }; "calendarLook": { "alias": "calendarLook"; "required": false; "isSignal": true; }; "yearRange": { "alias": "yearRange"; "required": false; "isSignal": true; }; "currentTimeButton": { "alias": "currentTimeButton"; "required": false; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "picker": { "alias": "picker"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "onClick": "onClick"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "depthChange": "depthChange"; "typeChange": "typeChange"; "activeViewChange": "activeViewChange"; "disabledDatesChange": "disabledDatesChange"; "holidayDatesChange": "holidayDatesChange"; "onNavigate": "onNavigate"; "onSlotClick": "onSlotClick"; }, never, never, true, never>;
135
141
  }
136
142
 
137
143
  interface AXDateTimePickerConfig {
@@ -481,7 +481,9 @@ type AXSchedulerMonthDayCell = {
481
481
  isToday: boolean;
482
482
  isHoliday: boolean;
483
483
  holidayTitle?: string;
484
+ holidayDescription?: string;
484
485
  holidayCssClass?: string;
486
+ holidayColor?: string;
485
487
  appointments: AXSchedulerAppointmentSegment[];
486
488
  visibleAppointments: AXSchedulerAppointmentSegment[];
487
489
  hiddenAppointments: AXSchedulerAppointmentSegment[];
@@ -500,6 +502,7 @@ declare class AXSchedulerMonthViewComponent extends NXComponent {
500
502
  private document;
501
503
  private scheduler;
502
504
  private calendarService;
505
+ private localeService;
503
506
  private schedulerService;
504
507
  readonly: _angular_core.InputSignal<boolean>;
505
508
  draggable: _angular_core.InputSignal<boolean>;