@odx/angular 12.13.0 → 12.14.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @odx/angular
2
2
 
3
+ ## 12.14.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 236139a: New default sort function
8
+
9
+ ## 12.13.1
10
+
11
+ ### Patch Changes
12
+
13
+ - 01787ab: Fixed: to avoid calendar jumps caused by the different number of days in each month, it now consistently displays 6 weeks per month
14
+
3
15
  ## 12.13.0
4
16
 
5
17
  ### Minor Changes
@@ -2,6 +2,7 @@ import * as i0 from "@angular/core";
2
2
  /** @internal */
3
3
  export declare class CalendarMonthService {
4
4
  private readonly calendar;
5
+ private readonly weeksInView;
5
6
  readonly weekDays$: import("rxjs").Observable<Date[]>;
6
7
  readonly weeks$: import("rxjs").Observable<Date[][]>;
7
8
  private generateWeekDays;
@@ -1,7 +1,6 @@
1
1
  import { OnInit } from '@angular/core';
2
2
  import { FormControl, FormGroup } from '@angular/forms';
3
3
  import { SortStatus, TableHeaderCell } from '../../models';
4
- import { TableSortVariant } from '../../models/sort-variant';
5
4
  import * as i0 from "@angular/core";
6
5
  /**
7
6
  * HeaderTitleComponent provides the functionality for a table header cell, including sorting and checkbox
@@ -34,11 +33,11 @@ export declare class HeaderTitleComponent implements OnInit {
34
33
  */
35
34
  get getSortStatus(): SortStatus;
36
35
  /**
37
- * Returns the icon or indicator for the current sorting status (ascending, descending, unsorted).
36
+ * Returns the icon name for the current sorting status (ascending, descending, unsorted).
38
37
  *
39
- * @returns {TableSortVariant}
38
+ * @returns {string}
40
39
  */
41
- get sortIcon(): TableSortVariant;
40
+ get sortIcon(): string;
42
41
  /**
43
42
  * Toggles the sorting status of the column and informs the table component of the change.
44
43
  */
@@ -1,5 +1,4 @@
1
1
  export * from './header-cell';
2
2
  export * from './sort-status';
3
- export * from './sort-variant';
4
3
  export * from './table-body-cell';
5
4
  export * from './table-variant';
@@ -1,5 +1,4 @@
1
- import { TableSortVariant } from './sort-variant';
2
1
  export interface SortStatus {
3
2
  column: string;
4
- sortVariant: TableSortVariant;
3
+ sortVariant?: 'asc' | 'desc';
5
4
  }
@@ -1,5 +1,5 @@
1
1
  import { inject, Injectable } from '@angular/core';
2
- import { addDays, endOfMonth, endOfWeek, startOfMonth, startOfWeek } from 'date-fns';
2
+ import { addDays, startOfMonth, startOfWeek } from 'date-fns';
3
3
  import { map } from 'rxjs';
4
4
  import { CalendarService } from '../calendar.service';
5
5
  import * as i0 from "@angular/core";
@@ -7,6 +7,7 @@ import * as i0 from "@angular/core";
7
7
  export class CalendarMonthService {
8
8
  constructor() {
9
9
  this.calendar = inject(CalendarService);
10
+ this.weeksInView = 6;
10
11
  this.weekDays$ = this.calendar.activeDate$.pipe(map((date) => this.generateWeekDays(date)));
11
12
  this.weeks$ = this.calendar.activeDate$.pipe(map((date) => this.generateWeeks(date)));
12
13
  }
@@ -16,12 +17,10 @@ export class CalendarMonthService {
16
17
  }
17
18
  generateWeeks(date) {
18
19
  const startOfTheSelectedMonth = startOfMonth(date);
19
- const endOfTheSelectedMonth = endOfMonth(date);
20
20
  const startDate = startOfWeek(startOfTheSelectedMonth, { weekStartsOn: 1 });
21
- const endDate = endOfWeek(endOfTheSelectedMonth);
22
21
  const allWeeks = [];
23
22
  let currentDate = startDate;
24
- while (currentDate <= endDate) {
23
+ for (let i = this.weeksInView; i > 0; i--) {
25
24
  allWeeks.push(this.generateDaysForWeek(currentDate, date));
26
25
  currentDate = addDays(currentDate, 7);
27
26
  }
@@ -36,4 +35,4 @@ export class CalendarMonthService {
36
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalendarMonthService, decorators: [{
37
36
  type: Injectable
38
37
  }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbW9udGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvc2VydmljZXMvY2FsZW5kYXItbW9udGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNyRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFdEQsZ0JBQWdCO0FBRWhCLE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFFbUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVwQyxjQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RixXQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0EwQmxHO0lBeEJTLGdCQUFnQixDQUFDLElBQVU7UUFDakMsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQVU7UUFDOUIsTUFBTSx1QkFBdUIsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsTUFBTSxxQkFBcUIsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUUsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDakQsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBRXBCLElBQUksV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUM1QixPQUFPLFdBQVcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM5QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRCxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLG1CQUFtQixDQUFDLElBQVUsRUFBRSxXQUFpQjtRQUN2RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7K0dBN0JVLG9CQUFvQjttSEFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhZGREYXlzLCBlbmRPZk1vbnRoLCBlbmRPZldlZWssIHN0YXJ0T2ZNb250aCwgc3RhcnRPZldlZWsgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4uL2NhbGVuZGFyLnNlcnZpY2UnO1xuXG4vKiogQGludGVybmFsICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJNb250aFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGNhbGVuZGFyID0gaW5qZWN0KENhbGVuZGFyU2VydmljZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHdlZWtEYXlzJCA9IHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSQucGlwZShtYXAoKGRhdGUpID0+IHRoaXMuZ2VuZXJhdGVXZWVrRGF5cyhkYXRlKSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgd2Vla3MkID0gdGhpcy5jYWxlbmRhci5hY3RpdmVEYXRlJC5waXBlKG1hcCgoZGF0ZSkgPT4gdGhpcy5nZW5lcmF0ZVdlZWtzKGRhdGUpKSk7XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVdlZWtEYXlzKGRhdGU6IERhdGUpOiBEYXRlW10ge1xuICAgIGNvbnN0IGZpcnN0V2Vla0RheSA9IHN0YXJ0T2ZXZWVrKGRhdGUsIHsgd2Vla1N0YXJ0c09uOiAxIH0pO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiA3IH0sIChfLCBpKSA9PiBhZGREYXlzKGZpcnN0V2Vla0RheSwgaSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVdlZWtzKGRhdGU6IERhdGUpOiBEYXRlW11bXSB7XG4gICAgY29uc3Qgc3RhcnRPZlRoZVNlbGVjdGVkTW9udGggPSBzdGFydE9mTW9udGgoZGF0ZSk7XG4gICAgY29uc3QgZW5kT2ZUaGVTZWxlY3RlZE1vbnRoID0gZW5kT2ZNb250aChkYXRlKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSBzdGFydE9mV2VlayhzdGFydE9mVGhlU2VsZWN0ZWRNb250aCwgeyB3ZWVrU3RhcnRzT246IDEgfSk7XG4gICAgY29uc3QgZW5kRGF0ZSA9IGVuZE9mV2VlayhlbmRPZlRoZVNlbGVjdGVkTW9udGgpO1xuICAgIGNvbnN0IGFsbFdlZWtzID0gW107XG5cbiAgICBsZXQgY3VycmVudERhdGUgPSBzdGFydERhdGU7XG4gICAgd2hpbGUgKGN1cnJlbnREYXRlIDw9IGVuZERhdGUpIHtcbiAgICAgIGFsbFdlZWtzLnB1c2godGhpcy5nZW5lcmF0ZURheXNGb3JXZWVrKGN1cnJlbnREYXRlLCBkYXRlKSk7XG4gICAgICBjdXJyZW50RGF0ZSA9IGFkZERheXMoY3VycmVudERhdGUsIDcpO1xuICAgIH1cblxuICAgIHJldHVybiBhbGxXZWVrcztcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVEYXlzRm9yV2VlayhkYXRlOiBEYXRlLCBjdXJyZW50RGF0ZTogRGF0ZSk6IERhdGVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IDcgfSkubWFwKChfLCBpKSA9PiBhZGREYXlzKGRhdGUsIGkpLCBjdXJyZW50RGF0ZSk7XG4gIH1cbn1cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbW9udGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvc2VydmljZXMvY2FsZW5kYXItbW9udGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRXRELGdCQUFnQjtBQUVoQixNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBRW1CLGFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFFakIsY0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkYsV0FBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBeUJsRztJQXZCUyxnQkFBZ0IsQ0FBQyxJQUFVO1FBQ2pDLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFVO1FBQzlCLE1BQU0sdUJBQXVCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVwQixJQUFJLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFFNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMxQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRCxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLG1CQUFtQixDQUFDLElBQVUsRUFBRSxXQUFpQjtRQUN2RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7K0dBN0JVLG9CQUFvQjttSEFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhZGREYXlzLCBzdGFydE9mTW9udGgsIHN0YXJ0T2ZXZWVrIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYWxlbmRhclNlcnZpY2UgfSBmcm9tICcuLi9jYWxlbmRhci5zZXJ2aWNlJztcblxuLyoqIEBpbnRlcm5hbCAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyTW9udGhTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjYWxlbmRhciA9IGluamVjdChDYWxlbmRhclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdlZWtzSW5WaWV3ID0gNjtcblxuICBwdWJsaWMgcmVhZG9ubHkgd2Vla0RheXMkID0gdGhpcy5jYWxlbmRhci5hY3RpdmVEYXRlJC5waXBlKG1hcCgoZGF0ZSkgPT4gdGhpcy5nZW5lcmF0ZVdlZWtEYXlzKGRhdGUpKSk7XG4gIHB1YmxpYyByZWFkb25seSB3ZWVrcyQgPSB0aGlzLmNhbGVuZGFyLmFjdGl2ZURhdGUkLnBpcGUobWFwKChkYXRlKSA9PiB0aGlzLmdlbmVyYXRlV2Vla3MoZGF0ZSkpKTtcblxuICBwcml2YXRlIGdlbmVyYXRlV2Vla0RheXMoZGF0ZTogRGF0ZSk6IERhdGVbXSB7XG4gICAgY29uc3QgZmlyc3RXZWVrRGF5ID0gc3RhcnRPZldlZWsoZGF0ZSwgeyB3ZWVrU3RhcnRzT246IDEgfSk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IDcgfSwgKF8sIGkpID0+IGFkZERheXMoZmlyc3RXZWVrRGF5LCBpKSk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlV2Vla3MoZGF0ZTogRGF0ZSk6IERhdGVbXVtdIHtcbiAgICBjb25zdCBzdGFydE9mVGhlU2VsZWN0ZWRNb250aCA9IHN0YXJ0T2ZNb250aChkYXRlKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSBzdGFydE9mV2VlayhzdGFydE9mVGhlU2VsZWN0ZWRNb250aCwgeyB3ZWVrU3RhcnRzT246IDEgfSk7XG4gICAgY29uc3QgYWxsV2Vla3MgPSBbXTtcblxuICAgIGxldCBjdXJyZW50RGF0ZSA9IHN0YXJ0RGF0ZTtcblxuICAgIGZvciAobGV0IGkgPSB0aGlzLndlZWtzSW5WaWV3OyBpID4gMDsgaS0tKSB7XG4gICAgICBhbGxXZWVrcy5wdXNoKHRoaXMuZ2VuZXJhdGVEYXlzRm9yV2VlayhjdXJyZW50RGF0ZSwgZGF0ZSkpO1xuICAgICAgY3VycmVudERhdGUgPSBhZGREYXlzKGN1cnJlbnREYXRlLCA3KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWxsV2Vla3M7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlRGF5c0ZvcldlZWsoZGF0ZTogRGF0ZSwgY3VycmVudERhdGU6IERhdGUpOiBEYXRlW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiA3IH0pLm1hcCgoXywgaSkgPT4gYWRkRGF5cyhkYXRlLCBpKSwgY3VycmVudERhdGUpO1xuICB9XG59XG4iXX0=
@@ -2,9 +2,9 @@ import { CommonModule } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, inject, Input, ViewEncapsulation } from '@angular/core';
3
3
  import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
4
4
  import { CheckboxComponent } from '@odx/angular/components/checkbox';
5
+ import { IconComponent } from '@odx/angular/components/icon';
5
6
  import { untilDestroyed } from '@odx/angular/utils';
6
7
  import { tap } from 'rxjs';
7
- import { TableSortVariant } from '../../models/sort-variant';
8
8
  import { TABLE } from '../../table.config';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@angular/forms";
@@ -32,15 +32,19 @@ export class HeaderTitleComponent {
32
32
  * @returns {SortStatus}
33
33
  */
34
34
  get getSortStatus() {
35
- return { column: this.item?.name, sortVariant: TableSortVariant.UNSORTED };
35
+ return { column: this.item?.name, sortVariant: undefined };
36
36
  }
37
37
  /**
38
- * Returns the icon or indicator for the current sorting status (ascending, descending, unsorted).
38
+ * Returns the icon name for the current sorting status (ascending, descending, unsorted).
39
39
  *
40
- * @returns {TableSortVariant}
40
+ * @returns {string}
41
41
  */
42
42
  get sortIcon() {
43
- return this.sortStatus.sortVariant;
43
+ if (this.sortStatus.sortVariant === 'asc')
44
+ return 'sort-down';
45
+ if (this.sortStatus.sortVariant === 'desc')
46
+ return 'sort-up';
47
+ return 'sortable';
44
48
  }
45
49
  /**
46
50
  * Toggles the sorting status of the column and informs the table component of the change.
@@ -48,16 +52,13 @@ export class HeaderTitleComponent {
48
52
  sortColumn() {
49
53
  if (!this.item?.sortable)
50
54
  return;
51
- switch (this.sortStatus.sortVariant) {
52
- case TableSortVariant.DESC:
53
- case TableSortVariant.UNSORTED:
54
- this.table.clearSort();
55
- this.sortStatus = { ...this.sortStatus, sortVariant: TableSortVariant.ASC };
56
- break;
57
- case TableSortVariant.ASC:
58
- this.table.clearSort();
59
- this.sortStatus = { ...this.sortStatus, sortVariant: TableSortVariant.DESC };
60
- break;
55
+ if (this.sortStatus.sortVariant === 'desc' || !this.sortStatus.sortVariant) {
56
+ this.table.clearSort();
57
+ this.sortStatus = { ...this.sortStatus, sortVariant: 'asc' };
58
+ }
59
+ else if (this.sortStatus.sortVariant === 'asc') {
60
+ this.table.clearSort();
61
+ this.sortStatus = { ...this.sortStatus, sortVariant: 'desc' };
61
62
  }
62
63
  this.table.sorted.emit(this.sortStatus);
63
64
  }
@@ -65,7 +66,7 @@ export class HeaderTitleComponent {
65
66
  * Resets the sort status to unsorted.
66
67
  */
67
68
  clearSortStatus() {
68
- this.sortStatus = { column: this.item?.name, sortVariant: TableSortVariant.UNSORTED };
69
+ this.sortStatus = this.getSortStatus;
69
70
  this.check();
70
71
  }
71
72
  /**
@@ -112,15 +113,15 @@ export class HeaderTitleComponent {
112
113
  return this.item.width ?? 'auto';
113
114
  }
114
115
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
115
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: HeaderTitleComponent, isStandalone: true, selector: "th[odxHeaderTitle]", inputs: { item: "item" }, host: { properties: { "style.width": "this.columnWidth" } }, ngImport: i0, template: "@if (item.check) {\n <div class=\"odx-table__check\">\n <div [formGroup]=\"checkForm\">\n <odx-checkbox [checked]=\"checked\" [indeterminate]=\"indeterminate\" formControlName=\"check\" />\n </div>\n </div>\n} @else {\n <div class=\"odx-table__header-cell-title\" (click)=\"sortColumn()\" [class.sortable]=\"item.sortable\">\n {{ item.title }}\n @if (item.sortable) {\n @switch (sortIcon) {\n @case ('unsorted') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n <path d=\"m14,5H2v-2h12v2Zm-4,2H2v2h8v-2Zm-4,4H2v2h4v-2Z\" style=\"fill: var(--blue-700)\" />\n </svg>\n }\n @case ('desc') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n <polygon points=\"11 6 8 3 5 6 7 6 7 13 9 13 9 6 11 6\" style=\"fill: var(--blue-700)\" />\n </svg>\n }\n @case ('asc') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n <polygon points=\"5 10 8 13 11 10 9 10 9 3 7 3 7 10 5 10\" style=\"fill: var(--blue-700)\" />\n </svg>\n }\n }\n }\n </div>\n <ng-content select=\"odx-form-field\" />\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: CheckboxComponent, selector: "odx-checkbox", inputs: ["indeterminate"], outputs: ["indeterminateChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: HeaderTitleComponent, isStandalone: true, selector: "th[odxHeaderTitle]", inputs: { item: "item" }, host: { properties: { "style.width": "this.columnWidth" } }, ngImport: i0, template: "@if (item.check) {\n <div class=\"odx-table__check\">\n <div [formGroup]=\"checkForm\">\n <odx-checkbox [checked]=\"checked\" [indeterminate]=\"indeterminate\" formControlName=\"check\" />\n </div>\n </div>\n} @else {\n <div class=\"odx-table__header-cell-title\" (click)=\"sortColumn()\" [class.sortable]=\"item.sortable\">\n {{ item.title }}\n @if (item.sortable) {\n <odx-icon iconSet=\"core\" [name]=\"sortIcon\" size=\"small\" />\n }\n </div>\n <ng-content select=\"odx-form-field\" />\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: CheckboxComponent, selector: "odx-checkbox", inputs: ["indeterminate"], outputs: ["indeterminateChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
116
117
  }
117
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderTitleComponent, decorators: [{
118
119
  type: Component,
119
- args: [{ selector: 'th[odxHeaderTitle]', standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, CheckboxComponent, ReactiveFormsModule], template: "@if (item.check) {\n <div class=\"odx-table__check\">\n <div [formGroup]=\"checkForm\">\n <odx-checkbox [checked]=\"checked\" [indeterminate]=\"indeterminate\" formControlName=\"check\" />\n </div>\n </div>\n} @else {\n <div class=\"odx-table__header-cell-title\" (click)=\"sortColumn()\" [class.sortable]=\"item.sortable\">\n {{ item.title }}\n @if (item.sortable) {\n @switch (sortIcon) {\n @case ('unsorted') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n <path d=\"m14,5H2v-2h12v2Zm-4,2H2v2h8v-2Zm-4,4H2v2h4v-2Z\" style=\"fill: var(--blue-700)\" />\n </svg>\n }\n @case ('desc') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n <polygon points=\"11 6 8 3 5 6 7 6 7 13 9 13 9 6 11 6\" style=\"fill: var(--blue-700)\" />\n </svg>\n }\n @case ('asc') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n <polygon points=\"5 10 8 13 11 10 9 10 9 3 7 3 7 10 5 10\" style=\"fill: var(--blue-700)\" />\n </svg>\n }\n }\n }\n </div>\n <ng-content select=\"odx-form-field\" />\n}\n" }]
120
+ args: [{ selector: 'th[odxHeaderTitle]', standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, CheckboxComponent, ReactiveFormsModule, IconComponent], template: "@if (item.check) {\n <div class=\"odx-table__check\">\n <div [formGroup]=\"checkForm\">\n <odx-checkbox [checked]=\"checked\" [indeterminate]=\"indeterminate\" formControlName=\"check\" />\n </div>\n </div>\n} @else {\n <div class=\"odx-table__header-cell-title\" (click)=\"sortColumn()\" [class.sortable]=\"item.sortable\">\n {{ item.title }}\n @if (item.sortable) {\n <odx-icon iconSet=\"core\" [name]=\"sortIcon\" size=\"small\" />\n }\n </div>\n <ng-content select=\"odx-form-field\" />\n}\n" }]
120
121
  }], propDecorators: { item: [{
121
122
  type: Input
122
123
  }], columnWidth: [{
123
124
  type: HostBinding,
124
125
  args: ['style.width']
125
126
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXRpdGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RhYmxlL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXItdGl0bGUvaGVhZGVyLXRpdGxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RhYmxlL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXItdGl0bGUvaGVhZGVyLXRpdGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdJLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFFM0M7Ozs7R0FJRztBQVVILE1BQU0sT0FBTyxvQkFBb0I7SUFUakM7UUFVbUIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMs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WUFBWSxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDOzhCQWN4RCxJQUFJO3NCQURWLEtBQUs7Z0JBMEdRLFdBQVc7c0JBRHhCLFdBQVc7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2NoZWNrYm94JztcbmltcG9ydCB7IHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU29ydFN0YXR1cywgVGFibGVCb2R5Q2VsbCwgVGFibGVIZWFkZXJDZWxsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFRhYmxlU29ydFZhcmlhbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvc29ydC12YXJpYW50JztcbmltcG9ydCB7IFRBQkxFIH0gZnJvbSAnLi4vLi4vdGFibGUuY29uZmlnJztcblxuLyoqXG4gKiBIZWFkZXJUaXRsZUNvbXBvbmVudCBwcm92aWRlcyB0aGUgZnVuY3Rpb25hbGl0eSBmb3IgYSB0YWJsZSBoZWFkZXIgY2VsbCwgaW5jbHVkaW5nIHNvcnRpbmcgYW5kIGNoZWNrYm94XG4gKiBvcGVyYXRpb25zIGlmIGFwcGxpY2FibGUuIEl0IGhhbmRsZXMgY2hhbmdlcyBpbiBzb3J0IHN0YXRlIGFuZCBlbWl0cyByZWxldmFudCBldmVudHMgdG8gdGhlIHRhYmxlIGNvbXBvbmVudFxuICogdG8gbWFuYWdlIHNvcnRpbmcgYW5kIHNlbGVjdGlvbiBzdGF0ZSBhY3Jvc3MgdGhlIHRhYmxlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd0aFtvZHhIZWFkZXJUaXRsZV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLXRpdGxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENoZWNrYm94Q29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyVGl0bGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRhYmxlID0gaW5qZWN0KFRBQkxFKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gIHByaXZhdGUgc29ydFN0YXR1czogU29ydFN0YXR1cyA9IHRoaXMuZ2V0U29ydFN0YXR1cztcblxuICAvKipcbiAgICogVGhlIGhlYWRlciBjZWxsIGl0ZW0gY29udGFpbmluZyBtZXRhZGF0YSBsaWtlIGNvbHVtbiBuYW1lLCBzb3J0YWJpbGl0eSwgYW5kIHdoZXRoZXIgaXQgc2hvdWxkIGluY2x1ZGUgYSBjaGVja2JveC5cbiAgICpcbiAgICogQHR5cGUge1RhYmxlSGVhZGVyQ2VsbH1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpdGVtITogVGFibGVIZWFkZXJDZWxsO1xuXG4gIC8qKlxuICAgKiBGb3JtR3JvdXAgdG8gbWFuYWdlIHRoZSBjaGVja2JveCBzdGF0ZSB3aXRoaW4gdGhlIGhlYWRlci5cbiAgICpcbiAgICogQHR5cGUge0Zvcm1Hcm91cH1cbiAgICovXG4gIHB1YmxpYyBjaGVja0Zvcm0gPSBuZXcgRm9ybUdyb3VwKHsgY2hlY2s6IG5ldyBGb3JtQ29udHJvbChmYWxzZSkgfSk7XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIGFuZCByZXR1cm5zIHRoZSBjdXJyZW50IHNvcnQgc3RhdHVzIG9mIHRoZSBjb2x1bW4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgaGVhZGVyLlxuICAgKlxuICAgKiBAcmV0dXJucyB7U29ydFN0YXR1c31cbiAgICovXG4gIHB1YmxpYyBnZXQgZ2V0U29ydFN0YXR1cygpOiBTb3J0U3RhdHVzIHtcbiAgICByZXR1cm4geyBjb2x1bW46IHRoaXMuaXRlbT8ubmFtZSwgc29ydFZhcmlhbnQ6IFRhYmxlU29ydFZhcmlhbnQuVU5TT1JURUQgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBpY29uIG9yIGluZGljYXRvciBmb3IgdGhlIGN1cnJlbnQgc29ydGluZyBzdGF0dXMgKGFzY2VuZGluZywgZGVzY2VuZGluZywgdW5zb3J0ZWQpLlxuICAgKlxuICAgKiBAcmV0dXJucyB7VGFibGVTb3J0VmFyaWFudH1cbiAgICovXG4gIHB1YmxpYyBnZXQgc29ydEljb24oKTogVGFibGVTb3J0VmFyaWFudCB7XG4gICAgcmV0dXJuIHRoaXMuc29ydFN0YXR1cy5zb3J0VmFyaWFudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBzb3J0aW5nIHN0YXR1cyBvZiB0aGUgY29sdW1uIGFuZCBpbmZvcm1zIHRoZSB0YWJsZSBjb21wb25lbnQgb2YgdGhlIGNoYW5nZS5cbiAgICovXG4gIHB1YmxpYyBzb3J0Q29sdW1uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pdGVtPy5zb3J0YWJsZSkgcmV0dXJuO1xuICAgIHN3aXRjaCAodGhpcy5zb3J0U3RhdHVzLnNvcnRWYXJpYW50KSB7XG4gICAgICBjYXNlIFRhYmxlU29ydFZhcmlhbnQuREVTQzpcbiAgICAgIGNhc2UgVGFibGVTb3J0VmFyaWFudC5VTlNPUlRFRDpcbiAgICAgICAgdGhpcy50YWJsZS5jbGVhclNvcnQoKTtcbiAgICAgICAgdGhpcy5zb3J0U3RhdHVzID0geyAuLi50aGlzLnNvcnRTdGF0dXMsIHNvcnRWYXJpYW50OiBUYWJsZVNvcnRWYXJpYW50LkFTQyB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVGFibGVTb3J0VmFyaWFudC5BU0M6XG4gICAgICAgIHRoaXMudGFibGUuY2xlYXJTb3J0KCk7XG5cbiAgICAgICAgdGhpcy5zb3J0U3RhdHVzID0geyAuLi50aGlzLnNvcnRTdGF0dXMsIHNvcnRWYXJpYW50OiBUYWJsZVNvcnRWYXJpYW50LkRFU0MgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdGhpcy50YWJsZS5zb3J0ZWQuZW1pdCh0aGlzLnNvcnRTdGF0dXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgc29ydCBzdGF0dXMgdG8gdW5zb3J0ZWQuXG4gICAqL1xuICBwdWJsaWMgY2xlYXJTb3J0U3RhdHVzKCk6IHZvaWQge1xuICAgIHRoaXMuc29ydFN0YXR1cyA9IHsgY29sdW1uOiB0aGlzLml0ZW0/Lm5hbWUsIHNvcnRWYXJpYW50OiBUYWJsZVNvcnRWYXJpYW50LlVOU09SVEVEIH07XG4gICAgdGhpcy5jaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBzZWxlY3RlZCBpdGVtcyBpbiB0aGUgY29sdW1uLCB1c2VkIHRvIGRldGVybWluZSBjaGVja2JveCBzdGF0ZS5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn1cbiAgICovXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZS5kYXRhKCkuZmlsdGVyKChkOiBUYWJsZUJvZHlDZWxsKSA9PiBkW3RoaXMuaXRlbS5uYW1lXSkubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGNvbXBvbmVudCB2aWV3LCB1c3VhbGx5IGFmdGVyIGEgc3RhdGUgY2hhbmdlLlxuICAgKi9cbiAgcHVibGljIGNoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY2hlY2tib3ggc2hvdWxkIGJlIG1hcmtlZCBhcyBjaGVja2VkLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb2x1bW4gPSB0aGlzLml0ZW0uY2hlY2sgJiYgdGhpcy5pdGVtLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMudGFibGUuZGF0YSgpLmV2ZXJ5KChpdGVtOiBUYWJsZUJvZHlDZWxsKSA9PiBjb2x1bW4gJiYgaXRlbVtjb2x1bW5dKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrQm94TGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tCb3hMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXRlbS5jaGVjaykgcmV0dXJuO1xuICAgIHRoaXMuY2hlY2tGb3JtXG4gICAgICAuZ2V0KCdjaGVjaycpXG4gICAgICA/LnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICB0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgICB0YXAoKGNoZWNrKSA9PiB0aGlzLnRhYmxlLmNoZWNrZWQuZW1pdCh7IGNvbHVtbjogdGhpcy5pdGVtLm5hbWUsIGNoZWNrOiAhIWNoZWNrIH0pKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb2x1bW4gPSB0aGlzLml0ZW0uY2hlY2sgJiYgdGhpcy5pdGVtLm5hbWU7XG4gICAgY29uc3QgeyBsZW5ndGggfSA9IHRoaXMudGFibGUuZGF0YSgpO1xuICAgIGNvbnN0IHVuY2hlY2tlZCA9IGxlbmd0aCAtIHRoaXMudGFibGUuZGF0YSgpLmZpbHRlcigoaXRlbTogVGFibGVCb2R5Q2VsbCkgPT4gY29sdW1uICYmIGl0ZW1bY29sdW1uXSkubGVuZ3RoO1xuICAgIHJldHVybiB1bmNoZWNrZWQgPiAwICYmIHVuY2hlY2tlZCA8IGxlbmd0aDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKVxuICBwcm90ZWN0ZWQgZ2V0IGNvbHVtbldpZHRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbS53aWR0aCA/PyAnYXV0byc7XG4gIH1cbn1cbiIsIkBpZiAoaXRlbS5jaGVjaykge1xuICA8ZGl2IGNsYXNzPVwib2R4LXRhYmxlX19jaGVja1wiPlxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJjaGVja0Zvcm1cIj5cbiAgICAgIDxvZHgtY2hlY2tib3ggW2NoZWNrZWRdPVwiY2hlY2tlZFwiIFtpbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJjaGVja1wiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufSBAZWxzZSB7XG4gIDxkaXYgY2xhc3M9XCJvZHgtdGFibGVfX2hlYWRlci1jZWxsLXRpdGxlXCIgKGNsaWNrKT1cInNvcnRDb2x1bW4oKVwiIFtjbGFzcy5zb3J0YWJsZV09XCJpdGVtLnNvcnRhYmxlXCI+XG4gICAge3sgaXRlbS50aXRsZSB9fVxuICAgIEBpZiAoaXRlbS5zb3J0YWJsZSkge1xuICAgICAgQHN3aXRjaCAoc29ydEljb24pIHtcbiAgICAgICAgQGNhc2UgKCd1bnNvcnRlZCcpIHtcbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwibTE0LDVIMnYtMmgxMnYyWm0tNCwySDJ2Mmg4di0yWm0tNCw0SDJ2Mmg0di0yWlwiIHN0eWxlPVwiZmlsbDogdmFyKC0tYmx1ZS03MDApXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ2Rlc2MnKSB7XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPVwiMTEgNiA4IDMgNSA2IDcgNiA3IDEzIDkgMTMgOSA2IDExIDZcIiBzdHlsZT1cImZpbGw6IHZhcigtLWJsdWUtNzAwKVwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdhc2MnKSB7XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPVwiNSAxMCA4IDEzIDExIDEwIDkgMTAgOSAzIDcgMyA3IDEwIDUgMTBcIiBzdHlsZT1cImZpbGw6IHZhcigtLWJsdWUtNzAwKVwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJvZHgtZm9ybS1maWVsZFwiIC8+XG59XG4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXRpdGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RhYmxlL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXItdGl0bGUvaGVhZGVyLXRpdGxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RhYmxlL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXItdGl0bGUvaGVhZGVyLXRpdGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdJLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRTNDOzs7O0dBSUc7QUFVSCxNQUFNLE9BQU8sb0JBQW9CO0lBVGpDO1FBVW1CLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLHVC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QUMsTUFBTSxXQUN0QyxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUM7OEJBY3ZFLElBQUk7c0JBRFYsS0FBSztnQkF1R1EsV0FBVztzQkFEeEIsV0FBVzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvY2hlY2tib3gnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTb3J0U3RhdHVzLCBUYWJsZUJvZHlDZWxsLCBUYWJsZUhlYWRlckNlbGwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVEFCTEUgfSBmcm9tICcuLi8uLi90YWJsZS5jb25maWcnO1xuXG4vKipcbiAqIEhlYWRlclRpdGxlQ29tcG9uZW50IHByb3ZpZGVzIHRoZSBmdW5jdGlvbmFsaXR5IGZvciBhIHRhYmxlIGhlYWRlciBjZWxsLCBpbmNsdWRpbmcgc29ydGluZyBhbmQgY2hlY2tib3hcbiAqIG9wZXJhdGlvbnMgaWYgYXBwbGljYWJsZS4gSXQgaGFuZGxlcyBjaGFuZ2VzIGluIHNvcnQgc3RhdGUgYW5kIGVtaXRzIHJlbGV2YW50IGV2ZW50cyB0byB0aGUgdGFibGUgY29tcG9uZW50XG4gKiB0byBtYW5hZ2Ugc29ydGluZyBhbmQgc2VsZWN0aW9uIHN0YXRlIGFjcm9zcyB0aGUgdGFibGUuXG4gKi9cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ3RoW29keEhlYWRlclRpdGxlXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXItdGl0bGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2hlY2tib3hDb21wb25lbnQsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEljb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJUaXRsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFibGUgPSBpbmplY3QoVEFCTEUpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcbiAgcHJpdmF0ZSBzb3J0U3RhdHVzOiBTb3J0U3RhdHVzID0gdGhpcy5nZXRTb3J0U3RhdHVzO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGVyIGNlbGwgaXRlbSBjb250YWluaW5nIG1ldGFkYXRhIGxpa2UgY29sdW1uIG5hbWUsIHNvcnRhYmlsaXR5LCBhbmQgd2hldGhlciBpdCBzaG91bGQgaW5jbHVkZSBhIGNoZWNrYm94LlxuICAgKlxuICAgKiBAdHlwZSB7VGFibGVIZWFkZXJDZWxsfVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGl0ZW0hOiBUYWJsZUhlYWRlckNlbGw7XG5cbiAgLyoqXG4gICAqIEZvcm1Hcm91cCB0byBtYW5hZ2UgdGhlIGNoZWNrYm94IHN0YXRlIHdpdGhpbiB0aGUgaGVhZGVyLlxuICAgKlxuICAgKiBAdHlwZSB7Rm9ybUdyb3VwfVxuICAgKi9cbiAgcHVibGljIGNoZWNrRm9ybSA9IG5ldyBGb3JtR3JvdXAoeyBjaGVjazogbmV3IEZvcm1Db250cm9sKGZhbHNlKSB9KTtcblxuICAvKipcbiAgICogQ29tcHV0ZXMgYW5kIHJldHVybnMgdGhlIGN1cnJlbnQgc29ydCBzdGF0dXMgb2YgdGhlIGNvbHVtbiBhc3NvY2lhdGVkIHdpdGggdGhpcyBoZWFkZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIHtTb3J0U3RhdHVzfVxuICAgKi9cbiAgcHVibGljIGdldCBnZXRTb3J0U3RhdHVzKCk6IFNvcnRTdGF0dXMge1xuICAgIHJldHVybiB7IGNvbHVtbjogdGhpcy5pdGVtPy5uYW1lLCBzb3J0VmFyaWFudDogdW5kZWZpbmVkIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaWNvbiBuYW1lIGZvciB0aGUgY3VycmVudCBzb3J0aW5nIHN0YXR1cyAoYXNjZW5kaW5nLCBkZXNjZW5kaW5nLCB1bnNvcnRlZCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBwdWJsaWMgZ2V0IHNvcnRJY29uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuc29ydFN0YXR1cy5zb3J0VmFyaWFudCA9PT0gJ2FzYycpIHJldHVybiAnc29ydC1kb3duJztcbiAgICBpZiAodGhpcy5zb3J0U3RhdHVzLnNvcnRWYXJpYW50ID09PSAnZGVzYycpIHJldHVybiAnc29ydC11cCc7XG4gICAgcmV0dXJuICdzb3J0YWJsZSc7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgc29ydGluZyBzdGF0dXMgb2YgdGhlIGNvbHVtbiBhbmQgaW5mb3JtcyB0aGUgdGFibGUgY29tcG9uZW50IG9mIHRoZSBjaGFuZ2UuXG4gICAqL1xuICBwdWJsaWMgc29ydENvbHVtbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXRlbT8uc29ydGFibGUpIHJldHVybjtcbiAgICBpZiAodGhpcy5zb3J0U3RhdHVzLnNvcnRWYXJpYW50ID09PSAnZGVzYycgfHwgIXRoaXMuc29ydFN0YXR1cy5zb3J0VmFyaWFudCkge1xuICAgICAgdGhpcy50YWJsZS5jbGVhclNvcnQoKTtcbiAgICAgIHRoaXMuc29ydFN0YXR1cyA9IHsgLi4udGhpcy5zb3J0U3RhdHVzLCBzb3J0VmFyaWFudDogJ2FzYycgfTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29ydFN0YXR1cy5zb3J0VmFyaWFudCA9PT0gJ2FzYycpIHtcbiAgICAgIHRoaXMudGFibGUuY2xlYXJTb3J0KCk7XG4gICAgICB0aGlzLnNvcnRTdGF0dXMgPSB7IC4uLnRoaXMuc29ydFN0YXR1cywgc29ydFZhcmlhbnQ6ICdkZXNjJyB9O1xuICAgIH1cblxuICAgIHRoaXMudGFibGUuc29ydGVkLmVtaXQodGhpcy5zb3J0U3RhdHVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIHNvcnQgc3RhdHVzIHRvIHVuc29ydGVkLlxuICAgKi9cbiAgcHVibGljIGNsZWFyU29ydFN0YXR1cygpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRTdGF0dXMgPSB0aGlzLmdldFNvcnRTdGF0dXM7XG4gICAgdGhpcy5jaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBzZWxlY3RlZCBpdGVtcyBpbiB0aGUgY29sdW1uLCB1c2VkIHRvIGRldGVybWluZSBjaGVja2JveCBzdGF0ZS5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn1cbiAgICovXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZS5kYXRhKCkuZmlsdGVyKChkOiBUYWJsZUJvZHlDZWxsKSA9PiBkW3RoaXMuaXRlbS5uYW1lXSkubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGNvbXBvbmVudCB2aWV3LCB1c3VhbGx5IGFmdGVyIGEgc3RhdGUgY2hhbmdlLlxuICAgKi9cbiAgcHVibGljIGNoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY2hlY2tib3ggc2hvdWxkIGJlIG1hcmtlZCBhcyBjaGVja2VkLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb2x1bW4gPSB0aGlzLml0ZW0uY2hlY2sgJiYgdGhpcy5pdGVtLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMudGFibGUuZGF0YSgpLmV2ZXJ5KChpdGVtOiBUYWJsZUJvZHlDZWxsKSA9PiBjb2x1bW4gJiYgaXRlbVtjb2x1bW5dKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrQm94TGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tCb3hMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXRlbS5jaGVjaykgcmV0dXJuO1xuICAgIHRoaXMuY2hlY2tGb3JtXG4gICAgICAuZ2V0KCdjaGVjaycpXG4gICAgICA/LnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICB0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgICB0YXAoKGNoZWNrKSA9PiB0aGlzLnRhYmxlLmNoZWNrZWQuZW1pdCh7IGNvbHVtbjogdGhpcy5pdGVtLm5hbWUsIGNoZWNrOiAhIWNoZWNrIH0pKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb2x1bW4gPSB0aGlzLml0ZW0uY2hlY2sgJiYgdGhpcy5pdGVtLm5hbWU7XG4gICAgY29uc3QgeyBsZW5ndGggfSA9IHRoaXMudGFibGUuZGF0YSgpO1xuICAgIGNvbnN0IHVuY2hlY2tlZCA9IGxlbmd0aCAtIHRoaXMudGFibGUuZGF0YSgpLmZpbHRlcigoaXRlbTogVGFibGVCb2R5Q2VsbCkgPT4gY29sdW1uICYmIGl0ZW1bY29sdW1uXSkubGVuZ3RoO1xuICAgIHJldHVybiB1bmNoZWNrZWQgPiAwICYmIHVuY2hlY2tlZCA8IGxlbmd0aDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKVxuICBwcm90ZWN0ZWQgZ2V0IGNvbHVtbldpZHRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbS53aWR0aCA/PyAnYXV0byc7XG4gIH1cbn1cbiIsIkBpZiAoaXRlbS5jaGVjaykge1xuICA8ZGl2IGNsYXNzPVwib2R4LXRhYmxlX19jaGVja1wiPlxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJjaGVja0Zvcm1cIj5cbiAgICAgIDxvZHgtY2hlY2tib3ggW2NoZWNrZWRdPVwiY2hlY2tlZFwiIFtpbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJjaGVja1wiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufSBAZWxzZSB7XG4gIDxkaXYgY2xhc3M9XCJvZHgtdGFibGVfX2hlYWRlci1jZWxsLXRpdGxlXCIgKGNsaWNrKT1cInNvcnRDb2x1bW4oKVwiIFtjbGFzcy5zb3J0YWJsZV09XCJpdGVtLnNvcnRhYmxlXCI+XG4gICAge3sgaXRlbS50aXRsZSB9fVxuICAgIEBpZiAoaXRlbS5zb3J0YWJsZSkge1xuICAgICAgPG9keC1pY29uIGljb25TZXQ9XCJjb3JlXCIgW25hbWVdPVwic29ydEljb25cIiBzaXplPVwic21hbGxcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1mb3JtLWZpZWxkXCIgLz5cbn1cbiJdfQ==
@@ -1,6 +1,5 @@
1
1
  export * from './header-cell';
2
2
  export * from './sort-status';
3
- export * from './sort-variant';
4
3
  export * from './table-body-cell';
5
4
  export * from './table-variant';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90YWJsZS9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaGVhZGVyLWNlbGwnO1xuZXhwb3J0ICogZnJvbSAnLi9zb3J0LXN0YXR1cyc7XG5leHBvcnQgKiBmcm9tICcuL3NvcnQtdmFyaWFudCc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJvZHktY2VsbCc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLXZhcmlhbnQnO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90YWJsZS9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hlYWRlci1jZWxsJztcbmV4cG9ydCAqIGZyb20gJy4vc29ydC1zdGF0dXMnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1ib2R5LWNlbGwnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS12YXJpYW50JztcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1zdGF0dXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90YWJsZS9zcmMvbGliL21vZGVscy9zb3J0LXN0YXR1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGVTb3J0VmFyaWFudCB9IGZyb20gJy4vc29ydC12YXJpYW50JztcblxuZXhwb3J0IGludGVyZmFjZSBTb3J0U3RhdHVzIHtcbiAgY29sdW1uOiBzdHJpbmc7XG4gIHNvcnRWYXJpYW50OiBUYWJsZVNvcnRWYXJpYW50O1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1zdGF0dXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90YWJsZS9zcmMvbGliL21vZGVscy9zb3J0LXN0YXR1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTb3J0U3RhdHVzIHtcbiAgY29sdW1uOiBzdHJpbmc7XG4gIHNvcnRWYXJpYW50PzogJ2FzYycgfCAnZGVzYyc7XG59XG4iXX0=
@@ -18,6 +18,7 @@ export * from './match-url';
18
18
  export * from './ng-changes';
19
19
  export * from './provide-config';
20
20
  export * from './queue';
21
+ export * from './sorter';
21
22
  export * from './type-guards';
22
23
  export * from './until-destroyed';
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbmd1bGFyJztcbmV4cG9ydCAqIGZyb20gJy4vYW5pbWF0aW9ucy1oYW5kbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vYXJyYXknO1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZC11cmwnO1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZC13ZWJzaXRlLXVybCc7XG5leHBvcnQgKiBmcm9tICcuL2NhY2hlLXN0b3JhZ2UtY2xpZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29lcmNpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9kZWJvdW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2RlZmVyLWZuJztcbmV4cG9ydCAqIGZyb20gJy4vZG9tJztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQtbWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2dldC1heGlzJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWxhbmd1YWdlLWNvZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtb3Bwb3NpdGUtc2lkZSc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1zaWRlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LXVuaXF1ZS1pZCc7XG5leHBvcnQgKiBmcm9tICcuL21hdGNoLXVybCc7XG5leHBvcnQgKiBmcm9tICcuL25nLWNoYW5nZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXVlJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZS1ndWFyZHMnO1xuZXhwb3J0ICogZnJvbSAnLi91bnRpbC1kZXN0cm95ZWQnO1xuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbmd1bGFyJztcbmV4cG9ydCAqIGZyb20gJy4vYW5pbWF0aW9ucy1oYW5kbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vYXJyYXknO1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZC11cmwnO1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZC13ZWJzaXRlLXVybCc7XG5leHBvcnQgKiBmcm9tICcuL2NhY2hlLXN0b3JhZ2UtY2xpZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29lcmNpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9kZWJvdW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2RlZmVyLWZuJztcbmV4cG9ydCAqIGZyb20gJy4vZG9tJztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQtbWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2dldC1heGlzJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWxhbmd1YWdlLWNvZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtb3Bwb3NpdGUtc2lkZSc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1zaWRlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LXVuaXF1ZS1pZCc7XG5leHBvcnQgKiBmcm9tICcuL21hdGNoLXVybCc7XG5leHBvcnQgKiBmcm9tICcuL25nLWNoYW5nZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXVlJztcbmV4cG9ydCAqIGZyb20gJy4vc29ydGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZS1ndWFyZHMnO1xuZXhwb3J0ICogZnJvbSAnLi91bnRpbC1kZXN0cm95ZWQnO1xuIl19
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Handles comparison for null values, assuming undefined has already been handled.
3
+ * - `null` is considered less than any defined (non-null, non-undefined) value.
4
+ * @param valA First value.
5
+ * @param valB Second value.
6
+ * @returns Comparison result (-1, 0, 1) or null if both values are non-null.
7
+ */
8
+ function handleNullValues(valA, valB) {
9
+ const aIsNull = valA === null;
10
+ const bIsNull = valB === null;
11
+ if (aIsNull && bIsNull)
12
+ return 0;
13
+ if (aIsNull)
14
+ return -1; // valA is null, valB is not -> valA is "lesser"
15
+ if (bIsNull)
16
+ return 1; // valB is null, valA is not -> valA is "greater"
17
+ return null; // Both are non-null (and non-undefined at this stage of the main sorter)
18
+ }
19
+ function compareNonNullValues(valA, valB, collator) {
20
+ if (typeof valA === 'string' && typeof valB === 'string') {
21
+ return collator.compare(valA, valB);
22
+ }
23
+ else if (typeof valA === 'number' && typeof valB === 'number') {
24
+ return valA - valB;
25
+ }
26
+ else if (typeof valA === 'boolean' && typeof valB === 'boolean') {
27
+ return Number(valA) - Number(valB);
28
+ }
29
+ return collator.compare(String(valA), String(valB));
30
+ }
31
+ /**
32
+ * Creates a comparison function suitable for Array.prototype.sort(),
33
+ * based on the provided sort parameters.
34
+ * Uses Intl.Collator for string comparison.
35
+ * Can sort arrays of objects by an extracted value (via `keyFn`) or arrays of primitives directly.
36
+ *
37
+ * Behavior for `null` and `undefined` values (either direct or returned by `keyFn`):
38
+ * - `undefined` values are **always** sorted to the end of the array, regardless of the sort direction.
39
+ * - `null` values are sorted to the beginning of the array for ASC sort.
40
+ * - For DESC sort, `null` values are sorted to the end of the array, but before any `undefined` values.
41
+ *
42
+ * @template T The type of items in the array.
43
+ * @param options Optional sorting options. If `keyFn` is not provided, items are compared directly.
44
+ * @returns A comparison function `(a: T, b: T) => number`.
45
+ */
46
+ export function createSorter(options) {
47
+ const { keyFn: userProvidedKeyFn, sortDirection = 'asc', locale, collatorOptions } = options || {};
48
+ if (userProvidedKeyFn !== undefined && typeof userProvidedKeyFn !== 'function') {
49
+ console.warn('createSorter: provided keyFn is not a function. Returning a no-op sorter.');
50
+ return () => 0;
51
+ }
52
+ // Default keyFn extracts the item itself, suitable for primitives or if T is the sortable value.
53
+ const keyFn = userProvidedKeyFn ?? ((item) => item);
54
+ const collator = new Intl.Collator(locale, collatorOptions);
55
+ return (itemA, itemB) => {
56
+ const valA = keyFn(itemA);
57
+ const valB = keyFn(itemB);
58
+ const aIsUndefined = valA === undefined;
59
+ const bIsUndefined = valB === undefined;
60
+ if (aIsUndefined && bIsUndefined)
61
+ return 0;
62
+ if (aIsUndefined)
63
+ return 1;
64
+ if (bIsUndefined)
65
+ return -1;
66
+ let comparison = 0;
67
+ const nullComparison = handleNullValues(valA, valB);
68
+ if (nullComparison !== null) {
69
+ comparison = nullComparison;
70
+ }
71
+ else {
72
+ comparison = compareNonNullValues(valA, // valA is known to be not null/undefined here
73
+ valB, // valB is known to be not null/undefined here
74
+ collator);
75
+ }
76
+ return sortDirection === 'desc' ? comparison * -1 : comparison;
77
+ };
78
+ }
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy9zb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JBOzs7Ozs7R0FNRztBQUNILFNBQVMsZ0JBQWdCLENBQUksSUFBTyxFQUFFLElBQU87SUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxLQUFLLElBQUksQ0FBQztJQUM5QixNQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssSUFBSSxDQUFDO0lBRTlCLElBQUksT0FBTyxJQUFJLE9BQU87UUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqQyxJQUFJLE9BQU87UUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0RBQWdEO0lBQ3hFLElBQUksT0FBTztRQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsaURBQWlEO0lBRXhFLE9BQU8sSUFBSSxDQUFDLENBQUMseUVBQXlFO0FBQ3hGLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFJLElBQW9CLEVBQUUsSUFBb0IsRUFBRSxRQUF1QjtJQUNsRyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUN6RCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7U0FBTSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNoRSxPQUFPLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztTQUFNLElBQUksT0FBTyxJQUFJLEtBQUssU0FBUyxJQUFJLE9BQU8sSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2xFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFJLE9BQTBCO0lBQ3hELE1BQU0sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxHQUFHLEtBQUssRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUVuRyxJQUFJLGlCQUFpQixLQUFLLFNBQVMsSUFBSSxPQUFPLGlCQUFpQixLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQy9FLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkVBQTJFLENBQUMsQ0FBQztRQUMxRixPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsaUdBQWlHO0lBQ2pHLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixJQUFJLENBQUMsQ0FBQyxJQUFPLEVBQUUsRUFBRSxDQUFDLElBQStELENBQUMsQ0FBQztJQUNsSCxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBRTVELE9BQU8sQ0FBQyxLQUFRLEVBQUUsS0FBUSxFQUFVLEVBQUU7UUFDcEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixNQUFNLFlBQVksR0FBRyxJQUFJLEtBQUssU0FBUyxDQUFDO1FBQ3hDLE1BQU0sWUFBWSxHQUFHLElBQUksS0FBSyxTQUFTLENBQUM7UUFFeEMsSUFBSSxZQUFZLElBQUksWUFBWTtZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLElBQUksWUFBWTtZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLElBQUksWUFBWTtZQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFNUIsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVwRCxJQUFJLGNBQWMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM1QixVQUFVLEdBQUcsY0FBYyxDQUFDO1FBQzlCLENBQUM7YUFBTSxDQUFDO1lBQ04sVUFBVSxHQUFHLG9CQUFvQixDQUMvQixJQUE4QyxFQUFFLDhDQUE4QztZQUM5RixJQUE4QyxFQUFFLDhDQUE4QztZQUM5RixRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLGFBQWEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ2pFLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgc29ydGVyIGZ1bmN0aW9uLiBDYW4gYmUgdXNlZCBmb3IgYXJyYXlzIG9mIG9iamVjdHMgKHdpdGggYGtleUZuYClcbiAqIG9yIGFycmF5cyBvZiBwcmltaXRpdmVzIChpZiBga2V5Rm5gIGlzIG9taXR0ZWQpLlxuICogQHRlbXBsYXRlIFQgVGhlIHR5cGUgb2YgaXRlbXMgdG8gYmUgc29ydGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRlck9wdGlvbnM8VD4ge1xuICBzb3J0RGlyZWN0aW9uPzogJ2FzYycgfCAnZGVzYyc7XG4gIGxvY2FsZT86IHN0cmluZztcbiAgY29sbGF0b3JPcHRpb25zPzogSW50bC5Db2xsYXRvck9wdGlvbnM7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBmdW5jdGlvbiB0byBleHRyYWN0IHRoZSBzb3J0YWJsZSB2YWx1ZSBmcm9tIGFuIGl0ZW0uXG4gICAqIElmIG5vdCBwcm92aWRlZCwgdGhlIGl0ZW0gaXRzZWxmIGlzIHVzZWQgZm9yIGNvbXBhcmlzb24gKHN1aXRhYmxlIGZvciBhcnJheXMgb2YgcHJpbWl0aXZlcykuXG4gICAqIFRoZSBleHRyYWN0ZWQgdmFsdWUgc2hvdWxkIGJlIGEgc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4sIG51bGwsIG9yIHVuZGVmaW5lZC5cbiAgICogQGRlZmF1bHQgKGl0ZW06IFQpID0+IGl0ZW1cbiAgICovXG4gIGtleUZuPzogKGl0ZW06IFQpID0+IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEhhbmRsZXMgY29tcGFyaXNvbiBmb3IgbnVsbCB2YWx1ZXMsIGFzc3VtaW5nIHVuZGVmaW5lZCBoYXMgYWxyZWFkeSBiZWVuIGhhbmRsZWQuXG4gKiAtIGBudWxsYCBpcyBjb25zaWRlcmVkIGxlc3MgdGhhbiBhbnkgZGVmaW5lZCAobm9uLW51bGwsIG5vbi11bmRlZmluZWQpIHZhbHVlLlxuICogQHBhcmFtIHZhbEEgRmlyc3QgdmFsdWUuXG4gKiBAcGFyYW0gdmFsQiBTZWNvbmQgdmFsdWUuXG4gKiBAcmV0dXJucyBDb21wYXJpc29uIHJlc3VsdCAoLTEsIDAsIDEpIG9yIG51bGwgaWYgYm90aCB2YWx1ZXMgYXJlIG5vbi1udWxsLlxuICovXG5mdW5jdGlvbiBoYW5kbGVOdWxsVmFsdWVzPFY+KHZhbEE6IFYsIHZhbEI6IFYpOiBudW1iZXIgfCBudWxsIHtcbiAgY29uc3QgYUlzTnVsbCA9IHZhbEEgPT09IG51bGw7XG4gIGNvbnN0IGJJc051bGwgPSB2YWxCID09PSBudWxsO1xuXG4gIGlmIChhSXNOdWxsICYmIGJJc051bGwpIHJldHVybiAwO1xuICBpZiAoYUlzTnVsbCkgcmV0dXJuIC0xOyAvLyB2YWxBIGlzIG51bGwsIHZhbEIgaXMgbm90IC0+IHZhbEEgaXMgXCJsZXNzZXJcIlxuICBpZiAoYklzTnVsbCkgcmV0dXJuIDE7IC8vIHZhbEIgaXMgbnVsbCwgdmFsQSBpcyBub3QgLT4gdmFsQSBpcyBcImdyZWF0ZXJcIlxuXG4gIHJldHVybiBudWxsOyAvLyBCb3RoIGFyZSBub24tbnVsbCAoYW5kIG5vbi11bmRlZmluZWQgYXQgdGhpcyBzdGFnZSBvZiB0aGUgbWFpbiBzb3J0ZXIpXG59XG5cbmZ1bmN0aW9uIGNvbXBhcmVOb25OdWxsVmFsdWVzPFY+KHZhbEE6IE5vbk51bGxhYmxlPFY+LCB2YWxCOiBOb25OdWxsYWJsZTxWPiwgY29sbGF0b3I6IEludGwuQ29sbGF0b3IpOiBudW1iZXIge1xuICBpZiAodHlwZW9mIHZhbEEgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWxCID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBjb2xsYXRvci5jb21wYXJlKHZhbEEsIHZhbEIpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWxBID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgdmFsQiA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsQSAtIHZhbEI7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbEEgPT09ICdib29sZWFuJyAmJiB0eXBlb2YgdmFsQiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIE51bWJlcih2YWxBKSAtIE51bWJlcih2YWxCKTtcbiAgfVxuICByZXR1cm4gY29sbGF0b3IuY29tcGFyZShTdHJpbmcodmFsQSksIFN0cmluZyh2YWxCKSk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvbXBhcmlzb24gZnVuY3Rpb24gc3VpdGFibGUgZm9yIEFycmF5LnByb3RvdHlwZS5zb3J0KCksXG4gKiBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgc29ydCBwYXJhbWV0ZXJzLlxuICogVXNlcyBJbnRsLkNvbGxhdG9yIGZvciBzdHJpbmcgY29tcGFyaXNvbi5cbiAqIENhbiBzb3J0IGFycmF5cyBvZiBvYmplY3RzIGJ5IGFuIGV4dHJhY3RlZCB2YWx1ZSAodmlhIGBrZXlGbmApIG9yIGFycmF5cyBvZiBwcmltaXRpdmVzIGRpcmVjdGx5LlxuICpcbiAqIEJlaGF2aW9yIGZvciBgbnVsbGAgYW5kIGB1bmRlZmluZWRgIHZhbHVlcyAoZWl0aGVyIGRpcmVjdCBvciByZXR1cm5lZCBieSBga2V5Rm5gKTpcbiAqIC0gYHVuZGVmaW5lZGAgdmFsdWVzIGFyZSAqKmFsd2F5cyoqIHNvcnRlZCB0byB0aGUgZW5kIG9mIHRoZSBhcnJheSwgcmVnYXJkbGVzcyBvZiB0aGUgc29ydCBkaXJlY3Rpb24uXG4gKiAtIGBudWxsYCB2YWx1ZXMgYXJlIHNvcnRlZCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheSBmb3IgQVNDIHNvcnQuXG4gKiAtIEZvciBERVNDIHNvcnQsIGBudWxsYCB2YWx1ZXMgYXJlIHNvcnRlZCB0byB0aGUgZW5kIG9mIHRoZSBhcnJheSwgYnV0IGJlZm9yZSBhbnkgYHVuZGVmaW5lZGAgdmFsdWVzLlxuICpcbiAqIEB0ZW1wbGF0ZSBUIFRoZSB0eXBlIG9mIGl0ZW1zIGluIHRoZSBhcnJheS5cbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIHNvcnRpbmcgb3B0aW9ucy4gSWYgYGtleUZuYCBpcyBub3QgcHJvdmlkZWQsIGl0ZW1zIGFyZSBjb21wYXJlZCBkaXJlY3RseS5cbiAqIEByZXR1cm5zIEEgY29tcGFyaXNvbiBmdW5jdGlvbiBgKGE6IFQsIGI6IFQpID0+IG51bWJlcmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTb3J0ZXI8VD4ob3B0aW9ucz86IFNvcnRlck9wdGlvbnM8VD4pOiAoYTogVCwgYjogVCkgPT4gbnVtYmVyIHtcbiAgY29uc3QgeyBrZXlGbjogdXNlclByb3ZpZGVkS2V5Rm4sIHNvcnREaXJlY3Rpb24gPSAnYXNjJywgbG9jYWxlLCBjb2xsYXRvck9wdGlvbnMgfSA9IG9wdGlvbnMgfHwge307XG5cbiAgaWYgKHVzZXJQcm92aWRlZEtleUZuICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHVzZXJQcm92aWRlZEtleUZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc29sZS53YXJuKCdjcmVhdGVTb3J0ZXI6IHByb3ZpZGVkIGtleUZuIGlzIG5vdCBhIGZ1bmN0aW9uLiBSZXR1cm5pbmcgYSBuby1vcCBzb3J0ZXIuJyk7XG4gICAgcmV0dXJuICgpID0+IDA7XG4gIH1cblxuICAvLyBEZWZhdWx0IGtleUZuIGV4dHJhY3RzIHRoZSBpdGVtIGl0c2VsZiwgc3VpdGFibGUgZm9yIHByaW1pdGl2ZXMgb3IgaWYgVCBpcyB0aGUgc29ydGFibGUgdmFsdWUuXG4gIGNvbnN0IGtleUZuID0gdXNlclByb3ZpZGVkS2V5Rm4gPz8gKChpdGVtOiBUKSA9PiBpdGVtIGFzIHVua25vd24gYXMgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQpO1xuICBjb25zdCBjb2xsYXRvciA9IG5ldyBJbnRsLkNvbGxhdG9yKGxvY2FsZSwgY29sbGF0b3JPcHRpb25zKTtcblxuICByZXR1cm4gKGl0ZW1BOiBULCBpdGVtQjogVCk6IG51bWJlciA9PiB7XG4gICAgY29uc3QgdmFsQSA9IGtleUZuKGl0ZW1BKTtcbiAgICBjb25zdCB2YWxCID0ga2V5Rm4oaXRlbUIpO1xuXG4gICAgY29uc3QgYUlzVW5kZWZpbmVkID0gdmFsQSA9PT0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGJJc1VuZGVmaW5lZCA9IHZhbEIgPT09IHVuZGVmaW5lZDtcblxuICAgIGlmIChhSXNVbmRlZmluZWQgJiYgYklzVW5kZWZpbmVkKSByZXR1cm4gMDtcbiAgICBpZiAoYUlzVW5kZWZpbmVkKSByZXR1cm4gMTtcbiAgICBpZiAoYklzVW5kZWZpbmVkKSByZXR1cm4gLTE7XG5cbiAgICBsZXQgY29tcGFyaXNvbiA9IDA7XG4gICAgY29uc3QgbnVsbENvbXBhcmlzb24gPSBoYW5kbGVOdWxsVmFsdWVzKHZhbEEsIHZhbEIpO1xuXG4gICAgaWYgKG51bGxDb21wYXJpc29uICE9PSBudWxsKSB7XG4gICAgICBjb21wYXJpc29uID0gbnVsbENvbXBhcmlzb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBhcmlzb24gPSBjb21wYXJlTm9uTnVsbFZhbHVlcyhcbiAgICAgICAgdmFsQSBhcyBOb25OdWxsYWJsZTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPiwgLy8gdmFsQSBpcyBrbm93biB0byBiZSBub3QgbnVsbC91bmRlZmluZWQgaGVyZVxuICAgICAgICB2YWxCIGFzIE5vbk51bGxhYmxlPHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+LCAvLyB2YWxCIGlzIGtub3duIHRvIGJlIG5vdCBudWxsL3VuZGVmaW5lZCBoZXJlXG4gICAgICAgIGNvbGxhdG9yLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc29ydERpcmVjdGlvbiA9PT0gJ2Rlc2MnID8gY29tcGFyaXNvbiAqIC0xIDogY29tcGFyaXNvbjtcbiAgfTtcbn1cbiJdfQ==
@@ -7,7 +7,7 @@ import { CoreModule, WindowRef, DisabledController } from '@odx/angular';
7
7
  import { CSSComponent, fastDeepEqual, CSSModifier } from '@odx/angular/internal';
8
8
  import { createConfigTokens, isString, isPresent, injectElement, hasChanged, EventManager, deferFn, untilDestroyed, isFunction } from '@odx/angular/utils';
9
9
  import { BehaviorSubject, shareReplay, map, filter, distinctUntilChanged, merge, defer, of, withLatestFrom, combineLatest } from 'rxjs';
10
- import { isSameDay, isSameMonth, isSameYear, endOfDay, endOfMonth, endOfYear, startOfDay, startOfMonth, startOfYear, isValid, toDate, isBefore, isEqual, addMonths, subMonths, isWithinInterval, startOfWeek, addDays, endOfWeek, eachMonthOfInterval, addYears, getYear, setYear, subDays, subWeeks, addWeeks, setMonth, getMonth } from 'date-fns';
10
+ import { isSameDay, isSameMonth, isSameYear, endOfDay, endOfMonth, endOfYear, startOfDay, startOfMonth, startOfYear, isValid, toDate, isBefore, isEqual, addMonths, subMonths, isWithinInterval, startOfWeek, addDays, eachMonthOfInterval, addYears, getYear, setYear, subDays, subWeeks, addWeeks, setMonth, getMonth } from 'date-fns';
11
11
  import { ActionGroupComponent } from '@odx/angular/components/action-group';
12
12
  import { ButtonComponent } from '@odx/angular/components/button';
13
13
  import { IconComponent } from '@odx/angular/components/icon';
@@ -706,6 +706,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
706
706
  class CalendarMonthService {
707
707
  constructor() {
708
708
  this.calendar = inject(CalendarService);
709
+ this.weeksInView = 6;
709
710
  this.weekDays$ = this.calendar.activeDate$.pipe(map((date) => this.generateWeekDays(date)));
710
711
  this.weeks$ = this.calendar.activeDate$.pipe(map((date) => this.generateWeeks(date)));
711
712
  }
@@ -715,12 +716,10 @@ class CalendarMonthService {
715
716
  }
716
717
  generateWeeks(date) {
717
718
  const startOfTheSelectedMonth = startOfMonth(date);
718
- const endOfTheSelectedMonth = endOfMonth(date);
719
719
  const startDate = startOfWeek(startOfTheSelectedMonth, { weekStartsOn: 1 });
720
- const endDate = endOfWeek(endOfTheSelectedMonth);
721
720
  const allWeeks = [];
722
721
  let currentDate = startDate;
723
- while (currentDate <= endDate) {
722
+ for (let i = this.weeksInView; i > 0; i--) {
724
723
  allWeeks.push(this.generateDaysForWeek(currentDate, date));
725
724
  currentDate = addDays(currentDate, 7);
726
725
  }