@theseam/ui-common 1.0.0-beta.10 → 1.0.0-beta.12

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.
@@ -2,7 +2,7 @@ import * as _fortawesome_fontawesome_common_types from '@fortawesome/fontawesome
2
2
  import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
3
3
  import { CollectionViewer, DataSource, ListRange } from '@angular/cdk/collections';
4
4
  import * as i0 from '@angular/core';
5
- import { EventEmitter, QueryList, TemplateRef, OnChanges, PipeTransform, SimpleChanges, InjectionToken, KeyValueDiffers, OnInit, OnDestroy, ChangeDetectorRef, ElementRef, ViewContainerRef, NgZone } from '@angular/core';
5
+ import { EventEmitter, QueryList, OnChanges, TemplateRef, PipeTransform, SimpleChanges, InjectionToken, KeyValueDiffers, OnInit, OnDestroy, ChangeDetectorRef, ElementRef, ViewContainerRef, NgZone } from '@angular/core';
6
6
  import * as rxjs from 'rxjs';
7
7
  import { Observable } from 'rxjs';
8
8
  import * as i26 from '@marklb/ngx-datatable';
@@ -95,24 +95,9 @@ declare class DatatableActionMenuComponent {
95
95
  static ɵcmp: i0.ɵɵComponentDeclaration<DatatableActionMenuComponent, "seam-datatable-action-menu", ["seamDatatableActionMenu"], { "isSubMenu": { "alias": "isSubMenu"; "required": false; }; }, {}, ["items"], never, false, never>;
96
96
  }
97
97
 
98
- declare class DatatableCellTplDirective {
99
- template: TemplateRef<any>;
100
- constructor(template: TemplateRef<any>);
101
- static ɵfac: i0.ɵɵFactoryDeclaration<DatatableCellTplDirective, never>;
102
- static ɵdir: i0.ɵɵDirectiveDeclaration<DatatableCellTplDirective, "[seamDatatableCellTpl]", never, {}, {}, never, never, false, never>;
103
- }
104
-
105
- declare class DatatableColumnChangesService {
106
- private columnInputChanges;
107
- get columnInputChanges$(): Observable<undefined>;
108
- onInputChange(): void;
109
- static ɵfac: i0.ɵɵFactoryDeclaration<DatatableColumnChangesService, never>;
110
- static ɵprov: i0.ɵɵInjectableDeclaration<DatatableColumnChangesService>;
111
- }
112
-
113
98
  type _PipeTransform = PipeTransform | PipeTransform;
