@theseam/ui-common 1.0.0-beta.0 → 1.0.0-beta.10
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 +727 -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 +311 -254
- 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 +49 -7
- package/modal/README.md +5 -5
- package/modal/index.d.ts +1 -1
- package/models/index.d.ts +1 -1
- package/package.json +59 -60
- 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,41 @@ 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.justify-content-center": "column().alignHeader === \"center\"", "class.justify-content-end": "column().alignHeader === \"right\"" }, classAttribute: "d-inline-flex align-items-center flex-fill" }, 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 flex-fill',
|
|
2808
|
+
'[class.justify-content-center]': 'column().alignHeader === "center"',
|
|
2809
|
+
'[class.justify-content-end]': 'column().alignHeader === "right"',
|
|
2810
|
+
}, 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"] }]
|
|
2811
|
+
}], 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 }] }] } });
|
|
2812
|
+
|
|
2577
2813
|
/**
|
|
2578
2814
|
* Intended for internal classes declared by the `TheSeamDatatableModule`.
|
|
2579
2815
|
*/
|
|
2580
2816
|
const THESEAM_DATATABLE = new InjectionToken('LibDatatable');
|
|
2581
2817
|
const _THESEAM_DATATABLE = {
|
|
2582
2818
|
provide: THESEAM_DATATABLE,
|
|
2583
|
-
useExisting: forwardRef(() => DatatableComponent)
|
|
2819
|
+
useExisting: forwardRef(() => DatatableComponent),
|
|
2584
2820
|
};
|
|
2585
2821
|
const _THESEAM_DATATABLE_ACCESSOR = {
|
|
2586
2822
|
provide: THESEAM_DATATABLE_ACCESSOR,
|
|
2587
|
-
|
|
2588
|
-
useExisting: forwardRef(() => DatatableComponent)
|
|
2823
|
+
useExisting: forwardRef(() => DatatableComponent),
|
|
2589
2824
|
};
|
|
2590
2825
|
class DatatableComponent {
|
|
2591
2826
|
_preferences;
|
|
@@ -2626,18 +2861,24 @@ class DatatableComponent {
|
|
|
2626
2861
|
get filters() {
|
|
2627
2862
|
return [
|
|
2628
2863
|
...this._menuBarsFiltersSubject.value,
|
|
2629
|
-
...this._columnsFilters.filters()
|
|
2864
|
+
...this._columnsFilters.filters(),
|
|
2630
2865
|
];
|
|
2631
2866
|
}
|
|
2632
2867
|
filters$;
|
|
2633
|
-
get preferencesKey() {
|
|
2634
|
-
|
|
2868
|
+
get preferencesKey() {
|
|
2869
|
+
return this._preferencesKey.value;
|
|
2870
|
+
}
|
|
2871
|
+
set preferencesKey(value) {
|
|
2872
|
+
this._preferencesKey.next(value || undefined);
|
|
2873
|
+
}
|
|
2635
2874
|
_preferencesKey = new BehaviorSubject(undefined);
|
|
2636
2875
|
targetMarkerTemplate;
|
|
2637
2876
|
set columns(value) {
|
|
2638
2877
|
this._columnsManager.setInputColumns(Array.isArray(value) ? value : []);
|
|
2639
2878
|
}
|
|
2640
|
-
get rows() {
|
|
2879
|
+
get rows() {
|
|
2880
|
+
return this._rows.value;
|
|
2881
|
+
}
|
|
2641
2882
|
set rows(value) {
|
|
2642
2883
|
this._rows.next(value || []);
|
|
2643
2884
|
}
|
|
@@ -2654,15 +2895,20 @@ class DatatableComponent {
|
|
|
2654
2895
|
count = 0;
|
|
2655
2896
|
offset = 0;
|
|
2656
2897
|
loadingIndicator = false;
|
|
2657
|
-
get selectionType() {
|
|
2898
|
+
get selectionType() {
|
|
2899
|
+
return this._columnsManager.getSelectionType();
|
|
2900
|
+
}
|
|
2658
2901
|
set selectionType(value) {
|
|
2659
2902
|
this._columnsManager.setSelectionType(notNullOrUndefined(value) ? value : undefined);
|
|
2660
2903
|
}
|
|
2661
2904
|
reorderable = true;
|
|
2662
2905
|
swapColumns = false;
|
|
2663
|
-
get sortType() {
|
|
2906
|
+
get sortType() {
|
|
2907
|
+
return this._sortType;
|
|
2908
|
+
}
|
|
2664
2909
|
set sortType(value) {
|
|
2665
|
-
if (notNullOrUndefined(value) &&
|
|
2910
|
+
if (notNullOrUndefined(value) &&
|
|
2911
|
+
(value === SortType.single || value === SortType.multi)) {
|
|
2666
2912
|
this._sortType = value;
|
|
2667
2913
|
}
|
|
2668
2914
|
else {
|
|
@@ -2697,7 +2943,7 @@ class DatatableComponent {
|
|
|
2697
2943
|
pagerLeftArrow: 'datatable-icon-left',
|
|
2698
2944
|
pagerRightArrow: 'datatable-icon-right',
|
|
2699
2945
|
pagerPrevious: 'datatable-icon-prev',
|
|
2700
|
-
pagerNext: 'datatable-icon-skip'
|
|
2946
|
+
pagerNext: 'datatable-icon-skip',
|
|
2701
2947
|
};
|
|
2702
2948
|
_cssClasses;
|
|
2703
2949
|
get messages() {
|
|
@@ -2710,7 +2956,7 @@ class DatatableComponent {
|
|
|
2710
2956
|
else if (notNullOrUndefined(this._config?.messages)) {
|
|
2711
2957
|
this._messages = {
|
|
2712
2958
|
...this._messagesDefault,
|
|
2713
|
-
...this._config?.messages
|
|
2959
|
+
...this._config?.messages,
|
|
2714
2960
|
};
|
|
2715
2961
|
}
|
|
2716
2962
|
else {
|
|
@@ -2724,7 +2970,7 @@ class DatatableComponent {
|
|
|
2724
2970
|
// Footer total message
|
|
2725
2971
|
totalMessage: 'total',
|
|
2726
2972
|
// Footer selected message
|
|
2727
|
-
selectedMessage: 'selected'
|
|
2973
|
+
selectedMessage: 'selected',
|
|
2728
2974
|
};
|
|
2729
2975
|
_messages;
|
|
2730
2976
|
rowIdentity = (x) => x;
|
|
@@ -2801,12 +3047,15 @@ class DatatableComponent {
|
|
|
2801
3047
|
*
|
|
2802
3048
|
* Defaults to `frozenRight`.
|
|
2803
3049
|
*/
|
|
2804
|
-
get actionItemColumnPosition() {
|
|
3050
|
+
get actionItemColumnPosition() {
|
|
3051
|
+
return this._actionItemColumnPosition;
|
|
3052
|
+
}
|
|
2805
3053
|
set actionItemColumnPosition(value) {
|
|
2806
3054
|
if (notNullOrUndefined(value) && isActionItemColumnPosition(value)) {
|
|
2807
3055
|
this._actionItemColumnPosition = value;
|
|
2808
3056
|
}
|
|
2809
|
-
else if (notNullOrUndefined(this._config?.actionItemColumnPosition) &&
|
|
3057
|
+
else if (notNullOrUndefined(this._config?.actionItemColumnPosition) &&
|
|
3058
|
+
isActionItemColumnPosition(this._config?.actionItemColumnPosition)) {
|
|
2810
3059
|
this._actionItemColumnPosition = this._config?.actionItemColumnPosition;
|
|
2811
3060
|
}
|
|
2812
3061
|
else {
|
|
@@ -2846,8 +3095,8 @@ class DatatableComponent {
|
|
|
2846
3095
|
this._columnFilterUpdateMethod = this._columnFilterUpdateMethodDefault;
|
|
2847
3096
|
}
|
|
2848
3097
|
}
|
|
2849
|
-
_columnFilterUpdateMethodDefault = 'valueChanges';
|
|
2850
3098
|
_columnFilterUpdateMethod;
|
|
3099
|
+
_columnFilterUpdateMethodDefault = 'valueChanges';
|
|
2851
3100
|
get columnFilterUpdateDebounce() {
|
|
2852
3101
|
return this._columnFilterUpdateDebounce;
|
|
2853
3102
|
}
|
|
@@ -2856,7 +3105,8 @@ class DatatableComponent {
|
|
|
2856
3105
|
this._columnFilterUpdateDebounce = value;
|
|
2857
3106
|
}
|
|
2858
3107
|
else if (notNullOrUndefined(this._config?.columnFilterUpdateDebounce)) {
|
|
2859
|
-
this._columnFilterUpdateDebounce =
|
|
3108
|
+
this._columnFilterUpdateDebounce =
|
|
3109
|
+
this._config?.columnFilterUpdateDebounce;
|
|
2860
3110
|
}
|
|
2861
3111
|
else {
|
|
2862
3112
|
this._columnFilterUpdateDebounce = this._columnFilterUpdateDebounceDefault;
|
|
@@ -2882,7 +3132,9 @@ class DatatableComponent {
|
|
|
2882
3132
|
this._columnsManager.setTemplateColumns(translateTemplateColumns(value?.toArray() ?? []));
|
|
2883
3133
|
}
|
|
2884
3134
|
actionMenu;
|
|
2885
|
-
get rowActionItem() {
|
|
3135
|
+
get rowActionItem() {
|
|
3136
|
+
return this._rowActionItem;
|
|
3137
|
+
}
|
|
2886
3138
|
set rowActionItem(value) {
|
|
2887
3139
|
this._rowActionItem = value;
|
|
2888
3140
|
this._columnsManager.setRowActionItem(notNullOrUndefined(value) ? value : undefined);
|
|
@@ -2890,7 +3142,9 @@ class DatatableComponent {
|
|
|
2890
3142
|
_rowActionItem;
|
|
2891
3143
|
rowDetail;
|
|
2892
3144
|
footer;
|
|
2893
|
-
get menuBarComponent() {
|
|
3145
|
+
get menuBarComponent() {
|
|
3146
|
+
return this._menuBarComponent;
|
|
3147
|
+
}
|
|
2894
3148
|
set menuBarComponent(value) {
|
|
2895
3149
|
this._menuBarComponent = value;
|
|
2896
3150
|
if (this._menuBarSub) {
|
|
@@ -2898,8 +3152,9 @@ class DatatableComponent {
|
|
|
2898
3152
|
}
|
|
2899
3153
|
if (value) {
|
|
2900
3154
|
this._setMenuBarFilters(value.filters());
|
|
2901
|
-
this._menuBarSub = this._menuBarComponent?.filtersChanged
|
|
2902
|
-
|
|
3155
|
+
this._menuBarSub = this._menuBarComponent?.filtersChanged.subscribe(() => {
|
|
3156
|
+
this._setMenuBarFilters(value.filters());
|
|
3157
|
+
});
|
|
2903
3158
|
}
|
|
2904
3159
|
}
|
|
2905
3160
|
_menuBarComponent;
|
|
@@ -2910,31 +3165,41 @@ class DatatableComponent {
|
|
|
2910
3165
|
ngxDatatable;
|
|
2911
3166
|
ngxDatatableElement;
|
|
2912
3167
|
ngxRowDetail;
|
|
2913
|
-
get actionMenuCellTpl() {
|
|
3168
|
+
get actionMenuCellTpl() {
|
|
3169
|
+
return this._actionMenuCellTpl;
|
|
3170
|
+
}
|
|
2914
3171
|
set actionMenuCellTpl(value) {
|
|
2915
3172
|
this._actionMenuCellTpl = value;
|
|
2916
3173
|
this._columnsManager.setActionMenuCellTpl(notNullOrUndefined(value) ? value : undefined);
|
|
2917
3174
|
}
|
|
2918
3175
|
_actionMenuCellTpl;
|
|
2919
|
-
get treeToggleTpl() {
|
|
3176
|
+
get treeToggleTpl() {
|
|
3177
|
+
return this._treeToggleTpl;
|
|
3178
|
+
}
|
|
2920
3179
|
set treeToggleTpl(value) {
|
|
2921
3180
|
this._treeToggleTpl = value;
|
|
2922
3181
|
this._columnsManager.setTreeToggleTpl(notNullOrUndefined(value) ? value : undefined);
|
|
2923
3182
|
}
|
|
2924
3183
|
_treeToggleTpl;
|
|
2925
|
-
get headerTpl() {
|
|
3184
|
+
get headerTpl() {
|
|
3185
|
+
return this._headerTpl;
|
|
3186
|
+
}
|
|
2926
3187
|
set headerTpl(value) {
|
|
2927
3188
|
this._headerTpl = value;
|
|
2928
3189
|
this._columnsManager.setHeaderTpl(notNullOrUndefined(value) ? value : undefined);
|
|
2929
3190
|
}
|
|
2930
3191
|
_headerTpl;
|
|
2931
|
-
get blankHeaderTpl() {
|
|
3192
|
+
get blankHeaderTpl() {
|
|
3193
|
+
return this._blankHeaderTpl;
|
|
3194
|
+
}
|
|
2932
3195
|
set blankHeaderTpl(value) {
|
|
2933
3196
|
this._blankHeaderTpl = value;
|
|
2934
3197
|
this._columnsManager.setBlankHeaderTpl(notNullOrUndefined(value) ? value : undefined);
|
|
2935
3198
|
}
|
|
2936
3199
|
_blankHeaderTpl;
|
|
2937
|
-
get cellTypeSelectorTpl() {
|
|
3200
|
+
get cellTypeSelectorTpl() {
|
|
3201
|
+
return this._cellTypeSelectorTpl;
|
|
3202
|
+
}
|
|
2938
3203
|
set cellTypeSelectorTpl(value) {
|
|
2939
3204
|
this._cellTypeSelectorTpl = value;
|
|
2940
3205
|
this._columnsManager.setCellTypeSelectorTpl(notNullOrUndefined(value) ? value : undefined);
|
|
@@ -2958,8 +3223,8 @@ class DatatableComponent {
|
|
|
2958
3223
|
const id = event.target.parentElement
|
|
2959
3224
|
?.querySelector('.datatable-column-header-separator')
|
|
2960
3225
|
?.getAttribute('data-column-id');
|
|
2961
|
-
this._columnsManager.columns$.pipe(take(1)).subscribe(columns => {
|
|
2962
|
-
const column = columns.find(c => c.$$id === id);
|
|
3226
|
+
this._columnsManager.columns$.pipe(take(1)).subscribe((columns) => {
|
|
3227
|
+
const column = columns.find((c) => c.$$id === id);
|
|
2963
3228
|
if (column) {
|
|
2964
3229
|
const columnProp = getColumnProp(column);
|
|
2965
3230
|
if (columnProp) {
|
|
@@ -2977,28 +3242,31 @@ class DatatableComponent {
|
|
|
2977
3242
|
this._columnsAlterationsManager = _columnsAlterationsManager;
|
|
2978
3243
|
this._columnsFilters = _columnsFilters;
|
|
2979
3244
|
this._config = _config;
|
|
2980
|
-
this._preferencesKey
|
|
3245
|
+
this._preferencesKey
|
|
3246
|
+
.pipe(distinctUntilChanged(), switchMap((key) => {
|
|
2981
3247
|
if (!notNullOrUndefined(key) || key.length === 0) {
|
|
2982
3248
|
return of(undefined);
|
|
2983
3249
|
}
|
|
2984
3250
|
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())
|
|
3251
|
+
// console.log('%cSaving columns alterations to preferences', 'color: blue', this._columnsAlterationsManager.get())
|
|
2986
3252
|
this._preferences.setAlterations(key, this._columnsAlterationsManager.get());
|
|
2987
3253
|
}))));
|
|
2988
|
-
}), takeUntil(this._ngUnsubscribe))
|
|
3254
|
+
}), takeUntil(this._ngUnsubscribe))
|
|
3255
|
+
.subscribe();
|
|
2989
3256
|
const applyPrefs = (cols) => this._columnsAlterationsManager.changes.pipe(startWith(undefined), map(() => {
|
|
2990
|
-
console.log('%cApplying columns alterations', 'color: blue', cols)
|
|
3257
|
+
// console.log('%cApplying columns alterations', 'color: blue', cols)
|
|
2991
3258
|
this._columnsAlterationsManager.apply(cols, this);
|
|
2992
3259
|
return cols;
|
|
2993
3260
|
}));
|
|
2994
|
-
this._preferencesKey
|
|
3261
|
+
this._preferencesKey
|
|
3262
|
+
.pipe(distinctUntilChanged(), switchMap((prefsKey) => {
|
|
2995
3263
|
if (!notNullOrUndefined(prefsKey)) {
|
|
2996
3264
|
return of(undefined);
|
|
2997
3265
|
}
|
|
2998
3266
|
return this._preferences.preferences(prefsKey).pipe(switchMap(async (preferences) => {
|
|
2999
3267
|
await waitOnConditionAsync(() => this._preferences.isLoaded(prefsKey));
|
|
3000
3268
|
return preferences;
|
|
3001
|
-
}), take(1), map(preferences => {
|
|
3269
|
+
}), take(1), map((preferences) => {
|
|
3002
3270
|
let alterations = [];
|
|
3003
3271
|
try {
|
|
3004
3272
|
alterations = mapColumnsAlterationsStates(preferences.alterations);
|
|
@@ -3011,18 +3279,28 @@ class DatatableComponent {
|
|
|
3011
3279
|
console.warn(e);
|
|
3012
3280
|
}
|
|
3013
3281
|
}
|
|
3014
|
-
console.log('%cSetting columns alterations from preferences', 'color: blue', alterations)
|
|
3282
|
+
// console.log('%cSetting columns alterations from preferences', 'color: blue', alterations)
|
|
3015
3283
|
this._columnsAlterationsManager.add(alterations);
|
|
3016
3284
|
}));
|
|
3017
|
-
}), takeUntil(this._ngUnsubscribe))
|
|
3018
|
-
|
|
3285
|
+
}), takeUntil(this._ngUnsubscribe))
|
|
3286
|
+
.subscribe();
|
|
3287
|
+
this.columns$ = combineLatest([
|
|
3288
|
+
this._columnsManager.columns$,
|
|
3289
|
+
this._columnsFilters.columnActiveFilterProps$,
|
|
3290
|
+
]).pipe(map(([columns, columnActiveFilterProps]) => columns.map((col) => ({
|
|
3019
3291
|
...col,
|
|
3020
|
-
filterActive: columnActiveFilterProps.includes(this._columnsFilters.getColumnFilterProp(col) || '')
|
|
3292
|
+
filterActive: columnActiveFilterProps.includes(this._columnsFilters.getColumnFilterProp(col) || ''),
|
|
3021
3293
|
}))));
|
|
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
|
-
|
|
3294
|
+
this.displayColumns$ = this.columns$.pipe(switchMap((cols) => applyPrefs(cols)), map((cols) => cols.filter((c) => !c.hidden)), tap((v) => removeUnusedDiffs(v, this._colDiffersInp, this._colDiffersTpl)));
|
|
3295
|
+
this.filters$ = combineLatest([
|
|
3296
|
+
this._menuBarsFiltersSubject.asObservable(),
|
|
3297
|
+
this._columnsFilters.columnsFilters$,
|
|
3298
|
+
]).pipe(map(([menuFilters, columnsFilters]) => [
|
|
3299
|
+
...menuFilters,
|
|
3300
|
+
...columnsFilters,
|
|
3301
|
+
]));
|
|
3302
|
+
this.filterStates = this.filters$.pipe(switchMap((filters) => composeDataFilterStates(filters)));
|
|
3303
|
+
this.rows$ = this._dataSourceSubject.pipe(switchMap((dataSource) => {
|
|
3026
3304
|
// console.log('dataSource', dataSource)
|
|
3027
3305
|
let dataStream;
|
|
3028
3306
|
if (isDataSource(dataSource)) {
|
|
@@ -3044,9 +3322,9 @@ class DatatableComponent {
|
|
|
3044
3322
|
}
|
|
3045
3323
|
if (!this.externalFiltering) {
|
|
3046
3324
|
// console.log('not using externalFiltering')
|
|
3047
|
-
dataStream = dataStream.pipe(switchMap(rows => this.filters$.pipe(
|
|
3325
|
+
dataStream = dataStream.pipe(switchMap((rows) => this.filters$.pipe(
|
|
3048
3326
|
// tap(v => console.log('filters', v)),
|
|
3049
|
-
concatMap(filters => of(rows).pipe(composeDataFilters(filters))))));
|
|
3327
|
+
concatMap((filters) => of(rows).pipe(composeDataFilters(filters))))));
|
|
3050
3328
|
// dataStream = this._filtersSubject.pipe(
|
|
3051
3329
|
// tap(v => console.log('filters', v)),
|
|
3052
3330
|
// concatMap(filters => dataStream.pipe(composeDataFilters(filters))),
|
|
@@ -3058,11 +3336,11 @@ class DatatableComponent {
|
|
|
3058
3336
|
takeUntil(this._ngUnsubscribe));
|
|
3059
3337
|
}));
|
|
3060
3338
|
// TODO: Implement viewChange for CollectionViewer.
|
|
3061
|
-
this.viewChange = this.page.pipe(map(p => ({ start: 0, end: p.count })));
|
|
3339
|
+
this.viewChange = this.page.pipe(map((p) => ({ start: 0, end: p.count })));
|
|
3062
3340
|
}
|
|
3063
3341
|
ngOnInit() {
|
|
3064
3342
|
if (this.rowDetail) {
|
|
3065
|
-
this._rowDetailToggleSubscription = this.rowDetail._toggle.subscribe(event => {
|
|
3343
|
+
this._rowDetailToggleSubscription = this.rowDetail._toggle.subscribe((event) => {
|
|
3066
3344
|
if (this.ngxRowDetail) {
|
|
3067
3345
|
this.ngxRowDetail.toggle.emit(event);
|
|
3068
3346
|
}
|
|
@@ -3110,7 +3388,7 @@ class DatatableComponent {
|
|
|
3110
3388
|
if (!this.columnComponents || this.columnComponents.length === 0) {
|
|
3111
3389
|
return null;
|
|
3112
3390
|
}
|
|
3113
|
-
const tpl = this.columnComponents.find(t => t.prop === propName);
|
|
3391
|
+
const tpl = this.columnComponents.find((t) => t.prop === propName);
|
|
3114
3392
|
if (tpl) {
|
|
3115
3393
|
return tpl;
|
|
3116
3394
|
}
|
|
@@ -3130,7 +3408,9 @@ class DatatableComponent {
|
|
|
3130
3408
|
return item.prop;
|
|
3131
3409
|
}
|
|
3132
3410
|
onDatatableResize(event) {
|
|
3133
|
-
if (this.ngxDatatable &&
|
|
3411
|
+
if (this.ngxDatatable &&
|
|
3412
|
+
this.ngxDatatableElement &&
|
|
3413
|
+
this.ngxDatatableElement.nativeElement) {
|
|
3134
3414
|
// TODO: Consider integrating this into the ngx-datatable library to avoid
|
|
3135
3415
|
// multiple resize calls when the table resizes itself.
|
|
3136
3416
|
this.ngxDatatable.recalculate();
|
|
@@ -3156,7 +3436,7 @@ class DatatableComponent {
|
|
|
3156
3436
|
const alteration = new WidthColumnsAlteration({
|
|
3157
3437
|
columnProp,
|
|
3158
3438
|
width: event.column.width,
|
|
3159
|
-
canAutoResize: false
|
|
3439
|
+
canAutoResize: false,
|
|
3160
3440
|
}, true);
|
|
3161
3441
|
this._columnsAlterationsManager.add([alteration]);
|
|
3162
3442
|
}
|
|
@@ -3166,12 +3446,14 @@ class DatatableComponent {
|
|
|
3166
3446
|
this.reorder.emit(event);
|
|
3167
3447
|
const columnProp = getColumnProp(event.column);
|
|
3168
3448
|
if (columnProp) {
|
|
3169
|
-
const currentOrderAlteration = this._columnsAlterationsManager
|
|
3449
|
+
const currentOrderAlteration = this._columnsAlterationsManager
|
|
3450
|
+
.get()
|
|
3451
|
+
.find((x) => x.type === 'order');
|
|
3170
3452
|
const state = {
|
|
3171
3453
|
columns: [
|
|
3172
3454
|
...(currentOrderAlteration?.state.columns || []).filter((x) => x.columnProp !== columnProp),
|
|
3173
|
-
{ columnProp, index: event.newValue }
|
|
3174
|
-
]
|
|
3455
|
+
{ columnProp, index: event.newValue },
|
|
3456
|
+
],
|
|
3175
3457
|
};
|
|
3176
3458
|
const alteration = new OrderColumnsAlteration(state, true);
|
|
3177
3459
|
this._columnsAlterationsManager.add([alteration]);
|
|
@@ -3204,18 +3486,18 @@ class DatatableComponent {
|
|
|
3204
3486
|
offset: this.ngxDatatable?.offset ?? 0,
|
|
3205
3487
|
pageSize: this.ngxDatatable?.pageSize ?? 0,
|
|
3206
3488
|
limit: this.ngxDatatable?.limit,
|
|
3207
|
-
count: this.ngxDatatable?.count ?? 0
|
|
3489
|
+
count: this.ngxDatatable?.count ?? 0,
|
|
3208
3490
|
};
|
|
3209
3491
|
}
|
|
3210
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3211
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3492
|
+
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 });
|
|
3493
|
+
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
3494
|
_THESEAM_DATATABLE,
|
|
3213
3495
|
DatatableColumnChangesService,
|
|
3214
3496
|
_THESEAM_DATATABLE_ACCESSOR,
|
|
3215
3497
|
ColumnsManagerService,
|
|
3216
3498
|
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: [
|
|
3499
|
+
ColumnsFiltersService,
|
|
3500
|
+
], 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
3501
|
trigger('slideDown', [
|
|
3220
3502
|
transition(':enter', [
|
|
3221
3503
|
style({ transform: 'translateY(-20%)', opacity: '0' }),
|
|
@@ -3224,8 +3506,8 @@ class DatatableComponent {
|
|
|
3224
3506
|
transition(':leave', [
|
|
3225
3507
|
style({ transform: 'translateY(0)', opacity: '1' }),
|
|
3226
3508
|
animate('250ms', style({ transform: 'translateY(-20%)', opacity: '0' })),
|
|
3227
|
-
])
|
|
3228
|
-
])
|
|
3509
|
+
]),
|
|
3510
|
+
]),
|
|
3229
3511
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3230
3512
|
}
|
|
3231
3513
|
__decorate([
|
|
@@ -3285,7 +3567,7 @@ __decorate([
|
|
|
3285
3567
|
__decorate([
|
|
3286
3568
|
InputBoolean()
|
|
3287
3569
|
], DatatableComponent.prototype, "scrollbarH", void 0);
|
|
3288
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3570
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableComponent, decorators: [{
|
|
3289
3571
|
type: Component,
|
|
3290
3572
|
args: [{ selector: 'seam-datatable', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
|
|
3291
3573
|
trigger('slideDown', [
|
|
@@ -3296,16 +3578,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
3296
3578
|
transition(':leave', [
|
|
3297
3579
|
style({ transform: 'translateY(0)', opacity: '1' }),
|
|
3298
3580
|
animate('250ms', style({ transform: 'translateY(-20%)', opacity: '0' })),
|
|
3299
|
-
])
|
|
3300
|
-
])
|
|
3581
|
+
]),
|
|
3582
|
+
]),
|
|
3301
3583
|
], providers: [
|
|
3302
3584
|
_THESEAM_DATATABLE,
|
|
3303
3585
|
DatatableColumnChangesService,
|
|
3304
3586
|
_THESEAM_DATATABLE_ACCESSOR,
|
|
3305
3587
|
ColumnsManagerService,
|
|
3306
3588
|
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
|
|
3589
|
+
ColumnsFiltersService,
|
|
3590
|
+
], 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
3591
|
}], ctorParameters: () => [{ type: DatatablePreferencesService }, { type: ColumnsManagerService }, { type: ColumnsAlterationsManagerService }, { type: ColumnsFiltersService }, { type: undefined, decorators: [{
|
|
3310
3592
|
type: Optional
|
|
3311
3593
|
}, {
|
|
@@ -3483,11 +3765,10 @@ class DatatableColumnPreferencesComponent {
|
|
|
3483
3765
|
this._columnsAlterationsManager = _columnsAlterationsManager;
|
|
3484
3766
|
this._columns$ = combineLatest([
|
|
3485
3767
|
this._datatable.columns$ ?? of([]),
|
|
3486
|
-
observeControlValue(this._filterControl)
|
|
3768
|
+
observeControlValue(this._filterControl),
|
|
3487
3769
|
]).pipe(map(([columns, filter]) => {
|
|
3488
3770
|
const _filter = (filter || '').trim().toLowerCase();
|
|
3489
|
-
return columns
|
|
3490
|
-
.filter(c => this._canToggleColumn(c, _filter));
|
|
3771
|
+
return columns.filter((c) => this._canToggleColumn(c, _filter));
|
|
3491
3772
|
}));
|
|
3492
3773
|
}
|
|
3493
3774
|
_canToggleColumn(column, filter, omitInternalColumns = true) {
|
|
@@ -3500,7 +3781,7 @@ class DatatableColumnPreferencesComponent {
|
|
|
3500
3781
|
if (filter.length === 0) {
|
|
3501
3782
|
return true;
|
|
3502
3783
|
}
|
|
3503
|
-
return `${
|
|
3784
|
+
return `${getColumnProp(column) || ''}`.toLowerCase().indexOf(filter) !== -1;
|
|
3504
3785
|
}
|
|
3505
3786
|
_onChange(event, col) {
|
|
3506
3787
|
const columnProp = getColumnProp(col);
|
|
@@ -3510,16 +3791,16 @@ class DatatableColumnPreferencesComponent {
|
|
|
3510
3791
|
}
|
|
3511
3792
|
const alteration = new HideColumnColumnsAlteration({
|
|
3512
3793
|
columnProp,
|
|
3513
|
-
hidden
|
|
3794
|
+
hidden,
|
|
3514
3795
|
}, hidden);
|
|
3515
3796
|
this._columnsAlterationsManager.add([alteration]);
|
|
3516
3797
|
}
|
|
3517
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3518
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3798
|
+
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 });
|
|
3799
|
+
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
3800
|
}
|
|
3520
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3801
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnPreferencesComponent, decorators: [{
|
|
3521
3802
|
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\"
|
|
3803
|
+
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
3804
|
}], ctorParameters: () => [{ type: DatatableComponent, decorators: [{
|
|
3524
3805
|
type: Inject,
|
|
3525
3806
|
args: [THESEAM_DATATABLE]
|
|
@@ -3561,12 +3842,12 @@ class DatatableColumnPreferencesButtonComponent {
|
|
|
3561
3842
|
_resetColumns(event) {
|
|
3562
3843
|
this._columnsAlterationsManager.clear();
|
|
3563
3844
|
}
|
|
3564
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3565
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3845
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, deps: [{ token: ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3846
|
+
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
3847
|
}
|
|
3567
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3848
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, decorators: [{
|
|
3568
3849
|
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
|
|
3850
|
+
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
3851
|
}], ctorParameters: () => [{ type: ColumnsAlterationsManagerService }] });
|
|
3571
3852
|
|
|
3572
3853
|
class DatatableExportButtonComponent {
|
|
@@ -3599,17 +3880,17 @@ class DatatableExportButtonComponent {
|
|
|
3599
3880
|
}
|
|
3600
3881
|
const export$ = combineLatest([
|
|
3601
3882
|
this._datatable.rows$,
|
|
3602
|
-
this._datatable.columns$.pipe(map(cols => cols.filter(c => !isInternalColumn(c))))
|
|
3883
|
+
this._datatable.columns$.pipe(map((cols) => cols.filter((c) => !isInternalColumn(c)))),
|
|
3603
3884
|
]).pipe(take(1), map(([rows, columns]) => {
|
|
3604
3885
|
if (exporter.skipDataMapping) {
|
|
3605
3886
|
return rows;
|
|
3606
3887
|
}
|
|
3607
3888
|
return this._mapExportData(columns || [], rows);
|
|
3608
|
-
}), concatMap(data => exporter.export(data)), catchError(err => {
|
|
3889
|
+
}), concatMap((data) => exporter.export(data)), catchError((err) => {
|
|
3609
3890
|
// eslint-disable-next-line no-console
|
|
3610
3891
|
console.error(err);
|
|
3611
3892
|
return of(false);
|
|
3612
|
-
}), tap(success => {
|
|
3893
|
+
}), tap((success) => {
|
|
3613
3894
|
if (success) {
|
|
3614
3895
|
this._toastr.success(`${exporter.label} export complete.`, 'Data Export');
|
|
3615
3896
|
}
|
|
@@ -3646,16 +3927,16 @@ class DatatableExportButtonComponent {
|
|
|
3646
3927
|
}
|
|
3647
3928
|
return undefined;
|
|
3648
3929
|
}
|
|
3649
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3650
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3930
|
+
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 });
|
|
3931
|
+
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
3932
|
}
|
|
3652
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3933
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableExportButtonComponent, decorators: [{
|
|
3653
3934
|
type: Component,
|
|
3654
|
-
args: [{ selector: 'seam-datatable-export-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<seam-menu #menu>\n <button
|
|
3935
|
+
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
3936
|
}], ctorParameters: () => [{ type: DatatableComponent, decorators: [{
|
|
3656
3937
|
type: Inject,
|
|
3657
3938
|
args: [THESEAM_DATATABLE]
|
|
3658
|
-
}] }, { type: i1$2.ToastrService }, { type: i2$
|
|
3939
|
+
}] }, { type: i1$2.ToastrService }, { type: i2$4.TheSeamLoadingOverlayService }, { type: i3$2.DynamicValueHelperService }, { type: undefined, decorators: [{
|
|
3659
3940
|
type: Optional
|
|
3660
3941
|
}, {
|
|
3661
3942
|
type: Inject,
|
|
@@ -3665,37 +3946,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
3665
3946
|
}] } });
|
|
3666
3947
|
|
|
3667
3948
|
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.
|
|
3949
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarColumnCenterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3950
|
+
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
3951
|
}
|
|
3671
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3952
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarColumnCenterComponent, decorators: [{
|
|
3672
3953
|
type: Component,
|
|
3673
3954
|
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
3955
|
}] });
|
|
3675
3956
|
|
|
3676
3957
|
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.
|
|
3958
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarColumnLeftComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3959
|
+
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
3960
|
}
|
|
3680
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3961
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarColumnLeftComponent, decorators: [{
|
|
3681
3962
|
type: Component,
|
|
3682
3963
|
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
3964
|
}] });
|
|
3684
3965
|
|
|
3685
3966
|
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.
|
|
3967
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarColumnRightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3968
|
+
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
3969
|
}
|
|
3689
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3970
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarColumnRightComponent, decorators: [{
|
|
3690
3971
|
type: Component,
|
|
3691
3972
|
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
3973
|
}] });
|
|
3693
3974
|
|
|
3694
3975
|
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.
|
|
3976
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3977
|
+
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
3978
|
}
|
|
3698
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3979
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarRowComponent, decorators: [{
|
|
3699
3980
|
type: Component,
|
|
3700
3981
|
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
3982
|
}] });
|
|
@@ -3715,10 +3996,10 @@ class DatatableMenuBarTextComponent {
|
|
|
3715
3996
|
}
|
|
3716
3997
|
}
|
|
3717
3998
|
}
|
|
3718
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3719
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3999
|
+
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 });
|
|
4000
|
+
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
4001
|
}
|
|
3721
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4002
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableMenuBarTextComponent, decorators: [{
|
|
3722
4003
|
type: Component,
|
|
3723
4004
|
args: [{ selector: 'seam-datatable-menu-bar-text', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "{{ value }}\n" }]
|
|
3724
4005
|
}], ctorParameters: () => [{ type: DatatableMenuBarComponent }, { type: undefined, decorators: [{
|
|
@@ -3793,16 +4074,16 @@ class DatatableActionMenuItemDirective {
|
|
|
3793
4074
|
this._dynamicComponentLoader = _dynamicComponentLoader;
|
|
3794
4075
|
this._http = _http;
|
|
3795
4076
|
}
|
|
3796
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3797
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
4077
|
+
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 });
|
|
4078
|
+
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
4079
|
}
|
|
3799
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4080
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableActionMenuItemDirective, decorators: [{
|
|
3800
4081
|
type: Directive,
|
|
3801
4082
|
args: [{
|
|
3802
4083
|
selector: '[seamDatatableActionMenuItem]',
|
|
3803
|
-
standalone: false
|
|
4084
|
+
standalone: false,
|
|
3804
4085
|
}]
|
|
3805
|
-
}], ctorParameters: () => [{ type: i1$3.Modal }, { type: i2$
|
|
4086
|
+
}], ctorParameters: () => [{ type: i1$3.Modal }, { type: i2$5.TheSeamDynamicComponentLoader }, { type: i3$3.HttpClient, decorators: [{
|
|
3806
4087
|
type: Optional
|
|
3807
4088
|
}] }], propDecorators: { _listGroupItem: [{
|
|
3808
4089
|
type: HostBinding,
|
|
@@ -3857,16 +4138,26 @@ class DatatableActionMenuToggleDirective {
|
|
|
3857
4138
|
_onClick(event) {
|
|
3858
4139
|
this.toggle();
|
|
3859
4140
|
}
|
|
3860
|
-
_mouseDown(event) {
|
|
3861
|
-
|
|
3862
|
-
|
|
3863
|
-
|
|
4141
|
+
_mouseDown(event) {
|
|
4142
|
+
this.onInputDown(event);
|
|
4143
|
+
}
|
|
4144
|
+
_pointerDown(event) {
|
|
4145
|
+
this.onInputDown(event);
|
|
4146
|
+
}
|
|
4147
|
+
_mouseUp(event) {
|
|
4148
|
+
this.onInputUp(event);
|
|
4149
|
+
}
|
|
4150
|
+
_pointerUp(event) {
|
|
4151
|
+
this.onInputUp(event);
|
|
4152
|
+
}
|
|
3864
4153
|
constructor(_elementRef, _viewContainerRef, _overlay) {
|
|
3865
4154
|
this._elementRef = _elementRef;
|
|
3866
4155
|
this._viewContainerRef = _viewContainerRef;
|
|
3867
4156
|
this._overlay = _overlay;
|
|
3868
4157
|
}
|
|
3869
|
-
get active() {
|
|
4158
|
+
get active() {
|
|
4159
|
+
return this._active;
|
|
4160
|
+
}
|
|
3870
4161
|
toggle() {
|
|
3871
4162
|
if (this._active) {
|
|
3872
4163
|
this.disable();
|
|
@@ -3899,7 +4190,8 @@ class DatatableActionMenuToggleDirective {
|
|
|
3899
4190
|
this._active = false;
|
|
3900
4191
|
}
|
|
3901
4192
|
getOverlayPosition(origin) {
|
|
3902
|
-
const positionStrategy = this._overlay
|
|
4193
|
+
const positionStrategy = this._overlay
|
|
4194
|
+
.position()
|
|
3903
4195
|
.flexibleConnectedTo(origin)
|
|
3904
4196
|
.withPositions(this.getPositions())
|
|
3905
4197
|
.withFlexibleDimensions(false)
|
|
@@ -3947,15 +4239,15 @@ class DatatableActionMenuToggleDirective {
|
|
|
3947
4239
|
onInputUp(event) {
|
|
3948
4240
|
this._actionDown = false;
|
|
3949
4241
|
}
|
|
3950
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3951
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
4242
|
+
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 });
|
|
4243
|
+
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
4244
|
}
|
|
3953
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableActionMenuToggleDirective, decorators: [{
|
|
3954
4246
|
type: Directive,
|
|
3955
4247
|
args: [{
|
|
3956
4248
|
selector: '[seamDatatableActionMenuToggle]',
|
|
3957
4249
|
exportAs: 'seamDatatableActionMenuToggle',
|
|
3958
|
-
standalone: false
|
|
4250
|
+
standalone: false,
|
|
3959
4251
|
}]
|
|
3960
4252
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1$4.Overlay }], propDecorators: { seamDatatableActionMenuToggle: [{
|
|
3961
4253
|
type: Input
|
|
@@ -4012,12 +4304,12 @@ class TheSeamDatatableScrollbarHelperService {
|
|
|
4012
4304
|
onInitScroller(scroller) {
|
|
4013
4305
|
this._scrollbars.initializeInstance(scroller.parentElement, {
|
|
4014
4306
|
callbacks: {
|
|
4015
|
-
onScroll: e => {
|
|
4307
|
+
onScroll: (e) => {
|
|
4016
4308
|
this._ngZone.run(() => {
|
|
4017
4309
|
scroller.onScrolled(e);
|
|
4018
4310
|
});
|
|
4019
|
-
}
|
|
4020
|
-
}
|
|
4311
|
+
},
|
|
4312
|
+
},
|
|
4021
4313
|
});
|
|
4022
4314
|
}
|
|
4023
4315
|
onDestroyScroller(scroller) {
|
|
@@ -4026,26 +4318,28 @@ class TheSeamDatatableScrollbarHelperService {
|
|
|
4026
4318
|
setOffset(scroller, offsetY) {
|
|
4027
4319
|
this._ngZone.runOutsideAngular(() => {
|
|
4028
4320
|
if (this.animatedScrolling) {
|
|
4029
|
-
this._scrollbars
|
|
4321
|
+
this._scrollbars
|
|
4322
|
+
.getInstance(scroller.parentElement)
|
|
4030
4323
|
.scroll({ y: offsetY }, this.animatedScrollingTime);
|
|
4031
4324
|
}
|
|
4032
4325
|
else {
|
|
4033
|
-
this._scrollbars
|
|
4326
|
+
this._scrollbars
|
|
4327
|
+
.getInstance(scroller.parentElement)
|
|
4034
4328
|
.scroll({ y: offsetY });
|
|
4035
4329
|
}
|
|
4036
4330
|
});
|
|
4037
4331
|
}
|
|
4038
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4039
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
4332
|
+
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 });
|
|
4333
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableScrollbarHelperService });
|
|
4040
4334
|
}
|
|
4041
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4335
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableScrollbarHelperService, decorators: [{
|
|
4042
4336
|
type: Injectable
|
|
4043
4337
|
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i1$5.TheSeamOverlayScrollbarsService }] });
|
|
4044
4338
|
|
|
4045
4339
|
function withStoredColumnInfo(columns, preferenceColumns) {
|
|
4046
4340
|
const _columns = [];
|
|
4047
4341
|
for (const col of columns) {
|
|
4048
|
-
const storedCol = preferenceColumns.find(v => v.prop === col.prop);
|
|
4342
|
+
const storedCol = preferenceColumns.find((v) => v.prop === col.prop);
|
|
4049
4343
|
if (storedCol) {
|
|
4050
4344
|
const _col = { ...col };
|
|
4051
4345
|
if (hasProperty(storedCol, 'width')) {
|
|
@@ -4062,8 +4356,8 @@ function withStoredColumnInfo(columns, preferenceColumns) {
|
|
|
4062
4356
|
}
|
|
4063
4357
|
|
|
4064
4358
|
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.
|
|
4359
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4360
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableModule, declarations: [DatatableComponent,
|
|
4067
4361
|
DatatableCellTplDirective,
|
|
4068
4362
|
DatatableColumnComponent,
|
|
4069
4363
|
DatatableActionMenuComponent,
|
|
@@ -4085,10 +4379,6 @@ class TheSeamDatatableModule {
|
|
|
4085
4379
|
DatatableMenuBarColumnCenterComponent,
|
|
4086
4380
|
DatatableMenuBarColumnRightComponent,
|
|
4087
4381
|
DatatableMenuBarTextComponent,
|
|
4088
|
-
DatatableColumnFilterMenuComponent,
|
|
4089
|
-
DatatableColumnFilterSearchTextComponent,
|
|
4090
|
-
DatatableColumnFilterSearchNumericComponent,
|
|
4091
|
-
DatatableColumnFilterSearchDateComponent,
|
|
4092
4382
|
DatatableColumnFilterTplDirective,
|
|
4093
4383
|
TheSeamDatatableColumnFilterDirective], imports: [CommonModule,
|
|
4094
4384
|
NgxDatatableModule,
|
|
@@ -4111,7 +4401,12 @@ class TheSeamDatatableModule {
|
|
|
4111
4401
|
TheSeamTableCellTypeModule,
|
|
4112
4402
|
TheSeamDataFiltersModule,
|
|
4113
4403
|
NgSelectModule,
|
|
4114
|
-
TheSeamToggleGroupModule
|
|
4404
|
+
TheSeamToggleGroupModule,
|
|
4405
|
+
DatatableColumnHeaderComponent,
|
|
4406
|
+
DatatableColumnFilterMenuComponent,
|
|
4407
|
+
DatatableColumnFilterSearchTextComponent,
|
|
4408
|
+
DatatableColumnFilterSearchNumericComponent,
|
|
4409
|
+
DatatableColumnFilterSearchDateComponent], exports: [DatatableComponent,
|
|
4115
4410
|
DatatableCellTplDirective,
|
|
4116
4411
|
DatatableColumnComponent,
|
|
4117
4412
|
DatatableActionMenuComponent,
|
|
@@ -4138,8 +4433,11 @@ class TheSeamDatatableModule {
|
|
|
4138
4433
|
DatatableColumnFilterSearchDateComponent,
|
|
4139
4434
|
DatatableColumnFilterTplDirective,
|
|
4140
4435
|
TheSeamDatatableColumnFilterDirective] });
|
|
4141
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
4142
|
-
{
|
|
4436
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableModule, providers: [
|
|
4437
|
+
{
|
|
4438
|
+
provide: ScrollbarHelper,
|
|
4439
|
+
useClass: TheSeamDatatableScrollbarHelperService,
|
|
4440
|
+
},
|
|
4143
4441
|
], imports: [CommonModule,
|
|
4144
4442
|
NgxDatatableModule,
|
|
4145
4443
|
FontAwesomeModule,
|
|
@@ -4161,9 +4459,14 @@ class TheSeamDatatableModule {
|
|
|
4161
4459
|
TheSeamTableCellTypeModule,
|
|
4162
4460
|
TheSeamDataFiltersModule,
|
|
4163
4461
|
NgSelectModule,
|
|
4164
|
-
TheSeamToggleGroupModule
|
|
4462
|
+
TheSeamToggleGroupModule,
|
|
4463
|
+
DatatableColumnHeaderComponent,
|
|
4464
|
+
DatatableColumnFilterMenuComponent,
|
|
4465
|
+
DatatableColumnFilterSearchTextComponent,
|
|
4466
|
+
DatatableColumnFilterSearchNumericComponent,
|
|
4467
|
+
DatatableColumnFilterSearchDateComponent] });
|
|
4165
4468
|
}
|
|
4166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4469
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamDatatableModule, decorators: [{
|
|
4167
4470
|
type: NgModule,
|
|
4168
4471
|
args: [{
|
|
4169
4472
|
declarations: [
|
|
@@ -4189,10 +4492,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
4189
4492
|
DatatableMenuBarColumnCenterComponent,
|
|
4190
4493
|
DatatableMenuBarColumnRightComponent,
|
|
4191
4494
|
DatatableMenuBarTextComponent,
|
|
4192
|
-
DatatableColumnFilterMenuComponent,
|
|
4193
|
-
DatatableColumnFilterSearchTextComponent,
|
|
4194
|
-
DatatableColumnFilterSearchNumericComponent,
|
|
4195
|
-
DatatableColumnFilterSearchDateComponent,
|
|
4196
4495
|
DatatableColumnFilterTplDirective,
|
|
4197
4496
|
TheSeamDatatableColumnFilterDirective,
|
|
4198
4497
|
],
|
|
@@ -4219,6 +4518,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
4219
4518
|
TheSeamDataFiltersModule,
|
|
4220
4519
|
NgSelectModule,
|
|
4221
4520
|
TheSeamToggleGroupModule,
|
|
4521
|
+
DatatableColumnHeaderComponent,
|
|
4522
|
+
DatatableColumnFilterMenuComponent,
|
|
4523
|
+
DatatableColumnFilterSearchTextComponent,
|
|
4524
|
+
DatatableColumnFilterSearchNumericComponent,
|
|
4525
|
+
DatatableColumnFilterSearchDateComponent,
|
|
4222
4526
|
],
|
|
4223
4527
|
exports: [
|
|
4224
4528
|
DatatableComponent,
|
|
@@ -4250,7 +4554,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
4250
4554
|
TheSeamDatatableColumnFilterDirective,
|
|
4251
4555
|
],
|
|
4252
4556
|
providers: [
|
|
4253
|
-
{
|
|
4557
|
+
{
|
|
4558
|
+
provide: ScrollbarHelper,
|
|
4559
|
+
useClass: TheSeamDatatableScrollbarHelperService,
|
|
4560
|
+
},
|
|
4254
4561
|
],
|
|
4255
4562
|
}]
|
|
4256
4563
|
}] });
|
|
@@ -4259,5 +4566,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
4259
4566
|
* Generated bundle index. Do not edit.
|
|
4260
4567
|
*/
|
|
4261
4568
|
|
|
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 };
|
|
4569
|
+
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
4570
|
//# sourceMappingURL=theseam-ui-common-datatable.mjs.map
|