@theseam/ui-common 1.0.0-beta.6 → 1.0.0-beta.8

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