@theseam/ui-common 0.4.28-beta.4 → 0.4.28
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/breadcrumbs/breadcrumbs.component.scss +1 -1
- package/datatable/datatable/datatable.component.d.ts +9 -61
- package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -2
- package/datatable/datatable.module.d.ts +20 -29
- package/datatable/models/table-column.d.ts +1 -22
- package/datatable/public-api.d.ts +0 -14
- package/datatable/services/columns-manager.service.d.ts +0 -7
- package/datatable/utils/create-action-menu-column.d.ts +1 -1
- package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +2 -2
- package/esm2020/datatable/datatable/datatable.component.mjs +31 -240
- package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +2 -2
- package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +1 -1
- package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +1 -1
- package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +1 -1
- package/esm2020/datatable/datatable.module.mjs +7 -49
- package/esm2020/datatable/models/table-column.mjs +1 -1
- package/esm2020/datatable/public-api.mjs +1 -15
- package/esm2020/datatable/services/columns-manager.service.mjs +2 -27
- package/esm2020/datatable/utils/create-action-menu-column.mjs +3 -4
- package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +1 -1
- package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +1 -1
- package/esm2020/framework/base-layout/base-layout.component.mjs +4 -14
- package/esm2020/framework/base-layout/base-layout.module.mjs +1 -6
- package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +5 -21
- package/esm2020/framework/base-layout/index.mjs +1 -2
- package/esm2020/framework/public-api.mjs +1 -2
- package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +2 -2
- package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +78 -28
- package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +5 -12
- package/esm2020/framework/side-nav/side-nav-tokens.mjs +5 -1
- package/esm2020/framework/side-nav/side-nav-utils.mjs +13 -3
- package/esm2020/framework/side-nav/side-nav.component.mjs +52 -119
- package/esm2020/framework/side-nav/side-nav.models.mjs +1 -1
- package/esm2020/framework/side-nav/side-nav.module.mjs +39 -9
- package/esm2020/framework/side-nav/side-nav.service.mjs +1 -1
- package/esm2020/framework/top-bar/index.mjs +1 -3
- package/esm2020/framework/top-bar/top-bar-item.directive.mjs +4 -10
- package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +4 -6
- package/esm2020/framework/top-bar/top-bar.component.mjs +11 -55
- package/esm2020/framework/top-bar/top-bar.module.mjs +5 -15
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +3 -3
- package/esm2020/graphql/datatable/datatable-graphql.service.mjs +1 -1
- package/esm2020/graphql/datatable/index.mjs +1 -4
- package/esm2020/graphql/datatable/map-filter-states.mjs +1 -1
- package/esm2020/layout/layout.service.mjs +2 -12
- package/esm2020/menu/menu-toggle.directive.mjs +2 -7
- package/esm2020/navigation-reload/navigation-reload.config.mjs +2 -0
- package/esm2020/navigation-reload/navigation-reload.provider.mjs +14 -0
- package/esm2020/navigation-reload/navigation-reload.service.mjs +54 -0
- package/esm2020/navigation-reload/public-api.mjs +4 -0
- package/esm2020/navigation-reload/theseam-ui-common-navigation-reload.mjs +5 -0
- package/esm2020/popover/popover/popover.component.mjs +3 -7
- package/esm2020/popover/popover.directive.mjs +2 -6
- package/esm2020/table/public-api.mjs +1 -4
- package/esm2020/table/table/table.component.mjs +5 -90
- package/esm2020/table/table.module.mjs +5 -21
- package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +3 -5
- package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
- package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
- package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
- package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
- package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
- package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
- package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +1 -1
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs +2 -2
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +2 -2
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable.mjs +62 -1035
- package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-framework.mjs +193 -910
- package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-google-maps.mjs +2 -2
- package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-graphql.mjs +1 -254
- package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-layout.mjs +2 -11
- package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-menu.mjs +1 -6
- package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-navigation-reload.mjs +75 -0
- package/fesm2015/theseam-ui-common-navigation-reload.mjs.map +1 -0
- package/fesm2015/theseam-ui-common-popover.mjs +3 -11
- package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table-cell-types.mjs +2 -4
- package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table.mjs +9 -201
- package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-widget.mjs +1 -1
- package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs +2 -2
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +2 -2
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable.mjs +62 -1019
- package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-framework.mjs +196 -912
- package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-google-maps.mjs +2 -2
- package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-graphql.mjs +1 -254
- package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-layout.mjs +2 -11
- package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-menu.mjs +1 -6
- package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-navigation-reload.mjs +74 -0
- package/fesm2020/theseam-ui-common-navigation-reload.mjs.map +1 -0
- package/fesm2020/theseam-ui-common-popover.mjs +3 -11
- package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table-cell-types.mjs +2 -4
- package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table.mjs +9 -199
- package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-widget.mjs +1 -1
- package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
- package/framework/base-layout/base-layout.component.d.ts +2 -4
- package/framework/base-layout/base-layout.component.scss +10 -18
- package/framework/base-layout/base-layout.module.d.ts +10 -11
- package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +3 -8
- package/framework/base-layout/index.d.ts +0 -1
- package/framework/base-layout/styles/_variables.scss +0 -21
- package/framework/public-api.d.ts +0 -1
- package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +20 -7
- package/framework/side-nav/side-nav-item/side-nav-item.component.scss +16 -8
- package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +3 -5
- package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +6 -3
- package/framework/side-nav/side-nav-tokens.d.ts +8 -0
- package/framework/side-nav/side-nav-utils.d.ts +12 -6
- package/framework/side-nav/side-nav.component.d.ts +6 -16
- package/framework/side-nav/side-nav.component.scss +1 -0
- package/framework/side-nav/side-nav.models.d.ts +14 -9
- package/framework/side-nav/side-nav.module.d.ts +9 -1
- package/framework/side-nav/styles/_themes/light/_variables.scss +14 -24
- package/framework/side-nav/styles/_themes/primary/_variables.scss +0 -8
- package/framework/top-bar/index.d.ts +0 -2
- package/framework/top-bar/top-bar-item.directive.d.ts +1 -4
- package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +2 -5
- package/framework/top-bar/top-bar.component.d.ts +3 -25
- package/framework/top-bar/top-bar.component.scss +2 -7
- package/framework/top-bar/top-bar.module.d.ts +8 -10
- package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
- package/graphql/datatable/index.d.ts +0 -3
- package/graphql/datatable/map-filter-states.d.ts +2 -2
- package/layout/layout.service.d.ts +1 -9
- package/menu/menu-toggle.directive.d.ts +1 -2
- package/navigation-reload/index.d.ts +5 -0
- package/navigation-reload/navigation-reload.config.d.ts +5 -0
- package/navigation-reload/navigation-reload.provider.d.ts +3 -0
- package/navigation-reload/navigation-reload.service.d.ts +13 -0
- package/navigation-reload/public-api.d.ts +3 -0
- package/package.json +11 -3
- package/popover/popover/popover.component.d.ts +1 -4
- package/popover/popover.directive.d.ts +1 -2
- package/styles/vendor/ngx-datatable/_ngx-datatable.scss +14 -83
- package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +3 -38
- package/table/public-api.d.ts +0 -3
- package/table/table/table.component.d.ts +3 -21
- package/table/table.module.d.ts +1 -4
- package/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.d.ts +0 -25
- package/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.d.ts +0 -18
- package/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.d.ts +0 -16
- package/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.d.ts +0 -15
- package/datatable/directives/datatable-column-filter-tpl.directive.d.ts +0 -8
- package/datatable/directives/datatable-column-filter.directive.d.ts +0 -10
- package/datatable/models/action-item-column-position.d.ts +0 -13
- package/datatable/models/columns-data-filter.d.ts +0 -57
- package/datatable/models/columns-data-filters/models.d.ts +0 -65
- package/datatable/models/columns-data-filters/search-date.columns-data-filter.d.ts +0 -23
- package/datatable/models/columns-data-filters/search-numeric.columns-data-filter.d.ts +0 -22
- package/datatable/models/columns-data-filters/search-text.columns-data-filter.d.ts +0 -21
- package/datatable/models/columns-data-filters/utils.d.ts +0 -15
- package/datatable/models/datatable-config.d.ts +0 -97
- package/datatable/services/columns-filters.service.d.ts +0 -29
- package/esm2020/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.mjs +0 -55
- package/esm2020/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.mjs +0 -54
- package/esm2020/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.mjs +0 -48
- package/esm2020/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.mjs +0 -44
- package/esm2020/datatable/directives/datatable-column-filter-tpl.directive.mjs +0 -16
- package/esm2020/datatable/directives/datatable-column-filter.directive.mjs +0 -26
- package/esm2020/datatable/models/action-item-column-position.mjs +0 -5
- package/esm2020/datatable/models/columns-data-filter.mjs +0 -10
- package/esm2020/datatable/models/columns-data-filters/models.mjs +0 -74
- package/esm2020/datatable/models/columns-data-filters/search-date.columns-data-filter.mjs +0 -113
- package/esm2020/datatable/models/columns-data-filters/search-numeric.columns-data-filter.mjs +0 -104
- package/esm2020/datatable/models/columns-data-filters/search-text.columns-data-filter.mjs +0 -86
- package/esm2020/datatable/models/columns-data-filters/utils.mjs +0 -28
- package/esm2020/datatable/models/datatable-config.mjs +0 -3
- package/esm2020/datatable/services/columns-filters.service.mjs +0 -109
- package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +0 -16
- package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +0 -55
- package/esm2020/framework/nav/index.mjs +0 -6
- package/esm2020/framework/nav/nav-item/nav-item.component.mjs +0 -227
- package/esm2020/framework/nav/nav-utils.mjs +0 -107
- package/esm2020/framework/nav/nav.models.mjs +0 -2
- package/esm2020/framework/nav/nav.module.mjs +0 -67
- package/esm2020/framework/nav/nav.service.mjs +0 -204
- package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +0 -16
- package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +0 -16
- package/esm2020/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.mjs +0 -139
- package/esm2020/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.mjs +0 -75
- package/esm2020/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.mjs +0 -44
- package/esm2020/table/table-cell-tpl.directive.mjs +0 -17
- package/esm2020/table/table-column-header-tpl.directive.mjs +0 -17
- package/esm2020/table/table-column.component.mjs +0 -68
- package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +0 -9
- package/framework/nav/_nav-theme.scss +0 -4
- package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +0 -25
- package/framework/nav/horizontal-nav/horizontal-nav.component.scss +0 -50
- package/framework/nav/index.d.ts +0 -5
- package/framework/nav/nav-item/nav-item.component.d.ts +0 -74
- package/framework/nav/nav-item/nav-item.component.scss +0 -203
- package/framework/nav/nav-utils.d.ts +0 -20
- package/framework/nav/nav.models.d.ts +0 -77
- package/framework/nav/nav.module.d.ts +0 -17
- package/framework/nav/nav.service.d.ts +0 -27
- package/framework/nav/styles/_themes/light/_variables.scss +0 -56
- package/framework/nav/styles/_themes/primary/_variables.scss +0 -56
- package/framework/nav/styles/_utilities.scss +0 -3
- package/framework/nav/styles/_variables.scss +0 -2
- package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +0 -8
- package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +0 -8
- package/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.d.ts +0 -4
- package/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.d.ts +0 -4
- package/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.d.ts +0 -4
- package/table/table-cell-tpl.directive.d.ts +0 -7
- package/table/table-column-header-tpl.directive.d.ts +0 -7
- package/table/table-column.component.d.ts +0 -24
|
@@ -4,59 +4,56 @@ import { coerceArray } from '@angular/cdk/coercion';
|
|
|
4
4
|
import { DataSource, isDataSource } from '@angular/cdk/collections';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
6
|
import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, ViewChild, ContentChildren, Directive, Injectable, TemplateRef, ContentChild, Self, Inject, forwardRef, InjectionToken, isDevMode, Optional, ElementRef, HostListener, HostBinding, NgModule } from '@angular/core';
|
|
7
|
-
import { Subject, BehaviorSubject, of, defer, combineLatest, EMPTY,
|
|
7
|
+
import { Subject, BehaviorSubject, of, defer, combineLatest, EMPTY, Subscription, from, isObservable } from 'rxjs';
|
|
8
8
|
import { switchMap, map, startWith, auditTime, shareReplay, take, tap, distinctUntilChanged, takeUntil, concatMap, catchError } from 'rxjs/operators';
|
|
9
|
-
import { faEllipsisH, faChevronDown, faChevronRight, faSpinner,
|
|
10
|
-
import * as
|
|
9
|
+
import { faEllipsisH, faChevronDown, faChevronRight, faSpinner, faColumns, faFileDownload } from '@fortawesome/free-solid-svg-icons';
|
|
10
|
+
import * as i5$1 from '@marklb/ngx-datatable';
|
|
11
11
|
import { camelCase, setColumnDefaults as setColumnDefaults$1, translateTemplates, SelectionType, SortType, ColumnMode, DatatableComponent as DatatableComponent$1, DatatableRowDetailDirective, NgxDatatableModule, ScrollbarHelper } from '@marklb/ngx-datatable';
|
|
12
12
|
import { InputBoolean, InputNumber } from '@theseam/ui-common/core';
|
|
13
|
-
import { THESEAM_DATA_FILTER, THESEAM_DATA_FILTER_CONTAINER, composeDataFilterStates, composeDataFilters
|
|
14
|
-
import { notNullOrUndefined, hasProperty, arrayMoveMutable,
|
|
15
|
-
import * as i4 from '@theseam/ui-common/menu';
|
|
13
|
+
import { THESEAM_DATA_FILTER, THESEAM_DATA_FILTER_CONTAINER, composeDataFilterStates, composeDataFilters } from '@theseam/ui-common/data-filters';
|
|
14
|
+
import { notNullOrUndefined, hasProperty, arrayMoveMutable, waitOnConditionAsync, observeControlValue } from '@theseam/ui-common/utils';
|
|
15
|
+
import * as i4$1 from '@theseam/ui-common/menu';
|
|
16
16
|
import { MenuComponent, TheSeamMenuModule } from '@theseam/ui-common/menu';
|
|
17
17
|
import * as i1 from '@theseam/ui-common/confirm-dialog';
|
|
18
18
|
import { TheSeamConfirmDialogModule } from '@theseam/ui-common/confirm-dialog';
|
|
19
19
|
import * as i2 from '@angular/router';
|
|
20
20
|
import { RouterModule } from '@angular/router';
|
|
21
|
-
import * as
|
|
21
|
+
import * as i4 from '@angular/common';
|
|
22
22
|
import { CommonModule } from '@angular/common';
|
|
23
23
|
import * as i5 from '@theseam/ui-common/icon';
|
|
24
24
|
import { TheSeamIconModule } from '@theseam/ui-common/icon';
|
|
25
|
-
import * as i4$1 from '@angular/forms';
|
|
26
|
-
import { FormGroup, FormControl, ControlContainer, FormGroupDirective, UntypedFormControl, ReactiveFormsModule } from '@angular/forms';
|
|
27
25
|
import * as i1$1 from '@theseam/ui-common/services';
|
|
28
|
-
import * as
|
|
26
|
+
import * as i6 from '@fortawesome/angular-fontawesome';
|
|
29
27
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
30
|
-
import * as
|
|
28
|
+
import * as i7 from '@theseam/ui-common/shared';
|
|
31
29
|
import { TheSeamSharedModule } from '@theseam/ui-common/shared';
|
|
32
|
-
import * as
|
|
33
|
-
import { TheSeamButtonsModule } from '@theseam/ui-common/buttons';
|
|
34
|
-
import * as i11 from '@theseam/ui-common/popover';
|
|
35
|
-
import { TheSeamPopoverModule } from '@theseam/ui-common/popover';
|
|
36
|
-
import * as i12 from '@theseam/ui-common/table-cell-type';
|
|
30
|
+
import * as i8 from '@theseam/ui-common/table-cell-type';
|
|
37
31
|
import { TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type';
|
|
38
|
-
import * as
|
|
39
|
-
import {
|
|
40
|
-
import * as i5$1 from '@ng-select/ng-select';
|
|
41
|
-
import { NgSelectModule } from '@ng-select/ng-select';
|
|
32
|
+
import * as i7$1 from '@angular/forms';
|
|
33
|
+
import { UntypedFormControl, ReactiveFormsModule } from '@angular/forms';
|
|
42
34
|
import * as i1$2 from '@theseam/ui-common/scrollbar';
|
|
43
35
|
import * as i5$2 from '@theseam/ui-common/checkbox';
|
|
44
36
|
import { TheSeamCheckboxComponent } from '@theseam/ui-common/checkbox';
|
|
45
|
-
import * as
|
|
37
|
+
import * as i6$1 from '@theseam/ui-common/form-field';
|
|
38
|
+
import { TheSeamFormFieldModule } from '@theseam/ui-common/form-field';
|
|
39
|
+
import * as i4$2 from '@theseam/ui-common/popover';
|
|
40
|
+
import { TheSeamPopoverModule } from '@theseam/ui-common/popover';
|
|
41
|
+
import * as i3 from '@theseam/ui-common/dynamic';
|
|
46
42
|
import { THESEAM_DYNAMIC_DATA } from '@theseam/ui-common/dynamic';
|
|
47
43
|
import * as i1$3 from 'ngx-toastr';
|
|
48
44
|
import { ToastrModule } from 'ngx-toastr';
|
|
49
|
-
import * as i2$
|
|
45
|
+
import * as i2$1 from '@theseam/ui-common/loading';
|
|
50
46
|
import { TheSeamLoadingModule } from '@theseam/ui-common/loading';
|
|
47
|
+
import * as i7$2 from '@theseam/ui-common/buttons';
|
|
48
|
+
import { TheSeamButtonsModule } from '@theseam/ui-common/buttons';
|
|
51
49
|
import * as i1$4 from '@theseam/ui-common/modal';
|
|
52
|
-
import * as i2$
|
|
53
|
-
import * as i3$
|
|
50
|
+
import * as i2$2 from '@theseam/ui-common/dynamic-component-loader';
|
|
51
|
+
import * as i3$1 from '@angular/common/http';
|
|
54
52
|
import { ESCAPE } from '@angular/cdk/keycodes';
|
|
55
53
|
import { TemplatePortal, PortalModule } from '@angular/cdk/portal';
|
|
56
54
|
import * as i1$5 from '@angular/cdk/overlay';
|
|
57
55
|
import { OverlayModule } from '@angular/cdk/overlay';
|
|
58
56
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
59
|
-
import { TheSeamToggleGroupModule } from '@theseam/ui-common/toggle-group';
|
|
60
57
|
|
|
61
58
|
class DatatableActionMenuItemComponent {
|
|
62
59
|
constructor() {
|
|
@@ -189,13 +186,13 @@ class DatatableActionMenuComponent {
|
|
|
189
186
|
}
|
|
190
187
|
}
|
|
191
188
|
DatatableActionMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuComponent, deps: [{ token: i1.SeamConfirmDialogService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
192
|
-
DatatableActionMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableActionMenuComponent, 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 #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 *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *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 {{ item.label }}\n </a>\n <ng-template #noHref>\n <a 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 {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button 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 {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button 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 {{ 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 type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{position:relative;
|
|
189
|
+
DatatableActionMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableActionMenuComponent, 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 #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 *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *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 {{ item.label }}\n </a>\n <ng-template #noHref>\n <a 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 {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button 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 {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button 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 {{ 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 type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i4$1.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i4$1.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i4$1.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"] }] });
|
|
193
190
|
__decorate([
|
|
194
191
|
InputBoolean()
|
|
195
192
|
], DatatableActionMenuComponent.prototype, "isSubMenu", void 0);
|
|
196
193
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuComponent, decorators: [{
|
|
197
194
|
type: Component,
|
|
198
|
-
args: [{ selector: 'seam-datatable-action-menu', exportAs: 'seamDatatableActionMenu', template: "<seam-menu #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 *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *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 {{ item.label }}\n </a>\n <ng-template #noHref>\n <a 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 {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button 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 {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button 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 {{ 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 type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{position:relative;
|
|
195
|
+
args: [{ selector: 'seam-datatable-action-menu', exportAs: 'seamDatatableActionMenu', template: "<seam-menu #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 *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *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 {{ item.label }}\n </a>\n <ng-template #noHref>\n <a 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 {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button 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 {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button 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 {{ 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 type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"] }]
|
|
199
196
|
}], ctorParameters: function () { return [{ type: i1.SeamConfirmDialogService }, { type: i2.Router }]; }, propDecorators: { menu: [{
|
|
200
197
|
type: ViewChild,
|
|
201
198
|
args: [MenuComponent, { static: true }]
|
|
@@ -585,7 +582,7 @@ class DatatableDataSource extends DataSource {
|
|
|
585
582
|
}
|
|
586
583
|
|
|
587
584
|
const ACTION_MENU_COLUMN_PROP = '$$__actionMenu__';
|
|
588
|
-
function createActionMenuColumn(cellTemplate, headerTemplate
|
|
585
|
+
function createActionMenuColumn(cellTemplate, headerTemplate) {
|
|
589
586
|
return {
|
|
590
587
|
prop: ACTION_MENU_COLUMN_PROP,
|
|
591
588
|
name: '',
|
|
@@ -596,8 +593,7 @@ function createActionMenuColumn(cellTemplate, headerTemplate, frozenLeft, frozen
|
|
|
596
593
|
sortable: false,
|
|
597
594
|
draggable: false,
|
|
598
595
|
// TODO: Fix column auto sizing with fixed column and cell overlay before enabling.
|
|
599
|
-
|
|
600
|
-
frozenRight: frozenRight,
|
|
596
|
+
// frozenRight: true,
|
|
601
597
|
cellTemplate,
|
|
602
598
|
headerTemplate,
|
|
603
599
|
};
|
|
@@ -712,13 +708,6 @@ class ColumnsManagerService {
|
|
|
712
708
|
this._updateColumns.next(undefined);
|
|
713
709
|
}
|
|
714
710
|
}
|
|
715
|
-
setActionItemColumnPosition(actionItemColumnPosition) {
|
|
716
|
-
const changed = this._actionItemColumnPosition !== actionItemColumnPosition;
|
|
717
|
-
this._actionItemColumnPosition = actionItemColumnPosition;
|
|
718
|
-
if (changed) {
|
|
719
|
-
this._updateColumns.next(undefined);
|
|
720
|
-
}
|
|
721
|
-
}
|
|
722
711
|
setActionMenuCellTpl(actionMenuCellTpl) {
|
|
723
712
|
const changed = this._actionMenuCellTpl !== actionMenuCellTpl;
|
|
724
713
|
this._actionMenuCellTpl = actionMenuCellTpl;
|
|
@@ -797,13 +786,7 @@ class ColumnsManagerService {
|
|
|
797
786
|
cols.push(_col);
|
|
798
787
|
}
|
|
799
788
|
if (this._shouldAddRowActionColumn()) {
|
|
800
|
-
|
|
801
|
-
if (this._rowActionColumnIsStaticLeft()) {
|
|
802
|
-
cols.unshift(actionMenuColumn);
|
|
803
|
-
}
|
|
804
|
-
else {
|
|
805
|
-
cols.push(actionMenuColumn);
|
|
806
|
-
}
|
|
789
|
+
cols.push(createActionMenuColumn(this._actionMenuCellTpl, this._blankHeaderTpl));
|
|
807
790
|
}
|
|
808
791
|
// Make sure the default for any missing props are set.
|
|
809
792
|
// TODO: Determine if this should be done earlier, because I don't like
|
|
@@ -889,18 +872,6 @@ class ColumnsManagerService {
|
|
|
889
872
|
_shouldAddRowActionColumn() {
|
|
890
873
|
return this._rowActionItem !== undefined;
|
|
891
874
|
}
|
|
892
|
-
_rowActionColumnIsFrozenLeft() {
|
|
893
|
-
return this._actionItemColumnPosition === 'frozenLeft';
|
|
894
|
-
}
|
|
895
|
-
_rowActionColumnIsFrozenRight() {
|
|
896
|
-
return this._actionItemColumnPosition === 'frozenRight';
|
|
897
|
-
}
|
|
898
|
-
_rowActionColumnIsStaticLeft() {
|
|
899
|
-
return this._actionItemColumnPosition === 'staticLeft';
|
|
900
|
-
}
|
|
901
|
-
_rowActionColumnIsStaticRight() {
|
|
902
|
-
return this._actionItemColumnPosition === 'staticRight';
|
|
903
|
-
}
|
|
904
875
|
_shouldAddTreeToggleColumn(column) {
|
|
905
876
|
return column.isTreeColumn !== undefined && column.isTreeColumn &&
|
|
906
877
|
(!hasProperty(column, 'treeToggleTemplate') || !notNullOrUndefined(column.treeToggleTemplate));
|
|
@@ -1326,544 +1297,6 @@ function mapColumnsAlterationsStates(states) {
|
|
|
1326
1297
|
return alterations;
|
|
1327
1298
|
}
|
|
1328
1299
|
|
|
1329
|
-
const ActionItemColumnPosition = ['frozenLeft', 'frozenRight', 'staticLeft', 'staticRight'];
|
|
1330
|
-
function isActionItemColumnPosition(input) {
|
|
1331
|
-
return ActionItemColumnPosition.indexOf(input) != -1;
|
|
1332
|
-
}
|
|
1333
|
-
|
|
1334
|
-
class ColumnsDataFilter {
|
|
1335
|
-
constructor(prop, initialValue, column) {
|
|
1336
|
-
this.prop = prop;
|
|
1337
|
-
this.initialValue = initialValue;
|
|
1338
|
-
this.column = column;
|
|
1339
|
-
}
|
|
1340
|
-
}
|
|
1341
|
-
const THESEAM_COLUMNS_DATA_FILTER = new InjectionToken('ColumnsDataFilter');
|
|
1342
|
-
|
|
1343
|
-
const THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME = 'search-date';
|
|
1344
|
-
const THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_TYPES = [
|
|
1345
|
-
'lt',
|
|
1346
|
-
'lte',
|
|
1347
|
-
'gt',
|
|
1348
|
-
'gte',
|
|
1349
|
-
'eq',
|
|
1350
|
-
'blank',
|
|
1351
|
-
'not-blank',
|
|
1352
|
-
'between',
|
|
1353
|
-
'not-between'
|
|
1354
|
-
];
|
|
1355
|
-
const THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES = [
|
|
1356
|
-
'lt',
|
|
1357
|
-
'lte',
|
|
1358
|
-
'gt',
|
|
1359
|
-
'gte',
|
|
1360
|
-
'eq',
|
|
1361
|
-
];
|
|
1362
|
-
const THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES = [
|
|
1363
|
-
'between',
|
|
1364
|
-
'not-between'
|
|
1365
|
-
];
|
|
1366
|
-
const THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES = [
|
|
1367
|
-
'blank',
|
|
1368
|
-
'not-blank',
|
|
1369
|
-
];
|
|
1370
|
-
const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME = 'search-numeric';
|
|
1371
|
-
const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_TYPES = [
|
|
1372
|
-
'gt',
|
|
1373
|
-
'lt',
|
|
1374
|
-
'eq',
|
|
1375
|
-
'gte',
|
|
1376
|
-
'lte',
|
|
1377
|
-
'blank',
|
|
1378
|
-
'not-blank',
|
|
1379
|
-
'between',
|
|
1380
|
-
'not-between'
|
|
1381
|
-
];
|
|
1382
|
-
const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES = [
|
|
1383
|
-
'gt',
|
|
1384
|
-
'lt',
|
|
1385
|
-
'eq',
|
|
1386
|
-
'gte',
|
|
1387
|
-
'lte',
|
|
1388
|
-
];
|
|
1389
|
-
const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES = [
|
|
1390
|
-
'between',
|
|
1391
|
-
'not-between'
|
|
1392
|
-
];
|
|
1393
|
-
const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES = [
|
|
1394
|
-
'blank',
|
|
1395
|
-
'not-blank',
|
|
1396
|
-
];
|
|
1397
|
-
const THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME = 'search-text';
|
|
1398
|
-
const THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_TYPES = [
|
|
1399
|
-
'contains',
|
|
1400
|
-
'ncontains',
|
|
1401
|
-
'eq',
|
|
1402
|
-
'neq',
|
|
1403
|
-
'blank',
|
|
1404
|
-
'not-blank'
|
|
1405
|
-
];
|
|
1406
|
-
const THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES = [
|
|
1407
|
-
'contains',
|
|
1408
|
-
'ncontains',
|
|
1409
|
-
'eq',
|
|
1410
|
-
'neq',
|
|
1411
|
-
];
|
|
1412
|
-
const THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES = [
|
|
1413
|
-
'blank',
|
|
1414
|
-
'not-blank'
|
|
1415
|
-
];
|
|
1416
|
-
|
|
1417
|
-
class SearchDateColumnsDataFilter extends ColumnsDataFilter {
|
|
1418
|
-
constructor(prop, initialValue, column) {
|
|
1419
|
-
super(prop, initialValue, column);
|
|
1420
|
-
this.name = THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME;
|
|
1421
|
-
this._updateFilterValue = new Subject;
|
|
1422
|
-
this.form = new FormGroup({
|
|
1423
|
-
searchType: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchType : 'eq'),
|
|
1424
|
-
searchText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchText : null),
|
|
1425
|
-
fromText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.fromText : null),
|
|
1426
|
-
toText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.toText : null),
|
|
1427
|
-
});
|
|
1428
|
-
this.uid = `${this.name}--${prop}`;
|
|
1429
|
-
this.filterStateChanges = this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.filterState()));
|
|
1430
|
-
this.options = {
|
|
1431
|
-
dateType: this.column.filterOptions?.dateType || 'date'
|
|
1432
|
-
};
|
|
1433
|
-
}
|
|
1434
|
-
dataFilter(data, filterValue, options) {
|
|
1435
|
-
if (isNullOrUndefined(filterValue) || this.isDefault()) {
|
|
1436
|
-
return data;
|
|
1437
|
-
}
|
|
1438
|
-
return this._dateSearchDataFilter(this.prop, data, filterValue.searchText, filterValue.fromText, filterValue.toText, filterValue.searchType || null);
|
|
1439
|
-
}
|
|
1440
|
-
_isInvalidDate(dateString) {
|
|
1441
|
-
return isNullOrUndefinedOrEmpty(dateString) || isNaN(new Date(dateString).valueOf());
|
|
1442
|
-
}
|
|
1443
|
-
_isInvalidSearchTerm(searchText, fromText, toText, comparator) {
|
|
1444
|
-
if (THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(comparator) && this._isInvalidDate(searchText)) {
|
|
1445
|
-
return true;
|
|
1446
|
-
}
|
|
1447
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(comparator) && (this._isInvalidDate(fromText) || this._isInvalidDate(toText))) {
|
|
1448
|
-
return true;
|
|
1449
|
-
}
|
|
1450
|
-
return false;
|
|
1451
|
-
}
|
|
1452
|
-
_dateSearchDataFilter(prop, data, text, fromText, toText, comparator) {
|
|
1453
|
-
if (!data || data.length <= 0 || isNullOrUndefined(comparator)) {
|
|
1454
|
-
console.warn('No filter applied - invalid options.');
|
|
1455
|
-
return data;
|
|
1456
|
-
}
|
|
1457
|
-
if (this._isInvalidSearchTerm(text, fromText, toText, comparator)) {
|
|
1458
|
-
console.warn('No filter applied - invalid search terms.');
|
|
1459
|
-
return data;
|
|
1460
|
-
}
|
|
1461
|
-
const useLocalTime = this.column.filterOptions?.useLocalTime === true;
|
|
1462
|
-
const textDate = getFormattedDateForComparison(text, this.options.dateType, true);
|
|
1463
|
-
const fromTextDate = getFormattedDateForComparison(fromText, this.options.dateType, true);
|
|
1464
|
-
const toTextDate = getFormattedDateForComparison(toText, this.options.dateType, true);
|
|
1465
|
-
return data.filter(item => {
|
|
1466
|
-
let propDate = getFormattedDateForComparison(item[prop], this.options.dateType, useLocalTime);
|
|
1467
|
-
if ((comparator === 'blank' && (isNullOrUndefined(item[prop]) || isNullOrUndefinedOrEmpty(`${item[prop]}`))) ||
|
|
1468
|
-
(comparator === 'not-blank' && notNullOrUndefined(item[prop]) && notNullOrUndefinedOrEmpty(`${item[prop]}`)) ||
|
|
1469
|
-
(comparator === 'lt' && propDate.valueOf() < textDate.valueOf()) ||
|
|
1470
|
-
(comparator === 'lte' && propDate.valueOf() <= textDate.valueOf()) ||
|
|
1471
|
-
(comparator === 'gt' && propDate.valueOf() > textDate.valueOf()) ||
|
|
1472
|
-
(comparator === 'gte' && propDate.valueOf() >= textDate.valueOf()) ||
|
|
1473
|
-
(comparator === 'eq' && propDate.valueOf() === textDate.valueOf()) ||
|
|
1474
|
-
(comparator === 'between' && propDate.valueOf() >= fromTextDate.valueOf() && propDate.valueOf() <= toTextDate.valueOf()) ||
|
|
1475
|
-
(comparator === 'not-between' && !(propDate.valueOf() >= fromTextDate.valueOf() && propDate.valueOf() <= toTextDate.valueOf()))) {
|
|
1476
|
-
return true;
|
|
1477
|
-
}
|
|
1478
|
-
return false;
|
|
1479
|
-
});
|
|
1480
|
-
}
|
|
1481
|
-
filter(data) {
|
|
1482
|
-
return this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.dataFilter(data, this.form.value, undefined)));
|
|
1483
|
-
}
|
|
1484
|
-
filterState() {
|
|
1485
|
-
return {
|
|
1486
|
-
name: this.name,
|
|
1487
|
-
state: {
|
|
1488
|
-
prop: this.prop,
|
|
1489
|
-
formValue: this.form.value,
|
|
1490
|
-
options: this.options
|
|
1491
|
-
}
|
|
1492
|
-
};
|
|
1493
|
-
}
|
|
1494
|
-
applyFilter() {
|
|
1495
|
-
this._updateFilterValue.next();
|
|
1496
|
-
}
|
|
1497
|
-
clearFilter() {
|
|
1498
|
-
this.form.setValue({
|
|
1499
|
-
searchType: 'eq',
|
|
1500
|
-
searchText: null,
|
|
1501
|
-
fromText: null,
|
|
1502
|
-
toText: null
|
|
1503
|
-
});
|
|
1504
|
-
this._updateFilterValue.next();
|
|
1505
|
-
}
|
|
1506
|
-
isDefault() {
|
|
1507
|
-
const formValue = this.form.value;
|
|
1508
|
-
if (isNullOrUndefinedOrEmpty(formValue.searchType)) {
|
|
1509
|
-
return true;
|
|
1510
|
-
}
|
|
1511
|
-
if (THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
|
|
1512
|
-
return false;
|
|
1513
|
-
}
|
|
1514
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefinedOrEmpty(formValue.searchText)) {
|
|
1515
|
-
return false;
|
|
1516
|
-
}
|
|
1517
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefinedOrEmpty(formValue.fromText) && notNullOrUndefinedOrEmpty(formValue.toText)) {
|
|
1518
|
-
return false;
|
|
1519
|
-
}
|
|
1520
|
-
return true;
|
|
1521
|
-
}
|
|
1522
|
-
}
|
|
1523
|
-
|
|
1524
|
-
class SearchNumericColumnsDataFilter extends ColumnsDataFilter {
|
|
1525
|
-
constructor(prop, initialValue, column) {
|
|
1526
|
-
super(prop, initialValue, column);
|
|
1527
|
-
this.name = THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME;
|
|
1528
|
-
this._updateFilterValue = new Subject;
|
|
1529
|
-
this.form = new FormGroup({
|
|
1530
|
-
searchType: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchType : 'eq'),
|
|
1531
|
-
searchText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchText : null),
|
|
1532
|
-
fromText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.fromText : null),
|
|
1533
|
-
toText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.toText : null),
|
|
1534
|
-
});
|
|
1535
|
-
this.uid = `${this.name}--${prop}`;
|
|
1536
|
-
this.filterStateChanges = this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.filterState()));
|
|
1537
|
-
}
|
|
1538
|
-
dataFilter(data, filterValue, options) {
|
|
1539
|
-
if (isNullOrUndefined(filterValue) || this.isDefault()) {
|
|
1540
|
-
return data;
|
|
1541
|
-
}
|
|
1542
|
-
return this.numberSearchDataFilter(this.prop, data, filterValue.searchText, filterValue.fromText, filterValue.toText, filterValue.searchType || null);
|
|
1543
|
-
}
|
|
1544
|
-
_isInvalidSearchTerm(searchText, fromText, toText, comparator) {
|
|
1545
|
-
if (isNaN(searchText) && THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(comparator)) {
|
|
1546
|
-
return true;
|
|
1547
|
-
}
|
|
1548
|
-
else if ((isNaN(fromText) || isNaN(toText)) && THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(comparator)) {
|
|
1549
|
-
return true;
|
|
1550
|
-
}
|
|
1551
|
-
return false;
|
|
1552
|
-
}
|
|
1553
|
-
numberSearchDataFilter(prop, data, text, fromText, toText, comparator) {
|
|
1554
|
-
if (!data || data.length <= 0 || isNullOrUndefined(comparator)) {
|
|
1555
|
-
console.warn('No filter applied - invalid options.');
|
|
1556
|
-
return data;
|
|
1557
|
-
}
|
|
1558
|
-
const textNumeric = notNullOrUndefinedOrEmpty(text) ? parseFloat(text) : NaN;
|
|
1559
|
-
const toTextNumeric = notNullOrUndefinedOrEmpty(toText) ? parseFloat(toText) : NaN;
|
|
1560
|
-
const fromTextNumeric = notNullOrUndefinedOrEmpty(fromText) ? parseFloat(fromText) : NaN;
|
|
1561
|
-
if (this._isInvalidSearchTerm(textNumeric, fromTextNumeric, toTextNumeric, comparator)) {
|
|
1562
|
-
console.warn('No filter applied - invalid search terms.');
|
|
1563
|
-
return data;
|
|
1564
|
-
}
|
|
1565
|
-
return data.filter(item => {
|
|
1566
|
-
let propNumeric = parseFloat(item[prop]);
|
|
1567
|
-
if ((comparator === 'blank' && (isNullOrUndefined(item[prop]) || isNullOrUndefinedOrEmpty(`${item[prop]}`))) ||
|
|
1568
|
-
(comparator === 'not-blank' && notNullOrUndefined(item[prop]) && notNullOrUndefinedOrEmpty(`${item[prop]}`)) ||
|
|
1569
|
-
(comparator === 'lt' && propNumeric < textNumeric) ||
|
|
1570
|
-
(comparator === 'lte' && propNumeric <= textNumeric) ||
|
|
1571
|
-
(comparator === 'gt' && propNumeric > textNumeric) ||
|
|
1572
|
-
(comparator === 'gte' && propNumeric >= textNumeric) ||
|
|
1573
|
-
(comparator === 'eq' && propNumeric === textNumeric) ||
|
|
1574
|
-
(comparator === 'between' && propNumeric >= fromTextNumeric && propNumeric <= toTextNumeric) ||
|
|
1575
|
-
(comparator === 'not-between' && !(propNumeric >= fromTextNumeric && propNumeric <= toTextNumeric))) {
|
|
1576
|
-
return true;
|
|
1577
|
-
}
|
|
1578
|
-
return false;
|
|
1579
|
-
});
|
|
1580
|
-
}
|
|
1581
|
-
filter(data) {
|
|
1582
|
-
return this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.dataFilter(data, this.form.value, undefined)));
|
|
1583
|
-
}
|
|
1584
|
-
filterState() {
|
|
1585
|
-
return {
|
|
1586
|
-
name: this.name,
|
|
1587
|
-
state: {
|
|
1588
|
-
prop: this.prop,
|
|
1589
|
-
formValue: this.form.value
|
|
1590
|
-
}
|
|
1591
|
-
};
|
|
1592
|
-
}
|
|
1593
|
-
applyFilter() {
|
|
1594
|
-
this._updateFilterValue.next();
|
|
1595
|
-
}
|
|
1596
|
-
clearFilter() {
|
|
1597
|
-
this.form.setValue({
|
|
1598
|
-
searchType: 'eq',
|
|
1599
|
-
searchText: null,
|
|
1600
|
-
fromText: null,
|
|
1601
|
-
toText: null
|
|
1602
|
-
});
|
|
1603
|
-
this._updateFilterValue.next();
|
|
1604
|
-
}
|
|
1605
|
-
isDefault() {
|
|
1606
|
-
const formValue = this.form.value;
|
|
1607
|
-
if (isNullOrUndefinedOrEmpty(formValue.searchType)) {
|
|
1608
|
-
return true;
|
|
1609
|
-
}
|
|
1610
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
|
|
1611
|
-
return false;
|
|
1612
|
-
}
|
|
1613
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefinedOrEmpty(formValue.searchText)) {
|
|
1614
|
-
return false;
|
|
1615
|
-
}
|
|
1616
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefinedOrEmpty(formValue.fromText) && notNullOrUndefinedOrEmpty(formValue.toText)) {
|
|
1617
|
-
return false;
|
|
1618
|
-
}
|
|
1619
|
-
return true;
|
|
1620
|
-
}
|
|
1621
|
-
}
|
|
1622
|
-
|
|
1623
|
-
class SearchTextColumnsDataFilter extends ColumnsDataFilter {
|
|
1624
|
-
constructor(prop, initialValue, column) {
|
|
1625
|
-
super(prop, initialValue, column);
|
|
1626
|
-
this.name = THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME;
|
|
1627
|
-
this._updateFilterValue = new Subject;
|
|
1628
|
-
this.form = new FormGroup({
|
|
1629
|
-
searchType: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchType : 'contains'),
|
|
1630
|
-
searchText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchText : null),
|
|
1631
|
-
// caseSensitive: new FormControl<boolean | null>(notNullOrUndefined(initialValue) ? initialValue.caseSensitive : null),
|
|
1632
|
-
});
|
|
1633
|
-
this.uid = `${this.name}--${prop}`;
|
|
1634
|
-
this.filterStateChanges = this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.filterState()));
|
|
1635
|
-
}
|
|
1636
|
-
dataFilter(data, filterValue, options) {
|
|
1637
|
-
if (isNullOrUndefined(filterValue) || this.isDefault()) {
|
|
1638
|
-
return data;
|
|
1639
|
-
}
|
|
1640
|
-
return this._textSearchDataFilter(this.prop, data, filterValue.searchText, filterValue.searchType || null);
|
|
1641
|
-
}
|
|
1642
|
-
_textSearchDataFilter(prop, data, text, comparator) {
|
|
1643
|
-
if (!data || data.length < 0 || isNullOrUndefined(comparator)) {
|
|
1644
|
-
return data;
|
|
1645
|
-
}
|
|
1646
|
-
return data.filter(item => {
|
|
1647
|
-
let value1 = `${notNullOrUndefined(item[prop]) ? item[prop] : ''}`;
|
|
1648
|
-
let value2 = text || '';
|
|
1649
|
-
// if (!options.caseSensitive) {
|
|
1650
|
-
// value1 = value1.toLowerCase()
|
|
1651
|
-
// value2 = value2.toLowerCase()
|
|
1652
|
-
// }
|
|
1653
|
-
value1 = value1.toLowerCase();
|
|
1654
|
-
value2 = value2.toLowerCase();
|
|
1655
|
-
if ((comparator === 'eq' && value1 === value2) ||
|
|
1656
|
-
(comparator === 'neq' && value1 !== value2) ||
|
|
1657
|
-
(comparator === 'contains' && value1.indexOf(value2) !== -1) ||
|
|
1658
|
-
(comparator === 'ncontains' && value1.indexOf(value2) === -1) ||
|
|
1659
|
-
(comparator === 'blank' && isNullOrUndefinedOrEmpty(value1)) ||
|
|
1660
|
-
(comparator === 'not-blank' && notNullOrUndefinedOrEmpty(value1))) {
|
|
1661
|
-
return true;
|
|
1662
|
-
}
|
|
1663
|
-
return false;
|
|
1664
|
-
});
|
|
1665
|
-
}
|
|
1666
|
-
filter(data) {
|
|
1667
|
-
return this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.dataFilter(data, this.form.value, undefined)));
|
|
1668
|
-
}
|
|
1669
|
-
filterState() {
|
|
1670
|
-
return {
|
|
1671
|
-
name: this.name,
|
|
1672
|
-
state: {
|
|
1673
|
-
prop: this.prop,
|
|
1674
|
-
formValue: this.form.value,
|
|
1675
|
-
}
|
|
1676
|
-
};
|
|
1677
|
-
}
|
|
1678
|
-
applyFilter() {
|
|
1679
|
-
this._updateFilterValue.next();
|
|
1680
|
-
}
|
|
1681
|
-
clearFilter() {
|
|
1682
|
-
this.form.setValue({
|
|
1683
|
-
searchType: 'contains',
|
|
1684
|
-
searchText: null,
|
|
1685
|
-
// caseSensitive: null
|
|
1686
|
-
});
|
|
1687
|
-
this._updateFilterValue.next();
|
|
1688
|
-
}
|
|
1689
|
-
isDefault() {
|
|
1690
|
-
const formValue = this.form.value;
|
|
1691
|
-
if (isNullOrUndefinedOrEmpty(formValue.searchType)) {
|
|
1692
|
-
return true;
|
|
1693
|
-
}
|
|
1694
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefinedOrEmpty(formValue.searchText)) {
|
|
1695
|
-
return false;
|
|
1696
|
-
}
|
|
1697
|
-
else if (THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
|
|
1698
|
-
return false;
|
|
1699
|
-
}
|
|
1700
|
-
return true;
|
|
1701
|
-
}
|
|
1702
|
-
}
|
|
1703
|
-
|
|
1704
|
-
const THESEAM_COLUMNS_DATA_FILTERS_DEFAULT = [
|
|
1705
|
-
{ name: THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME, class: SearchTextColumnsDataFilter },
|
|
1706
|
-
{ name: THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME, class: SearchNumericColumnsDataFilter },
|
|
1707
|
-
{ name: THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME, class: SearchDateColumnsDataFilter },
|
|
1708
|
-
];
|
|
1709
|
-
const getFormattedDateForComparison = (date, dateType, setToLocalTime = false) => {
|
|
1710
|
-
const dateObj = new Date(notNullOrUndefined(date) ? date : '');
|
|
1711
|
-
if (dateType === 'datetime-local') {
|
|
1712
|
-
// reset seconds and ms, since they can't be specified from the search input
|
|
1713
|
-
dateObj.setSeconds(0);
|
|
1714
|
-
dateObj.setMilliseconds(0);
|
|
1715
|
-
}
|
|
1716
|
-
else if (dateType === 'date') {
|
|
1717
|
-
if (setToLocalTime) {
|
|
1718
|
-
// set date from input type="date" to current timezone, to match expected behavior
|
|
1719
|
-
dateObj.setMinutes(dateObj.getMinutes() + dateObj.getTimezoneOffset());
|
|
1720
|
-
}
|
|
1721
|
-
// reset hours/minutes/seconds/ms, since they can't be specified from the search input
|
|
1722
|
-
dateObj.setHours(0, 0, 0, 0);
|
|
1723
|
-
}
|
|
1724
|
-
return dateObj;
|
|
1725
|
-
};
|
|
1726
|
-
|
|
1727
|
-
class ColumnsFiltersService {
|
|
1728
|
-
constructor(_customColumnsDataFilters) {
|
|
1729
|
-
this._customColumnsDataFilters = _customColumnsDataFilters;
|
|
1730
|
-
this._columnFilterTemplates = new BehaviorSubject([]);
|
|
1731
|
-
this.columnFilterTemplates$ = this._columnFilterTemplates.asObservable();
|
|
1732
|
-
this._columnsFilters = new BehaviorSubject([]);
|
|
1733
|
-
this.columnsFilters$ = this._columnsFilters.asObservable();
|
|
1734
|
-
this.columnActiveFilterProps$ = this.columnsFilters$.pipe(switchMap$1(filters => {
|
|
1735
|
-
if (!filters.length) {
|
|
1736
|
-
return of([]);
|
|
1737
|
-
}
|
|
1738
|
-
return combineLatest(filters.map(f => f.filterStateChanges.pipe(map$1(filterState => !f.isDefault() ? filterState.state.prop : null))));
|
|
1739
|
-
}), map$1(props => props.filter(notNullOrUndefined)));
|
|
1740
|
-
}
|
|
1741
|
-
registerColumnFilters(columns) {
|
|
1742
|
-
this._columnsFilters.next([]);
|
|
1743
|
-
const filters = columns
|
|
1744
|
-
.filter(col => col.filterable)
|
|
1745
|
-
.map(col => this.createColumnDataFilter(col, null));
|
|
1746
|
-
this._columnsFilters.next(filters.filter(notNullOrUndefined));
|
|
1747
|
-
}
|
|
1748
|
-
setFilterTemplates(tpls) {
|
|
1749
|
-
this._columnFilterTemplates.next(tpls);
|
|
1750
|
-
}
|
|
1751
|
-
createColumnDataFilter(column, initialValue) {
|
|
1752
|
-
const prop = this.getColumnFilterProp(column);
|
|
1753
|
-
if (isNullOrUndefined(prop)) {
|
|
1754
|
-
return null;
|
|
1755
|
-
}
|
|
1756
|
-
return this._getColumnsDataFilter(prop, column, initialValue);
|
|
1757
|
-
}
|
|
1758
|
-
_getColumnsDataFilter(prop, column, initialValue) {
|
|
1759
|
-
const filterClass = this._getColumnsDataFilterType(column);
|
|
1760
|
-
let filter;
|
|
1761
|
-
if (notNullOrUndefined(this._customColumnsDataFilters)) {
|
|
1762
|
-
filter = this._customColumnsDataFilters.find(x => x.name === filterClass);
|
|
1763
|
-
}
|
|
1764
|
-
if (isNullOrUndefined(filter)) {
|
|
1765
|
-
filter = THESEAM_COLUMNS_DATA_FILTERS_DEFAULT.find(x => x.name === filterClass);
|
|
1766
|
-
}
|
|
1767
|
-
if (notNullOrUndefined(filter)) {
|
|
1768
|
-
return new filter.class(prop, initialValue, column);
|
|
1769
|
-
}
|
|
1770
|
-
return null;
|
|
1771
|
-
}
|
|
1772
|
-
_getColumnsDataFilterType(column) {
|
|
1773
|
-
if (notNullOrUndefined(column.filterOptions) && notNullOrUndefined(column.filterOptions.filterType)) {
|
|
1774
|
-
return column.filterOptions.filterType;
|
|
1775
|
-
}
|
|
1776
|
-
else if (notNullOrUndefined(column.cellType)) {
|
|
1777
|
-
switch (column.cellType) {
|
|
1778
|
-
case 'string':
|
|
1779
|
-
case 'phone':
|
|
1780
|
-
return THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME;
|
|
1781
|
-
case 'currency':
|
|
1782
|
-
case 'decimal':
|
|
1783
|
-
case 'integer':
|
|
1784
|
-
return THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME;
|
|
1785
|
-
case 'date':
|
|
1786
|
-
return THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME;
|
|
1787
|
-
}
|
|
1788
|
-
}
|
|
1789
|
-
return THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME;
|
|
1790
|
-
}
|
|
1791
|
-
getColumnFilterProp(column) {
|
|
1792
|
-
if (isNullOrUndefined(column)) {
|
|
1793
|
-
return null;
|
|
1794
|
-
}
|
|
1795
|
-
const prop = column.filterOptions?.filterProp || column.prop || (notNullOrUndefined(column.name) ? camelCase(column.name) : undefined);
|
|
1796
|
-
if (isNullOrUndefined(prop)) {
|
|
1797
|
-
return null;
|
|
1798
|
-
}
|
|
1799
|
-
return `${prop}`;
|
|
1800
|
-
}
|
|
1801
|
-
getColumnFilter(prop) {
|
|
1802
|
-
if (isNullOrUndefined(prop)) {
|
|
1803
|
-
return undefined;
|
|
1804
|
-
}
|
|
1805
|
-
return this._columnsFilters.value.find(f => f.prop === prop);
|
|
1806
|
-
}
|
|
1807
|
-
filters() {
|
|
1808
|
-
return this._columnsFilters.value;
|
|
1809
|
-
}
|
|
1810
|
-
addFilter(filter) {
|
|
1811
|
-
this._columnsFilters.next([...this._columnsFilters.value, filter]);
|
|
1812
|
-
}
|
|
1813
|
-
removeFilter(filter) {
|
|
1814
|
-
this._columnsFilters.next([...this._columnsFilters.value.filter(c => c.name !== filter.name)]);
|
|
1815
|
-
}
|
|
1816
|
-
}
|
|
1817
|
-
ColumnsFiltersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsFiltersService, deps: [{ token: THESEAM_COLUMNS_DATA_FILTER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1818
|
-
ColumnsFiltersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsFiltersService });
|
|
1819
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsFiltersService, decorators: [{
|
|
1820
|
-
type: Injectable
|
|
1821
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1822
|
-
type: Optional
|
|
1823
|
-
}, {
|
|
1824
|
-
type: Inject,
|
|
1825
|
-
args: [THESEAM_COLUMNS_DATA_FILTER]
|
|
1826
|
-
}] }]; } });
|
|
1827
|
-
|
|
1828
|
-
const THESEAM_DATATABLE_CONFIG = new InjectionToken('TheSeamDatatableConfig');
|
|
1829
|
-
|
|
1830
|
-
class DatatableColumnFilterTplDirective {
|
|
1831
|
-
constructor(template) {
|
|
1832
|
-
this.template = template;
|
|
1833
|
-
}
|
|
1834
|
-
}
|
|
1835
|
-
DatatableColumnFilterTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1836
|
-
DatatableColumnFilterTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnFilterTplDirective, selector: "[seamDatatableColumnFilterTpl]", ngImport: i0 });
|
|
1837
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterTplDirective, decorators: [{
|
|
1838
|
-
type: Directive,
|
|
1839
|
-
args: [{
|
|
1840
|
-
selector: '[seamDatatableColumnFilterTpl]'
|
|
1841
|
-
}]
|
|
1842
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
1843
|
-
|
|
1844
|
-
class TheSeamDatatableColumnFilterDirective {
|
|
1845
|
-
get template() {
|
|
1846
|
-
return this._templateInput || this._templateQuery;
|
|
1847
|
-
}
|
|
1848
|
-
}
|
|
1849
|
-
TheSeamDatatableColumnFilterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableColumnFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1850
|
-
TheSeamDatatableColumnFilterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamDatatableColumnFilterDirective, 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 });
|
|
1851
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableColumnFilterDirective, decorators: [{
|
|
1852
|
-
type: Directive,
|
|
1853
|
-
args: [{
|
|
1854
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
1855
|
-
selector: 'seam-datatable-column-filter'
|
|
1856
|
-
}]
|
|
1857
|
-
}], propDecorators: { filterName: [{
|
|
1858
|
-
type: Input
|
|
1859
|
-
}], _templateInput: [{
|
|
1860
|
-
type: Input,
|
|
1861
|
-
args: ['template']
|
|
1862
|
-
}], _templateQuery: [{
|
|
1863
|
-
type: ContentChild,
|
|
1864
|
-
args: [DatatableColumnFilterTplDirective, { read: TemplateRef, static: true }]
|
|
1865
|
-
}] } });
|
|
1866
|
-
|
|
1867
1300
|
const CURRENT_DATATABLE_PREFERENCES_VERSION = 2;
|
|
1868
1301
|
const EMPTY_DATATABLE_PREFERENCES = {
|
|
1869
1302
|
version: 2,
|
|
@@ -1959,163 +1392,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
1959
1392
|
args: [THESEAM_DATATABLE_PREFERENCES_ACCESSOR]
|
|
1960
1393
|
}] }]; } });
|
|
1961
1394
|
|
|
1962
|
-
class DatatableColumnFilterSearchTextComponent {
|
|
1963
|
-
constructor() {
|
|
1964
|
-
this.searchTypes = [
|
|
1965
|
-
{ label: 'Contains', value: 'contains' },
|
|
1966
|
-
{ label: 'Does not contain', value: 'ncontains' },
|
|
1967
|
-
{ label: 'Matches exactly', value: 'eq' },
|
|
1968
|
-
{ label: 'Does not match exactly', value: 'neq' },
|
|
1969
|
-
{ label: 'Is blank', value: 'blank' },
|
|
1970
|
-
{ label: 'Is not blank', value: 'not-blank' },
|
|
1971
|
-
];
|
|
1972
|
-
}
|
|
1973
|
-
ngOnInit() {
|
|
1974
|
-
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 || '')));
|
|
1975
|
-
}
|
|
1976
|
-
}
|
|
1977
|
-
DatatableColumnFilterSearchTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterSearchTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1978
|
-
DatatableColumnFilterSearchTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnFilterSearchTextComponent, 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\"></ng-select>\n </seam-form-field>\n <ng-container *ngIf=\"showTextbox$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\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.AutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i2$2.NgSelectExtraDirective, selector: "ng-select" }, { 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-checkbox[seamInput] [ngbRadioGroup], 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: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], viewProviders: [
|
|
1979
|
-
{
|
|
1980
|
-
provide: ControlContainer,
|
|
1981
|
-
useExisting: FormGroupDirective
|
|
1982
|
-
}
|
|
1983
|
-
] });
|
|
1984
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterSearchTextComponent, decorators: [{
|
|
1985
|
-
type: Component,
|
|
1986
|
-
args: [{ selector: 'seam-datatable-column-filter-search-text', viewProviders: [
|
|
1987
|
-
{
|
|
1988
|
-
provide: ControlContainer,
|
|
1989
|
-
useExisting: FormGroupDirective
|
|
1990
|
-
}
|
|
1991
|
-
], 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 seamInput formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\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" }]
|
|
1992
|
-
}], propDecorators: { filterForm: [{
|
|
1993
|
-
type: Input
|
|
1994
|
-
}] } });
|
|
1995
|
-
|
|
1996
|
-
class DatatableColumnFilterSearchNumericComponent {
|
|
1997
|
-
constructor() {
|
|
1998
|
-
this.searchTypes = [
|
|
1999
|
-
{ label: 'Less than (<)', value: 'lt' },
|
|
2000
|
-
{ label: 'Less than or equal to (<=)', value: 'lte' },
|
|
2001
|
-
{ label: 'Equal to (=)', value: 'eq' },
|
|
2002
|
-
{ label: 'Greater than (>)', value: 'gt' },
|
|
2003
|
-
{ label: 'Greater than or equal to (>=)', value: 'gte' },
|
|
2004
|
-
{ label: 'Between', value: 'between' },
|
|
2005
|
-
{ label: 'Not between', value: 'not-between' },
|
|
2006
|
-
{ label: 'Blank', value: 'blank' },
|
|
2007
|
-
{ label: 'Not blank', value: 'not-blank' },
|
|
2008
|
-
];
|
|
2009
|
-
}
|
|
2010
|
-
ngOnInit() {
|
|
2011
|
-
this.showSearchInput$ = 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 || '')));
|
|
2012
|
-
this.showRangeInputs$ = 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 || '')));
|
|
2013
|
-
}
|
|
2014
|
-
}
|
|
2015
|
-
DatatableColumnFilterSearchNumericComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterSearchNumericComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2016
|
-
DatatableColumnFilterSearchNumericComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnFilterSearchNumericComponent, 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\"></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\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 seamInput formControlName=\"fromText\" placeholder=\"Range Start\" seamAutoFocus>\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.AutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i2$2.NgSelectExtraDirective, selector: "ng-select" }, { 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-checkbox[seamInput] [ngbRadioGroup], 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: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], viewProviders: [
|
|
2017
|
-
{
|
|
2018
|
-
provide: ControlContainer,
|
|
2019
|
-
useExisting: FormGroupDirective
|
|
2020
|
-
}
|
|
2021
|
-
] });
|
|
2022
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterSearchNumericComponent, decorators: [{
|
|
2023
|
-
type: Component,
|
|
2024
|
-
args: [{ selector: 'seam-datatable-column-filter-search-numeric', viewProviders: [
|
|
2025
|
-
{
|
|
2026
|
-
provide: ControlContainer,
|
|
2027
|
-
useExisting: FormGroupDirective
|
|
2028
|
-
}
|
|
2029
|
-
], 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 seamInput formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\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 seamInput formControlName=\"fromText\" placeholder=\"Range Start\" seamAutoFocus>\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" }]
|
|
2030
|
-
}], propDecorators: { filterForm: [{
|
|
2031
|
-
type: Input
|
|
2032
|
-
}] } });
|
|
2033
|
-
|
|
2034
|
-
class DatatableColumnFilterSearchDateComponent {
|
|
2035
|
-
constructor() {
|
|
2036
|
-
this.searchTypes = [
|
|
2037
|
-
{ label: 'Before', value: 'lt' },
|
|
2038
|
-
{ label: 'Before or on', value: 'lte' },
|
|
2039
|
-
{ label: 'On', value: 'eq' },
|
|
2040
|
-
{ label: 'After', value: 'gt' },
|
|
2041
|
-
{ label: 'After or on', value: 'gte' },
|
|
2042
|
-
{ label: 'Between', value: 'between' },
|
|
2043
|
-
{ label: 'Not between', value: 'not-between' },
|
|
2044
|
-
{ label: 'Blank', value: 'blank' },
|
|
2045
|
-
{ label: 'Not blank', value: 'not-blank' },
|
|
2046
|
-
];
|
|
2047
|
-
}
|
|
2048
|
-
ngOnInit() {
|
|
2049
|
-
if (notNullOrUndefined(this.options?.dateType)) {
|
|
2050
|
-
this.dateFormat = this.options?.dateType;
|
|
2051
|
-
}
|
|
2052
|
-
this.showSearchInput$ = 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 || '')));
|
|
2053
|
-
this.showRangeInputs$ = 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 || '')));
|
|
2054
|
-
}
|
|
2055
|
-
}
|
|
2056
|
-
DatatableColumnFilterSearchDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterSearchDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2057
|
-
DatatableColumnFilterSearchDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnFilterSearchDateComponent, 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\"></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput [type]=\"dateFormat\" formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\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 seamInput [type]=\"dateFormat\" formControlName=\"fromText\" placeholder=\"Range Start\" seamAutoFocus>\n </seam-form-field>\n\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput [type]=\"dateFormat\" 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.AutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i2$2.NgSelectExtraDirective, selector: "ng-select" }, { 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-checkbox[seamInput] [ngbRadioGroup], 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: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], viewProviders: [
|
|
2058
|
-
{
|
|
2059
|
-
provide: ControlContainer,
|
|
2060
|
-
useExisting: FormGroupDirective
|
|
2061
|
-
}
|
|
2062
|
-
] });
|
|
2063
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterSearchDateComponent, decorators: [{
|
|
2064
|
-
type: Component,
|
|
2065
|
-
args: [{ selector: 'seam-datatable-column-filter-search-date', viewProviders: [
|
|
2066
|
-
{
|
|
2067
|
-
provide: ControlContainer,
|
|
2068
|
-
useExisting: FormGroupDirective
|
|
2069
|
-
}
|
|
2070
|
-
], 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 seamInput [type]=\"dateFormat\" formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\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 seamInput [type]=\"dateFormat\" formControlName=\"fromText\" placeholder=\"Range Start\" seamAutoFocus>\n </seam-form-field>\n\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput [type]=\"dateFormat\" formControlName=\"toText\" placeholder=\"Range End\">\n </seam-form-field>\n </ng-container>\n</ng-container>\n" }]
|
|
2071
|
-
}], propDecorators: { options: [{
|
|
2072
|
-
type: Input
|
|
2073
|
-
}], filterForm: [{
|
|
2074
|
-
type: Input
|
|
2075
|
-
}] } });
|
|
2076
|
-
|
|
2077
|
-
class DatatableColumnFilterMenuComponent {
|
|
2078
|
-
constructor(_columnsFilters) {
|
|
2079
|
-
this._columnsFilters = _columnsFilters;
|
|
2080
|
-
this.closePopover = new EventEmitter();
|
|
2081
|
-
}
|
|
2082
|
-
ngOnInit() {
|
|
2083
|
-
this.columnFilterProp = this._columnsFilters.getColumnFilterProp(this.column);
|
|
2084
|
-
this.columnFilter = this._columnsFilters.getColumnFilter(this.columnFilterProp);
|
|
2085
|
-
if (notNullOrUndefined(this.columnFilter)) {
|
|
2086
|
-
this._filterForm = this.columnFilter.form;
|
|
2087
|
-
}
|
|
2088
|
-
this.customFilterTemplate$ = this._columnsFilters.columnFilterTemplates$.pipe(map$1(templates => templates.find(t => t.filterName === this.columnFilter?.name)));
|
|
2089
|
-
if (this.updateMethod === 'valueChanges' && notNullOrUndefined(this._filterForm)) {
|
|
2090
|
-
this._filterForm.valueChanges.pipe(debounceTime(this.debounce || 0), tap$1(() => this.columnFilter?.applyFilter())).subscribe();
|
|
2091
|
-
}
|
|
2092
|
-
}
|
|
2093
|
-
submit() {
|
|
2094
|
-
this.columnFilter?.applyFilter();
|
|
2095
|
-
this.closePopover.emit();
|
|
2096
|
-
}
|
|
2097
|
-
clearFilter() {
|
|
2098
|
-
this.columnFilter?.clearFilter();
|
|
2099
|
-
}
|
|
2100
|
-
}
|
|
2101
|
-
DatatableColumnFilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterMenuComponent, deps: [{ token: ColumnsFiltersService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2102
|
-
DatatableColumnFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnFilterMenuComponent, 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 [filterForm]=\"_filterForm\"></seam-datatable-column-filter-search-text>\n </div>\n <div *ngSwitchCase=\"'search-numeric'\">\n <seam-datatable-column-filter-search-numeric [filterForm]=\"_filterForm\"></seam-datatable-column-filter-search-numeric>\n </div>\n <div *ngSwitchCase=\"'search-date'\">\n <seam-datatable-column-filter-search-date [filterForm]=\"_filterForm\" [options]=\"columnFilter.options\"></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]=\"{ $implicit: _filterForm, filterForm: _filterForm, options: columnFilter.options, column: column, columnFilter: columnFilter }\">\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n\n <hr class=\"mb-1\">\n <div class=\"d-flex align-items-center\" [class.justify-content-between]=\"updateMethod === 'submit'\" [class.text-right]=\"updateMethod === 'valueChanges'\">\n <button seamButton size=\"sm\" class=\"text-primary p-0\" (click)=\"clearFilter()\" [disabled]=\"columnFilter?.isDefault() === true\">Clear</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 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" }] });
|
|
2103
|
-
__decorate([
|
|
2104
|
-
InputNumber()
|
|
2105
|
-
], DatatableColumnFilterMenuComponent.prototype, "debounce", void 0);
|
|
2106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterMenuComponent, decorators: [{
|
|
2107
|
-
type: Component,
|
|
2108
|
-
args: [{ selector: 'seam-datatable-column-filter-menu', 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 [filterForm]=\"_filterForm\"></seam-datatable-column-filter-search-text>\n </div>\n <div *ngSwitchCase=\"'search-numeric'\">\n <seam-datatable-column-filter-search-numeric [filterForm]=\"_filterForm\"></seam-datatable-column-filter-search-numeric>\n </div>\n <div *ngSwitchCase=\"'search-date'\">\n <seam-datatable-column-filter-search-date [filterForm]=\"_filterForm\" [options]=\"columnFilter.options\"></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]=\"{ $implicit: _filterForm, filterForm: _filterForm, options: columnFilter.options, column: column, columnFilter: columnFilter }\">\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n\n <hr class=\"mb-1\">\n <div class=\"d-flex align-items-center\" [class.justify-content-between]=\"updateMethod === 'submit'\" [class.text-right]=\"updateMethod === 'valueChanges'\">\n <button seamButton size=\"sm\" class=\"text-primary p-0\" (click)=\"clearFilter()\" [disabled]=\"columnFilter?.isDefault() === true\">Clear</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 Apply\n </button>\n </div>\n </form>\n</ng-container>\n" }]
|
|
2109
|
-
}], ctorParameters: function () { return [{ type: ColumnsFiltersService }]; }, propDecorators: { column: [{
|
|
2110
|
-
type: Input
|
|
2111
|
-
}], updateMethod: [{
|
|
2112
|
-
type: Input
|
|
2113
|
-
}], debounce: [{
|
|
2114
|
-
type: Input
|
|
2115
|
-
}], closePopover: [{
|
|
2116
|
-
type: Output
|
|
2117
|
-
}] } });
|
|
2118
|
-
|
|
2119
1395
|
/**
|
|
2120
1396
|
* Intended for internal classes declared by the `TheSeamDatatableModule`.
|
|
2121
1397
|
*/
|
|
@@ -2131,17 +1407,11 @@ const _THESEAM_DATATABLE_ACCESSOR = {
|
|
|
2131
1407
|
useExisting: forwardRef(() => DatatableComponent)
|
|
2132
1408
|
};
|
|
2133
1409
|
class DatatableComponent {
|
|
2134
|
-
get filters() {
|
|
2135
|
-
return [
|
|
2136
|
-
...this._menuBarsFiltersSubject.value,
|
|
2137
|
-
...this._columnsFilters.filters()
|
|
2138
|
-
];
|
|
2139
|
-
}
|
|
1410
|
+
get filters() { return this._filtersSubject.value; }
|
|
2140
1411
|
get preferencesKey() { return this._preferencesKey.value; }
|
|
2141
1412
|
set preferencesKey(value) { this._preferencesKey.next(value || undefined); }
|
|
2142
1413
|
set columns(value) {
|
|
2143
1414
|
this._columnsManager.setInputColumns(Array.isArray(value) ? value : []);
|
|
2144
|
-
this._columnsFilters.registerColumnFilters(Array.isArray(value) ? value : []);
|
|
2145
1415
|
}
|
|
2146
1416
|
get rows() { return this._rows.value; }
|
|
2147
1417
|
set rows(value) {
|
|
@@ -2166,145 +1436,12 @@ class DatatableComponent {
|
|
|
2166
1436
|
set sorts(value) {
|
|
2167
1437
|
this._sorts = notNullOrUndefined(value) ? coerceArray(value) : [];
|
|
2168
1438
|
}
|
|
2169
|
-
get cssClasses() {
|
|
2170
|
-
return this._cssClasses;
|
|
2171
|
-
}
|
|
2172
|
-
set cssClasses(value) {
|
|
2173
|
-
if (notNullOrUndefined(value)) {
|
|
2174
|
-
this._cssClasses = value;
|
|
2175
|
-
}
|
|
2176
|
-
else if (notNullOrUndefined(this._config?.cssClasses)) {
|
|
2177
|
-
this._cssClasses = this._config?.cssClasses;
|
|
2178
|
-
}
|
|
2179
|
-
else {
|
|
2180
|
-
this._cssClasses = this._cssClassesDefault;
|
|
2181
|
-
}
|
|
2182
|
-
}
|
|
2183
|
-
get messages() {
|
|
2184
|
-
return this._messages;
|
|
2185
|
-
}
|
|
2186
|
-
set messages(value) {
|
|
2187
|
-
if (notNullOrUndefined(value)) {
|
|
2188
|
-
this._messages = value;
|
|
2189
|
-
}
|
|
2190
|
-
else if (notNullOrUndefined(this._config?.messages)) {
|
|
2191
|
-
this._messages = {
|
|
2192
|
-
...this._messagesDefault,
|
|
2193
|
-
...this._config?.messages
|
|
2194
|
-
};
|
|
2195
|
-
}
|
|
2196
|
-
else {
|
|
2197
|
-
this._messages = this._messagesDefault;
|
|
2198
|
-
}
|
|
2199
|
-
}
|
|
2200
|
-
get headerHeight() {
|
|
2201
|
-
return this._headerHeight;
|
|
2202
|
-
}
|
|
2203
|
-
set headerHeight(value) {
|
|
2204
|
-
if (notNullOrUndefined(value)) {
|
|
2205
|
-
this._headerHeight = value;
|
|
2206
|
-
}
|
|
2207
|
-
else if (notNullOrUndefined(this._config?.headerHeight)) {
|
|
2208
|
-
this._headerHeight = this._config?.headerHeight;
|
|
2209
|
-
}
|
|
2210
|
-
else {
|
|
2211
|
-
this._headerHeight = this._headerHeightDefault;
|
|
2212
|
-
}
|
|
2213
|
-
}
|
|
2214
|
-
get rowHeight() {
|
|
2215
|
-
return this._rowHeight;
|
|
2216
|
-
}
|
|
2217
|
-
set rowHeight(value) {
|
|
2218
|
-
if (notNullOrUndefined(value)) {
|
|
2219
|
-
this._rowHeight = value;
|
|
2220
|
-
}
|
|
2221
|
-
else if (notNullOrUndefined(this._config?.rowHeight)) {
|
|
2222
|
-
this._rowHeight = this._config?.rowHeight;
|
|
2223
|
-
}
|
|
2224
|
-
else {
|
|
2225
|
-
this._rowHeight = this._rowHeightDefault;
|
|
2226
|
-
}
|
|
2227
|
-
}
|
|
2228
|
-
get footerHeight() {
|
|
2229
|
-
return this._footerHeight;
|
|
2230
|
-
}
|
|
2231
|
-
set footerHeight(value) {
|
|
2232
|
-
if (notNullOrUndefined(value)) {
|
|
2233
|
-
this._footerHeight = value;
|
|
2234
|
-
}
|
|
2235
|
-
else if (notNullOrUndefined(this._config?.footerHeight)) {
|
|
2236
|
-
this._footerHeight = this._config?.footerHeight;
|
|
2237
|
-
}
|
|
2238
|
-
else {
|
|
2239
|
-
this._footerHeight = this._footerHeightDefault;
|
|
2240
|
-
}
|
|
2241
|
-
}
|
|
2242
1439
|
set dataSource(value) {
|
|
2243
1440
|
if (value instanceof DatatableDataSource) {
|
|
2244
1441
|
value.setDatatableAccessor(this);
|
|
2245
1442
|
}
|
|
2246
1443
|
this._dataSourceSubject.next(value || undefined);
|
|
2247
1444
|
}
|
|
2248
|
-
/**
|
|
2249
|
-
* Sets position behavior for optional Action Menu Button column.
|
|
2250
|
-
*
|
|
2251
|
-
* Defaults to `frozenRight`.
|
|
2252
|
-
*/
|
|
2253
|
-
get actionItemColumnPosition() { return this._actionItemColumnPosition; }
|
|
2254
|
-
set actionItemColumnPosition(value) {
|
|
2255
|
-
if (notNullOrUndefined(value) && isActionItemColumnPosition(value)) {
|
|
2256
|
-
this._actionItemColumnPosition = value;
|
|
2257
|
-
}
|
|
2258
|
-
else if (notNullOrUndefined(this._config?.actionItemColumnPosition) && isActionItemColumnPosition(this._config?.actionItemColumnPosition)) {
|
|
2259
|
-
this._actionItemColumnPosition = this._config?.actionItemColumnPosition;
|
|
2260
|
-
}
|
|
2261
|
-
else {
|
|
2262
|
-
this._actionItemColumnPosition = this._actionItemColumnPositionDefault;
|
|
2263
|
-
}
|
|
2264
|
-
this._columnsManager.setActionItemColumnPosition(this._actionItemColumnPosition);
|
|
2265
|
-
}
|
|
2266
|
-
get columnFilterIcon() {
|
|
2267
|
-
return this._columnFilterIcon;
|
|
2268
|
-
}
|
|
2269
|
-
set columnFilterIcon(value) {
|
|
2270
|
-
if (notNullOrUndefined(value)) {
|
|
2271
|
-
this._columnFilterIcon = value;
|
|
2272
|
-
}
|
|
2273
|
-
else if (notNullOrUndefined(this._config?.columnFilterIcon)) {
|
|
2274
|
-
this._columnFilterIcon = this._config?.columnFilterIcon;
|
|
2275
|
-
}
|
|
2276
|
-
else {
|
|
2277
|
-
this._columnFilterIcon = this._columnFilterIconDefault;
|
|
2278
|
-
}
|
|
2279
|
-
}
|
|
2280
|
-
get columnFilterUpdateMethod() {
|
|
2281
|
-
return this._columnFilterUpdateMethod;
|
|
2282
|
-
}
|
|
2283
|
-
set columnFilterUpdateMethod(value) {
|
|
2284
|
-
if (notNullOrUndefined(value)) {
|
|
2285
|
-
this._columnFilterUpdateMethod = value;
|
|
2286
|
-
}
|
|
2287
|
-
else if (notNullOrUndefined(this._config?.columnFilterUpdateMethod)) {
|
|
2288
|
-
this._columnFilterUpdateMethod = this._config?.columnFilterUpdateMethod;
|
|
2289
|
-
}
|
|
2290
|
-
else {
|
|
2291
|
-
this._columnFilterUpdateMethod = this._columnFilterUpdateMethodDefault;
|
|
2292
|
-
}
|
|
2293
|
-
}
|
|
2294
|
-
get columnFilterUpdateDebounce() {
|
|
2295
|
-
return this._columnFilterUpdateDebounce;
|
|
2296
|
-
}
|
|
2297
|
-
set columnFilterUpdateDebounce(value) {
|
|
2298
|
-
if (notNullOrUndefined(value)) {
|
|
2299
|
-
this._columnFilterUpdateDebounce = value;
|
|
2300
|
-
}
|
|
2301
|
-
else if (notNullOrUndefined(this._config?.columnFilterUpdateDebounce)) {
|
|
2302
|
-
this._columnFilterUpdateDebounce = this._config?.columnFilterUpdateDebounce;
|
|
2303
|
-
}
|
|
2304
|
-
else {
|
|
2305
|
-
this._columnFilterUpdateDebounce = this._columnFilterUpdateDebounceDefault;
|
|
2306
|
-
}
|
|
2307
|
-
}
|
|
2308
1445
|
set columnComponents(value) {
|
|
2309
1446
|
this._columnsManager.setTemplateColumns(translateTemplateColumns(value?.toArray() ?? []));
|
|
2310
1447
|
}
|
|
@@ -2325,9 +1462,6 @@ class DatatableComponent {
|
|
|
2325
1462
|
.subscribe(v => { this._setMenuBarFilters(value.filters()); });
|
|
2326
1463
|
}
|
|
2327
1464
|
}
|
|
2328
|
-
set columnFilterTemplates(value) {
|
|
2329
|
-
this._columnsFilters.setFilterTemplates(value?.toArray() ?? []);
|
|
2330
|
-
}
|
|
2331
1465
|
get actionMenuCellTpl() { return this._actionMenuCellTpl; }
|
|
2332
1466
|
set actionMenuCellTpl(value) {
|
|
2333
1467
|
this._actionMenuCellTpl = value;
|
|
@@ -2377,17 +1511,15 @@ class DatatableComponent {
|
|
|
2377
1511
|
}
|
|
2378
1512
|
}
|
|
2379
1513
|
}
|
|
2380
|
-
constructor(_preferences, _columnsManager, _columnsAlterationsManager
|
|
1514
|
+
constructor(_preferences, _columnsManager, _columnsAlterationsManager) {
|
|
2381
1515
|
this._preferences = _preferences;
|
|
2382
1516
|
this._columnsManager = _columnsManager;
|
|
2383
1517
|
this._columnsAlterationsManager = _columnsAlterationsManager;
|
|
2384
|
-
this._columnsFilters = _columnsFilters;
|
|
2385
|
-
this._config = _config;
|
|
2386
1518
|
this._faChevronDown = faChevronDown;
|
|
2387
1519
|
this._faChevronRight = faChevronRight;
|
|
2388
1520
|
this._faSpinner = faSpinner;
|
|
2389
1521
|
this._ngUnsubscribe = new Subject();
|
|
2390
|
-
this.
|
|
1522
|
+
this._filtersSubject = new BehaviorSubject([]);
|
|
2391
1523
|
this._dataSourceSubject = new BehaviorSubject(undefined);
|
|
2392
1524
|
this._resizing = {};
|
|
2393
1525
|
this._preferencesKey = new BehaviorSubject(undefined);
|
|
@@ -2404,7 +1536,7 @@ class DatatableComponent {
|
|
|
2404
1536
|
this.swapColumns = false;
|
|
2405
1537
|
this._sortType = SortType.single;
|
|
2406
1538
|
this._sorts = [];
|
|
2407
|
-
this.
|
|
1539
|
+
this.cssClasses = {
|
|
2408
1540
|
sortAscending: 'datatable-icon-up',
|
|
2409
1541
|
sortDescending: 'datatable-icon-down',
|
|
2410
1542
|
pagerLeftArrow: 'datatable-icon-left',
|
|
@@ -2412,7 +1544,7 @@ class DatatableComponent {
|
|
|
2412
1544
|
pagerPrevious: 'datatable-icon-prev',
|
|
2413
1545
|
pagerNext: 'datatable-icon-skip'
|
|
2414
1546
|
};
|
|
2415
|
-
this.
|
|
1547
|
+
this.messages = {
|
|
2416
1548
|
// Message to show when array is presented
|
|
2417
1549
|
// but contains no values
|
|
2418
1550
|
emptyMessage: 'No records found',
|
|
@@ -2428,15 +1560,11 @@ class DatatableComponent {
|
|
|
2428
1560
|
this.summaryHeight = 30;
|
|
2429
1561
|
this.summaryPosition = 'top';
|
|
2430
1562
|
this.virtualization = true;
|
|
2431
|
-
this.
|
|
2432
|
-
this.
|
|
2433
|
-
this.
|
|
1563
|
+
this.headerHeight = 50;
|
|
1564
|
+
this.rowHeight = 50;
|
|
1565
|
+
this.footerHeight = 40;
|
|
2434
1566
|
this.scrollbarV = true;
|
|
2435
1567
|
this.scrollbarH = true;
|
|
2436
|
-
this._actionItemColumnPositionDefault = 'frozenRight';
|
|
2437
|
-
this._columnFilterIconDefault = faFilter;
|
|
2438
|
-
this._columnFilterUpdateMethodDefault = 'valueChanges';
|
|
2439
|
-
this._columnFilterUpdateDebounceDefault = 400;
|
|
2440
1568
|
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
2441
1569
|
this.scroll = new EventEmitter();
|
|
2442
1570
|
this.activate = new EventEmitter();
|
|
@@ -2489,13 +1617,10 @@ class DatatableComponent {
|
|
|
2489
1617
|
this._columnsAlterationsManager.add(alterations);
|
|
2490
1618
|
}));
|
|
2491
1619
|
}), takeUntil(this._ngUnsubscribe)).subscribe();
|
|
2492
|
-
this.columns$ =
|
|
2493
|
-
...col,
|
|
2494
|
-
filterActive: columnActiveFilterProps.includes(this._columnsFilters.getColumnFilterProp(col) || '')
|
|
2495
|
-
}))));
|
|
1620
|
+
this.columns$ = this._columnsManager.columns$;
|
|
2496
1621
|
this.displayColumns$ = this.columns$.pipe(switchMap(cols => applyPrefs(cols)), map(cols => cols.filter(c => !c.hidden)), tap(v => removeUnusedDiffs(v, this._colDiffersInp, this._colDiffersTpl)));
|
|
2497
|
-
this.filters$ =
|
|
2498
|
-
this.filterStates = this.
|
|
1622
|
+
this.filters$ = this._filtersSubject.asObservable();
|
|
1623
|
+
this.filterStates = this._filtersSubject.asObservable().pipe(switchMap(filters => composeDataFilterStates(filters)));
|
|
2499
1624
|
this.rows$ = this._dataSourceSubject.pipe(switchMap(dataSource => {
|
|
2500
1625
|
// console.log('dataSource', dataSource)
|
|
2501
1626
|
let dataStream;
|
|
@@ -2518,7 +1643,7 @@ class DatatableComponent {
|
|
|
2518
1643
|
}
|
|
2519
1644
|
if (!this.externalFiltering) {
|
|
2520
1645
|
// console.log('not using externalFiltering')
|
|
2521
|
-
dataStream = dataStream.pipe(switchMap(rows => this.
|
|
1646
|
+
dataStream = dataStream.pipe(switchMap(rows => this._filtersSubject.pipe(
|
|
2522
1647
|
// tap(v => console.log('filters', v)),
|
|
2523
1648
|
concatMap(filters => of(rows).pipe(composeDataFilters(filters))))));
|
|
2524
1649
|
// dataStream = this._filtersSubject.pipe(
|
|
@@ -2542,43 +1667,12 @@ class DatatableComponent {
|
|
|
2542
1667
|
}
|
|
2543
1668
|
});
|
|
2544
1669
|
}
|
|
2545
|
-
this._setDatatableConfigOrDefault();
|
|
2546
|
-
}
|
|
2547
|
-
/** Sets missing inputs from config */
|
|
2548
|
-
_setDatatableConfigOrDefault() {
|
|
2549
|
-
if (isNullOrUndefined(this.messages)) {
|
|
2550
|
-
this.messages = undefined;
|
|
2551
|
-
}
|
|
2552
|
-
if (isNullOrUndefined(this.headerHeight)) {
|
|
2553
|
-
this.headerHeight = undefined;
|
|
2554
|
-
}
|
|
2555
|
-
if (isNullOrUndefined(this.rowHeight)) {
|
|
2556
|
-
this.rowHeight = undefined;
|
|
2557
|
-
}
|
|
2558
|
-
if (isNullOrUndefined(this.footerHeight)) {
|
|
2559
|
-
this.footerHeight = undefined;
|
|
2560
|
-
}
|
|
2561
|
-
if (isNullOrUndefined(this.cssClasses)) {
|
|
2562
|
-
this.cssClasses = undefined;
|
|
2563
|
-
}
|
|
2564
|
-
if (isNullOrUndefined(this.columnFilterIcon)) {
|
|
2565
|
-
this.columnFilterIcon = undefined;
|
|
2566
|
-
}
|
|
2567
|
-
if (isNullOrUndefined(this.columnFilterUpdateMethod)) {
|
|
2568
|
-
this.columnFilterUpdateMethod = undefined;
|
|
2569
|
-
}
|
|
2570
|
-
if (isNullOrUndefined(this.columnFilterUpdateDebounce)) {
|
|
2571
|
-
this.columnFilterUpdateDebounce = undefined;
|
|
2572
|
-
}
|
|
2573
|
-
if (isNullOrUndefined(this.actionItemColumnPosition)) {
|
|
2574
|
-
this.actionItemColumnPosition = undefined;
|
|
2575
|
-
}
|
|
2576
1670
|
}
|
|
2577
1671
|
ngOnDestroy() {
|
|
2578
1672
|
this._rowDetailToggleSubscription.unsubscribe();
|
|
2579
1673
|
}
|
|
2580
1674
|
_setMenuBarFilters(filters) {
|
|
2581
|
-
this.
|
|
1675
|
+
this._filtersSubject.next(filters || []);
|
|
2582
1676
|
}
|
|
2583
1677
|
getColumnComponent(propName) {
|
|
2584
1678
|
if (!this.columnComponents || this.columnComponents.length === 0) {
|
|
@@ -2682,15 +1776,14 @@ class DatatableComponent {
|
|
|
2682
1776
|
};
|
|
2683
1777
|
}
|
|
2684
1778
|
}
|
|
2685
|
-
DatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableComponent, deps: [{ token: DatatablePreferencesService }, { token: ColumnsManagerService }, { token: ColumnsAlterationsManagerService }
|
|
2686
|
-
DatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableComponent, 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"
|
|
1779
|
+
DatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableComponent, deps: [{ token: DatatablePreferencesService }, { token: ColumnsManagerService }, { token: ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1780
|
+
DatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableComponent, 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" }, 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: [
|
|
2687
1781
|
_THESEAM_DATATABLE,
|
|
2688
1782
|
DatatableColumnChangesService,
|
|
2689
1783
|
_THESEAM_DATATABLE_ACCESSOR,
|
|
2690
1784
|
ColumnsManagerService,
|
|
2691
1785
|
ColumnsAlterationsManagerService,
|
|
2692
|
-
ColumnsFiltersService
|
|
2693
|
-
], 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]=\"cssClasses\"\n [messages]=\"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=\"column.filterable\">\n <button\n seamIconBtn\n [icon]=\"columnFilterIcon\"\n size=\"sm\"\n [seamPopover]=\"filterMenu\"\n [seamPopoverBaseWidth]=\"300\"\n class=\"datatable-column-header-filter-button d-flex align-items-center mr-2\"\n [class.datatable-column-header-filter-button-active]=\"column.filterActive\"\n style=\"width: 1rem;\"\n title=\"Click to see filter options\"></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 draggable p-0\"\n (click)=\"sortFn()\"\n title=\"Click to sort\">\n <strong>{{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]=\"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: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "displayPageCount", "displayPager", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { 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", "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: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "directive", type: i2$2.ElemResizedDirective, selector: "[seamElemResized]", outputs: ["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: [
|
|
1786
|
+
], 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 }], 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]=\"cssClasses\"\n [messages]=\"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 #headerTpl ngx-datatable-header-template\n let-column=\"column\" let-sortFn=\"sortFn\">\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{column.name}}</strong>\n <strong *ngIf=\"column.sortable\" class=\"datatable-sort-target draggable\" (click)=\"sortFn()\">{{column.name}}</strong>\n <div class=\"datatable-column-header-separator\" [attr.data-column-id]=\"column.$$id\"></div>\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]=\"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}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5$1.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "displayPageCount", "displayPager", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i5$1.DatatableRowDetailDirective, selector: "ngx-datatable-row-detail", inputs: ["rowHeight", "template"], outputs: ["toggle"] }, { kind: "directive", type: i5$1.DatatableGroupHeaderDirective, selector: "ngx-datatable-group-header", inputs: ["rowHeight", "template"], outputs: ["toggle"] }, { kind: "directive", type: i5$1.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i5$1.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i5$1.DataTableColumnCellTreeToggle, selector: "[ngx-datatable-tree-toggle]" }, { kind: "directive", type: i5$1.DatatableFooterDirective, selector: "ngx-datatable-footer", inputs: ["footerHeight", "totalMessage", "selectedMessage", "pagerLeftArrowIcon", "pagerRightArrowIcon", "pagerPreviousIcon", "pagerNextIcon", "template"] }, { kind: "directive", type: i5$1.DatatableGroupHeaderTemplateDirective, selector: "[ngx-datatable-group-header-template]" }, { kind: "component", type: i6.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "directive", type: i7.ElemResizedDirective, selector: "[seamElemResized]", outputs: ["seamElemResized"] }, { kind: "component", type: i8.TableCellTypeSelectorComponent, selector: "seam-table-cell-type-selector", inputs: ["type", "value", "rowIndex", "row", "colData"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], animations: [
|
|
2694
1787
|
trigger('slideDown', [
|
|
2695
1788
|
transition(':enter', [
|
|
2696
1789
|
style({ transform: 'translateY(-20%)', opacity: '0' }),
|
|
@@ -2746,13 +1839,13 @@ __decorate([
|
|
|
2746
1839
|
], DatatableComponent.prototype, "virtualization", void 0);
|
|
2747
1840
|
__decorate([
|
|
2748
1841
|
InputNumber()
|
|
2749
|
-
], DatatableComponent.prototype, "headerHeight",
|
|
1842
|
+
], DatatableComponent.prototype, "headerHeight", void 0);
|
|
2750
1843
|
__decorate([
|
|
2751
1844
|
InputNumber()
|
|
2752
|
-
], DatatableComponent.prototype, "rowHeight",
|
|
1845
|
+
], DatatableComponent.prototype, "rowHeight", void 0);
|
|
2753
1846
|
__decorate([
|
|
2754
1847
|
InputNumber()
|
|
2755
|
-
], DatatableComponent.prototype, "footerHeight",
|
|
1848
|
+
], DatatableComponent.prototype, "footerHeight", void 0);
|
|
2756
1849
|
__decorate([
|
|
2757
1850
|
InputBoolean()
|
|
2758
1851
|
], DatatableComponent.prototype, "scrollbarV", void 0);
|
|
@@ -2778,14 +1871,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
2778
1871
|
_THESEAM_DATATABLE_ACCESSOR,
|
|
2779
1872
|
ColumnsManagerService,
|
|
2780
1873
|
ColumnsAlterationsManagerService,
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
}], ctorParameters: function () { return [{ type: DatatablePreferencesService }, { type: ColumnsManagerService }, { type: ColumnsAlterationsManagerService }, { type: ColumnsFiltersService }, { type: undefined, decorators: [{
|
|
2784
|
-
type: Optional
|
|
2785
|
-
}, {
|
|
2786
|
-
type: Inject,
|
|
2787
|
-
args: [THESEAM_DATATABLE_CONFIG]
|
|
2788
|
-
}] }]; }, propDecorators: { preferencesKey: [{
|
|
1874
|
+
], 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]=\"cssClasses\"\n [messages]=\"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 #headerTpl ngx-datatable-header-template\n let-column=\"column\" let-sortFn=\"sortFn\">\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{column.name}}</strong>\n <strong *ngIf=\"column.sortable\" class=\"datatable-sort-target draggable\" (click)=\"sortFn()\">{{column.name}}</strong>\n <div class=\"datatable-column-header-separator\" [attr.data-column-id]=\"column.$$id\"></div>\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]=\"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}\n"] }]
|
|
1875
|
+
}], ctorParameters: function () { return [{ type: DatatablePreferencesService }, { type: ColumnsManagerService }, { type: ColumnsAlterationsManagerService }]; }, propDecorators: { preferencesKey: [{
|
|
2789
1876
|
type: Input
|
|
2790
1877
|
}], targetMarkerTemplate: [{
|
|
2791
1878
|
type: Input
|
|
@@ -2867,14 +1954,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
2867
1954
|
type: Input
|
|
2868
1955
|
}], dataSource: [{
|
|
2869
1956
|
type: Input
|
|
2870
|
-
}], actionItemColumnPosition: [{
|
|
2871
|
-
type: Input
|
|
2872
|
-
}], columnFilterIcon: [{
|
|
2873
|
-
type: Input
|
|
2874
|
-
}], columnFilterUpdateMethod: [{
|
|
2875
|
-
type: Input
|
|
2876
|
-
}], columnFilterUpdateDebounce: [{
|
|
2877
|
-
type: Input
|
|
2878
1957
|
}], scroll: [{
|
|
2879
1958
|
type: Output
|
|
2880
1959
|
}], activate: [{
|
|
@@ -2915,9 +1994,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
2915
1994
|
}], menuBarComponent: [{
|
|
2916
1995
|
type: ContentChild,
|
|
2917
1996
|
args: [DatatableMenuBarComponent]
|
|
2918
|
-
}], columnFilterTemplates: [{
|
|
2919
|
-
type: ContentChildren,
|
|
2920
|
-
args: [TheSeamDatatableColumnFilterDirective]
|
|
2921
1997
|
}], ngxDatatable: [{
|
|
2922
1998
|
type: ViewChild,
|
|
2923
1999
|
args: [DatatableComponent$1]
|
|
@@ -2987,7 +2063,7 @@ class DatatableColumnPreferencesComponent {
|
|
|
2987
2063
|
}
|
|
2988
2064
|
}
|
|
2989
2065
|
DatatableColumnPreferencesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnPreferencesComponent, deps: [{ token: THESEAM_DATATABLE }, { token: ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2990
|
-
DatatableColumnPreferencesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnPreferencesComponent, selector: "seam-datatable-column-preferences", ngImport: i0, template: "<h3>Columns</h3>\n\n<seam-form-field [numPaddingErrors]=\"0\" >\n <input seamInput [formControl]=\"_filterControl\" seamInputSize=\"sm\" placeholder=\"Search\" seamAutoFocus>\n</seam-form-field>\n\n<div seamOverlayScrollbar style=\"min-height: 200px; max-height: 600px; min-width: 250px;\" class=\"flex-grow-1 mb-2\">\n <div class=\"p-2\">\n <ng-container *ngFor=\"let col of _columns$ | async\">\n <seam-checkbox [checked]=\"!col.hidden\" (change)=\"_onChange($event, col)\">{{ col.name || col.prop }}</seam-checkbox>\n </ng-container>\n </div>\n\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:
|
|
2066
|
+
DatatableColumnPreferencesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnPreferencesComponent, selector: "seam-datatable-column-preferences", ngImport: i0, template: "<h3>Columns</h3>\n\n<seam-form-field [numPaddingErrors]=\"0\" >\n <input seamInput [formControl]=\"_filterControl\" seamInputSize=\"sm\" placeholder=\"Search\" seamAutoFocus>\n</seam-form-field>\n\n<div seamOverlayScrollbar style=\"min-height: 200px; max-height: 600px; min-width: 250px;\" class=\"flex-grow-1 mb-2\">\n <div class=\"p-2\">\n <ng-container *ngFor=\"let col of _columns$ | async\">\n <seam-checkbox [checked]=\"!col.hidden\" (change)=\"_onChange($event, col)\">{{ col.name || col.prop }}</seam-checkbox>\n </ng-container>\n </div>\n\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: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.AutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i1$2.OverlayScrollbarDirective, selector: "[seamOverlayScrollbar]", inputs: ["seamOverlayScrollbar", "overlayScrollbarEnabled"], exportAs: ["seamOverlayScrollbar"] }, { kind: "component", type: i5$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: i6$1.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i6$1.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], 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: i7$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: i7$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2991
2067
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnPreferencesComponent, decorators: [{
|
|
2992
2068
|
type: Component,
|
|
2993
2069
|
args: [{ selector: 'seam-datatable-column-preferences', changeDetection: ChangeDetectionStrategy.OnPush, template: "<h3>Columns</h3>\n\n<seam-form-field [numPaddingErrors]=\"0\" >\n <input seamInput [formControl]=\"_filterControl\" seamInputSize=\"sm\" placeholder=\"Search\" seamAutoFocus>\n</seam-form-field>\n\n<div seamOverlayScrollbar style=\"min-height: 200px; max-height: 600px; min-width: 250px;\" class=\"flex-grow-1 mb-2\">\n <div class=\"p-2\">\n <ng-container *ngFor=\"let col of _columns$ | async\">\n <seam-checkbox [checked]=\"!col.hidden\" (change)=\"_onChange($event, col)\">{{ col.name || col.prop }}</seam-checkbox>\n </ng-container>\n </div>\n\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"] }]
|
|
@@ -3033,7 +2109,7 @@ class DatatableColumnPreferencesButtonComponent {
|
|
|
3033
2109
|
}
|
|
3034
2110
|
}
|
|
3035
2111
|
DatatableColumnPreferencesButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, deps: [{ token: ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3036
|
-
DatatableColumnPreferencesButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnPreferencesButtonComponent, 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 #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [seamPopover]=\"colPrefsTpl\">\n Show/Hide Columns\n </button>\n\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"_resetColumns($event)\">\n Reset Columns\n </button>\n</seam-menu>\n\n<button type=\"button\" 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 <seam-icon [icon]=\"icon\"></seam-icon>\n <span class=\"sr-only\">Column Preferences</span>\n</button>\n\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: ["
|
|
2112
|
+
DatatableColumnPreferencesButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnPreferencesButtonComponent, 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 #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [seamPopover]=\"colPrefsTpl\">\n Show/Hide Columns\n </button>\n\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"_resetColumns($event)\">\n Reset Columns\n </button>\n</seam-menu>\n\n<button type=\"button\" 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 <seam-icon [icon]=\"icon\"></seam-icon>\n <span class=\"sr-only\">Column Preferences</span>\n</button>\n\n", styles: [""], dependencies: [{ kind: "component", type: i4$1.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i4$1.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i4$1.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: i4$2.TheSeamPopoverDirective, selector: "[seamPopover]", inputs: ["seamPopover", "seamPopoverBaseWidth", "seamPopoverDisabled"], exportAs: ["seamPopover"] }, { kind: "component", type: DatatableColumnPreferencesComponent, selector: "seam-datatable-column-preferences" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3037
2113
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, decorators: [{
|
|
3038
2114
|
type: Component,
|
|
3039
2115
|
args: [{ selector: 'seam-datatable-column-preferences-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #colPrefsTpl>\n <seam-datatable-column-preferences></seam-datatable-column-preferences>\n</ng-template>\n\n<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [seamPopover]=\"colPrefsTpl\">\n Show/Hide Columns\n </button>\n\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"_resetColumns($event)\">\n Reset Columns\n </button>\n</seam-menu>\n\n<button type=\"button\" 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 <seam-icon [icon]=\"icon\"></seam-icon>\n <span class=\"sr-only\">Column Preferences</span>\n</button>\n\n" }]
|
|
@@ -3111,15 +2187,15 @@ class DatatableExportButtonComponent {
|
|
|
3111
2187
|
return undefined;
|
|
3112
2188
|
}
|
|
3113
2189
|
}
|
|
3114
|
-
DatatableExportButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableExportButtonComponent, deps: [{ token: THESEAM_DATATABLE }, { token: i1$3.ToastrService }, { token: i2$
|
|
3115
|
-
DatatableExportButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableExportButtonComponent, selector: "seam-datatable-export-button", inputs: { exporters: "exporters" }, ngImport: i0, template: "<seam-menu #menu>\n <button *ngFor=\"let exp of exporters\"\n seamMenuItem\n [icon]=\"exp?.icon\"\n (click)=\"_onExporterClicked(exp)\">\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:
|
|
2190
|
+
DatatableExportButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableExportButtonComponent, deps: [{ token: THESEAM_DATATABLE }, { token: i1$3.ToastrService }, { token: i2$1.TheSeamLoadingOverlayService }, { token: i3.DynamicValueHelperService }, { token: THESEAM_DYNAMIC_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
2191
|
+
DatatableExportButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableExportButtonComponent, selector: "seam-datatable-export-button", inputs: { exporters: "exporters" }, ngImport: i0, template: "<seam-menu #menu>\n <button *ngFor=\"let exp of exporters\"\n seamMenuItem\n [icon]=\"exp?.icon\"\n (click)=\"_onExporterClicked(exp)\">\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: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4$1.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i4$1.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i4$1.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: i7$2.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3116
2192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableExportButtonComponent, decorators: [{
|
|
3117
2193
|
type: Component,
|
|
3118
2194
|
args: [{ selector: 'seam-datatable-export-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<seam-menu #menu>\n <button *ngFor=\"let exp of exporters\"\n seamMenuItem\n [icon]=\"exp?.icon\"\n (click)=\"_onExporterClicked(exp)\">\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"] }]
|
|
3119
2195
|
}], ctorParameters: function () { return [{ type: DatatableComponent, decorators: [{
|
|
3120
2196
|
type: Inject,
|
|
3121
2197
|
args: [THESEAM_DATATABLE]
|
|
3122
|
-
}] }, { type: i1$3.ToastrService }, { type: i2$
|
|
2198
|
+
}] }, { type: i1$3.ToastrService }, { type: i2$1.TheSeamLoadingOverlayService }, { type: i3.DynamicValueHelperService }, { type: undefined, decorators: [{
|
|
3123
2199
|
type: Optional
|
|
3124
2200
|
}, {
|
|
3125
2201
|
type: Inject,
|
|
@@ -3202,14 +2278,14 @@ class DatatableActionMenuItemDirective {
|
|
|
3202
2278
|
this.click = new EventEmitter();
|
|
3203
2279
|
}
|
|
3204
2280
|
}
|
|
3205
|
-
DatatableActionMenuItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuItemDirective, deps: [{ token: i1$4.Modal }, { token: i2$
|
|
2281
|
+
DatatableActionMenuItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuItemDirective, deps: [{ token: i1$4.Modal }, { token: i2$2.TheSeamDynamicComponentLoader }, { token: i3$1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3206
2282
|
DatatableActionMenuItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: DatatableActionMenuItemDirective, 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 });
|
|
3207
2283
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuItemDirective, decorators: [{
|
|
3208
2284
|
type: Directive,
|
|
3209
2285
|
args: [{
|
|
3210
2286
|
selector: '[seamDatatableActionMenuItem]'
|
|
3211
2287
|
}]
|
|
3212
|
-
}], ctorParameters: function () { return [{ type: i1$4.Modal }, { type: i2$
|
|
2288
|
+
}], ctorParameters: function () { return [{ type: i1$4.Modal }, { type: i2$2.TheSeamDynamicComponentLoader }, { type: i3$1.HttpClient, decorators: [{
|
|
3213
2289
|
type: Optional
|
|
3214
2290
|
}] }]; }, propDecorators: { _listGroupItem: [{
|
|
3215
2291
|
type: HostBinding,
|
|
@@ -3484,13 +2560,7 @@ TheSeamDatatableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
|
|
|
3484
2560
|
DatatableMenuBarColumnLeftComponent,
|
|
3485
2561
|
DatatableMenuBarColumnCenterComponent,
|
|
3486
2562
|
DatatableMenuBarColumnRightComponent,
|
|
3487
|
-
DatatableMenuBarTextComponent,
|
|
3488
|
-
DatatableColumnFilterMenuComponent,
|
|
3489
|
-
DatatableColumnFilterSearchTextComponent,
|
|
3490
|
-
DatatableColumnFilterSearchNumericComponent,
|
|
3491
|
-
DatatableColumnFilterSearchDateComponent,
|
|
3492
|
-
DatatableColumnFilterTplDirective,
|
|
3493
|
-
TheSeamDatatableColumnFilterDirective], imports: [CommonModule,
|
|
2563
|
+
DatatableMenuBarTextComponent], imports: [CommonModule,
|
|
3494
2564
|
NgxDatatableModule,
|
|
3495
2565
|
FontAwesomeModule,
|
|
3496
2566
|
OverlayModule,
|
|
@@ -3508,10 +2578,7 @@ TheSeamDatatableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
|
|
|
3508
2578
|
TheSeamCheckboxComponent,
|
|
3509
2579
|
TheSeamFormFieldModule,
|
|
3510
2580
|
ReactiveFormsModule,
|
|
3511
|
-
TheSeamTableCellTypeModule,
|
|
3512
|
-
TheSeamDataFiltersModule,
|
|
3513
|
-
NgSelectModule,
|
|
3514
|
-
TheSeamToggleGroupModule], exports: [DatatableComponent,
|
|
2581
|
+
TheSeamTableCellTypeModule], exports: [DatatableComponent,
|
|
3515
2582
|
DatatableCellTplDirective,
|
|
3516
2583
|
DatatableColumnComponent,
|
|
3517
2584
|
DatatableActionMenuComponent,
|
|
@@ -3531,13 +2598,7 @@ TheSeamDatatableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
|
|
|
3531
2598
|
DatatableMenuBarColumnLeftComponent,
|
|
3532
2599
|
DatatableMenuBarColumnCenterComponent,
|
|
3533
2600
|
DatatableMenuBarColumnRightComponent,
|
|
3534
|
-
DatatableMenuBarTextComponent
|
|
3535
|
-
DatatableColumnFilterMenuComponent,
|
|
3536
|
-
DatatableColumnFilterSearchTextComponent,
|
|
3537
|
-
DatatableColumnFilterSearchNumericComponent,
|
|
3538
|
-
DatatableColumnFilterSearchDateComponent,
|
|
3539
|
-
DatatableColumnFilterTplDirective,
|
|
3540
|
-
TheSeamDatatableColumnFilterDirective] });
|
|
2601
|
+
DatatableMenuBarTextComponent] });
|
|
3541
2602
|
TheSeamDatatableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableModule, providers: [
|
|
3542
2603
|
{ provide: ScrollbarHelper, useClass: TheSeamDatatableScrollbarHelperService }
|
|
3543
2604
|
], imports: [CommonModule,
|
|
@@ -3558,10 +2619,7 @@ TheSeamDatatableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
|
|
|
3558
2619
|
TheSeamCheckboxComponent,
|
|
3559
2620
|
TheSeamFormFieldModule,
|
|
3560
2621
|
ReactiveFormsModule,
|
|
3561
|
-
TheSeamTableCellTypeModule
|
|
3562
|
-
TheSeamDataFiltersModule,
|
|
3563
|
-
NgSelectModule,
|
|
3564
|
-
TheSeamToggleGroupModule] });
|
|
2622
|
+
TheSeamTableCellTypeModule] });
|
|
3565
2623
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableModule, decorators: [{
|
|
3566
2624
|
type: NgModule,
|
|
3567
2625
|
args: [{
|
|
@@ -3588,12 +2646,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
3588
2646
|
DatatableMenuBarColumnCenterComponent,
|
|
3589
2647
|
DatatableMenuBarColumnRightComponent,
|
|
3590
2648
|
DatatableMenuBarTextComponent,
|
|
3591
|
-
DatatableColumnFilterMenuComponent,
|
|
3592
|
-
DatatableColumnFilterSearchTextComponent,
|
|
3593
|
-
DatatableColumnFilterSearchNumericComponent,
|
|
3594
|
-
DatatableColumnFilterSearchDateComponent,
|
|
3595
|
-
DatatableColumnFilterTplDirective,
|
|
3596
|
-
TheSeamDatatableColumnFilterDirective
|
|
3597
2649
|
],
|
|
3598
2650
|
imports: [
|
|
3599
2651
|
CommonModule,
|
|
@@ -3614,10 +2666,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
3614
2666
|
TheSeamCheckboxComponent,
|
|
3615
2667
|
TheSeamFormFieldModule,
|
|
3616
2668
|
ReactiveFormsModule,
|
|
3617
|
-
TheSeamTableCellTypeModule
|
|
3618
|
-
TheSeamDataFiltersModule,
|
|
3619
|
-
NgSelectModule,
|
|
3620
|
-
TheSeamToggleGroupModule
|
|
2669
|
+
TheSeamTableCellTypeModule
|
|
3621
2670
|
],
|
|
3622
2671
|
exports: [
|
|
3623
2672
|
DatatableComponent,
|
|
@@ -3640,13 +2689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
3640
2689
|
DatatableMenuBarColumnLeftComponent,
|
|
3641
2690
|
DatatableMenuBarColumnCenterComponent,
|
|
3642
2691
|
DatatableMenuBarColumnRightComponent,
|
|
3643
|
-
DatatableMenuBarTextComponent
|
|
3644
|
-
DatatableColumnFilterMenuComponent,
|
|
3645
|
-
DatatableColumnFilterSearchTextComponent,
|
|
3646
|
-
DatatableColumnFilterSearchNumericComponent,
|
|
3647
|
-
DatatableColumnFilterSearchDateComponent,
|
|
3648
|
-
DatatableColumnFilterTplDirective,
|
|
3649
|
-
TheSeamDatatableColumnFilterDirective
|
|
2692
|
+
DatatableMenuBarTextComponent
|
|
3650
2693
|
],
|
|
3651
2694
|
providers: [
|
|
3652
2695
|
{ provide: ScrollbarHelper, useClass: TheSeamDatatableScrollbarHelperService }
|
|
@@ -3658,5 +2701,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
3658
2701
|
* Generated bundle index. Do not edit.
|
|
3659
2702
|
*/
|
|
3660
2703
|
|
|
3661
|
-
export { CURRENT_DATATABLE_PREFERENCES_VERSION,
|
|
2704
|
+
export { CURRENT_DATATABLE_PREFERENCES_VERSION, DatatableActionMenuComponent, DatatableActionMenuItemComponent, DatatableActionMenuItemDirective, DatatableActionMenuToggleDirective, DatatableCellTplDirective, DatatableColumnChangesService, DatatableColumnComponent, DatatableColumnPreferencesButtonComponent, DatatableColumnPreferencesComponent, DatatableComponent, DatatableDataSource, DatatableExportButtonComponent, DatatableFilterDirective, DatatableFooterTplDirective, DatatableGqlDataSource, DatatableMenuBarColumnCenterComponent, DatatableMenuBarColumnLeftComponent, DatatableMenuBarColumnRightComponent, DatatableMenuBarComponent, DatatableMenuBarRowComponent, DatatableMenuBarTextComponent, DatatablePreferencesService, DatatableRowActionItemDirective, DatatableRowDetailTplDirective, EMPTY_DATATABLE_PREFERENCES, THESEAM_DATATABLE, THESEAM_DATATABLE_PREFERENCES_ACCESSOR, THESEAM_MENUBAR_ITEM_DATA, TheSeamDatatableFooterDirective, TheSeamDatatableModule, TheSeamDatatableRowDetailDirective, TheSeamDatatableScrollbarHelperService, _THESEAM_DATATABLE, _THESEAM_DATATABLE_ACCESSOR, _THESEAM_DATA_FILTER_CONTAINER, withStoredColumnInfo };
|
|
3662
2705
|
//# sourceMappingURL=theseam-ui-common-datatable.mjs.map
|