@theseam/ui-common 1.0.0-beta.6 → 1.0.0-beta.8
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 +8 -8
- 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 +592 -388
- 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 +120 -74
- package/fesm2022/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-framework.mjs +669 -543
- package/fesm2022/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-google-maps.mjs +206 -149
- package/fesm2022/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-graphql.mjs +252 -195
- package/fesm2022/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-icon.mjs +125 -89
- package/fesm2022/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-layout.mjs +18 -26
- package/fesm2022/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-loading.mjs +19 -28
- package/fesm2022/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-menu.mjs +124 -95
- package/fesm2022/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-modal.mjs +177 -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 +123 -67
- 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 +34 -38
- 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 +50 -39
- 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 +79 -56
- 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/framework/base-layout/base-layout.component.scss +9 -4
- package/framework/base-layout/styles/_variables.scss +4 -9
- package/framework/dashboard/dashboard-widgets/dashboard-widgets.component.scss +6 -4
- package/framework/index.d.ts +6 -6
- package/framework/nav/nav-item/nav-item.component.scss +7 -6
- package/framework/nav/styles/_themes/light/_variables.scss +21 -5
- package/framework/nav/styles/_themes/primary/_variables.scss +21 -5
- package/framework/side-nav/side-nav-item/side-nav-item.component.scss +5 -2
- package/framework/side-nav/styles/_themes/light/_variables.scss +5 -1
- package/framework/side-nav/styles/_themes/primary/_variables.scss +25 -5
- package/graphql/index.d.ts +5 -5
- package/modal/README.md +5 -5
- package/modal/index.d.ts +1 -1
- package/models/index.d.ts +1 -1
- package/package.json +41 -41
- package/popover/index.d.ts +0 -2
- package/progress/progress-circle/styles/_variables.scss +15 -3
- 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/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
|
@@ -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.6", ngImport: i0, type: DatatableActionMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", 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.6", 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.6", 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.6", 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: i5.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.6", 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.6", ngImport: i0, type: DatatableCellTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
238
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", 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.6", 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.6", ngImport: i0, type: DatatableColumnChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
257
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.6", 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.6", ngImport: i0, type: DatatableColumnChangesService, decorators: [{
|
|
257
260
|
type: Injectable
|
|
258
261
|
}] });
|
|
259
262
|
|
|
@@ -324,12 +327,12 @@ class DatatableColumnComponent {
|
|
|
324
327
|
}
|
|
325
328
|
return null;
|
|
326
329
|
}
|
|
327
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
328
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
330
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnComponent, deps: [{ token: DatatableColumnChangesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
331
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", 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", _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
332
|
}
|
|
330
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
333
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnComponent, decorators: [{
|
|
331
334
|
type: Component,
|
|
332
|
-
args: [{ selector: 'seam-datatable-column', standalone: false, template: "<p
|
|
335
|
+
args: [{ selector: 'seam-datatable-column', standalone: false, template: "<p>datatable-column works!</p>\n" }]
|
|
333
336
|
}], ctorParameters: () => [{ type: DatatableColumnChangesService }], propDecorators: { name: [{
|
|
334
337
|
type: Input
|
|
335
338
|
}], prop: [{
|
|
@@ -394,14 +397,14 @@ class DatatableFooterTplDirective {
|
|
|
394
397
|
constructor(template) {
|
|
395
398
|
this.template = template;
|
|
396
399
|
}
|
|
397
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
398
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
400
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableFooterTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
401
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: DatatableFooterTplDirective, isStandalone: false, selector: "[seamDatatableFooterTpl]", ngImport: i0 });
|
|
399
402
|
}
|
|
400
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
403
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableFooterTplDirective, decorators: [{
|
|
401
404
|
type: Directive,
|
|
402
405
|
args: [{
|
|
403
406
|
selector: '[seamDatatableFooterTpl]',
|
|
404
|
-
standalone: false
|
|
407
|
+
standalone: false,
|
|
405
408
|
}]
|
|
406
409
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
407
410
|
|
|
@@ -412,22 +415,25 @@ class TheSeamDatatableFooterDirective {
|
|
|
412
415
|
get template() {
|
|
413
416
|
return this._templateInput || this._templateQuery;
|
|
414
417
|
}
|
|
415
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
416
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
418
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamDatatableFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
419
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", 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
420
|
}
|
|
418
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
421
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamDatatableFooterDirective, decorators: [{
|
|
419
422
|
type: Directive,
|
|
420
423
|
args: [{
|
|
421
424
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
422
425
|
selector: 'seam-datatable-footer',
|
|
423
|
-
standalone: false
|
|
426
|
+
standalone: false,
|
|
424
427
|
}]
|
|
425
428
|
}], propDecorators: { _templateInput: [{
|
|
426
429
|
type: Input,
|
|
427
430
|
args: ['template']
|
|
428
431
|
}], _templateQuery: [{
|
|
429
432
|
type: ContentChild,
|
|
430
|
-
args: [DatatableFooterTplDirective, {
|
|
433
|
+
args: [DatatableFooterTplDirective, {
|
|
434
|
+
read: TemplateRef,
|
|
435
|
+
static: true,
|
|
436
|
+
}]
|
|
431
437
|
}] } });
|
|
432
438
|
|
|
433
439
|
class DatatableFilterDirective {
|
|
@@ -440,14 +446,14 @@ class DatatableFilterDirective {
|
|
|
440
446
|
get filter() {
|
|
441
447
|
return this._filter;
|
|
442
448
|
}
|
|
443
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
444
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
449
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableFilterDirective, deps: [{ token: THESEAM_DATA_FILTER, self: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
450
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: DatatableFilterDirective, isStandalone: false, selector: "[seamDatatableFilter]", ngImport: i0 });
|
|
445
451
|
}
|
|
446
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
452
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableFilterDirective, decorators: [{
|
|
447
453
|
type: Directive,
|
|
448
454
|
args: [{
|
|
449
455
|
selector: '[seamDatatableFilter]',
|
|
450
|
-
standalone: false
|
|
456
|
+
standalone: false,
|
|
451
457
|
}]
|
|
452
458
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
453
459
|
type: Self
|
|
@@ -458,8 +464,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
458
464
|
|
|
459
465
|
const _THESEAM_DATA_FILTER_CONTAINER = {
|
|
460
466
|
provide: THESEAM_DATA_FILTER_CONTAINER,
|
|
461
|
-
|
|
462
|
-
useExisting: forwardRef(() => DatatableMenuBarComponent)
|
|
467
|
+
useExisting: forwardRef(() => DatatableMenuBarComponent),
|
|
463
468
|
};
|
|
464
469
|
class DatatableMenuBarComponent {
|
|
465
470
|
get filterDirectives() {
|
|
@@ -474,10 +479,9 @@ class DatatableMenuBarComponent {
|
|
|
474
479
|
filtersChanged = new EventEmitter();
|
|
475
480
|
filters() {
|
|
476
481
|
const fDirectives = this._filterDirectives
|
|
477
|
-
? this._filterDirectives.map(f => f.filter).filter(notNullOrUndefined)
|
|
482
|
+
? this._filterDirectives.map((f) => f.filter).filter(notNullOrUndefined)
|
|
478
483
|
: [];
|
|
479
|
-
const fArr = this._filtersArr
|
|
480
|
-
.filter(f => fDirectives.findIndex(fd => fd.uid === f.uid) === -1);
|
|
484
|
+
const fArr = this._filtersArr.filter((f) => fDirectives.findIndex((fd) => fd.uid === f.uid) === -1);
|
|
481
485
|
return [...fArr, ...fDirectives];
|
|
482
486
|
}
|
|
483
487
|
addFilter(dataFilter) {
|
|
@@ -485,13 +489,13 @@ class DatatableMenuBarComponent {
|
|
|
485
489
|
this.filtersChanged.emit(this.filters());
|
|
486
490
|
}
|
|
487
491
|
removeFilter(dataFilter) {
|
|
488
|
-
this._filtersArr = this._filtersArr.filter(f => f !== dataFilter);
|
|
492
|
+
this._filtersArr = this._filtersArr.filter((f) => f !== dataFilter);
|
|
489
493
|
this.filtersChanged.emit(this.filters());
|
|
490
494
|
}
|
|
491
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
492
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
495
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableMenuBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
496
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", 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
497
|
}
|
|
494
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
498
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableMenuBarComponent, decorators: [{
|
|
495
499
|
type: Component,
|
|
496
500
|
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
501
|
}], propDecorators: { filterDirectives: [{
|
|
@@ -504,14 +508,14 @@ class DatatableRowDetailTplDirective {
|
|
|
504
508
|
constructor(template) {
|
|
505
509
|
this.template = template;
|
|
506
510
|
}
|
|
507
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
508
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
511
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableRowDetailTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
512
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: DatatableRowDetailTplDirective, isStandalone: false, selector: "[seamDatatableRowDetailTpl]", ngImport: i0 });
|
|
509
513
|
}
|
|
510
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
514
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableRowDetailTplDirective, decorators: [{
|
|
511
515
|
type: Directive,
|
|
512
516
|
args: [{
|
|
513
517
|
selector: '[seamDatatableRowDetailTpl]',
|
|
514
|
-
standalone: false
|
|
518
|
+
standalone: false,
|
|
515
519
|
}]
|
|
516
520
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
517
521
|
|
|
@@ -531,6 +535,7 @@ class TheSeamDatatableRowDetailDirective {
|
|
|
531
535
|
* Row detail row visbility was toggled.
|
|
532
536
|
*/
|
|
533
537
|
// NOTE: This will trigger from the internal ngx-datatable toggle event.
|
|
538
|
+
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
534
539
|
toggle = new EventEmitter();
|
|
535
540
|
/**
|
|
536
541
|
* Internal use for wrapper only.
|
|
@@ -548,7 +553,7 @@ class TheSeamDatatableRowDetailDirective {
|
|
|
548
553
|
toggleExpandRow(row) {
|
|
549
554
|
this._toggle.emit({
|
|
550
555
|
type: 'row',
|
|
551
|
-
value: row
|
|
556
|
+
value: row,
|
|
552
557
|
});
|
|
553
558
|
}
|
|
554
559
|
/**
|
|
@@ -557,7 +562,7 @@ class TheSeamDatatableRowDetailDirective {
|
|
|
557
562
|
expandAllRows() {
|
|
558
563
|
this._toggle.emit({
|
|
559
564
|
type: 'all',
|
|
560
|
-
value: true
|
|
565
|
+
value: true,
|
|
561
566
|
});
|
|
562
567
|
}
|
|
563
568
|
/**
|
|
@@ -566,18 +571,18 @@ class TheSeamDatatableRowDetailDirective {
|
|
|
566
571
|
collapseAllRows() {
|
|
567
572
|
this._toggle.emit({
|
|
568
573
|
type: 'all',
|
|
569
|
-
value: false
|
|
574
|
+
value: false,
|
|
570
575
|
});
|
|
571
576
|
}
|
|
572
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
573
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
577
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamDatatableRowDetailDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
578
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", 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
579
|
}
|
|
575
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
580
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamDatatableRowDetailDirective, decorators: [{
|
|
576
581
|
type: Directive,
|
|
577
582
|
args: [{
|
|
578
583
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
579
584
|
selector: 'seam-datatable-row-detail',
|
|
580
|
-
standalone: false
|
|
585
|
+
standalone: false,
|
|
581
586
|
}]
|
|
582
587
|
}], propDecorators: { rowHeight: [{
|
|
583
588
|
type: Input
|
|
@@ -586,7 +591,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
586
591
|
args: ['template']
|
|
587
592
|
}], _templateQuery: [{
|
|
588
593
|
type: ContentChild,
|
|
589
|
-
args: [DatatableRowDetailTplDirective, {
|
|
594
|
+
args: [DatatableRowDetailTplDirective, {
|
|
595
|
+
read: TemplateRef,
|
|
596
|
+
static: true,
|
|
597
|
+
}]
|
|
590
598
|
}], toggle: [{
|
|
591
599
|
type: Output
|
|
592
600
|
}] } });
|
|
@@ -596,14 +604,14 @@ class DatatableRowActionItemDirective {
|
|
|
596
604
|
constructor(template) {
|
|
597
605
|
this.template = template;
|
|
598
606
|
}
|
|
599
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
600
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
607
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableRowActionItemDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
608
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: DatatableRowActionItemDirective, isStandalone: false, selector: "[seamDatatableRowActionItem]", ngImport: i0 });
|
|
601
609
|
}
|
|
602
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
610
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableRowActionItemDirective, decorators: [{
|
|
603
611
|
type: Directive,
|
|
604
612
|
args: [{
|
|
605
613
|
selector: '[seamDatatableRowActionItem]',
|
|
606
|
-
standalone: false
|
|
614
|
+
standalone: false,
|
|
607
615
|
}]
|
|
608
616
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
609
617
|
|
|
@@ -614,25 +622,25 @@ class DatatableDataSource extends DataSource {
|
|
|
614
622
|
page$;
|
|
615
623
|
constructor() {
|
|
616
624
|
super();
|
|
617
|
-
this.sorts$ = this._datatableSubject.pipe(switchMap(_datatable => {
|
|
625
|
+
this.sorts$ = this._datatableSubject.pipe(switchMap((_datatable) => {
|
|
618
626
|
if (!_datatable) {
|
|
619
627
|
return of([]);
|
|
620
628
|
}
|
|
621
|
-
return _datatable.sort.pipe(map(v => v.sorts), startWith(_datatable.sorts));
|
|
629
|
+
return _datatable.sort.pipe(map((v) => v.sorts), startWith(_datatable.sorts));
|
|
622
630
|
}));
|
|
623
|
-
this.filterStates$ = this._datatableSubject.pipe(switchMap(_datatable => {
|
|
631
|
+
this.filterStates$ = this._datatableSubject.pipe(switchMap((_datatable) => {
|
|
624
632
|
if (!_datatable) {
|
|
625
633
|
return of([]);
|
|
626
634
|
}
|
|
627
635
|
return _datatable.filterStates;
|
|
628
636
|
}));
|
|
629
|
-
this.page$ = this._datatableSubject.pipe(switchMap(_datatable => {
|
|
637
|
+
this.page$ = this._datatableSubject.pipe(switchMap((_datatable) => {
|
|
630
638
|
if (!_datatable) {
|
|
631
639
|
return of({
|
|
632
640
|
offset: 0,
|
|
633
641
|
pageSize: 0,
|
|
634
642
|
limit: undefined,
|
|
635
|
-
count: 0
|
|
643
|
+
count: 0,
|
|
636
644
|
});
|
|
637
645
|
}
|
|
638
646
|
return _datatable.page.pipe(startWith(_datatable.pageInfo));
|
|
@@ -731,7 +739,7 @@ const THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_TYPES = [
|
|
|
731
739
|
'blank',
|
|
732
740
|
'not-blank',
|
|
733
741
|
'between',
|
|
734
|
-
'not-between'
|
|
742
|
+
'not-between',
|
|
735
743
|
];
|
|
736
744
|
const THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES = [
|
|
737
745
|
'lt',
|
|
@@ -742,7 +750,7 @@ const THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES = [
|
|
|
742
750
|
];
|
|
743
751
|
const THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES = [
|
|
744
752
|
'between',
|
|
745
|
-
'not-between'
|
|
753
|
+
'not-between',
|
|
746
754
|
];
|
|
747
755
|
const THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES = [
|
|
748
756
|
'blank',
|
|
@@ -758,7 +766,7 @@ const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_TYPES = [
|
|
|
758
766
|
'blank',
|
|
759
767
|
'not-blank',
|
|
760
768
|
'between',
|
|
761
|
-
'not-between'
|
|
769
|
+
'not-between',
|
|
762
770
|
];
|
|
763
771
|
const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES = [
|
|
764
772
|
'gt',
|
|
@@ -769,7 +777,7 @@ const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES = [
|
|
|
769
777
|
];
|
|
770
778
|
const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES = [
|
|
771
779
|
'between',
|
|
772
|
-
'not-between'
|
|
780
|
+
'not-between',
|
|
773
781
|
];
|
|
774
782
|
const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES = [
|
|
775
783
|
'blank',
|
|
@@ -782,7 +790,7 @@ const THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_TYPES = [
|
|
|
782
790
|
'eq',
|
|
783
791
|
'neq',
|
|
784
792
|
'blank',
|
|
785
|
-
'not-blank'
|
|
793
|
+
'not-blank',
|
|
786
794
|
];
|
|
787
795
|
const THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES = [
|
|
788
796
|
'contains',
|
|
@@ -792,7 +800,7 @@ const THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES = [
|
|
|
792
800
|
];
|
|
793
801
|
const THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES = [
|
|
794
802
|
'blank',
|
|
795
|
-
'not-blank'
|
|
803
|
+
'not-blank',
|
|
796
804
|
];
|
|
797
805
|
|
|
798
806
|
class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
@@ -801,7 +809,7 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
801
809
|
form;
|
|
802
810
|
filterStateChanges;
|
|
803
811
|
options;
|
|
804
|
-
_updateFilterValue = new Subject;
|
|
812
|
+
_updateFilterValue = new Subject();
|
|
805
813
|
constructor(prop, initialValue, column) {
|
|
806
814
|
super(prop, initialValue, column);
|
|
807
815
|
this.form = new FormGroup({
|
|
@@ -813,7 +821,7 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
813
821
|
this.uid = `${this.name}--${prop}`;
|
|
814
822
|
this.filterStateChanges = this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.filterState()));
|
|
815
823
|
this.options = {
|
|
816
|
-
dateType: this.column.filterOptions?.dateType || 'date'
|
|
824
|
+
dateType: this.column.filterOptions?.dateType || 'date',
|
|
817
825
|
};
|
|
818
826
|
}
|
|
819
827
|
dataFilter(data, filterValue, options) {
|
|
@@ -823,23 +831,28 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
823
831
|
return this._dateSearchDataFilter(this.prop, data, filterValue.searchText, filterValue.fromText, filterValue.toText, filterValue.searchType || null);
|
|
824
832
|
}
|
|
825
833
|
_isInvalidDate(dateString) {
|
|
826
|
-
return isNullOrUndefinedOrEmpty(dateString) ||
|
|
834
|
+
return (isNullOrUndefinedOrEmpty(dateString) ||
|
|
835
|
+
isNaN(new Date(dateString).valueOf()));
|
|
827
836
|
}
|
|
828
837
|
_isInvalidSearchTerm(searchText, fromText, toText, comparator) {
|
|
829
|
-
if (THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(comparator) &&
|
|
838
|
+
if (THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(comparator) &&
|
|
839
|
+
this._isInvalidDate(searchText)) {
|
|
830
840
|
return true;
|
|
831
841
|
}
|
|
832
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(comparator) &&
|
|
842
|
+
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(comparator) &&
|
|
843
|
+
(this._isInvalidDate(fromText) || this._isInvalidDate(toText))) {
|
|
833
844
|
return true;
|
|
834
845
|
}
|
|
835
846
|
return false;
|
|
836
847
|
}
|
|
837
848
|
_dateSearchDataFilter(prop, data, text, fromText, toText, comparator) {
|
|
838
849
|
if (!data || data.length <= 0 || isNullOrUndefined(comparator)) {
|
|
850
|
+
// eslint-disable-next-line no-console
|
|
839
851
|
console.warn('No filter applied - invalid options.');
|
|
840
852
|
return data;
|
|
841
853
|
}
|
|
842
854
|
if (this._isInvalidSearchTerm(text, fromText, toText, comparator)) {
|
|
855
|
+
// eslint-disable-next-line no-console
|
|
843
856
|
console.warn('No filter applied - invalid search terms.');
|
|
844
857
|
return data;
|
|
845
858
|
}
|
|
@@ -847,17 +860,25 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
847
860
|
const textDate = getFormattedDateForComparison(text, this.options.dateType, true);
|
|
848
861
|
const fromTextDate = getFormattedDateForComparison(fromText, this.options.dateType, true);
|
|
849
862
|
const toTextDate = getFormattedDateForComparison(toText, this.options.dateType, true);
|
|
850
|
-
return data.filter(item => {
|
|
851
|
-
|
|
852
|
-
if ((comparator === 'blank' &&
|
|
853
|
-
(
|
|
863
|
+
return data.filter((item) => {
|
|
864
|
+
const propDate = getFormattedDateForComparison(item[prop], this.options.dateType, useLocalTime);
|
|
865
|
+
if ((comparator === 'blank' &&
|
|
866
|
+
(isNullOrUndefined(item[prop]) ||
|
|
867
|
+
isNullOrUndefinedOrEmpty(`${item[prop]}`))) ||
|
|
868
|
+
(comparator === 'not-blank' &&
|
|
869
|
+
notNullOrUndefined(item[prop]) &&
|
|
870
|
+
notNullOrUndefinedOrEmpty(`${item[prop]}`)) ||
|
|
854
871
|
(comparator === 'lt' && propDate.valueOf() < textDate.valueOf()) ||
|
|
855
872
|
(comparator === 'lte' && propDate.valueOf() <= textDate.valueOf()) ||
|
|
856
873
|
(comparator === 'gt' && propDate.valueOf() > textDate.valueOf()) ||
|
|
857
874
|
(comparator === 'gte' && propDate.valueOf() >= textDate.valueOf()) ||
|
|
858
875
|
(comparator === 'eq' && propDate.valueOf() === textDate.valueOf()) ||
|
|
859
|
-
(comparator === 'between' &&
|
|
860
|
-
|
|
876
|
+
(comparator === 'between' &&
|
|
877
|
+
propDate.valueOf() >= fromTextDate.valueOf() &&
|
|
878
|
+
propDate.valueOf() <= toTextDate.valueOf()) ||
|
|
879
|
+
(comparator === 'not-between' &&
|
|
880
|
+
!(propDate.valueOf() >= fromTextDate.valueOf() &&
|
|
881
|
+
propDate.valueOf() <= toTextDate.valueOf()))) {
|
|
861
882
|
return true;
|
|
862
883
|
}
|
|
863
884
|
return false;
|
|
@@ -872,8 +893,8 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
872
893
|
state: {
|
|
873
894
|
prop: this.prop,
|
|
874
895
|
formValue: this.form.value,
|
|
875
|
-
options: this.options
|
|
876
|
-
}
|
|
896
|
+
options: this.options,
|
|
897
|
+
},
|
|
877
898
|
};
|
|
878
899
|
}
|
|
879
900
|
applyFilter() {
|
|
@@ -884,7 +905,7 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
884
905
|
searchType: 'eq',
|
|
885
906
|
searchText: null,
|
|
886
907
|
fromText: null,
|
|
887
|
-
toText: null
|
|
908
|
+
toText: null,
|
|
888
909
|
});
|
|
889
910
|
this._updateFilterValue.next();
|
|
890
911
|
}
|
|
@@ -896,10 +917,13 @@ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
|
896
917
|
if (THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
|
|
897
918
|
return false;
|
|
898
919
|
}
|
|
899
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
920
|
+
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
921
|
+
notNullOrUndefinedOrEmpty(formValue.searchText)) {
|
|
900
922
|
return false;
|
|
901
923
|
}
|
|
902
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
924
|
+
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
925
|
+
notNullOrUndefinedOrEmpty(formValue.fromText) &&
|
|
926
|
+
notNullOrUndefinedOrEmpty(formValue.toText)) {
|
|
903
927
|
return false;
|
|
904
928
|
}
|
|
905
929
|
return true;
|
|
@@ -912,7 +936,7 @@ class SearchNumericColumnsDataFilter extends ColumnsDataFilter {
|
|
|
912
936
|
form;
|
|
913
937
|
filterStateChanges;
|
|
914
938
|
options;
|
|
915
|
-
_updateFilterValue = new Subject;
|
|
939
|
+
_updateFilterValue = new Subject();
|
|
916
940
|
constructor(prop, initialValue, column) {
|
|
917
941
|
super(prop, initialValue, column);
|
|
918
942
|
this.form = new FormGroup({
|
|
@@ -931,37 +955,52 @@ class SearchNumericColumnsDataFilter extends ColumnsDataFilter {
|
|
|
931
955
|
return this.numberSearchDataFilter(this.prop, data, filterValue.searchText, filterValue.fromText, filterValue.toText, filterValue.searchType || null);
|
|
932
956
|
}
|
|
933
957
|
_isInvalidSearchTerm(searchText, fromText, toText, comparator) {
|
|
934
|
-
if (isNaN(searchText) &&
|
|
958
|
+
if (isNaN(searchText) &&
|
|
959
|
+
THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(comparator)) {
|
|
935
960
|
return true;
|
|
936
961
|
}
|
|
937
|
-
else if ((isNaN(fromText) || isNaN(toText)) &&
|
|
962
|
+
else if ((isNaN(fromText) || isNaN(toText)) &&
|
|
963
|
+
THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(comparator)) {
|
|
938
964
|
return true;
|
|
939
965
|
}
|
|
940
966
|
return false;
|
|
941
967
|
}
|
|
942
968
|
numberSearchDataFilter(prop, data, text, fromText, toText, comparator) {
|
|
943
969
|
if (!data || data.length <= 0 || isNullOrUndefined(comparator)) {
|
|
970
|
+
// eslint-disable-next-line no-console
|
|
944
971
|
console.warn('No filter applied - invalid options.');
|
|
945
972
|
return data;
|
|
946
973
|
}
|
|
947
974
|
const textNumeric = notNullOrUndefinedOrEmpty(text) ? parseFloat(text) : NaN;
|
|
948
|
-
const toTextNumeric = notNullOrUndefinedOrEmpty(toText)
|
|
949
|
-
|
|
975
|
+
const toTextNumeric = notNullOrUndefinedOrEmpty(toText)
|
|
976
|
+
? parseFloat(toText)
|
|
977
|
+
: NaN;
|
|
978
|
+
const fromTextNumeric = notNullOrUndefinedOrEmpty(fromText)
|
|
979
|
+
? parseFloat(fromText)
|
|
980
|
+
: NaN;
|
|
950
981
|
if (this._isInvalidSearchTerm(textNumeric, fromTextNumeric, toTextNumeric, comparator)) {
|
|
982
|
+
// eslint-disable-next-line no-console
|
|
951
983
|
console.warn('No filter applied - invalid search terms.');
|
|
952
984
|
return data;
|
|
953
985
|
}
|
|
954
|
-
return data.filter(item => {
|
|
955
|
-
|
|
956
|
-
if ((comparator === 'blank' &&
|
|
957
|
-
(
|
|
986
|
+
return data.filter((item) => {
|
|
987
|
+
const propNumeric = parseFloat(item[prop]);
|
|
988
|
+
if ((comparator === 'blank' &&
|
|
989
|
+
(isNullOrUndefined(item[prop]) ||
|
|
990
|
+
isNullOrUndefinedOrEmpty(`${item[prop]}`))) ||
|
|
991
|
+
(comparator === 'not-blank' &&
|
|
992
|
+
notNullOrUndefined(item[prop]) &&
|
|
993
|
+
notNullOrUndefinedOrEmpty(`${item[prop]}`)) ||
|
|
958
994
|
(comparator === 'lt' && propNumeric < textNumeric) ||
|
|
959
995
|
(comparator === 'lte' && propNumeric <= textNumeric) ||
|
|
960
996
|
(comparator === 'gt' && propNumeric > textNumeric) ||
|
|
961
997
|
(comparator === 'gte' && propNumeric >= textNumeric) ||
|
|
962
998
|
(comparator === 'eq' && propNumeric === textNumeric) ||
|
|
963
|
-
(comparator === 'between' &&
|
|
964
|
-
|
|
999
|
+
(comparator === 'between' &&
|
|
1000
|
+
propNumeric >= fromTextNumeric &&
|
|
1001
|
+
propNumeric <= toTextNumeric) ||
|
|
1002
|
+
(comparator === 'not-between' &&
|
|
1003
|
+
!(propNumeric >= fromTextNumeric && propNumeric <= toTextNumeric))) {
|
|
965
1004
|
return true;
|
|
966
1005
|
}
|
|
967
1006
|
return false;
|
|
@@ -975,8 +1014,8 @@ class SearchNumericColumnsDataFilter extends ColumnsDataFilter {
|
|
|
975
1014
|
name: this.name,
|
|
976
1015
|
state: {
|
|
977
1016
|
prop: this.prop,
|
|
978
|
-
formValue: this.form.value
|
|
979
|
-
}
|
|
1017
|
+
formValue: this.form.value,
|
|
1018
|
+
},
|
|
980
1019
|
};
|
|
981
1020
|
}
|
|
982
1021
|
applyFilter() {
|
|
@@ -987,7 +1026,7 @@ class SearchNumericColumnsDataFilter extends ColumnsDataFilter {
|
|
|
987
1026
|
searchType: 'eq',
|
|
988
1027
|
searchText: null,
|
|
989
1028
|
fromText: null,
|
|
990
|
-
toText: null
|
|
1029
|
+
toText: null,
|
|
991
1030
|
});
|
|
992
1031
|
this._updateFilterValue.next();
|
|
993
1032
|
}
|
|
@@ -999,10 +1038,13 @@ class SearchNumericColumnsDataFilter extends ColumnsDataFilter {
|
|
|
999
1038
|
else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
|
|
1000
1039
|
return false;
|
|
1001
1040
|
}
|
|
1002
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
1041
|
+
else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
1042
|
+
notNullOrUndefinedOrEmpty(formValue.searchText)) {
|
|
1003
1043
|
return false;
|
|
1004
1044
|
}
|
|
1005
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
1045
|
+
else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
1046
|
+
notNullOrUndefinedOrEmpty(formValue.fromText) &&
|
|
1047
|
+
notNullOrUndefinedOrEmpty(formValue.toText)) {
|
|
1006
1048
|
return false;
|
|
1007
1049
|
}
|
|
1008
1050
|
return true;
|
|
@@ -1015,11 +1057,13 @@ class SearchTextColumnsDataFilter extends ColumnsDataFilter {
|
|
|
1015
1057
|
form;
|
|
1016
1058
|
filterStateChanges;
|
|
1017
1059
|
options;
|
|
1018
|
-
_updateFilterValue = new Subject;
|
|
1060
|
+
_updateFilterValue = new Subject();
|
|
1019
1061
|
constructor(prop, initialValue, column) {
|
|
1020
1062
|
super(prop, initialValue, column);
|
|
1021
1063
|
this.form = new FormGroup({
|
|
1022
|
-
searchType: new FormControl(notNullOrUndefined(initialValue)
|
|
1064
|
+
searchType: new FormControl(notNullOrUndefined(initialValue)
|
|
1065
|
+
? initialValue.searchType
|
|
1066
|
+
: 'contains'),
|
|
1023
1067
|
searchText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchText : null),
|
|
1024
1068
|
// caseSensitive: new FormControl<boolean | null>(notNullOrUndefined(initialValue) ? initialValue.caseSensitive : null),
|
|
1025
1069
|
});
|
|
@@ -1036,7 +1080,7 @@ class SearchTextColumnsDataFilter extends ColumnsDataFilter {
|
|
|
1036
1080
|
if (!data || data.length < 0 || isNullOrUndefined(comparator)) {
|
|
1037
1081
|
return data;
|
|
1038
1082
|
}
|
|
1039
|
-
return data.filter(item => {
|
|
1083
|
+
return data.filter((item) => {
|
|
1040
1084
|
let value1 = `${notNullOrUndefined(item[prop]) ? item[prop] : ''}`;
|
|
1041
1085
|
let value2 = text || '';
|
|
1042
1086
|
// if (!options.caseSensitive) {
|
|
@@ -1065,7 +1109,7 @@ class SearchTextColumnsDataFilter extends ColumnsDataFilter {
|
|
|
1065
1109
|
state: {
|
|
1066
1110
|
prop: this.prop,
|
|
1067
1111
|
formValue: this.form.value,
|
|
1068
|
-
}
|
|
1112
|
+
},
|
|
1069
1113
|
};
|
|
1070
1114
|
}
|
|
1071
1115
|
applyFilter() {
|
|
@@ -1084,7 +1128,8 @@ class SearchTextColumnsDataFilter extends ColumnsDataFilter {
|
|
|
1084
1128
|
if (isNullOrUndefinedOrEmpty(formValue.searchType)) {
|
|
1085
1129
|
return true;
|
|
1086
1130
|
}
|
|
1087
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
1131
|
+
else if (THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES.includes(formValue.searchType) &&
|
|
1132
|
+
notNullOrUndefinedOrEmpty(formValue.searchText)) {
|
|
1088
1133
|
return false;
|
|
1089
1134
|
}
|
|
1090
1135
|
else if (THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
|
|
@@ -1095,9 +1140,18 @@ class SearchTextColumnsDataFilter extends ColumnsDataFilter {
|
|
|
1095
1140
|
}
|
|
1096
1141
|
|
|
1097
1142
|
const THESEAM_COLUMNS_DATA_FILTERS_DEFAULT = [
|
|
1098
|
-
{
|
|
1099
|
-
|
|
1100
|
-
|
|
1143
|
+
{
|
|
1144
|
+
name: THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME,
|
|
1145
|
+
class: SearchTextColumnsDataFilter,
|
|
1146
|
+
},
|
|
1147
|
+
{
|
|
1148
|
+
name: THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME,
|
|
1149
|
+
class: SearchNumericColumnsDataFilter,
|
|
1150
|
+
},
|
|
1151
|
+
{
|
|
1152
|
+
name: THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME,
|
|
1153
|
+
class: SearchDateColumnsDataFilter,
|
|
1154
|
+
},
|
|
1101
1155
|
];
|
|
1102
1156
|
const getFormattedDateForComparison = (date, dateType, setToLocalTime = false) => {
|
|
1103
1157
|
const dateObj = new Date(notNullOrUndefined(date) ? date : '');
|
|
@@ -1122,15 +1176,13 @@ class ColumnsFiltersService {
|
|
|
1122
1176
|
_columnFilterTemplates = new BehaviorSubject([]);
|
|
1123
1177
|
columnFilterTemplates$ = this._columnFilterTemplates.asObservable();
|
|
1124
1178
|
_columns = new BehaviorSubject([]);
|
|
1125
|
-
columnsFilters$ = this._columns.pipe(map$1(columns => columns
|
|
1126
|
-
|
|
1127
|
-
.filter(notNullOrUndefined)));
|
|
1128
|
-
columnActiveFilterProps$ = this.columnsFilters$.pipe(switchMap$1(filters => {
|
|
1179
|
+
columnsFilters$ = this._columns.pipe(map$1((columns) => columns.map((col) => col.$$filter).filter(notNullOrUndefined)));
|
|
1180
|
+
columnActiveFilterProps$ = this.columnsFilters$.pipe(switchMap$1((filters) => {
|
|
1129
1181
|
if (!filters.length) {
|
|
1130
1182
|
return of([]);
|
|
1131
1183
|
}
|
|
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)));
|
|
1184
|
+
return combineLatest(filters.map((f) => f.filterStateChanges.pipe(map$1((filterState) => !f.isDefault() ? filterState.state.prop : null))));
|
|
1185
|
+
}), map$1((props) => props.filter(notNullOrUndefined)));
|
|
1134
1186
|
constructor(_customColumnsDataFilters) {
|
|
1135
1187
|
this._customColumnsDataFilters = _customColumnsDataFilters;
|
|
1136
1188
|
}
|
|
@@ -1148,19 +1200,19 @@ class ColumnsFiltersService {
|
|
|
1148
1200
|
const filterClass = this._getColumnsDataFilterType(column);
|
|
1149
1201
|
let filter;
|
|
1150
1202
|
if (notNullOrUndefined(this._customColumnsDataFilters)) {
|
|
1151
|
-
filter = this._customColumnsDataFilters.find(x => x.name === filterClass);
|
|
1203
|
+
filter = this._customColumnsDataFilters.find((x) => x.name === filterClass);
|
|
1152
1204
|
}
|
|
1153
1205
|
if (isNullOrUndefined(filter)) {
|
|
1154
|
-
filter = THESEAM_COLUMNS_DATA_FILTERS_DEFAULT.find(x => x.name === filterClass);
|
|
1206
|
+
filter = THESEAM_COLUMNS_DATA_FILTERS_DEFAULT.find((x) => x.name === filterClass);
|
|
1155
1207
|
}
|
|
1156
1208
|
if (notNullOrUndefined(filter)) {
|
|
1157
|
-
// eslint-disable-next-line new-cap
|
|
1158
1209
|
return new filter.class(prop, initialValue, column);
|
|
1159
1210
|
}
|
|
1160
1211
|
return null;
|
|
1161
1212
|
}
|
|
1162
1213
|
_getColumnsDataFilterType(column) {
|
|
1163
|
-
if (notNullOrUndefined(column.filterOptions) &&
|
|
1214
|
+
if (notNullOrUndefined(column.filterOptions) &&
|
|
1215
|
+
notNullOrUndefined(column.filterOptions.filterType)) {
|
|
1164
1216
|
return column.filterOptions.filterType;
|
|
1165
1217
|
}
|
|
1166
1218
|
else if (notNullOrUndefined(column.cellType)) {
|
|
@@ -1182,7 +1234,11 @@ class ColumnsFiltersService {
|
|
|
1182
1234
|
if (isNullOrUndefined(column)) {
|
|
1183
1235
|
return null;
|
|
1184
1236
|
}
|
|
1185
|
-
const prop = column.filterOptions?.filterProp ||
|
|
1237
|
+
const prop = column.filterOptions?.filterProp ||
|
|
1238
|
+
column.prop ||
|
|
1239
|
+
(notNullOrUndefined(column.name)
|
|
1240
|
+
? camelCase(column.name)
|
|
1241
|
+
: undefined);
|
|
1186
1242
|
if (isNullOrUndefined(prop)) {
|
|
1187
1243
|
return null;
|
|
1188
1244
|
}
|
|
@@ -1196,26 +1252,28 @@ class ColumnsFiltersService {
|
|
|
1196
1252
|
return undefined;
|
|
1197
1253
|
}
|
|
1198
1254
|
const columns = this._columns.value;
|
|
1199
|
-
const column = columns.find(col => this.getColumnFilterProp(col) === prop);
|
|
1255
|
+
const column = columns.find((col) => this.getColumnFilterProp(col) === prop);
|
|
1200
1256
|
return column ? column.$$filter : undefined;
|
|
1201
1257
|
}
|
|
1202
1258
|
filters() {
|
|
1203
1259
|
return this._columns.value
|
|
1204
|
-
.map(col => col.$$filter)
|
|
1260
|
+
.map((col) => col.$$filter)
|
|
1205
1261
|
.filter(notNullOrUndefined);
|
|
1206
1262
|
}
|
|
1207
1263
|
addFilter(filter) {
|
|
1208
1264
|
// Filters are now managed through columns, so this method is deprecated
|
|
1265
|
+
// eslint-disable-next-line no-console
|
|
1209
1266
|
console.warn('ColumnsFiltersService.addFilter is deprecated - filters are now managed through columns');
|
|
1210
1267
|
}
|
|
1211
1268
|
removeFilter(filter) {
|
|
1212
1269
|
// Filters are now managed through columns, so this method is deprecated
|
|
1270
|
+
// eslint-disable-next-line no-console
|
|
1213
1271
|
console.warn('ColumnsFiltersService.removeFilter is deprecated - filters are now managed through columns');
|
|
1214
1272
|
}
|
|
1215
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1216
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1273
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ColumnsFiltersService, deps: [{ token: THESEAM_COLUMNS_DATA_FILTER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1274
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ColumnsFiltersService });
|
|
1217
1275
|
}
|
|
1218
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1276
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ColumnsFiltersService, decorators: [{
|
|
1219
1277
|
type: Injectable
|
|
1220
1278
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
1221
1279
|
type: Optional
|
|
@@ -1257,14 +1315,18 @@ class ColumnsManagerService {
|
|
|
1257
1315
|
this._columnChangesService = _columnChangesService;
|
|
1258
1316
|
this._columnsFilters = _columnsFilters;
|
|
1259
1317
|
const templateColumns$ = this._columnChangesService.columnInputChanges$.pipe(startWith(undefined), switchMap(() => {
|
|
1260
|
-
return this._templateColumns
|
|
1318
|
+
return this._templateColumns
|
|
1319
|
+
.asObservable()
|
|
1320
|
+
.pipe(map(translateTemplateColumns));
|
|
1261
1321
|
}));
|
|
1262
1322
|
this.columns$ = defer(() => {
|
|
1263
1323
|
let isFirst = true;
|
|
1264
1324
|
return combineLatest([
|
|
1265
1325
|
this._inputColumns.asObservable(),
|
|
1266
1326
|
templateColumns$,
|
|
1267
|
-
this._updateColumns
|
|
1327
|
+
this._updateColumns
|
|
1328
|
+
.asObservable()
|
|
1329
|
+
.pipe(auditTime(0), startWith(undefined)),
|
|
1268
1330
|
]).pipe(switchMap(([inputColumns, templateColumns]) => {
|
|
1269
1331
|
const cols = this._mergeColumns(inputColumns, templateColumns);
|
|
1270
1332
|
const hasColumnsChanged = this._hasColumnsChanged(cols);
|
|
@@ -1385,7 +1447,7 @@ class ColumnsManagerService {
|
|
|
1385
1447
|
// TODO: Rethink this, because I don't know if this is correct.
|
|
1386
1448
|
...(tplCol || {}),
|
|
1387
1449
|
// Store filter directly on column object
|
|
1388
|
-
$$filter: existingFilter || this._createColumnFilter(inpCol)
|
|
1450
|
+
$$filter: existingFilter || this._createColumnFilter(inpCol),
|
|
1389
1451
|
};
|
|
1390
1452
|
if (this._shouldAddTreeToggleColumn(_col)) {
|
|
1391
1453
|
_col.treeToggleTemplate = this._treeToggleTpl;
|
|
@@ -1424,16 +1486,19 @@ class ColumnsManagerService {
|
|
|
1424
1486
|
if (internalCols === undefined) {
|
|
1425
1487
|
return undefined;
|
|
1426
1488
|
}
|
|
1427
|
-
return internalCols.find(c => getColumnProp(c) === prop);
|
|
1489
|
+
return internalCols.find((c) => getColumnProp(c) === prop);
|
|
1428
1490
|
}
|
|
1429
1491
|
_findColumnByProp(prop, columns) {
|
|
1430
|
-
return columns.find(c => getColumnProp(c) === prop);
|
|
1492
|
+
return columns.find((c) => getColumnProp(c) === prop);
|
|
1431
1493
|
}
|
|
1432
1494
|
_getDifMapForColumnsType(columnsType) {
|
|
1433
1495
|
switch (columnsType) {
|
|
1434
|
-
case ColumnsTypes.Input:
|
|
1435
|
-
|
|
1436
|
-
case ColumnsTypes.
|
|
1496
|
+
case ColumnsTypes.Input:
|
|
1497
|
+
return this._inpColDiffersMap;
|
|
1498
|
+
case ColumnsTypes.Template:
|
|
1499
|
+
return this._tplColDiffersMap;
|
|
1500
|
+
case ColumnsTypes.Result:
|
|
1501
|
+
return this._resultColDiffersMap;
|
|
1437
1502
|
}
|
|
1438
1503
|
}
|
|
1439
1504
|
_getColumnDiffer(prop, colsType) {
|
|
@@ -1458,20 +1523,21 @@ class ColumnsManagerService {
|
|
|
1458
1523
|
return this._getColumnDiffer(prop, colsType).diff(col);
|
|
1459
1524
|
}
|
|
1460
1525
|
_updateColDif(colDif, internalColumn, col) {
|
|
1461
|
-
colDif.forEachRemovedItem(r => {
|
|
1462
|
-
if (internalColumn &&
|
|
1526
|
+
colDif.forEachRemovedItem((r) => {
|
|
1527
|
+
if (internalColumn &&
|
|
1528
|
+
Object.prototype.hasOwnProperty.call(internalColumn, r.key)) {
|
|
1463
1529
|
const k = r.key;
|
|
1464
1530
|
delete internalColumn[k];
|
|
1465
1531
|
}
|
|
1466
1532
|
});
|
|
1467
|
-
colDif.forEachAddedItem(r => col[r.key] = r.currentValue);
|
|
1468
|
-
colDif.forEachChangedItem(r => col[r.key] = r.currentValue);
|
|
1533
|
+
colDif.forEachAddedItem((r) => (col[r.key] = r.currentValue));
|
|
1534
|
+
colDif.forEachChangedItem((r) => (col[r.key] = r.currentValue));
|
|
1469
1535
|
}
|
|
1470
1536
|
_hasAddedOrRemovedColumns(columns) {
|
|
1471
1537
|
if (!this._colPropsDiffer) {
|
|
1472
1538
|
this._colPropsDiffer = this._differs.find([]).create();
|
|
1473
1539
|
}
|
|
1474
|
-
const props = columns.map(c => getColumnProp(c));
|
|
1540
|
+
const props = columns.map((c) => getColumnProp(c));
|
|
1475
1541
|
return this._colPropsDiffer.diff(props) !== null;
|
|
1476
1542
|
}
|
|
1477
1543
|
_hasColumnsChanged(columns) {
|
|
@@ -1504,8 +1570,10 @@ class ColumnsManagerService {
|
|
|
1504
1570
|
return this._actionItemColumnPosition === 'staticRight';
|
|
1505
1571
|
}
|
|
1506
1572
|
_shouldAddTreeToggleColumn(column) {
|
|
1507
|
-
return column.isTreeColumn !== undefined &&
|
|
1508
|
-
|
|
1573
|
+
return (column.isTreeColumn !== undefined &&
|
|
1574
|
+
column.isTreeColumn &&
|
|
1575
|
+
(!hasProperty(column, 'treeToggleTemplate') ||
|
|
1576
|
+
!notNullOrUndefined(column.treeToggleTemplate)));
|
|
1509
1577
|
}
|
|
1510
1578
|
_shouldAddHeaderTemplate(column) {
|
|
1511
1579
|
return !hasProperty(column, 'headerTemplate');
|
|
@@ -1528,12 +1596,12 @@ class ColumnsManagerService {
|
|
|
1528
1596
|
if (!column.filterable) {
|
|
1529
1597
|
return undefined;
|
|
1530
1598
|
}
|
|
1531
|
-
return this._columnsFilters.createColumnDataFilter(column, null) || undefined;
|
|
1599
|
+
return (this._columnsFilters.createColumnDataFilter(column, null) || undefined);
|
|
1532
1600
|
}
|
|
1533
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1534
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1601
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ColumnsManagerService, deps: [{ token: i0.KeyValueDiffers }, { token: DatatableColumnChangesService }, { token: ColumnsFiltersService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1602
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ColumnsManagerService });
|
|
1535
1603
|
}
|
|
1536
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1604
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ColumnsManagerService, decorators: [{
|
|
1537
1605
|
type: Injectable
|
|
1538
1606
|
}], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: DatatableColumnChangesService }, { type: ColumnsFiltersService }] });
|
|
1539
1607
|
|
|
@@ -1541,11 +1609,17 @@ const THESEAM_DATATABLE_ACCESSOR = new InjectionToken('TheSeamDatatableAccessor'
|
|
|
1541
1609
|
|
|
1542
1610
|
function removeUnusedDiffs(cols, colDiffersInp, colDiffersTpl) {
|
|
1543
1611
|
const inpKeys = Object.keys(colDiffersInp);
|
|
1544
|
-
inpKeys
|
|
1545
|
-
.
|
|
1612
|
+
inpKeys
|
|
1613
|
+
.filter((k) => cols.findIndex((c) => c.prop === k) === -1)
|
|
1614
|
+
.forEach((k) => {
|
|
1615
|
+
delete colDiffersInp[k];
|
|
1616
|
+
});
|
|
1546
1617
|
const tplKeys = Object.keys(colDiffersTpl);
|
|
1547
|
-
tplKeys
|
|
1548
|
-
.
|
|
1618
|
+
tplKeys
|
|
1619
|
+
.filter((k) => cols.findIndex((c) => c.prop === k) === -1)
|
|
1620
|
+
.forEach((k) => {
|
|
1621
|
+
delete colDiffersTpl[k];
|
|
1622
|
+
});
|
|
1549
1623
|
}
|
|
1550
1624
|
|
|
1551
1625
|
/**
|
|
@@ -1583,7 +1657,7 @@ class ColumnsAlteration {
|
|
|
1583
1657
|
return {
|
|
1584
1658
|
id: this.id,
|
|
1585
1659
|
type: this.type,
|
|
1586
|
-
state: this.state
|
|
1660
|
+
state: this.state,
|
|
1587
1661
|
};
|
|
1588
1662
|
}
|
|
1589
1663
|
}
|
|
@@ -1614,7 +1688,7 @@ class HideColumnColumnsAlteration extends ColumnsAlteration {
|
|
|
1614
1688
|
type: this.type,
|
|
1615
1689
|
summary,
|
|
1616
1690
|
details,
|
|
1617
|
-
sortOrder: this._getColumnSortOrder()
|
|
1691
|
+
sortOrder: this._getColumnSortOrder(),
|
|
1618
1692
|
};
|
|
1619
1693
|
}
|
|
1620
1694
|
getDisplaySortOrder() {
|
|
@@ -1676,7 +1750,7 @@ class SortColumnsAlteration extends ColumnsAlteration {
|
|
|
1676
1750
|
type: this.type,
|
|
1677
1751
|
summary,
|
|
1678
1752
|
details,
|
|
1679
|
-
sortOrder: 0
|
|
1753
|
+
sortOrder: 0,
|
|
1680
1754
|
};
|
|
1681
1755
|
}
|
|
1682
1756
|
getDisplaySortOrder() {
|
|
@@ -1697,7 +1771,7 @@ class SortColumnsAlteration extends ColumnsAlteration {
|
|
|
1697
1771
|
if (this.state.sorts.length === 0) {
|
|
1698
1772
|
return 'No sorting';
|
|
1699
1773
|
}
|
|
1700
|
-
const sortDescriptions = this.state.sorts.map(sort => {
|
|
1774
|
+
const sortDescriptions = this.state.sorts.map((sort) => {
|
|
1701
1775
|
const direction = sort.dir === 'asc' ? '↑' : '↓';
|
|
1702
1776
|
return `${sort.prop} ${direction}`;
|
|
1703
1777
|
});
|
|
@@ -1744,7 +1818,7 @@ class WidthColumnsAlteration extends ColumnsAlteration {
|
|
|
1744
1818
|
type: this.type,
|
|
1745
1819
|
summary,
|
|
1746
1820
|
details,
|
|
1747
|
-
sortOrder: this._getColumnSortOrder()
|
|
1821
|
+
sortOrder: this._getColumnSortOrder(),
|
|
1748
1822
|
};
|
|
1749
1823
|
}
|
|
1750
1824
|
getDisplaySortOrder() {
|
|
@@ -1767,7 +1841,9 @@ class WidthColumnsAlteration extends ColumnsAlteration {
|
|
|
1767
1841
|
return true;
|
|
1768
1842
|
}
|
|
1769
1843
|
_createWidthSummary() {
|
|
1770
|
-
const widthText = notNullOrUndefined(this.state.width)
|
|
1844
|
+
const widthText = notNullOrUndefined(this.state.width)
|
|
1845
|
+
? `${this.state.width}px`
|
|
1846
|
+
: 'auto';
|
|
1771
1847
|
return `${this.state.columnProp}: ${widthText}`;
|
|
1772
1848
|
}
|
|
1773
1849
|
_createWidthDetails() {
|
|
@@ -1809,13 +1885,13 @@ class ColumnsAlterationsManagerService {
|
|
|
1809
1885
|
this._alterations = [...this._alterations, ...alterations];
|
|
1810
1886
|
const changes = [
|
|
1811
1887
|
...removed,
|
|
1812
|
-
...alterations.map(a => {
|
|
1888
|
+
...alterations.map((a) => {
|
|
1813
1889
|
const record = {
|
|
1814
1890
|
type: 'added',
|
|
1815
|
-
alteration: a
|
|
1891
|
+
alteration: a,
|
|
1816
1892
|
};
|
|
1817
1893
|
return record;
|
|
1818
|
-
})
|
|
1894
|
+
}),
|
|
1819
1895
|
];
|
|
1820
1896
|
if (notNullOrUndefined(options?.emitEvent) && !options?.emitEvent) {
|
|
1821
1897
|
return changes;
|
|
@@ -1826,12 +1902,12 @@ class ColumnsAlterationsManagerService {
|
|
|
1826
1902
|
remove(alterations, options) {
|
|
1827
1903
|
// console.log('remove', alterations)
|
|
1828
1904
|
const removed = [];
|
|
1829
|
-
this._alterations = this._alterations.filter(x => {
|
|
1830
|
-
const found = alterations.findIndex(y => y.id === x.id) !== -1;
|
|
1905
|
+
this._alterations = this._alterations.filter((x) => {
|
|
1906
|
+
const found = alterations.findIndex((y) => y.id === x.id) !== -1;
|
|
1831
1907
|
if (found) {
|
|
1832
1908
|
const eventRecord = {
|
|
1833
1909
|
type: 'removed',
|
|
1834
|
-
alteration: x
|
|
1910
|
+
alteration: x,
|
|
1835
1911
|
};
|
|
1836
1912
|
removed.push(eventRecord);
|
|
1837
1913
|
}
|
|
@@ -1895,7 +1971,7 @@ class ColumnsAlterationsManagerService {
|
|
|
1895
1971
|
return changes;
|
|
1896
1972
|
}
|
|
1897
1973
|
_removeNonPersistant() {
|
|
1898
|
-
const nonPersistent = this._alterations.filter(x => !x.persistent);
|
|
1974
|
+
const nonPersistent = this._alterations.filter((x) => !x.persistent);
|
|
1899
1975
|
this.remove(nonPersistent, { emitEvent: false });
|
|
1900
1976
|
}
|
|
1901
1977
|
_emitChanges(changes) {
|
|
@@ -1903,14 +1979,14 @@ class ColumnsAlterationsManagerService {
|
|
|
1903
1979
|
return;
|
|
1904
1980
|
}
|
|
1905
1981
|
const event = {
|
|
1906
|
-
changes
|
|
1982
|
+
changes,
|
|
1907
1983
|
};
|
|
1908
1984
|
this._changesSubject.next(event);
|
|
1909
1985
|
}
|
|
1910
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1911
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1986
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ColumnsAlterationsManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1987
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ColumnsAlterationsManagerService });
|
|
1912
1988
|
}
|
|
1913
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1989
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ColumnsAlterationsManagerService, decorators: [{
|
|
1914
1990
|
type: Injectable
|
|
1915
1991
|
}], ctorParameters: () => [] });
|
|
1916
1992
|
|
|
@@ -1945,7 +2021,7 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
1945
2021
|
searchType: operation,
|
|
1946
2022
|
searchText: null,
|
|
1947
2023
|
fromText: null,
|
|
1948
|
-
toText: null
|
|
2024
|
+
toText: null,
|
|
1949
2025
|
};
|
|
1950
2026
|
// Set values based on operation type
|
|
1951
2027
|
if (this._isRangeOperation(operation)) {
|
|
@@ -1973,7 +2049,7 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
1973
2049
|
type: this.type,
|
|
1974
2050
|
summary,
|
|
1975
2051
|
details,
|
|
1976
|
-
sortOrder: this._getColumnSortOrder()
|
|
2052
|
+
sortOrder: this._getColumnSortOrder(),
|
|
1977
2053
|
};
|
|
1978
2054
|
}
|
|
1979
2055
|
getDisplaySortOrder() {
|
|
@@ -1984,8 +2060,14 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
1984
2060
|
}
|
|
1985
2061
|
_isValueOperation(operation) {
|
|
1986
2062
|
const valueOperations = [
|
|
1987
|
-
'contains',
|
|
1988
|
-
'
|
|
2063
|
+
'contains',
|
|
2064
|
+
'ncontains',
|
|
2065
|
+
'eq',
|
|
2066
|
+
'neq', // text
|
|
2067
|
+
'gt',
|
|
2068
|
+
'lt',
|
|
2069
|
+
'gte',
|
|
2070
|
+
'lte', // numeric/date
|
|
1989
2071
|
];
|
|
1990
2072
|
return valueOperations.includes(operation);
|
|
1991
2073
|
}
|
|
@@ -2006,7 +2088,8 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
2006
2088
|
}
|
|
2007
2089
|
// Validate required values for operations
|
|
2008
2090
|
if (this._isRangeOperation(state.operation)) {
|
|
2009
|
-
if (!notNullOrUndefined(state.fromValue) ||
|
|
2091
|
+
if (!notNullOrUndefined(state.fromValue) ||
|
|
2092
|
+
!notNullOrUndefined(state.toValue)) {
|
|
2010
2093
|
throw new Error(`Range operation '${state.operation}' requires both fromValue and toValue`);
|
|
2011
2094
|
}
|
|
2012
2095
|
}
|
|
@@ -2018,9 +2101,36 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
2018
2101
|
return true;
|
|
2019
2102
|
}
|
|
2020
2103
|
_isValidOperationForFilterType(operation, filterType) {
|
|
2021
|
-
const textOperations = [
|
|
2022
|
-
|
|
2023
|
-
|
|
2104
|
+
const textOperations = [
|
|
2105
|
+
'contains',
|
|
2106
|
+
'ncontains',
|
|
2107
|
+
'eq',
|
|
2108
|
+
'neq',
|
|
2109
|
+
'blank',
|
|
2110
|
+
'not-blank',
|
|
2111
|
+
];
|
|
2112
|
+
const numericOperations = [
|
|
2113
|
+
'gt',
|
|
2114
|
+
'lt',
|
|
2115
|
+
'eq',
|
|
2116
|
+
'gte',
|
|
2117
|
+
'lte',
|
|
2118
|
+
'blank',
|
|
2119
|
+
'not-blank',
|
|
2120
|
+
'between',
|
|
2121
|
+
'not-between',
|
|
2122
|
+
];
|
|
2123
|
+
const dateOperations = [
|
|
2124
|
+
'lt',
|
|
2125
|
+
'lte',
|
|
2126
|
+
'gt',
|
|
2127
|
+
'gte',
|
|
2128
|
+
'eq',
|
|
2129
|
+
'blank',
|
|
2130
|
+
'not-blank',
|
|
2131
|
+
'between',
|
|
2132
|
+
'not-between',
|
|
2133
|
+
];
|
|
2024
2134
|
switch (filterType) {
|
|
2025
2135
|
case 'text':
|
|
2026
2136
|
return textOperations.includes(operation);
|
|
@@ -2051,7 +2161,7 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
2051
2161
|
const details = [
|
|
2052
2162
|
`Column: ${columnProp}`,
|
|
2053
2163
|
`Type: ${filterType}`,
|
|
2054
|
-
`Operation: ${this._getOperationDisplayName(operation)}
|
|
2164
|
+
`Operation: ${this._getOperationDisplayName(operation)}`,
|
|
2055
2165
|
];
|
|
2056
2166
|
if (this._isRangeOperation(operation)) {
|
|
2057
2167
|
details.push(`From: ${fromValue}`);
|
|
@@ -2064,31 +2174,31 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
2064
2174
|
}
|
|
2065
2175
|
_getOperationSymbol(operation) {
|
|
2066
2176
|
const symbols = {
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2177
|
+
contains: 'contains',
|
|
2178
|
+
ncontains: 'does not contain',
|
|
2179
|
+
eq: '=',
|
|
2180
|
+
neq: '≠',
|
|
2181
|
+
gt: '>',
|
|
2182
|
+
lt: '<',
|
|
2183
|
+
gte: '≥',
|
|
2184
|
+
lte: '≤',
|
|
2075
2185
|
};
|
|
2076
2186
|
return symbols[operation] || operation;
|
|
2077
2187
|
}
|
|
2078
2188
|
_getOperationDisplayName(operation) {
|
|
2079
2189
|
const names = {
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2190
|
+
contains: 'Contains',
|
|
2191
|
+
ncontains: 'Does not contain',
|
|
2192
|
+
eq: 'Equals',
|
|
2193
|
+
neq: 'Not equals',
|
|
2194
|
+
gt: 'Greater than',
|
|
2195
|
+
lt: 'Less than',
|
|
2196
|
+
gte: 'Greater than or equal',
|
|
2197
|
+
lte: 'Less than or equal',
|
|
2198
|
+
blank: 'Is blank',
|
|
2089
2199
|
'not-blank': 'Is not blank',
|
|
2090
|
-
|
|
2091
|
-
'not-between': 'Not between'
|
|
2200
|
+
between: 'Between',
|
|
2201
|
+
'not-between': 'Not between',
|
|
2092
2202
|
};
|
|
2093
2203
|
return names[operation] || operation;
|
|
2094
2204
|
}
|
|
@@ -2104,10 +2214,10 @@ class FilterColumnsAlteration extends ColumnsAlteration {
|
|
|
2104
2214
|
*/
|
|
2105
2215
|
const INTERNAL_COLUMN_PROPS = [
|
|
2106
2216
|
ACTION_MENU_COLUMN_PROP,
|
|
2107
|
-
CHECKBOX_COLUMN_PROP
|
|
2217
|
+
CHECKBOX_COLUMN_PROP,
|
|
2108
2218
|
];
|
|
2109
2219
|
function isInternalColumn(column) {
|
|
2110
|
-
return INTERNAL_COLUMN_PROPS.findIndex(p => getColumnProp(column) === p) !== -1;
|
|
2220
|
+
return (INTERNAL_COLUMN_PROPS.findIndex((p) => getColumnProp(column) === p) !== -1);
|
|
2111
2221
|
}
|
|
2112
2222
|
|
|
2113
2223
|
class OrderColumnsAlteration extends ColumnsAlteration {
|
|
@@ -2134,9 +2244,9 @@ class OrderColumnsAlteration extends ColumnsAlteration {
|
|
|
2134
2244
|
// to be changed.
|
|
2135
2245
|
const internalColumns = columns
|
|
2136
2246
|
.map((column, index) => ({ column, index }))
|
|
2137
|
-
.filter(x => isInternalColumn(x.column));
|
|
2247
|
+
.filter((x) => isInternalColumn(x.column));
|
|
2138
2248
|
for (const c of stateColumns) {
|
|
2139
|
-
const currentIndex = columns.findIndex(x => getColumnProp(x) === c.columnProp);
|
|
2249
|
+
const currentIndex = columns.findIndex((x) => getColumnProp(x) === c.columnProp);
|
|
2140
2250
|
if (currentIndex === c.index || currentIndex === -1) {
|
|
2141
2251
|
// Skip if already at correct index.
|
|
2142
2252
|
// Skip columns not found. It may be a column that was removed from the
|
|
@@ -2146,7 +2256,7 @@ class OrderColumnsAlteration extends ColumnsAlteration {
|
|
|
2146
2256
|
arrayMoveMutable(columns, currentIndex, c.index);
|
|
2147
2257
|
}
|
|
2148
2258
|
for (const c of internalColumns) {
|
|
2149
|
-
const currentIndex = columns.findIndex(col => col === c.column);
|
|
2259
|
+
const currentIndex = columns.findIndex((col) => col === c.column);
|
|
2150
2260
|
if (currentIndex !== -1) {
|
|
2151
2261
|
arrayMoveMutable(columns, currentIndex, c.index);
|
|
2152
2262
|
}
|
|
@@ -2166,7 +2276,7 @@ class OrderColumnsAlteration extends ColumnsAlteration {
|
|
|
2166
2276
|
type: this.type,
|
|
2167
2277
|
summary,
|
|
2168
2278
|
details,
|
|
2169
|
-
sortOrder: 0
|
|
2279
|
+
sortOrder: 0,
|
|
2170
2280
|
};
|
|
2171
2281
|
}
|
|
2172
2282
|
getDisplaySortOrder() {
|
|
@@ -2187,10 +2297,12 @@ class OrderColumnsAlteration extends ColumnsAlteration {
|
|
|
2187
2297
|
return true;
|
|
2188
2298
|
}
|
|
2189
2299
|
_isColumnOrderRecordValid(columnOrder) {
|
|
2190
|
-
return notNullOrUndefined(columnOrder.columnProp) &&
|
|
2300
|
+
return (notNullOrUndefined(columnOrder.columnProp) &&
|
|
2301
|
+
notNullOrUndefined(columnOrder.index));
|
|
2191
2302
|
}
|
|
2192
2303
|
_stateColumns() {
|
|
2193
|
-
return this.state.columns
|
|
2304
|
+
return this.state.columns
|
|
2305
|
+
.filter((c) => {
|
|
2194
2306
|
if (!this._isColumnOrderRecordValid(c)) {
|
|
2195
2307
|
if (isDevMode()) {
|
|
2196
2308
|
// eslint-disable-next-line no-console
|
|
@@ -2199,7 +2311,8 @@ class OrderColumnsAlteration extends ColumnsAlteration {
|
|
|
2199
2311
|
return false;
|
|
2200
2312
|
}
|
|
2201
2313
|
return true;
|
|
2202
|
-
})
|
|
2314
|
+
})
|
|
2315
|
+
.sort((a, b) => (a.index === b.index ? 0 : a.index > b.index ? 1 : -1));
|
|
2203
2316
|
}
|
|
2204
2317
|
_createOrderSummary() {
|
|
2205
2318
|
if (this.state.columns.length === 0) {
|
|
@@ -2213,7 +2326,7 @@ class OrderColumnsAlteration extends ColumnsAlteration {
|
|
|
2213
2326
|
return ['Columns are in their default order'];
|
|
2214
2327
|
}
|
|
2215
2328
|
const sortedColumns = this._stateColumns();
|
|
2216
|
-
return sortedColumns.map(col => `${col.columnProp}: Position ${col.index + 1}`);
|
|
2329
|
+
return sortedColumns.map((col) => `${col.columnProp}: Position ${col.index + 1}`);
|
|
2217
2330
|
}
|
|
2218
2331
|
}
|
|
2219
2332
|
|
|
@@ -2257,9 +2370,14 @@ function mapColumnsAlterationsStates(states) {
|
|
|
2257
2370
|
return alterations;
|
|
2258
2371
|
}
|
|
2259
2372
|
|
|
2260
|
-
const ActionItemColumnPosition = [
|
|
2373
|
+
const ActionItemColumnPosition = [
|
|
2374
|
+
'frozenLeft',
|
|
2375
|
+
'frozenRight',
|
|
2376
|
+
'staticLeft',
|
|
2377
|
+
'staticRight',
|
|
2378
|
+
];
|
|
2261
2379
|
function isActionItemColumnPosition(input) {
|
|
2262
|
-
return ActionItemColumnPosition.indexOf(input)
|
|
2380
|
+
return (ActionItemColumnPosition.indexOf(input) !== -1);
|
|
2263
2381
|
}
|
|
2264
2382
|
|
|
2265
2383
|
const THESEAM_DATATABLE_CONFIG = new InjectionToken('TheSeamDatatableConfig');
|
|
@@ -2269,14 +2387,14 @@ class DatatableColumnFilterTplDirective {
|
|
|
2269
2387
|
constructor(template) {
|
|
2270
2388
|
this.template = template;
|
|
2271
2389
|
}
|
|
2272
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2273
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
2390
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnFilterTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2391
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: DatatableColumnFilterTplDirective, isStandalone: false, selector: "[seamDatatableColumnFilterTpl]", ngImport: i0 });
|
|
2274
2392
|
}
|
|
2275
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2393
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnFilterTplDirective, decorators: [{
|
|
2276
2394
|
type: Directive,
|
|
2277
2395
|
args: [{
|
|
2278
2396
|
selector: '[seamDatatableColumnFilterTpl]',
|
|
2279
|
-
standalone: false
|
|
2397
|
+
standalone: false,
|
|
2280
2398
|
}]
|
|
2281
2399
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
2282
2400
|
|
|
@@ -2288,15 +2406,15 @@ class TheSeamDatatableColumnFilterDirective {
|
|
|
2288
2406
|
get template() {
|
|
2289
2407
|
return this._templateInput || this._templateQuery;
|
|
2290
2408
|
}
|
|
2291
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2292
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
2409
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamDatatableColumnFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2410
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", 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
2411
|
}
|
|
2294
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2412
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamDatatableColumnFilterDirective, decorators: [{
|
|
2295
2413
|
type: Directive,
|
|
2296
2414
|
args: [{
|
|
2297
2415
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
2298
2416
|
selector: 'seam-datatable-column-filter',
|
|
2299
|
-
standalone: false
|
|
2417
|
+
standalone: false,
|
|
2300
2418
|
}]
|
|
2301
2419
|
}], propDecorators: { filterName: [{
|
|
2302
2420
|
type: Input
|
|
@@ -2305,13 +2423,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
2305
2423
|
args: ['template']
|
|
2306
2424
|
}], _templateQuery: [{
|
|
2307
2425
|
type: ContentChild,
|
|
2308
|
-
args: [DatatableColumnFilterTplDirective, {
|
|
2426
|
+
args: [DatatableColumnFilterTplDirective, {
|
|
2427
|
+
read: TemplateRef,
|
|
2428
|
+
static: true,
|
|
2429
|
+
}]
|
|
2309
2430
|
}] } });
|
|
2310
2431
|
|
|
2311
2432
|
const CURRENT_DATATABLE_PREFERENCES_VERSION = 2;
|
|
2312
2433
|
const EMPTY_DATATABLE_PREFERENCES = {
|
|
2313
2434
|
version: 2,
|
|
2314
|
-
alterations: []
|
|
2435
|
+
alterations: [],
|
|
2315
2436
|
};
|
|
2316
2437
|
|
|
2317
2438
|
const THESEAM_DATATABLE_PREFERENCES_ACCESSOR = new InjectionToken('TheSeamDatatablePreferencesAccessor');
|
|
@@ -2343,7 +2464,9 @@ class DatatablePreferencesService {
|
|
|
2343
2464
|
if (!this._prefsAccessor) {
|
|
2344
2465
|
return of(JSON.parse(JSON.stringify(EMPTY_DATATABLE_PREFERENCES)));
|
|
2345
2466
|
}
|
|
2346
|
-
return this._preferencesManager
|
|
2467
|
+
return this._preferencesManager
|
|
2468
|
+
.preferences(preferenceKey, this._prefsAccessor, EMPTY_DATATABLE_PREFERENCES)
|
|
2469
|
+
.pipe(map((prefs) => {
|
|
2347
2470
|
if (this._isValidDatatablePreferences(prefs)) {
|
|
2348
2471
|
return prefs;
|
|
2349
2472
|
}
|
|
@@ -2358,7 +2481,8 @@ class DatatablePreferencesService {
|
|
|
2358
2481
|
return;
|
|
2359
2482
|
}
|
|
2360
2483
|
this._pending = true;
|
|
2361
|
-
this.preferences(preferenceKey)
|
|
2484
|
+
this.preferences(preferenceKey)
|
|
2485
|
+
.pipe(map((prefs) => {
|
|
2362
2486
|
// Making the preferences immutable may not be necessary, but for now
|
|
2363
2487
|
// this obj->str->obj will work as a naive clone.
|
|
2364
2488
|
// const columns = JSON.parse(JSON.stringify(prefs.columns || []))
|
|
@@ -2376,13 +2500,13 @@ class DatatablePreferencesService {
|
|
|
2376
2500
|
// return newPrefs
|
|
2377
2501
|
const newPrefs = {
|
|
2378
2502
|
...EMPTY_DATATABLE_PREFERENCES,
|
|
2379
|
-
alterations
|
|
2503
|
+
alterations,
|
|
2380
2504
|
};
|
|
2381
2505
|
this._pending = false;
|
|
2382
2506
|
return newPrefs;
|
|
2383
2507
|
}),
|
|
2384
2508
|
// tap(v => console.log('newPrefs', v)),
|
|
2385
|
-
take(1), switchMap(newPrefs => this._prefsAccessor
|
|
2509
|
+
take(1), switchMap((newPrefs) => this._prefsAccessor
|
|
2386
2510
|
? this._prefsAccessor.update(preferenceKey, JSON.stringify(newPrefs))
|
|
2387
2511
|
: of(newPrefs)), tap(() => this.refresh(preferenceKey)))
|
|
2388
2512
|
.subscribe();
|
|
@@ -2390,13 +2514,13 @@ class DatatablePreferencesService {
|
|
|
2390
2514
|
_isValidDatatablePreferences(prefs) {
|
|
2391
2515
|
return prefs.version === CURRENT_DATATABLE_PREFERENCES_VERSION;
|
|
2392
2516
|
}
|
|
2393
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2394
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
2517
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatablePreferencesService, deps: [{ token: i1$1.TheSeamPreferencesManagerService }, { token: THESEAM_DATATABLE_PREFERENCES_ACCESSOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2518
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatablePreferencesService, providedIn: 'root' });
|
|
2395
2519
|
}
|
|
2396
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2520
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatablePreferencesService, decorators: [{
|
|
2397
2521
|
type: Injectable,
|
|
2398
2522
|
args: [{
|
|
2399
|
-
providedIn: 'root'
|
|
2523
|
+
providedIn: 'root',
|
|
2400
2524
|
}]
|
|
2401
2525
|
}], ctorParameters: () => [{ type: i1$1.TheSeamPreferencesManagerService }, { type: undefined, decorators: [{
|
|
2402
2526
|
type: Optional
|
|
@@ -2417,24 +2541,24 @@ class DatatableColumnFilterSearchTextComponent {
|
|
|
2417
2541
|
filterForm;
|
|
2418
2542
|
showTextbox$;
|
|
2419
2543
|
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 || '')));
|
|
2544
|
+
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
2545
|
}
|
|
2422
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2423
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
2546
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnFilterSearchTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2547
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: DatatableColumnFilterSearchTextComponent, isStandalone: false, 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: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.TheSeamAutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i2$2.TheSeamNgSelectExtraDirective, selector: "ng-select", exportAs: ["seamNgSelectExtra"] }, { kind: "component", type: i3.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i3.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: i4$1.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: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5$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", "bindLabel", "bindValue", "appearance", "isOpen", "items", "keyDownFn"], outputs: ["bindLabelChange", "bindValueChange", "appearanceChange", "isOpenChange", "blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], viewProviders: [
|
|
2424
2548
|
{
|
|
2425
2549
|
provide: ControlContainer,
|
|
2426
|
-
useExisting: FormGroupDirective
|
|
2427
|
-
}
|
|
2550
|
+
useExisting: FormGroupDirective,
|
|
2551
|
+
},
|
|
2428
2552
|
] });
|
|
2429
2553
|
}
|
|
2430
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2554
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnFilterSearchTextComponent, decorators: [{
|
|
2431
2555
|
type: Component,
|
|
2432
2556
|
args: [{ selector: 'seam-datatable-column-filter-search-text', viewProviders: [
|
|
2433
2557
|
{
|
|
2434
2558
|
provide: ControlContainer,
|
|
2435
|
-
useExisting: FormGroupDirective
|
|
2436
|
-
}
|
|
2437
|
-
], standalone: false, 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\"></ng-select>\n </seam-form-field>\n <ng-container *ngIf=\"showTextbox$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input
|
|
2559
|
+
useExisting: FormGroupDirective,
|
|
2560
|
+
},
|
|
2561
|
+
], standalone: false, 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
2562
|
}], propDecorators: { filterForm: [{
|
|
2439
2563
|
type: Input
|
|
2440
2564
|
}] } });
|
|
@@ -2455,25 +2579,27 @@ class DatatableColumnFilterSearchNumericComponent {
|
|
|
2455
2579
|
showSearchInput$;
|
|
2456
2580
|
showRangeInputs$;
|
|
2457
2581
|
ngOnInit() {
|
|
2458
|
-
this.showSearchInput$ =
|
|
2459
|
-
|
|
2582
|
+
this.showSearchInput$ =
|
|
2583
|
+
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 || '')));
|
|
2584
|
+
this.showRangeInputs$ =
|
|
2585
|
+
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
2586
|
}
|
|
2461
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2462
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
2587
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnFilterSearchNumericComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2588
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: DatatableColumnFilterSearchNumericComponent, isStandalone: false, 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: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.TheSeamAutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i2$2.TheSeamNgSelectExtraDirective, selector: "ng-select", exportAs: ["seamNgSelectExtra"] }, { kind: "component", type: i3.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i3.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: i4$1.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: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5$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", "bindLabel", "bindValue", "appearance", "isOpen", "items", "keyDownFn"], outputs: ["bindLabelChange", "bindValueChange", "appearanceChange", "isOpenChange", "blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], viewProviders: [
|
|
2463
2589
|
{
|
|
2464
2590
|
provide: ControlContainer,
|
|
2465
|
-
useExisting: FormGroupDirective
|
|
2466
|
-
}
|
|
2591
|
+
useExisting: FormGroupDirective,
|
|
2592
|
+
},
|
|
2467
2593
|
] });
|
|
2468
2594
|
}
|
|
2469
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2595
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnFilterSearchNumericComponent, decorators: [{
|
|
2470
2596
|
type: Component,
|
|
2471
2597
|
args: [{ selector: 'seam-datatable-column-filter-search-numeric', viewProviders: [
|
|
2472
2598
|
{
|
|
2473
2599
|
provide: ControlContainer,
|
|
2474
|
-
useExisting: FormGroupDirective
|
|
2475
|
-
}
|
|
2476
|
-
], standalone: false, 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\"></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input
|
|
2600
|
+
useExisting: FormGroupDirective,
|
|
2601
|
+
},
|
|
2602
|
+
], standalone: false, 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
2603
|
}], propDecorators: { filterForm: [{
|
|
2478
2604
|
type: Input
|
|
2479
2605
|
}] } });
|
|
@@ -2499,25 +2625,27 @@ class DatatableColumnFilterSearchDateComponent {
|
|
|
2499
2625
|
if (notNullOrUndefined(this.options?.dateType)) {
|
|
2500
2626
|
this.dateFormat = this.options?.dateType;
|
|
2501
2627
|
}
|
|
2502
|
-
this.showSearchInput$ =
|
|
2503
|
-
|
|
2628
|
+
this.showSearchInput$ =
|
|
2629
|
+
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 || '')));
|
|
2630
|
+
this.showRangeInputs$ =
|
|
2631
|
+
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
2632
|
}
|
|
2505
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2506
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
2633
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnFilterSearchDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2634
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: DatatableColumnFilterSearchDateComponent, isStandalone: false, 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: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.TheSeamAutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i2$2.TheSeamNgSelectExtraDirective, selector: "ng-select", exportAs: ["seamNgSelectExtra"] }, { kind: "component", type: i3.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i3.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: i4$1.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: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5$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", "bindLabel", "bindValue", "appearance", "isOpen", "items", "keyDownFn"], outputs: ["bindLabelChange", "bindValueChange", "appearanceChange", "isOpenChange", "blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], viewProviders: [
|
|
2507
2635
|
{
|
|
2508
2636
|
provide: ControlContainer,
|
|
2509
|
-
useExisting: FormGroupDirective
|
|
2510
|
-
}
|
|
2637
|
+
useExisting: FormGroupDirective,
|
|
2638
|
+
},
|
|
2511
2639
|
] });
|
|
2512
2640
|
}
|
|
2513
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2641
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnFilterSearchDateComponent, decorators: [{
|
|
2514
2642
|
type: Component,
|
|
2515
2643
|
args: [{ selector: 'seam-datatable-column-filter-search-date', viewProviders: [
|
|
2516
2644
|
{
|
|
2517
2645
|
provide: ControlContainer,
|
|
2518
|
-
useExisting: FormGroupDirective
|
|
2519
|
-
}
|
|
2520
|
-
], standalone: false, 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\"></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input
|
|
2646
|
+
useExisting: FormGroupDirective,
|
|
2647
|
+
},
|
|
2648
|
+
], standalone: false, 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
2649
|
}], propDecorators: { options: [{
|
|
2522
2650
|
type: Input
|
|
2523
2651
|
}], filterForm: [{
|
|
@@ -2543,9 +2671,13 @@ class DatatableColumnFilterMenuComponent {
|
|
|
2543
2671
|
if (notNullOrUndefined(this.columnFilter)) {
|
|
2544
2672
|
this._filterForm = this.columnFilter.form;
|
|
2545
2673
|
}
|
|
2546
|
-
this.customFilterTemplate$ =
|
|
2547
|
-
|
|
2548
|
-
|
|
2674
|
+
this.customFilterTemplate$ =
|
|
2675
|
+
this._columnsFilters.columnFilterTemplates$.pipe(map$1((templates) => templates.find((t) => t.filterName === this.columnFilter?.name)));
|
|
2676
|
+
if (this.updateMethod === 'valueChanges' &&
|
|
2677
|
+
notNullOrUndefined(this._filterForm)) {
|
|
2678
|
+
this._filterForm.valueChanges
|
|
2679
|
+
.pipe(debounceTime(this.debounce || 0), tap$1(() => this.columnFilter?.applyFilter()))
|
|
2680
|
+
.subscribe();
|
|
2549
2681
|
}
|
|
2550
2682
|
}
|
|
2551
2683
|
submit() {
|
|
@@ -2555,15 +2687,15 @@ class DatatableColumnFilterMenuComponent {
|
|
|
2555
2687
|
clearFilter() {
|
|
2556
2688
|
this.columnFilter?.clearFilter();
|
|
2557
2689
|
}
|
|
2558
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2559
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
2690
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnFilterMenuComponent, deps: [{ token: ColumnsFiltersService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2691
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: DatatableColumnFilterMenuComponent, isStandalone: false, 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: "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: "component", type: i3$1.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }, { kind: "directive", type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { 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
2692
|
}
|
|
2561
2693
|
__decorate([
|
|
2562
2694
|
InputNumber()
|
|
2563
2695
|
], DatatableColumnFilterMenuComponent.prototype, "debounce", void 0);
|
|
2564
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2696
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnFilterMenuComponent, decorators: [{
|
|
2565
2697
|
type: Component,
|
|
2566
|
-
args: [{ selector: 'seam-datatable-column-filter-menu', standalone: false, 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
|
|
2698
|
+
args: [{ selector: 'seam-datatable-column-filter-menu', standalone: false, 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
2699
|
}], ctorParameters: () => [{ type: ColumnsFiltersService }], propDecorators: { column: [{
|
|
2568
2700
|
type: Input
|
|
2569
2701
|
}], updateMethod: [{
|
|
@@ -2580,12 +2712,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
2580
2712
|
const THESEAM_DATATABLE = new InjectionToken('LibDatatable');
|
|
2581
2713
|
const _THESEAM_DATATABLE = {
|
|
2582
2714
|
provide: THESEAM_DATATABLE,
|
|
2583
|
-
useExisting: forwardRef(() => DatatableComponent)
|
|
2715
|
+
useExisting: forwardRef(() => DatatableComponent),
|
|
2584
2716
|
};
|
|
2585
2717
|
const _THESEAM_DATATABLE_ACCESSOR = {
|
|
2586
2718
|
provide: THESEAM_DATATABLE_ACCESSOR,
|
|
2587
|
-
|
|
2588
|
-
useExisting: forwardRef(() => DatatableComponent)
|
|
2719
|
+
useExisting: forwardRef(() => DatatableComponent),
|
|
2589
2720
|
};
|
|
2590
2721
|
class DatatableComponent {
|
|
2591
2722
|
_preferences;
|
|
@@ -2626,18 +2757,24 @@ class DatatableComponent {
|
|
|
2626
2757
|
get filters() {
|
|
2627
2758
|
return [
|
|
2628
2759
|
...this._menuBarsFiltersSubject.value,
|
|
2629
|
-
...this._columnsFilters.filters()
|
|
2760
|
+
...this._columnsFilters.filters(),
|
|
2630
2761
|
];
|
|
2631
2762
|
}
|
|
2632
2763
|
filters$;
|
|
2633
|
-
get preferencesKey() {
|
|
2634
|
-
|
|
2764
|
+
get preferencesKey() {
|
|
2765
|
+
return this._preferencesKey.value;
|
|
2766
|
+
}
|
|
2767
|
+
set preferencesKey(value) {
|
|
2768
|
+
this._preferencesKey.next(value || undefined);
|
|
2769
|
+
}
|
|
2635
2770
|
_preferencesKey = new BehaviorSubject(undefined);
|
|
2636
2771
|
targetMarkerTemplate;
|
|
2637
2772
|
set columns(value) {
|
|
2638
2773
|
this._columnsManager.setInputColumns(Array.isArray(value) ? value : []);
|
|
2639
2774
|
}
|
|
2640
|
-
get rows() {
|
|
2775
|
+
get rows() {
|
|
2776
|
+
return this._rows.value;
|
|
2777
|
+
}
|
|
2641
2778
|
set rows(value) {
|
|
2642
2779
|
this._rows.next(value || []);
|
|
2643
2780
|
}
|
|
@@ -2654,15 +2791,20 @@ class DatatableComponent {
|
|
|
2654
2791
|
count = 0;
|
|
2655
2792
|
offset = 0;
|
|
2656
2793
|
loadingIndicator = false;
|
|
2657
|
-
get selectionType() {
|
|
2794
|
+
get selectionType() {
|
|
2795
|
+
return this._columnsManager.getSelectionType();
|
|
2796
|
+
}
|
|
2658
2797
|
set selectionType(value) {
|
|
2659
2798
|
this._columnsManager.setSelectionType(notNullOrUndefined(value) ? value : undefined);
|
|
2660
2799
|
}
|
|
2661
2800
|
reorderable = true;
|
|
2662
2801
|
swapColumns = false;
|
|
2663
|
-
get sortType() {
|
|
2802
|
+
get sortType() {
|
|
2803
|
+
return this._sortType;
|
|
2804
|
+
}
|
|
2664
2805
|
set sortType(value) {
|
|
2665
|
-
if (notNullOrUndefined(value) &&
|
|
2806
|
+
if (notNullOrUndefined(value) &&
|
|
2807
|
+
(value === SortType.single || value === SortType.multi)) {
|
|
2666
2808
|
this._sortType = value;
|
|
2667
2809
|
}
|
|
2668
2810
|
else {
|
|
@@ -2697,7 +2839,7 @@ class DatatableComponent {
|
|
|
2697
2839
|
pagerLeftArrow: 'datatable-icon-left',
|
|
2698
2840
|
pagerRightArrow: 'datatable-icon-right',
|
|
2699
2841
|
pagerPrevious: 'datatable-icon-prev',
|
|
2700
|
-
pagerNext: 'datatable-icon-skip'
|
|
2842
|
+
pagerNext: 'datatable-icon-skip',
|
|
2701
2843
|
};
|
|
2702
2844
|
_cssClasses;
|
|
2703
2845
|
get messages() {
|
|
@@ -2710,7 +2852,7 @@ class DatatableComponent {
|
|
|
2710
2852
|
else if (notNullOrUndefined(this._config?.messages)) {
|
|
2711
2853
|
this._messages = {
|
|
2712
2854
|
...this._messagesDefault,
|
|
2713
|
-
...this._config?.messages
|
|
2855
|
+
...this._config?.messages,
|
|
2714
2856
|
};
|
|
2715
2857
|
}
|
|
2716
2858
|
else {
|
|
@@ -2724,7 +2866,7 @@ class DatatableComponent {
|
|
|
2724
2866
|
// Footer total message
|
|
2725
2867
|
totalMessage: 'total',
|
|
2726
2868
|
// Footer selected message
|
|
2727
|
-
selectedMessage: 'selected'
|
|
2869
|
+
selectedMessage: 'selected',
|
|
2728
2870
|
};
|
|
2729
2871
|
_messages;
|
|
2730
2872
|
rowIdentity = (x) => x;
|
|
@@ -2801,12 +2943,15 @@ class DatatableComponent {
|
|
|
2801
2943
|
*
|
|
2802
2944
|
* Defaults to `frozenRight`.
|
|
2803
2945
|
*/
|
|
2804
|
-
get actionItemColumnPosition() {
|
|
2946
|
+
get actionItemColumnPosition() {
|
|
2947
|
+
return this._actionItemColumnPosition;
|
|
2948
|
+
}
|
|
2805
2949
|
set actionItemColumnPosition(value) {
|
|
2806
2950
|
if (notNullOrUndefined(value) && isActionItemColumnPosition(value)) {
|
|
2807
2951
|
this._actionItemColumnPosition = value;
|
|
2808
2952
|
}
|
|
2809
|
-
else if (notNullOrUndefined(this._config?.actionItemColumnPosition) &&
|
|
2953
|
+
else if (notNullOrUndefined(this._config?.actionItemColumnPosition) &&
|
|
2954
|
+
isActionItemColumnPosition(this._config?.actionItemColumnPosition)) {
|
|
2810
2955
|
this._actionItemColumnPosition = this._config?.actionItemColumnPosition;
|
|
2811
2956
|
}
|
|
2812
2957
|
else {
|
|
@@ -2856,7 +3001,8 @@ class DatatableComponent {
|
|
|
2856
3001
|
this._columnFilterUpdateDebounce = value;
|
|
2857
3002
|
}
|
|
2858
3003
|
else if (notNullOrUndefined(this._config?.columnFilterUpdateDebounce)) {
|
|
2859
|
-
this._columnFilterUpdateDebounce =
|
|
3004
|
+
this._columnFilterUpdateDebounce =
|
|
3005
|
+
this._config?.columnFilterUpdateDebounce;
|
|
2860
3006
|
}
|
|
2861
3007
|
else {
|
|
2862
3008
|
this._columnFilterUpdateDebounce = this._columnFilterUpdateDebounceDefault;
|
|
@@ -2882,7 +3028,9 @@ class DatatableComponent {
|
|
|
2882
3028
|
this._columnsManager.setTemplateColumns(translateTemplateColumns(value?.toArray() ?? []));
|
|
2883
3029
|
}
|
|
2884
3030
|
actionMenu;
|
|
2885
|
-
get rowActionItem() {
|
|
3031
|
+
get rowActionItem() {
|
|
3032
|
+
return this._rowActionItem;
|
|
3033
|
+
}
|
|
2886
3034
|
set rowActionItem(value) {
|
|
2887
3035
|
this._rowActionItem = value;
|
|
2888
3036
|
this._columnsManager.setRowActionItem(notNullOrUndefined(value) ? value : undefined);
|
|
@@ -2890,7 +3038,9 @@ class DatatableComponent {
|
|
|
2890
3038
|
_rowActionItem;
|
|
2891
3039
|
rowDetail;
|
|
2892
3040
|
footer;
|
|
2893
|
-
get menuBarComponent() {
|
|
3041
|
+
get menuBarComponent() {
|
|
3042
|
+
return this._menuBarComponent;
|
|
3043
|
+
}
|
|
2894
3044
|
set menuBarComponent(value) {
|
|
2895
3045
|
this._menuBarComponent = value;
|
|
2896
3046
|
if (this._menuBarSub) {
|
|
@@ -2898,8 +3048,9 @@ class DatatableComponent {
|
|
|
2898
3048
|
}
|
|
2899
3049
|
if (value) {
|
|
2900
3050
|
this._setMenuBarFilters(value.filters());
|
|
2901
|
-
this._menuBarSub = this._menuBarComponent?.filtersChanged
|
|
2902
|
-
|
|
3051
|
+
this._menuBarSub = this._menuBarComponent?.filtersChanged.subscribe(() => {
|
|
3052
|
+
this._setMenuBarFilters(value.filters());
|
|
3053
|
+
});
|
|
2903
3054
|
}
|
|
2904
3055
|
}
|
|
2905
3056
|
_menuBarComponent;
|
|
@@ -2910,31 +3061,41 @@ class DatatableComponent {
|
|
|
2910
3061
|
ngxDatatable;
|
|
2911
3062
|
ngxDatatableElement;
|
|
2912
3063
|
ngxRowDetail;
|
|
2913
|
-
get actionMenuCellTpl() {
|
|
3064
|
+
get actionMenuCellTpl() {
|
|
3065
|
+
return this._actionMenuCellTpl;
|
|
3066
|
+
}
|
|
2914
3067
|
set actionMenuCellTpl(value) {
|
|
2915
3068
|
this._actionMenuCellTpl = value;
|
|
2916
3069
|
this._columnsManager.setActionMenuCellTpl(notNullOrUndefined(value) ? value : undefined);
|
|
2917
3070
|
}
|
|
2918
3071
|
_actionMenuCellTpl;
|
|
2919
|
-
get treeToggleTpl() {
|
|
3072
|
+
get treeToggleTpl() {
|
|
3073
|
+
return this._treeToggleTpl;
|
|
3074
|
+
}
|
|
2920
3075
|
set treeToggleTpl(value) {
|
|
2921
3076
|
this._treeToggleTpl = value;
|
|
2922
3077
|
this._columnsManager.setTreeToggleTpl(notNullOrUndefined(value) ? value : undefined);
|
|
2923
3078
|
}
|
|
2924
3079
|
_treeToggleTpl;
|
|
2925
|
-
get headerTpl() {
|
|
3080
|
+
get headerTpl() {
|
|
3081
|
+
return this._headerTpl;
|
|
3082
|
+
}
|
|
2926
3083
|
set headerTpl(value) {
|
|
2927
3084
|
this._headerTpl = value;
|
|
2928
3085
|
this._columnsManager.setHeaderTpl(notNullOrUndefined(value) ? value : undefined);
|
|
2929
3086
|
}
|
|
2930
3087
|
_headerTpl;
|
|
2931
|
-
get blankHeaderTpl() {
|
|
3088
|
+
get blankHeaderTpl() {
|
|
3089
|
+
return this._blankHeaderTpl;
|
|
3090
|
+
}
|
|
2932
3091
|
set blankHeaderTpl(value) {
|
|
2933
3092
|
this._blankHeaderTpl = value;
|
|
2934
3093
|
this._columnsManager.setBlankHeaderTpl(notNullOrUndefined(value) ? value : undefined);
|
|
2935
3094
|
}
|
|
2936
3095
|
_blankHeaderTpl;
|
|
2937
|
-
get cellTypeSelectorTpl() {
|
|
3096
|
+
get cellTypeSelectorTpl() {
|
|
3097
|
+
return this._cellTypeSelectorTpl;
|
|
3098
|
+
}
|
|
2938
3099
|
set cellTypeSelectorTpl(value) {
|
|
2939
3100
|
this._cellTypeSelectorTpl = value;
|
|
2940
3101
|
this._columnsManager.setCellTypeSelectorTpl(notNullOrUndefined(value) ? value : undefined);
|
|
@@ -2958,8 +3119,8 @@ class DatatableComponent {
|
|
|
2958
3119
|
const id = event.target.parentElement
|
|
2959
3120
|
?.querySelector('.datatable-column-header-separator')
|
|
2960
3121
|
?.getAttribute('data-column-id');
|
|
2961
|
-
this._columnsManager.columns$.pipe(take(1)).subscribe(columns => {
|
|
2962
|
-
const column = columns.find(c => c.$$id === id);
|
|
3122
|
+
this._columnsManager.columns$.pipe(take(1)).subscribe((columns) => {
|
|
3123
|
+
const column = columns.find((c) => c.$$id === id);
|
|
2963
3124
|
if (column) {
|
|
2964
3125
|
const columnProp = getColumnProp(column);
|
|
2965
3126
|
if (columnProp) {
|
|
@@ -2977,28 +3138,35 @@ class DatatableComponent {
|
|
|
2977
3138
|
this._columnsAlterationsManager = _columnsAlterationsManager;
|
|
2978
3139
|
this._columnsFilters = _columnsFilters;
|
|
2979
3140
|
this._config = _config;
|
|
2980
|
-
this._preferencesKey
|
|
3141
|
+
this._preferencesKey
|
|
3142
|
+
.pipe(distinctUntilChanged(), switchMap((key) => {
|
|
2981
3143
|
if (!notNullOrUndefined(key) || key.length === 0) {
|
|
2982
3144
|
return of(undefined);
|
|
2983
3145
|
}
|
|
2984
3146
|
return from(waitOnConditionAsync(() => this._preferences.isLoaded(key))).pipe(switchMap(() => this._columnsAlterationsManager.changes.pipe(startWith(undefined), tap(() => {
|
|
2985
|
-
console.log(
|
|
3147
|
+
// console.log(
|
|
3148
|
+
// '%cSaving columns alterations to preferences',
|
|
3149
|
+
// 'color: blue',
|
|
3150
|
+
// this._columnsAlterationsManager.get(),
|
|
3151
|
+
// )
|
|
2986
3152
|
this._preferences.setAlterations(key, this._columnsAlterationsManager.get());
|
|
2987
3153
|
}))));
|
|
2988
|
-
}), takeUntil(this._ngUnsubscribe))
|
|
3154
|
+
}), takeUntil(this._ngUnsubscribe))
|
|
3155
|
+
.subscribe();
|
|
2989
3156
|
const applyPrefs = (cols) => this._columnsAlterationsManager.changes.pipe(startWith(undefined), map(() => {
|
|
2990
|
-
console.log('%cApplying columns alterations', 'color: blue', cols)
|
|
3157
|
+
// console.log('%cApplying columns alterations', 'color: blue', cols)
|
|
2991
3158
|
this._columnsAlterationsManager.apply(cols, this);
|
|
2992
3159
|
return cols;
|
|
2993
3160
|
}));
|
|
2994
|
-
this._preferencesKey
|
|
3161
|
+
this._preferencesKey
|
|
3162
|
+
.pipe(distinctUntilChanged(), switchMap((prefsKey) => {
|
|
2995
3163
|
if (!notNullOrUndefined(prefsKey)) {
|
|
2996
3164
|
return of(undefined);
|
|
2997
3165
|
}
|
|
2998
3166
|
return this._preferences.preferences(prefsKey).pipe(switchMap(async (preferences) => {
|
|
2999
3167
|
await waitOnConditionAsync(() => this._preferences.isLoaded(prefsKey));
|
|
3000
3168
|
return preferences;
|
|
3001
|
-
}), take(1), map(preferences => {
|
|
3169
|
+
}), take(1), map((preferences) => {
|
|
3002
3170
|
let alterations = [];
|
|
3003
3171
|
try {
|
|
3004
3172
|
alterations = mapColumnsAlterationsStates(preferences.alterations);
|
|
@@ -3011,18 +3179,32 @@ class DatatableComponent {
|
|
|
3011
3179
|
console.warn(e);
|
|
3012
3180
|
}
|
|
3013
3181
|
}
|
|
3014
|
-
console.log(
|
|
3182
|
+
// console.log(
|
|
3183
|
+
// '%cSetting columns alterations from preferences',
|
|
3184
|
+
// 'color: blue',
|
|
3185
|
+
// alterations,
|
|
3186
|
+
// )
|
|
3015
3187
|
this._columnsAlterationsManager.add(alterations);
|
|
3016
3188
|
}));
|
|
3017
|
-
}), takeUntil(this._ngUnsubscribe))
|
|
3018
|
-
|
|
3189
|
+
}), takeUntil(this._ngUnsubscribe))
|
|
3190
|
+
.subscribe();
|
|
3191
|
+
this.columns$ = combineLatest([
|
|
3192
|
+
this._columnsManager.columns$,
|
|
3193
|
+
this._columnsFilters.columnActiveFilterProps$,
|
|
3194
|
+
]).pipe(map(([columns, columnActiveFilterProps]) => columns.map((col) => ({
|
|
3019
3195
|
...col,
|
|
3020
|
-
filterActive: columnActiveFilterProps.includes(this._columnsFilters.getColumnFilterProp(col) || '')
|
|
3196
|
+
filterActive: columnActiveFilterProps.includes(this._columnsFilters.getColumnFilterProp(col) || ''),
|
|
3021
3197
|
}))));
|
|
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
|
-
|
|
3198
|
+
this.displayColumns$ = this.columns$.pipe(switchMap((cols) => applyPrefs(cols)), map((cols) => cols.filter((c) => !c.hidden)), tap((v) => removeUnusedDiffs(v, this._colDiffersInp, this._colDiffersTpl)));
|
|
3199
|
+
this.filters$ = combineLatest([
|
|
3200
|
+
this._menuBarsFiltersSubject.asObservable(),
|
|
3201
|
+
this._columnsFilters.columnsFilters$,
|
|
3202
|
+
]).pipe(map(([menuFilters, columnsFilters]) => [
|
|
3203
|
+
...menuFilters,
|
|
3204
|
+
...columnsFilters,
|
|
3205
|
+
]));
|
|
3206
|
+
this.filterStates = this.filters$.pipe(switchMap((filters) => composeDataFilterStates(filters)));
|
|
3207
|
+
this.rows$ = this._dataSourceSubject.pipe(switchMap((dataSource) => {
|
|
3026
3208
|
// console.log('dataSource', dataSource)
|
|
3027
3209
|
let dataStream;
|
|
3028
3210
|
if (isDataSource(dataSource)) {
|
|
@@ -3044,9 +3226,9 @@ class DatatableComponent {
|
|
|
3044
3226
|
}
|
|
3045
3227
|
if (!this.externalFiltering) {
|
|
3046
3228
|
// console.log('not using externalFiltering')
|
|
3047
|
-
dataStream = dataStream.pipe(switchMap(rows => this.filters$.pipe(
|
|
3229
|
+
dataStream = dataStream.pipe(switchMap((rows) => this.filters$.pipe(
|
|
3048
3230
|
// tap(v => console.log('filters', v)),
|
|
3049
|
-
concatMap(filters => of(rows).pipe(composeDataFilters(filters))))));
|
|
3231
|
+
concatMap((filters) => of(rows).pipe(composeDataFilters(filters))))));
|
|
3050
3232
|
// dataStream = this._filtersSubject.pipe(
|
|
3051
3233
|
// tap(v => console.log('filters', v)),
|
|
3052
3234
|
// concatMap(filters => dataStream.pipe(composeDataFilters(filters))),
|
|
@@ -3058,11 +3240,11 @@ class DatatableComponent {
|
|
|
3058
3240
|
takeUntil(this._ngUnsubscribe));
|
|
3059
3241
|
}));
|
|
3060
3242
|
// TODO: Implement viewChange for CollectionViewer.
|
|
3061
|
-
this.viewChange = this.page.pipe(map(p => ({ start: 0, end: p.count })));
|
|
3243
|
+
this.viewChange = this.page.pipe(map((p) => ({ start: 0, end: p.count })));
|
|
3062
3244
|
}
|
|
3063
3245
|
ngOnInit() {
|
|
3064
3246
|
if (this.rowDetail) {
|
|
3065
|
-
this._rowDetailToggleSubscription = this.rowDetail._toggle.subscribe(event => {
|
|
3247
|
+
this._rowDetailToggleSubscription = this.rowDetail._toggle.subscribe((event) => {
|
|
3066
3248
|
if (this.ngxRowDetail) {
|
|
3067
3249
|
this.ngxRowDetail.toggle.emit(event);
|
|
3068
3250
|
}
|
|
@@ -3110,7 +3292,7 @@ class DatatableComponent {
|
|
|
3110
3292
|
if (!this.columnComponents || this.columnComponents.length === 0) {
|
|
3111
3293
|
return null;
|
|
3112
3294
|
}
|
|
3113
|
-
const tpl = this.columnComponents.find(t => t.prop === propName);
|
|
3295
|
+
const tpl = this.columnComponents.find((t) => t.prop === propName);
|
|
3114
3296
|
if (tpl) {
|
|
3115
3297
|
return tpl;
|
|
3116
3298
|
}
|
|
@@ -3130,7 +3312,9 @@ class DatatableComponent {
|
|
|
3130
3312
|
return item.prop;
|
|
3131
3313
|
}
|
|
3132
3314
|
onDatatableResize(event) {
|
|
3133
|
-
if (this.ngxDatatable &&
|
|
3315
|
+
if (this.ngxDatatable &&
|
|
3316
|
+
this.ngxDatatableElement &&
|
|
3317
|
+
this.ngxDatatableElement.nativeElement) {
|
|
3134
3318
|
// TODO: Consider integrating this into the ngx-datatable library to avoid
|
|
3135
3319
|
// multiple resize calls when the table resizes itself.
|
|
3136
3320
|
this.ngxDatatable.recalculate();
|
|
@@ -3156,7 +3340,7 @@ class DatatableComponent {
|
|
|
3156
3340
|
const alteration = new WidthColumnsAlteration({
|
|
3157
3341
|
columnProp,
|
|
3158
3342
|
width: event.column.width,
|
|
3159
|
-
canAutoResize: false
|
|
3343
|
+
canAutoResize: false,
|
|
3160
3344
|
}, true);
|
|
3161
3345
|
this._columnsAlterationsManager.add([alteration]);
|
|
3162
3346
|
}
|
|
@@ -3166,12 +3350,14 @@ class DatatableComponent {
|
|
|
3166
3350
|
this.reorder.emit(event);
|
|
3167
3351
|
const columnProp = getColumnProp(event.column);
|
|
3168
3352
|
if (columnProp) {
|
|
3169
|
-
const currentOrderAlteration = this._columnsAlterationsManager
|
|
3353
|
+
const currentOrderAlteration = this._columnsAlterationsManager
|
|
3354
|
+
.get()
|
|
3355
|
+
.find((x) => x.type === 'order');
|
|
3170
3356
|
const state = {
|
|
3171
3357
|
columns: [
|
|
3172
3358
|
...(currentOrderAlteration?.state.columns || []).filter((x) => x.columnProp !== columnProp),
|
|
3173
|
-
{ columnProp, index: event.newValue }
|
|
3174
|
-
]
|
|
3359
|
+
{ columnProp, index: event.newValue },
|
|
3360
|
+
],
|
|
3175
3361
|
};
|
|
3176
3362
|
const alteration = new OrderColumnsAlteration(state, true);
|
|
3177
3363
|
this._columnsAlterationsManager.add([alteration]);
|
|
@@ -3204,18 +3390,18 @@ class DatatableComponent {
|
|
|
3204
3390
|
offset: this.ngxDatatable?.offset ?? 0,
|
|
3205
3391
|
pageSize: this.ngxDatatable?.pageSize ?? 0,
|
|
3206
3392
|
limit: this.ngxDatatable?.limit,
|
|
3207
|
-
count: this.ngxDatatable?.count ?? 0
|
|
3393
|
+
count: this.ngxDatatable?.count ?? 0,
|
|
3208
3394
|
};
|
|
3209
3395
|
}
|
|
3210
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3211
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3396
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableComponent, deps: [{ token: DatatablePreferencesService }, { token: ColumnsManagerService }, { token: ColumnsAlterationsManagerService }, { token: ColumnsFiltersService }, { token: THESEAM_DATATABLE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
3397
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", 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
3398
|
_THESEAM_DATATABLE,
|
|
3213
3399
|
DatatableColumnChangesService,
|
|
3214
3400
|
_THESEAM_DATATABLE_ACCESSOR,
|
|
3215
3401
|
ColumnsManagerService,
|
|
3216
3402
|
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: [
|
|
3403
|
+
ColumnsFiltersService,
|
|
3404
|
+
], 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 <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]=\"\n $any(column).filterActive\n \"\n style=\"width: 1rem\"\n title=\"Click to see filter options\"\n ></button>\n </ng-container>\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{\n column.name\n }}</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 >\n <strong class=\"draggable\">{{ column.name }}</strong>\n </button>\n <div\n class=\"datatable-column-header-separator\"\n [attr.data-column-id]=\"column.$$id\"\n ></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()\"\n ></seam-datatable-column-filter-menu>\n </ng-template>\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%}.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: [
|
|
3219
3405
|
trigger('slideDown', [
|
|
3220
3406
|
transition(':enter', [
|
|
3221
3407
|
style({ transform: 'translateY(-20%)', opacity: '0' }),
|
|
@@ -3224,8 +3410,8 @@ class DatatableComponent {
|
|
|
3224
3410
|
transition(':leave', [
|
|
3225
3411
|
style({ transform: 'translateY(0)', opacity: '1' }),
|
|
3226
3412
|
animate('250ms', style({ transform: 'translateY(-20%)', opacity: '0' })),
|
|
3227
|
-
])
|
|
3228
|
-
])
|
|
3413
|
+
]),
|
|
3414
|
+
]),
|
|
3229
3415
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3230
3416
|
}
|
|
3231
3417
|
__decorate([
|
|
@@ -3285,7 +3471,7 @@ __decorate([
|
|
|
3285
3471
|
__decorate([
|
|
3286
3472
|
InputBoolean()
|
|
3287
3473
|
], DatatableComponent.prototype, "scrollbarH", void 0);
|
|
3288
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3474
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableComponent, decorators: [{
|
|
3289
3475
|
type: Component,
|
|
3290
3476
|
args: [{ selector: 'seam-datatable', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
|
|
3291
3477
|
trigger('slideDown', [
|
|
@@ -3296,16 +3482,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
3296
3482
|
transition(':leave', [
|
|
3297
3483
|
style({ transform: 'translateY(0)', opacity: '1' }),
|
|
3298
3484
|
animate('250ms', style({ transform: 'translateY(-20%)', opacity: '0' })),
|
|
3299
|
-
])
|
|
3300
|
-
])
|
|
3485
|
+
]),
|
|
3486
|
+
]),
|
|
3301
3487
|
], providers: [
|
|
3302
3488
|
_THESEAM_DATATABLE,
|
|
3303
3489
|
DatatableColumnChangesService,
|
|
3304
3490
|
_THESEAM_DATATABLE_ACCESSOR,
|
|
3305
3491
|
ColumnsManagerService,
|
|
3306
3492
|
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
|
|
3493
|
+
ColumnsFiltersService,
|
|
3494
|
+
], 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 <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]=\"\n $any(column).filterActive\n \"\n style=\"width: 1rem\"\n title=\"Click to see filter options\"\n ></button>\n </ng-container>\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{\n column.name\n }}</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 >\n <strong class=\"draggable\">{{ column.name }}</strong>\n </button>\n <div\n class=\"datatable-column-header-separator\"\n [attr.data-column-id]=\"column.$$id\"\n ></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()\"\n ></seam-datatable-column-filter-menu>\n </ng-template>\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%}.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"] }]
|
|
3309
3495
|
}], ctorParameters: () => [{ type: DatatablePreferencesService }, { type: ColumnsManagerService }, { type: ColumnsAlterationsManagerService }, { type: ColumnsFiltersService }, { type: undefined, decorators: [{
|
|
3310
3496
|
type: Optional
|
|
3311
3497
|
}, {
|
|
@@ -3483,11 +3669,10 @@ class DatatableColumnPreferencesComponent {
|
|
|
3483
3669
|
this._columnsAlterationsManager = _columnsAlterationsManager;
|
|
3484
3670
|
this._columns$ = combineLatest([
|
|
3485
3671
|
this._datatable.columns$ ?? of([]),
|
|
3486
|
-
observeControlValue(this._filterControl)
|
|
3672
|
+
observeControlValue(this._filterControl),
|
|
3487
3673
|
]).pipe(map(([columns, filter]) => {
|
|
3488
3674
|
const _filter = (filter || '').trim().toLowerCase();
|
|
3489
|
-
return columns
|
|
3490
|
-
.filter(c => this._canToggleColumn(c, _filter));
|
|
3675
|
+
return columns.filter((c) => this._canToggleColumn(c, _filter));
|
|
3491
3676
|
}));
|
|
3492
3677
|
}
|
|
3493
3678
|
_canToggleColumn(column, filter, omitInternalColumns = true) {
|
|
@@ -3500,7 +3685,7 @@ class DatatableColumnPreferencesComponent {
|
|
|
3500
3685
|
if (filter.length === 0) {
|
|
3501
3686
|
return true;
|
|
3502
3687
|
}
|
|
3503
|
-
return `${
|
|
3688
|
+
return `${getColumnProp(column) || ''}`.toLowerCase().indexOf(filter) !== -1;
|
|
3504
3689
|
}
|
|
3505
3690
|
_onChange(event, col) {
|
|
3506
3691
|
const columnProp = getColumnProp(col);
|
|
@@ -3510,16 +3695,16 @@ class DatatableColumnPreferencesComponent {
|
|
|
3510
3695
|
}
|
|
3511
3696
|
const alteration = new HideColumnColumnsAlteration({
|
|
3512
3697
|
columnProp,
|
|
3513
|
-
hidden
|
|
3698
|
+
hidden,
|
|
3514
3699
|
}, hidden);
|
|
3515
3700
|
this._columnsAlterationsManager.add([alteration]);
|
|
3516
3701
|
}
|
|
3517
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3518
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3702
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnPreferencesComponent, deps: [{ token: THESEAM_DATATABLE }, { token: ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3703
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", 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: i2$2.TheSeamAutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "component", type: i4$2.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: i3.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i3.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: i4$1.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: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3519
3704
|
}
|
|
3520
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3705
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnPreferencesComponent, decorators: [{
|
|
3521
3706
|
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\"
|
|
3707
|
+
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
3708
|
}], ctorParameters: () => [{ type: DatatableComponent, decorators: [{
|
|
3524
3709
|
type: Inject,
|
|
3525
3710
|
args: [THESEAM_DATATABLE]
|
|
@@ -3561,12 +3746,12 @@ class DatatableColumnPreferencesButtonComponent {
|
|
|
3561
3746
|
_resetColumns(event) {
|
|
3562
3747
|
this._columnsAlterationsManager.clear();
|
|
3563
3748
|
}
|
|
3564
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3565
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3749
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, deps: [{ token: ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3750
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", 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: i5.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "directive", type: i11.TheSeamPopoverDirective, selector: "[seamPopover]", inputs: ["seamPopover", "seamPopoverContext", "seamPopoverBaseWidth", "seamPopoverDisabled"], exportAs: ["seamPopover"] }, { kind: "component", type: DatatableColumnPreferencesComponent, selector: "seam-datatable-column-preferences" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3566
3751
|
}
|
|
3567
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3752
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, decorators: [{
|
|
3568
3753
|
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
|
|
3754
|
+
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
3755
|
}], ctorParameters: () => [{ type: ColumnsAlterationsManagerService }] });
|
|
3571
3756
|
|
|
3572
3757
|
class DatatableExportButtonComponent {
|
|
@@ -3599,17 +3784,17 @@ class DatatableExportButtonComponent {
|
|
|
3599
3784
|
}
|
|
3600
3785
|
const export$ = combineLatest([
|
|
3601
3786
|
this._datatable.rows$,
|
|
3602
|
-
this._datatable.columns$.pipe(map(cols => cols.filter(c => !isInternalColumn(c))))
|
|
3787
|
+
this._datatable.columns$.pipe(map((cols) => cols.filter((c) => !isInternalColumn(c)))),
|
|
3603
3788
|
]).pipe(take(1), map(([rows, columns]) => {
|
|
3604
3789
|
if (exporter.skipDataMapping) {
|
|
3605
3790
|
return rows;
|
|
3606
3791
|
}
|
|
3607
3792
|
return this._mapExportData(columns || [], rows);
|
|
3608
|
-
}), concatMap(data => exporter.export(data)), catchError(err => {
|
|
3793
|
+
}), concatMap((data) => exporter.export(data)), catchError((err) => {
|
|
3609
3794
|
// eslint-disable-next-line no-console
|
|
3610
3795
|
console.error(err);
|
|
3611
3796
|
return of(false);
|
|
3612
|
-
}), tap(success => {
|
|
3797
|
+
}), tap((success) => {
|
|
3613
3798
|
if (success) {
|
|
3614
3799
|
this._toastr.success(`${exporter.label} export complete.`, 'Data Export');
|
|
3615
3800
|
}
|
|
@@ -3646,12 +3831,12 @@ class DatatableExportButtonComponent {
|
|
|
3646
3831
|
}
|
|
3647
3832
|
return undefined;
|
|
3648
3833
|
}
|
|
3649
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3650
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3834
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableExportButtonComponent, deps: [{ token: THESEAM_DATATABLE }, { token: i1$2.ToastrService }, { token: i2$3.TheSeamLoadingOverlayService }, { token: i3$2.DynamicValueHelperService }, { token: THESEAM_DYNAMIC_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
3835
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", 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: i5.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "component", type: i3$1.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3651
3836
|
}
|
|
3652
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3837
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableExportButtonComponent, decorators: [{
|
|
3653
3838
|
type: Component,
|
|
3654
|
-
args: [{ selector: 'seam-datatable-export-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<seam-menu #menu>\n <button
|
|
3839
|
+
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
3840
|
}], ctorParameters: () => [{ type: DatatableComponent, decorators: [{
|
|
3656
3841
|
type: Inject,
|
|
3657
3842
|
args: [THESEAM_DATATABLE]
|
|
@@ -3665,37 +3850,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
3665
3850
|
}] } });
|
|
3666
3851
|
|
|
3667
3852
|
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.
|
|
3853
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableMenuBarColumnCenterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3854
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", 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
3855
|
}
|
|
3671
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3856
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableMenuBarColumnCenterComponent, decorators: [{
|
|
3672
3857
|
type: Component,
|
|
3673
3858
|
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
3859
|
}] });
|
|
3675
3860
|
|
|
3676
3861
|
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.
|
|
3862
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableMenuBarColumnLeftComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3863
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", 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
3864
|
}
|
|
3680
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3865
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableMenuBarColumnLeftComponent, decorators: [{
|
|
3681
3866
|
type: Component,
|
|
3682
3867
|
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
3868
|
}] });
|
|
3684
3869
|
|
|
3685
3870
|
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.
|
|
3871
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableMenuBarColumnRightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3872
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", 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
3873
|
}
|
|
3689
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3874
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableMenuBarColumnRightComponent, decorators: [{
|
|
3690
3875
|
type: Component,
|
|
3691
3876
|
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
3877
|
}] });
|
|
3693
3878
|
|
|
3694
3879
|
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.
|
|
3880
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableMenuBarRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3881
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", 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
3882
|
}
|
|
3698
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3883
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableMenuBarRowComponent, decorators: [{
|
|
3699
3884
|
type: Component,
|
|
3700
3885
|
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
3886
|
}] });
|
|
@@ -3715,10 +3900,10 @@ class DatatableMenuBarTextComponent {
|
|
|
3715
3900
|
}
|
|
3716
3901
|
}
|
|
3717
3902
|
}
|
|
3718
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3719
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3903
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableMenuBarTextComponent, deps: [{ token: DatatableMenuBarComponent }, { token: THESEAM_MENUBAR_ITEM_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
3904
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: DatatableMenuBarTextComponent, isStandalone: false, selector: "seam-datatable-menu-bar-text", inputs: { value: "value" }, ngImport: i0, template: "{{ value }}\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3720
3905
|
}
|
|
3721
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3906
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableMenuBarTextComponent, decorators: [{
|
|
3722
3907
|
type: Component,
|
|
3723
3908
|
args: [{ selector: 'seam-datatable-menu-bar-text', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "{{ value }}\n" }]
|
|
3724
3909
|
}], ctorParameters: () => [{ type: DatatableMenuBarComponent }, { type: undefined, decorators: [{
|
|
@@ -3793,14 +3978,14 @@ class DatatableActionMenuItemDirective {
|
|
|
3793
3978
|
this._dynamicComponentLoader = _dynamicComponentLoader;
|
|
3794
3979
|
this._http = _http;
|
|
3795
3980
|
}
|
|
3796
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3797
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
3981
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableActionMenuItemDirective, deps: [{ token: i1$3.Modal }, { token: i2$4.TheSeamDynamicComponentLoader }, { token: i3$3.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3982
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", 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
3983
|
}
|
|
3799
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3984
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableActionMenuItemDirective, decorators: [{
|
|
3800
3985
|
type: Directive,
|
|
3801
3986
|
args: [{
|
|
3802
3987
|
selector: '[seamDatatableActionMenuItem]',
|
|
3803
|
-
standalone: false
|
|
3988
|
+
standalone: false,
|
|
3804
3989
|
}]
|
|
3805
3990
|
}], ctorParameters: () => [{ type: i1$3.Modal }, { type: i2$4.TheSeamDynamicComponentLoader }, { type: i3$3.HttpClient, decorators: [{
|
|
3806
3991
|
type: Optional
|
|
@@ -3857,16 +4042,26 @@ class DatatableActionMenuToggleDirective {
|
|
|
3857
4042
|
_onClick(event) {
|
|
3858
4043
|
this.toggle();
|
|
3859
4044
|
}
|
|
3860
|
-
_mouseDown(event) {
|
|
3861
|
-
|
|
3862
|
-
|
|
3863
|
-
|
|
4045
|
+
_mouseDown(event) {
|
|
4046
|
+
this.onInputDown(event);
|
|
4047
|
+
}
|
|
4048
|
+
_pointerDown(event) {
|
|
4049
|
+
this.onInputDown(event);
|
|
4050
|
+
}
|
|
4051
|
+
_mouseUp(event) {
|
|
4052
|
+
this.onInputUp(event);
|
|
4053
|
+
}
|
|
4054
|
+
_pointerUp(event) {
|
|
4055
|
+
this.onInputUp(event);
|
|
4056
|
+
}
|
|
3864
4057
|
constructor(_elementRef, _viewContainerRef, _overlay) {
|
|
3865
4058
|
this._elementRef = _elementRef;
|
|
3866
4059
|
this._viewContainerRef = _viewContainerRef;
|
|
3867
4060
|
this._overlay = _overlay;
|
|
3868
4061
|
}
|
|
3869
|
-
get active() {
|
|
4062
|
+
get active() {
|
|
4063
|
+
return this._active;
|
|
4064
|
+
}
|
|
3870
4065
|
toggle() {
|
|
3871
4066
|
if (this._active) {
|
|
3872
4067
|
this.disable();
|
|
@@ -3899,7 +4094,8 @@ class DatatableActionMenuToggleDirective {
|
|
|
3899
4094
|
this._active = false;
|
|
3900
4095
|
}
|
|
3901
4096
|
getOverlayPosition(origin) {
|
|
3902
|
-
const positionStrategy = this._overlay
|
|
4097
|
+
const positionStrategy = this._overlay
|
|
4098
|
+
.position()
|
|
3903
4099
|
.flexibleConnectedTo(origin)
|
|
3904
4100
|
.withPositions(this.getPositions())
|
|
3905
4101
|
.withFlexibleDimensions(false)
|
|
@@ -3947,15 +4143,15 @@ class DatatableActionMenuToggleDirective {
|
|
|
3947
4143
|
onInputUp(event) {
|
|
3948
4144
|
this._actionDown = false;
|
|
3949
4145
|
}
|
|
3950
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3951
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
4146
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableActionMenuToggleDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$4.Overlay }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4147
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", 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
4148
|
}
|
|
3953
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: DatatableActionMenuToggleDirective, decorators: [{
|
|
3954
4150
|
type: Directive,
|
|
3955
4151
|
args: [{
|
|
3956
4152
|
selector: '[seamDatatableActionMenuToggle]',
|
|
3957
4153
|
exportAs: 'seamDatatableActionMenuToggle',
|
|
3958
|
-
standalone: false
|
|
4154
|
+
standalone: false,
|
|
3959
4155
|
}]
|
|
3960
4156
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1$4.Overlay }], propDecorators: { seamDatatableActionMenuToggle: [{
|
|
3961
4157
|
type: Input
|
|
@@ -4012,12 +4208,12 @@ class TheSeamDatatableScrollbarHelperService {
|
|
|
4012
4208
|
onInitScroller(scroller) {
|
|
4013
4209
|
this._scrollbars.initializeInstance(scroller.parentElement, {
|
|
4014
4210
|
callbacks: {
|
|
4015
|
-
onScroll: e => {
|
|
4211
|
+
onScroll: (e) => {
|
|
4016
4212
|
this._ngZone.run(() => {
|
|
4017
4213
|
scroller.onScrolled(e);
|
|
4018
4214
|
});
|
|
4019
|
-
}
|
|
4020
|
-
}
|
|
4215
|
+
},
|
|
4216
|
+
},
|
|
4021
4217
|
});
|
|
4022
4218
|
}
|
|
4023
4219
|
onDestroyScroller(scroller) {
|
|
@@ -4026,26 +4222,28 @@ class TheSeamDatatableScrollbarHelperService {
|
|
|
4026
4222
|
setOffset(scroller, offsetY) {
|
|
4027
4223
|
this._ngZone.runOutsideAngular(() => {
|
|
4028
4224
|
if (this.animatedScrolling) {
|
|
4029
|
-
this._scrollbars
|
|
4225
|
+
this._scrollbars
|
|
4226
|
+
.getInstance(scroller.parentElement)
|
|
4030
4227
|
.scroll({ y: offsetY }, this.animatedScrollingTime);
|
|
4031
4228
|
}
|
|
4032
4229
|
else {
|
|
4033
|
-
this._scrollbars
|
|
4230
|
+
this._scrollbars
|
|
4231
|
+
.getInstance(scroller.parentElement)
|
|
4034
4232
|
.scroll({ y: offsetY });
|
|
4035
4233
|
}
|
|
4036
4234
|
});
|
|
4037
4235
|
}
|
|
4038
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4039
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
4236
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamDatatableScrollbarHelperService, deps: [{ token: i0.NgZone }, { token: i1$5.TheSeamOverlayScrollbarsService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4237
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamDatatableScrollbarHelperService });
|
|
4040
4238
|
}
|
|
4041
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamDatatableScrollbarHelperService, decorators: [{
|
|
4042
4240
|
type: Injectable
|
|
4043
4241
|
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i1$5.TheSeamOverlayScrollbarsService }] });
|
|
4044
4242
|
|
|
4045
4243
|
function withStoredColumnInfo(columns, preferenceColumns) {
|
|
4046
4244
|
const _columns = [];
|
|
4047
4245
|
for (const col of columns) {
|
|
4048
|
-
const storedCol = preferenceColumns.find(v => v.prop === col.prop);
|
|
4246
|
+
const storedCol = preferenceColumns.find((v) => v.prop === col.prop);
|
|
4049
4247
|
if (storedCol) {
|
|
4050
4248
|
const _col = { ...col };
|
|
4051
4249
|
if (hasProperty(storedCol, 'width')) {
|
|
@@ -4062,8 +4260,8 @@ function withStoredColumnInfo(columns, preferenceColumns) {
|
|
|
4062
4260
|
}
|
|
4063
4261
|
|
|
4064
4262
|
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.
|
|
4263
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamDatatableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4264
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.6", ngImport: i0, type: TheSeamDatatableModule, declarations: [DatatableComponent,
|
|
4067
4265
|
DatatableCellTplDirective,
|
|
4068
4266
|
DatatableColumnComponent,
|
|
4069
4267
|
DatatableActionMenuComponent,
|
|
@@ -4138,8 +4336,11 @@ class TheSeamDatatableModule {
|
|
|
4138
4336
|
DatatableColumnFilterSearchDateComponent,
|
|
4139
4337
|
DatatableColumnFilterTplDirective,
|
|
4140
4338
|
TheSeamDatatableColumnFilterDirective] });
|
|
4141
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
4142
|
-
{
|
|
4339
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamDatatableModule, providers: [
|
|
4340
|
+
{
|
|
4341
|
+
provide: ScrollbarHelper,
|
|
4342
|
+
useClass: TheSeamDatatableScrollbarHelperService,
|
|
4343
|
+
},
|
|
4143
4344
|
], imports: [CommonModule,
|
|
4144
4345
|
NgxDatatableModule,
|
|
4145
4346
|
FontAwesomeModule,
|
|
@@ -4163,7 +4364,7 @@ class TheSeamDatatableModule {
|
|
|
4163
4364
|
NgSelectModule,
|
|
4164
4365
|
TheSeamToggleGroupModule] });
|
|
4165
4366
|
}
|
|
4166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4367
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamDatatableModule, decorators: [{
|
|
4167
4368
|
type: NgModule,
|
|
4168
4369
|
args: [{
|
|
4169
4370
|
declarations: [
|
|
@@ -4250,7 +4451,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
4250
4451
|
TheSeamDatatableColumnFilterDirective,
|
|
4251
4452
|
],
|
|
4252
4453
|
providers: [
|
|
4253
|
-
{
|
|
4454
|
+
{
|
|
4455
|
+
provide: ScrollbarHelper,
|
|
4456
|
+
useClass: TheSeamDatatableScrollbarHelperService,
|
|
4457
|
+
},
|
|
4254
4458
|
],
|
|
4255
4459
|
}]
|
|
4256
4460
|
}] });
|