@theseam/ui-common 1.0.0-beta.1 → 1.0.0-beta.11
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/breadcrumbs/index.d.ts +1 -2
- package/buttons/index.d.ts +20 -13
- package/datatable/index.d.ts +77 -39
- package/dynamic/index.d.ts +5 -5
- package/fesm2022/theseam-ui-common-asset-reader.mjs +28 -29
- package/fesm2022/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-breadcrumbs.mjs +25 -31
- package/fesm2022/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-buttons.mjs +108 -66
- package/fesm2022/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-card.mjs +21 -21
- package/fesm2022/theseam-ui-common-card.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-carousel.mjs +28 -30
- package/fesm2022/theseam-ui-common-carousel.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-checkbox.mjs +27 -27
- package/fesm2022/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-confirm-dialog.mjs +23 -27
- package/fesm2022/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-core.mjs +31 -11
- package/fesm2022/theseam-ui-common-core.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-data-exporter.mjs +18 -19
- package/fesm2022/theseam-ui-common-data-exporter.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-data-filters.mjs +80 -64
- package/fesm2022/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs +51 -49
- package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable-dynamic.mjs +145 -112
- package/fesm2022/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable.mjs +730 -420
- package/fesm2022/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs +12 -14
- package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-dynamic.mjs +60 -48
- package/fesm2022/theseam-ui-common-dynamic.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-footer-bar.mjs +9 -15
- package/fesm2022/theseam-ui-common-footer-bar.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-form-field-error.mjs +60 -43
- package/fesm2022/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-form-field.mjs +129 -76
- package/fesm2022/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-framework.mjs +669 -543
- package/fesm2022/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-google-maps.mjs +206 -149
- package/fesm2022/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-graphql.mjs +252 -195
- package/fesm2022/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-icon.mjs +125 -89
- package/fesm2022/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-layout.mjs +18 -26
- package/fesm2022/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-loading.mjs +19 -28
- package/fesm2022/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-menu.mjs +124 -95
- package/fesm2022/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-modal.mjs +178 -129
- package/fesm2022/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-models.mjs +3 -3
- package/fesm2022/theseam-ui-common-models.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-navigation-reload.mjs +13 -11
- package/fesm2022/theseam-ui-common-navigation-reload.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-popover.mjs +81 -88
- package/fesm2022/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-progress.mjs +15 -19
- package/fesm2022/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-rich-text.mjs +65 -52
- package/fesm2022/theseam-ui-common-rich-text.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-scrollbar.mjs +12 -9
- package/fesm2022/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-services.mjs +41 -26
- package/fesm2022/theseam-ui-common-services.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-shared.mjs +149 -159
- package/fesm2022/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-storage.mjs +9 -6
- package/fesm2022/theseam-ui-common-storage.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-story-helpers.mjs +148 -86
- package/fesm2022/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tabbed.mjs +43 -39
- package/fesm2022/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table-cell-type.mjs +63 -39
- package/fesm2022/theseam-ui-common-table-cell-type.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table-cell-types.mjs +182 -144
- package/fesm2022/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table.mjs +62 -41
- package/fesm2022/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tel-input.mjs +98 -63
- package/fesm2022/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-testing.mjs +13 -10
- package/fesm2022/theseam-ui-common-testing.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tiled-select.mjs +54 -50
- package/fesm2022/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-toggle-edit.mjs +41 -37
- package/fesm2022/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-toggle-group.mjs +30 -31
- package/fesm2022/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tooltip.mjs +225 -66
- package/fesm2022/theseam-ui-common-tooltip.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs +14 -12
- package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-utils.mjs +113 -77
- package/fesm2022/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-validators.mjs +10 -9
- package/fesm2022/theseam-ui-common-validators.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-vertical-list-filter.mjs +39 -17
- package/fesm2022/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-viewers.mjs +80 -53
- package/fesm2022/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-widget.mjs +288 -314
- package/fesm2022/theseam-ui-common-widget.mjs.map +1 -1
- package/form-field/index.d.ts +1 -1
- package/framework/base-layout/base-layout.component.scss +9 -4
- package/framework/base-layout/styles/_variables.scss +4 -9
- package/framework/dashboard/dashboard-widgets/dashboard-widgets.component.scss +6 -4
- package/framework/index.d.ts +6 -6
- package/framework/nav/nav-item/nav-item.component.scss +7 -6
- package/framework/nav/styles/_themes/light/_variables.scss +21 -5
- package/framework/nav/styles/_themes/primary/_variables.scss +21 -5
- package/framework/side-nav/side-nav-item/side-nav-item.component.scss +5 -2
- package/framework/side-nav/styles/_themes/light/_variables.scss +5 -1
- package/framework/side-nav/styles/_themes/primary/_variables.scss +25 -5
- package/graphql/index.d.ts +5 -5
- package/modal/README.md +5 -5
- package/modal/index.d.ts +1 -1
- package/models/index.d.ts +1 -1
- package/package.json +57 -58
- package/popover/index.d.ts +0 -2
- package/progress/progress-circle/styles/_variables.scss +15 -3
- package/shared/index.d.ts +0 -13
- package/story-helpers/index.d.ts +11 -1
- package/styles/bootstrap/_bootstrap.scss +34 -34
- package/styles/bootstrap/_bs-styles.scss +4 -8
- package/styles/bootstrap/_bs-utilities.scss +4 -4
- package/styles/bootstrap/_bs-variables.scss +65 -70
- package/styles/common/_forms.scss +9 -10
- package/styles/common/_global.scss +0 -1
- package/styles/common/_hacks.scss +1 -1
- package/styles/common/_table.scss +0 -1
- package/styles/common/_text.scss +3 -1
- package/styles/theme.scss +1 -1
- package/styles/vendor/ng-select/_ng-select-bs4.scss +292 -294
- package/styles/vendor/ngx-datatable/_ngx-datatable.scss +63 -32
- package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +37 -10
- package/styles/vendor/ngx-datatable/_themes/material/_variables.scss +3 -1
- package/styles/vendor/quill/_quill.scss +15 -9
- package/table/index.d.ts +4 -1
- package/table-cell-type/index.d.ts +27 -2
- package/tel-input/README.md +27 -27
- package/utils/index.d.ts +3 -3
- package/viewers/index.d.ts +9 -2
- package/widget/_widget-theme.scss +1 -1
- package/widget/styles/_variables.scss +2 -2
- package/widget/widget/widget.component.scss +0 -2
- package/widget/widget-content-components/widget-tile/widget-tile.component.scss +1 -3
- package/widget/widget-footer/widget-footer.component.scss +0 -1
|
@@ -3,7 +3,7 @@ import { trigger, transition, style, animate } from '@angular/animations';
|
|
|
3
3
|
import { coerceArray } from '@angular/cdk/coercion';
|
|
4
4
|
import { DataSource, isDataSource } from '@angular/cdk/collections';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { EventEmitter, Output, Input, ChangeDetectionStrategy, Component, ContentChildren, ViewChild, Directive, Injectable, TemplateRef, ContentChild, Self, Inject, forwardRef, InjectionToken, Optional, isDevMode, inject, ChangeDetectorRef, ElementRef, HostListener, HostBinding, NgModule } from '@angular/core';
|
|
6
|
+
import { EventEmitter, Output, Input, ChangeDetectionStrategy, Component, ContentChildren, ViewChild, Directive, Injectable, TemplateRef, ContentChild, Self, Inject, forwardRef, InjectionToken, Optional, isDevMode, input, inject, ChangeDetectorRef, ElementRef, HostListener, HostBinding, NgModule } from '@angular/core';
|
|
7
7
|
import { Subject, BehaviorSubject, of, startWith as startWith$1, map as map$1, switchMap as switchMap$1, combineLatest, defer, EMPTY, debounceTime, tap as tap$1, Subscription, from, isObservable } from 'rxjs';
|
|
8
8
|
import { switchMap, map, startWith, auditTime, shareReplay, take, tap, distinctUntilChanged, takeUntil, concatMap, catchError } from 'rxjs/operators';
|
|
9
9
|
import { faEllipsisH, faChevronDown, faChevronRight, faSpinner, faFilter, faColumns, faFileDownload } from '@fortawesome/free-solid-svg-icons';
|
|
@@ -19,36 +19,36 @@ import { TheSeamConfirmDialogModule } from '@theseam/ui-common/confirm-dialog';
|
|
|
19
19
|
import * as i2 from '@angular/router';
|
|
20
20
|
import { RouterModule } from '@angular/router';
|
|
21
21
|
import * as i2$1 from '@angular/common';
|
|
22
|
-
import { CommonModule } from '@angular/common';
|
|
23
|
-
import * as
|
|
22
|
+
import { CommonModule, NgTemplateOutlet } from '@angular/common';
|
|
23
|
+
import * as i3 from '@theseam/ui-common/icon';
|
|
24
24
|
import { TheSeamIconModule } from '@theseam/ui-common/icon';
|
|
25
|
-
import * as
|
|
26
|
-
import {
|
|
25
|
+
import * as i9 from '@theseam/ui-common/table-cell-type';
|
|
26
|
+
import { setColumnAlignDefaults, TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type';
|
|
27
|
+
import * as i2$2 from '@angular/forms';
|
|
28
|
+
import { FormGroup, FormControl, FormGroupDirective, ControlContainer, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';
|
|
27
29
|
import * as i1$1 from '@theseam/ui-common/services';
|
|
28
30
|
import * as i7 from '@fortawesome/angular-fontawesome';
|
|
29
31
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
30
|
-
import * as
|
|
31
|
-
import { TheSeamSharedModule } from '@theseam/ui-common/shared';
|
|
32
|
-
import * as
|
|
32
|
+
import * as i8 from '@theseam/ui-common/shared';
|
|
33
|
+
import { TheSeamNgSelectExtraDirective, TheSeamAutoFocusDirective, TheSeamSharedModule } from '@theseam/ui-common/shared';
|
|
34
|
+
import * as i4$2 from '@theseam/ui-common/buttons';
|
|
33
35
|
import { TheSeamButtonsModule } from '@theseam/ui-common/buttons';
|
|
34
|
-
import * as
|
|
36
|
+
import * as i2$3 from '@theseam/ui-common/popover';
|
|
35
37
|
import { TheSeamPopoverModule } from '@theseam/ui-common/popover';
|
|
36
|
-
import * as
|
|
37
|
-
import { TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type';
|
|
38
|
-
import * as i3 from '@theseam/ui-common/form-field';
|
|
39
|
-
import { TheSeamFormFieldModule } from '@theseam/ui-common/form-field';
|
|
40
|
-
import * as i5$1 from '@ng-select/ng-select';
|
|
38
|
+
import * as i3$1 from '@ng-select/ng-select';
|
|
41
39
|
import { NgSelectModule } from '@ng-select/ng-select';
|
|
42
|
-
import * as i4$
|
|
40
|
+
import * as i4$1 from '@theseam/ui-common/form-field';
|
|
41
|
+
import { TheSeamFormFieldModule } from '@theseam/ui-common/form-field';
|
|
42
|
+
import * as i4$3 from '@theseam/ui-common/checkbox';
|
|
43
43
|
import { TheSeamCheckboxComponent } from '@theseam/ui-common/checkbox';
|
|
44
44
|
import * as i3$2 from '@theseam/ui-common/dynamic';
|
|
45
45
|
import { THESEAM_DYNAMIC_DATA } from '@theseam/ui-common/dynamic';
|
|
46
46
|
import * as i1$2 from 'ngx-toastr';
|
|
47
47
|
import { ToastrModule } from 'ngx-toastr';
|
|
48
|
-
import * as i2$
|
|
48
|
+
import * as i2$4 from '@theseam/ui-common/loading';
|
|
49
49
|
import { TheSeamLoadingModule } from '@theseam/ui-common/loading';
|
|
50
50
|
import * as i1$3 from '@theseam/ui-common/modal';
|
|
51
|
-
import * as i2$
|
|
51
|
+
import * as i2$5 from '@theseam/ui-common/dynamic-component-loader';
|
|
52
52
|
import * as i3$3 from '@angular/common/http';
|
|
53
53
|
import { ESCAPE } from '@angular/cdk/keycodes';
|
|
54
54
|
import { TemplatePortal, PortalModule } from '@angular/cdk/portal';
|
|
@@ -77,16 +77,16 @@ class DatatableActionMenuItemComponent {
|
|
|
77
77
|
subMenu;
|
|
78
78
|
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
79
79
|
click = new EventEmitter();
|
|
80
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
81
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
80
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableActionMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableActionMenuItemComponent, isStandalone: false, selector: "seam-datatable-action-menu-item", inputs: { label: "label", href: ["attr.href", "href"], target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", preserveFragment: "preserveFragment", skipLocationChange: "skipLocationChange", replaceUrl: "replaceUrl", state: "state", routerLink: "routerLink", confirmDialog: "confirmDialog", disabled: "disabled", subMenu: "subMenu" }, outputs: { click: "click" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
82
82
|
}
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableActionMenuItemComponent, decorators: [{
|
|
84
84
|
type: Component,
|
|
85
85
|
args: [{
|
|
86
86
|
selector: 'seam-datatable-action-menu-item',
|
|
87
87
|
template: ``,
|
|
88
88
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
89
|
-
standalone: false
|
|
89
|
+
standalone: false,
|
|
90
90
|
}]
|
|
91
91
|
}], propDecorators: { label: [{
|
|
92
92
|
type: Input
|
|
@@ -162,9 +162,10 @@ class DatatableActionMenuComponent {
|
|
|
162
162
|
}
|
|
163
163
|
activateItem(event, item) {
|
|
164
164
|
if (item.confirmDialog) {
|
|
165
|
-
this._confirmDialog
|
|
165
|
+
this._confirmDialog
|
|
166
|
+
.open(item.confirmDialog.message, item.confirmDialog.alert)
|
|
166
167
|
.afterClosed()
|
|
167
|
-
.subscribe(v => {
|
|
168
|
+
.subscribe((v) => {
|
|
168
169
|
if (v === 'confirm') {
|
|
169
170
|
item.click.emit(event);
|
|
170
171
|
if (item.href) {
|
|
@@ -197,7 +198,9 @@ class DatatableActionMenuComponent {
|
|
|
197
198
|
if (item.state) {
|
|
198
199
|
extras.state = item.state;
|
|
199
200
|
}
|
|
200
|
-
const commands = Array.isArray(item.routerLink)
|
|
201
|
+
const commands = Array.isArray(item.routerLink)
|
|
202
|
+
? item.routerLink
|
|
203
|
+
: [item.routerLink];
|
|
201
204
|
this._router.navigate(commands, extras);
|
|
202
205
|
}
|
|
203
206
|
}
|
|
@@ -207,15 +210,15 @@ class DatatableActionMenuComponent {
|
|
|
207
210
|
item.click.emit(event);
|
|
208
211
|
}
|
|
209
212
|
}
|
|
210
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
211
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
213
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableActionMenuComponent, deps: [{ token: i1.SeamConfirmDialogService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
214
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableActionMenuComponent, isStandalone: false, selector: "seam-datatable-action-menu", inputs: { isSubMenu: "isSubMenu" }, queries: [{ propertyName: "items", predicate: DatatableActionMenuItemComponent }], viewQueries: [{ propertyName: "menu", first: true, predicate: MenuComponent, descendants: true, static: true }], exportAs: ["seamDatatableActionMenu"], ngImport: i0, template: "<seam-menu\n #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ng-container\n *ngIf=\"\n (item.routerLink || item.href) && !item.confirmDialog;\n else noRouterLink\n \"\n >\n <a\n *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\"\n >\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"$any(item.fragment)\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"$any(item.preserveFragment)\"\n [skipLocationChange]=\"$any(item.skipLocationChange)\"\n [replaceUrl]=\"$any(item.replaceUrl)\"\n [state]=\"$any(item.state)\"\n [routerLink]=\"item.routerLink\"\n [target]=\"$any(item.target)\"\n (click)=\"activateItem($event, item)\"\n >\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button\n seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [seamMenuToggle]=\"item.subMenu.menu\"\n [seamMenuTogglePositionsOffsetY]=\"-3\"\n >\n {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button\n seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n (click)=\"activateItem($event, item)\"\n >\n {{ item.label }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</seam-menu>\n\n<ng-container *ngIf=\"!isSubMenu && items?.length\">\n <button\n type=\"button\"\n class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\"\n >\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{position:relative;display:flex;align-items:center;justify-content:center;height:100%}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i4.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i4.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuToggle", "menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i4.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }] });
|
|
212
215
|
}
|
|
213
216
|
__decorate([
|
|
214
217
|
InputBoolean()
|
|
215
218
|
], DatatableActionMenuComponent.prototype, "isSubMenu", void 0);
|
|
216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
219
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableActionMenuComponent, decorators: [{
|
|
217
220
|
type: Component,
|
|
218
|
-
args: [{ selector: 'seam-datatable-action-menu', exportAs: 'seamDatatableActionMenu', standalone: false, template: "<seam-menu
|
|
221
|
+
args: [{ selector: 'seam-datatable-action-menu', exportAs: 'seamDatatableActionMenu', standalone: false, template: "<seam-menu\n #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ng-container\n *ngIf=\"\n (item.routerLink || item.href) && !item.confirmDialog;\n else noRouterLink\n \"\n >\n <a\n *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\"\n >\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"$any(item.fragment)\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"$any(item.preserveFragment)\"\n [skipLocationChange]=\"$any(item.skipLocationChange)\"\n [replaceUrl]=\"$any(item.replaceUrl)\"\n [state]=\"$any(item.state)\"\n [routerLink]=\"item.routerLink\"\n [target]=\"$any(item.target)\"\n (click)=\"activateItem($event, item)\"\n >\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button\n seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [seamMenuToggle]=\"item.subMenu.menu\"\n [seamMenuTogglePositionsOffsetY]=\"-3\"\n >\n {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button\n seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n (click)=\"activateItem($event, item)\"\n >\n {{ item.label }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</seam-menu>\n\n<ng-container *ngIf=\"!isSubMenu && items?.length\">\n <button\n type=\"button\"\n class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\"\n >\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{position:relative;display:flex;align-items:center;justify-content:center;height:100%}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"] }]
|
|
219
222
|
}], ctorParameters: () => [{ type: i1.SeamConfirmDialogService }, { type: i2.Router }], propDecorators: { menu: [{
|
|
220
223
|
type: ViewChild,
|
|
221
224
|
args: [MenuComponent, { static: true }]
|
|
@@ -231,14 +234,14 @@ class DatatableCellTplDirective {
|
|
|
231
234
|
constructor(template) {
|
|
232
235
|
this.template = template;
|
|
233
236
|
}
|
|
234
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
235
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
237
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableCellTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
238
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: DatatableCellTplDirective, isStandalone: false, selector: "[seamDatatableCellTpl]", ngImport: i0 });
|
|
236
239
|
}
|
|
237
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableCellTplDirective, decorators: [{
|
|
238
241
|
type: Directive,
|
|
239
242
|
args: [{
|
|
240
243
|
selector: '[seamDatatableCellTpl]',
|
|
241
|
-
standalone: false
|
|
244
|
+
standalone: false,
|
|
242
245
|
}]
|
|
243
246
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
244
247
|
|
|
@@ -250,10 +253,10 @@ class DatatableColumnChangesService {
|
|
|
250
253
|
onInputChange() {
|
|
251
254
|
this.columnInputChanges.next(undefined);
|
|
252
255
|
}
|
|
253
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
254
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
256
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
257
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnChangesService });
|
|
255
258
|
}
|
|
256
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
259
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnChangesService, decorators: [{
|
|
257
260
|
type: Injectable
|
|
258
261
|
}] });
|
|
259
262
|
|
|
@@ -285,6 +288,9 @@ class DatatableColumnComponent {
|
|
|
285
288
|
summaryFunc;
|
|
286
289
|
summaryTemplate;
|
|
287
290
|
hidden;
|
|
291
|
+
align;
|
|
292
|
+
alignHeader;
|
|
293
|
+
alignCell;
|
|
288
294
|
_isFirstChange = true;
|
|
289
295
|
cellTplDirective;
|
|
290
296
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
@@ -307,6 +313,7 @@ class DatatableColumnComponent {
|
|
|
307
313
|
// get treeToggleTemplate(): TemplateRef<any> {
|
|
308
314
|
// return this._treeToggleTemplateInput || this._treeToggleTemplateQuery;
|
|
309
315
|
// }
|
|
316
|
+
__propsChanged = [];
|
|
310
317
|
constructor(_columnChangesService) {
|
|
311
318
|
this._columnChangesService = _columnChangesService;
|
|
312
319
|
}
|
|
@@ -317,6 +324,13 @@ class DatatableColumnComponent {
|
|
|
317
324
|
else {
|
|
318
325
|
this._columnChangesService.onInputChange();
|
|
319
326
|
}
|
|
327
|
+
for (const propName in changes) {
|
|
328
|
+
if (Object.prototype.hasOwnProperty.call(changes, propName)) {
|
|
329
|
+
if (!this.__propsChanged.includes(propName)) {
|
|
330
|
+
this.__propsChanged.push(propName);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
320
334
|
}
|
|
321
335
|
getCellDirective() {
|
|
322
336
|
if (this.cellTplDirective) {
|
|
@@ -324,12 +338,12 @@ class DatatableColumnComponent {
|
|
|
324
338
|
}
|
|
325
339
|
return null;
|
|
326
340
|
}
|
|
327
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
328
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
341
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnComponent, deps: [{ token: DatatableColumnChangesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
342
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableColumnComponent, isStandalone: false, selector: "seam-datatable-column", inputs: { name: "name", prop: "prop", flexGrow: "flexGrow", minWidth: "minWidth", maxWidth: "maxWidth", width: "width", resizeable: "resizeable", sortable: "sortable", draggable: "draggable", canAutoResize: "canAutoResize", comparator: "comparator", headerTemplate: "headerTemplate", checkboxable: "checkboxable", headerCheckboxable: "headerCheckboxable", headerClass: "headerClass", cellClass: "cellClass", frozenLeft: "frozenLeft", frozenRight: "frozenRight", pipe: "pipe", isTreeColumn: "isTreeColumn", treeLevelIndent: "treeLevelIndent", summaryFunc: "summaryFunc", summaryTemplate: "summaryTemplate", hidden: "hidden", align: "align", alignHeader: "alignHeader", alignCell: "alignCell", _cellTemplateInput: ["cellTemplate", "_cellTemplateInput"] }, queries: [{ propertyName: "cellTplDirective", first: true, predicate: DatatableCellTplDirective, descendants: true, static: true }, { propertyName: "_cellTemplateQuery", first: true, predicate: DatatableCellTplDirective, descendants: true, read: TemplateRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<p>datatable-column works!</p>\n", styles: [""] });
|
|
329
343
|
}
|
|
330
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnComponent, decorators: [{
|
|
331
345
|
type: Component,
|
|
332
|
-
args: [{ selector: 'seam-datatable-column', standalone: false, template: "<p
|
|
346
|
+
args: [{ selector: 'seam-datatable-column', standalone: false, template: "<p>datatable-column works!</p>\n" }]
|
|
333
347
|
}], ctorParameters: () => [{ type: DatatableColumnChangesService }], propDecorators: { name: [{
|
|
334
348
|
type: Input
|
|
335
349
|
}], prop: [{
|
|
@@ -378,6 +392,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
378
392
|
type: Input
|
|
379
393
|
}], hidden: [{
|
|
380
394
|
type: Input
|
|
395
|
+
}], align: [{
|
|
396
|
+
type: Input
|
|
397
|
+
}], alignHeader: [{
|
|
398
|
+
type: Input
|
|
399
|
+
}], alignCell: [{
|
|
400
|
+
type: Input
|
|
381
401
|
}], cellTplDirective: [{
|
|
382
402
|
type: ContentChild,
|
|
383
403
|
args: [DatatableCellTplDirective, { static: true }]
|
|
@@ -388,20 +408,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
388
408
|
type: ContentChild,
|
|
389
409
|
args: [DatatableCellTplDirective, { read: TemplateRef, static: true }]
|
|
390
410
|
}] } });
|
|
411
|
+
/**
|
|
412
|
+
* Check if a column is bound to a property.
|
|
413
|
+
*
|
|
414
|
+
* This is not guaranteed to be 100% accurate in all cases, but Angular seems
|
|
415
|
+
* to now define properties on the instance for all inputs. So, just relying
|
|
416
|
+
* on defined properties determine if bound will not work. The workaround is
|
|
417
|
+
* to track changes in `ngOnChanges` and use that to determine if a property
|
|
418
|
+
* is bound.
|
|
419
|
+
*
|
|
420
|
+
* NOTE: This is not an instance method, because the way we are handling the
|
|
421
|
+
* instance was causing the method to not be available where needed.
|
|
422
|
+
*
|
|
423
|
+
* @param column the column to check
|
|
424
|
+
* @param propName name of an input property
|
|
425
|
+
* @returns true if the property is bound, false otherwise
|
|
426
|
+
*/
|
|
427
|
+
function isColumnBoundToProp(column, propName) {
|
|
428
|
+
return column.__propsChanged.includes(propName);
|
|
429
|
+
}
|
|
391
430
|
|
|
392
431
|
class DatatableFooterTplDirective {
|
|
393
432
|
template;
|
|
394
433
|
constructor(template) {
|
|
395
434
|
this.template = template;
|
|
396
435
|
}
|
|
397
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
398
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
436
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableFooterTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
437
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: DatatableFooterTplDirective, isStandalone: false, selector: "[seamDatatableFooterTpl]", ngImport: i0 });
|
|
399
438
|
}
|
|
400
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
439
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableFooterTplDirective, decorators: [{
|
|
401
440
|
type: Directive,
|
|
402
441
|
args: [{
|
|
403
442
|
selector: '[seamDatatableFooterTpl]',
|
|
404
|
-
standalone: false
|
|
443
|
+
standalone: false,
|
|
405
444
|
}]
|
|
406
445
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
407
446
|
|
|
@@ -412,22 +451,25 @@ class TheSeamDatatableFooterDirective {
|
|
|
412
451
|
get template() {
|
|
413
452
|
return this._templateInput || this._templateQuery;
|
|
414
453
|
}
|
|
415
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
416
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
454
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
455
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: TheSeamDatatableFooterDirective, isStandalone: false, selector: "seam-datatable-footer", inputs: { _templateInput: ["template", "_templateInput"] }, queries: [{ propertyName: "_templateQuery", first: true, predicate: DatatableFooterTplDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0 });
|
|
417
456
|
}
|
|
418
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
457
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableFooterDirective, decorators: [{
|
|
419
458
|
type: Directive,
|
|
420
459
|
args: [{
|
|
421
460
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
422
461
|
selector: 'seam-datatable-footer',
|
|
423
|
-
standalone: false
|
|
462
|
+
standalone: false,
|
|
424
463
|
}]
|
|
425
464
|
}], propDecorators: { _templateInput: [{
|
|
426
465
|
type: Input,
|
|
427
466
|
args: ['template']
|
|
428
467
|
}], _templateQuery: [{
|
|
429
468
|
type: ContentChild,
|
|
430
|
-
args: [DatatableFooterTplDirective, {
|
|
469
|
+
args: [DatatableFooterTplDirective, {
|
|
470
|
+
read: TemplateRef,
|
|
471
|
+
static: true,
|
|
472
|
+
}]
|
|
431
473
|
}] } });
|
|
432
474
|
|
|
433
475
|
class DatatableFilterDirective {
|
|
@@ -440,14 +482,14 @@ class DatatableFilterDirective {
|
|
|
440
482
|
get filter() {
|
|
441
483
|
return this._filter;
|
|
442
484
|
}
|
|
443
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
444
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
485
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableFilterDirective, deps: [{ token: THESEAM_DATA_FILTER, self: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
486
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: DatatableFilterDirective, isStandalone: false, selector: "[seamDatatableFilter]", ngImport: i0 });
|
|
445
487
|
}
|
|
446
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
488
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableFilterDirective, decorators: [{
|
|
447
489
|
type: Directive,
|
|
448
490
|
args: [{
|
|
449
491
|
selector: '[seamDatatableFilter]',
|
|
450
|
-
standalone: false
|
|
492
|
+
standalone: false,
|
|
451
493
|
}]
|
|
452
494
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
453
495
|
type: Self
|
|
@@ -458,8 +500,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
458
500
|
|
|
459
501
|
const _THESEAM_DATA_FILTER_CONTAINER = {
|
|
460
502
|
provide: THESEAM_DATA_FILTER_CONTAINER,
|
|
461
|
-
|
|
462
|
-
useExisting: forwardRef(() => DatatableMenuBarComponent)
|
|
503
|
+
useExisting: forwardRef(() => DatatableMenuBarComponent),
|
|
463
504
|
};
|
|
464
505
|
class DatatableMenuBarComponent {
|
|
465
506
|
get filterDirectives() {
|
|
@@ -474,10 +515,9 @@ class DatatableMenuBarComponent {
|
|
|
474
515
|
filtersChanged = new EventEmitter();
|
|
475
516
|
filters() {
|
|
476
517
|
const fDirectives = this._filterDirectives
|
|
477
|
-
? this._filterDirectives.map(f => f.filter).filter(notNullOrUndefined)
|
|
518
|
+
? this._filterDirectives.map((f) => f.filter).filter(notNullOrUndefined)
|
|
478
519
|
: [];
|
|
479
|
-
const fArr = this._filtersArr
|
|
480
|
-
.filter(f => fDirectives.findIndex(fd => fd.uid === f.uid) === -1);
|
|
520
|
+
const fArr = this._filtersArr.filter((f) => fDirectives.findIndex((fd) => fd.uid === f.uid) === -1);
|
|
481
521
|
return [...fArr, ...fDirectives];
|
|
482
522
|
}
|
|
483
523
|
addFilter(dataFilter) {
|
|
@@ -485,13 +525,13 @@ class DatatableMenuBarComponent {
|
|
|
485
525
|
this.filtersChanged.emit(this.filters());
|
|
486
526
|
}
|
|
487
527
|
removeFilter(dataFilter) {
|
|
488
|
-
this._filtersArr = this._filtersArr.filter(f => f !== dataFilter);
|
|
528
|
+
this._filtersArr = this._filtersArr.filter((f) => f !== dataFilter);
|
|
489
529
|
this.filtersChanged.emit(this.filters());
|
|
490
530
|
}
|
|
491
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
492
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
531
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
532
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableMenuBarComponent, isStandalone: false, selector: "seam-datatable-menu-bar", providers: [_THESEAM_DATA_FILTER_CONTAINER], queries: [{ propertyName: "filterDirectives", predicate: DatatableFilterDirective }], ngImport: i0, template: "<div class=\"bg-light border rounded p-2\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:block}\n"] });
|
|
493
533
|
}
|
|
494
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
534
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarComponent, decorators: [{
|
|
495
535
|
type: Component,
|
|
496
536
|
args: [{ selector: 'seam-datatable-menu-bar', providers: [_THESEAM_DATA_FILTER_CONTAINER], standalone: false, template: "<div class=\"bg-light border rounded p-2\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:block}\n"] }]
|
|
497
537
|
}], propDecorators: { filterDirectives: [{
|
|
@@ -504,14 +544,14 @@ class DatatableRowDetailTplDirective {
|
|
|
504
544
|
constructor(template) {
|
|
505
545
|
this.template = template;
|
|
506
546
|
}
|
|
507
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
508
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
547
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableRowDetailTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
548
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: DatatableRowDetailTplDirective, isStandalone: false, selector: "[seamDatatableRowDetailTpl]", ngImport: i0 });
|
|
509
549
|
}
|
|
510
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
550
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableRowDetailTplDirective, decorators: [{
|
|
511
551
|
type: Directive,
|
|
512
552
|
args: [{
|
|
513
553
|
selector: '[seamDatatableRowDetailTpl]',
|
|
514
|
-
standalone: false
|
|
554
|
+
standalone: false,
|
|
515
555
|
}]
|
|
516
556
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
517
557
|
|
|
@@ -531,6 +571,7 @@ class TheSeamDatatableRowDetailDirective {
|
|
|
531
571
|
* Row detail row visbility was toggled.
|
|
532
572
|
*/
|
|
533
573
|
// NOTE: This will trigger from the internal ngx-datatable toggle event.
|
|
574
|
+
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
534
575
|
toggle = new EventEmitter();
|
|
535
576
|
/**
|
|
536
577
|
* Internal use for wrapper only.
|
|
@@ -548,7 +589,7 @@ class TheSeamDatatableRowDetailDirective {
|
|
|
548
589
|
toggleExpandRow(row) {
|
|
549
590
|
this._toggle.emit({
|
|
550
591
|
type: 'row',
|
|
551
|
-
value: row
|
|
592
|
+
value: row,
|
|
552
593
|
});
|
|
553
594
|
}
|
|
554
595
|
/**
|
|
@@ -557,7 +598,7 @@ class TheSeamDatatableRowDetailDirective {
|
|
|
557
598
|
expandAllRows() {
|
|
558
599
|
this._toggle.emit({
|
|
559
600
|
type: 'all',
|
|
560
|
-
value: true
|
|
601
|
+
value: true,
|
|
561
602
|
});
|
|
562
603
|
}
|
|
563
604
|
/**
|
|
@@ -566,18 +607,18 @@ class TheSeamDatatableRowDetailDirective {
|
|
|
566
607
|
collapseAllRows() {
|
|
567
608
|
this._toggle.emit({
|
|
568
609
|
type: 'all',
|
|
569
|
-
value: false
|
|
610
|
+
value: false,
|
|
570
611
|
});
|
|
571
612
|
}
|
|
572
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
573
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
613
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableRowDetailDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
614
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: TheSeamDatatableRowDetailDirective, isStandalone: false, selector: "seam-datatable-row-detail", inputs: { rowHeight: "rowHeight", _templateInput: ["template", "_templateInput"] }, outputs: { toggle: "toggle" }, queries: [{ propertyName: "_templateQuery", first: true, predicate: DatatableRowDetailTplDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0 });
|
|
574
615
|
}
|
|
575
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
616
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableRowDetailDirective, decorators: [{
|
|
576
617
|
type: Directive,
|
|
577
618
|
args: [{
|
|
578
619
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
579
620
|
selector: 'seam-datatable-row-detail',
|
|
580
|
-
standalone: false
|
|
621
|
+
standalone: false,
|
|
581
622
|
}]
|
|
582
623
|
}], propDecorators: { rowHeight: [{
|
|
583
624
|
type: Input
|
|
@@ -586,7 +627,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
586
627
|
args: ['template']
|
|
587
628
|
}], _templateQuery: [{
|
|
588
629
|
type: ContentChild,
|
|
589
|
-
args: [DatatableRowDetailTplDirective, {
|
|
630
|
+
args: [DatatableRowDetailTplDirective, {
|
|
631
|
+
read: TemplateRef,
|
|
632
|
+
static: true,
|
|
633
|
+
}]
|
|
590
634
|
}], toggle: [{
|
|
591
635
|
type: Output
|
|
592
636
|
}] } });
|
|
@@ -596,14 +640,14 @@ class DatatableRowActionItemDirective {
|
|
|
596
640
|
constructor(template) {
|
|
597
641
|
this.template = template;
|
|
598
642
|
}
|
|
599
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
600
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
643
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableRowActionItemDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
644
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: DatatableRowActionItemDirective, isStandalone: false, selector: "[seamDatatableRowActionItem]", ngImport: i0 });
|
|
601
645
|
}
|
|
602
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
646
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableRowActionItemDirective, decorators: [{
|
|
603
647
|
type: Directive,
|
|
604
648
|
args: [{
|
|
605
649
|
selector: '[seamDatatableRowActionItem]',
|
|
606
|
-
standalone: false
|
|
650
|
+
standalone: false,
|
|
607
651
|
}]
|
|
608
652
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
609
653
|
|
|
@@ -614,25 +658,25 @@ class DatatableDataSource extends DataSource {
|
|
|
614
658
|
page$;
|
|
615
659
|
constructor() {
|
|
616
660
|
super();
|
|
617
|
-
this.sorts$ = this._datatableSubject.pipe(switchMap(_datatable => {
|
|
661
|
+
this.sorts$ = this._datatableSubject.pipe(switchMap((_datatable) => {
|
|
618
662
|
if (!_datatable) {
|
|
619
663
|
return of([]);
|
|
620
664
|
}
|
|
621
|
-
return _datatable.sort.pipe(map(v => v.sorts), startWith(_datatable.sorts));
|
|
665
|
+
return _datatable.sort.pipe(map((v) => v.sorts), startWith(_datatable.sorts));
|
|
622
666
|
}));
|
|
623
|
-
this.filterStates$ = this._datatableSubject.pipe(switchMap(_datatable => {
|
|
667
|
+
this.filterStates$ = this._datatableSubject.pipe(switchMap((_datatable) => {
|
|
624
668
|
if (!_datatable) {
|
|
625
669
|
return of([]);
|
|
626
670
|
}
|
|
627
671
|
return _datatable.filterStates;
|
|
628
672
|
}));
|
|
629
|
-
this.page$ = this._datatableSubject.pipe(switchMap(_datatable => {
|
|
673
|
+
this.page$ = this._datatableSubject.pipe(switchMap((_datatable) => {
|
|
630
674
|
if (!_datatable) {
|
|
631
675
|
return of({
|
|
632
676
|
offset: 0,
|
|
633
677
|
pageSize: 0,
|
|
634
678
|
limit: undefined,
|
|
635
|
-
count: 0
|
|
679
|
+
count: 0,
|
|
636
680
|
});
|
|
637
681
|
}
|
|
638
682
|
return _datatable.page.pipe(startWith(_datatable.pageInfo));
|
|
@@ -695,6 +739,7 @@ function setColumnDefaults(columns) {
|
|
|
695
739
|
if (!Object.prototype.hasOwnProperty.call(column, 'hidden')) {
|
|
696
740
|
column.hidden = false;
|
|
697
741
|
}
|
|
742
|
+
setColumnAlignDefaults(column);
|
|
698
743
|
}
|
|
699
744
|
setColumnDefaults$1(columns);
|
|
700
745
|
}
|
|
@@ -731,7 +776,7 @@ const THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_TYPES = [
|
|
|
731
776
|
'blank',
|
|
732
777
|
'not-blank',
|
|
733
778
|
'between',
|
|
734
|
-
'not-between'
|
|
779
|
+
'not-between',
|
|
735
780
|
];
|
|
736
781
|
const THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES = [
|
|
737
782
|
'lt',
|
|
@@ -742,7 +787,7 @@ const THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES = [
|
|
|
742
787
|
];
|
|
743
788
|
const THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES = [
|
|
744
789
|
'between',
|
|
745
|
-
'not-between'
|
|
790
|
+
'not-between',
|
|
746
791
|
];
|
|
747
792
|
const THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES = [
|
|
748
793
|
'blank',
|
|
@@ -758,7 +803,7 @@ const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_TYPES = [
|
|
|
758
803
|
'blank',
|
|
759
804
|
'not-blank',
|
|
760
805
|
'between',
|
|
761
|
-
'not-between'
|
|
806
|
+
'not-between',
|
|
762
807
|
];
|
|
763
808
|
const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES = [
|
|
764
809
|
'gt',
|
|
@@ -769,7 +814,7 @@ const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES = [
|
|
|
769
814
|
];
|
|
770
815
|
const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES = [
|
|
771
816
|
'between',
|
|
772
|
-
'not-between'
|
|
817
|
+
'not-between',
|
|
773
818
|
];
|
|
774
819
|
const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES = [
|
|
775
820
|
'blank',
|
|
@@ -782,7 +827,7 @@ const THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_TYPES = [
|
|
|
782
827
|
'eq',
|
|
783
828
|
'neq',
|
|
784
829
|
'blank',
|
|
785
|
-
'not-blank'
|
|
830
|
+
'not-blank',
|
|
786
831
|
];
|
|
787
832
|
const THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES = [
|
|
788
833
|
'contains',
|
|
@@ -792,7 +837,7 @@ const THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES = [
|
|
|
792
837
|
];
|
|
793
838
|
const THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES = [
|
|
794
839
|
'blank',
|
|
795
|
-
'not-blank'
|
|
840
|
+
'not-blank',
|
|
796
841
|
];
|
|
797
842
|
|
|
798
843
|
class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
@@ -801,7 +846,7 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
801
846
|
form;
|
|
802
847
|
filterStateChanges;
|
|
803
848
|
options;
|
|
804
|
-
_updateFilterValue = new Subject;
|
|
849
|
+
_updateFilterValue = new Subject();
|
|
805
850
|
constructor(prop, initialValue, column) {
|
|
806
851
|
super(prop, initialValue, column);
|
|
807
852
|
this.form = new FormGroup({
|
|
@@ -813,7 +858,7 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
813
858
|
this.uid = `${this.name}--${prop}`;
|
|
814
859
|
this.filterStateChanges = this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.filterState()));
|
|
815
860
|
this.options = {
|
|
816
|
-
dateType: this.column.filterOptions?.dateType || 'date'
|
|
861
|
+
dateType: this.column.filterOptions?.dateType || 'date',
|
|
817
862
|
};
|
|
818
863
|
}
|
|
819
864
|
dataFilter(data, filterValue, options) {
|
|
@@ -823,23 +868,28 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
823
868
|
return this._dateSearchDataFilter(this.prop, data, filterValue.searchText, filterValue.fromText, filterValue.toText, filterValue.searchType || null);
|
|
824
869
|
}
|
|
825
870
|
_isInvalidDate(dateString) {
|
|
826
|
-
return isNullOrUndefinedOrEmpty(dateString) ||
|
|
871
|
+
return (isNullOrUndefinedOrEmpty(dateString) ||
|
|
872
|
+
isNaN(new Date(dateString).valueOf()));
|
|
827
873
|
}
|
|
828
874
|
_isInvalidSearchTerm(searchText, fromText, toText, comparator) {
|
|
829
|
-
if (THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(comparator) &&
|
|
875
|
+
if (THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(comparator) &&
|
|
876
|
+
this._isInvalidDate(searchText)) {
|
|
830
877
|
return true;
|
|
831
878
|
}
|
|
832
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(comparator) &&
|
|
879
|
+
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(comparator) &&
|
|
880
|
+
(this._isInvalidDate(fromText) || this._isInvalidDate(toText))) {
|
|
833
881
|
return true;
|
|
834
882
|
}
|
|
835
883
|
return false;
|
|
836
884
|
}
|
|
837
885
|
_dateSearchDataFilter(prop, data, text, fromText, toText, comparator) {
|
|
838
886
|
if (!data || data.length <= 0 || isNullOrUndefined(comparator)) {
|
|
887
|
+
// eslint-disable-next-line no-console
|
|
839
888
|
console.warn('No filter applied - invalid options.');
|
|
840
889
|
return data;
|
|
841
890
|
}
|
|
842
891
|
if (this._isInvalidSearchTerm(text, fromText, toText, comparator)) {
|
|
892
|
+
// eslint-disable-next-line no-console
|
|
843
893
|
console.warn('No filter applied - invalid search terms.');
|
|
844
894
|
return data;
|
|
845
895
|
}
|
|
@@ -847,17 +897,25 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
847
897
|
const textDate = getFormattedDateForComparison(text, this.options.dateType, true);
|
|
848
898
|
const fromTextDate = getFormattedDateForComparison(fromText, this.options.dateType, true);
|
|
849
899
|
const toTextDate = getFormattedDateForComparison(toText, this.options.dateType, true);
|
|
850
|
-
return data.filter(item => {
|
|
851
|
-
|
|
852
|
-
if ((comparator === 'blank' &&
|
|
853
|
-
(
|
|
900
|
+
return data.filter((item) => {
|
|
901
|
+
const propDate = getFormattedDateForComparison(item[prop], this.options.dateType, useLocalTime);
|
|
902
|
+
if ((comparator === 'blank' &&
|
|
903
|
+
(isNullOrUndefined(item[prop]) ||
|
|
904
|
+
isNullOrUndefinedOrEmpty(`${item[prop]}`))) ||
|
|
905
|
+
(comparator === 'not-blank' &&
|
|
906
|
+
notNullOrUndefined(item[prop]) &&
|
|
907
|
+
notNullOrUndefinedOrEmpty(`${item[prop]}`)) ||
|
|
854
908
|
(comparator === 'lt' && propDate.valueOf() < textDate.valueOf()) ||
|
|
855
909
|
(comparator === 'lte' && propDate.valueOf() <= textDate.valueOf()) ||
|
|
856
910
|
(comparator === 'gt' && propDate.valueOf() > textDate.valueOf()) ||
|
|
857
911
|
(comparator === 'gte' && propDate.valueOf() >= textDate.valueOf()) ||
|
|
858
912
|
(comparator === 'eq' && propDate.valueOf() === textDate.valueOf()) ||
|
|
859
|
-
(comparator === 'between' &&
|
|
860
|
-
|
|
913
|
+
(comparator === 'between' &&
|
|
914
|
+
propDate.valueOf() >= fromTextDate.valueOf() &&
|
|
915
|
+
propDate.valueOf() <= toTextDate.valueOf()) ||
|
|
916
|
+
(comparator === 'not-between' &&
|
|
917
|
+
!(propDate.valueOf() >= fromTextDate.valueOf() &&
|
|
918
|
+
propDate.valueOf() <= toTextDate.valueOf()))) {
|
|
861
919
|
return true;
|
|
862
920
|
}
|
|
863
921
|
return false;
|
|
@@ -872,8 +930,8 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
872
930
|
state: {
|
|
873
931
|
prop: this.prop,
|
|
874
932
|
formValue: this.form.value,
|
|
875
|
-
options: this.options
|
|
876
|
-
}
|
|
933
|
+
options: this.options,
|
|
934
|
+
},
|
|
877
935
|
};
|
|
878
936
|
}
|
|
879
937
|
applyFilter() {
|
|
@@ -884,7 +942,7 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
884
942
|
searchType: 'eq',
|
|
885
943
|
searchText: null,
|
|
886
944
|
fromText: null,
|
|
887
|
-
toText: null
|
|
945
|
+
toText: null,
|
|
888
946
|
});
|
|
889
947
|
this._updateFilterValue.next();
|
|
890
948
|
}
|
|
@@ -896,10 +954,13 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
896
954
|
if (THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
|
|
897
955
|
return false;
|
|
898
956
|
}
|
|
899
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
957
|
+
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
958
|
+
notNullOrUndefinedOrEmpty(formValue.searchText)) {
|
|
900
959
|
return false;
|
|
901
960
|
}
|
|
902
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
961
|
+
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
962
|
+
notNullOrUndefinedOrEmpty(formValue.fromText) &&
|
|
963
|
+
notNullOrUndefinedOrEmpty(formValue.toText)) {
|
|
903
964
|
return false;
|
|
904
965
|
}
|
|
905
966
|
return true;
|
|
@@ -912,7 +973,7 @@ class SearchNumericColumnsDataFilter extends ColumnsDataFilter {
|
|
|
912
973
|
form;
|
|
913
974
|
filterStateChanges;
|
|
914
975
|
options;
|
|
915
|
-
_updateFilterValue = new Subject;
|
|
976
|
+
_updateFilterValue = new Subject();
|
|
916
977
|
constructor(prop, initialValue, column) {
|
|
917
978
|
super(prop, initialValue, column);
|
|
918
979
|
this.form = new FormGroup({
|
|
@@ -931,37 +992,52 @@ class SearchNumericColumnsDataFilter extends ColumnsDataFilter {
|
|
|
931
992
|
return this.numberSearchDataFilter(this.prop, data, filterValue.searchText, filterValue.fromText, filterValue.toText, filterValue.searchType || null);
|
|
932
993
|
}
|
|
933
994
|
_isInvalidSearchTerm(searchText, fromText, toText, comparator) {
|
|
934
|
-
if (isNaN(searchText) &&
|
|
995
|
+
if (isNaN(searchText) &&
|
|
996
|
+
THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(comparator)) {
|
|
935
997
|
return true;
|
|
936
998
|
}
|
|
937
|
-
else if ((isNaN(fromText) || isNaN(toText)) &&
|
|
999
|
+
else if ((isNaN(fromText) || isNaN(toText)) &&
|
|
1000
|
+
THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(comparator)) {
|
|
938
1001
|
return true;
|
|
939
1002
|
}
|
|
940
1003
|
return false;
|
|
941
1004
|
}
|
|
942
1005
|
numberSearchDataFilter(prop, data, text, fromText, toText, comparator) {
|
|
943
1006
|
if (!data || data.length <= 0 || isNullOrUndefined(comparator)) {
|
|
1007
|
+
// eslint-disable-next-line no-console
|
|
944
1008
|
console.warn('No filter applied - invalid options.');
|
|
945
1009
|
return data;
|
|
946
1010
|
}
|
|
947
1011
|
const textNumeric = notNullOrUndefinedOrEmpty(text) ? parseFloat(text) : NaN;
|
|
948
|
-
const toTextNumeric = notNullOrUndefinedOrEmpty(toText)
|
|
949
|
-
|
|
1012
|
+
const toTextNumeric = notNullOrUndefinedOrEmpty(toText)
|
|
1013
|
+
? parseFloat(toText)
|
|
1014
|
+
: NaN;
|
|
1015
|
+
const fromTextNumeric = notNullOrUndefinedOrEmpty(fromText)
|
|
1016
|
+
? parseFloat(fromText)
|
|
1017
|
+
: NaN;
|
|
950
1018
|
if (this._isInvalidSearchTerm(textNumeric, fromTextNumeric, toTextNumeric, comparator)) {
|
|
1019
|
+
// eslint-disable-next-line no-console
|
|
951
1020
|
console.warn('No filter applied - invalid search terms.');
|
|
952
1021
|
return data;
|
|
953
1022
|
}
|
|
954
|
-
return data.filter(item => {
|
|
955
|
-
|
|
956
|
-
if ((comparator === 'blank' &&
|
|
957
|
-
(
|
|
1023
|
+
return data.filter((item) => {
|
|
1024
|
+
const propNumeric = parseFloat(item[prop]);
|
|
1025
|
+
if ((comparator === 'blank' &&
|
|
1026
|
+
(isNullOrUndefined(item[prop]) ||
|
|
1027
|
+
isNullOrUndefinedOrEmpty(`${item[prop]}`))) ||
|
|
1028
|
+
(comparator === 'not-blank' &&
|
|
1029
|
+
notNullOrUndefined(item[prop]) &&
|
|
1030
|
+
notNullOrUndefinedOrEmpty(`${item[prop]}`)) ||
|
|
958
1031
|
(comparator === 'lt' && propNumeric < textNumeric) ||
|
|
959
1032
|
(comparator === 'lte' && propNumeric <= textNumeric) ||
|
|
960
1033
|
(comparator === 'gt' && propNumeric > textNumeric) ||
|
|
961
1034
|
(comparator === 'gte' && propNumeric >= textNumeric) ||
|
|
962
1035
|
(comparator === 'eq' && propNumeric === textNumeric) ||
|
|
963
|
-
(comparator === 'between' &&
|
|
964
|
-
|
|
1036
|
+
(comparator === 'between' &&
|
|
1037
|
+
propNumeric >= fromTextNumeric &&
|
|
1038
|
+
propNumeric <= toTextNumeric) ||
|
|
1039
|
+
(comparator === 'not-between' &&
|
|
1040
|
+
!(propNumeric >= fromTextNumeric && propNumeric <= toTextNumeric))) {
|
|
965
1041
|
return true;
|
|
966
1042
|
}
|
|
967
1043
|
return false;
|
|
@@ -975,8 +1051,8 @@ class SearchNumericColumnsDataFilter extends ColumnsDataFilter {
|
|
|
975
1051
|
name: this.name,
|
|
976
1052
|
state: {
|
|
977
1053
|
prop: this.prop,
|
|
978
|
-
formValue: this.form.value
|
|
979
|
-
}
|
|
1054
|
+
formValue: this.form.value,
|
|
1055
|
+
},
|
|
980
1056
|
};
|
|
981
1057
|
}
|
|
982
1058
|
applyFilter() {
|
|
@@ -987,7 +1063,7 @@ class SearchNumericColumnsDataFilter extends ColumnsDataFilter {
|
|
|
987
1063
|
searchType: 'eq',
|
|
988
1064
|
searchText: null,
|
|
989
1065
|
fromText: null,
|
|
990
|
-
toText: null
|
|
1066
|
+
toText: null,
|
|
991
1067
|
});
|
|
992
1068
|
this._updateFilterValue.next();
|
|
993
1069
|
}
|
|
@@ -999,10 +1075,13 @@ class SearchNumericColumnsDataFilter extends ColumnsDataFilter {
|
|
|
999
1075
|
else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
|
|
1000
1076
|
return false;
|
|
1001
1077
|
}
|
|
1002
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
1078
|
+
else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
1079
|
+
notNullOrUndefinedOrEmpty(formValue.searchText)) {
|
|
1003
1080
|
return false;
|
|
1004
1081
|
}
|
|
1005
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
1082
|
+
else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
1083
|
+
notNullOrUndefinedOrEmpty(formValue.fromText) &&
|
|
1084
|
+
notNullOrUndefinedOrEmpty(formValue.toText)) {
|
|
1006
1085
|
return false;
|
|
1007
1086
|
}
|
|
1008
1087
|
return true;
|
|
@@ -1015,11 +1094,13 @@ class SearchTextColumnsDataFilter extends ColumnsDataFilter {
|
|
|
1015
1094
|
form;
|
|
1016
1095
|
filterStateChanges;
|
|
1017
1096
|
options;
|
|
1018
|
-
_updateFilterValue = new Subject;
|
|
1097
|
+
_updateFilterValue = new Subject();
|
|
1019
1098
|
constructor(prop, initialValue, column) {
|
|
1020
1099
|
super(prop, initialValue, column);
|
|
1021
1100
|
this.form = new FormGroup({
|
|
1022
|
-
searchType: new FormControl(notNullOrUndefined(initialValue)
|
|
1101
|
+
searchType: new FormControl(notNullOrUndefined(initialValue)
|
|
1102
|
+
? initialValue.searchType
|
|
1103
|
+
: 'contains'),
|
|
1023
1104
|
searchText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchText : null),
|
|
1024
1105
|
// caseSensitive: new FormControl<boolean | null>(notNullOrUndefined(initialValue) ? initialValue.caseSensitive : null),
|
|
1025
1106
|
});
|
|
@@ -1036,7 +1117,7 @@ class SearchTextColumnsDataFilter extends ColumnsDataFilter {
|
|
|
1036
1117
|
if (!data || data.length < 0 || isNullOrUndefined(comparator)) {
|
|
1037
1118
|
return data;
|
|
1038
1119
|
}
|
|
1039
|
-
return data.filter(item => {
|
|
1120
|
+
return data.filter((item) => {
|
|
1040
1121
|
let value1 = `${notNullOrUndefined(item[prop]) ? item[prop] : ''}`;
|
|
1041
1122
|
let value2 = text || '';
|
|
1042
1123
|
// if (!options.caseSensitive) {
|
|
@@ -1065,7 +1146,7 @@ class SearchTextColumnsDataFilter extends ColumnsDataFilter {
|
|
|
1065
1146
|
state: {
|
|
1066
1147
|
prop: this.prop,
|
|
1067
1148
|
formValue: this.form.value,
|
|
1068
|
-
}
|
|
1149
|
+
},
|
|
1069
1150
|
};
|
|
1070
1151
|
}
|
|
1071
1152
|
applyFilter() {
|
|
@@ -1084,7 +1165,8 @@ class SearchTextColumnsDataFilter extends ColumnsDataFilter {
|
|
|
1084
1165
|
if (isNullOrUndefinedOrEmpty(formValue.searchType)) {
|
|
1085
1166
|
return true;
|
|
1086
1167
|
}
|
|
1087
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
1168
|
+
else if (THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
1169
|
+
notNullOrUndefinedOrEmpty(formValue.searchText)) {
|
|
1088
1170
|
return false;
|
|
1089
1171
|
}
|
|
1090
1172
|
else if (THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
|
|
@@ -1095,9 +1177,18 @@ class SearchTextColumnsDataFilter extends ColumnsDataFilter {
|
|
|
1095
1177
|
}
|
|
1096
1178
|
|
|
1097
1179
|
const THESEAM_COLUMNS_DATA_FILTERS_DEFAULT = [
|
|
1098
|
-
{
|
|
1099
|
-
|
|
1100
|
-
|
|
1180
|
+
{
|
|
1181
|
+
name: THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME,
|
|
1182
|
+
class: SearchTextColumnsDataFilter,
|
|
1183
|
+
},
|
|
1184
|
+
{
|
|
1185
|
+
name: THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME,
|
|
1186
|
+
class: SearchNumericColumnsDataFilter,
|
|
1187
|
+
},
|
|
1188
|
+
{
|
|
1189
|
+
name: THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME,
|
|
1190
|
+
class: SearchDateColumnsDataFilter,
|
|
1191
|
+
},
|
|
1101
1192
|
];
|
|
1102
1193
|
const getFormattedDateForComparison = (date, dateType, setToLocalTime = false) => {
|
|
1103
1194
|
const dateObj = new Date(notNullOrUndefined(date) ? date : '');
|
|
@@ -1122,15 +1213,13 @@ class ColumnsFiltersService {
|
|
|
1122
1213
|
_columnFilterTemplates = new BehaviorSubject([]);
|
|
1123
1214
|
columnFilterTemplates$ = this._columnFilterTemplates.asObservable();
|
|
1124
1215
|
_columns = new BehaviorSubject([]);
|
|
1125
|
-
columnsFilters$ = this._columns.pipe(map$1(columns => columns
|
|
1126
|
-
|
|
1127
|
-
.filter(notNullOrUndefined)));
|
|
1128
|
-
columnActiveFilterProps$ = this.columnsFilters$.pipe(switchMap$1(filters => {
|
|
1216
|
+
columnsFilters$ = this._columns.pipe(map$1((columns) => columns.map((col) => col.$$filter).filter(notNullOrUndefined)));
|
|
1217
|
+
columnActiveFilterProps$ = this.columnsFilters$.pipe(switchMap$1((filters) => {
|
|
1129
1218
|
if (!filters.length) {
|
|
1130
1219
|
return of([]);
|
|
1131
1220
|
}
|
|
1132
|
-
return combineLatest(filters.map(f => f.filterStateChanges.pipe(map$1((filterState) => !f.isDefault() ? filterState.state.prop : null))));
|
|
1133
|
-
}), map$1(props => props.filter(notNullOrUndefined)));
|
|
1221
|
+
return combineLatest(filters.map((f) => f.filterStateChanges.pipe(map$1((filterState) => !f.isDefault() ? filterState.state.prop : null))));
|
|
1222
|
+
}), map$1((props) => props.filter(notNullOrUndefined)));
|
|
1134
1223
|
constructor(_customColumnsDataFilters) {
|
|
1135
1224
|
this._customColumnsDataFilters = _customColumnsDataFilters;
|
|
1136
1225
|
}
|
|
@@ -1148,19 +1237,19 @@ class ColumnsFiltersService {
|
|
|
1148
1237
|
const filterClass = this._getColumnsDataFilterType(column);
|
|
1149
1238
|
let filter;
|
|
1150
1239
|
if (notNullOrUndefined(this._customColumnsDataFilters)) {
|
|
1151
|
-
filter = this._customColumnsDataFilters.find(x => x.name === filterClass);
|
|
1240
|
+
filter = this._customColumnsDataFilters.find((x) => x.name === filterClass);
|
|
1152
1241
|
}
|
|
1153
1242
|
if (isNullOrUndefined(filter)) {
|
|
1154
|
-
filter = THESEAM_COLUMNS_DATA_FILTERS_DEFAULT.find(x => x.name === filterClass);
|
|
1243
|
+
filter = THESEAM_COLUMNS_DATA_FILTERS_DEFAULT.find((x) => x.name === filterClass);
|
|
1155
1244
|
}
|
|
1156
1245
|
if (notNullOrUndefined(filter)) {
|
|
1157
|
-
// eslint-disable-next-line new-cap
|
|
1158
1246
|
return new filter.class(prop, initialValue, column);
|
|
1159
1247
|
}
|
|
1160
1248
|
return null;
|
|
1161
1249
|
}
|
|
1162
1250
|
_getColumnsDataFilterType(column) {
|
|
1163
|
-
if (notNullOrUndefined(column.filterOptions) &&
|
|
1251
|
+
if (notNullOrUndefined(column.filterOptions) &&
|
|
1252
|
+
notNullOrUndefined(column.filterOptions.filterType)) {
|
|
1164
1253
|
return column.filterOptions.filterType;
|
|
1165
1254
|
}
|
|
1166
1255
|
else if (notNullOrUndefined(column.cellType)) {
|
|
@@ -1182,7 +1271,11 @@ class ColumnsFiltersService {
|
|
|
1182
1271
|
if (isNullOrUndefined(column)) {
|
|
1183
1272
|
return null;
|
|
1184
1273
|
}
|
|
1185
|
-
const prop = column.filterOptions?.filterProp ||
|
|
1274
|
+
const prop = column.filterOptions?.filterProp ||
|
|
1275
|
+
column.prop ||
|
|
1276
|
+
(notNullOrUndefined(column.name)
|
|
1277
|
+
? camelCase(column.name)
|
|
1278
|
+
: undefined);
|
|
1186
1279
|
if (isNullOrUndefined(prop)) {
|
|
1187
1280
|
return null;
|
|
1188
1281
|
}
|
|
@@ -1196,26 +1289,28 @@ class ColumnsFiltersService {
|
|
|
1196
1289
|
return undefined;
|
|
1197
1290
|
}
|
|
1198
1291
|
const columns = this._columns.value;
|
|
1199
|
-
const column = columns.find(col => this.getColumnFilterProp(col) === prop);
|
|
1292
|
+
const column = columns.find((col) => this.getColumnFilterProp(col) === prop);
|
|
1200
1293
|
return column ? column.$$filter : undefined;
|
|
1201
1294
|
}
|
|
1202
1295
|
filters() {
|
|
1203
1296
|
return this._columns.value
|
|
1204
|
-
.map(col => col.$$filter)
|
|
1297
|
+
.map((col) => col.$$filter)
|
|
1205
1298
|
.filter(notNullOrUndefined);
|
|
1206
1299
|
}
|
|
1207
1300
|
addFilter(filter) {
|
|
1208
1301
|
// Filters are now managed through columns, so this method is deprecated
|
|
1302
|
+
// eslint-disable-next-line no-console
|
|
1209
1303
|
console.warn('ColumnsFiltersService.addFilter is deprecated - filters are now managed through columns');
|
|
1210
1304
|
}
|
|
1211
1305
|
removeFilter(filter) {
|
|
1212
1306
|
// Filters are now managed through columns, so this method is deprecated
|
|
1307
|
+
// eslint-disable-next-line no-console
|
|
1213
1308
|
console.warn('ColumnsFiltersService.removeFilter is deprecated - filters are now managed through columns');
|
|
1214
1309
|
}
|
|
1215
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1216
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1310
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ColumnsFiltersService, deps: [{ token: THESEAM_COLUMNS_DATA_FILTER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1311
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ColumnsFiltersService });
|
|
1217
1312
|
}
|
|
1218
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1313
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ColumnsFiltersService, decorators: [{
|
|
1219
1314
|
type: Injectable
|
|
1220
1315
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
1221
1316
|
type: Optional
|
|
@@ -1257,14 +1352,18 @@ class ColumnsManagerService {
|
|
|
1257
1352
|
this._columnChangesService = _columnChangesService;
|
|
1258
1353
|
this._columnsFilters = _columnsFilters;
|
|
1259
1354
|
const templateColumns$ = this._columnChangesService.columnInputChanges$.pipe(startWith(undefined), switchMap(() => {
|
|
1260
|
-
return this._templateColumns
|
|
1355
|
+
return this._templateColumns
|
|
1356
|
+
.asObservable()
|
|
1357
|
+
.pipe(map(translateTemplateColumns));
|
|
1261
1358
|
}));
|
|
1262
1359
|
this.columns$ = defer(() => {
|
|
1263
1360
|
let isFirst = true;
|
|
1264
1361
|
return combineLatest([
|
|
1265
1362
|
this._inputColumns.asObservable(),
|
|
1266
1363
|
templateColumns$,
|
|
1267
|
-
this._updateColumns
|
|
1364
|
+
this._updateColumns
|
|
1365
|
+
.asObservable()
|
|
1366
|
+
.pipe(auditTime(0), startWith(undefined)),
|
|
1268
1367
|
]).pipe(switchMap(([inputColumns, templateColumns]) => {
|
|
1269
1368
|
const cols = this._mergeColumns(inputColumns, templateColumns);
|
|
1270
1369
|
const hasColumnsChanged = this._hasColumnsChanged(cols);
|
|
@@ -1370,7 +1469,7 @@ class ColumnsManagerService {
|
|
|
1370
1469
|
if (notNullOrUndefined(inpColDif)) {
|
|
1371
1470
|
this._updateColDif(inpColDif, internalCol, inpCol);
|
|
1372
1471
|
}
|
|
1373
|
-
const tplCol = this.
|
|
1472
|
+
const tplCol = this._getTemplateColumnByProp(prop, templateColumns);
|
|
1374
1473
|
if (tplCol !== undefined) {
|
|
1375
1474
|
const tplColDif = this._getColDif(tplCol, ColumnsTypes.Template);
|
|
1376
1475
|
if (notNullOrUndefined(tplColDif)) {
|
|
@@ -1385,7 +1484,7 @@ class ColumnsManagerService {
|
|
|
1385
1484
|
// TODO: Rethink this, because I don't know if this is correct.
|
|
1386
1485
|
...(tplCol || {}),
|
|
1387
1486
|
// Store filter directly on column object
|
|
1388
|
-
$$filter: existingFilter || this._createColumnFilter(inpCol)
|
|
1487
|
+
$$filter: existingFilter || this._createColumnFilter(inpCol),
|
|
1389
1488
|
};
|
|
1390
1489
|
if (this._shouldAddTreeToggleColumn(_col)) {
|
|
1391
1490
|
_col.treeToggleTemplate = this._treeToggleTpl;
|
|
@@ -1424,16 +1523,33 @@ class ColumnsManagerService {
|
|
|
1424
1523
|
if (internalCols === undefined) {
|
|
1425
1524
|
return undefined;
|
|
1426
1525
|
}
|
|
1427
|
-
return internalCols.find(c => getColumnProp(c) === prop);
|
|
1526
|
+
return internalCols.find((c) => getColumnProp(c) === prop);
|
|
1428
1527
|
}
|
|
1429
1528
|
_findColumnByProp(prop, columns) {
|
|
1430
|
-
return columns.find(c => getColumnProp(c) === prop);
|
|
1529
|
+
return columns.find((c) => getColumnProp(c) === prop);
|
|
1530
|
+
}
|
|
1531
|
+
_getTemplateColumnByProp(prop, columns) {
|
|
1532
|
+
const tplCol = this._findColumnByProp(prop, columns);
|
|
1533
|
+
if (tplCol === undefined) {
|
|
1534
|
+
return undefined;
|
|
1535
|
+
}
|
|
1536
|
+
const _tplCol = {};
|
|
1537
|
+
for (const key in tplCol) {
|
|
1538
|
+
if (Object.prototype.hasOwnProperty.call(tplCol, key) &&
|
|
1539
|
+
isColumnBoundToProp(tplCol, key)) {
|
|
1540
|
+
_tplCol[key] = tplCol[key];
|
|
1541
|
+
}
|
|
1542
|
+
}
|
|
1543
|
+
return _tplCol;
|
|
1431
1544
|
}
|
|
1432
1545
|
_getDifMapForColumnsType(columnsType) {
|
|
1433
1546
|
switch (columnsType) {
|
|
1434
|
-
case ColumnsTypes.Input:
|
|
1435
|
-
|
|
1436
|
-
case ColumnsTypes.
|
|
1547
|
+
case ColumnsTypes.Input:
|
|
1548
|
+
return this._inpColDiffersMap;
|
|
1549
|
+
case ColumnsTypes.Template:
|
|
1550
|
+
return this._tplColDiffersMap;
|
|
1551
|
+
case ColumnsTypes.Result:
|
|
1552
|
+
return this._resultColDiffersMap;
|
|
1437
1553
|
}
|
|
1438
1554
|
}
|
|
1439
1555
|
_getColumnDiffer(prop, colsType) {
|
|
@@ -1458,20 +1574,21 @@ class ColumnsManagerService {
|
|
|
1458
1574
|
return this._getColumnDiffer(prop, colsType).diff(col);
|
|
1459
1575
|
}
|
|
1460
1576
|
_updateColDif(colDif, internalColumn, col) {
|
|
1461
|
-
colDif.forEachRemovedItem(r => {
|
|
1462
|
-
if (internalColumn &&
|
|
1577
|
+
colDif.forEachRemovedItem((r) => {
|
|
1578
|
+
if (internalColumn &&
|
|
1579
|
+
Object.prototype.hasOwnProperty.call(internalColumn, r.key)) {
|
|
1463
1580
|
const k = r.key;
|
|
1464
1581
|
delete internalColumn[k];
|
|
1465
1582
|
}
|
|
1466
1583
|
});
|
|
1467
|
-
colDif.forEachAddedItem(r => col[r.key] = r.currentValue);
|
|
1468
|
-
colDif.forEachChangedItem(r => col[r.key] = r.currentValue);
|
|
1584
|
+
colDif.forEachAddedItem((r) => (col[r.key] = r.currentValue));
|
|
1585
|
+
colDif.forEachChangedItem((r) => (col[r.key] = r.currentValue));
|
|
1469
1586
|
}
|
|
1470
1587
|
_hasAddedOrRemovedColumns(columns) {
|
|
1471
1588
|
if (!this._colPropsDiffer) {
|
|
1472
1589
|
this._colPropsDiffer = this._differs.find([]).create();
|
|
1473
1590
|
}
|
|
1474
|
-
const props = columns.map(c => getColumnProp(c));
|
|
1591
|
+
const props = columns.map((c) => getColumnProp(c));
|
|
1475
1592
|
return this._colPropsDiffer.diff(props) !== null;
|
|
1476
1593
|
}
|
|
1477
1594
|
_hasColumnsChanged(columns) {
|
|
@@ -1504,8 +1621,10 @@ class ColumnsManagerService {
|
|
|
1504
1621
|
return this._actionItemColumnPosition === 'staticRight';
|
|
1505
1622
|
}
|
|
1506
1623
|
_shouldAddTreeToggleColumn(column) {
|
|
1507
|
-
return column.isTreeColumn !== undefined &&
|
|
1508
|
-
|
|
1624
|
+
return (column.isTreeColumn !== undefined &&
|
|
1625
|
+
column.isTreeColumn &&
|
|
1626
|
+
(!hasProperty(column, 'treeToggleTemplate') ||
|
|
1627
|
+
!notNullOrUndefined(column.treeToggleTemplate)));
|
|
1509
1628
|
}
|
|
1510
1629
|
_shouldAddHeaderTemplate(column) {
|
|
1511
1630
|
return !hasProperty(column, 'headerTemplate');
|
|
@@ -1528,12 +1647,12 @@ class ColumnsManagerService {
|
|
|
1528
1647
|
if (!column.filterable) {
|
|
1529
1648
|
return undefined;
|
|
1530
1649
|
}
|
|
1531
|
-
return this._columnsFilters.createColumnDataFilter(column, null) || undefined;
|
|
1650
|
+
return (this._columnsFilters.createColumnDataFilter(column, null) || undefined);
|
|
1532
1651
|
}
|
|
1533
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1534
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1652
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ColumnsManagerService, deps: [{ token: i0.KeyValueDiffers }, { token: DatatableColumnChangesService }, { token: ColumnsFiltersService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1653
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ColumnsManagerService });
|
|
1535
1654
|
}
|
|
1536
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ColumnsManagerService, decorators: [{
|
|
1537
1656
|
type: Injectable
|
|
1538
1657
|
}], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: DatatableColumnChangesService }, { type: ColumnsFiltersService }] });
|
|
1539
1658
|
|
|
@@ -1541,11 +1660,17 @@ const THESEAM_DATATABLE_ACCESSOR = new InjectionToken('TheSeamDatatableAccessor'
|
|
|
1541
1660
|
|
|
1542
1661
|
function removeUnusedDiffs(cols, colDiffersInp, colDiffersTpl) {
|
|
1543
1662
|
const inpKeys = Object.keys(colDiffersInp);
|
|
1544
|
-
inpKeys
|
|
1545
|
-
.
|
|
1663
|
+
inpKeys
|
|
1664
|
+
.filter((k) => cols.findIndex((c) => c.prop === k) === -1)
|
|
1665
|
+
.forEach((k) => {
|
|
1666
|
+
delete colDiffersInp[k];
|
|
1667
|
+
});
|
|
1546
1668
|
const tplKeys = Object.keys(colDiffersTpl);
|
|
1547
|
-
tplKeys
|
|
1548
|
-
.
|
|
1669
|
+
tplKeys
|
|
1670
|
+
.filter((k) => cols.findIndex((c) => c.prop === k) === -1)
|
|
1671
|
+
.forEach((k) => {
|
|
1672
|
+
delete colDiffersTpl[k];
|
|
1673
|
+
});
|
|
1549
1674
|
}
|
|
1550
1675
|
|
|
1551
1676
|
/**
|
|
@@ -1583,7 +1708,7 @@ class ColumnsAlteration {
|
|
|
1583
1708
|
return {
|
|
1584
1709
|
id: this.id,
|
|
1585
1710
|
type: this.type,
|
|
1586
|
-
state: this.state
|
|
1711
|
+
state: this.state,
|
|
1587
1712
|
};
|
|
1588
1713
|
}
|
|
1589
1714
|
}
|
|
@@ -1614,7 +1739,7 @@ class HideColumnColumnsAlteration extends ColumnsAlteration {
|
|
|
1614
1739
|
type: this.type,
|
|
1615
1740
|
summary,
|
|
1616
1741
|
details,
|
|
1617
|
-
sortOrder: this._getColumnSortOrder()
|
|
1742
|
+
sortOrder: this._getColumnSortOrder(),
|
|
1618
1743
|
};
|
|
1619
1744
|
}
|
|
1620
1745
|
getDisplaySortOrder() {
|
|
@@ -1676,7 +1801,7 @@ class SortColumnsAlteration extends ColumnsAlteration {
|
|
|
1676
1801
|
type: this.type,
|
|
1677
1802
|
summary,
|
|
1678
1803
|
details,
|
|
1679
|
-
sortOrder: 0
|
|
1804
|
+
sortOrder: 0,
|
|
1680
1805
|
};
|
|
1681
1806
|
}
|
|
1682
1807
|
getDisplaySortOrder() {
|
|
@@ -1697,7 +1822,7 @@ class SortColumnsAlteration extends ColumnsAlteration {
|
|
|
1697
1822
|
if (this.state.sorts.length === 0) {
|
|
1698
1823
|
return 'No sorting';
|
|
1699
1824
|
}
|
|
1700
|
-
const sortDescriptions = this.state.sorts.map(sort => {
|
|
1825
|
+
const sortDescriptions = this.state.sorts.map((sort) => {
|
|
1701
1826
|
const direction = sort.dir === 'asc' ? '↑' : '↓';
|
|
1702
1827
|
return `${sort.prop} ${direction}`;
|
|
1703
1828
|
});
|
|
@@ -1744,7 +1869,7 @@ class WidthColumnsAlteration extends ColumnsAlteration {
|
|
|
1744
1869
|
type: this.type,
|
|
1745
1870
|
summary,
|
|
1746
1871
|
details,
|
|
1747
|
-
sortOrder: this._getColumnSortOrder()
|
|
1872
|
+
sortOrder: this._getColumnSortOrder(),
|
|
1748
1873
|
};
|
|
1749
1874
|
}
|
|
1750
1875
|
getDisplaySortOrder() {
|
|
@@ -1767,7 +1892,9 @@ class WidthColumnsAlteration extends ColumnsAlteration {
|
|
|
1767
1892
|
return true;
|
|
1768
1893
|
}
|
|
1769
1894
|
_createWidthSummary() {
|
|
1770
|
-
const widthText = notNullOrUndefined(this.state.width)
|
|
1895
|
+
const widthText = notNullOrUndefined(this.state.width)
|
|
1896
|
+
? `${this.state.width}px`
|
|
1897
|
+
: 'auto';
|
|
1771
1898
|
return `${this.state.columnProp}: ${widthText}`;
|
|
1772
1899
|
}
|
|
1773
1900
|
_createWidthDetails() {
|
|
@@ -1809,13 +1936,13 @@ class ColumnsAlterationsManagerService {
|
|
|
1809
1936
|
this._alterations = [...this._alterations, ...alterations];
|
|
1810
1937
|
const changes = [
|
|
1811
1938
|
...removed,
|
|
1812
|
-
...alterations.map(a => {
|
|
1939
|
+
...alterations.map((a) => {
|
|
1813
1940
|
const record = {
|
|
1814
1941
|
type: 'added',
|
|
1815
|
-
alteration: a
|
|
1942
|
+
alteration: a,
|
|
1816
1943
|
};
|
|
1817
1944
|
return record;
|
|
1818
|
-
})
|
|
1945
|
+
}),
|
|
1819
1946
|
];
|
|
1820
1947
|
if (notNullOrUndefined(options?.emitEvent) && !options?.emitEvent) {
|
|
1821
1948
|
return changes;
|
|
@@ -1826,12 +1953,12 @@ class ColumnsAlterationsManagerService {
|
|
|
1826
1953
|
remove(alterations, options) {
|
|
1827
1954
|
// console.log('remove', alterations)
|
|
1828
1955
|
const removed = [];
|
|
1829
|
-
this._alterations = this._alterations.filter(x => {
|
|
1830
|
-
const found = alterations.findIndex(y => y.id === x.id) !== -1;
|
|
1956
|
+
this._alterations = this._alterations.filter((x) => {
|
|
1957
|
+
const found = alterations.findIndex((y) => y.id === x.id) !== -1;
|
|
1831
1958
|
if (found) {
|
|
1832
1959
|
const eventRecord = {
|
|
1833
1960
|
type: 'removed',
|
|
1834
|
-
alteration: x
|
|
1961
|
+
alteration: x,
|
|
1835
1962
|
};
|
|
1836
1963
|
removed.push(eventRecord);
|
|
1837
1964
|
}
|
|
@@ -1895,7 +2022,7 @@ class ColumnsAlterationsManagerService {
|
|
|
1895
2022
|
return changes;
|
|
1896
2023
|
}
|
|
1897
2024
|
_removeNonPersistant() {
|
|
1898
|
-
const nonPersistent = this._alterations.filter(x => !x.persistent);
|
|
2025
|
+
const nonPersistent = this._alterations.filter((x) => !x.persistent);
|
|
1899
2026
|
this.remove(nonPersistent, { emitEvent: false });
|
|
1900
2027
|
}
|
|
1901
2028
|
_emitChanges(changes) {
|
|
@@ -1903,14 +2030,14 @@ class ColumnsAlterationsManagerService {
|
|
|
1903
2030
|
return;
|
|
1904
2031
|
}
|
|
1905
2032
|
const event = {
|
|
1906
|
-
changes
|
|
2033
|
+
changes,
|
|
1907
2034
|
};
|
|
1908
2035
|
this._changesSubject.next(event);
|
|
1909
2036
|
}
|
|
1910
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1911
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
2037
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ColumnsAlterationsManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2038
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ColumnsAlterationsManagerService });
|
|
1912
2039
|
}
|
|
1913
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2040
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ColumnsAlterationsManagerService, decorators: [{
|
|
1914
2041
|
type: Injectable
|
|
1915
2042
|
}], ctorParameters: () => [] });
|
|
1916
2043
|
|
|
@@ -1945,7 +2072,7 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
1945
2072
|
searchType: operation,
|
|
1946
2073
|
searchText: null,
|
|
1947
2074
|
fromText: null,
|
|
1948
|
-
toText: null
|
|
2075
|
+
toText: null,
|
|
1949
2076
|
};
|
|
1950
2077
|
// Set values based on operation type
|
|
1951
2078
|
if (this._isRangeOperation(operation)) {
|
|
@@ -1973,7 +2100,7 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
1973
2100
|
type: this.type,
|
|
1974
2101
|
summary,
|
|
1975
2102
|
details,
|
|
1976
|
-
sortOrder: this._getColumnSortOrder()
|
|
2103
|
+
sortOrder: this._getColumnSortOrder(),
|
|
1977
2104
|
};
|
|
1978
2105
|
}
|
|
1979
2106
|
getDisplaySortOrder() {
|
|
@@ -1984,8 +2111,14 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
1984
2111
|
}
|
|
1985
2112
|
_isValueOperation(operation) {
|
|
1986
2113
|
const valueOperations = [
|
|
1987
|
-
'contains',
|
|
1988
|
-
'
|
|
2114
|
+
'contains',
|
|
2115
|
+
'ncontains',
|
|
2116
|
+
'eq',
|
|
2117
|
+
'neq', // text
|
|
2118
|
+
'gt',
|
|
2119
|
+
'lt',
|
|
2120
|
+
'gte',
|
|
2121
|
+
'lte', // numeric/date
|
|
1989
2122
|
];
|
|
1990
2123
|
return valueOperations.includes(operation);
|
|
1991
2124
|
}
|
|
@@ -2006,7 +2139,8 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
2006
2139
|
}
|
|
2007
2140
|
// Validate required values for operations
|
|
2008
2141
|
if (this._isRangeOperation(state.operation)) {
|
|
2009
|
-
if (!notNullOrUndefined(state.fromValue) ||
|
|
2142
|
+
if (!notNullOrUndefined(state.fromValue) ||
|
|
2143
|
+
!notNullOrUndefined(state.toValue)) {
|
|
2010
2144
|
throw new Error(`Range operation '${state.operation}' requires both fromValue and toValue`);
|
|
2011
2145
|
}
|
|
2012
2146
|
}
|
|
@@ -2018,9 +2152,36 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
2018
2152
|
return true;
|
|
2019
2153
|
}
|
|
2020
2154
|
_isValidOperationForFilterType(operation, filterType) {
|
|
2021
|
-
const textOperations = [
|
|
2022
|
-
|
|
2023
|
-
|
|
2155
|
+
const textOperations = [
|
|
2156
|
+
'contains',
|
|
2157
|
+
'ncontains',
|
|
2158
|
+
'eq',
|
|
2159
|
+
'neq',
|
|
2160
|
+
'blank',
|
|
2161
|
+
'not-blank',
|
|
2162
|
+
];
|
|
2163
|
+
const numericOperations = [
|
|
2164
|
+
'gt',
|
|
2165
|
+
'lt',
|
|
2166
|
+
'eq',
|
|
2167
|
+
'gte',
|
|
2168
|
+
'lte',
|
|
2169
|
+
'blank',
|
|
2170
|
+
'not-blank',
|
|
2171
|
+
'between',
|
|
2172
|
+
'not-between',
|
|
2173
|
+
];
|
|
2174
|
+
const dateOperations = [
|
|
2175
|
+
'lt',
|
|
2176
|
+
'lte',
|
|
2177
|
+
'gt',
|
|
2178
|
+
'gte',
|
|
2179
|
+
'eq',
|
|
2180
|
+
'blank',
|
|
2181
|
+
'not-blank',
|
|
2182
|
+
'between',
|
|
2183
|
+
'not-between',
|
|
2184
|
+
];
|
|
2024
2185
|
switch (filterType) {
|
|
2025
2186
|
case 'text':
|
|
2026
2187
|
return textOperations.includes(operation);
|
|
@@ -2051,7 +2212,7 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
2051
2212
|
const details = [
|
|
2052
2213
|
`Column: ${columnProp}`,
|
|
2053
2214
|
`Type: ${filterType}`,
|
|
2054
|
-
`Operation: ${this._getOperationDisplayName(operation)}
|
|
2215
|
+
`Operation: ${this._getOperationDisplayName(operation)}`,
|
|
2055
2216
|
];
|
|
2056
2217
|
if (this._isRangeOperation(operation)) {
|
|
2057
2218
|
details.push(`From: ${fromValue}`);
|
|
@@ -2064,31 +2225,31 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
2064
2225
|
}
|
|
2065
2226
|
_getOperationSymbol(operation) {
|
|
2066
2227
|
const symbols = {
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2228
|
+
contains: 'contains',
|
|
2229
|
+
ncontains: 'does not contain',
|
|
2230
|
+
eq: '=',
|
|
2231
|
+
neq: '≠',
|
|
2232
|
+
gt: '>',
|
|
2233
|
+
lt: '<',
|
|
2234
|
+
gte: '≥',
|
|
2235
|
+
lte: '≤',
|
|
2075
2236
|
};
|
|
2076
2237
|
return symbols[operation] || operation;
|
|
2077
2238
|
}
|
|
2078
2239
|
_getOperationDisplayName(operation) {
|
|
2079
2240
|
const names = {
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2241
|
+
contains: 'Contains',
|
|
2242
|
+
ncontains: 'Does not contain',
|
|
2243
|
+
eq: 'Equals',
|
|
2244
|
+
neq: 'Not equals',
|
|
2245
|
+
gt: 'Greater than',
|
|
2246
|
+
lt: 'Less than',
|
|
2247
|
+
gte: 'Greater than or equal',
|
|
2248
|
+
lte: 'Less than or equal',
|
|
2249
|
+
blank: 'Is blank',
|
|
2089
2250
|
'not-blank': 'Is not blank',
|
|
2090
|
-
|
|
2091
|
-
'not-between': 'Not between'
|
|
2251
|
+
between: 'Between',
|
|
2252
|
+
'not-between': 'Not between',
|
|
2092
2253
|
};
|
|
2093
2254
|
return names[operation] || operation;
|
|
2094
2255
|
}
|
|
@@ -2104,10 +2265,10 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
2104
2265
|
*/
|
|
2105
2266
|
const INTERNAL_COLUMN_PROPS = [
|
|
2106
2267
|
ACTION_MENU_COLUMN_PROP,
|
|
2107
|
-
CHECKBOX_COLUMN_PROP
|
|
2268
|
+
CHECKBOX_COLUMN_PROP,
|
|
2108
2269
|
];
|
|
2109
2270
|
function isInternalColumn(column) {
|
|
2110
|
-
return INTERNAL_COLUMN_PROPS.findIndex(p => getColumnProp(column) === p) !== -1;
|
|
2271
|
+
return (INTERNAL_COLUMN_PROPS.findIndex((p) => getColumnProp(column) === p) !== -1);
|
|
2111
2272
|
}
|
|
2112
2273
|
|
|
2113
2274
|
class OrderColumnsAlteration extends ColumnsAlteration {
|
|
@@ -2134,9 +2295,9 @@ class OrderColumnsAlteration extends ColumnsAlteration {
|
|
|
2134
2295
|
// to be changed.
|
|
2135
2296
|
const internalColumns = columns
|
|
2136
2297
|
.map((column, index) => ({ column, index }))
|
|
2137
|
-
.filter(x => isInternalColumn(x.column));
|
|
2298
|
+
.filter((x) => isInternalColumn(x.column));
|
|
2138
2299
|
for (const c of stateColumns) {
|
|
2139
|
-
const currentIndex = columns.findIndex(x => getColumnProp(x) === c.columnProp);
|
|
2300
|
+
const currentIndex = columns.findIndex((x) => getColumnProp(x) === c.columnProp);
|
|
2140
2301
|
if (currentIndex === c.index || currentIndex === -1) {
|
|
2141
2302
|
// Skip if already at correct index.
|
|
2142
2303
|
// Skip columns not found. It may be a column that was removed from the
|
|
@@ -2146,7 +2307,7 @@ class OrderColumnsAlteration extends ColumnsAlteration {
|
|
|
2146
2307
|
arrayMoveMutable(columns, currentIndex, c.index);
|
|
2147
2308
|
}
|
|
2148
2309
|
for (const c of internalColumns) {
|
|
2149
|
-
const currentIndex = columns.findIndex(col => col === c.column);
|
|
2310
|
+
const currentIndex = columns.findIndex((col) => col === c.column);
|
|
2150
2311
|
if (currentIndex !== -1) {
|
|
2151
2312
|
arrayMoveMutable(columns, currentIndex, c.index);
|
|
2152
2313
|
}
|
|
@@ -2166,7 +2327,7 @@ class OrderColumnsAlteration extends ColumnsAlteration {
|
|
|
2166
2327
|
type: this.type,
|
|
2167
2328
|
summary,
|
|
2168
2329
|
details,
|
|
2169
|
-
sortOrder: 0
|
|
2330
|
+
sortOrder: 0,
|
|
2170
2331
|
};
|
|
2171
2332
|
}
|
|
2172
2333
|
getDisplaySortOrder() {
|
|
@@ -2187,10 +2348,12 @@ class OrderColumnsAlteration extends ColumnsAlteration {
|
|
|
2187
2348
|
return true;
|
|
2188
2349
|
}
|
|
2189
2350
|
_isColumnOrderRecordValid(columnOrder) {
|
|
2190
|
-
return notNullOrUndefined(columnOrder.columnProp) &&
|
|
2351
|
+
return (notNullOrUndefined(columnOrder.columnProp) &&
|
|
2352
|
+
notNullOrUndefined(columnOrder.index));
|
|
2191
2353
|
}
|
|
2192
2354
|
_stateColumns() {
|
|
2193
|
-
return this.state.columns
|
|
2355
|
+
return this.state.columns
|
|
2356
|
+
.filter((c) => {
|
|
2194
2357
|
if (!this._isColumnOrderRecordValid(c)) {
|
|
2195
2358
|
if (isDevMode()) {
|
|
2196
2359
|
// eslint-disable-next-line no-console
|
|
@@ -2199,7 +2362,8 @@ class OrderColumnsAlteration extends ColumnsAlteration {
|
|
|
2199
2362
|
return false;
|
|
2200
2363
|
}
|
|
2201
2364
|
return true;
|
|
2202
|
-
})
|
|
2365
|
+
})
|
|
2366
|
+
.sort((a, b) => (a.index === b.index ? 0 : a.index > b.index ? 1 : -1));
|
|
2203
2367
|
}
|
|
2204
2368
|
_createOrderSummary() {
|
|
2205
2369
|
if (this.state.columns.length === 0) {
|
|
@@ -2213,7 +2377,7 @@ class OrderColumnsAlteration extends ColumnsAlteration {
|
|
|
2213
2377
|
return ['Columns are in their default order'];
|
|
2214
2378
|
}
|
|
2215
2379
|
const sortedColumns = this._stateColumns();
|
|
2216
|
-
return sortedColumns.map(col => `${col.columnProp}: Position ${col.index + 1}`);
|
|
2380
|
+
return sortedColumns.map((col) => `${col.columnProp}: Position ${col.index + 1}`);
|
|
2217
2381
|
}
|
|
2218
2382
|
}
|
|
2219
2383
|
|
|
@@ -2257,9 +2421,14 @@ function mapColumnsAlterationsStates(states) {
|
|
|
2257
2421
|
return alterations;
|
|
2258
2422
|
}
|
|
2259
2423
|
|
|
2260
|
-
const ActionItemColumnPosition = [
|
|
2424
|
+
const ActionItemColumnPosition = [
|
|
2425
|
+
'frozenLeft',
|
|
2426
|
+
'frozenRight',
|
|
2427
|
+
'staticLeft',
|
|
2428
|
+
'staticRight',
|
|
2429
|
+
];
|
|
2261
2430
|
function isActionItemColumnPosition(input) {
|
|
2262
|
-
return ActionItemColumnPosition.indexOf(input)
|
|
2431
|
+
return (ActionItemColumnPosition.indexOf(input) !== -1);
|
|
2263
2432
|
}
|
|
2264
2433
|
|
|
2265
2434
|
const THESEAM_DATATABLE_CONFIG = new InjectionToken('TheSeamDatatableConfig');
|
|
@@ -2269,14 +2438,14 @@ class DatatableColumnFilterTplDirective {
|
|
|
2269
2438
|
constructor(template) {
|
|
2270
2439
|
this.template = template;
|
|
2271
2440
|
}
|
|
2272
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2273
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
2441
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnFilterTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2442
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: DatatableColumnFilterTplDirective, isStandalone: false, selector: "[seamDatatableColumnFilterTpl]", ngImport: i0 });
|
|
2274
2443
|
}
|
|
2275
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2444
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnFilterTplDirective, decorators: [{
|
|
2276
2445
|
type: Directive,
|
|
2277
2446
|
args: [{
|
|
2278
2447
|
selector: '[seamDatatableColumnFilterTpl]',
|
|
2279
|
-
standalone: false
|
|
2448
|
+
standalone: false,
|
|
2280
2449
|
}]
|
|
2281
2450
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
2282
2451
|
|
|
@@ -2288,15 +2457,15 @@ class TheSeamDatatableColumnFilterDirective {
|
|
|
2288
2457
|
get template() {
|
|
2289
2458
|
return this._templateInput || this._templateQuery;
|
|
2290
2459
|
}
|
|
2291
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2292
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
2460
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableColumnFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2461
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: TheSeamDatatableColumnFilterDirective, isStandalone: false, selector: "seam-datatable-column-filter", inputs: { filterName: "filterName", _templateInput: ["template", "_templateInput"] }, queries: [{ propertyName: "_templateQuery", first: true, predicate: DatatableColumnFilterTplDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0 });
|
|
2293
2462
|
}
|
|
2294
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2463
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableColumnFilterDirective, decorators: [{
|
|
2295
2464
|
type: Directive,
|
|
2296
2465
|
args: [{
|
|
2297
2466
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
2298
2467
|
selector: 'seam-datatable-column-filter',
|
|
2299
|
-
standalone: false
|
|
2468
|
+
standalone: false,
|
|
2300
2469
|
}]
|
|
2301
2470
|
}], propDecorators: { filterName: [{
|
|
2302
2471
|
type: Input
|
|
@@ -2305,13 +2474,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
2305
2474
|
args: ['template']
|
|
2306
2475
|
}], _templateQuery: [{
|
|
2307
2476
|
type: ContentChild,
|
|
2308
|
-
args: [DatatableColumnFilterTplDirective, {
|
|
2477
|
+
args: [DatatableColumnFilterTplDirective, {
|
|
2478
|
+
read: TemplateRef,
|
|
2479
|
+
static: true,
|
|
2480
|
+
}]
|
|
2309
2481
|
}] } });
|
|
2310
2482
|
|
|
2311
2483
|
const CURRENT_DATATABLE_PREFERENCES_VERSION = 2;
|
|
2312
2484
|
const EMPTY_DATATABLE_PREFERENCES = {
|
|
2313
2485
|
version: 2,
|
|
2314
|
-
alterations: []
|
|
2486
|
+
alterations: [],
|
|
2315
2487
|
};
|
|
2316
2488
|
|
|
2317
2489
|
const THESEAM_DATATABLE_PREFERENCES_ACCESSOR = new InjectionToken('TheSeamDatatablePreferencesAccessor');
|
|
@@ -2343,7 +2515,9 @@ class DatatablePreferencesService {
|
|
|
2343
2515
|
if (!this._prefsAccessor) {
|
|
2344
2516
|
return of(JSON.parse(JSON.stringify(EMPTY_DATATABLE_PREFERENCES)));
|
|
2345
2517
|
}
|
|
2346
|
-
return this._preferencesManager
|
|
2518
|
+
return this._preferencesManager
|
|
2519
|
+
.preferences(preferenceKey, this._prefsAccessor, EMPTY_DATATABLE_PREFERENCES)
|
|
2520
|
+
.pipe(map((prefs) => {
|
|
2347
2521
|
if (this._isValidDatatablePreferences(prefs)) {
|
|
2348
2522
|
return prefs;
|
|
2349
2523
|
}
|
|
@@ -2358,7 +2532,8 @@ class DatatablePreferencesService {
|
|
|
2358
2532
|
return;
|
|
2359
2533
|
}
|
|
2360
2534
|
this._pending = true;
|
|
2361
|
-
this.preferences(preferenceKey)
|
|
2535
|
+
this.preferences(preferenceKey)
|
|
2536
|
+
.pipe(map((prefs) => {
|
|
2362
2537
|
// Making the preferences immutable may not be necessary, but for now
|
|
2363
2538
|
// this obj->str->obj will work as a naive clone.
|
|
2364
2539
|
// const columns = JSON.parse(JSON.stringify(prefs.columns || []))
|
|
@@ -2376,13 +2551,13 @@ class DatatablePreferencesService {
|
|
|
2376
2551
|
// return newPrefs
|
|
2377
2552
|
const newPrefs = {
|
|
2378
2553
|
...EMPTY_DATATABLE_PREFERENCES,
|
|
2379
|
-
alterations
|
|
2554
|
+
alterations,
|
|
2380
2555
|
};
|
|
2381
2556
|
this._pending = false;
|
|
2382
2557
|
return newPrefs;
|
|
2383
2558
|
}),
|
|
2384
2559
|
// tap(v => console.log('newPrefs', v)),
|
|
2385
|
-
take(1), switchMap(newPrefs => this._prefsAccessor
|
|
2560
|
+
take(1), switchMap((newPrefs) => this._prefsAccessor
|
|
2386
2561
|
? this._prefsAccessor.update(preferenceKey, JSON.stringify(newPrefs))
|
|
2387
2562
|
: of(newPrefs)), tap(() => this.refresh(preferenceKey)))
|
|
2388
2563
|
.subscribe();
|
|
@@ -2390,13 +2565,13 @@ class DatatablePreferencesService {
|
|
|
2390
2565
|
_isValidDatatablePreferences(prefs) {
|
|
2391
2566
|
return prefs.version === CURRENT_DATATABLE_PREFERENCES_VERSION;
|
|
2392
2567
|
}
|
|
2393
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2394
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
2568
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatablePreferencesService, deps: [{ token: i1$1.TheSeamPreferencesManagerService }, { token: THESEAM_DATATABLE_PREFERENCES_ACCESSOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2569
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatablePreferencesService, providedIn: 'root' });
|
|
2395
2570
|
}
|
|
2396
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2571
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatablePreferencesService, decorators: [{
|
|
2397
2572
|
type: Injectable,
|
|
2398
2573
|
args: [{
|
|
2399
|
-
providedIn: 'root'
|
|
2574
|
+
providedIn: 'root',
|
|
2400
2575
|
}]
|
|
2401
2576
|
}], ctorParameters: () => [{ type: i1$1.TheSeamPreferencesManagerService }, { type: undefined, decorators: [{
|
|
2402
2577
|
type: Optional
|
|
@@ -2417,24 +2592,31 @@ class DatatableColumnFilterSearchTextComponent {
|
|
|
2417
2592
|
filterForm;
|
|
2418
2593
|
showTextbox$;
|
|
2419
2594
|
ngOnInit() {
|
|
2420
|
-
this.showTextbox$ = this.filterForm?.controls.searchType.valueChanges.pipe(startWith$1(this.filterForm?.controls.searchType.value), map$1(value => THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES.includes(value || '')));
|
|
2595
|
+
this.showTextbox$ = this.filterForm?.controls.searchType.valueChanges.pipe(startWith$1(this.filterForm?.controls.searchType.value), map$1((value) => THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES.includes(value || '')));
|
|
2421
2596
|
}
|
|
2422
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2423
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
2597
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnFilterSearchTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2598
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableColumnFilterSearchTextComponent, isStandalone: true, selector: "seam-datatable-column-filter-search-text", inputs: { filterForm: "filterForm" }, ngImport: i0, template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n seamAutoFocus\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"\n ></ng-select>\n </seam-form-field>\n <ng-container *ngIf=\"showTextbox$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input\n seamInput\n formControlName=\"searchText\"\n placeholder=\"Type to search\"\n seamAutoFocus\n />\n </seam-form-field>\n <!-- TODO: implement this? Does not work with current Seam GraphQL/SQL Server implementation. -->\n <!-- <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <seam-checkbox seamInput formControlName=\"caseSensitive\">Case Sensitive</seam-checkbox>\n </seam-form-field> -->\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3$1.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "tabFocusOnClearButton", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "deselectOnClick", "clearSearchOnAdd", "compareWith", "keyDownFn", "bindLabel", "bindValue", "appearance", "isOpen", "items"], outputs: ["bindLabelChange", "bindValueChange", "appearanceChange", "isOpenChange", "itemsChange", "blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "ngmodule", type: TheSeamFormFieldModule }, { kind: "component", type: i4$1.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i4$1.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: TheSeamNgSelectExtraDirective, selector: "ng-select", exportAs: ["seamNgSelectExtra"] }, { kind: "directive", type: TheSeamAutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], viewProviders: [
|
|
2424
2599
|
{
|
|
2425
2600
|
provide: ControlContainer,
|
|
2426
|
-
useExisting: FormGroupDirective
|
|
2427
|
-
}
|
|
2601
|
+
useExisting: FormGroupDirective,
|
|
2602
|
+
},
|
|
2428
2603
|
] });
|
|
2429
2604
|
}
|
|
2430
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2605
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnFilterSearchTextComponent, decorators: [{
|
|
2431
2606
|
type: Component,
|
|
2432
2607
|
args: [{ selector: 'seam-datatable-column-filter-search-text', viewProviders: [
|
|
2433
2608
|
{
|
|
2434
2609
|
provide: ControlContainer,
|
|
2435
|
-
useExisting: FormGroupDirective
|
|
2436
|
-
}
|
|
2437
|
-
],
|
|
2610
|
+
useExisting: FormGroupDirective,
|
|
2611
|
+
},
|
|
2612
|
+
], imports: [
|
|
2613
|
+
CommonModule,
|
|
2614
|
+
ReactiveFormsModule,
|
|
2615
|
+
NgSelectModule,
|
|
2616
|
+
TheSeamFormFieldModule,
|
|
2617
|
+
TheSeamNgSelectExtraDirective,
|
|
2618
|
+
TheSeamAutoFocusDirective,
|
|
2619
|
+
], template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n seamAutoFocus\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"\n ></ng-select>\n </seam-form-field>\n <ng-container *ngIf=\"showTextbox$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input\n seamInput\n formControlName=\"searchText\"\n placeholder=\"Type to search\"\n seamAutoFocus\n />\n </seam-form-field>\n <!-- TODO: implement this? Does not work with current Seam GraphQL/SQL Server implementation. -->\n <!-- <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <seam-checkbox seamInput formControlName=\"caseSensitive\">Case Sensitive</seam-checkbox>\n </seam-form-field> -->\n </ng-container>\n</ng-container>\n" }]
|
|
2438
2620
|
}], propDecorators: { filterForm: [{
|
|
2439
2621
|
type: Input
|
|
2440
2622
|
}] } });
|
|
@@ -2455,25 +2637,34 @@ class DatatableColumnFilterSearchNumericComponent {
|
|
|
2455
2637
|
showSearchInput$;
|
|
2456
2638
|
showRangeInputs$;
|
|
2457
2639
|
ngOnInit() {
|
|
2458
|
-
this.showSearchInput$ =
|
|
2459
|
-
|
|
2640
|
+
this.showSearchInput$ =
|
|
2641
|
+
this.filterForm?.controls.searchType.valueChanges.pipe(startWith$1(this.filterForm?.controls.searchType.value), map$1((searchType) => THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(searchType || '')));
|
|
2642
|
+
this.showRangeInputs$ =
|
|
2643
|
+
this.filterForm?.controls.searchType.valueChanges.pipe(startWith$1(this.filterForm?.controls.searchType.value), map$1((searchType) => THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(searchType || '')));
|
|
2460
2644
|
}
|
|
2461
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2462
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
2645
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnFilterSearchNumericComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2646
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableColumnFilterSearchNumericComponent, isStandalone: true, selector: "seam-datatable-column-filter-search-numeric", inputs: { filterForm: "filterForm" }, ngImport: i0, template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"\n ></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input\n seamInput\n formControlName=\"searchText\"\n placeholder=\"Type to search\"\n seamAutoFocus\n />\n </seam-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"showRangeInputs$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input\n seamInput\n formControlName=\"fromText\"\n placeholder=\"Range Start\"\n seamAutoFocus\n />\n </seam-form-field>\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"toText\" placeholder=\"Range End\" />\n </seam-form-field>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3$1.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "tabFocusOnClearButton", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "deselectOnClick", "clearSearchOnAdd", "compareWith", "keyDownFn", "bindLabel", "bindValue", "appearance", "isOpen", "items"], outputs: ["bindLabelChange", "bindValueChange", "appearanceChange", "isOpenChange", "itemsChange", "blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "ngmodule", type: TheSeamFormFieldModule }, { kind: "component", type: i4$1.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i4$1.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: TheSeamNgSelectExtraDirective, selector: "ng-select", exportAs: ["seamNgSelectExtra"] }, { kind: "directive", type: TheSeamAutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], viewProviders: [
|
|
2463
2647
|
{
|
|
2464
2648
|
provide: ControlContainer,
|
|
2465
|
-
useExisting: FormGroupDirective
|
|
2466
|
-
}
|
|
2649
|
+
useExisting: FormGroupDirective,
|
|
2650
|
+
},
|
|
2467
2651
|
] });
|
|
2468
2652
|
}
|
|
2469
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2653
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnFilterSearchNumericComponent, decorators: [{
|
|
2470
2654
|
type: Component,
|
|
2471
2655
|
args: [{ selector: 'seam-datatable-column-filter-search-numeric', viewProviders: [
|
|
2472
2656
|
{
|
|
2473
2657
|
provide: ControlContainer,
|
|
2474
|
-
useExisting: FormGroupDirective
|
|
2475
|
-
}
|
|
2476
|
-
],
|
|
2658
|
+
useExisting: FormGroupDirective,
|
|
2659
|
+
},
|
|
2660
|
+
], imports: [
|
|
2661
|
+
CommonModule,
|
|
2662
|
+
ReactiveFormsModule,
|
|
2663
|
+
NgSelectModule,
|
|
2664
|
+
TheSeamFormFieldModule,
|
|
2665
|
+
TheSeamNgSelectExtraDirective,
|
|
2666
|
+
TheSeamAutoFocusDirective,
|
|
2667
|
+
], template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"\n ></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input\n seamInput\n formControlName=\"searchText\"\n placeholder=\"Type to search\"\n seamAutoFocus\n />\n </seam-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"showRangeInputs$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input\n seamInput\n formControlName=\"fromText\"\n placeholder=\"Range Start\"\n seamAutoFocus\n />\n </seam-form-field>\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"toText\" placeholder=\"Range End\" />\n </seam-form-field>\n </ng-container>\n</ng-container>\n" }]
|
|
2477
2668
|
}], propDecorators: { filterForm: [{
|
|
2478
2669
|
type: Input
|
|
2479
2670
|
}] } });
|
|
@@ -2499,25 +2690,34 @@ class DatatableColumnFilterSearchDateComponent {
|
|
|
2499
2690
|
if (notNullOrUndefined(this.options?.dateType)) {
|
|
2500
2691
|
this.dateFormat = this.options?.dateType;
|
|
2501
2692
|
}
|
|
2502
|
-
this.showSearchInput$ =
|
|
2503
|
-
|
|
2693
|
+
this.showSearchInput$ =
|
|
2694
|
+
this.filterForm?.controls.searchType.valueChanges.pipe(startWith$1(this.filterForm?.controls.searchType.value), map$1((searchType) => THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(searchType || '')));
|
|
2695
|
+
this.showRangeInputs$ =
|
|
2696
|
+
this.filterForm?.controls.searchType.valueChanges.pipe(startWith$1(this.filterForm?.controls.searchType.value), map$1((searchType) => THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(searchType || '')));
|
|
2504
2697
|
}
|
|
2505
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2506
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
2698
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnFilterSearchDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2699
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableColumnFilterSearchDateComponent, isStandalone: true, selector: "seam-datatable-column-filter-search-date", inputs: { options: "options", filterForm: "filterForm" }, ngImport: i0, template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"\n ></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input\n seamInput\n [type]=\"dateFormat\"\n formControlName=\"searchText\"\n placeholder=\"Type to search\"\n seamAutoFocus\n />\n </seam-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"showRangeInputs$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input\n seamInput\n [type]=\"dateFormat\"\n formControlName=\"fromText\"\n placeholder=\"Range Start\"\n seamAutoFocus\n />\n </seam-form-field>\n\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input\n seamInput\n [type]=\"dateFormat\"\n formControlName=\"toText\"\n placeholder=\"Range End\"\n />\n </seam-form-field>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3$1.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "tabFocusOnClearButton", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "deselectOnClick", "clearSearchOnAdd", "compareWith", "keyDownFn", "bindLabel", "bindValue", "appearance", "isOpen", "items"], outputs: ["bindLabelChange", "bindValueChange", "appearanceChange", "isOpenChange", "itemsChange", "blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "ngmodule", type: TheSeamFormFieldModule }, { kind: "component", type: i4$1.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i4$1.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: TheSeamNgSelectExtraDirective, selector: "ng-select", exportAs: ["seamNgSelectExtra"] }, { kind: "directive", type: TheSeamAutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], viewProviders: [
|
|
2507
2700
|
{
|
|
2508
2701
|
provide: ControlContainer,
|
|
2509
|
-
useExisting: FormGroupDirective
|
|
2510
|
-
}
|
|
2702
|
+
useExisting: FormGroupDirective,
|
|
2703
|
+
},
|
|
2511
2704
|
] });
|
|
2512
2705
|
}
|
|
2513
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2706
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnFilterSearchDateComponent, decorators: [{
|
|
2514
2707
|
type: Component,
|
|
2515
2708
|
args: [{ selector: 'seam-datatable-column-filter-search-date', viewProviders: [
|
|
2516
2709
|
{
|
|
2517
2710
|
provide: ControlContainer,
|
|
2518
|
-
useExisting: FormGroupDirective
|
|
2519
|
-
}
|
|
2520
|
-
],
|
|
2711
|
+
useExisting: FormGroupDirective,
|
|
2712
|
+
},
|
|
2713
|
+
], imports: [
|
|
2714
|
+
CommonModule,
|
|
2715
|
+
ReactiveFormsModule,
|
|
2716
|
+
NgSelectModule,
|
|
2717
|
+
TheSeamFormFieldModule,
|
|
2718
|
+
TheSeamNgSelectExtraDirective,
|
|
2719
|
+
TheSeamAutoFocusDirective,
|
|
2720
|
+
], template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"\n ></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input\n seamInput\n [type]=\"dateFormat\"\n formControlName=\"searchText\"\n placeholder=\"Type to search\"\n seamAutoFocus\n />\n </seam-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"showRangeInputs$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input\n seamInput\n [type]=\"dateFormat\"\n formControlName=\"fromText\"\n placeholder=\"Range Start\"\n seamAutoFocus\n />\n </seam-form-field>\n\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input\n seamInput\n [type]=\"dateFormat\"\n formControlName=\"toText\"\n placeholder=\"Range End\"\n />\n </seam-form-field>\n </ng-container>\n</ng-container>\n" }]
|
|
2521
2721
|
}], propDecorators: { options: [{
|
|
2522
2722
|
type: Input
|
|
2523
2723
|
}], filterForm: [{
|
|
@@ -2543,9 +2743,13 @@ class DatatableColumnFilterMenuComponent {
|
|
|
2543
2743
|
if (notNullOrUndefined(this.columnFilter)) {
|
|
2544
2744
|
this._filterForm = this.columnFilter.form;
|
|
2545
2745
|
}
|
|
2546
|
-
this.customFilterTemplate$ =
|
|
2547
|
-
|
|
2548
|
-
|
|
2746
|
+
this.customFilterTemplate$ =
|
|
2747
|
+
this._columnsFilters.columnFilterTemplates$.pipe(map$1((templates) => templates.find((t) => t.filterName === this.columnFilter?.name)));
|
|
2748
|
+
if (this.updateMethod === 'valueChanges' &&
|
|
2749
|
+
notNullOrUndefined(this._filterForm)) {
|
|
2750
|
+
this._filterForm.valueChanges
|
|
2751
|
+
.pipe(debounceTime(this.debounce || 0), tap$1(() => this.columnFilter?.applyFilter()))
|
|
2752
|
+
.subscribe();
|
|
2549
2753
|
}
|
|
2550
2754
|
}
|
|
2551
2755
|
submit() {
|
|
@@ -2555,15 +2759,23 @@ class DatatableColumnFilterMenuComponent {
|
|
|
2555
2759
|
clearFilter() {
|
|
2556
2760
|
this.columnFilter?.clearFilter();
|
|
2557
2761
|
}
|
|
2558
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2559
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
2762
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnFilterMenuComponent, deps: [{ token: ColumnsFiltersService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2763
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableColumnFilterMenuComponent, isStandalone: true, selector: "seam-datatable-column-filter-menu", inputs: { column: "column", updateMethod: "updateMethod", debounce: "debounce" }, outputs: { closePopover: "closePopover" }, ngImport: i0, template: "<ng-container *ngIf=\"_filterForm && columnFilter\">\n <form [formGroup]=\"_filterForm\" (ngSubmit)=\"submit()\">\n <ng-container [ngSwitch]=\"columnFilter.name\">\n <div *ngSwitchCase=\"'search-text'\">\n <seam-datatable-column-filter-search-text\n [filterForm]=\"_filterForm\"\n ></seam-datatable-column-filter-search-text>\n </div>\n <div *ngSwitchCase=\"'search-numeric'\">\n <seam-datatable-column-filter-search-numeric\n [filterForm]=\"_filterForm\"\n ></seam-datatable-column-filter-search-numeric>\n </div>\n <div *ngSwitchCase=\"'search-date'\">\n <seam-datatable-column-filter-search-date\n [filterForm]=\"_filterForm\"\n [options]=\"columnFilter.options\"\n ></seam-datatable-column-filter-search-date>\n </div>\n <div *ngSwitchDefault>\n <ng-container *ngIf=\"customFilterTemplate$ | async as filterTpl\">\n <ng-container *ngIf=\"filterTpl.template\">\n <ng-container\n [ngTemplateOutlet]=\"filterTpl.template\"\n [ngTemplateOutletContext]=\"{\n $implicit: _filterForm,\n filterForm: _filterForm,\n options: columnFilter.options,\n column: column,\n columnFilter: columnFilter,\n }\"\n >\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n\n <hr class=\"mb-1\" />\n <div\n class=\"d-flex align-items-center\"\n [class.justify-content-between]=\"updateMethod === 'submit'\"\n [class.text-right]=\"updateMethod === 'valueChanges'\"\n >\n <button\n seamButton\n size=\"sm\"\n class=\"text-primary p-0\"\n (click)=\"clearFilter()\"\n [disabled]=\"columnFilter?.isDefault() === true\"\n >\n Clear\n </button>\n <button\n *ngIf=\"updateMethod === 'submit'\"\n seamButton\n size=\"sm\"\n class=\"text-primary p-0\"\n type=\"submit\"\n [disabled]=\"columnFilter?.isDefault() === true\"\n >\n Apply\n </button>\n </div>\n </form>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: TheSeamButtonsModule }, { kind: "component", type: i4$2.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }, { kind: "component", type: DatatableColumnFilterSearchTextComponent, selector: "seam-datatable-column-filter-search-text", inputs: ["filterForm"] }, { kind: "component", type: DatatableColumnFilterSearchNumericComponent, selector: "seam-datatable-column-filter-search-numeric", inputs: ["filterForm"] }, { kind: "component", type: DatatableColumnFilterSearchDateComponent, selector: "seam-datatable-column-filter-search-date", inputs: ["options", "filterForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }] });
|
|
2560
2764
|
}
|
|
2561
2765
|
__decorate([
|
|
2562
2766
|
InputNumber()
|
|
2563
2767
|
], DatatableColumnFilterMenuComponent.prototype, "debounce", void 0);
|
|
2564
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2768
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnFilterMenuComponent, decorators: [{
|
|
2565
2769
|
type: Component,
|
|
2566
|
-
args: [{ selector: 'seam-datatable-column-filter-menu',
|
|
2770
|
+
args: [{ selector: 'seam-datatable-column-filter-menu', imports: [
|
|
2771
|
+
CommonModule,
|
|
2772
|
+
NgTemplateOutlet,
|
|
2773
|
+
ReactiveFormsModule,
|
|
2774
|
+
TheSeamButtonsModule,
|
|
2775
|
+
DatatableColumnFilterSearchTextComponent,
|
|
2776
|
+
DatatableColumnFilterSearchNumericComponent,
|
|
2777
|
+
DatatableColumnFilterSearchDateComponent,
|
|
2778
|
+
], template: "<ng-container *ngIf=\"_filterForm && columnFilter\">\n <form [formGroup]=\"_filterForm\" (ngSubmit)=\"submit()\">\n <ng-container [ngSwitch]=\"columnFilter.name\">\n <div *ngSwitchCase=\"'search-text'\">\n <seam-datatable-column-filter-search-text\n [filterForm]=\"_filterForm\"\n ></seam-datatable-column-filter-search-text>\n </div>\n <div *ngSwitchCase=\"'search-numeric'\">\n <seam-datatable-column-filter-search-numeric\n [filterForm]=\"_filterForm\"\n ></seam-datatable-column-filter-search-numeric>\n </div>\n <div *ngSwitchCase=\"'search-date'\">\n <seam-datatable-column-filter-search-date\n [filterForm]=\"_filterForm\"\n [options]=\"columnFilter.options\"\n ></seam-datatable-column-filter-search-date>\n </div>\n <div *ngSwitchDefault>\n <ng-container *ngIf=\"customFilterTemplate$ | async as filterTpl\">\n <ng-container *ngIf=\"filterTpl.template\">\n <ng-container\n [ngTemplateOutlet]=\"filterTpl.template\"\n [ngTemplateOutletContext]=\"{\n $implicit: _filterForm,\n filterForm: _filterForm,\n options: columnFilter.options,\n column: column,\n columnFilter: columnFilter,\n }\"\n >\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n\n <hr class=\"mb-1\" />\n <div\n class=\"d-flex align-items-center\"\n [class.justify-content-between]=\"updateMethod === 'submit'\"\n [class.text-right]=\"updateMethod === 'valueChanges'\"\n >\n <button\n seamButton\n size=\"sm\"\n class=\"text-primary p-0\"\n (click)=\"clearFilter()\"\n [disabled]=\"columnFilter?.isDefault() === true\"\n >\n Clear\n </button>\n <button\n *ngIf=\"updateMethod === 'submit'\"\n seamButton\n size=\"sm\"\n class=\"text-primary p-0\"\n type=\"submit\"\n [disabled]=\"columnFilter?.isDefault() === true\"\n >\n Apply\n </button>\n </div>\n </form>\n</ng-container>\n" }]
|
|
2567
2779
|
}], ctorParameters: () => [{ type: ColumnsFiltersService }], propDecorators: { column: [{
|
|
2568
2780
|
type: Input
|
|
2569
2781
|
}], updateMethod: [{
|
|
@@ -2574,18 +2786,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
2574
2786
|
type: Output
|
|
2575
2787
|
}] } });
|
|
2576
2788
|
|
|
2789
|
+
class DatatableColumnHeaderComponent {
|
|
2790
|
+
column = input.required(...(ngDevMode ? [{ debugName: "column" }] : []));
|
|
2791
|
+
sortFn = input.required(...(ngDevMode ? [{ debugName: "sortFn" }] : []));
|
|
2792
|
+
columnFilterIcon = input(...(ngDevMode ? [undefined, { debugName: "columnFilterIcon" }] : []));
|
|
2793
|
+
columnFilterUpdateMethod = input(...(ngDevMode ? [undefined, { debugName: "columnFilterUpdateMethod" }] : []));
|
|
2794
|
+
columnFilterUpdateDebounce = input(...(ngDevMode ? [undefined, { debugName: "columnFilterUpdateDebounce" }] : []));
|
|
2795
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2796
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.7", type: DatatableColumnHeaderComponent, isStandalone: true, selector: "seam-datatable-column-header", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null }, sortFn: { classPropertyName: "sortFn", publicName: "sortFn", isSignal: true, isRequired: true, transformFunction: null }, columnFilterIcon: { classPropertyName: "columnFilterIcon", publicName: "columnFilterIcon", isSignal: true, isRequired: false, transformFunction: null }, columnFilterUpdateMethod: { classPropertyName: "columnFilterUpdateMethod", publicName: "columnFilterUpdateMethod", isSignal: true, isRequired: false, transformFunction: null }, columnFilterUpdateDebounce: { classPropertyName: "columnFilterUpdateDebounce", publicName: "columnFilterUpdateDebounce", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.flex-fill": "column().alignHeader !== \"left\"", "class.justify-content-center": "column().alignHeader === \"center\"", "class.justify-content-end": "column().alignHeader === \"right\"" }, classAttribute: "d-inline-flex align-items-center" }, ngImport: i0, template: "@if (column().filterable) {\n <button\n seamIconBtn\n [icon]=\"columnFilterIcon()\"\n size=\"sm\"\n [seamPopover]=\"filterMenu\"\n [seamPopoverBaseWidth]=\"300\"\n class=\"datatable-column-header-filter-button d-flex align-items-center mr-2\"\n [class.datatable-column-header-filter-button-active]=\"column().filterActive\"\n style=\"width: 1rem\"\n title=\"Click to see filter options\"\n ></button>\n}\n@if (column().sortable) {\n <button\n seamButton\n class=\"datatable-sort-target p-0\"\n (click)=\"sortFn()()\"\n title=\"Click to sort\"\n >\n <strong class=\"draggable\">{{ column().name }}</strong>\n </button>\n} @else {\n <strong class=\"draggable\">{{ column().name }}</strong>\n}\n<div\n class=\"datatable-column-header-separator\"\n [attr.data-column-id]=\"column().$$id\"\n></div>\n<ng-template #filterMenu let-popover=\"popover\">\n <seam-datatable-column-filter-menu\n [column]=\"column()\"\n [updateMethod]=\"columnFilterUpdateMethod()\"\n [debounce]=\"columnFilterUpdateDebounce()\"\n (closePopover)=\"popover?.closePopover()\"\n ></seam-datatable-column-filter-menu>\n</ng-template>\n", styles: [".datatable-column-header-separator{position:absolute}.datatable-sort-target{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TheSeamButtonsModule }, { kind: "component", type: i4$2.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }, { kind: "ngmodule", type: TheSeamPopoverModule }, { kind: "directive", type: i2$3.TheSeamPopoverDirective, selector: "[seamPopover]", inputs: ["seamPopover", "seamPopoverContext", "seamPopoverBaseWidth", "seamPopoverDisabled"], exportAs: ["seamPopover"] }, { kind: "ngmodule", type: TheSeamIconModule }, { kind: "component", type: i3.IconBtnComponent, selector: "button[seamIconBtn]", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "iconType", "btnTheme", "badgeTheme", "badgeText", "btnSize", "type", "role"] }, { kind: "component", type: DatatableColumnFilterMenuComponent, selector: "seam-datatable-column-filter-menu", inputs: ["column", "updateMethod", "debounce"], outputs: ["closePopover"] }] });
|
|
2797
|
+
}
|
|
2798
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnHeaderComponent, decorators: [{
|
|
2799
|
+
type: Component,
|
|
2800
|
+
args: [{ selector: 'seam-datatable-column-header', imports: [
|
|
2801
|
+
CommonModule,
|
|
2802
|
+
TheSeamButtonsModule,
|
|
2803
|
+
TheSeamPopoverModule,
|
|
2804
|
+
TheSeamIconModule,
|
|
2805
|
+
DatatableColumnFilterMenuComponent,
|
|
2806
|
+
], host: {
|
|
2807
|
+
class: 'd-inline-flex align-items-center',
|
|
2808
|
+
'[class.flex-fill]': 'column().alignHeader !== "left"',
|
|
2809
|
+
// TODO: fix 'center' alignment. This solution leaves the sort icon on the
|
|
2810
|
+
// far right, away from the text.
|
|
2811
|
+
'[class.justify-content-center]': 'column().alignHeader === "center"',
|
|
2812
|
+
'[class.justify-content-end]': 'column().alignHeader === "right"',
|
|
2813
|
+
}, template: "@if (column().filterable) {\n <button\n seamIconBtn\n [icon]=\"columnFilterIcon()\"\n size=\"sm\"\n [seamPopover]=\"filterMenu\"\n [seamPopoverBaseWidth]=\"300\"\n class=\"datatable-column-header-filter-button d-flex align-items-center mr-2\"\n [class.datatable-column-header-filter-button-active]=\"column().filterActive\"\n style=\"width: 1rem\"\n title=\"Click to see filter options\"\n ></button>\n}\n@if (column().sortable) {\n <button\n seamButton\n class=\"datatable-sort-target p-0\"\n (click)=\"sortFn()()\"\n title=\"Click to sort\"\n >\n <strong class=\"draggable\">{{ column().name }}</strong>\n </button>\n} @else {\n <strong class=\"draggable\">{{ column().name }}</strong>\n}\n<div\n class=\"datatable-column-header-separator\"\n [attr.data-column-id]=\"column().$$id\"\n></div>\n<ng-template #filterMenu let-popover=\"popover\">\n <seam-datatable-column-filter-menu\n [column]=\"column()\"\n [updateMethod]=\"columnFilterUpdateMethod()\"\n [debounce]=\"columnFilterUpdateDebounce()\"\n (closePopover)=\"popover?.closePopover()\"\n ></seam-datatable-column-filter-menu>\n</ng-template>\n", styles: [".datatable-column-header-separator{position:absolute}.datatable-sort-target{cursor:pointer}\n"] }]
|
|
2814
|
+
}], propDecorators: { column: [{ type: i0.Input, args: [{ isSignal: true, alias: "column", required: true }] }], sortFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortFn", required: true }] }], columnFilterIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnFilterIcon", required: false }] }], columnFilterUpdateMethod: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnFilterUpdateMethod", required: false }] }], columnFilterUpdateDebounce: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnFilterUpdateDebounce", required: false }] }] } });
|
|
2815
|
+
|
|
2577
2816
|
/**
|
|
2578
2817
|
* Intended for internal classes declared by the `TheSeamDatatableModule`.
|
|
2579
2818
|
*/
|
|
2580
2819
|
const THESEAM_DATATABLE = new InjectionToken('LibDatatable');
|
|
2581
2820
|
const _THESEAM_DATATABLE = {
|
|
2582
2821
|
provide: THESEAM_DATATABLE,
|
|
2583
|
-
useExisting: forwardRef(() => DatatableComponent)
|
|
2822
|
+
useExisting: forwardRef(() => DatatableComponent),
|
|
2584
2823
|
};
|
|
2585
2824
|
const _THESEAM_DATATABLE_ACCESSOR = {
|
|
2586
2825
|
provide: THESEAM_DATATABLE_ACCESSOR,
|
|
2587
|
-
|
|
2588
|
-
useExisting: forwardRef(() => DatatableComponent)
|
|
2826
|
+
useExisting: forwardRef(() => DatatableComponent),
|
|
2589
2827
|
};
|
|
2590
2828
|
class DatatableComponent {
|
|
2591
2829
|
_preferences;
|
|
@@ -2626,18 +2864,24 @@ class DatatableComponent {
|
|
|
2626
2864
|
get filters() {
|
|
2627
2865
|
return [
|
|
2628
2866
|
...this._menuBarsFiltersSubject.value,
|
|
2629
|
-
...this._columnsFilters.filters()
|
|
2867
|
+
...this._columnsFilters.filters(),
|
|
2630
2868
|
];
|
|
2631
2869
|
}
|
|
2632
2870
|
filters$;
|
|
2633
|
-
get preferencesKey() {
|
|
2634
|
-
|
|
2871
|
+
get preferencesKey() {
|
|
2872
|
+
return this._preferencesKey.value;
|
|
2873
|
+
}
|
|
2874
|
+
set preferencesKey(value) {
|
|
2875
|
+
this._preferencesKey.next(value || undefined);
|
|
2876
|
+
}
|
|
2635
2877
|
_preferencesKey = new BehaviorSubject(undefined);
|
|
2636
2878
|
targetMarkerTemplate;
|
|
2637
2879
|
set columns(value) {
|
|
2638
2880
|
this._columnsManager.setInputColumns(Array.isArray(value) ? value : []);
|
|
2639
2881
|
}
|
|
2640
|
-
get rows() {
|
|
2882
|
+
get rows() {
|
|
2883
|
+
return this._rows.value;
|
|
2884
|
+
}
|
|
2641
2885
|
set rows(value) {
|
|
2642
2886
|
this._rows.next(value || []);
|
|
2643
2887
|
}
|
|
@@ -2654,15 +2898,20 @@ class DatatableComponent {
|
|
|
2654
2898
|
count = 0;
|
|
2655
2899
|
offset = 0;
|
|
2656
2900
|
loadingIndicator = false;
|
|
2657
|
-
get selectionType() {
|
|
2901
|
+
get selectionType() {
|
|
2902
|
+
return this._columnsManager.getSelectionType();
|
|
2903
|
+
}
|
|
2658
2904
|
set selectionType(value) {
|
|
2659
2905
|
this._columnsManager.setSelectionType(notNullOrUndefined(value) ? value : undefined);
|
|
2660
2906
|
}
|
|
2661
2907
|
reorderable = true;
|
|
2662
2908
|
swapColumns = false;
|
|
2663
|
-
get sortType() {
|
|
2909
|
+
get sortType() {
|
|
2910
|
+
return this._sortType;
|
|
2911
|
+
}
|
|
2664
2912
|
set sortType(value) {
|
|
2665
|
-
if (notNullOrUndefined(value) &&
|
|
2913
|
+
if (notNullOrUndefined(value) &&
|
|
2914
|
+
(value === SortType.single || value === SortType.multi)) {
|
|
2666
2915
|
this._sortType = value;
|
|
2667
2916
|
}
|
|
2668
2917
|
else {
|
|
@@ -2697,7 +2946,7 @@ class DatatableComponent {
|
|
|
2697
2946
|
pagerLeftArrow: 'datatable-icon-left',
|
|
2698
2947
|
pagerRightArrow: 'datatable-icon-right',
|
|
2699
2948
|
pagerPrevious: 'datatable-icon-prev',
|
|
2700
|
-
pagerNext: 'datatable-icon-skip'
|
|
2949
|
+
pagerNext: 'datatable-icon-skip',
|
|
2701
2950
|
};
|
|
2702
2951
|
_cssClasses;
|
|
2703
2952
|
get messages() {
|
|
@@ -2710,7 +2959,7 @@ class DatatableComponent {
|
|
|
2710
2959
|
else if (notNullOrUndefined(this._config?.messages)) {
|
|
2711
2960
|
this._messages = {
|
|
2712
2961
|
...this._messagesDefault,
|
|
2713
|
-
...this._config?.messages
|
|
2962
|
+
...this._config?.messages,
|
|
2714
2963
|
};
|
|
2715
2964
|
}
|
|
2716
2965
|
else {
|
|
@@ -2724,7 +2973,7 @@ class DatatableComponent {
|
|
|
2724
2973
|
// Footer total message
|
|
2725
2974
|
totalMessage: 'total',
|
|
2726
2975
|
// Footer selected message
|
|
2727
|
-
selectedMessage: 'selected'
|
|
2976
|
+
selectedMessage: 'selected',
|
|
2728
2977
|
};
|
|
2729
2978
|
_messages;
|
|
2730
2979
|
rowIdentity = (x) => x;
|
|
@@ -2801,12 +3050,15 @@ class DatatableComponent {
|
|
|
2801
3050
|
*
|
|
2802
3051
|
* Defaults to `frozenRight`.
|
|
2803
3052
|
*/
|
|
2804
|
-
get actionItemColumnPosition() {
|
|
3053
|
+
get actionItemColumnPosition() {
|
|
3054
|
+
return this._actionItemColumnPosition;
|
|
3055
|
+
}
|
|
2805
3056
|
set actionItemColumnPosition(value) {
|
|
2806
3057
|
if (notNullOrUndefined(value) && isActionItemColumnPosition(value)) {
|
|
2807
3058
|
this._actionItemColumnPosition = value;
|
|
2808
3059
|
}
|
|
2809
|
-
else if (notNullOrUndefined(this._config?.actionItemColumnPosition) &&
|
|
3060
|
+
else if (notNullOrUndefined(this._config?.actionItemColumnPosition) &&
|
|
3061
|
+
isActionItemColumnPosition(this._config?.actionItemColumnPosition)) {
|
|
2810
3062
|
this._actionItemColumnPosition = this._config?.actionItemColumnPosition;
|
|
2811
3063
|
}
|
|
2812
3064
|
else {
|
|
@@ -2846,8 +3098,8 @@ class DatatableComponent {
|
|
|
2846
3098
|
this._columnFilterUpdateMethod = this._columnFilterUpdateMethodDefault;
|
|
2847
3099
|
}
|
|
2848
3100
|
}
|
|
2849
|
-
_columnFilterUpdateMethodDefault = 'valueChanges';
|
|
2850
3101
|
_columnFilterUpdateMethod;
|
|
3102
|
+
_columnFilterUpdateMethodDefault = 'valueChanges';
|
|
2851
3103
|
get columnFilterUpdateDebounce() {
|
|
2852
3104
|
return this._columnFilterUpdateDebounce;
|
|
2853
3105
|
}
|
|
@@ -2856,7 +3108,8 @@ class DatatableComponent {
|
|
|
2856
3108
|
this._columnFilterUpdateDebounce = value;
|
|
2857
3109
|
}
|
|
2858
3110
|
else if (notNullOrUndefined(this._config?.columnFilterUpdateDebounce)) {
|
|
2859
|
-
this._columnFilterUpdateDebounce =
|
|
3111
|
+
this._columnFilterUpdateDebounce =
|
|
3112
|
+
this._config?.columnFilterUpdateDebounce;
|
|
2860
3113
|
}
|
|
2861
3114
|
else {
|
|
2862
3115
|
this._columnFilterUpdateDebounce = this._columnFilterUpdateDebounceDefault;
|
|
@@ -2882,7 +3135,9 @@ class DatatableComponent {
|
|
|
2882
3135
|
this._columnsManager.setTemplateColumns(translateTemplateColumns(value?.toArray() ?? []));
|
|
2883
3136
|
}
|
|
2884
3137
|
actionMenu;
|
|
2885
|
-
get rowActionItem() {
|
|
3138
|
+
get rowActionItem() {
|
|
3139
|
+
return this._rowActionItem;
|
|
3140
|
+
}
|
|
2886
3141
|
set rowActionItem(value) {
|
|
2887
3142
|
this._rowActionItem = value;
|
|
2888
3143
|
this._columnsManager.setRowActionItem(notNullOrUndefined(value) ? value : undefined);
|
|
@@ -2890,7 +3145,9 @@ class DatatableComponent {
|
|
|
2890
3145
|
_rowActionItem;
|
|
2891
3146
|
rowDetail;
|
|
2892
3147
|
footer;
|
|
2893
|
-
get menuBarComponent() {
|
|
3148
|
+
get menuBarComponent() {
|
|
3149
|
+
return this._menuBarComponent;
|
|
3150
|
+
}
|
|
2894
3151
|
set menuBarComponent(value) {
|
|
2895
3152
|
this._menuBarComponent = value;
|
|
2896
3153
|
if (this._menuBarSub) {
|
|
@@ -2898,8 +3155,9 @@ class DatatableComponent {
|
|
|
2898
3155
|
}
|
|
2899
3156
|
if (value) {
|
|
2900
3157
|
this._setMenuBarFilters(value.filters());
|
|
2901
|
-
this._menuBarSub = this._menuBarComponent?.filtersChanged
|
|
2902
|
-
|
|
3158
|
+
this._menuBarSub = this._menuBarComponent?.filtersChanged.subscribe(() => {
|
|
3159
|
+
this._setMenuBarFilters(value.filters());
|
|
3160
|
+
});
|
|
2903
3161
|
}
|
|
2904
3162
|
}
|
|
2905
3163
|
_menuBarComponent;
|
|
@@ -2910,31 +3168,41 @@ class DatatableComponent {
|
|
|
2910
3168
|
ngxDatatable;
|
|
2911
3169
|
ngxDatatableElement;
|
|
2912
3170
|
ngxRowDetail;
|
|
2913
|
-
get actionMenuCellTpl() {
|
|
3171
|
+
get actionMenuCellTpl() {
|
|
3172
|
+
return this._actionMenuCellTpl;
|
|
3173
|
+
}
|
|
2914
3174
|
set actionMenuCellTpl(value) {
|
|
2915
3175
|
this._actionMenuCellTpl = value;
|
|
2916
3176
|
this._columnsManager.setActionMenuCellTpl(notNullOrUndefined(value) ? value : undefined);
|
|
2917
3177
|
}
|
|
2918
3178
|
_actionMenuCellTpl;
|
|
2919
|
-
get treeToggleTpl() {
|
|
3179
|
+
get treeToggleTpl() {
|
|
3180
|
+
return this._treeToggleTpl;
|
|
3181
|
+
}
|
|
2920
3182
|
set treeToggleTpl(value) {
|
|
2921
3183
|
this._treeToggleTpl = value;
|
|
2922
3184
|
this._columnsManager.setTreeToggleTpl(notNullOrUndefined(value) ? value : undefined);
|
|
2923
3185
|
}
|
|
2924
3186
|
_treeToggleTpl;
|
|
2925
|
-
get headerTpl() {
|
|
3187
|
+
get headerTpl() {
|
|
3188
|
+
return this._headerTpl;
|
|
3189
|
+
}
|
|
2926
3190
|
set headerTpl(value) {
|
|
2927
3191
|
this._headerTpl = value;
|
|
2928
3192
|
this._columnsManager.setHeaderTpl(notNullOrUndefined(value) ? value : undefined);
|
|
2929
3193
|
}
|
|
2930
3194
|
_headerTpl;
|
|
2931
|
-
get blankHeaderTpl() {
|
|
3195
|
+
get blankHeaderTpl() {
|
|
3196
|
+
return this._blankHeaderTpl;
|
|
3197
|
+
}
|
|
2932
3198
|
set blankHeaderTpl(value) {
|
|
2933
3199
|
this._blankHeaderTpl = value;
|
|
2934
3200
|
this._columnsManager.setBlankHeaderTpl(notNullOrUndefined(value) ? value : undefined);
|
|
2935
3201
|
}
|
|
2936
3202
|
_blankHeaderTpl;
|
|
2937
|
-
get cellTypeSelectorTpl() {
|
|
3203
|
+
get cellTypeSelectorTpl() {
|
|
3204
|
+
return this._cellTypeSelectorTpl;
|
|
3205
|
+
}
|
|
2938
3206
|
set cellTypeSelectorTpl(value) {
|
|
2939
3207
|
this._cellTypeSelectorTpl = value;
|
|
2940
3208
|
this._columnsManager.setCellTypeSelectorTpl(notNullOrUndefined(value) ? value : undefined);
|
|
@@ -2958,8 +3226,8 @@ class DatatableComponent {
|
|
|
2958
3226
|
const id = event.target.parentElement
|
|
2959
3227
|
?.querySelector('.datatable-column-header-separator')
|
|
2960
3228
|
?.getAttribute('data-column-id');
|
|
2961
|
-
this._columnsManager.columns$.pipe(take(1)).subscribe(columns => {
|
|
2962
|
-
const column = columns.find(c => c.$$id === id);
|
|
3229
|
+
this._columnsManager.columns$.pipe(take(1)).subscribe((columns) => {
|
|
3230
|
+
const column = columns.find((c) => c.$$id === id);
|
|
2963
3231
|
if (column) {
|
|
2964
3232
|
const columnProp = getColumnProp(column);
|
|
2965
3233
|
if (columnProp) {
|
|
@@ -2977,28 +3245,31 @@ class DatatableComponent {
|
|
|
2977
3245
|
this._columnsAlterationsManager = _columnsAlterationsManager;
|
|
2978
3246
|
this._columnsFilters = _columnsFilters;
|
|
2979
3247
|
this._config = _config;
|
|
2980
|
-
this._preferencesKey
|
|
3248
|
+
this._preferencesKey
|
|
3249
|
+
.pipe(distinctUntilChanged(), switchMap((key) => {
|
|
2981
3250
|
if (!notNullOrUndefined(key) || key.length === 0) {
|
|
2982
3251
|
return of(undefined);
|
|
2983
3252
|
}
|
|
2984
3253
|
return from(waitOnConditionAsync(() => this._preferences.isLoaded(key))).pipe(switchMap(() => this._columnsAlterationsManager.changes.pipe(startWith(undefined), tap(() => {
|
|
2985
|
-
console.log('%cSaving columns alterations to preferences', 'color: blue', this._columnsAlterationsManager.get())
|
|
3254
|
+
// console.log('%cSaving columns alterations to preferences', 'color: blue', this._columnsAlterationsManager.get())
|
|
2986
3255
|
this._preferences.setAlterations(key, this._columnsAlterationsManager.get());
|
|
2987
3256
|
}))));
|
|
2988
|
-
}), takeUntil(this._ngUnsubscribe))
|
|
3257
|
+
}), takeUntil(this._ngUnsubscribe))
|
|
3258
|
+
.subscribe();
|
|
2989
3259
|
const applyPrefs = (cols) => this._columnsAlterationsManager.changes.pipe(startWith(undefined), map(() => {
|
|
2990
|
-
console.log('%cApplying columns alterations', 'color: blue', cols)
|
|
3260
|
+
// console.log('%cApplying columns alterations', 'color: blue', cols)
|
|
2991
3261
|
this._columnsAlterationsManager.apply(cols, this);
|
|
2992
3262
|
return cols;
|
|
2993
3263
|
}));
|
|
2994
|
-
this._preferencesKey
|
|
3264
|
+
this._preferencesKey
|
|
3265
|
+
.pipe(distinctUntilChanged(), switchMap((prefsKey) => {
|
|
2995
3266
|
if (!notNullOrUndefined(prefsKey)) {
|
|
2996
3267
|
return of(undefined);
|
|
2997
3268
|
}
|
|
2998
3269
|
return this._preferences.preferences(prefsKey).pipe(switchMap(async (preferences) => {
|
|
2999
3270
|
await waitOnConditionAsync(() => this._preferences.isLoaded(prefsKey));
|
|
3000
3271
|
return preferences;
|
|
3001
|
-
}), take(1), map(preferences => {
|
|
3272
|
+
}), take(1), map((preferences) => {
|
|
3002
3273
|
let alterations = [];
|
|
3003
3274
|
try {
|
|
3004
3275
|
alterations = mapColumnsAlterationsStates(preferences.alterations);
|
|
@@ -3011,18 +3282,28 @@ class DatatableComponent {
|
|
|
3011
3282
|
console.warn(e);
|
|
3012
3283
|
}
|
|
3013
3284
|
}
|
|
3014
|
-
console.log('%cSetting columns alterations from preferences', 'color: blue', alterations)
|
|
3285
|
+
// console.log('%cSetting columns alterations from preferences', 'color: blue', alterations)
|
|
3015
3286
|
this._columnsAlterationsManager.add(alterations);
|
|
3016
3287
|
}));
|
|
3017
|
-
}), takeUntil(this._ngUnsubscribe))
|
|
3018
|
-
|
|
3288
|
+
}), takeUntil(this._ngUnsubscribe))
|
|
3289
|
+
.subscribe();
|
|
3290
|
+
this.columns$ = combineLatest([
|
|
3291
|
+
this._columnsManager.columns$,
|
|
3292
|
+
this._columnsFilters.columnActiveFilterProps$,
|
|
3293
|
+
]).pipe(map(([columns, columnActiveFilterProps]) => columns.map((col) => ({
|
|
3019
3294
|
...col,
|
|
3020
|
-
filterActive: columnActiveFilterProps.includes(this._columnsFilters.getColumnFilterProp(col) || '')
|
|
3295
|
+
filterActive: columnActiveFilterProps.includes(this._columnsFilters.getColumnFilterProp(col) || ''),
|
|
3021
3296
|
}))));
|
|
3022
|
-
this.displayColumns$ = this.columns$.pipe(switchMap(cols => applyPrefs(cols)), map(cols => cols.filter(c => !c.hidden)), tap(v => removeUnusedDiffs(v, this._colDiffersInp, this._colDiffersTpl)));
|
|
3023
|
-
this.filters$ = combineLatest([
|
|
3024
|
-
|
|
3025
|
-
|
|
3297
|
+
this.displayColumns$ = this.columns$.pipe(switchMap((cols) => applyPrefs(cols)), map((cols) => cols.filter((c) => !c.hidden)), tap((v) => removeUnusedDiffs(v, this._colDiffersInp, this._colDiffersTpl)));
|
|
3298
|
+
this.filters$ = combineLatest([
|
|
3299
|
+
this._menuBarsFiltersSubject.asObservable(),
|
|
3300
|
+
this._columnsFilters.columnsFilters$,
|
|
3301
|
+
]).pipe(map(([menuFilters, columnsFilters]) => [
|
|
3302
|
+
...menuFilters,
|
|
3303
|
+
...columnsFilters,
|
|
3304
|
+
]));
|
|
3305
|
+
this.filterStates = this.filters$.pipe(switchMap((filters) => composeDataFilterStates(filters)));
|
|
3306
|
+
this.rows$ = this._dataSourceSubject.pipe(switchMap((dataSource) => {
|
|
3026
3307
|
// console.log('dataSource', dataSource)
|
|
3027
3308
|
let dataStream;
|
|
3028
3309
|
if (isDataSource(dataSource)) {
|
|
@@ -3044,9 +3325,9 @@ class DatatableComponent {
|
|
|
3044
3325
|
}
|
|
3045
3326
|
if (!this.externalFiltering) {
|
|
3046
3327
|
// console.log('not using externalFiltering')
|
|
3047
|
-
dataStream = dataStream.pipe(switchMap(rows => this.filters$.pipe(
|
|
3328
|
+
dataStream = dataStream.pipe(switchMap((rows) => this.filters$.pipe(
|
|
3048
3329
|
// tap(v => console.log('filters', v)),
|
|
3049
|
-
concatMap(filters => of(rows).pipe(composeDataFilters(filters))))));
|
|
3330
|
+
concatMap((filters) => of(rows).pipe(composeDataFilters(filters))))));
|
|
3050
3331
|
// dataStream = this._filtersSubject.pipe(
|
|
3051
3332
|
// tap(v => console.log('filters', v)),
|
|
3052
3333
|
// concatMap(filters => dataStream.pipe(composeDataFilters(filters))),
|
|
@@ -3058,11 +3339,11 @@ class DatatableComponent {
|
|
|
3058
3339
|
takeUntil(this._ngUnsubscribe));
|
|
3059
3340
|
}));
|
|
3060
3341
|
// TODO: Implement viewChange for CollectionViewer.
|
|
3061
|
-
this.viewChange = this.page.pipe(map(p => ({ start: 0, end: p.count })));
|
|
3342
|
+
this.viewChange = this.page.pipe(map((p) => ({ start: 0, end: p.count })));
|
|
3062
3343
|
}
|
|
3063
3344
|
ngOnInit() {
|
|
3064
3345
|
if (this.rowDetail) {
|
|
3065
|
-
this._rowDetailToggleSubscription = this.rowDetail._toggle.subscribe(event => {
|
|
3346
|
+
this._rowDetailToggleSubscription = this.rowDetail._toggle.subscribe((event) => {
|
|
3066
3347
|
if (this.ngxRowDetail) {
|
|
3067
3348
|
this.ngxRowDetail.toggle.emit(event);
|
|
3068
3349
|
}
|
|
@@ -3110,7 +3391,7 @@ class DatatableComponent {
|
|
|
3110
3391
|
if (!this.columnComponents || this.columnComponents.length === 0) {
|
|
3111
3392
|
return null;
|
|
3112
3393
|
}
|
|
3113
|
-
const tpl = this.columnComponents.find(t => t.prop === propName);
|
|
3394
|
+
const tpl = this.columnComponents.find((t) => t.prop === propName);
|
|
3114
3395
|
if (tpl) {
|
|
3115
3396
|
return tpl;
|
|
3116
3397
|
}
|
|
@@ -3130,7 +3411,9 @@ class DatatableComponent {
|
|
|
3130
3411
|
return item.prop;
|
|
3131
3412
|
}
|
|
3132
3413
|
onDatatableResize(event) {
|
|
3133
|
-
if (this.ngxDatatable &&
|
|
3414
|
+
if (this.ngxDatatable &&
|
|
3415
|
+
this.ngxDatatableElement &&
|
|
3416
|
+
this.ngxDatatableElement.nativeElement) {
|
|
3134
3417
|
// TODO: Consider integrating this into the ngx-datatable library to avoid
|
|
3135
3418
|
// multiple resize calls when the table resizes itself.
|
|
3136
3419
|
this.ngxDatatable.recalculate();
|
|
@@ -3156,7 +3439,7 @@ class DatatableComponent {
|
|
|
3156
3439
|
const alteration = new WidthColumnsAlteration({
|
|
3157
3440
|
columnProp,
|
|
3158
3441
|
width: event.column.width,
|
|
3159
|
-
canAutoResize: false
|
|
3442
|
+
canAutoResize: false,
|
|
3160
3443
|
}, true);
|
|
3161
3444
|
this._columnsAlterationsManager.add([alteration]);
|
|
3162
3445
|
}
|
|
@@ -3166,12 +3449,14 @@ class DatatableComponent {
|
|
|
3166
3449
|
this.reorder.emit(event);
|
|
3167
3450
|
const columnProp = getColumnProp(event.column);
|
|
3168
3451
|
if (columnProp) {
|
|
3169
|
-
const currentOrderAlteration = this._columnsAlterationsManager
|
|
3452
|
+
const currentOrderAlteration = this._columnsAlterationsManager
|
|
3453
|
+
.get()
|
|
3454
|
+
.find((x) => x.type === 'order');
|
|
3170
3455
|
const state = {
|
|
3171
3456
|
columns: [
|
|
3172
3457
|
...(currentOrderAlteration?.state.columns || []).filter((x) => x.columnProp !== columnProp),
|
|
3173
|
-
{ columnProp, index: event.newValue }
|
|
3174
|
-
]
|
|
3458
|
+
{ columnProp, index: event.newValue },
|
|
3459
|
+
],
|
|
3175
3460
|
};
|
|
3176
3461
|
const alteration = new OrderColumnsAlteration(state, true);
|
|
3177
3462
|
this._columnsAlterationsManager.add([alteration]);
|
|
@@ -3204,18 +3489,18 @@ class DatatableComponent {
|
|
|
3204
3489
|
offset: this.ngxDatatable?.offset ?? 0,
|
|
3205
3490
|
pageSize: this.ngxDatatable?.pageSize ?? 0,
|
|
3206
3491
|
limit: this.ngxDatatable?.limit,
|
|
3207
|
-
count: this.ngxDatatable?.count ?? 0
|
|
3492
|
+
count: this.ngxDatatable?.count ?? 0,
|
|
3208
3493
|
};
|
|
3209
3494
|
}
|
|
3210
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3211
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3495
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableComponent, deps: [{ token: DatatablePreferencesService }, { token: ColumnsManagerService }, { token: ColumnsAlterationsManagerService }, { token: ColumnsFiltersService }, { token: THESEAM_DATATABLE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
3496
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableComponent, isStandalone: false, selector: "seam-datatable", inputs: { preferencesKey: "preferencesKey", targetMarkerTemplate: "targetMarkerTemplate", columns: "columns", rows: "rows", columnMode: "columnMode", groupRowsBy: "groupRowsBy", groupedRows: "groupedRows", selected: "selected", externalPaging: "externalPaging", externalSorting: "externalSorting", externalFiltering: "externalFiltering", limit: "limit", count: "count", offset: "offset", loadingIndicator: "loadingIndicator", selectionType: "selectionType", reorderable: "reorderable", swapColumns: "swapColumns", sortType: "sortType", sorts: "sorts", cssClasses: "cssClasses", messages: "messages", rowIdentity: "rowIdentity", rowClass: "rowClass", selectCheck: "selectCheck", displayCheck: "displayCheck", groupExpansionDefault: "groupExpansionDefault", trackByProp: "trackByProp", selectAllRowsOnPage: "selectAllRowsOnPage", treeFromRelation: "treeFromRelation", treeToRelation: "treeToRelation", summaryRow: "summaryRow", summaryHeight: "summaryHeight", summaryPosition: "summaryPosition", virtualization: "virtualization", headerHeight: "headerHeight", rowHeight: "rowHeight", footerHeight: "footerHeight", scrollbarV: "scrollbarV", scrollbarH: "scrollbarH", dataSource: "dataSource", actionItemColumnPosition: "actionItemColumnPosition", columnFilterIcon: "columnFilterIcon", columnFilterUpdateMethod: "columnFilterUpdateMethod", columnFilterUpdateDebounce: "columnFilterUpdateDebounce" }, outputs: { scroll: "scroll", activate: "activate", select: "select", sort: "sort", page: "page", reorder: "reorder", resize: "resize", tableContextmenu: "tableContextmenu", treeAction: "treeAction", actionRefreshRequest: "actionRefreshRequest", hiddenColumnsChange: "hiddenColumnsChange" }, host: { listeners: { "dblclick": "_dblClick($event)" } }, providers: [
|
|
3212
3497
|
_THESEAM_DATATABLE,
|
|
3213
3498
|
DatatableColumnChangesService,
|
|
3214
3499
|
_THESEAM_DATATABLE_ACCESSOR,
|
|
3215
3500
|
ColumnsManagerService,
|
|
3216
3501
|
ColumnsAlterationsManagerService,
|
|
3217
|
-
ColumnsFiltersService
|
|
3218
|
-
], queries: [{ propertyName: "actionMenu", first: true, predicate: DatatableActionMenuComponent, descendants: true, static: true }, { propertyName: "rowActionItem", first: true, predicate: DatatableRowActionItemDirective, descendants: true }, { propertyName: "rowDetail", first: true, predicate: TheSeamDatatableRowDetailDirective, descendants: true, static: true }, { propertyName: "footer", first: true, predicate: TheSeamDatatableFooterDirective, descendants: true, static: true }, { propertyName: "menuBarComponent", first: true, predicate: DatatableMenuBarComponent, descendants: true }, { propertyName: "columnComponents", predicate: DatatableColumnComponent }, { propertyName: "columnFilterTemplates", predicate: TheSeamDatatableColumnFilterDirective }], viewQueries: [{ propertyName: "ngxDatatable", first: true, predicate: DatatableComponent$1, descendants: true }, { propertyName: "ngxDatatableElement", first: true, predicate: DatatableComponent$1, descendants: true, read: ElementRef }, { propertyName: "ngxRowDetail", first: true, predicate: DatatableRowDetailDirective, descendants: true }, { propertyName: "actionMenuCellTpl", first: true, predicate: ["actionMenuCellTpl"], descendants: true, static: true }, { propertyName: "treeToggleTpl", first: true, predicate: ["treeToggleTpl"], descendants: true, static: true }, { propertyName: "headerTpl", first: true, predicate: ["headerTpl"], descendants: true, static: true }, { propertyName: "blankHeaderTpl", first: true, predicate: ["blankHeaderTpl"], descendants: true, static: true }, { propertyName: "cellTypeSelectorTpl", first: true, predicate: ["cellTypeSelectorTpl"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n [columnMode]=\"$any(columnMode)\"\n [scrollbarV]=\"scrollbarV\"\n [scrollbarH]=\"scrollbarH\"\n [virtualization]=\"virtualization\"\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n [groupRowsBy]=\"$any(groupRowsBy)\"\n [groupedRows]=\"$any(groupedRows)\"\n [selected]=\"$any(selected)\"\n [externalPaging]=\"externalPaging\"\n [externalSorting]=\"externalSorting\"\n [limit]=\"$any(limit)\"\n [count]=\"$any(count)\"\n [offset]=\"$any(offset)\"\n [loadingIndicator]=\"loadingIndicator\"\n [selectionType]=\"$any(selectionType)\"\n [reorderable]=\"reorderable\"\n [swapColumns]=\"swapColumns\"\n [sortType]=\"$any(sortType)\"\n [sorts]=\"$any(_sorts)\"\n [cssClasses]=\"$any(cssClasses)\"\n [messages]=\"$any(messages)\"\n [rowIdentity]=\"$any(rowIdentity)\"\n [rowClass]=\"rowClass\"\n [selectCheck]=\"selectCheck\"\n [displayCheck]=\"$any(displayCheck)\"\n [groupExpansionDefault]=\"groupExpansionDefault\"\n [trackByProp]=\"$any(trackByProp)\"\n [selectAllRowsOnPage]=\"selectAllRowsOnPage\"\n [treeFromRelation]=\"$any(treeFromRelation)\"\n [treeToRelation]=\"$any(treeToRelation)\"\n [summaryRow]=\"summaryRow\"\n [summaryHeight]=\"$any(summaryHeight)\"\n [summaryPosition]=\"$any(summaryPosition)\"\n [rows]=\"rows$ | async\"\n [columns]=\"$any(displayColumns$ | async)\"\n [headerHeight]=\"$any(headerHeight)\"\n [rowHeight]=\"$any(rowHeight)\"\n [footerHeight]=\"$any(footerHeight)\"\n (scroll)=\"scroll.emit($event)\"\n (activate)=\"activate.emit($event)\"\n (select)=\"select.emit($event)\"\n (sort)=\"_onSort($event)\"\n (page)=\"page.emit($event)\"\n (reorder)=\"_onReorder($event)\"\n (resize)=\"_onResize($event)\"\n (tableContextmenu)=\"tableContextmenu.emit($event)\"\n (treeAction)=\"treeAction.emit($event)\"\n (seamElemResized)=\"onDatatableResize($event)\"\n (treeAction)=\"_onTreeAction($event)\">\n\n <ngx-datatable-group-header [rowHeight]=\"50\" #myGroupHeader *ngIf=\"groupRowsBy\">\n <ng-template let-group=\"group\" let-expanded=\"expanded\" ngx-datatable-group-header-template>\n <div\n class=\"w-100 bg-light p-1\"\n [class.border-bottom]=\"!expanded\"\n [class.datatable-icon-right]=\"!expanded\"\n [class.datatable-icon-down]=\"expanded\"\n title=\"Expand/Collapse Group\"\n (click)=\"ngxDatatable?.groupHeader?.toggleExpandGroup(group)\">\n <!-- <b>Age: {{ group.age }}</b> -->\n </div>\n </ng-template>\n </ngx-datatable-group-header>\n\n <ngx-datatable-row-detail *ngIf=\"rowDetail && rowDetail.template\"\n [rowHeight]=\"rowDetail.rowHeight || 0\"\n [template]=\"$any(rowDetail.template)\"\n (toggle)=\"rowDetail.toggle.emit($event)\">\n </ngx-datatable-row-detail>\n\n <ngx-datatable-footer *ngIf=\"footer && footer.template\"\n [template]=\"$any(footer.template)\">\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n\n<ng-template #blankHeaderTpl ngx-datatable-header-template></ng-template>\n\n<ng-template\n #headerTpl\n ngx-datatable-header-template\n let-column=\"column\"\n let-sortFn=\"sortFn\"\n>\n <div class=\"d-inline-flex align-items-center\">\n <ng-container *ngIf=\"$any(column).filterable\">\n <button\n seamIconBtn\n [icon]=\"columnFilterIcon\"\n size=\"sm\"\n [seamPopover]=\"filterMenu\"\n [seamPopoverBaseWidth]=\"300\"\n class=\"datatable-column-header-filter-button d-flex align-items-center mr-2\"\n [class.datatable-column-header-filter-button-active]=\"$any(column).filterActive\"\n style=\"width: 1rem;\"\n title=\"Click to see filter options\"></button>\n </ng-container>\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{column.name}}</strong>\n <button\n seamButton\n *ngIf=\"column.sortable\"\n class=\"datatable-sort-target p-0\"\n (click)=\"sortFn()\"\n title=\"Click to sort\">\n <strong class=\"draggable\">{{column.name}}</strong>\n </button>\n <div class=\"datatable-column-header-separator\" [attr.data-column-id]=\"column.$$id\"></div>\n </div>\n <ng-template #filterMenu let-popover=\"popover\">\n <seam-datatable-column-filter-menu\n [column]=\"column\"\n [updateMethod]=\"columnFilterUpdateMethod\"\n [debounce]=\"columnFilterUpdateDebounce\"\n (closePopover)=\"popover?.closePopover()\"></seam-datatable-column-filter-menu>\n </ng-template>\n</ng-template>\n\n<ng-template #cellTypeSelectorTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\" let-column=\"column\">\n <seam-table-cell-type-selector *ngIf=\"row\"\n [type]=\"$any(column).cellType\"\n [value]=\"value\"\n [rowIndex]=\"rowIndex\"\n [row]=\"row\"\n [colData]=\"column\">\n </seam-table-cell-type-selector>\n</ng-template>\n\n<ng-template #actionMenuCellTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\">\n\n <ng-container *ngIf=\"row && rowActionItem?.template\">\n <ng-template\n [ngTemplateOutlet]=\"$any(rowActionItem?.template)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, row: row, rowIndex: rowIndex }\">\n </ng-template>\n </ng-container>\n\n</ng-template>\n\n<ng-template #treeToggleTpl ngx-datatable-tree-toggle let-tree=\"cellContext\">\n <button\n class=\"p-0 bg-transparent border-0 btn\"\n [disabled]=\"tree.treeStatus==='disabled'\"\n (click)=\"tree.onTreeAction()\">\n <span *ngIf=\"tree.treeStatus==='loading'\">\n <fa-icon [icon]=\"_faSpinner\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='collapsed'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='expanded'\">\n <fa-icon [icon]=\"_faChevronDown\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='disabled'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n </button>\n</ng-template>\n", styles: [":host{display:flex;flex-grow:1;flex-direction:column}::ng-deep .seam-datatable-action-menu{min-width:auto!important}ngx-datatable{position:absolute!important;inset:0}.datatable-wrapper{display:flex;flex-direction:column;flex-grow:1}.datatable-wrapper .datatable-table-wrapper{position:relative;flex:1 1 100%}.datatable-column-header-separator{position:absolute}.datatable-sort-target{cursor:pointer}::ng-deep .ngx-datatable .datatable-body-row{position:relative}::ng-deep .ngx-datatable .datatable-row-right{position:absolute!important;top:0}::ng-deep .ngx-datatable .datatable-row-right{right:0}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarVDynamic", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "ghostLoadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "displayPageCount", "displayPager", "disableRowCheck", "rowDraggable", "enableClearingSortState", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction", "rowDragEvents"] }, { kind: "directive", type: i6.DatatableRowDetailDirective, selector: "ngx-datatable-row-detail", inputs: ["rowHeight", "template"], outputs: ["toggle"] }, { kind: "directive", type: i6.DatatableGroupHeaderDirective, selector: "ngx-datatable-group-header", inputs: ["rowHeight", "checkboxable", "template"], outputs: ["toggle"] }, { kind: "directive", type: i6.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i6.DataTableColumnCellTreeToggle, selector: "[ngx-datatable-tree-toggle]" }, { kind: "directive", type: i6.DatatableFooterDirective, selector: "ngx-datatable-footer", inputs: ["footerHeight", "totalMessage", "selectedMessage", "pagerLeftArrowIcon", "pagerRightArrowIcon", "pagerPreviousIcon", "pagerNextIcon", "template"] }, { kind: "directive", type: i6.DatatableGroupHeaderTemplateDirective, selector: "[ngx-datatable-group-header-template]" }, { kind: "component", type: i7.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: i2$2.TheSeamElemResizedDirective, selector: "[seamElemResized]", outputs: ["seamElemResized"], exportAs: ["seamElemResized"] }, { kind: "component", type: i5.IconBtnComponent, selector: "button[seamIconBtn]", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "iconType", "btnTheme", "badgeTheme", "badgeText", "btnSize", "type", "role"] }, { kind: "component", type: i3$1.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }, { kind: "directive", type: i11.TheSeamPopoverDirective, selector: "[seamPopover]", inputs: ["seamPopover", "seamPopoverContext", "seamPopoverBaseWidth", "seamPopoverDisabled"], exportAs: ["seamPopover"] }, { kind: "component", type: i12.TableCellTypeSelectorComponent, selector: "seam-table-cell-type-selector", inputs: ["type", "value", "rowIndex", "row", "colData"] }, { kind: "component", type: DatatableColumnFilterMenuComponent, selector: "seam-datatable-column-filter-menu", inputs: ["column", "updateMethod", "debounce"], outputs: ["closePopover"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], animations: [
|
|
3502
|
+
ColumnsFiltersService,
|
|
3503
|
+
], queries: [{ propertyName: "actionMenu", first: true, predicate: DatatableActionMenuComponent, descendants: true, static: true }, { propertyName: "rowActionItem", first: true, predicate: DatatableRowActionItemDirective, descendants: true }, { propertyName: "rowDetail", first: true, predicate: TheSeamDatatableRowDetailDirective, descendants: true, static: true }, { propertyName: "footer", first: true, predicate: TheSeamDatatableFooterDirective, descendants: true, static: true }, { propertyName: "menuBarComponent", first: true, predicate: DatatableMenuBarComponent, descendants: true }, { propertyName: "columnComponents", predicate: DatatableColumnComponent }, { propertyName: "columnFilterTemplates", predicate: TheSeamDatatableColumnFilterDirective }], viewQueries: [{ propertyName: "ngxDatatable", first: true, predicate: DatatableComponent$1, descendants: true }, { propertyName: "ngxDatatableElement", first: true, predicate: DatatableComponent$1, descendants: true, read: ElementRef }, { propertyName: "ngxRowDetail", first: true, predicate: DatatableRowDetailDirective, descendants: true }, { propertyName: "actionMenuCellTpl", first: true, predicate: ["actionMenuCellTpl"], descendants: true, static: true }, { propertyName: "treeToggleTpl", first: true, predicate: ["treeToggleTpl"], descendants: true, static: true }, { propertyName: "headerTpl", first: true, predicate: ["headerTpl"], descendants: true, static: true }, { propertyName: "blankHeaderTpl", first: true, predicate: ["blankHeaderTpl"], descendants: true, static: true }, { propertyName: "cellTypeSelectorTpl", first: true, predicate: ["cellTypeSelectorTpl"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n [columnMode]=\"$any(columnMode)\"\n [scrollbarV]=\"scrollbarV\"\n [scrollbarH]=\"scrollbarH\"\n [virtualization]=\"virtualization\"\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n [groupRowsBy]=\"$any(groupRowsBy)\"\n [groupedRows]=\"$any(groupedRows)\"\n [selected]=\"$any(selected)\"\n [externalPaging]=\"externalPaging\"\n [externalSorting]=\"externalSorting\"\n [limit]=\"$any(limit)\"\n [count]=\"$any(count)\"\n [offset]=\"$any(offset)\"\n [loadingIndicator]=\"loadingIndicator\"\n [selectionType]=\"$any(selectionType)\"\n [reorderable]=\"reorderable\"\n [swapColumns]=\"swapColumns\"\n [sortType]=\"$any(sortType)\"\n [sorts]=\"$any(_sorts)\"\n [cssClasses]=\"$any(cssClasses)\"\n [messages]=\"$any(messages)\"\n [rowIdentity]=\"$any(rowIdentity)\"\n [rowClass]=\"rowClass\"\n [selectCheck]=\"selectCheck\"\n [displayCheck]=\"$any(displayCheck)\"\n [groupExpansionDefault]=\"groupExpansionDefault\"\n [trackByProp]=\"$any(trackByProp)\"\n [selectAllRowsOnPage]=\"selectAllRowsOnPage\"\n [treeFromRelation]=\"$any(treeFromRelation)\"\n [treeToRelation]=\"$any(treeToRelation)\"\n [summaryRow]=\"summaryRow\"\n [summaryHeight]=\"$any(summaryHeight)\"\n [summaryPosition]=\"$any(summaryPosition)\"\n [rows]=\"rows$ | async\"\n [columns]=\"$any(displayColumns$ | async)\"\n [headerHeight]=\"$any(headerHeight)\"\n [rowHeight]=\"$any(rowHeight)\"\n [footerHeight]=\"$any(footerHeight)\"\n (scroll)=\"scroll.emit($event)\"\n (activate)=\"activate.emit($event)\"\n (select)=\"select.emit($event)\"\n (sort)=\"_onSort($event)\"\n (page)=\"page.emit($event)\"\n (reorder)=\"_onReorder($event)\"\n (resize)=\"_onResize($event)\"\n (tableContextmenu)=\"tableContextmenu.emit($event)\"\n (treeAction)=\"treeAction.emit($event)\"\n (seamElemResized)=\"onDatatableResize($event)\"\n (treeAction)=\"_onTreeAction($event)\"\n >\n <ngx-datatable-group-header\n [rowHeight]=\"50\"\n #myGroupHeader\n *ngIf=\"groupRowsBy\"\n >\n <ng-template\n let-group=\"group\"\n let-expanded=\"expanded\"\n ngx-datatable-group-header-template\n >\n <div\n class=\"w-100 bg-light p-1\"\n [class.border-bottom]=\"!expanded\"\n [class.datatable-icon-right]=\"!expanded\"\n [class.datatable-icon-down]=\"expanded\"\n title=\"Expand/Collapse Group\"\n (click)=\"ngxDatatable?.groupHeader?.toggleExpandGroup(group)\"\n >\n <!-- <b>Age: {{ group.age }}</b> -->\n </div>\n </ng-template>\n </ngx-datatable-group-header>\n\n <ngx-datatable-row-detail\n *ngIf=\"rowDetail && rowDetail.template\"\n [rowHeight]=\"rowDetail.rowHeight || 0\"\n [template]=\"$any(rowDetail.template)\"\n (toggle)=\"rowDetail.toggle.emit($event)\"\n >\n </ngx-datatable-row-detail>\n\n <ngx-datatable-footer\n *ngIf=\"footer && footer.template\"\n [template]=\"$any(footer.template)\"\n >\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n\n<ng-template #blankHeaderTpl ngx-datatable-header-template></ng-template>\n\n<ng-template\n #headerTpl\n ngx-datatable-header-template\n let-column=\"column\"\n let-sortFn=\"sortFn\"\n>\n <seam-datatable-column-header\n [column]=\"column\"\n [sortFn]=\"sortFn\"\n [columnFilterIcon]=\"columnFilterIcon\"\n [columnFilterUpdateMethod]=\"columnFilterUpdateMethod\"\n [columnFilterUpdateDebounce]=\"columnFilterUpdateDebounce\"\n ></seam-datatable-column-header>\n</ng-template>\n\n<ng-template\n #cellTypeSelectorTpl\n ngx-datatable-cell-template\n let-value=\"value\"\n let-rowIndex=\"rowIndex\"\n let-row=\"row\"\n let-column=\"column\"\n>\n <seam-table-cell-type-selector\n *ngIf=\"row\"\n [type]=\"$any(column).cellType\"\n [value]=\"value\"\n [rowIndex]=\"rowIndex\"\n [row]=\"row\"\n [colData]=\"column\"\n >\n </seam-table-cell-type-selector>\n</ng-template>\n\n<ng-template\n #actionMenuCellTpl\n ngx-datatable-cell-template\n let-value=\"value\"\n let-rowIndex=\"rowIndex\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"row && rowActionItem?.template\">\n <ng-template\n [ngTemplateOutlet]=\"$any(rowActionItem?.template)\"\n [ngTemplateOutletContext]=\"{\n $implicit: row,\n row: row,\n rowIndex: rowIndex,\n }\"\n >\n </ng-template>\n </ng-container>\n</ng-template>\n\n<ng-template #treeToggleTpl ngx-datatable-tree-toggle let-tree=\"cellContext\">\n <button\n class=\"p-0 bg-transparent border-0 btn\"\n [disabled]=\"tree.treeStatus === 'disabled'\"\n (click)=\"tree.onTreeAction()\"\n >\n <span *ngIf=\"tree.treeStatus === 'loading'\">\n <fa-icon [icon]=\"_faSpinner\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus === 'collapsed'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus === 'expanded'\">\n <fa-icon [icon]=\"_faChevronDown\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus === 'disabled'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n </button>\n</ng-template>\n", styles: [":host{display:flex;flex-grow:1;flex-direction:column}::ng-deep .seam-datatable-action-menu{min-width:auto!important}ngx-datatable{position:absolute!important;inset:0}.datatable-wrapper{display:flex;flex-direction:column;flex-grow:1}.datatable-wrapper .datatable-table-wrapper{position:relative;flex:1 1 100%}::ng-deep .ngx-datatable .datatable-body-row{position:relative}::ng-deep .ngx-datatable .datatable-row-right{position:absolute!important;top:0}::ng-deep .ngx-datatable .datatable-row-right{right:0}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarVDynamic", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "ghostLoadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "displayPageCount", "displayPager", "disableRowCheck", "rowDraggable", "enableClearingSortState", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction", "rowDragEvents"] }, { kind: "directive", type: i6.DatatableRowDetailDirective, selector: "ngx-datatable-row-detail", inputs: ["rowHeight", "template"], outputs: ["toggle"] }, { kind: "directive", type: i6.DatatableGroupHeaderDirective, selector: "ngx-datatable-group-header", inputs: ["rowHeight", "checkboxable", "template"], outputs: ["toggle"] }, { kind: "directive", type: i6.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i6.DataTableColumnCellTreeToggle, selector: "[ngx-datatable-tree-toggle]" }, { kind: "directive", type: i6.DatatableFooterDirective, selector: "ngx-datatable-footer", inputs: ["footerHeight", "totalMessage", "selectedMessage", "pagerLeftArrowIcon", "pagerRightArrowIcon", "pagerPreviousIcon", "pagerNextIcon", "template"] }, { kind: "directive", type: i6.DatatableGroupHeaderTemplateDirective, selector: "[ngx-datatable-group-header-template]" }, { kind: "component", type: i7.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: i8.TheSeamElemResizedDirective, selector: "[seamElemResized]", outputs: ["seamElemResized"], exportAs: ["seamElemResized"] }, { kind: "component", type: i9.TableCellTypeSelectorComponent, selector: "seam-table-cell-type-selector", inputs: ["type", "value", "rowIndex", "row", "colData"] }, { kind: "component", type: DatatableColumnHeaderComponent, selector: "seam-datatable-column-header", inputs: ["column", "sortFn", "columnFilterIcon", "columnFilterUpdateMethod", "columnFilterUpdateDebounce"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], animations: [
|
|
3219
3504
|
trigger('slideDown', [
|
|
3220
3505
|
transition(':enter', [
|
|
3221
3506
|
style({ transform: 'translateY(-20%)', opacity: '0' }),
|
|
@@ -3224,8 +3509,8 @@ class DatatableComponent {
|
|
|
3224
3509
|
transition(':leave', [
|
|
3225
3510
|
style({ transform: 'translateY(0)', opacity: '1' }),
|
|
3226
3511
|
animate('250ms', style({ transform: 'translateY(-20%)', opacity: '0' })),
|
|
3227
|
-
])
|
|
3228
|
-
])
|
|
3512
|
+
]),
|
|
3513
|
+
]),
|
|
3229
3514
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3230
3515
|
}
|
|
3231
3516
|
__decorate([
|
|
@@ -3285,7 +3570,7 @@ __decorate([
|
|
|
3285
3570
|
__decorate([
|
|
3286
3571
|
InputBoolean()
|
|
3287
3572
|
], DatatableComponent.prototype, "scrollbarH", void 0);
|
|
3288
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3573
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableComponent, decorators: [{
|
|
3289
3574
|
type: Component,
|
|
3290
3575
|
args: [{ selector: 'seam-datatable', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
|
|
3291
3576
|
trigger('slideDown', [
|
|
@@ -3296,16 +3581,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
3296
3581
|
transition(':leave', [
|
|
3297
3582
|
style({ transform: 'translateY(0)', opacity: '1' }),
|
|
3298
3583
|
animate('250ms', style({ transform: 'translateY(-20%)', opacity: '0' })),
|
|
3299
|
-
])
|
|
3300
|
-
])
|
|
3584
|
+
]),
|
|
3585
|
+
]),
|
|
3301
3586
|
], providers: [
|
|
3302
3587
|
_THESEAM_DATATABLE,
|
|
3303
3588
|
DatatableColumnChangesService,
|
|
3304
3589
|
_THESEAM_DATATABLE_ACCESSOR,
|
|
3305
3590
|
ColumnsManagerService,
|
|
3306
3591
|
ColumnsAlterationsManagerService,
|
|
3307
|
-
ColumnsFiltersService
|
|
3308
|
-
], standalone: false, template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n [columnMode]=\"$any(columnMode)\"\n [scrollbarV]=\"scrollbarV\"\n [scrollbarH]=\"scrollbarH\"\n [virtualization]=\"virtualization\"\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n [groupRowsBy]=\"$any(groupRowsBy)\"\n [groupedRows]=\"$any(groupedRows)\"\n [selected]=\"$any(selected)\"\n [externalPaging]=\"externalPaging\"\n [externalSorting]=\"externalSorting\"\n [limit]=\"$any(limit)\"\n [count]=\"$any(count)\"\n [offset]=\"$any(offset)\"\n [loadingIndicator]=\"loadingIndicator\"\n [selectionType]=\"$any(selectionType)\"\n [reorderable]=\"reorderable\"\n [swapColumns]=\"swapColumns\"\n [sortType]=\"$any(sortType)\"\n [sorts]=\"$any(_sorts)\"\n [cssClasses]=\"$any(cssClasses)\"\n [messages]=\"$any(messages)\"\n [rowIdentity]=\"$any(rowIdentity)\"\n [rowClass]=\"rowClass\"\n [selectCheck]=\"selectCheck\"\n [displayCheck]=\"$any(displayCheck)\"\n [groupExpansionDefault]=\"groupExpansionDefault\"\n [trackByProp]=\"$any(trackByProp)\"\n [selectAllRowsOnPage]=\"selectAllRowsOnPage\"\n [treeFromRelation]=\"$any(treeFromRelation)\"\n [treeToRelation]=\"$any(treeToRelation)\"\n [summaryRow]=\"summaryRow\"\n [summaryHeight]=\"$any(summaryHeight)\"\n [summaryPosition]=\"$any(summaryPosition)\"\n [rows]=\"rows$ | async\"\n [columns]=\"$any(displayColumns$ | async)\"\n [headerHeight]=\"$any(headerHeight)\"\n [rowHeight]=\"$any(rowHeight)\"\n [footerHeight]=\"$any(footerHeight)\"\n (scroll)=\"scroll.emit($event)\"\n (activate)=\"activate.emit($event)\"\n (select)=\"select.emit($event)\"\n (sort)=\"_onSort($event)\"\n (page)=\"page.emit($event)\"\n (reorder)=\"_onReorder($event)\"\n (resize)=\"_onResize($event)\"\n (tableContextmenu)=\"tableContextmenu.emit($event)\"\n (treeAction)=\"treeAction.emit($event)\"\n (seamElemResized)=\"onDatatableResize($event)\"\n (treeAction)=\"_onTreeAction($event)\">\n
|
|
3592
|
+
ColumnsFiltersService,
|
|
3593
|
+
], standalone: false, template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n [columnMode]=\"$any(columnMode)\"\n [scrollbarV]=\"scrollbarV\"\n [scrollbarH]=\"scrollbarH\"\n [virtualization]=\"virtualization\"\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n [groupRowsBy]=\"$any(groupRowsBy)\"\n [groupedRows]=\"$any(groupedRows)\"\n [selected]=\"$any(selected)\"\n [externalPaging]=\"externalPaging\"\n [externalSorting]=\"externalSorting\"\n [limit]=\"$any(limit)\"\n [count]=\"$any(count)\"\n [offset]=\"$any(offset)\"\n [loadingIndicator]=\"loadingIndicator\"\n [selectionType]=\"$any(selectionType)\"\n [reorderable]=\"reorderable\"\n [swapColumns]=\"swapColumns\"\n [sortType]=\"$any(sortType)\"\n [sorts]=\"$any(_sorts)\"\n [cssClasses]=\"$any(cssClasses)\"\n [messages]=\"$any(messages)\"\n [rowIdentity]=\"$any(rowIdentity)\"\n [rowClass]=\"rowClass\"\n [selectCheck]=\"selectCheck\"\n [displayCheck]=\"$any(displayCheck)\"\n [groupExpansionDefault]=\"groupExpansionDefault\"\n [trackByProp]=\"$any(trackByProp)\"\n [selectAllRowsOnPage]=\"selectAllRowsOnPage\"\n [treeFromRelation]=\"$any(treeFromRelation)\"\n [treeToRelation]=\"$any(treeToRelation)\"\n [summaryRow]=\"summaryRow\"\n [summaryHeight]=\"$any(summaryHeight)\"\n [summaryPosition]=\"$any(summaryPosition)\"\n [rows]=\"rows$ | async\"\n [columns]=\"$any(displayColumns$ | async)\"\n [headerHeight]=\"$any(headerHeight)\"\n [rowHeight]=\"$any(rowHeight)\"\n [footerHeight]=\"$any(footerHeight)\"\n (scroll)=\"scroll.emit($event)\"\n (activate)=\"activate.emit($event)\"\n (select)=\"select.emit($event)\"\n (sort)=\"_onSort($event)\"\n (page)=\"page.emit($event)\"\n (reorder)=\"_onReorder($event)\"\n (resize)=\"_onResize($event)\"\n (tableContextmenu)=\"tableContextmenu.emit($event)\"\n (treeAction)=\"treeAction.emit($event)\"\n (seamElemResized)=\"onDatatableResize($event)\"\n (treeAction)=\"_onTreeAction($event)\"\n >\n <ngx-datatable-group-header\n [rowHeight]=\"50\"\n #myGroupHeader\n *ngIf=\"groupRowsBy\"\n >\n <ng-template\n let-group=\"group\"\n let-expanded=\"expanded\"\n ngx-datatable-group-header-template\n >\n <div\n class=\"w-100 bg-light p-1\"\n [class.border-bottom]=\"!expanded\"\n [class.datatable-icon-right]=\"!expanded\"\n [class.datatable-icon-down]=\"expanded\"\n title=\"Expand/Collapse Group\"\n (click)=\"ngxDatatable?.groupHeader?.toggleExpandGroup(group)\"\n >\n <!-- <b>Age: {{ group.age }}</b> -->\n </div>\n </ng-template>\n </ngx-datatable-group-header>\n\n <ngx-datatable-row-detail\n *ngIf=\"rowDetail && rowDetail.template\"\n [rowHeight]=\"rowDetail.rowHeight || 0\"\n [template]=\"$any(rowDetail.template)\"\n (toggle)=\"rowDetail.toggle.emit($event)\"\n >\n </ngx-datatable-row-detail>\n\n <ngx-datatable-footer\n *ngIf=\"footer && footer.template\"\n [template]=\"$any(footer.template)\"\n >\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n\n<ng-template #blankHeaderTpl ngx-datatable-header-template></ng-template>\n\n<ng-template\n #headerTpl\n ngx-datatable-header-template\n let-column=\"column\"\n let-sortFn=\"sortFn\"\n>\n <seam-datatable-column-header\n [column]=\"column\"\n [sortFn]=\"sortFn\"\n [columnFilterIcon]=\"columnFilterIcon\"\n [columnFilterUpdateMethod]=\"columnFilterUpdateMethod\"\n [columnFilterUpdateDebounce]=\"columnFilterUpdateDebounce\"\n ></seam-datatable-column-header>\n</ng-template>\n\n<ng-template\n #cellTypeSelectorTpl\n ngx-datatable-cell-template\n let-value=\"value\"\n let-rowIndex=\"rowIndex\"\n let-row=\"row\"\n let-column=\"column\"\n>\n <seam-table-cell-type-selector\n *ngIf=\"row\"\n [type]=\"$any(column).cellType\"\n [value]=\"value\"\n [rowIndex]=\"rowIndex\"\n [row]=\"row\"\n [colData]=\"column\"\n >\n </seam-table-cell-type-selector>\n</ng-template>\n\n<ng-template\n #actionMenuCellTpl\n ngx-datatable-cell-template\n let-value=\"value\"\n let-rowIndex=\"rowIndex\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"row && rowActionItem?.template\">\n <ng-template\n [ngTemplateOutlet]=\"$any(rowActionItem?.template)\"\n [ngTemplateOutletContext]=\"{\n $implicit: row,\n row: row,\n rowIndex: rowIndex,\n }\"\n >\n </ng-template>\n </ng-container>\n</ng-template>\n\n<ng-template #treeToggleTpl ngx-datatable-tree-toggle let-tree=\"cellContext\">\n <button\n class=\"p-0 bg-transparent border-0 btn\"\n [disabled]=\"tree.treeStatus === 'disabled'\"\n (click)=\"tree.onTreeAction()\"\n >\n <span *ngIf=\"tree.treeStatus === 'loading'\">\n <fa-icon [icon]=\"_faSpinner\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus === 'collapsed'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus === 'expanded'\">\n <fa-icon [icon]=\"_faChevronDown\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus === 'disabled'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n </button>\n</ng-template>\n", styles: [":host{display:flex;flex-grow:1;flex-direction:column}::ng-deep .seam-datatable-action-menu{min-width:auto!important}ngx-datatable{position:absolute!important;inset:0}.datatable-wrapper{display:flex;flex-direction:column;flex-grow:1}.datatable-wrapper .datatable-table-wrapper{position:relative;flex:1 1 100%}::ng-deep .ngx-datatable .datatable-body-row{position:relative}::ng-deep .ngx-datatable .datatable-row-right{position:absolute!important;top:0}::ng-deep .ngx-datatable .datatable-row-right{right:0}\n"] }]
|
|
3309
3594
|
}], ctorParameters: () => [{ type: DatatablePreferencesService }, { type: ColumnsManagerService }, { type: ColumnsAlterationsManagerService }, { type: ColumnsFiltersService }, { type: undefined, decorators: [{
|
|
3310
3595
|
type: Optional
|
|
3311
3596
|
}, {
|
|
@@ -3483,11 +3768,10 @@ class DatatableColumnPreferencesComponent {
|
|
|
3483
3768
|
this._columnsAlterationsManager = _columnsAlterationsManager;
|
|
3484
3769
|
this._columns$ = combineLatest([
|
|
3485
3770
|
this._datatable.columns$ ?? of([]),
|
|
3486
|
-
observeControlValue(this._filterControl)
|
|
3771
|
+
observeControlValue(this._filterControl),
|
|
3487
3772
|
]).pipe(map(([columns, filter]) => {
|
|
3488
3773
|
const _filter = (filter || '').trim().toLowerCase();
|
|
3489
|
-
return columns
|
|
3490
|
-
.filter(c => this._canToggleColumn(c, _filter));
|
|
3774
|
+
return columns.filter((c) => this._canToggleColumn(c, _filter));
|
|
3491
3775
|
}));
|
|
3492
3776
|
}
|
|
3493
3777
|
_canToggleColumn(column, filter, omitInternalColumns = true) {
|
|
@@ -3500,7 +3784,7 @@ class DatatableColumnPreferencesComponent {
|
|
|
3500
3784
|
if (filter.length === 0) {
|
|
3501
3785
|
return true;
|
|
3502
3786
|
}
|
|
3503
|
-
return `${
|
|
3787
|
+
return `${getColumnProp(column) || ''}`.toLowerCase().indexOf(filter) !== -1;
|
|
3504
3788
|
}
|
|
3505
3789
|
_onChange(event, col) {
|
|
3506
3790
|
const columnProp = getColumnProp(col);
|
|
@@ -3510,16 +3794,16 @@ class DatatableColumnPreferencesComponent {
|
|
|
3510
3794
|
}
|
|
3511
3795
|
const alteration = new HideColumnColumnsAlteration({
|
|
3512
3796
|
columnProp,
|
|
3513
|
-
hidden
|
|
3797
|
+
hidden,
|
|
3514
3798
|
}, hidden);
|
|
3515
3799
|
this._columnsAlterationsManager.add([alteration]);
|
|
3516
3800
|
}
|
|
3517
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3518
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3801
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnPreferencesComponent, deps: [{ token: THESEAM_DATATABLE }, { token: ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3802
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableColumnPreferencesComponent, isStandalone: false, selector: "seam-datatable-column-preferences", ngImport: i0, template: "<h3>Columns</h3>\n\n<seam-form-field [numPaddingErrors]=\"0\">\n <input\n seamInput\n [formControl]=\"_filterControl\"\n seamInputSize=\"sm\"\n placeholder=\"Search\"\n seamAutoFocus\n />\n</seam-form-field>\n\n<div\n seamOverlayScrollbar\n style=\"min-height: 200px; max-height: 600px; min-width: 250px\"\n class=\"flex-grow-1 mb-2\"\n>\n <div class=\"p-2\">\n <ng-container *ngFor=\"let col of _columns$ | async\">\n <seam-checkbox\n [checked]=\"!col.hidden\"\n (change)=\"_onChange($event, col)\"\n >{{ col.name || col.prop }}</seam-checkbox\n >\n </ng-container>\n </div>\n</div>\n<div class=\"d-flex flex-row justify-content-end\">\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" (click)=\"_onCloseClick()\">Close</button> -->\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" class=\"mr-1\">Cancel</button>\n <button seamButton size=\"sm\" theme=\"success\">Done</button> -->\n</div>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.TheSeamAutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "component", type: i4$3.TheSeamCheckboxComponent, selector: "seam-checkbox", inputs: ["tabIndex", "id", "aria-label", "aria-labelledby", "required", "checked", "disabled", "indeterminate", "name", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["seamCheckbox"] }, { kind: "component", type: i4$1.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i4$1.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3519
3803
|
}
|
|
3520
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3804
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnPreferencesComponent, decorators: [{
|
|
3521
3805
|
type: Component,
|
|
3522
|
-
args: [{ selector: 'seam-datatable-column-preferences', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<h3>Columns</h3>\n\n<seam-form-field [numPaddingErrors]=\"0\"
|
|
3806
|
+
args: [{ selector: 'seam-datatable-column-preferences', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<h3>Columns</h3>\n\n<seam-form-field [numPaddingErrors]=\"0\">\n <input\n seamInput\n [formControl]=\"_filterControl\"\n seamInputSize=\"sm\"\n placeholder=\"Search\"\n seamAutoFocus\n />\n</seam-form-field>\n\n<div\n seamOverlayScrollbar\n style=\"min-height: 200px; max-height: 600px; min-width: 250px\"\n class=\"flex-grow-1 mb-2\"\n>\n <div class=\"p-2\">\n <ng-container *ngFor=\"let col of _columns$ | async\">\n <seam-checkbox\n [checked]=\"!col.hidden\"\n (change)=\"_onChange($event, col)\"\n >{{ col.name || col.prop }}</seam-checkbox\n >\n </ng-container>\n </div>\n</div>\n<div class=\"d-flex flex-row justify-content-end\">\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" (click)=\"_onCloseClick()\">Close</button> -->\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" class=\"mr-1\">Cancel</button>\n <button seamButton size=\"sm\" theme=\"success\">Done</button> -->\n</div>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
|
|
3523
3807
|
}], ctorParameters: () => [{ type: DatatableComponent, decorators: [{
|
|
3524
3808
|
type: Inject,
|
|
3525
3809
|
args: [THESEAM_DATATABLE]
|
|
@@ -3561,12 +3845,12 @@ class DatatableColumnPreferencesButtonComponent {
|
|
|
3561
3845
|
_resetColumns(event) {
|
|
3562
3846
|
this._columnsAlterationsManager.clear();
|
|
3563
3847
|
}
|
|
3564
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3565
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3848
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, deps: [{ token: ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3849
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableColumnPreferencesButtonComponent, isStandalone: false, selector: "seam-datatable-column-preferences-button", ngImport: i0, template: "<ng-template #colPrefsTpl>\n <seam-datatable-column-preferences></seam-datatable-column-preferences>\n</ng-template>\n\n<seam-menu\n #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\"\n>\n <button\n seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [seamPopover]=\"colPrefsTpl\"\n >\n Show/Hide Columns\n </button>\n\n <button\n seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"_resetColumns($event)\"\n >\n Reset Columns\n </button>\n</seam-menu>\n\n<button\n type=\"button\"\n class=\"btn btn-lightgray btn-sm\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n style=\"padding-left: 10px; padding-right: 10px\"\n title=\"Column Preferences\"\n>\n <seam-icon [icon]=\"icon\"></seam-icon>\n <span class=\"sr-only\">Column Preferences</span>\n</button>\n", styles: [""], dependencies: [{ kind: "component", type: i4.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i4.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuToggle", "menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i4.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "directive", type: i2$3.TheSeamPopoverDirective, selector: "[seamPopover]", inputs: ["seamPopover", "seamPopoverContext", "seamPopoverBaseWidth", "seamPopoverDisabled"], exportAs: ["seamPopover"] }, { kind: "component", type: DatatableColumnPreferencesComponent, selector: "seam-datatable-column-preferences" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3566
3850
|
}
|
|
3567
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3851
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, decorators: [{
|
|
3568
3852
|
type: Component,
|
|
3569
|
-
args: [{ selector: 'seam-datatable-column-preferences-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-template #colPrefsTpl>\n <seam-datatable-column-preferences></seam-datatable-column-preferences>\n</ng-template>\n\n<seam-menu
|
|
3853
|
+
args: [{ selector: 'seam-datatable-column-preferences-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-template #colPrefsTpl>\n <seam-datatable-column-preferences></seam-datatable-column-preferences>\n</ng-template>\n\n<seam-menu\n #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\"\n>\n <button\n seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [seamPopover]=\"colPrefsTpl\"\n >\n Show/Hide Columns\n </button>\n\n <button\n seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"_resetColumns($event)\"\n >\n Reset Columns\n </button>\n</seam-menu>\n\n<button\n type=\"button\"\n class=\"btn btn-lightgray btn-sm\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n style=\"padding-left: 10px; padding-right: 10px\"\n title=\"Column Preferences\"\n>\n <seam-icon [icon]=\"icon\"></seam-icon>\n <span class=\"sr-only\">Column Preferences</span>\n</button>\n" }]
|
|
3570
3854
|
}], ctorParameters: () => [{ type: ColumnsAlterationsManagerService }] });
|
|
3571
3855
|
|
|
3572
3856
|
class DatatableExportButtonComponent {
|
|
@@ -3599,17 +3883,17 @@ class DatatableExportButtonComponent {
|
|
|
3599
3883
|
}
|
|
3600
3884
|
const export$ = combineLatest([
|
|
3601
3885
|
this._datatable.rows$,
|
|
3602
|
-
this._datatable.columns$.pipe(map(cols => cols.filter(c => !isInternalColumn(c))))
|
|
3886
|
+
this._datatable.columns$.pipe(map((cols) => cols.filter((c) => !isInternalColumn(c)))),
|
|
3603
3887
|
]).pipe(take(1), map(([rows, columns]) => {
|
|
3604
3888
|
if (exporter.skipDataMapping) {
|
|
3605
3889
|
return rows;
|
|
3606
3890
|
}
|
|
3607
3891
|
return this._mapExportData(columns || [], rows);
|
|
3608
|
-
}), concatMap(data => exporter.export(data)), catchError(err => {
|
|
3892
|
+
}), concatMap((data) => exporter.export(data)), catchError((err) => {
|
|
3609
3893
|
// eslint-disable-next-line no-console
|
|
3610
3894
|
console.error(err);
|
|
3611
3895
|
return of(false);
|
|
3612
|
-
}), tap(success => {
|
|
3896
|
+
}), tap((success) => {
|
|
3613
3897
|
if (success) {
|
|
3614
3898
|
this._toastr.success(`${exporter.label} export complete.`, 'Data Export');
|
|
3615
3899
|
}
|
|
@@ -3646,16 +3930,16 @@ class DatatableExportButtonComponent {
|
|
|
3646
3930
|
}
|
|
3647
3931
|
return undefined;
|
|
3648
3932
|
}
|
|
3649
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3650
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3933
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableExportButtonComponent, deps: [{ token: THESEAM_DATATABLE }, { token: i1$2.ToastrService }, { token: i2$4.TheSeamLoadingOverlayService }, { token: i3$2.DynamicValueHelperService }, { token: THESEAM_DYNAMIC_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
3934
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableExportButtonComponent, isStandalone: false, selector: "seam-datatable-export-button", inputs: { exporters: "exporters" }, ngImport: i0, template: "<seam-menu #menu>\n <button\n *ngFor=\"let exp of exporters\"\n seamMenuItem\n [icon]=\"exp?.icon\"\n (click)=\"_onExporterClicked(exp)\"\n >\n {{ exp.label }}\n </button>\n</seam-menu>\n<button\n [seamMenuToggle]=\"menu\"\n seamButton\n theme=\"lightgray\"\n size=\"sm\"\n class=\"dropdown-toggle\"\n style=\"padding-left: 10px; padding-right: 10px\"\n title=\"Export\"\n [disabled]=\"disabled\"\n>\n <seam-icon [icon]=\"icon\" class=\"mr-2\"></seam-icon>\n</button>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i4.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuToggle", "menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i4.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "component", type: i4$2.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3651
3935
|
}
|
|
3652
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3936
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableExportButtonComponent, decorators: [{
|
|
3653
3937
|
type: Component,
|
|
3654
|
-
args: [{ selector: 'seam-datatable-export-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<seam-menu #menu>\n <button
|
|
3938
|
+
args: [{ selector: 'seam-datatable-export-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<seam-menu #menu>\n <button\n *ngFor=\"let exp of exporters\"\n seamMenuItem\n [icon]=\"exp?.icon\"\n (click)=\"_onExporterClicked(exp)\"\n >\n {{ exp.label }}\n </button>\n</seam-menu>\n<button\n [seamMenuToggle]=\"menu\"\n seamButton\n theme=\"lightgray\"\n size=\"sm\"\n class=\"dropdown-toggle\"\n style=\"padding-left: 10px; padding-right: 10px\"\n title=\"Export\"\n [disabled]=\"disabled\"\n>\n <seam-icon [icon]=\"icon\" class=\"mr-2\"></seam-icon>\n</button>\n", styles: [":host{display:inline-block}\n"] }]
|
|
3655
3939
|
}], ctorParameters: () => [{ type: DatatableComponent, decorators: [{
|
|
3656
3940
|
type: Inject,
|
|
3657
3941
|
args: [THESEAM_DATATABLE]
|
|
3658
|
-
}] }, { type: i1$2.ToastrService }, { type: i2$
|
|
3942
|
+
}] }, { type: i1$2.ToastrService }, { type: i2$4.TheSeamLoadingOverlayService }, { type: i3$2.DynamicValueHelperService }, { type: undefined, decorators: [{
|
|
3659
3943
|
type: Optional
|
|
3660
3944
|
}, {
|
|
3661
3945
|
type: Inject,
|
|
@@ -3665,37 +3949,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
3665
3949
|
}] } });
|
|
3666
3950
|
|
|
3667
3951
|
class DatatableMenuBarColumnCenterComponent {
|
|
3668
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3669
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3952
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarColumnCenterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3953
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableMenuBarColumnCenterComponent, isStandalone: false, selector: "seam-datatable-menu-bar-column-center", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:row;flex:1 1 auto;justify-content:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3670
3954
|
}
|
|
3671
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3955
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarColumnCenterComponent, decorators: [{
|
|
3672
3956
|
type: Component,
|
|
3673
3957
|
args: [{ selector: 'seam-datatable-menu-bar-column-center', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:row;flex:1 1 auto;justify-content:center}\n"] }]
|
|
3674
3958
|
}] });
|
|
3675
3959
|
|
|
3676
3960
|
class DatatableMenuBarColumnLeftComponent {
|
|
3677
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3678
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3961
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarColumnLeftComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3962
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableMenuBarColumnLeftComponent, isStandalone: false, selector: "seam-datatable-menu-bar-column-left", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:row;flex:1 1 0%;justify-content:flex-start}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3679
3963
|
}
|
|
3680
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3964
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarColumnLeftComponent, decorators: [{
|
|
3681
3965
|
type: Component,
|
|
3682
3966
|
args: [{ selector: 'seam-datatable-menu-bar-column-left', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:row;flex:1 1 0%;justify-content:flex-start}\n"] }]
|
|
3683
3967
|
}] });
|
|
3684
3968
|
|
|
3685
3969
|
class DatatableMenuBarColumnRightComponent {
|
|
3686
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3687
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3970
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarColumnRightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3971
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableMenuBarColumnRightComponent, isStandalone: false, selector: "seam-datatable-menu-bar-column-right", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:row;flex:1 1 0%;justify-content:flex-end}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3688
3972
|
}
|
|
3689
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3973
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarColumnRightComponent, decorators: [{
|
|
3690
3974
|
type: Component,
|
|
3691
3975
|
args: [{ selector: 'seam-datatable-menu-bar-column-right', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:row;flex:1 1 0%;justify-content:flex-end}\n"] }]
|
|
3692
3976
|
}] });
|
|
3693
3977
|
|
|
3694
3978
|
class DatatableMenuBarRowComponent {
|
|
3695
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3696
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3979
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3980
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableMenuBarRowComponent, isStandalone: false, selector: "seam-datatable-menu-bar-row", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3697
3981
|
}
|
|
3698
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3982
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarRowComponent, decorators: [{
|
|
3699
3983
|
type: Component,
|
|
3700
3984
|
args: [{ selector: 'seam-datatable-menu-bar-row', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap}\n"] }]
|
|
3701
3985
|
}] });
|
|
@@ -3715,10 +3999,10 @@ class DatatableMenuBarTextComponent {
|
|
|
3715
3999
|
}
|
|
3716
4000
|
}
|
|
3717
4001
|
}
|
|
3718
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3719
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
4002
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarTextComponent, deps: [{ token: DatatableMenuBarComponent }, { token: THESEAM_MENUBAR_ITEM_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
4003
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableMenuBarTextComponent, isStandalone: false, selector: "seam-datatable-menu-bar-text", inputs: { value: "value" }, ngImport: i0, template: "{{ value }}\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3720
4004
|
}
|
|
3721
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4005
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarTextComponent, decorators: [{
|
|
3722
4006
|
type: Component,
|
|
3723
4007
|
args: [{ selector: 'seam-datatable-menu-bar-text', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "{{ value }}\n" }]
|
|
3724
4008
|
}], ctorParameters: () => [{ type: DatatableMenuBarComponent }, { type: undefined, decorators: [{
|
|
@@ -3793,16 +4077,16 @@ class DatatableActionMenuItemDirective {
|
|
|
3793
4077
|
this._dynamicComponentLoader = _dynamicComponentLoader;
|
|
3794
4078
|
this._http = _http;
|
|
3795
4079
|
}
|
|
3796
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3797
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
4080
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableActionMenuItemDirective, deps: [{ token: i1$3.Modal }, { token: i2$5.TheSeamDynamicComponentLoader }, { token: i3$3.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4081
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: DatatableActionMenuItemDirective, isStandalone: false, selector: "[seamDatatableActionMenuItem]", inputs: { label: "label", href: ["attr.href", "href"], target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", preserveFragment: "preserveFragment", skipLocationChange: "skipLocationChange", replaceUrl: "replaceUrl", state: "state", routerLink: "routerLink", confirmDialog: "confirmDialog", row: "row" }, outputs: { click: "click" }, host: { properties: { "class.list-group-item": "this._listGroupItem", "class.list-group-item-action": "this._listGroupItemAction" } }, ngImport: i0 });
|
|
3798
4082
|
}
|
|
3799
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4083
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableActionMenuItemDirective, decorators: [{
|
|
3800
4084
|
type: Directive,
|
|
3801
4085
|
args: [{
|
|
3802
4086
|
selector: '[seamDatatableActionMenuItem]',
|
|
3803
|
-
standalone: false
|
|
4087
|
+
standalone: false,
|
|
3804
4088
|
}]
|
|
3805
|
-
}], ctorParameters: () => [{ type: i1$3.Modal }, { type: i2$
|
|
4089
|
+
}], ctorParameters: () => [{ type: i1$3.Modal }, { type: i2$5.TheSeamDynamicComponentLoader }, { type: i3$3.HttpClient, decorators: [{
|
|
3806
4090
|
type: Optional
|
|
3807
4091
|
}] }], propDecorators: { _listGroupItem: [{
|
|
3808
4092
|
type: HostBinding,
|
|
@@ -3857,16 +4141,26 @@ class DatatableActionMenuToggleDirective {
|
|
|
3857
4141
|
_onClick(event) {
|
|
3858
4142
|
this.toggle();
|
|
3859
4143
|
}
|
|
3860
|
-
_mouseDown(event) {
|
|
3861
|
-
|
|
3862
|
-
|
|
3863
|
-
|
|
4144
|
+
_mouseDown(event) {
|
|
4145
|
+
this.onInputDown(event);
|
|
4146
|
+
}
|
|
4147
|
+
_pointerDown(event) {
|
|
4148
|
+
this.onInputDown(event);
|
|
4149
|
+
}
|
|
4150
|
+
_mouseUp(event) {
|
|
4151
|
+
this.onInputUp(event);
|
|
4152
|
+
}
|
|
4153
|
+
_pointerUp(event) {
|
|
4154
|
+
this.onInputUp(event);
|
|
4155
|
+
}
|
|
3864
4156
|
constructor(_elementRef, _viewContainerRef, _overlay) {
|
|
3865
4157
|
this._elementRef = _elementRef;
|
|
3866
4158
|
this._viewContainerRef = _viewContainerRef;
|
|
3867
4159
|
this._overlay = _overlay;
|
|
3868
4160
|
}
|
|
3869
|
-
get active() {
|
|
4161
|
+
get active() {
|
|
4162
|
+
return this._active;
|
|
4163
|
+
}
|
|
3870
4164
|
toggle() {
|
|
3871
4165
|
if (this._active) {
|
|
3872
4166
|
this.disable();
|
|
@@ -3899,7 +4193,8 @@ class DatatableActionMenuToggleDirective {
|
|
|
3899
4193
|
this._active = false;
|
|
3900
4194
|
}
|
|
3901
4195
|
getOverlayPosition(origin) {
|
|
3902
|
-
const positionStrategy = this._overlay
|
|
4196
|
+
const positionStrategy = this._overlay
|
|
4197
|
+
.position()
|
|
3903
4198
|
.flexibleConnectedTo(origin)
|
|
3904
4199
|
.withPositions(this.getPositions())
|
|
3905
4200
|
.withFlexibleDimensions(false)
|
|
@@ -3947,15 +4242,15 @@ class DatatableActionMenuToggleDirective {
|
|
|
3947
4242
|
onInputUp(event) {
|
|
3948
4243
|
this._actionDown = false;
|
|
3949
4244
|
}
|
|
3950
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3951
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
4245
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableActionMenuToggleDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$4.Overlay }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4246
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: DatatableActionMenuToggleDirective, isStandalone: false, selector: "[seamDatatableActionMenuToggle]", inputs: { seamDatatableActionMenuToggle: "seamDatatableActionMenuToggle" }, host: { listeners: { "document:keydown": "_onKeydown($event)", "click": "_onClick($event)", "mousedown": "_mouseDown($event)", "pointerdown": "_pointerDown($event)", "mouseup": "_mouseUp($event)", "pointerup": "_pointerUp($event)" } }, exportAs: ["seamDatatableActionMenuToggle"], ngImport: i0 });
|
|
3952
4247
|
}
|
|
3953
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4248
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableActionMenuToggleDirective, decorators: [{
|
|
3954
4249
|
type: Directive,
|
|
3955
4250
|
args: [{
|
|
3956
4251
|
selector: '[seamDatatableActionMenuToggle]',
|
|
3957
4252
|
exportAs: 'seamDatatableActionMenuToggle',
|
|
3958
|
-
standalone: false
|
|
4253
|
+
standalone: false,
|
|
3959
4254
|
}]
|
|
3960
4255
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1$4.Overlay }], propDecorators: { seamDatatableActionMenuToggle: [{
|
|
3961
4256
|
type: Input
|
|
@@ -4012,12 +4307,12 @@ class TheSeamDatatableScrollbarHelperService {
|
|
|
4012
4307
|
onInitScroller(scroller) {
|
|
4013
4308
|
this._scrollbars.initializeInstance(scroller.parentElement, {
|
|
4014
4309
|
callbacks: {
|
|
4015
|
-
onScroll: e => {
|
|
4310
|
+
onScroll: (e) => {
|
|
4016
4311
|
this._ngZone.run(() => {
|
|
4017
4312
|
scroller.onScrolled(e);
|
|
4018
4313
|
});
|
|
4019
|
-
}
|
|
4020
|
-
}
|
|
4314
|
+
},
|
|
4315
|
+
},
|
|
4021
4316
|
});
|
|
4022
4317
|
}
|
|
4023
4318
|
onDestroyScroller(scroller) {
|
|
@@ -4026,26 +4321,28 @@ class TheSeamDatatableScrollbarHelperService {
|
|
|
4026
4321
|
setOffset(scroller, offsetY) {
|
|
4027
4322
|
this._ngZone.runOutsideAngular(() => {
|
|
4028
4323
|
if (this.animatedScrolling) {
|
|
4029
|
-
this._scrollbars
|
|
4324
|
+
this._scrollbars
|
|
4325
|
+
.getInstance(scroller.parentElement)
|
|
4030
4326
|
.scroll({ y: offsetY }, this.animatedScrollingTime);
|
|
4031
4327
|
}
|
|
4032
4328
|
else {
|
|
4033
|
-
this._scrollbars
|
|
4329
|
+
this._scrollbars
|
|
4330
|
+
.getInstance(scroller.parentElement)
|
|
4034
4331
|
.scroll({ y: offsetY });
|
|
4035
4332
|
}
|
|
4036
4333
|
});
|
|
4037
4334
|
}
|
|
4038
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4039
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
4335
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableScrollbarHelperService, deps: [{ token: i0.NgZone }, { token: i1$5.TheSeamOverlayScrollbarsService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4336
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableScrollbarHelperService });
|
|
4040
4337
|
}
|
|
4041
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4338
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableScrollbarHelperService, decorators: [{
|
|
4042
4339
|
type: Injectable
|
|
4043
4340
|
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i1$5.TheSeamOverlayScrollbarsService }] });
|
|
4044
4341
|
|
|
4045
4342
|
function withStoredColumnInfo(columns, preferenceColumns) {
|
|
4046
4343
|
const _columns = [];
|
|
4047
4344
|
for (const col of columns) {
|
|
4048
|
-
const storedCol = preferenceColumns.find(v => v.prop === col.prop);
|
|
4345
|
+
const storedCol = preferenceColumns.find((v) => v.prop === col.prop);
|
|
4049
4346
|
if (storedCol) {
|
|
4050
4347
|
const _col = { ...col };
|
|
4051
4348
|
if (hasProperty(storedCol, 'width')) {
|
|
@@ -4062,8 +4359,8 @@ function withStoredColumnInfo(columns, preferenceColumns) {
|
|
|
4062
4359
|
}
|
|
4063
4360
|
|
|
4064
4361
|
class TheSeamDatatableModule {
|
|
4065
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4066
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
4362
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4363
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableModule, declarations: [DatatableComponent,
|
|
4067
4364
|
DatatableCellTplDirective,
|
|
4068
4365
|
DatatableColumnComponent,
|
|
4069
4366
|
DatatableActionMenuComponent,
|
|
@@ -4085,10 +4382,6 @@ class TheSeamDatatableModule {
|
|
|
4085
4382
|
DatatableMenuBarColumnCenterComponent,
|
|
4086
4383
|
DatatableMenuBarColumnRightComponent,
|
|
4087
4384
|
DatatableMenuBarTextComponent,
|
|
4088
|
-
DatatableColumnFilterMenuComponent,
|
|
4089
|
-
DatatableColumnFilterSearchTextComponent,
|
|
4090
|
-
DatatableColumnFilterSearchNumericComponent,
|
|
4091
|
-
DatatableColumnFilterSearchDateComponent,
|
|
4092
4385
|
DatatableColumnFilterTplDirective,
|
|
4093
4386
|
TheSeamDatatableColumnFilterDirective], imports: [CommonModule,
|
|
4094
4387
|
NgxDatatableModule,
|
|
@@ -4111,7 +4404,12 @@ class TheSeamDatatableModule {
|
|
|
4111
4404
|
TheSeamTableCellTypeModule,
|
|
4112
4405
|
TheSeamDataFiltersModule,
|
|
4113
4406
|
NgSelectModule,
|
|
4114
|
-
TheSeamToggleGroupModule
|
|
4407
|
+
TheSeamToggleGroupModule,
|
|
4408
|
+
DatatableColumnHeaderComponent,
|
|
4409
|
+
DatatableColumnFilterMenuComponent,
|
|
4410
|
+
DatatableColumnFilterSearchTextComponent,
|
|
4411
|
+
DatatableColumnFilterSearchNumericComponent,
|
|
4412
|
+
DatatableColumnFilterSearchDateComponent], exports: [DatatableComponent,
|
|
4115
4413
|
DatatableCellTplDirective,
|
|
4116
4414
|
DatatableColumnComponent,
|
|
4117
4415
|
DatatableActionMenuComponent,
|
|
@@ -4138,8 +4436,11 @@ class TheSeamDatatableModule {
|
|
|
4138
4436
|
DatatableColumnFilterSearchDateComponent,
|
|
4139
4437
|
DatatableColumnFilterTplDirective,
|
|
4140
4438
|
TheSeamDatatableColumnFilterDirective] });
|
|
4141
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
4142
|
-
{
|
|
4439
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableModule, providers: [
|
|
4440
|
+
{
|
|
4441
|
+
provide: ScrollbarHelper,
|
|
4442
|
+
useClass: TheSeamDatatableScrollbarHelperService,
|
|
4443
|
+
},
|
|
4143
4444
|
], imports: [CommonModule,
|
|
4144
4445
|
NgxDatatableModule,
|
|
4145
4446
|
FontAwesomeModule,
|
|
@@ -4161,9 +4462,14 @@ class TheSeamDatatableModule {
|
|
|
4161
4462
|
TheSeamTableCellTypeModule,
|
|
4162
4463
|
TheSeamDataFiltersModule,
|
|
4163
4464
|
NgSelectModule,
|
|
4164
|
-
TheSeamToggleGroupModule
|
|
4465
|
+
TheSeamToggleGroupModule,
|
|
4466
|
+
DatatableColumnHeaderComponent,
|
|
4467
|
+
DatatableColumnFilterMenuComponent,
|
|
4468
|
+
DatatableColumnFilterSearchTextComponent,
|
|
4469
|
+
DatatableColumnFilterSearchNumericComponent,
|
|
4470
|
+
DatatableColumnFilterSearchDateComponent] });
|
|
4165
4471
|
}
|
|
4166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4472
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableModule, decorators: [{
|
|
4167
4473
|
type: NgModule,
|
|
4168
4474
|
args: [{
|
|
4169
4475
|
declarations: [
|
|
@@ -4189,10 +4495,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
4189
4495
|
DatatableMenuBarColumnCenterComponent,
|
|
4190
4496
|
DatatableMenuBarColumnRightComponent,
|
|
4191
4497
|
DatatableMenuBarTextComponent,
|
|
4192
|
-
DatatableColumnFilterMenuComponent,
|
|
4193
|
-
DatatableColumnFilterSearchTextComponent,
|
|
4194
|
-
DatatableColumnFilterSearchNumericComponent,
|
|
4195
|
-
DatatableColumnFilterSearchDateComponent,
|
|
4196
4498
|
DatatableColumnFilterTplDirective,
|
|
4197
4499
|
TheSeamDatatableColumnFilterDirective,
|
|
4198
4500
|
],
|
|
@@ -4219,6 +4521,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
4219
4521
|
TheSeamDataFiltersModule,
|
|
4220
4522
|
NgSelectModule,
|
|
4221
4523
|
TheSeamToggleGroupModule,
|
|
4524
|
+
DatatableColumnHeaderComponent,
|
|
4525
|
+
DatatableColumnFilterMenuComponent,
|
|
4526
|
+
DatatableColumnFilterSearchTextComponent,
|
|
4527
|
+
DatatableColumnFilterSearchNumericComponent,
|
|
4528
|
+
DatatableColumnFilterSearchDateComponent,
|
|
4222
4529
|
],
|
|
4223
4530
|
exports: [
|
|
4224
4531
|
DatatableComponent,
|
|
@@ -4250,7 +4557,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
4250
4557
|
TheSeamDatatableColumnFilterDirective,
|
|
4251
4558
|
],
|
|
4252
4559
|
providers: [
|
|
4253
|
-
{
|
|
4560
|
+
{
|
|
4561
|
+
provide: ScrollbarHelper,
|
|
4562
|
+
useClass: TheSeamDatatableScrollbarHelperService,
|
|
4563
|
+
},
|
|
4254
4564
|
],
|
|
4255
4565
|
}]
|
|
4256
4566
|
}] });
|
|
@@ -4259,5 +4569,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
4259
4569
|
* Generated bundle index. Do not edit.
|
|
4260
4570
|
*/
|
|
4261
4571
|
|
|
4262
|
-
export { CURRENT_DATATABLE_PREFERENCES_VERSION, ColumnsAlteration, ColumnsDataFilter, ColumnsFiltersService, DatatableActionMenuComponent, DatatableActionMenuItemComponent, DatatableActionMenuItemDirective, DatatableActionMenuToggleDirective, DatatableCellTplDirective, DatatableColumnChangesService, DatatableColumnComponent, DatatableColumnFilterMenuComponent, DatatableColumnFilterSearchDateComponent, DatatableColumnFilterSearchNumericComponent, DatatableColumnFilterSearchTextComponent, DatatableColumnFilterTplDirective, DatatableColumnPreferencesButtonComponent, DatatableColumnPreferencesComponent, DatatableComponent, DatatableDataSource, DatatableExportButtonComponent, DatatableFilterDirective, DatatableFooterTplDirective, DatatableGqlDataSource, DatatableMenuBarColumnCenterComponent, DatatableMenuBarColumnLeftComponent, DatatableMenuBarColumnRightComponent, DatatableMenuBarComponent, DatatableMenuBarRowComponent, DatatableMenuBarTextComponent, DatatablePreferencesService, DatatableRowActionItemDirective, DatatableRowDetailTplDirective, EMPTY_DATATABLE_PREFERENCES, SearchDateColumnsDataFilter, SearchNumericColumnsDataFilter, SearchTextColumnsDataFilter, THESEAM_COLUMNS_DATA_FILTER, THESEAM_COLUMNS_DATA_FILTERS_DEFAULT, THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES, THESEAM_DATATABLE, THESEAM_DATATABLE_CONFIG, THESEAM_DATATABLE_PREFERENCES_ACCESSOR, THESEAM_MENUBAR_ITEM_DATA, TheSeamDatatableColumnFilterDirective, TheSeamDatatableFooterDirective, TheSeamDatatableModule, TheSeamDatatableRowDetailDirective, TheSeamDatatableScrollbarHelperService, _THESEAM_DATATABLE, _THESEAM_DATATABLE_ACCESSOR, _THESEAM_DATA_FILTER_CONTAINER, getFormattedDateForComparison, mapColumnsAlterationsStates, withStoredColumnInfo };
|
|
4572
|
+
export { CURRENT_DATATABLE_PREFERENCES_VERSION, ColumnsAlteration, ColumnsDataFilter, ColumnsFiltersService, DatatableActionMenuComponent, DatatableActionMenuItemComponent, DatatableActionMenuItemDirective, DatatableActionMenuToggleDirective, DatatableCellTplDirective, DatatableColumnChangesService, DatatableColumnComponent, DatatableColumnFilterMenuComponent, DatatableColumnFilterSearchDateComponent, DatatableColumnFilterSearchNumericComponent, DatatableColumnFilterSearchTextComponent, DatatableColumnFilterTplDirective, DatatableColumnPreferencesButtonComponent, DatatableColumnPreferencesComponent, DatatableComponent, DatatableDataSource, DatatableExportButtonComponent, DatatableFilterDirective, DatatableFooterTplDirective, DatatableGqlDataSource, DatatableMenuBarColumnCenterComponent, DatatableMenuBarColumnLeftComponent, DatatableMenuBarColumnRightComponent, DatatableMenuBarComponent, DatatableMenuBarRowComponent, DatatableMenuBarTextComponent, DatatablePreferencesService, DatatableRowActionItemDirective, DatatableRowDetailTplDirective, EMPTY_DATATABLE_PREFERENCES, SearchDateColumnsDataFilter, SearchNumericColumnsDataFilter, SearchTextColumnsDataFilter, THESEAM_COLUMNS_DATA_FILTER, THESEAM_COLUMNS_DATA_FILTERS_DEFAULT, THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES, THESEAM_DATATABLE, THESEAM_DATATABLE_CONFIG, THESEAM_DATATABLE_PREFERENCES_ACCESSOR, THESEAM_MENUBAR_ITEM_DATA, TheSeamDatatableColumnFilterDirective, TheSeamDatatableFooterDirective, TheSeamDatatableModule, TheSeamDatatableRowDetailDirective, TheSeamDatatableScrollbarHelperService, _THESEAM_DATATABLE, _THESEAM_DATATABLE_ACCESSOR, _THESEAM_DATA_FILTER_CONTAINER, getFormattedDateForComparison, isColumnBoundToProp, mapColumnsAlterationsStates, withStoredColumnInfo };
|
|
4263
4573
|
//# sourceMappingURL=theseam-ui-common-datatable.mjs.map
|