114
99
  declare class DatatableColumnComponent implements OnChanges {
115
- private _columnChangesService;
100
+ private readonly _columnChangesService;
116
101
  name?: string | null;
117
102
  prop?: TableColumnProp | null;
118
103
  flexGrow?: number | null;
@@ -141,16 +126,14 @@ declare class DatatableColumnComponent implements OnChanges {
141
126
  alignHeader?: 'left' | 'center' | 'right' | null;
142
127
  alignCell?: 'left' | 'center' | 'right' | null;
143
128
  private _isFirstChange;
144
- cellTplDirective?: DatatableCellTplDirective;
145
129
  _cellTemplateInput?: TemplateRef<any> | null;
146
- _cellTemplateQuery?: TemplateRef<any>;
130
+ set _setCellTemplateQuery(value: TemplateRef<any> | null);
131
+ _cellTemplateQuery?: TemplateRef<any> | null;
147
132
  get cellTemplate(): TemplateRef<any> | undefined | null;
148
133
  readonly __propsChanged: string[];
149
- constructor(_columnChangesService: DatatableColumnChangesService);
150
134
  ngOnChanges(changes: SimpleChanges): void;
151
- getCellDirective(): DatatableCellTplDirective | null;
152
135
  static ɵfac: i0.ɵɵFactoryDeclaration<DatatableColumnComponent, never>;
153
- static ɵcmp: i0.ɵɵComponentDeclaration<DatatableColumnComponent, "seam-datatable-column", never, { "name": { "alias": "name"; "required": false; }; "prop": { "alias": "prop"; "required": false; }; "flexGrow": { "alias": "flexGrow"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "width": { "alias": "width"; "required": false; }; "resizeable": { "alias": "resizeable"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "canAutoResize": { "alias": "canAutoResize"; "required": false; }; "comparator": { "alias": "comparator"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "checkboxable": { "alias": "checkboxable"; "required": false; }; "headerCheckboxable": { "alias": "headerCheckboxable"; "required": false; }; "headerClass": { "alias": "headerClass"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "frozenLeft": { "alias": "frozenLeft"; "required": false; }; "frozenRight": { "alias": "frozenRight"; "required": false; }; "pipe": { "alias": "pipe"; "required": false; }; "isTreeColumn": { "alias": "isTreeColumn"; "required": false; }; "treeLevelIndent": { "alias": "treeLevelIndent"; "required": false; }; "summaryFunc": { "alias": "summaryFunc"; "required": false; }; "summaryTemplate": { "alias": "summaryTemplate"; "required": false; }; "hidden": { "alias": "hidden"; "required": false; }; "align": { "alias": "align"; "required": false; }; "alignHeader": { "alias": "alignHeader"; "required": false; }; "alignCell": { "alias": "alignCell"; "required": false; }; "_cellTemplateInput": { "alias": "cellTemplate"; "required": false; }; }, {}, ["cellTplDirective", "_cellTemplateQuery"], never, false, never>;
136
+ static ɵcmp: i0.ɵɵComponentDeclaration<DatatableColumnComponent, "seam-datatable-column", never, { "name": { "alias": "name"; "required": false; }; "prop": { "alias": "prop"; "required": false; }; "flexGrow": { "alias": "flexGrow"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "width": { "alias": "width"; "required": false; }; "resizeable": { "alias": "resizeable"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "canAutoResize": { "alias": "canAutoResize"; "required": false; }; "comparator": { "alias": "comparator"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "checkboxable": { "alias": "checkboxable"; "required": false; }; "headerCheckboxable": { "alias": "headerCheckboxable"; "required": false; }; "headerClass": { "alias": "headerClass"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "frozenLeft": { "alias": "frozenLeft"; "required": false; }; "frozenRight": { "alias": "frozenRight"; "required": false; }; "pipe": { "alias": "pipe"; "required": false; }; "isTreeColumn": { "alias": "isTreeColumn"; "required": false; }; "treeLevelIndent": { "alias": "treeLevelIndent"; "required": false; }; "summaryFunc": { "alias": "summaryFunc"; "required": false; }; "summaryTemplate": { "alias": "summaryTemplate"; "required": false; }; "hidden": { "alias": "hidden"; "required": false; }; "align": { "alias": "align"; "required": false; }; "alignHeader": { "alias": "alignHeader"; "required": false; }; "alignCell": { "alias": "alignCell"; "required": false; }; "_cellTemplateInput": { "alias": "cellTemplate"; "required": false; }; }, {}, ["_setCellTemplateQuery"], never, false, never>;
154
137
  }
155
138
  /**
156
139
  * Check if a column is bound to a property.
@@ -329,6 +312,14 @@ interface TheSeamDatatableAccessor {
329
312
  pageInfo: TheSeamPageInfo;
330
313
  }
331
314
 
315
+ declare class DatatableColumnChangesService {
316
+ private columnInputChanges;
317
+ get columnInputChanges$(): Observable<undefined>;
318
+ onInputChange(): void;
319
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatatableColumnChangesService, never>;
320
+ static ɵprov: i0.ɵɵInjectableDeclaration<DatatableColumnChangesService>;
321
+ }
322
+
332
323
  interface ColumnsDataFilterStateState<T = any, O = any> {
333
324
  prop?: string;
334
325
  formValue?: Partial<T>;
@@ -1239,6 +1230,13 @@ declare class DatatableActionMenuToggleDirective {
1239
1230
  static ɵdir: i0.ɵɵDirectiveDeclaration<DatatableActionMenuToggleDirective, "[seamDatatableActionMenuToggle]", ["seamDatatableActionMenuToggle"], { "seamDatatableActionMenuToggle": { "alias": "seamDatatableActionMenuToggle"; "required": false; }; }, {}, never, never, false, never>;
1240
1231
  }
1241
1232
 
1233
+ declare class DatatableCellTplDirective {
1234
+ template: TemplateRef<any>;
1235
+ constructor(template: TemplateRef<any>);
1236
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatatableCellTplDirective, never>;
1237
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DatatableCellTplDirective, "[seamDatatableCellTpl]", never, {}, {}, never, never, false, never>;
1238
+ }
1239
+
1242
1240
  declare class DatatableColumnFilterTplDirective {
1243
1241
  template: TemplateRef<any>;
1244
1242
  constructor(template: TemplateRef<any>);
@@ -3,7 +3,7 @@ import { trigger, transition, style, animate } from '@angular/animations';
3
3
  import { coerceArray } from '@angular/cdk/coercion';
4
4
  import { DataSource, isDataSource } from '@angular/cdk/collections';
5
5
  import * as i0 from '@angular/core';
6
- import { EventEmitter, Output, Input, ChangeDetectionStrategy, Component, ContentChildren, ViewChild, Directive, Injectable, TemplateRef, ContentChild, Self, Inject, forwardRef, InjectionToken, Optional, isDevMode, input, inject, ChangeDetectorRef, ElementRef, HostListener, HostBinding, NgModule } from '@angular/core';
6
+ import { EventEmitter, Output, Input, ChangeDetectionStrategy, Component, ContentChildren, ViewChild, Directive, Injectable, inject, TemplateRef, ContentChild, Self, Inject, forwardRef, InjectionToken, Optional, isDevMode, input, ChangeDetectorRef, ElementRef, HostListener, HostBinding, NgModule } from '@angular/core';
7
7
  import { Subject, BehaviorSubject, of, startWith as startWith$1, map as map$1, switchMap as switchMap$1, combineLatest, defer, EMPTY, debounceTime, tap as tap$1, Subscription, from, isObservable } from 'rxjs';
8
8
  import { switchMap, map, startWith, auditTime, shareReplay, take, tap, distinctUntilChanged, takeUntil, concatMap, catchError } from 'rxjs/operators';
9
9
  import { faEllipsisH, faChevronDown, faChevronRight, faSpinner, faFilter, faColumns, faFileDownload } from '@fortawesome/free-solid-svg-icons';
@@ -260,10 +260,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImpor
260
260
  type: Injectable
261
261
  }] });
262
262
 
263
- // TODO: The column component should implement `ITheSeamDatatableColumn`, since
263
+ // TODO: The column component should implement `TheSeamDatatableColumn`, since
264
264
  // providing some properties by input and some by template could be confusing.
265
265
  class DatatableColumnComponent {
266
- _columnChangesService;
266
+ _columnChangesService = inject(DatatableColumnChangesService);
267
267
  name;
268
268
  prop;
269
269
  flexGrow;
@@ -292,31 +292,19 @@ class DatatableColumnComponent {
292
292
  alignHeader;
293
293
  alignCell;
294
294
  _isFirstChange = true;
295
- cellTplDirective;
296
295
  // eslint-disable-next-line @angular-eslint/no-input-rename
297
296
  _cellTemplateInput;
297
+ set _setCellTemplateQuery(value) {
298
+ this._cellTemplateQuery = value;
299
+ if (!this.__propsChanged.includes('cellTemplate')) {
300
+ this.__propsChanged.push('cellTemplate');
301
+ }
302
+ }
298
303
  _cellTemplateQuery;
299
304
  get cellTemplate() {
300
305
  return this._cellTemplateInput || this._cellTemplateQuery;
301
306
  }
302
- // @Input('headerTemplate')
303
- // _headerTemplateInput: TemplateRef<any>;
304
- // @ContentChild(DataTableColumnHeaderDirective, { read: TemplateRef, static: true })
305
- // _headerTemplateQuery: TemplateRef<any>;
306
- // get headerTemplate(): TemplateRef<any> {
307
- // return this._headerTemplateInput || this._headerTemplateQuery;
308
- // }
309
- // @Input('treeToggleTemplate')
310
- // _treeToggleTemplateInput: TemplateRef<any>;
311
- // @ContentChild(DataTableColumnCellTreeToggle, { read: TemplateRef, static: true })
312
- // _treeToggleTemplateQuery: TemplateRef<any>;
313
- // get treeToggleTemplate(): TemplateRef<any> {
314
- // return this._treeToggleTemplateInput || this._treeToggleTemplateQuery;
315
- // }
316
307
  __propsChanged = [];
317
- constructor(_columnChangesService) {
318
- this._columnChangesService = _columnChangesService;
319
- }
320
308
  ngOnChanges(changes) {
321
309
  if (this._isFirstChange) {
322
310
  this._isFirstChange = false;
@@ -332,19 +320,13 @@ class DatatableColumnComponent {
332
320
  }
333
321
  }
334
322
  }
335
- getCellDirective() {
336
- if (this.cellTplDirective) {
337
- return this.cellTplDirective;
338
- }
339
- return null;
340
- }
341
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnComponent, deps: [{ token: DatatableColumnChangesService }], target: i0.ɵɵFactoryTarget.Component });
342
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableColumnComponent, isStandalone: false, selector: "seam-datatable-column", inputs: { name: "name", prop: "prop", flexGrow: "flexGrow", minWidth: "minWidth", maxWidth: "maxWidth", width: "width", resizeable: "resizeable", sortable: "sortable", draggable: "draggable", canAutoResize: "canAutoResize", comparator: "comparator", headerTemplate: "headerTemplate", checkboxable: "checkboxable", headerCheckboxable: "headerCheckboxable", headerClass: "headerClass", cellClass: "cellClass", frozenLeft: "frozenLeft", frozenRight: "frozenRight", pipe: "pipe", isTreeColumn: "isTreeColumn", treeLevelIndent: "treeLevelIndent", summaryFunc: "summaryFunc", summaryTemplate: "summaryTemplate", hidden: "hidden", align: "align", alignHeader: "alignHeader", alignCell: "alignCell", _cellTemplateInput: ["cellTemplate", "_cellTemplateInput"] }, queries: [{ propertyName: "cellTplDirective", first: true, predicate: DatatableCellTplDirective, descendants: true, static: true }, { propertyName: "_cellTemplateQuery", first: true, predicate: DatatableCellTplDirective, descendants: true, read: TemplateRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<p>datatable-column works!</p>\n", styles: [""] });
323
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
324
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: DatatableColumnComponent, isStandalone: false, selector: "seam-datatable-column", inputs: { name: "name", prop: "prop", flexGrow: "flexGrow", minWidth: "minWidth", maxWidth: "maxWidth", width: "width", resizeable: "resizeable", sortable: "sortable", draggable: "draggable", canAutoResize: "canAutoResize", comparator: "comparator", headerTemplate: "headerTemplate", checkboxable: "checkboxable", headerCheckboxable: "headerCheckboxable", headerClass: "headerClass", cellClass: "cellClass", frozenLeft: "frozenLeft", frozenRight: "frozenRight", pipe: "pipe", isTreeColumn: "isTreeColumn", treeLevelIndent: "treeLevelIndent", summaryFunc: "summaryFunc", summaryTemplate: "summaryTemplate", hidden: "hidden", align: "align", alignHeader: "alignHeader", alignCell: "alignCell", _cellTemplateInput: ["cellTemplate", "_cellTemplateInput"] }, queries: [{ propertyName: "_setCellTemplateQuery", first: true, predicate: DatatableCellTplDirective, descendants: true, read: TemplateRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<p>datatable-column works!</p>\n", styles: [""] });
343
325
  }
344
326
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnComponent, decorators: [{
345
327
  type: Component,
346
328
  args: [{ selector: 'seam-datatable-column', standalone: false, template: "<p>datatable-column works!</p>\n" }]
347
- }], ctorParameters: () => [{ type: DatatableColumnChangesService }], propDecorators: { name: [{
329
+ }], propDecorators: { name: [{
348
330
  type: Input
349
331
  }], prop: [{
350
332
  type: Input
@@ -398,13 +380,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImpor
398
380
  type: Input
399
381
  }], alignCell: [{
400
382
  type: Input
401
- }], cellTplDirective: [{
402
- type: ContentChild,
403
- args: [DatatableCellTplDirective, { static: true }]
404
383
  }], _cellTemplateInput: [{
405
384
  type: Input,
406
385
  args: ['cellTemplate']
407
- }], _cellTemplateQuery: [{
386
+ }], _setCellTemplateQuery: [{
408
387
  type: ContentChild,
409
388
  args: [DatatableCellTplDirective, { read: TemplateRef, static: true }]
410
389
  }] } });
@@ -2793,7 +2772,7 @@ class DatatableColumnHeaderComponent {
2793
2772
  columnFilterUpdateMethod = input(...(ngDevMode ? [undefined, { debugName: "columnFilterUpdateMethod" }] : []));
2794
2773
  columnFilterUpdateDebounce = input(...(ngDevMode ? [undefined, { debugName: "columnFilterUpdateDebounce" }] : []));
2795
2774
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2796
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.7", type: DatatableColumnHeaderComponent, isStandalone: true, selector: "seam-datatable-column-header", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null }, sortFn: { classPropertyName: "sortFn", publicName: "sortFn", isSignal: true, isRequired: true, transformFunction: null }, columnFilterIcon: { classPropertyName: "columnFilterIcon", publicName: "columnFilterIcon", isSignal: true, isRequired: false, transformFunction: null }, columnFilterUpdateMethod: { classPropertyName: "columnFilterUpdateMethod", publicName: "columnFilterUpdateMethod", isSignal: true, isRequired: false, transformFunction: null }, columnFilterUpdateDebounce: { classPropertyName: "columnFilterUpdateDebounce", publicName: "columnFilterUpdateDebounce", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.justify-content-center": "column().alignHeader === \"center\"", "class.justify-content-end": "column().alignHeader === \"right\"" }, classAttribute: "d-inline-flex align-items-center flex-fill" }, ngImport: i0, template: "@if (column().filterable) {\n <button\n seamIconBtn\n [icon]=\"columnFilterIcon()\"\n size=\"sm\"\n [seamPopover]=\"filterMenu\"\n [seamPopoverBaseWidth]=\"300\"\n class=\"datatable-column-header-filter-button d-flex align-items-center mr-2\"\n [class.datatable-column-header-filter-button-active]=\"column().filterActive\"\n style=\"width: 1rem\"\n title=\"Click to see filter options\"\n ></button>\n}\n@if (column().sortable) {\n <button\n seamButton\n class=\"datatable-sort-target p-0\"\n (click)=\"sortFn()()\"\n title=\"Click to sort\"\n >\n <strong class=\"draggable\">{{ column().name }}</strong>\n </button>\n} @else {\n <strong class=\"draggable\">{{ column().name }}</strong>\n}\n<div\n class=\"datatable-column-header-separator\"\n [attr.data-column-id]=\"column().$$id\"\n></div>\n<ng-template #filterMenu let-popover=\"popover\">\n <seam-datatable-column-filter-menu\n [column]=\"column()\"\n [updateMethod]=\"columnFilterUpdateMethod()\"\n [debounce]=\"columnFilterUpdateDebounce()\"\n (closePopover)=\"popover?.closePopover()\"\n ></seam-datatable-column-filter-menu>\n</ng-template>\n", styles: [".datatable-column-header-separator{position:absolute}.datatable-sort-target{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TheSeamButtonsModule }, { kind: "component", type: i4$2.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }, { kind: "ngmodule", type: TheSeamPopoverModule }, { kind: "directive", type: i2$3.TheSeamPopoverDirective, selector: "[seamPopover]", inputs: ["seamPopover", "seamPopoverContext", "seamPopoverBaseWidth", "seamPopoverDisabled"], exportAs: ["seamPopover"] }, { kind: "ngmodule", type: TheSeamIconModule }, { kind: "component", type: i3.IconBtnComponent, selector: "button[seamIconBtn]", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "iconType", "btnTheme", "badgeTheme", "badgeText", "btnSize", "type", "role"] }, { kind: "component", type: DatatableColumnFilterMenuComponent, selector: "seam-datatable-column-filter-menu", inputs: ["column", "updateMethod", "debounce"], outputs: ["closePopover"] }] });
2775
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.7", type: DatatableColumnHeaderComponent, isStandalone: true, selector: "seam-datatable-column-header", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null }, sortFn: { classPropertyName: "sortFn", publicName: "sortFn", isSignal: true, isRequired: true, transformFunction: null }, columnFilterIcon: { classPropertyName: "columnFilterIcon", publicName: "columnFilterIcon", isSignal: true, isRequired: false, transformFunction: null }, columnFilterUpdateMethod: { classPropertyName: "columnFilterUpdateMethod", publicName: "columnFilterUpdateMethod", isSignal: true, isRequired: false, transformFunction: null }, columnFilterUpdateDebounce: { classPropertyName: "columnFilterUpdateDebounce", publicName: "columnFilterUpdateDebounce", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.flex-fill": "column().alignHeader !== \"left\"", "class.justify-content-center": "column().alignHeader === \"center\"", "class.justify-content-end": "column().alignHeader === \"right\"" }, classAttribute: "d-inline-flex align-items-center" }, ngImport: i0, template: "@if (column().filterable) {\n <button\n seamIconBtn\n [icon]=\"columnFilterIcon()\"\n size=\"sm\"\n [seamPopover]=\"filterMenu\"\n [seamPopoverBaseWidth]=\"300\"\n class=\"datatable-column-header-filter-button d-flex align-items-center mr-2\"\n [class.datatable-column-header-filter-button-active]=\"column().filterActive\"\n style=\"width: 1rem\"\n title=\"Click to see filter options\"\n ></button>\n}\n@if (column().sortable) {\n <button\n seamButton\n class=\"datatable-sort-target p-0\"\n (click)=\"sortFn()()\"\n title=\"Click to sort\"\n >\n <strong class=\"draggable\">{{ column().name }}</strong>\n </button>\n} @else {\n <strong class=\"draggable\">{{ column().name }}</strong>\n}\n<div\n class=\"datatable-column-header-separator\"\n [attr.data-column-id]=\"column().$$id\"\n></div>\n<ng-template #filterMenu let-popover=\"popover\">\n <seam-datatable-column-filter-menu\n [column]=\"column()\"\n [updateMethod]=\"columnFilterUpdateMethod()\"\n [debounce]=\"columnFilterUpdateDebounce()\"\n (closePopover)=\"popover?.closePopover()\"\n ></seam-datatable-column-filter-menu>\n</ng-template>\n", styles: [".datatable-column-header-separator{position:absolute}.datatable-sort-target{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TheSeamButtonsModule }, { kind: "component", type: i4$2.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }, { kind: "ngmodule", type: TheSeamPopoverModule }, { kind: "directive", type: i2$3.TheSeamPopoverDirective, selector: "[seamPopover]", inputs: ["seamPopover", "seamPopoverContext", "seamPopoverBaseWidth", "seamPopoverDisabled"], exportAs: ["seamPopover"] }, { kind: "ngmodule", type: TheSeamIconModule }, { kind: "component", type: i3.IconBtnComponent, selector: "button[seamIconBtn]", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "iconType", "btnTheme", "badgeTheme", "badgeText", "btnSize", "type", "role"] }, { kind: "component", type: DatatableColumnFilterMenuComponent, selector: "seam-datatable-column-filter-menu", inputs: ["column", "updateMethod", "debounce"], outputs: ["closePopover"] }] });
2797
2776
  }
2798
2777
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: DatatableColumnHeaderComponent, decorators: [{
2799
2778
  type: Component,
@@ -2804,7 +2783,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImpor
2804
2783
  TheSeamIconModule,
2805
2784
  DatatableColumnFilterMenuComponent,
2806
2785
  ], host: {
2807
- class: 'd-inline-flex align-items-center flex-fill',
2786
+ class: 'd-inline-flex align-items-center',
2787
+ '[class.flex-fill]': 'column().alignHeader !== "left"',
2788
+ // TODO: fix 'center' alignment. This solution leaves the sort icon on the
2789
+ // far right, away from the text.
2808
2790
  '[class.justify-content-center]': 'column().alignHeader === "center"',
2809
2791
  '[class.justify-content-end]': 'column().alignHeader === "right"',
2810
2792
  }, template: "@if (column().filterable) {\n <button\n seamIconBtn\n [icon]=\"columnFilterIcon()\"\n size=\"sm\"\n [seamPopover]=\"filterMenu\"\n [seamPopoverBaseWidth]=\"300\"\n class=\"datatable-column-header-filter-button d-flex align-items-center mr-2\"\n [class.datatable-column-header-filter-button-active]=\"column().filterActive\"\n style=\"width: 1rem\"\n title=\"Click to see filter options\"\n ></button>\n}\n@if (column().sortable) {\n <button\n seamButton\n class=\"datatable-sort-target p-0\"\n (click)=\"sortFn()()\"\n title=\"Click to sort\"\n >\n <strong class=\"draggable\">{{ column().name }}</strong>\n </button>\n} @else {\n <strong class=\"draggable\">{{ column().name }}</strong>\n}\n<div\n class=\"datatable-column-header-separator\"\n [attr.data-column-id]=\"column().$$id\"\n></div>\n<ng-template #filterMenu let-popover=\"popover\">\n <seam-datatable-column-filter-menu\n [column]=\"column()\"\n [updateMethod]=\"columnFilterUpdateMethod()\"\n [debounce]=\"columnFilterUpdateDebounce()\"\n (closePopover)=\"popover?.closePopover()\"\n ></seam-datatable-column-filter-menu>\n</ng-template>\n", styles: [".datatable-column-header-separator{position:absolute}.datatable-sort-target{cursor:pointer}\n"] }]