@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 +12 -0
- package/components/calendar/lib/services/calendar-month.service.d.ts +1 -0
- package/components/table/lib/components/header-title/header-title.component.d.ts +3 -4
- package/components/table/lib/models/index.d.ts +0 -1
- package/components/table/lib/models/sort-status.d.ts +1 -2
- package/esm2022/components/calendar/lib/services/calendar-month.service.mjs +4 -5
- package/esm2022/components/table/lib/components/header-title/header-title.component.mjs +20 -19
- package/esm2022/components/table/lib/models/index.mjs +1 -2
- package/esm2022/components/table/lib/models/sort-status.mjs +1 -1
- package/esm2022/utils/lib/helpers/index.mjs +2 -1
- package/esm2022/utils/lib/helpers/sorter.mjs +79 -0
- package/fesm2022/odx-angular-components-calendar.mjs +3 -4
- package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-table.mjs +20 -24
- package/fesm2022/odx-angular-components-table.mjs.map +1 -1
- package/fesm2022/odx-angular-utils.mjs +80 -1
- package/fesm2022/odx-angular-utils.mjs.map +1 -1
- package/package.json +7 -7
- package/utils/lib/helpers/index.d.ts +1 -0
- package/utils/lib/helpers/sorter.d.ts +33 -0
- package/components/table/lib/models/sort-variant.d.ts +0 -6
- package/esm2022/components/table/lib/models/sort-variant.mjs +0 -6
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
|
|
36
|
+
* Returns the icon name for the current sorting status (ascending, descending, unsorted).
|
|
38
37
|
*
|
|
39
|
-
* @returns {
|
|
38
|
+
* @returns {string}
|
|
40
39
|
*/
|
|
41
|
-
get sortIcon():
|
|
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,5 @@
|
|
|
1
1
|
import { inject, Injectable } from '@angular/core';
|
|
2
|
-
import { addDays,
|
|
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
|
-
|
|
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,
|
|
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:
|
|
35
|
+
return { column: this.item?.name, sortVariant: undefined };
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
|
-
* Returns the icon
|
|
38
|
+
* Returns the icon name for the current sorting status (ascending, descending, unsorted).
|
|
39
39
|
*
|
|
40
|
-
* @returns {
|
|
40
|
+
* @returns {string}
|
|
41
41
|
*/
|
|
42
42
|
get sortIcon() {
|
|
43
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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 =
|
|
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
|
|
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
|
|
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,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90YWJsZS9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hlYWRlci1jZWxsJztcbmV4cG9ydCAqIGZyb20gJy4vc29ydC1zdGF0dXMnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1ib2R5LWNlbGwnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS12YXJpYW50JztcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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
|
}
|