ngx-mat-table-multi-sort 18.0.0 → 18.1.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/README.md +19 -1
- package/esm2022/lib/mat-multi-sort-control/mat-multi-sort-control.component.mjs +87 -0
- package/esm2022/lib/mat-multi-sort-table-data-source.mjs +3 -3
- package/esm2022/lib/mat-multi-sort.directive.mjs +89 -10
- package/esm2022/lib/mat-table-column-config/mat-table-column-config.component.mjs +44 -0
- package/esm2022/lib/mat-table-column-config-trigger.directive.mjs +85 -0
- package/esm2022/lib/mat-table-column-config.mjs +11 -0
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/ngx-mat-table-multi-sort.mjs +304 -12
- package/fesm2022/ngx-mat-table-multi-sort.mjs.map +1 -1
- package/lib/mat-multi-sort-control/mat-multi-sort-control.component.d.ts +65 -0
- package/lib/mat-multi-sort.directive.d.ts +39 -1
- package/lib/mat-table-column-config/mat-table-column-config.component.d.ts +22 -0
- package/lib/mat-table-column-config-trigger.directive.d.ts +30 -0
- package/lib/mat-table-column-config.d.ts +20 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
package/README.md
CHANGED
|
@@ -21,7 +21,25 @@ An Angular library that adds multi-sort capability to the Angular Material table
|
|
|
21
21
|
**Prerequisite:** You have created an application using a supported version of Angular and Angular Material
|
|
22
22
|
|
|
23
23
|
1. In your Angular application run `npm install ngx-mat-table-multi-sort` to add the library to your dependencies
|
|
24
|
-
1.
|
|
24
|
+
1. As this library is using Material, add the following to the `head` element of your `index.html`:
|
|
25
|
+
|
|
26
|
+
```html
|
|
27
|
+
<link
|
|
28
|
+
href="https://fonts.googleapis.com/icon?family=Material+Icons"
|
|
29
|
+
rel="stylesheet" />
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Alternatively, you can also add the following to your `angular.json`:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
"styles": [
|
|
36
|
+
...
|
|
37
|
+
"https://fonts.googleapis.com/icon?family=Material+Icons",
|
|
38
|
+
...
|
|
39
|
+
]
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
3. In the template, replace the `matSort` directive with the `matMultiSort` directive.
|
|
25
43
|
1. Also replace the `mat-sort-header` directive with the `mat-multi-sort-header` directive in the column definitions.
|
|
26
44
|
1. In the component definition use `MatMultiSortTableDataSource<T>` as your datasource type instead of `MatTableDataSource<T>`.
|
|
27
45
|
1. Also change the type of the sorter from `MatSort` to `MatMultiSortDirective`
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { CdkDrag, CdkDropList, } from "@angular/cdk/drag-drop";
|
|
2
|
+
import { ANIMATION_MODULE_TYPE, Component, inject, Input } from "@angular/core";
|
|
3
|
+
import { MatChipsModule } from "@angular/material/chips";
|
|
4
|
+
import { MatIconModule } from "@angular/material/icon";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/chips";
|
|
7
|
+
import * as i2 from "@angular/material/icon";
|
|
8
|
+
export class MatMultiSortControlComponent {
|
|
9
|
+
/**
|
|
10
|
+
* Injects the ANIMATION_MODULE_TYPE token, which indicates the type of animation module being used.
|
|
11
|
+
* This is an optional dependency and may be undefined if the animation module is not provided.
|
|
12
|
+
*
|
|
13
|
+
* @readonly
|
|
14
|
+
* @type {ANIMATION_MODULE_TYPE | undefined}
|
|
15
|
+
*/
|
|
16
|
+
_animationModule = inject(ANIMATION_MODULE_TYPE, { optional: true });
|
|
17
|
+
/**
|
|
18
|
+
* Specifies the orientation of the drop list.
|
|
19
|
+
* Can be either "horizontal" or "vertical".
|
|
20
|
+
*
|
|
21
|
+
* @type {DropListOrientation}
|
|
22
|
+
* @default "horizontal"
|
|
23
|
+
*/
|
|
24
|
+
orientation = "horizontal";
|
|
25
|
+
/**
|
|
26
|
+
* An optional input property that accepts an instance of `MatMultiSortDirective`.
|
|
27
|
+
* This directive is used to control the sorting behavior of the table.
|
|
28
|
+
*/
|
|
29
|
+
sort;
|
|
30
|
+
/**
|
|
31
|
+
* Retrieves the array of Sort objects from the current sort instance.
|
|
32
|
+
* If the sort instance is not defined, it returns an empty array.
|
|
33
|
+
*
|
|
34
|
+
* @returns {Sort[]} An array of Sort objects or an empty array if no sorts are defined.
|
|
35
|
+
*/
|
|
36
|
+
get sorts() {
|
|
37
|
+
return this.sort?._sorts() || [];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Handles the click event on a sort chip.
|
|
41
|
+
* Toggles the sort direction for the given sort ID.
|
|
42
|
+
*
|
|
43
|
+
* @param id - The identifier of the sort field to toggle.
|
|
44
|
+
* @returns void
|
|
45
|
+
*/
|
|
46
|
+
onChipClick(id) {
|
|
47
|
+
this.sort?.toggleSortDirection(id);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Handles the event when a sort chip is removed.
|
|
51
|
+
*
|
|
52
|
+
* @param id - The identifier of the sort level to be removed.
|
|
53
|
+
* @returns void
|
|
54
|
+
*/
|
|
55
|
+
onChipRemoved(id) {
|
|
56
|
+
this.sort?.removeSortLevel(id);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Clears the current sorting applied to the table.
|
|
60
|
+
*
|
|
61
|
+
* @param id - The identifier of the sort level to be removed.
|
|
62
|
+
* @returns void
|
|
63
|
+
*/
|
|
64
|
+
onClearClick() {
|
|
65
|
+
this.sort?.clearSorting();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Handles the drop event for drag-and-drop sorting.
|
|
69
|
+
* Reorders the sort levels based on the previous and current indices.
|
|
70
|
+
*
|
|
71
|
+
* @param event - The drag-and-drop event containing the previous and current indices of the sort order.
|
|
72
|
+
*/
|
|
73
|
+
onDrop(event) {
|
|
74
|
+
this.sort?.reorderSortLevel(event.previousIndex, event.currentIndex);
|
|
75
|
+
}
|
|
76
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatMultiSortControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MatMultiSortControlComponent, isStandalone: true, selector: "mat-multi-sort-control", inputs: { orientation: "orientation", sort: "sort" }, ngImport: i0, template: "<mat-chip-listbox\n cdkDropList\n [cdkDropListOrientation]=\"orientation\"\n (cdkDropListDropped)=\"onDrop($event)\">\n <mat-chip\n [disabled]=\"!sorts.length\"\n [highlighted]=\"true\"\n (click)=\"onClearClick()\"\n ><mat-icon matChipAvatar fontIcon=\"clear_all\"></mat-icon>Clear All</mat-chip\n >\n @for (column of sorts; track $index) {\n <mat-chip\n class=\"mat-sort-header\"\n cdkDrag\n (click)=\"onChipClick(column.active)\"\n (removed)=\"onChipRemoved(column.active)\">\n <div\n matChipAvatar\n class=\"mat-sort-header-container mat-sort-header-sorted mat-focus-indicator\"\n [class.mat-sort-header-descending]=\"column.direction === 'desc'\"\n [class.mat-sort-header-ascending]=\"column.direction === 'asc'\"\n [class.mat-sort-header-animations-disabled]=\"\n _animationModule === 'NoopAnimations'\n \">\n <div class=\"mat-sort-header-arrow\">\n <svg viewBox=\"0 -960 960 960\" focusable=\"false\" aria-hidden=\"true\">\n <path\n d=\"M440-240v-368L296-464l-56-56 240-240 240 240-56 56-144-144v368h-80Z\" />\n </svg>\n </div>\n </div>\n {{ column.active }}\n <button matChipRemove>\n <mat-icon>clear</mat-icon>\n </button>\n </mat-chip>\n }\n</mat-chip-listbox>\n", styles: [".cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .15s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;overflow:hidden}.mat-mdc-chip-listbox.mat-mdc-chip-set.cdk-drop-list .cdk-drop-list-dragging{transition:transform .15s cubic-bezier(0,0,.2,1)}.mat-mdc-chip.mat-sort-header{background-color:var(--mat-sys-surface, #ffffff);transition:background-color .1s cubic-bezier(0,0,.2,1),box-shadow .1s cubic-bezier(0,0,.2,1)}.mat-mdc-chip.mat-sort-header:hover{cursor:move}.mat-mdc-chip.mat-sort-header:hover:after{opacity:0}.mat-mdc-chip.mat-sort-header:focus:after{opacity:0}.mat-mdc-chip.mat-sort-header:active{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.mat-sort-header-content{display:flex;align-items:center}.mat-sort-header-position-before{flex-direction:row-reverse}@keyframes _mat-sort-header-recently-cleared-ascending{0%{transform:translateY(0);opacity:1}to{transform:translateY(-25%);opacity:0}}@keyframes _mat-sort-header-recently-cleared-descending{0%{transform:translateY(0) rotate(180deg);opacity:1}to{transform:translateY(25%) rotate(180deg);opacity:0}}.mat-sort-header-arrow{height:12px;width:12px;position:relative;transition:transform 225ms cubic-bezier(.4,0,.2,1),opacity 225ms cubic-bezier(.4,0,.2,1);opacity:0;overflow:visible;color:var(--mat-sort-arrow-color, var(--mat-app-on-surface))}.mat-sort-header.cdk-keyboard-focused .mat-sort-header-arrow,.mat-sort-header.cdk-program-focused .mat-sort-header-arrow,.mat-sort-header:hover .mat-sort-header-arrow{opacity:.54}.mat-sort-header .mat-sort-header-sorted .mat-sort-header-arrow{opacity:1}.mat-sort-header-descending .mat-sort-header-arrow{transform:rotate(180deg)}.mat-sort-header-recently-cleared-ascending .mat-sort-header-arrow{transform:translateY(-25%);transition:none;animation:_mat-sort-header-recently-cleared-ascending 225ms cubic-bezier(.4,0,.2,1) forwards}.mat-sort-header-recently-cleared-descending .mat-sort-header-arrow{transition:none;animation:_mat-sort-header-recently-cleared-descending 225ms cubic-bezier(.4,0,.2,1) forwards}.mat-sort-header-animations-disabled .mat-sort-header-arrow{transition-duration:0ms;animation-duration:0ms}.mat-sort-header-arrow svg{width:24px;height:24px;fill:currentColor;position:absolute;top:50%;left:50%;margin:-12px 0 0 -12px;transform:translateZ(0)}.mat-sort-header-arrow,[dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow{margin:0 0 0 6px}.mat-sort-header-position-before .mat-sort-header-arrow,[dir=rtl] .mat-sort-header-arrow{margin:0 6px 0 0}.cdk-drop-list-dragging .mat-sort-header:not(.cdk-drag-placeholder){background-color:var(--mat-sys-surface-dim, #ffffff);transition:transform .15s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i1.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: i1.MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "component", type: i1.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "directive", type: i1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
78
|
+
}
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatMultiSortControlComponent, decorators: [{
|
|
80
|
+
type: Component,
|
|
81
|
+
args: [{ selector: "mat-multi-sort-control", imports: [CdkDropList, CdkDrag, MatChipsModule, MatIconModule], standalone: true, template: "<mat-chip-listbox\n cdkDropList\n [cdkDropListOrientation]=\"orientation\"\n (cdkDropListDropped)=\"onDrop($event)\">\n <mat-chip\n [disabled]=\"!sorts.length\"\n [highlighted]=\"true\"\n (click)=\"onClearClick()\"\n ><mat-icon matChipAvatar fontIcon=\"clear_all\"></mat-icon>Clear All</mat-chip\n >\n @for (column of sorts; track $index) {\n <mat-chip\n class=\"mat-sort-header\"\n cdkDrag\n (click)=\"onChipClick(column.active)\"\n (removed)=\"onChipRemoved(column.active)\">\n <div\n matChipAvatar\n class=\"mat-sort-header-container mat-sort-header-sorted mat-focus-indicator\"\n [class.mat-sort-header-descending]=\"column.direction === 'desc'\"\n [class.mat-sort-header-ascending]=\"column.direction === 'asc'\"\n [class.mat-sort-header-animations-disabled]=\"\n _animationModule === 'NoopAnimations'\n \">\n <div class=\"mat-sort-header-arrow\">\n <svg viewBox=\"0 -960 960 960\" focusable=\"false\" aria-hidden=\"true\">\n <path\n d=\"M440-240v-368L296-464l-56-56 240-240 240 240-56 56-144-144v368h-80Z\" />\n </svg>\n </div>\n </div>\n {{ column.active }}\n <button matChipRemove>\n <mat-icon>clear</mat-icon>\n </button>\n </mat-chip>\n }\n</mat-chip-listbox>\n", styles: [".cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .15s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;overflow:hidden}.mat-mdc-chip-listbox.mat-mdc-chip-set.cdk-drop-list .cdk-drop-list-dragging{transition:transform .15s cubic-bezier(0,0,.2,1)}.mat-mdc-chip.mat-sort-header{background-color:var(--mat-sys-surface, #ffffff);transition:background-color .1s cubic-bezier(0,0,.2,1),box-shadow .1s cubic-bezier(0,0,.2,1)}.mat-mdc-chip.mat-sort-header:hover{cursor:move}.mat-mdc-chip.mat-sort-header:hover:after{opacity:0}.mat-mdc-chip.mat-sort-header:focus:after{opacity:0}.mat-mdc-chip.mat-sort-header:active{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.mat-sort-header-content{display:flex;align-items:center}.mat-sort-header-position-before{flex-direction:row-reverse}@keyframes _mat-sort-header-recently-cleared-ascending{0%{transform:translateY(0);opacity:1}to{transform:translateY(-25%);opacity:0}}@keyframes _mat-sort-header-recently-cleared-descending{0%{transform:translateY(0) rotate(180deg);opacity:1}to{transform:translateY(25%) rotate(180deg);opacity:0}}.mat-sort-header-arrow{height:12px;width:12px;position:relative;transition:transform 225ms cubic-bezier(.4,0,.2,1),opacity 225ms cubic-bezier(.4,0,.2,1);opacity:0;overflow:visible;color:var(--mat-sort-arrow-color, var(--mat-app-on-surface))}.mat-sort-header.cdk-keyboard-focused .mat-sort-header-arrow,.mat-sort-header.cdk-program-focused .mat-sort-header-arrow,.mat-sort-header:hover .mat-sort-header-arrow{opacity:.54}.mat-sort-header .mat-sort-header-sorted .mat-sort-header-arrow{opacity:1}.mat-sort-header-descending .mat-sort-header-arrow{transform:rotate(180deg)}.mat-sort-header-recently-cleared-ascending .mat-sort-header-arrow{transform:translateY(-25%);transition:none;animation:_mat-sort-header-recently-cleared-ascending 225ms cubic-bezier(.4,0,.2,1) forwards}.mat-sort-header-recently-cleared-descending .mat-sort-header-arrow{transition:none;animation:_mat-sort-header-recently-cleared-descending 225ms cubic-bezier(.4,0,.2,1) forwards}.mat-sort-header-animations-disabled .mat-sort-header-arrow{transition-duration:0ms;animation-duration:0ms}.mat-sort-header-arrow svg{width:24px;height:24px;fill:currentColor;position:absolute;top:50%;left:50%;margin:-12px 0 0 -12px;transform:translateZ(0)}.mat-sort-header-arrow,[dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow{margin:0 0 0 6px}.mat-sort-header-position-before .mat-sort-header-arrow,[dir=rtl] .mat-sort-header-arrow{margin:0 6px 0 0}.cdk-drop-list-dragging .mat-sort-header:not(.cdk-drag-placeholder){background-color:var(--mat-sys-surface-dim, #ffffff);transition:transform .15s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
82
|
+
}], propDecorators: { orientation: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], sort: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}] } });
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LW11bHRpLXNvcnQtY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21hdC1tdWx0aS1zb3J0LWNvbnRyb2wvbWF0LW11bHRpLXNvcnQtY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21hdC1tdWx0aS1zb3J0LWNvbnRyb2wvbWF0LW11bHRpLXNvcnQtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsT0FBTyxFQUVQLFdBQVcsR0FFWixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBV3ZELE1BQU0sT0FBTyw0QkFBNEI7SUFDdkM7Ozs7OztPQU1HO0lBQ00sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFOUU7Ozs7OztPQU1HO0lBQ00sV0FBVyxHQUF3QixZQUFZLENBQUM7SUFFekQ7OztPQUdHO0lBQ00sSUFBSSxDQUF5QjtJQUV0Qzs7Ozs7T0FLRztJQUNILElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLEVBQVU7UUFDdEIsSUFBSSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLEtBQTBCO1FBQy9CLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkUsQ0FBQzt3R0ExRVUsNEJBQTRCOzRGQUE1Qiw0QkFBNEIsd0lDbkJ6Qyw2MENBc0NBLHV6RkR4QlksV0FBVyw4ZkFBRSxPQUFPLHVjQUFFLGNBQWMsa3RCQUFFLGFBQWE7OzRGQUtsRCw0QkFBNEI7a0JBUHhDLFNBQVM7K0JBQ0Usd0JBQXdCLFdBQ3pCLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDLGNBR2xELElBQUk7OEJBbUJQLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2RrRHJhZyxcbiAgQ2RrRHJhZ0Ryb3AsXG4gIENka0Ryb3BMaXN0LFxuICBEcm9wTGlzdE9yaWVudGF0aW9uLFxufSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xuaW1wb3J0IHsgQU5JTUFUSU9OX01PRFVMRV9UWVBFLCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHNcIjtcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgU29ydCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zb3J0XCI7XG5pbXBvcnQgeyBNYXRNdWx0aVNvcnREaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vcHVibGljLWFwaVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWF0LW11bHRpLXNvcnQtY29udHJvbFwiLFxuICBpbXBvcnRzOiBbQ2RrRHJvcExpc3QsIENka0RyYWcsIE1hdENoaXBzTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9tYXQtbXVsdGktc29ydC1jb250cm9sLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsOiBcIi4vbWF0LW11bHRpLXNvcnQtY29udHJvbC5jb21wb25lbnQuc2Nzc1wiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBNYXRNdWx0aVNvcnRDb250cm9sQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIEluamVjdHMgdGhlIEFOSU1BVElPTl9NT0RVTEVfVFlQRSB0b2tlbiwgd2hpY2ggaW5kaWNhdGVzIHRoZSB0eXBlIG9mIGFuaW1hdGlvbiBtb2R1bGUgYmVpbmcgdXNlZC5cbiAgICogVGhpcyBpcyBhbiBvcHRpb25hbCBkZXBlbmRlbmN5IGFuZCBtYXkgYmUgdW5kZWZpbmVkIGlmIHRoZSBhbmltYXRpb24gbW9kdWxlIGlzIG5vdCBwcm92aWRlZC5cbiAgICpcbiAgICogQHJlYWRvbmx5XG4gICAqIEB0eXBlIHtBTklNQVRJT05fTU9EVUxFX1RZUEUgfCB1bmRlZmluZWR9XG4gICAqL1xuICByZWFkb25seSBfYW5pbWF0aW9uTW9kdWxlID0gaW5qZWN0KEFOSU1BVElPTl9NT0RVTEVfVFlQRSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgZHJvcCBsaXN0LlxuICAgKiBDYW4gYmUgZWl0aGVyIFwiaG9yaXpvbnRhbFwiIG9yIFwidmVydGljYWxcIi5cbiAgICpcbiAgICogQHR5cGUge0Ryb3BMaXN0T3JpZW50YXRpb259XG4gICAqIEBkZWZhdWx0IFwiaG9yaXpvbnRhbFwiXG4gICAqL1xuICBASW5wdXQoKSBvcmllbnRhdGlvbjogRHJvcExpc3RPcmllbnRhdGlvbiA9IFwiaG9yaXpvbnRhbFwiO1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBpbnB1dCBwcm9wZXJ0eSB0aGF0IGFjY2VwdHMgYW4gaW5zdGFuY2Ugb2YgYE1hdE11bHRpU29ydERpcmVjdGl2ZWAuXG4gICAqIFRoaXMgZGlyZWN0aXZlIGlzIHVzZWQgdG8gY29udHJvbCB0aGUgc29ydGluZyBiZWhhdmlvciBvZiB0aGUgdGFibGUuXG4gICAqL1xuICBASW5wdXQoKSBzb3J0PzogTWF0TXVsdGlTb3J0RGlyZWN0aXZlO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGFycmF5IG9mIFNvcnQgb2JqZWN0cyBmcm9tIHRoZSBjdXJyZW50IHNvcnQgaW5zdGFuY2UuXG4gICAqIElmIHRoZSBzb3J0IGluc3RhbmNlIGlzIG5vdCBkZWZpbmVkLCBpdCByZXR1cm5zIGFuIGVtcHR5IGFycmF5LlxuICAgKlxuICAgKiBAcmV0dXJucyB7U29ydFtdfSBBbiBhcnJheSBvZiBTb3J0IG9iamVjdHMgb3IgYW4gZW1wdHkgYXJyYXkgaWYgbm8gc29ydHMgYXJlIGRlZmluZWQuXG4gICAqL1xuICBnZXQgc29ydHMoKTogU29ydFtdIHtcbiAgICByZXR1cm4gdGhpcy5zb3J0Py5fc29ydHMoKSB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBjbGljayBldmVudCBvbiBhIHNvcnQgY2hpcC5cbiAgICogVG9nZ2xlcyB0aGUgc29ydCBkaXJlY3Rpb24gZm9yIHRoZSBnaXZlbiBzb3J0IElELlxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgc29ydCBmaWVsZCB0byB0b2dnbGUuXG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIG9uQ2hpcENsaWNrKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnQ/LnRvZ2dsZVNvcnREaXJlY3Rpb24oaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGV2ZW50IHdoZW4gYSBzb3J0IGNoaXAgaXMgcmVtb3ZlZC5cbiAgICpcbiAgICogQHBhcmFtIGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIHNvcnQgbGV2ZWwgdG8gYmUgcmVtb3ZlZC5cbiAgICogQHJldHVybnMgdm9pZFxuICAgKi9cbiAgb25DaGlwUmVtb3ZlZChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0Py5yZW1vdmVTb3J0TGV2ZWwoaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgY3VycmVudCBzb3J0aW5nIGFwcGxpZWQgdG8gdGhlIHRhYmxlLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgc29ydCBsZXZlbCB0byBiZSByZW1vdmVkLlxuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICBvbkNsZWFyQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0Py5jbGVhclNvcnRpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBkcm9wIGV2ZW50IGZvciBkcmFnLWFuZC1kcm9wIHNvcnRpbmcuXG4gICAqIFJlb3JkZXJzIHRoZSBzb3J0IGxldmVscyBiYXNlZCBvbiB0aGUgcHJldmlvdXMgYW5kIGN1cnJlbnQgaW5kaWNlcy5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGRyYWctYW5kLWRyb3AgZXZlbnQgY29udGFpbmluZyB0aGUgcHJldmlvdXMgYW5kIGN1cnJlbnQgaW5kaWNlcyBvZiB0aGUgc29ydCBvcmRlci5cbiAgICovXG4gIG9uRHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8U29ydFtdPik6IHZvaWQge1xuICAgIHRoaXMuc29ydD8ucmVvcmRlclNvcnRMZXZlbChldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICB9XG59XG4iLCI8bWF0LWNoaXAtbGlzdGJveFxuICBjZGtEcm9wTGlzdFxuICBbY2RrRHJvcExpc3RPcmllbnRhdGlvbl09XCJvcmllbnRhdGlvblwiXG4gIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25Ecm9wKCRldmVudClcIj5cbiAgPG1hdC1jaGlwXG4gICAgW2Rpc2FibGVkXT1cIiFzb3J0cy5sZW5ndGhcIlxuICAgIFtoaWdobGlnaHRlZF09XCJ0cnVlXCJcbiAgICAoY2xpY2spPVwib25DbGVhckNsaWNrKClcIlxuICAgID48bWF0LWljb24gbWF0Q2hpcEF2YXRhciBmb250SWNvbj1cImNsZWFyX2FsbFwiPjwvbWF0LWljb24+Q2xlYXIgQWxsPC9tYXQtY2hpcFxuICA+XG4gIEBmb3IgKGNvbHVtbiBvZiBzb3J0czsgdHJhY2sgJGluZGV4KSB7XG4gICAgPG1hdC1jaGlwXG4gICAgICBjbGFzcz1cIm1hdC1zb3J0LWhlYWRlclwiXG4gICAgICBjZGtEcmFnXG4gICAgICAoY2xpY2spPVwib25DaGlwQ2xpY2soY29sdW1uLmFjdGl2ZSlcIlxuICAgICAgKHJlbW92ZWQpPVwib25DaGlwUmVtb3ZlZChjb2x1bW4uYWN0aXZlKVwiPlxuICAgICAgPGRpdlxuICAgICAgICBtYXRDaGlwQXZhdGFyXG4gICAgICAgIGNsYXNzPVwibWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lciBtYXQtc29ydC1oZWFkZXItc29ydGVkIG1hdC1mb2N1cy1pbmRpY2F0b3JcIlxuICAgICAgICBbY2xhc3MubWF0LXNvcnQtaGVhZGVyLWRlc2NlbmRpbmddPVwiY29sdW1uLmRpcmVjdGlvbiA9PT0gJ2Rlc2MnXCJcbiAgICAgICAgW2NsYXNzLm1hdC1zb3J0LWhlYWRlci1hc2NlbmRpbmddPVwiY29sdW1uLmRpcmVjdGlvbiA9PT0gJ2FzYydcIlxuICAgICAgICBbY2xhc3MubWF0LXNvcnQtaGVhZGVyLWFuaW1hdGlvbnMtZGlzYWJsZWRdPVwiXG4gICAgICAgICAgX2FuaW1hdGlvbk1vZHVsZSA9PT0gJ05vb3BBbmltYXRpb25zJ1xuICAgICAgICBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1zb3J0LWhlYWRlci1hcnJvd1wiPlxuICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCIgZm9jdXNhYmxlPVwiZmFsc2VcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNNDQwLTI0MHYtMzY4TDI5Ni00NjRsLTU2LTU2IDI0MC0yNDAgMjQwIDI0MC01NiA1Ni0xNDQtMTQ0djM2OGgtODBaXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIHt7IGNvbHVtbi5hY3RpdmUgfX1cbiAgICAgIDxidXR0b24gbWF0Q2hpcFJlbW92ZT5cbiAgICAgICAgPG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWNoaXA+XG4gIH1cbjwvbWF0LWNoaXAtbGlzdGJveD5cbiJdfQ==
|
|
@@ -59,10 +59,10 @@ export class MatMultiSortTableDataSource extends MatTableDataSource {
|
|
|
59
59
|
}
|
|
60
60
|
sortDataFunction(data) {
|
|
61
61
|
// Return the data if there is no sort
|
|
62
|
-
if (!this.sort?._sorts.length)
|
|
62
|
+
if (!this.sort?._sorts().length)
|
|
63
63
|
return data;
|
|
64
64
|
// Sort the data:
|
|
65
|
-
return data.sort((a, b) => MultiCriterionSort(a, b, this.sort._sorts));
|
|
65
|
+
return data.sort((a, b) => MultiCriterionSort(a, b, this.sort._sorts()));
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LW11bHRpLXNvcnQtdGFibGUtZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21hdC1tdWx0aS1zb3J0LXRhYmxlLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzdEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUksQ0FBSSxFQUFFLENBQUksRUFBRSxLQUFhO0lBQzdELEtBQUssTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBaUIsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFpQixDQUFDLENBQUM7UUFFcEMsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVqRCxJQUFJLFVBQVUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQixPQUFPLFNBQVMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDekQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBQyxDQUFDLHdEQUF3RDtBQUNwRSxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUksTUFBUyxFQUFFLE1BQVM7SUFDNUMsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJO1FBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0MsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJO1FBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoRCxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUk7UUFBRSxPQUFPLENBQUMsQ0FBQztJQUUvQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3RCxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksTUFBTSxHQUFHLE1BQU07UUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5QixJQUFJLE1BQU0sR0FBRyxNQUFNO1FBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMvQixPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLDJCQUdYLFNBQVEsa0JBQXdCO0lBQ2hDLElBQWEsSUFBSTtRQUNmLE9BQU8sS0FBSyxDQUFDLElBQTZCLENBQUM7SUFDN0MsQ0FBQztJQUNELElBQWEsSUFBSSxDQUFDLElBQWtDO1FBQ2xELEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxZQUFZLFdBQWlCO1FBQzNCLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksRUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFTO1FBQ2hDLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFN0MsaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvclwiO1xuaW1wb3J0IHsgU29ydCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zb3J0XCI7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcbmltcG9ydCB7IE1hdE11bHRpU29ydERpcmVjdGl2ZSB9IGZyb20gXCIuL21hdC1tdWx0aS1zb3J0LmRpcmVjdGl2ZVwiO1xuXG4vKipcbiAqIFNvcnRzIHR3byBpdGVtcyBiYXNlZCBvbiBtdWx0aXBsZSBzb3J0aW5nIGNyaXRlcmlhLlxuICpcbiAqIEBkZXNjcmlwdGlvbiBUbyBkbyB0aGlzLCB3ZSBpdGVyYXRlIG92ZXIgZWFjaCBzb3J0IGxldmVsIGFuZCBjb21wYXJlIHRoZSB2YWx1ZXMgb2YgdGhlIGFjdGl2ZSBjb2x1bW4uIElmIHRoZSB2YWx1ZXMgYXJlIGVxdWFsLCB3ZSBtb3ZlIHRvIHRoZSBuZXh0IHNvcnQgbGV2ZWwuIElmIGFsbCBzb3J0IGxldmVscyBhcmUgZXF1YWwsIHdlIHJldHVybiAwLlxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIGl0ZW1zIGJlaW5nIHNvcnRlZC5cbiAqIEBwYXJhbSB7VH0gYSAtIFRoZSBmaXJzdCBpdGVtIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge1R9IGIgLSBUaGUgc2Vjb25kIGl0ZW0gdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7U29ydFtdfSBzb3J0cyAtIEFuIGFycmF5IG9mIHNvcnRpbmcgY3JpdGVyaWEsIHdoZXJlIGVhY2ggY3JpdGVyaW9uIHNwZWNpZmllcyB0aGUgcHJvcGVydHkgdG8gc29ydCBieSBhbmQgdGhlIGRpcmVjdGlvbiBvZiBzb3J0aW5nLlxuICogQHJldHVybnMge251bWJlcn0gLSBBIG5lZ2F0aXZlIG51bWJlciBpZiBgYWAgc2hvdWxkIGNvbWUgYmVmb3JlIGBiYCwgYSBwb3NpdGl2ZSBudW1iZXIgaWYgYGFgIHNob3VsZCBjb21lIGFmdGVyIGBiYCwgb3IgMCBpZiB0aGV5IGFyZSBjb25zaWRlcmVkIGVxdWFsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gTXVsdGlDcml0ZXJpb25Tb3J0PFQ+KGE6IFQsIGI6IFQsIHNvcnRzOiBTb3J0W10pOiBudW1iZXIge1xuICBmb3IgKGNvbnN0IHsgYWN0aXZlLCBkaXJlY3Rpb24gfSBvZiBzb3J0cykge1xuICAgIGNvbnN0IGFWYWx1ZSA9IGFbYWN0aXZlIGFzIGtleW9mIFRdO1xuICAgIGNvbnN0IGJWYWx1ZSA9IGJbYWN0aXZlIGFzIGtleW9mIFRdO1xuXG4gICAgY29uc3QgY29tcGFyaXNvbiA9IGNvbXBhcmVWYWx1ZXMoYVZhbHVlLCBiVmFsdWUpO1xuXG4gICAgaWYgKGNvbXBhcmlzb24gIT09IDApIHtcbiAgICAgIHJldHVybiBkaXJlY3Rpb24gPT09IFwiZGVzY1wiID8gLWNvbXBhcmlzb24gOiBjb21wYXJpc29uO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAwOyAvLyBJZiBhbGwgY29tcGFyaXNvbnMgYXJlIGVxdWFsLCBwcmVzZXJ2ZSBvcmlnaW5hbCBvcmRlclxufVxuXG5mdW5jdGlvbiBjb21wYXJlVmFsdWVzPFQ+KGFWYWx1ZTogVCwgYlZhbHVlOiBUKTogbnVtYmVyIHtcbiAgaWYgKGFWYWx1ZSA9PSBudWxsICYmIGJWYWx1ZSAhPSBudWxsKSByZXR1cm4gMTtcbiAgaWYgKGFWYWx1ZSAhPSBudWxsICYmIGJWYWx1ZSA9PSBudWxsKSByZXR1cm4gLTE7XG4gIGlmIChhVmFsdWUgPT0gbnVsbCAmJiBiVmFsdWUgPT0gbnVsbCkgcmV0dXJuIDA7XG5cbiAgaWYgKHR5cGVvZiBhVmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGJWYWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBhVmFsdWUubG9jYWxlQ29tcGFyZShiVmFsdWUpO1xuICB9XG5cbiAgaWYgKGFWYWx1ZSA+IGJWYWx1ZSkgcmV0dXJuIDE7XG4gIGlmIChhVmFsdWUgPCBiVmFsdWUpIHJldHVybiAtMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8qKlxuICogQSBkYXRhIHNvdXJjZSBjbGFzcyB0aGF0IGV4dGVuZHMgYE1hdFRhYmxlRGF0YVNvdXJjZWAgdG8gc3VwcG9ydCBtdWx0aS1jb2x1bW4gc29ydGluZy5cbiAqXG4gKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiBkYXRhIHRoYXQgdGhlIHRhYmxlIGRpc3BsYXlzLlxuICogQHRlbXBsYXRlIFAgVGhlIHR5cGUgb2YgcGFnaW5hdG9yIHVzZWQsIGRlZmF1bHRzIHRvIGBNYXRQYWdpbmF0b3JgLlxuICpcbiAqIEBleHRlbmRzIE1hdFRhYmxlRGF0YVNvdXJjZTxULCBQPlxuICovXG5leHBvcnQgY2xhc3MgTWF0TXVsdGlTb3J0VGFibGVEYXRhU291cmNlPFxuICBULFxuICBQIGV4dGVuZHMgTWF0UGFnaW5hdG9yID0gTWF0UGFnaW5hdG9yLFxuPiBleHRlbmRzIE1hdFRhYmxlRGF0YVNvdXJjZTxULCBQPiB7XG4gIG92ZXJyaWRlIGdldCBzb3J0KCk6IE1hdE11bHRpU29ydERpcmVjdGl2ZSB8IG51bGwge1xuICAgIHJldHVybiBzdXBlci5zb3J0IGFzIE1hdE11bHRpU29ydERpcmVjdGl2ZTtcbiAgfVxuICBvdmVycmlkZSBzZXQgc29ydChzb3J0OiBNYXRNdWx0aVNvcnREaXJlY3RpdmUgfCBudWxsKSB7XG4gICAgc3VwZXIuc29ydCA9IHNvcnQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihpbml0aWFsRGF0YT86IFRbXSkge1xuICAgIHN1cGVyKGluaXRpYWxEYXRhKTtcbiAgICAvLyBTZXQgdGhlIGRlZmF1bHQgc29ydCBmdW5jdGlvblxuICAgIHRoaXMuc29ydERhdGEgPSAoZGF0YSk6IFRbXSA9PiB0aGlzLnNvcnREYXRhRnVuY3Rpb24oZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIHNvcnREYXRhRnVuY3Rpb24oZGF0YTogVFtdKTogVFtdIHtcbiAgICAvLyBSZXR1cm4gdGhlIGRhdGEgaWYgdGhlcmUgaXMgbm8gc29ydFxuICAgIGlmICghdGhpcy5zb3J0Py5fc29ydHMoKS5sZW5ndGgpIHJldHVybiBkYXRhO1xuXG4gICAgLy8gU29ydCB0aGUgZGF0YTpcbiAgICByZXR1cm4gZGF0YS5zb3J0KChhLCBiKSA9PiBNdWx0aUNyaXRlcmlvblNvcnQoYSwgYiwgdGhpcy5zb3J0IS5fc29ydHMoKSkpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,28 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { moveItemInArray } from "@angular/cdk/drag-drop";
|
|
2
|
+
import { Directive, effect, signal } from "@angular/core";
|
|
2
3
|
import { MatSort, } from "@angular/material/sort";
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export class MatMultiSortDirective extends MatSort {
|
|
5
|
-
|
|
6
|
+
/**
|
|
7
|
+
* A writable signal that holds an array of Sort objects.
|
|
8
|
+
* This signal is used to manage the sorting state of the table.
|
|
9
|
+
*
|
|
10
|
+
* @readonly
|
|
11
|
+
*/
|
|
12
|
+
_sorts = signal([]);
|
|
13
|
+
constructor() {
|
|
14
|
+
super();
|
|
15
|
+
/* We are using an effect to emit the sortChange event whenever the _sorts signal changes.
|
|
16
|
+
* This is necessary because the sortChange event is not emitted when the _sorts signal is updated directly (e.g., this._sorts.set([])).
|
|
17
|
+
*/
|
|
18
|
+
effect(() => {
|
|
19
|
+
const length = this._sorts().length;
|
|
20
|
+
this.sortChange.emit({
|
|
21
|
+
active: length ? this._sorts()[length - 1].active : "",
|
|
22
|
+
direction: length ? this._sorts()[length - 1].direction : "",
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
6
26
|
/**
|
|
7
27
|
* Retrieves the sort direction for a given column ID.
|
|
8
28
|
*
|
|
@@ -10,7 +30,7 @@ export class MatMultiSortDirective extends MatSort {
|
|
|
10
30
|
* @returns The sort direction ('asc', 'desc', or '') for the specified column ID.
|
|
11
31
|
*/
|
|
12
32
|
getSortDirection(id) {
|
|
13
|
-
const sort = this._sorts.find((e) => e.active === id);
|
|
33
|
+
const sort = this._sorts().find((e) => e.active === id);
|
|
14
34
|
return sort ? sort.direction : "";
|
|
15
35
|
}
|
|
16
36
|
/**
|
|
@@ -20,7 +40,7 @@ export class MatMultiSortDirective extends MatSort {
|
|
|
20
40
|
* @returns The sort index of the column, or -1 if the column is not active.
|
|
21
41
|
*/
|
|
22
42
|
getSortIndex(id) {
|
|
23
|
-
return this._sorts.findIndex((e) => e.active === id);
|
|
43
|
+
return this._sorts().findIndex((e) => e.active === id);
|
|
24
44
|
}
|
|
25
45
|
sort(sortable) {
|
|
26
46
|
this.active = sortable.id;
|
|
@@ -29,21 +49,80 @@ export class MatMultiSortDirective extends MatSort {
|
|
|
29
49
|
// If the column is not active, add it to the list of active columns.
|
|
30
50
|
if (index < 0) {
|
|
31
51
|
this.direction = sortable.start ? sortable.start : this.start;
|
|
32
|
-
this._sorts.push({ active: this.active, direction: this.direction });
|
|
52
|
+
this._sorts().push({ active: this.active, direction: this.direction });
|
|
33
53
|
}
|
|
34
54
|
else {
|
|
35
55
|
// If the column is active, update the direction or remove it if the direction is empty.
|
|
36
56
|
this.direction = this.getNextSortDirection(sortable);
|
|
37
57
|
if (!this.direction) {
|
|
38
|
-
this._sorts.splice(index, 1);
|
|
58
|
+
this._sorts().splice(index, 1);
|
|
39
59
|
}
|
|
40
60
|
else {
|
|
41
|
-
this._sorts[index].direction = this.direction;
|
|
61
|
+
this._sorts()[index].direction = this.direction;
|
|
42
62
|
}
|
|
43
63
|
}
|
|
44
64
|
this.sortChange.emit({ active: this.active, direction: this.direction });
|
|
45
65
|
}
|
|
46
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Removes a sort level by its identifier.
|
|
68
|
+
* If the sort level is not found, the method returns without making any changes.
|
|
69
|
+
*
|
|
70
|
+
* @param id - The identifier of the sort level to be removed.
|
|
71
|
+
* @returns void
|
|
72
|
+
*/
|
|
73
|
+
removeSortLevel(id) {
|
|
74
|
+
const index = this.getSortIndex(id);
|
|
75
|
+
if (index < 0)
|
|
76
|
+
return;
|
|
77
|
+
this._sorts().splice(index, 1);
|
|
78
|
+
this.sortChange.emit();
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Reorders the sort level by moving an item in the sort array from a previous index to a current index.
|
|
82
|
+
* If the previous index is the same as the current index, the function returns without making any changes.
|
|
83
|
+
*
|
|
84
|
+
* @param previousIndex - The index of the item to be moved.
|
|
85
|
+
* @param currentIndex - The index to which the item should be moved.
|
|
86
|
+
*/
|
|
87
|
+
reorderSortLevel(previousIndex, currentIndex) {
|
|
88
|
+
if (previousIndex === currentIndex)
|
|
89
|
+
return;
|
|
90
|
+
moveItemInArray(this._sorts(), previousIndex, currentIndex);
|
|
91
|
+
this.sortChange.emit(this._sorts()[currentIndex]);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Toggles the sort direction for the given column ID.
|
|
95
|
+
*
|
|
96
|
+
* @param id - The unique identifier of the column to toggle the sort direction for.
|
|
97
|
+
* @returns void
|
|
98
|
+
*/
|
|
99
|
+
toggleSortDirection(id) {
|
|
100
|
+
const index = this.getSortIndex(id);
|
|
101
|
+
if (index < 0)
|
|
102
|
+
return;
|
|
103
|
+
this.active = id;
|
|
104
|
+
// The value of this.direction is used in the getNextSortDirection method. That's why it is necessary for it to be set before the call to getNextSortDirection.
|
|
105
|
+
this.direction = this.getSortDirection(id);
|
|
106
|
+
this.direction = this.getNextSortDirection({
|
|
107
|
+
id: id,
|
|
108
|
+
disableClear: true,
|
|
109
|
+
});
|
|
110
|
+
this._sorts()[index].direction = this.direction;
|
|
111
|
+
this.sortChange.emit({ active: this.active, direction: this.direction });
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Clears the current sorting state.
|
|
115
|
+
*
|
|
116
|
+
* @param id - The unique identifier of the column to toggle the sort direction for.
|
|
117
|
+
* @returns void
|
|
118
|
+
*/
|
|
119
|
+
clearSorting() {
|
|
120
|
+
this.active = "";
|
|
121
|
+
this.direction = "";
|
|
122
|
+
this._sorts.set([]);
|
|
123
|
+
this.sortChange.emit();
|
|
124
|
+
}
|
|
125
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatMultiSortDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
47
126
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: MatMultiSortDirective, isStandalone: true, selector: "[matMultiSort]", host: { classAttribute: "mat-sort" }, exportAs: ["matMultiSort"], usesInheritance: true, ngImport: i0 });
|
|
48
127
|
}
|
|
49
128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatMultiSortDirective, decorators: [{
|
|
@@ -56,5 +135,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
56
135
|
},
|
|
57
136
|
standalone: true,
|
|
58
137
|
}]
|
|
59
|
-
}] });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LW11bHRpLXNvcnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tYXQtbXVsdGktc29ydC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsT0FBTyxHQUlSLE1BQU0sd0JBQXdCLENBQUM7O0FBVWhDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxPQUFPO0lBQ3ZDLE1BQU0sR0FBVyxFQUFFLENBQUM7SUFFN0I7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxFQUFVO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksWUFBWSxDQUFDLEVBQVU7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRVEsSUFBSSxDQUFDLFFBQXFCO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFN0MscUVBQXFFO1FBQ3JFLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzlELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7YUFBTSxDQUFDO1lBQ04sd0ZBQXdGO1lBQ3hGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNoRCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7d0dBNUNVLHFCQUFxQjs0RkFBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQVJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxjQUFjO29CQUN4QixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLFVBQVU7cUJBQ2xCO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBNYXRTb3J0LFxuICBNYXRTb3J0YWJsZSxcbiAgU29ydCxcbiAgU29ydERpcmVjdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIlttYXRNdWx0aVNvcnRdXCIsXG4gIGV4cG9ydEFzOiBcIm1hdE11bHRpU29ydFwiLFxuICBob3N0OiB7XG4gICAgY2xhc3M6IFwibWF0LXNvcnRcIixcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0TXVsdGlTb3J0RGlyZWN0aXZlIGV4dGVuZHMgTWF0U29ydCB7XG4gIHJlYWRvbmx5IF9zb3J0czogU29ydFtdID0gW107XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgc29ydCBkaXJlY3Rpb24gZm9yIGEgZ2l2ZW4gY29sdW1uIElELlxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgSUQgb2YgdGhlIGNvbHVtbiB0byBnZXQgdGhlIHNvcnQgZGlyZWN0aW9uIGZvci5cbiAgICogQHJldHVybnMgVGhlIHNvcnQgZGlyZWN0aW9uICgnYXNjJywgJ2Rlc2MnLCBvciAnJykgZm9yIHRoZSBzcGVjaWZpZWQgY29sdW1uIElELlxuICAgKi9cbiAgZ2V0U29ydERpcmVjdGlvbihpZDogc3RyaW5nKTogU29ydERpcmVjdGlvbiB7XG4gICAgY29uc3Qgc29ydCA9IHRoaXMuX3NvcnRzLmZpbmQoKGUpID0+IGUuYWN0aXZlID09PSBpZCk7XG4gICAgcmV0dXJuIHNvcnQgPyBzb3J0LmRpcmVjdGlvbiA6IFwiXCI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc29ydCBpbmRleCBvZiB0aGUgZ2l2ZW4gY29sdW1uIElELlxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgSUQgb2YgdGhlIGNvbHVtbiB0byBnZXQgdGhlIHNvcnQgaW5kZXggZm9yLlxuICAgKiBAcmV0dXJucyBUaGUgc29ydCBpbmRleCBvZiB0aGUgY29sdW1uLCBvciAtMSBpZiB0aGUgY29sdW1uIGlzIG5vdCBhY3RpdmUuXG4gICAqL1xuICBwdWJsaWMgZ2V0U29ydEluZGV4KGlkOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zb3J0cy5maW5kSW5kZXgoKGUpID0+IGUuYWN0aXZlID09PSBpZCk7XG4gIH1cblxuICBvdmVycmlkZSBzb3J0KHNvcnRhYmxlOiBNYXRTb3J0YWJsZSk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlID0gc29ydGFibGUuaWQ7XG4gICAgdGhpcy5kaXJlY3Rpb24gPSB0aGlzLmdldFNvcnREaXJlY3Rpb24oc29ydGFibGUuaWQpO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRTb3J0SW5kZXgoc29ydGFibGUuaWQpO1xuXG4gICAgLy8gSWYgdGhlIGNvbHVtbiBpcyBub3QgYWN0aXZlLCBhZGQgaXQgdG8gdGhlIGxpc3Qgb2YgYWN0aXZlIGNvbHVtbnMuXG4gICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgdGhpcy5kaXJlY3Rpb24gPSBzb3J0YWJsZS5zdGFydCA/IHNvcnRhYmxlLnN0YXJ0IDogdGhpcy5zdGFydDtcbiAgICAgIHRoaXMuX3NvcnRzLnB1c2goeyBhY3RpdmU6IHRoaXMuYWN0aXZlLCBkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiB0aGUgY29sdW1uIGlzIGFjdGl2ZSwgdXBkYXRlIHRoZSBkaXJlY3Rpb24gb3IgcmVtb3ZlIGl0IGlmIHRoZSBkaXJlY3Rpb24gaXMgZW1wdHkuXG4gICAgICB0aGlzLmRpcmVjdGlvbiA9IHRoaXMuZ2V0TmV4dFNvcnREaXJlY3Rpb24oc29ydGFibGUpO1xuICAgICAgaWYgKCF0aGlzLmRpcmVjdGlvbikge1xuICAgICAgICB0aGlzLl9zb3J0cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fc29ydHNbaW5kZXhdLmRpcmVjdGlvbiA9IHRoaXMuZGlyZWN0aW9uO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc29ydENoYW5nZS5lbWl0KHsgYWN0aXZlOiB0aGlzLmFjdGl2ZSwgZGlyZWN0aW9uOiB0aGlzLmRpcmVjdGlvbiB9KTtcbiAgfVxufVxuIl19
|
|
138
|
+
}], ctorParameters: () => [] });
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LW11bHRpLXNvcnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tYXQtbXVsdGktc29ydC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUNMLE9BQU8sR0FJUixNQUFNLHdCQUF3QixDQUFDOztBQVVoQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsT0FBTztJQUNoRDs7Ozs7T0FLRztJQUNNLE1BQU0sR0FBMkIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXJEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUjs7V0FFRztRQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUNuQixNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdEQsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7YUFDN0QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxnQkFBZ0IsQ0FBQyxFQUFVO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxZQUFZLENBQUMsRUFBVTtRQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVRLElBQUksQ0FBQyxRQUFxQjtRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTdDLHFFQUFxRTtRQUNyRSxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM5RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7YUFBTSxDQUFDO1lBQ04sd0ZBQXdGO1lBQ3hGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZUFBZSxDQUFDLEVBQVU7UUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxJQUFJLEtBQUssR0FBRyxDQUFDO1lBQUUsT0FBTztRQUV0QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxnQkFBZ0IsQ0FBQyxhQUFxQixFQUFFLFlBQW9CO1FBQ2pFLElBQUksYUFBYSxLQUFLLFlBQVk7WUFBRSxPQUFPO1FBRTNDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLG1CQUFtQixDQUFDLEVBQVU7UUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxJQUFJLEtBQUssR0FBRyxDQUFDO1lBQUUsT0FBTztRQUV0QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQiwrSkFBK0o7UUFDL0osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDekMsRUFBRSxFQUFFLEVBQUU7WUFDTixZQUFZLEVBQUUsSUFBSTtTQUNKLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksWUFBWTtRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7d0dBL0hVLHFCQUFxQjs0RkFBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQVJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxjQUFjO29CQUN4QixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLFVBQVU7cUJBQ2xCO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1vdmVJdGVtSW5BcnJheSB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIGVmZmVjdCwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBNYXRTb3J0LFxuICBNYXRTb3J0YWJsZSxcbiAgU29ydCxcbiAgU29ydERpcmVjdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIlttYXRNdWx0aVNvcnRdXCIsXG4gIGV4cG9ydEFzOiBcIm1hdE11bHRpU29ydFwiLFxuICBob3N0OiB7XG4gICAgY2xhc3M6IFwibWF0LXNvcnRcIixcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0TXVsdGlTb3J0RGlyZWN0aXZlIGV4dGVuZHMgTWF0U29ydCB7XG4gIC8qKlxuICAgKiBBIHdyaXRhYmxlIHNpZ25hbCB0aGF0IGhvbGRzIGFuIGFycmF5IG9mIFNvcnQgb2JqZWN0cy5cbiAgICogVGhpcyBzaWduYWwgaXMgdXNlZCB0byBtYW5hZ2UgdGhlIHNvcnRpbmcgc3RhdGUgb2YgdGhlIHRhYmxlLlxuICAgKlxuICAgKiBAcmVhZG9ubHlcbiAgICovXG4gIHJlYWRvbmx5IF9zb3J0czogV3JpdGFibGVTaWduYWw8U29ydFtdPiA9IHNpZ25hbChbXSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvKiBXZSBhcmUgdXNpbmcgYW4gZWZmZWN0IHRvIGVtaXQgdGhlIHNvcnRDaGFuZ2UgZXZlbnQgd2hlbmV2ZXIgdGhlIF9zb3J0cyBzaWduYWwgY2hhbmdlcy5cbiAgICAgKiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBzb3J0Q2hhbmdlIGV2ZW50IGlzIG5vdCBlbWl0dGVkIHdoZW4gdGhlIF9zb3J0cyBzaWduYWwgaXMgdXBkYXRlZCBkaXJlY3RseSAoZS5nLiwgdGhpcy5fc29ydHMuc2V0KFtdKSkuXG4gICAgICovXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuX3NvcnRzKCkubGVuZ3RoO1xuICAgICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQoe1xuICAgICAgICBhY3RpdmU6IGxlbmd0aCA/IHRoaXMuX3NvcnRzKClbbGVuZ3RoIC0gMV0uYWN0aXZlIDogXCJcIixcbiAgICAgICAgZGlyZWN0aW9uOiBsZW5ndGggPyB0aGlzLl9zb3J0cygpW2xlbmd0aCAtIDFdLmRpcmVjdGlvbiA6IFwiXCIsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIHNvcnQgZGlyZWN0aW9uIGZvciBhIGdpdmVuIGNvbHVtbiBJRC5cbiAgICpcbiAgICogQHBhcmFtIGlkIC0gVGhlIElEIG9mIHRoZSBjb2x1bW4gdG8gZ2V0IHRoZSBzb3J0IGRpcmVjdGlvbiBmb3IuXG4gICAqIEByZXR1cm5zIFRoZSBzb3J0IGRpcmVjdGlvbiAoJ2FzYycsICdkZXNjJywgb3IgJycpIGZvciB0aGUgc3BlY2lmaWVkIGNvbHVtbiBJRC5cbiAgICovXG4gIHB1YmxpYyBnZXRTb3J0RGlyZWN0aW9uKGlkOiBzdHJpbmcpOiBTb3J0RGlyZWN0aW9uIHtcbiAgICBjb25zdCBzb3J0ID0gdGhpcy5fc29ydHMoKS5maW5kKChlKSA9PiBlLmFjdGl2ZSA9PT0gaWQpO1xuICAgIHJldHVybiBzb3J0ID8gc29ydC5kaXJlY3Rpb24gOiBcIlwiO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHNvcnQgaW5kZXggb2YgdGhlIGdpdmVuIGNvbHVtbiBJRC5cbiAgICpcbiAgICogQHBhcmFtIGlkIC0gVGhlIElEIG9mIHRoZSBjb2x1bW4gdG8gZ2V0IHRoZSBzb3J0IGluZGV4IGZvci5cbiAgICogQHJldHVybnMgVGhlIHNvcnQgaW5kZXggb2YgdGhlIGNvbHVtbiwgb3IgLTEgaWYgdGhlIGNvbHVtbiBpcyBub3QgYWN0aXZlLlxuICAgKi9cbiAgcHVibGljIGdldFNvcnRJbmRleChpZDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc29ydHMoKS5maW5kSW5kZXgoKGUpID0+IGUuYWN0aXZlID09PSBpZCk7XG4gIH1cblxuICBvdmVycmlkZSBzb3J0KHNvcnRhYmxlOiBNYXRTb3J0YWJsZSk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlID0gc29ydGFibGUuaWQ7XG4gICAgdGhpcy5kaXJlY3Rpb24gPSB0aGlzLmdldFNvcnREaXJlY3Rpb24oc29ydGFibGUuaWQpO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRTb3J0SW5kZXgoc29ydGFibGUuaWQpO1xuXG4gICAgLy8gSWYgdGhlIGNvbHVtbiBpcyBub3QgYWN0aXZlLCBhZGQgaXQgdG8gdGhlIGxpc3Qgb2YgYWN0aXZlIGNvbHVtbnMuXG4gICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgdGhpcy5kaXJlY3Rpb24gPSBzb3J0YWJsZS5zdGFydCA/IHNvcnRhYmxlLnN0YXJ0IDogdGhpcy5zdGFydDtcbiAgICAgIHRoaXMuX3NvcnRzKCkucHVzaCh7IGFjdGl2ZTogdGhpcy5hY3RpdmUsIGRpcmVjdGlvbjogdGhpcy5kaXJlY3Rpb24gfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIHRoZSBjb2x1bW4gaXMgYWN0aXZlLCB1cGRhdGUgdGhlIGRpcmVjdGlvbiBvciByZW1vdmUgaXQgaWYgdGhlIGRpcmVjdGlvbiBpcyBlbXB0eS5cbiAgICAgIHRoaXMuZGlyZWN0aW9uID0gdGhpcy5nZXROZXh0U29ydERpcmVjdGlvbihzb3J0YWJsZSk7XG4gICAgICBpZiAoIXRoaXMuZGlyZWN0aW9uKSB7XG4gICAgICAgIHRoaXMuX3NvcnRzKCkuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3NvcnRzKClbaW5kZXhdLmRpcmVjdGlvbiA9IHRoaXMuZGlyZWN0aW9uO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc29ydENoYW5nZS5lbWl0KHsgYWN0aXZlOiB0aGlzLmFjdGl2ZSwgZGlyZWN0aW9uOiB0aGlzLmRpcmVjdGlvbiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgc29ydCBsZXZlbCBieSBpdHMgaWRlbnRpZmllci5cbiAgICogSWYgdGhlIHNvcnQgbGV2ZWwgaXMgbm90IGZvdW5kLCB0aGUgbWV0aG9kIHJldHVybnMgd2l0aG91dCBtYWtpbmcgYW55IGNoYW5nZXMuXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBzb3J0IGxldmVsIHRvIGJlIHJlbW92ZWQuXG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVTb3J0TGV2ZWwoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRTb3J0SW5kZXgoaWQpO1xuICAgIGlmIChpbmRleCA8IDApIHJldHVybjtcblxuICAgIHRoaXMuX3NvcnRzKCkuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlb3JkZXJzIHRoZSBzb3J0IGxldmVsIGJ5IG1vdmluZyBhbiBpdGVtIGluIHRoZSBzb3J0IGFycmF5IGZyb20gYSBwcmV2aW91cyBpbmRleCB0byBhIGN1cnJlbnQgaW5kZXguXG4gICAqIElmIHRoZSBwcmV2aW91cyBpbmRleCBpcyB0aGUgc2FtZSBhcyB0aGUgY3VycmVudCBpbmRleCwgdGhlIGZ1bmN0aW9uIHJldHVybnMgd2l0aG91dCBtYWtpbmcgYW55IGNoYW5nZXMuXG4gICAqXG4gICAqIEBwYXJhbSBwcmV2aW91c0luZGV4IC0gVGhlIGluZGV4IG9mIHRoZSBpdGVtIHRvIGJlIG1vdmVkLlxuICAgKiBAcGFyYW0gY3VycmVudEluZGV4IC0gVGhlIGluZGV4IHRvIHdoaWNoIHRoZSBpdGVtIHNob3VsZCBiZSBtb3ZlZC5cbiAgICovXG4gIHB1YmxpYyByZW9yZGVyU29ydExldmVsKHByZXZpb3VzSW5kZXg6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAocHJldmlvdXNJbmRleCA9PT0gY3VycmVudEluZGV4KSByZXR1cm47XG5cbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5fc29ydHMoKSwgcHJldmlvdXNJbmRleCwgY3VycmVudEluZGV4KTtcbiAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCh0aGlzLl9zb3J0cygpW2N1cnJlbnRJbmRleF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIHNvcnQgZGlyZWN0aW9uIGZvciB0aGUgZ2l2ZW4gY29sdW1uIElELlxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvbHVtbiB0byB0b2dnbGUgdGhlIHNvcnQgZGlyZWN0aW9uIGZvci5cbiAgICogQHJldHVybnMgdm9pZFxuICAgKi9cbiAgcHVibGljIHRvZ2dsZVNvcnREaXJlY3Rpb24oaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRTb3J0SW5kZXgoaWQpO1xuICAgIGlmIChpbmRleCA8IDApIHJldHVybjtcblxuICAgIHRoaXMuYWN0aXZlID0gaWQ7XG4gICAgLy8gVGhlIHZhbHVlIG9mIHRoaXMuZGlyZWN0aW9uIGlzIHVzZWQgaW4gdGhlIGdldE5leHRTb3J0RGlyZWN0aW9uIG1ldGhvZC4gVGhhdCdzIHdoeSBpdCBpcyBuZWNlc3NhcnkgZm9yIGl0IHRvIGJlIHNldCBiZWZvcmUgdGhlIGNhbGwgdG8gZ2V0TmV4dFNvcnREaXJlY3Rpb24uXG4gICAgdGhpcy5kaXJlY3Rpb24gPSB0aGlzLmdldFNvcnREaXJlY3Rpb24oaWQpO1xuICAgIHRoaXMuZGlyZWN0aW9uID0gdGhpcy5nZXROZXh0U29ydERpcmVjdGlvbih7XG4gICAgICBpZDogaWQsXG4gICAgICBkaXNhYmxlQ2xlYXI6IHRydWUsXG4gICAgfSBhcyBNYXRTb3J0YWJsZSk7XG4gICAgdGhpcy5fc29ydHMoKVtpbmRleF0uZGlyZWN0aW9uID0gdGhpcy5kaXJlY3Rpb247XG4gICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQoeyBhY3RpdmU6IHRoaXMuYWN0aXZlLCBkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgY3VycmVudCBzb3J0aW5nIHN0YXRlLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvbHVtbiB0byB0b2dnbGUgdGhlIHNvcnQgZGlyZWN0aW9uIGZvci5cbiAgICogQHJldHVybnMgdm9pZFxuICAgKi9cbiAgcHVibGljIGNsZWFyU29ydGluZygpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZSA9IFwiXCI7XG4gICAgdGhpcy5kaXJlY3Rpb24gPSBcIlwiO1xuICAgIHRoaXMuX3NvcnRzLnNldChbXSk7XG4gICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { CdkDrag, CdkDropList, moveItemInArray, } from "@angular/cdk/drag-drop";
|
|
2
|
+
import { Component, Inject } from "@angular/core";
|
|
3
|
+
import { MatCheckboxModule } from "@angular/material/checkbox";
|
|
4
|
+
import { MatIconModule } from "@angular/material/icon";
|
|
5
|
+
import { TABLE_COLUMNS } from "../mat-table-column-config";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/material/checkbox";
|
|
8
|
+
import * as i2 from "@angular/material/icon";
|
|
9
|
+
export class MatTableColumnConfigComponent {
|
|
10
|
+
columns;
|
|
11
|
+
constructor(columns) {
|
|
12
|
+
this.columns = columns;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Handles the event when a dragged column is dropped.
|
|
16
|
+
* This method updates the order of columns based on the drag and drop action.
|
|
17
|
+
*
|
|
18
|
+
* @param event - The event object containing information about the drag and drop action.
|
|
19
|
+
*/
|
|
20
|
+
onColumnDropped(event) {
|
|
21
|
+
moveItemInArray(this.columns, event.previousIndex, event.currentIndex);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Toggles the visibility of a column based on its identifier.
|
|
25
|
+
*
|
|
26
|
+
* @param id - The identifier of the column whose visibility is to be changed.
|
|
27
|
+
*/
|
|
28
|
+
onColumnVisibilityChanged(id) {
|
|
29
|
+
const index = this.columns.findIndex((column) => column.id === id);
|
|
30
|
+
if (index < 0)
|
|
31
|
+
return;
|
|
32
|
+
this.columns[index].visible = !this.columns[index].visible;
|
|
33
|
+
}
|
|
34
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatTableColumnConfigComponent, deps: [{ token: TABLE_COLUMNS }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MatTableColumnConfigComponent, isStandalone: true, selector: "mat-table-column-config", ngImport: i0, template: "<div\n cdkDropList\n class=\"table-column-list mat-elevation-z4\"\n cdkDropListOrientation=\"vertical\"\n (cdkDropListDropped)=\"onColumnDropped($event)\">\n @for (column of columns; track column.id) {\n <div cdkDrag class=\"table-column\">\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n <mat-checkbox\n [checked]=\"column.visible\"\n (change)=\"onColumnVisibilityChanged(column.id)\"\n >{{ column.label }}</mat-checkbox\n >\n </div>\n }\n</div>\n", styles: [".cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .15s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;overflow:hidden}.table-column-list{background-color:var(--mat-sys-surface-container, #eeeeee);color:var(--mat-sys-on-surface, rgba(0, 0, 0, .87))}.table-column{background:var(--mat-sys-surface, #ffffff);display:flex;justify-content:flex-start;align-items:center;height:48px;padding:0 16px 0 8px}.table-column mat-icon{margin-right:16px}.table-column mat-checkbox{line-height:48px;color:#000000de;font-size:14px;font-weight:400}.table-column:last-child{border:none}.cdk-drop-list-dragging .table-column:not(.cdk-drag-placeholder){transition:transform .15s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatTableColumnConfigComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{ selector: "mat-table-column-config", imports: [CdkDropList, CdkDrag, MatCheckboxModule, MatIconModule], standalone: true, template: "<div\n cdkDropList\n class=\"table-column-list mat-elevation-z4\"\n cdkDropListOrientation=\"vertical\"\n (cdkDropListDropped)=\"onColumnDropped($event)\">\n @for (column of columns; track column.id) {\n <div cdkDrag class=\"table-column\">\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n <mat-checkbox\n [checked]=\"column.visible\"\n (change)=\"onColumnVisibilityChanged(column.id)\"\n >{{ column.label }}</mat-checkbox\n >\n </div>\n }\n</div>\n", styles: [".cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .15s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;overflow:hidden}.table-column-list{background-color:var(--mat-sys-surface-container, #eeeeee);color:var(--mat-sys-on-surface, rgba(0, 0, 0, .87))}.table-column{background:var(--mat-sys-surface, #ffffff);display:flex;justify-content:flex-start;align-items:center;height:48px;padding:0 16px 0 8px}.table-column mat-icon{margin-right:16px}.table-column mat-checkbox{line-height:48px;color:#000000de;font-size:14px;font-weight:400}.table-column:last-child{border:none}.cdk-drop-list-dragging .table-column:not(.cdk-drag-placeholder){transition:transform .15s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
40
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
41
|
+
type: Inject,
|
|
42
|
+
args: [TABLE_COLUMNS]
|
|
43
|
+
}] }] });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXRhYmxlLWNvbHVtbi1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tYXQtdGFibGUtY29sdW1uLWNvbmZpZy9tYXQtdGFibGUtY29sdW1uLWNvbmZpZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21hdC10YWJsZS1jb2x1bW4tY29uZmlnL21hdC10YWJsZS1jb2x1bW4tY29uZmlnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBRVAsV0FBVyxFQUNYLGVBQWUsR0FDaEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBU3hFLE1BQU0sT0FBTyw2QkFBNkI7SUFDSTtJQUE1QyxZQUE0QyxPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtJQUFHLENBQUM7SUFFekU7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsS0FBcUI7UUFDbkMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx5QkFBeUIsQ0FBQyxFQUFXO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLElBQUksS0FBSyxHQUFHLENBQUM7WUFBRSxPQUFPO1FBRXRCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDN0QsQ0FBQzt3R0F2QlUsNkJBQTZCLGtCQUNwQixhQUFhOzRGQUR0Qiw2QkFBNkIsbUZDbEIxQyx3ZkFnQkEsNjFCREhZLFdBQVcsOGZBQUUsT0FBTyx1Y0FBRSxpQkFBaUIsb1lBQUUsYUFBYTs7NEZBS3JELDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDRSx5QkFBeUIsV0FDMUIsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxjQUdyRCxJQUFJOzswQkFHSCxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDZGtEcmFnLFxuICBDZGtEcmFnRHJvcCxcbiAgQ2RrRHJvcExpc3QsXG4gIG1vdmVJdGVtSW5BcnJheSxcbn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94XCI7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcbmltcG9ydCB7IFRBQkxFX0NPTFVNTlMsIFRhYmxlQ29sdW1uIH0gZnJvbSBcIi4uL21hdC10YWJsZS1jb2x1bW4tY29uZmlnXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtYXQtdGFibGUtY29sdW1uLWNvbmZpZ1wiLFxuICBpbXBvcnRzOiBbQ2RrRHJvcExpc3QsIENka0RyYWcsIE1hdENoZWNrYm94TW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9tYXQtdGFibGUtY29sdW1uLWNvbmZpZy5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybDogXCIuL21hdC10YWJsZS1jb2x1bW4tY29uZmlnLmNvbXBvbmVudC5zY3NzXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE1hdFRhYmxlQ29sdW1uQ29uZmlnQ29tcG9uZW50PFQ+IHtcbiAgY29uc3RydWN0b3IoQEluamVjdChUQUJMRV9DT0xVTU5TKSByZWFkb25seSBjb2x1bW5zOiBUYWJsZUNvbHVtbjxUPltdKSB7fVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBldmVudCB3aGVuIGEgZHJhZ2dlZCBjb2x1bW4gaXMgZHJvcHBlZC5cbiAgICogVGhpcyBtZXRob2QgdXBkYXRlcyB0aGUgb3JkZXIgb2YgY29sdW1ucyBiYXNlZCBvbiB0aGUgZHJhZyBhbmQgZHJvcCBhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCAtIFRoZSBldmVudCBvYmplY3QgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZHJhZyBhbmQgZHJvcCBhY3Rpb24uXG4gICAqL1xuICBvbkNvbHVtbkRyb3BwZWQoZXZlbnQ6IENka0RyYWdEcm9wPFQ+KTogdm9pZCB7XG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuY29sdW1ucywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSB2aXNpYmlsaXR5IG9mIGEgY29sdW1uIGJhc2VkIG9uIGl0cyBpZGVudGlmaWVyLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgY29sdW1uIHdob3NlIHZpc2liaWxpdHkgaXMgdG8gYmUgY2hhbmdlZC5cbiAgICovXG4gIG9uQ29sdW1uVmlzaWJpbGl0eUNoYW5nZWQoaWQ6IGtleW9mIFQpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY29sdW1ucy5maW5kSW5kZXgoKGNvbHVtbikgPT4gY29sdW1uLmlkID09PSBpZCk7XG4gICAgaWYgKGluZGV4IDwgMCkgcmV0dXJuO1xuXG4gICAgdGhpcy5jb2x1bW5zW2luZGV4XS52aXNpYmxlID0gIXRoaXMuY29sdW1uc1tpbmRleF0udmlzaWJsZTtcbiAgfVxufVxuIiwiPGRpdlxuICBjZGtEcm9wTGlzdFxuICBjbGFzcz1cInRhYmxlLWNvbHVtbi1saXN0IG1hdC1lbGV2YXRpb24tejRcIlxuICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwidmVydGljYWxcIlxuICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uQ29sdW1uRHJvcHBlZCgkZXZlbnQpXCI+XG4gIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayBjb2x1bW4uaWQpIHtcbiAgICA8ZGl2IGNka0RyYWcgY2xhc3M9XCJ0YWJsZS1jb2x1bW5cIj5cbiAgICAgIDxtYXQtaWNvbiBjZGtEcmFnSGFuZGxlPmRyYWdfaW5kaWNhdG9yPC9tYXQtaWNvbj5cbiAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgW2NoZWNrZWRdPVwiY29sdW1uLnZpc2libGVcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uQ29sdW1uVmlzaWJpbGl0eUNoYW5nZWQoY29sdW1uLmlkKVwiXG4gICAgICAgID57eyBjb2x1bW4ubGFiZWwgfX08L21hdC1jaGVja2JveFxuICAgICAgPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { ComponentPortal } from "@angular/cdk/portal";
|
|
2
|
+
import { Directive, HostListener, Injector, Input, } from "@angular/core";
|
|
3
|
+
import { TABLE_COLUMNS } from "./mat-table-column-config";
|
|
4
|
+
import { MatTableColumnConfigComponent } from "./mat-table-column-config/mat-table-column-config.component";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
7
|
+
export class MatTableColumnConfigTriggerDirective {
|
|
8
|
+
elementRef;
|
|
9
|
+
overlay;
|
|
10
|
+
viewContainerRef;
|
|
11
|
+
_componentRef = null;
|
|
12
|
+
/**
|
|
13
|
+
* Input property that accepts an array of table column configurations.
|
|
14
|
+
* The alias for this input property is "matTableColumnConfigTrigger".
|
|
15
|
+
* This property is required.
|
|
16
|
+
*
|
|
17
|
+
* @type {TableColumn<T>[]} columns - The array of table column configurations.
|
|
18
|
+
*/
|
|
19
|
+
columns;
|
|
20
|
+
/**
|
|
21
|
+
* Gets the reference to the MatTableColumnConfigComponent.
|
|
22
|
+
*
|
|
23
|
+
* @returns {ComponentRef<MatTableColumnConfigComponent<T>> | null}
|
|
24
|
+
* The reference to the MatTableColumnConfigComponent if it exists, otherwise null.
|
|
25
|
+
*/
|
|
26
|
+
get componentRef() {
|
|
27
|
+
return this._componentRef;
|
|
28
|
+
}
|
|
29
|
+
constructor(elementRef, overlay, viewContainerRef) {
|
|
30
|
+
this.elementRef = elementRef;
|
|
31
|
+
this.overlay = overlay;
|
|
32
|
+
this.viewContainerRef = viewContainerRef;
|
|
33
|
+
}
|
|
34
|
+
onClick() {
|
|
35
|
+
// Create the component portal
|
|
36
|
+
const positionStrategy = this.overlay
|
|
37
|
+
.position()
|
|
38
|
+
.flexibleConnectedTo(this.elementRef.nativeElement)
|
|
39
|
+
.withFlexibleDimensions(true)
|
|
40
|
+
.withViewportMargin(8)
|
|
41
|
+
.withGrowAfterOpen(true)
|
|
42
|
+
.withPush(true)
|
|
43
|
+
.withPositions([
|
|
44
|
+
{
|
|
45
|
+
originX: "end",
|
|
46
|
+
originY: "bottom",
|
|
47
|
+
overlayX: "end",
|
|
48
|
+
overlayY: "top",
|
|
49
|
+
},
|
|
50
|
+
]);
|
|
51
|
+
const overlayRef = this.overlay.create({
|
|
52
|
+
positionStrategy,
|
|
53
|
+
hasBackdrop: true,
|
|
54
|
+
backdropClass: "cdk-overlay-transparent-backdrop",
|
|
55
|
+
});
|
|
56
|
+
const injector = Injector.create({
|
|
57
|
+
providers: [{ provide: TABLE_COLUMNS, useValue: this.columns }],
|
|
58
|
+
parent: this.viewContainerRef.injector,
|
|
59
|
+
});
|
|
60
|
+
const portal = new ComponentPortal((MatTableColumnConfigComponent), this.viewContainerRef, injector);
|
|
61
|
+
this._componentRef = overlayRef.attach(portal);
|
|
62
|
+
overlayRef.backdropClick().subscribe(() => {
|
|
63
|
+
overlayRef.detach();
|
|
64
|
+
overlayRef.dispose();
|
|
65
|
+
this._componentRef = null;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatTableColumnConfigTriggerDirective, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
69
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: MatTableColumnConfigTriggerDirective, isStandalone: true, selector: "[matTableColumnConfigTrigger]", inputs: { columns: ["matTableColumnConfigTrigger", "columns"] }, host: { listeners: { "click": "onClick()" } }, exportAs: ["matTableColumnConfigTrigger"], ngImport: i0 });
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatTableColumnConfigTriggerDirective, decorators: [{
|
|
72
|
+
type: Directive,
|
|
73
|
+
args: [{
|
|
74
|
+
selector: "[matTableColumnConfigTrigger]",
|
|
75
|
+
exportAs: "matTableColumnConfigTrigger",
|
|
76
|
+
standalone: true,
|
|
77
|
+
}]
|
|
78
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { columns: [{
|
|
79
|
+
type: Input,
|
|
80
|
+
args: [{ alias: "matTableColumnConfigTrigger", required: true }]
|
|
81
|
+
}], onClick: [{
|
|
82
|
+
type: HostListener,
|
|
83
|
+
args: ["click"]
|
|
84
|
+
}] } });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXRhYmxlLWNvbHVtbi1jb25maWctdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21hdC10YWJsZS1jb2x1bW4tY29uZmlnLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQWUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQzs7O0FBTzVHLE1BQU0sT0FBTyxvQ0FBb0M7SUF3QjVCO0lBQ0E7SUFDQTtJQXpCWCxhQUFhLEdBQ25CLElBQUksQ0FBQztJQUNQOzs7Ozs7T0FNRztJQUVILE9BQU8sQ0FBb0I7SUFFM0I7Ozs7O09BS0c7SUFDSCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQ21CLFVBQXNCLEVBQ3RCLE9BQWdCLEVBQ2hCLGdCQUFrQztRQUZsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUNsRCxDQUFDO0lBRUosT0FBTztRQUNMLDhCQUE4QjtRQUM5QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPO2FBQ2xDLFFBQVEsRUFBRTthQUNWLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO2FBQ2xELHNCQUFzQixDQUFDLElBQUksQ0FBQzthQUM1QixrQkFBa0IsQ0FBQyxDQUFDLENBQUM7YUFDckIsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2FBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUM7YUFDZCxhQUFhLENBQUM7WUFDYjtnQkFDRSxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUUsUUFBUTtnQkFDakIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsUUFBUSxFQUFFLEtBQUs7YUFDaEI7U0FDRixDQUFDLENBQUM7UUFDTCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUNyQyxnQkFBZ0I7WUFDaEIsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLGtDQUFrQztTQUNsRCxDQUFDLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQy9CLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9ELE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUTtTQUN2QyxDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FDaEMsQ0FBQSw2QkFBZ0MsQ0FBQSxFQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLFFBQVEsQ0FDVCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9DLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQW5FVSxvQ0FBb0M7NEZBQXBDLG9DQUFvQzs7NEZBQXBDLG9DQUFvQztrQkFMaEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7b0lBWUMsT0FBTztzQkFETixLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLDZCQUE2QixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBbUIvRCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUQUJMRV9DT0xVTU5TLCBUYWJsZUNvbHVtbiB9IGZyb20gXCIuL21hdC10YWJsZS1jb2x1bW4tY29uZmlnXCI7XG5pbXBvcnQgeyBNYXRUYWJsZUNvbHVtbkNvbmZpZ0NvbXBvbmVudCB9IGZyb20gXCIuL21hdC10YWJsZS1jb2x1bW4tY29uZmlnL21hdC10YWJsZS1jb2x1bW4tY29uZmlnLmNvbXBvbmVudFwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW21hdFRhYmxlQ29sdW1uQ29uZmlnVHJpZ2dlcl1cIixcbiAgZXhwb3J0QXM6IFwibWF0VGFibGVDb2x1bW5Db25maWdUcmlnZ2VyXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE1hdFRhYmxlQ29sdW1uQ29uZmlnVHJpZ2dlckRpcmVjdGl2ZTxUPiB7XG4gIHByaXZhdGUgX2NvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPE1hdFRhYmxlQ29sdW1uQ29uZmlnQ29tcG9uZW50PFQ+PiB8IG51bGwgPVxuICAgIG51bGw7XG4gIC8qKlxuICAgKiBJbnB1dCBwcm9wZXJ0eSB0aGF0IGFjY2VwdHMgYW4gYXJyYXkgb2YgdGFibGUgY29sdW1uIGNvbmZpZ3VyYXRpb25zLlxuICAgKiBUaGUgYWxpYXMgZm9yIHRoaXMgaW5wdXQgcHJvcGVydHkgaXMgXCJtYXRUYWJsZUNvbHVtbkNvbmZpZ1RyaWdnZXJcIi5cbiAgICogVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZC5cbiAgICpcbiAgICogQHR5cGUge1RhYmxlQ29sdW1uPFQ+W119IGNvbHVtbnMgLSBUaGUgYXJyYXkgb2YgdGFibGUgY29sdW1uIGNvbmZpZ3VyYXRpb25zLlxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6IFwibWF0VGFibGVDb2x1bW5Db25maWdUcmlnZ2VyXCIsIHJlcXVpcmVkOiB0cnVlIH0pXG4gIGNvbHVtbnMhOiBUYWJsZUNvbHVtbjxUPltdO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSByZWZlcmVuY2UgdG8gdGhlIE1hdFRhYmxlQ29sdW1uQ29uZmlnQ29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyB7Q29tcG9uZW50UmVmPE1hdFRhYmxlQ29sdW1uQ29uZmlnQ29tcG9uZW50PFQ+PiB8IG51bGx9XG4gICAqICAgICAgICAgIFRoZSByZWZlcmVuY2UgdG8gdGhlIE1hdFRhYmxlQ29sdW1uQ29uZmlnQ29tcG9uZW50IGlmIGl0IGV4aXN0cywgb3RoZXJ3aXNlIG51bGwuXG4gICAqL1xuICBnZXQgY29tcG9uZW50UmVmKCk6IENvbXBvbmVudFJlZjxNYXRUYWJsZUNvbHVtbkNvbmZpZ0NvbXBvbmVudDxUPj4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50UmVmO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7fVxuICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIilcbiAgb25DbGljaygpOiB2b2lkIHtcbiAgICAvLyBDcmVhdGUgdGhlIGNvbXBvbmVudCBwb3J0YWxcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0cnVlKVxuICAgICAgLndpdGhWaWV3cG9ydE1hcmdpbig4KVxuICAgICAgLndpdGhHcm93QWZ0ZXJPcGVuKHRydWUpXG4gICAgICAud2l0aFB1c2godHJ1ZSlcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6IFwiZW5kXCIsXG4gICAgICAgICAgb3JpZ2luWTogXCJib3R0b21cIixcbiAgICAgICAgICBvdmVybGF5WDogXCJlbmRcIixcbiAgICAgICAgICBvdmVybGF5WTogXCJ0b3BcIixcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IFwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BcIixcbiAgICB9KTtcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFRBQkxFX0NPTFVNTlMsIHVzZVZhbHVlOiB0aGlzLmNvbHVtbnMgfV0sXG4gICAgICBwYXJlbnQ6IHRoaXMudmlld0NvbnRhaW5lclJlZi5pbmplY3RvcixcbiAgICB9KTtcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgTWF0VGFibGVDb2x1bW5Db25maWdDb21wb25lbnQ8VD4sXG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgICBpbmplY3RvclxuICAgICk7XG4gICAgdGhpcy5fY29tcG9uZW50UmVmID0gb3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblxuICAgIG92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBvdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgb3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSBudWxsO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { InjectionToken } from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* Injection token for providing table column configurations.
|
|
4
|
+
*
|
|
5
|
+
* This token is used to inject an array of `TableColumn` configurations
|
|
6
|
+
* into Angular components or services. The generic type `unknown` is used
|
|
7
|
+
* to allow for flexibility in the type of data that can be represented
|
|
8
|
+
* by the table columns.
|
|
9
|
+
*/
|
|
10
|
+
export const TABLE_COLUMNS = new InjectionToken("TABLE_COLUMNS");
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXRhYmxlLWNvbHVtbi1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21hdC10YWJsZS1jb2x1bW4tY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFhL0M7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FDN0MsZUFBZSxDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGEgdGFibGUgY29sdW1uLlxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIGRhdGEgb2JqZWN0IHRoYXQgdGhlIHRhYmxlIGRpc3BsYXlzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29sdW1uPFQ+IHtcbiAgaWQ6IGtleW9mIFQ7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZpc2libGU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBwcm92aWRpbmcgdGFibGUgY29sdW1uIGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIFRoaXMgdG9rZW4gaXMgdXNlZCB0byBpbmplY3QgYW4gYXJyYXkgb2YgYFRhYmxlQ29sdW1uYCBjb25maWd1cmF0aW9uc1xuICogaW50byBBbmd1bGFyIGNvbXBvbmVudHMgb3Igc2VydmljZXMuIFRoZSBnZW5lcmljIHR5cGUgYHVua25vd25gIGlzIHVzZWRcbiAqIHRvIGFsbG93IGZvciBmbGV4aWJpbGl0eSBpbiB0aGUgdHlwZSBvZiBkYXRhIHRoYXQgY2FuIGJlIHJlcHJlc2VudGVkXG4gKiBieSB0aGUgdGFibGUgY29sdW1ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IFRBQkxFX0NPTFVNTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48VGFibGVDb2x1bW48dW5rbm93bj4+KFxuICBcIlRBQkxFX0NPTFVNTlNcIlxuKTtcbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Public API Surface of lib
|
|
3
3
|
*/
|
|
4
|
+
export * from "./lib/mat-table-column-config";
|
|
4
5
|
export * from "./lib/mat-multi-sort.directive";
|
|
6
|
+
export * from "./lib/mat-table-column-config-trigger.directive";
|
|
5
7
|
export * from "./lib/mat-multi-sort-table-data-source";
|
|
6
8
|
export * from "./lib/mat-multi-sort-header/mat-multi-sort-header.component";
|
|
7
|
-
|
|
9
|
+
export * from "./lib/mat-multi-sort-control/mat-multi-sort-control.component";
|
|
10
|
+
export * from "./lib/mat-table-column-config/mat-table-column-config.component";
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyxpRUFBaUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbGliXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vbGliL21hdC10YWJsZS1jb2x1bW4tY29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbWF0LW11bHRpLXNvcnQuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbWF0LXRhYmxlLWNvbHVtbi1jb25maWctdHJpZ2dlci5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9tYXQtbXVsdGktc29ydC10YWJsZS1kYXRhLXNvdXJjZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL21hdC1tdWx0aS1zb3J0LWhlYWRlci9tYXQtbXVsdGktc29ydC1oZWFkZXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbWF0LW11bHRpLXNvcnQtY29udHJvbC9tYXQtbXVsdGktc29ydC1jb250cm9sLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL21hdC10YWJsZS1jb2x1bW4tY29uZmlnL21hdC10YWJsZS1jb2x1bW4tY29uZmlnLmNvbXBvbmVudFwiO1xuIl19
|