@theseam/ui-common 0.4.28 → 0.4.30

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 (616) hide show
  1. package/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +1 -1
  2. package/datatable/datatable/datatable.component.d.ts +61 -9
  3. package/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.d.ts +25 -0
  4. package/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.d.ts +18 -0
  5. package/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.d.ts +16 -0
  6. package/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.d.ts +15 -0
  7. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -2
  8. package/datatable/datatable.module.d.ts +29 -20
  9. package/datatable/directives/datatable-column-filter-tpl.directive.d.ts +8 -0
  10. package/datatable/directives/datatable-column-filter.directive.d.ts +10 -0
  11. package/datatable/models/action-item-column-position.d.ts +13 -0
  12. package/datatable/models/columns-data-filter.d.ts +57 -0
  13. package/datatable/models/columns-data-filters/models.d.ts +65 -0
  14. package/datatable/models/columns-data-filters/search-date.columns-data-filter.d.ts +23 -0
  15. package/datatable/models/columns-data-filters/search-numeric.columns-data-filter.d.ts +22 -0
  16. package/datatable/models/columns-data-filters/search-text.columns-data-filter.d.ts +21 -0
  17. package/datatable/models/columns-data-filters/utils.d.ts +15 -0
  18. package/datatable/models/datatable-config.d.ts +97 -0
  19. package/datatable/models/table-column.d.ts +22 -1
  20. package/datatable/public-api.d.ts +14 -0
  21. package/datatable/services/columns-filters.service.d.ts +29 -0
  22. package/datatable/services/columns-manager.service.d.ts +7 -0
  23. package/datatable/utils/create-action-menu-column.d.ts +1 -1
  24. package/esm2020/asset-reader/asset-reader-helper.service.mjs +4 -4
  25. package/esm2020/asset-reader/asset-reader.module.mjs +5 -5
  26. package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +4 -4
  27. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +5 -5
  28. package/esm2020/breadcrumbs/breadcrumbs.module.mjs +5 -5
  29. package/esm2020/breadcrumbs/breadcrumbs.service.mjs +4 -4
  30. package/esm2020/buttons/badge-button/badge-button.component.mjs +7 -7
  31. package/esm2020/buttons/button/button.component.mjs +10 -10
  32. package/esm2020/buttons/buttons.module.mjs +5 -5
  33. package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +4 -4
  34. package/esm2020/buttons/toggle-button/toggle-button.component.mjs +4 -4
  35. package/esm2020/card/card-action/card-action.component.mjs +4 -4
  36. package/esm2020/card/card-body/card-body.component.mjs +4 -4
  37. package/esm2020/card/card-footer/card-footer.component.mjs +4 -4
  38. package/esm2020/card/card-header/card-header.component.mjs +4 -4
  39. package/esm2020/card/card.component.mjs +4 -4
  40. package/esm2020/card/card.module.mjs +5 -5
  41. package/esm2020/carousel/carousel-slide.directive.mjs +4 -4
  42. package/esm2020/carousel/carousel.component.mjs +4 -4
  43. package/esm2020/carousel/carousel.module.mjs +5 -5
  44. package/esm2020/checkbox/checkbox.component.mjs +4 -4
  45. package/esm2020/checkbox/checkbox.module.mjs +5 -5
  46. package/esm2020/confirm-dialog/confirm-click.directive.mjs +4 -4
  47. package/esm2020/confirm-dialog/confirm-dialog.component.mjs +4 -4
  48. package/esm2020/confirm-dialog/confirm-dialog.module.mjs +5 -5
  49. package/esm2020/confirm-dialog/confirm-dialog.service.mjs +4 -4
  50. package/esm2020/data-exporter/data-exporter.module.mjs +5 -5
  51. package/esm2020/data-exporter/exporters/csv-exporter.mjs +4 -4
  52. package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +4 -4
  53. package/esm2020/data-filters/data-filters.module.mjs +5 -5
  54. package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +4 -4
  55. package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +4 -4
  56. package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +4 -4
  57. package/esm2020/datatable/datatable/datatable.component.mjs +241 -32
  58. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +5 -5
  59. package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +4 -4
  60. package/esm2020/datatable/datatable-column/datatable-column.component.mjs +4 -4
  61. package/esm2020/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.mjs +55 -0
  62. package/esm2020/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.mjs +54 -0
  63. package/esm2020/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.mjs +48 -0
  64. package/esm2020/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.mjs +44 -0
  65. package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +4 -4
  66. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +4 -4
  67. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +4 -4
  68. package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +4 -4
  69. package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +4 -4
  70. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +4 -4
  71. package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +4 -4
  72. package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +4 -4
  73. package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +4 -4
  74. package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +4 -4
  75. package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +4 -4
  76. package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +4 -4
  77. package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +4 -4
  78. package/esm2020/datatable/datatable.module.mjs +53 -11
  79. package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +4 -4
  80. package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +4 -4
  81. package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +4 -4
  82. package/esm2020/datatable/directives/datatable-column-filter-tpl.directive.mjs +16 -0
  83. package/esm2020/datatable/directives/datatable-column-filter.directive.mjs +26 -0
  84. package/esm2020/datatable/directives/datatable-filter.directive.mjs +4 -4
  85. package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +4 -4
  86. package/esm2020/datatable/models/action-item-column-position.mjs +5 -0
  87. package/esm2020/datatable/models/columns-data-filter.mjs +10 -0
  88. package/esm2020/datatable/models/columns-data-filters/models.mjs +74 -0
  89. package/esm2020/datatable/models/columns-data-filters/search-date.columns-data-filter.mjs +113 -0
  90. package/esm2020/datatable/models/columns-data-filters/search-numeric.columns-data-filter.mjs +104 -0
  91. package/esm2020/datatable/models/columns-data-filters/search-text.columns-data-filter.mjs +86 -0
  92. package/esm2020/datatable/models/columns-data-filters/utils.mjs +28 -0
  93. package/esm2020/datatable/models/datatable-config.mjs +3 -0
  94. package/esm2020/datatable/models/table-column.mjs +1 -1
  95. package/esm2020/datatable/public-api.mjs +15 -1
  96. package/esm2020/datatable/services/columns-alterations-manager.service.mjs +4 -4
  97. package/esm2020/datatable/services/columns-filters.service.mjs +109 -0
  98. package/esm2020/datatable/services/columns-manager.service.mjs +30 -5
  99. package/esm2020/datatable/services/datatable-column-changes.service.mjs +4 -4
  100. package/esm2020/datatable/services/datatable-preferences.service.mjs +4 -4
  101. package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +4 -4
  102. package/esm2020/datatable/utils/create-action-menu-column.mjs +4 -3
  103. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +4 -4
  104. package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +4 -4
  105. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +4 -4
  106. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +5 -5
  107. package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +5 -5
  108. package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +4 -4
  109. package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +4 -4
  110. package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +4 -4
  111. package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +4 -4
  112. package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +4 -4
  113. package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +4 -4
  114. package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +4 -4
  115. package/esm2020/dynamic/dynamic-value-helper.service.mjs +4 -4
  116. package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +4 -4
  117. package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +4 -4
  118. package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +5 -5
  119. package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +4 -4
  120. package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +4 -4
  121. package/esm2020/footer-bar/footer-bar.module.mjs +5 -5
  122. package/esm2020/form-field/form-field-error.directive.mjs +4 -4
  123. package/esm2020/form-field/form-field-help-text.directive.mjs +4 -4
  124. package/esm2020/form-field/form-field-label-tpl.directive.mjs +4 -4
  125. package/esm2020/form-field/form-field-required-indicator.component.mjs +4 -4
  126. package/esm2020/form-field/form-field.component.mjs +4 -4
  127. package/esm2020/form-field/form-field.module.mjs +5 -5
  128. package/esm2020/form-field/input.directive.mjs +4 -4
  129. package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +4 -4
  130. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +4 -4
  131. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +4 -4
  132. package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +4 -4
  133. package/esm2020/form-field-error/form-field-error.module.mjs +5 -5
  134. package/esm2020/framework/base-layout/base-layout.component.mjs +16 -6
  135. package/esm2020/framework/base-layout/base-layout.module.mjs +10 -5
  136. package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +4 -4
  137. package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +4 -4
  138. package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +4 -4
  139. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +22 -6
  140. package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +4 -4
  141. package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +16 -0
  142. package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +4 -4
  143. package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +4 -4
  144. package/esm2020/framework/base-layout/index.mjs +2 -1
  145. package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +4 -4
  146. package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +4 -4
  147. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +4 -4
  148. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +4 -4
  149. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +4 -4
  150. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +4 -4
  151. package/esm2020/framework/dashboard/dashboard.component.mjs +4 -4
  152. package/esm2020/framework/dashboard/dashboard.module.mjs +5 -5
  153. package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +5 -5
  154. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +4 -4
  155. package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +4 -4
  156. package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +55 -0
  157. package/esm2020/framework/nav/index.mjs +6 -0
  158. package/esm2020/framework/nav/nav-item/nav-item.component.mjs +227 -0
  159. package/esm2020/framework/nav/nav-utils.mjs +107 -0
  160. package/esm2020/framework/nav/nav.models.mjs +2 -0
  161. package/esm2020/framework/nav/nav.module.mjs +67 -0
  162. package/esm2020/framework/nav/nav.service.mjs +204 -0
  163. package/esm2020/framework/public-api.mjs +2 -1
  164. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +4 -4
  165. package/esm2020/framework/schema-form/schema-form-framework.mjs +4 -4
  166. package/esm2020/framework/schema-form/schema-form.module.mjs +5 -5
  167. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +4 -4
  168. package/esm2020/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.mjs +4 -4
  169. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +4 -4
  170. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +4 -4
  171. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +4 -4
  172. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +4 -4
  173. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +4 -4
  174. package/esm2020/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.mjs +4 -4
  175. package/esm2020/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.mjs +4 -4
  176. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +29 -68
  177. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +14 -7
  178. package/esm2020/framework/side-nav/side-nav.component.mjs +117 -39
  179. package/esm2020/framework/side-nav/side-nav.models.mjs +1 -1
  180. package/esm2020/framework/side-nav/side-nav.module.mjs +11 -41
  181. package/esm2020/framework/side-nav/side-nav.service.mjs +4 -4
  182. package/esm2020/framework/top-bar/index.mjs +3 -1
  183. package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +16 -0
  184. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +12 -6
  185. package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +4 -4
  186. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +8 -6
  187. package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +4 -4
  188. package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +16 -0
  189. package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +4 -4
  190. package/esm2020/framework/top-bar/top-bar.component.mjs +57 -13
  191. package/esm2020/framework/top-bar/top-bar.module.mjs +19 -9
  192. package/esm2020/google-maps/google-maps/google-maps.component.mjs +4 -4
  193. package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +4 -4
  194. package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +4 -4
  195. package/esm2020/google-maps/google-maps-controls.service.mjs +4 -4
  196. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +5 -5
  197. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +4 -4
  198. package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +4 -4
  199. package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +4 -4
  200. package/esm2020/google-maps/google-maps.module.mjs +5 -5
  201. package/esm2020/google-maps/google-maps.service.mjs +4 -4
  202. package/esm2020/google-maps/map-control.component.mjs +4 -4
  203. package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +4 -4
  204. package/esm2020/google-maps/map-value-manager.service.mjs +4 -4
  205. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +4 -4
  206. package/esm2020/graphql/datatable/index.mjs +4 -1
  207. package/esm2020/graphql/datatable/map-filter-states.mjs +1 -1
  208. package/esm2020/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.mjs +139 -0
  209. package/esm2020/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.mjs +75 -0
  210. package/esm2020/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.mjs +44 -0
  211. package/esm2020/icon/icon/icon.component.mjs +4 -4
  212. package/esm2020/icon/icon-btn/icon-btn.component.mjs +4 -4
  213. package/esm2020/icon/icon-notification/icon-notification.component.mjs +4 -4
  214. package/esm2020/icon/icon.module.mjs +5 -5
  215. package/esm2020/layout/layout.module.mjs +5 -5
  216. package/esm2020/layout/layout.service.mjs +15 -5
  217. package/esm2020/loading/loading/loading.component.mjs +4 -4
  218. package/esm2020/loading/loading-overlay.service.mjs +4 -4
  219. package/esm2020/loading/loading.module.mjs +5 -5
  220. package/esm2020/menu/menu-divider.component.mjs +4 -4
  221. package/esm2020/menu/menu-footer/menu-footer.component.mjs +4 -4
  222. package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +4 -4
  223. package/esm2020/menu/menu-header/menu-header.component.mjs +4 -4
  224. package/esm2020/menu/menu-item.component.mjs +4 -4
  225. package/esm2020/menu/menu-toggle.directive.mjs +9 -4
  226. package/esm2020/menu/menu.component.mjs +4 -4
  227. package/esm2020/menu/menu.module.mjs +5 -5
  228. package/esm2020/modal/directives/modal-close.directive.mjs +4 -4
  229. package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +4 -4
  230. package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +4 -4
  231. package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +4 -4
  232. package/esm2020/modal/directives/modal-title.directive.mjs +4 -4
  233. package/esm2020/modal/directives/modal.directive.mjs +4 -4
  234. package/esm2020/modal/modal/modal.component.mjs +4 -4
  235. package/esm2020/modal/modal-body/modal-body.component.mjs +4 -4
  236. package/esm2020/modal/modal-container/modal-container.component.mjs +4 -4
  237. package/esm2020/modal/modal-footer/modal-footer.component.mjs +4 -4
  238. package/esm2020/modal/modal-header/modal-header.component.mjs +4 -4
  239. package/esm2020/modal/modal.module.mjs +5 -5
  240. package/esm2020/modal/modal.service.mjs +4 -4
  241. package/esm2020/modal/route-modal/route-modal.component.mjs +4 -4
  242. package/esm2020/navigation-reload/navigation-reload.service.mjs +5 -5
  243. package/esm2020/popover/popover/popover.component.mjs +9 -5
  244. package/esm2020/popover/popover.directive.mjs +8 -4
  245. package/esm2020/popover/popover.module.mjs +5 -5
  246. package/esm2020/progress/progress-circle/progress-circle.component.mjs +4 -4
  247. package/esm2020/progress/progress.module.mjs +5 -5
  248. package/esm2020/rich-text/rich-text/rich-text.component.mjs +4 -4
  249. package/esm2020/rich-text/rich-text.module.mjs +5 -5
  250. package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +4 -4
  251. package/esm2020/scrollbar/overlay-scrollbars.service.mjs +4 -4
  252. package/esm2020/scrollbar/scrollbar.module.mjs +5 -5
  253. package/esm2020/services/asset-loader.service.mjs +4 -4
  254. package/esm2020/services/font-loader.service.mjs +4 -4
  255. package/esm2020/services/preferences/preferences-manager.service.mjs +4 -4
  256. package/esm2020/services/router-helpers.service.mjs +4 -4
  257. package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +4 -4
  258. package/esm2020/shared/directives/auto-focus.directive.mjs +4 -4
  259. package/esm2020/shared/directives/click-outside.directive.mjs +4 -4
  260. package/esm2020/shared/directives/disable-control.directive.mjs +4 -4
  261. package/esm2020/shared/directives/elem-resized.directive.mjs +4 -4
  262. package/esm2020/shared/directives/hover-class-toggle.directive.mjs +4 -4
  263. package/esm2020/shared/directives/hover-class.directive.mjs +4 -4
  264. package/esm2020/shared/directives/ng-select-extra.directive.mjs +4 -4
  265. package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +4 -4
  266. package/esm2020/shared/pipes/mask-chars.pipe.mjs +4 -4
  267. package/esm2020/shared/pipes/truncate.pipe.mjs +4 -4
  268. package/esm2020/shared/shared.module.mjs +5 -5
  269. package/esm2020/storage/local-storage.service.mjs +4 -4
  270. package/esm2020/story-helpers/initial-route.service.mjs +4 -4
  271. package/esm2020/story-helpers/story-empty-with-route.component.mjs +4 -4
  272. package/esm2020/story-helpers/story-empty.component.mjs +4 -4
  273. package/esm2020/story-helpers/story-helper-components.module.mjs +5 -5
  274. package/esm2020/story-helpers/story-initial-route.mjs +5 -5
  275. package/esm2020/story-helpers/story-modal-container.component.mjs +4 -4
  276. package/esm2020/story-helpers/story-preferences-accessor.service.mjs +4 -4
  277. package/esm2020/story-helpers/story-toastr.service.mjs +4 -4
  278. package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +4 -4
  279. package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +4 -4
  280. package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +4 -4
  281. package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +4 -4
  282. package/esm2020/tabbed/tabbed.component.mjs +4 -4
  283. package/esm2020/tabbed/tabbed.module.mjs +5 -5
  284. package/esm2020/tabbed/tabbed.service.mjs +4 -4
  285. package/esm2020/table/public-api.mjs +4 -1
  286. package/esm2020/table/table/table.component.mjs +92 -7
  287. package/esm2020/table/table-cell-tpl.directive.mjs +17 -0
  288. package/esm2020/table/table-column-header-tpl.directive.mjs +17 -0
  289. package/esm2020/table/table-column.component.mjs +68 -0
  290. package/esm2020/table/table.module.mjs +25 -9
  291. package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +4 -4
  292. package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +4 -4
  293. package/esm2020/table-cell-type/table-cell-type.module.mjs +5 -5
  294. package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +4 -4
  295. package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +4 -4
  296. package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +4 -4
  297. package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +4 -4
  298. package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +4 -4
  299. package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +4 -4
  300. package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +4 -4
  301. package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +4 -4
  302. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +7 -5
  303. package/esm2020/table-cell-types/table-cell-types.module.mjs +5 -5
  304. package/esm2020/tel-input/phone-number.pipe.mjs +4 -4
  305. package/esm2020/tel-input/tel-input/tel-input.component.mjs +4 -4
  306. package/esm2020/tel-input/tel-input.directive.mjs +4 -4
  307. package/esm2020/tel-input/tel-input.module.mjs +5 -5
  308. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +4 -4
  309. package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +4 -4
  310. package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +4 -4
  311. package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +4 -4
  312. package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +4 -4
  313. package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +4 -4
  314. package/esm2020/tiled-select/tiled-select.module.mjs +5 -5
  315. package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +4 -4
  316. package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +4 -4
  317. package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +4 -4
  318. package/esm2020/toggle-edit/toggle-edit.component.mjs +4 -4
  319. package/esm2020/toggle-edit/toggle-edit.module.mjs +5 -5
  320. package/esm2020/toggle-group/toggle-group-option.directive.mjs +4 -4
  321. package/esm2020/toggle-group/toggle-group.directive.mjs +4 -4
  322. package/esm2020/toggle-group/toggle-group.module.mjs +5 -5
  323. package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +4 -4
  324. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +4 -4
  325. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +4 -4
  326. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +5 -5
  327. package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
  328. package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
  329. package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
  330. package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
  331. package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
  332. package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
  333. package/esm2020/vertical-list-filter/vertical-list-filter.component.mjs +4 -4
  334. package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +4 -4
  335. package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +5 -5
  336. package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +4 -4
  337. package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +4 -4
  338. package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +4 -4
  339. package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +5 -5
  340. package/esm2020/widget/directives/widget-drag-handle.directive.mjs +4 -4
  341. package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +4 -4
  342. package/esm2020/widget/directives/widget-title-tpl.directive.mjs +4 -4
  343. package/esm2020/widget/preferences/widget-preferences.service.mjs +4 -4
  344. package/esm2020/widget/widget/widget.component.mjs +4 -4
  345. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +4 -4
  346. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +5 -5
  347. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +4 -4
  348. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +5 -5
  349. package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +4 -4
  350. package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +5 -5
  351. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +4 -4
  352. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +5 -5
  353. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +4 -4
  354. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +5 -5
  355. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +4 -4
  356. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +5 -5
  357. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +4 -4
  358. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +5 -5
  359. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +4 -4
  360. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +16 -16
  361. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +4 -4
  362. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +5 -5
  363. package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +4 -4
  364. package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +5 -5
  365. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +4 -4
  366. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +4 -4
  367. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +4 -4
  368. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +4 -4
  369. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +7 -7
  370. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +5 -5
  371. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +4 -4
  372. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +5 -5
  373. package/esm2020/widget/widget-footer/widget-footer.component.mjs +4 -4
  374. package/esm2020/widget/widget-registry.service.mjs +4 -4
  375. package/esm2020/widget/widget.module.mjs +5 -5
  376. package/fesm2015/theseam-ui-common-asset-reader.mjs +10 -10
  377. package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
  378. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +11 -11
  379. package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  380. package/fesm2015/theseam-ui-common-buttons.mjs +25 -25
  381. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  382. package/fesm2015/theseam-ui-common-card.mjs +19 -19
  383. package/fesm2015/theseam-ui-common-card.mjs.map +1 -1
  384. package/fesm2015/theseam-ui-common-carousel.mjs +10 -10
  385. package/fesm2015/theseam-ui-common-carousel.mjs.map +1 -1
  386. package/fesm2015/theseam-ui-common-checkbox.mjs +7 -7
  387. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  388. package/fesm2015/theseam-ui-common-confirm-dialog.mjs +13 -13
  389. package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  390. package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
  391. package/fesm2015/theseam-ui-common-data-exporter.mjs.map +1 -1
  392. package/fesm2015/theseam-ui-common-data-filters.mjs +13 -13
  393. package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
  394. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +26 -26
  395. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  396. package/fesm2015/theseam-ui-common-datatable.mjs +1112 -139
  397. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  398. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  399. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  400. package/fesm2015/theseam-ui-common-dynamic.mjs +21 -21
  401. package/fesm2015/theseam-ui-common-dynamic.mjs.map +1 -1
  402. package/fesm2015/theseam-ui-common-footer-bar.mjs +7 -7
  403. package/fesm2015/theseam-ui-common-footer-bar.mjs.map +1 -1
  404. package/fesm2015/theseam-ui-common-form-field-error.mjs +16 -16
  405. package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
  406. package/fesm2015/theseam-ui-common-form-field.mjs +22 -22
  407. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  408. package/fesm2015/theseam-ui-common-framework.mjs +1026 -277
  409. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  410. package/fesm2015/theseam-ui-common-google-maps.mjs +41 -41
  411. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  412. package/fesm2015/theseam-ui-common-graphql.mjs +257 -4
  413. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  414. package/fesm2015/theseam-ui-common-icon.mjs +13 -13
  415. package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
  416. package/fesm2015/theseam-ui-common-layout.mjs +18 -9
  417. package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
  418. package/fesm2015/theseam-ui-common-loading.mjs +10 -10
  419. package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
  420. package/fesm2015/theseam-ui-common-menu.mjs +30 -25
  421. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  422. package/fesm2015/theseam-ui-common-modal.mjs +43 -43
  423. package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
  424. package/fesm2015/theseam-ui-common-navigation-reload.mjs +4 -4
  425. package/fesm2015/theseam-ui-common-navigation-reload.mjs.map +1 -1
  426. package/fesm2015/theseam-ui-common-popover.mjs +19 -11
  427. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  428. package/fesm2015/theseam-ui-common-progress.mjs +7 -7
  429. package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
  430. package/fesm2015/theseam-ui-common-rich-text.mjs +7 -7
  431. package/fesm2015/theseam-ui-common-rich-text.mjs.map +1 -1
  432. package/fesm2015/theseam-ui-common-scrollbar.mjs +10 -10
  433. package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
  434. package/fesm2015/theseam-ui-common-services.mjs +12 -12
  435. package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
  436. package/fesm2015/theseam-ui-common-shared.mjs +37 -37
  437. package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
  438. package/fesm2015/theseam-ui-common-storage.mjs +3 -3
  439. package/fesm2015/theseam-ui-common-storage.mjs.map +1 -1
  440. package/fesm2015/theseam-ui-common-story-helpers.mjs +26 -26
  441. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  442. package/fesm2015/theseam-ui-common-tabbed.mjs +22 -22
  443. package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
  444. package/fesm2015/theseam-ui-common-table-cell-type.mjs +10 -10
  445. package/fesm2015/theseam-ui-common-table-cell-type.mjs.map +1 -1
  446. package/fesm2015/theseam-ui-common-table-cell-types.mjs +34 -32
  447. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  448. package/fesm2015/theseam-ui-common-table.mjs +207 -15
  449. package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
  450. package/fesm2015/theseam-ui-common-tel-input.mjs +13 -13
  451. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  452. package/fesm2015/theseam-ui-common-tiled-select.mjs +22 -22
  453. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  454. package/fesm2015/theseam-ui-common-toggle-edit.mjs +16 -16
  455. package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
  456. package/fesm2015/theseam-ui-common-toggle-group.mjs +10 -10
  457. package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
  458. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  459. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  460. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  461. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs +3 -3
  462. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
  463. package/fesm2015/theseam-ui-common-viewers.mjs +20 -20
  464. package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
  465. package/fesm2015/theseam-ui-common-widget.mjs +135 -135
  466. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  467. package/fesm2020/theseam-ui-common-asset-reader.mjs +10 -10
  468. package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
  469. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +11 -11
  470. package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  471. package/fesm2020/theseam-ui-common-buttons.mjs +25 -25
  472. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  473. package/fesm2020/theseam-ui-common-card.mjs +19 -19
  474. package/fesm2020/theseam-ui-common-card.mjs.map +1 -1
  475. package/fesm2020/theseam-ui-common-carousel.mjs +10 -10
  476. package/fesm2020/theseam-ui-common-carousel.mjs.map +1 -1
  477. package/fesm2020/theseam-ui-common-checkbox.mjs +7 -7
  478. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  479. package/fesm2020/theseam-ui-common-confirm-dialog.mjs +13 -13
  480. package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  481. package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
  482. package/fesm2020/theseam-ui-common-data-exporter.mjs.map +1 -1
  483. package/fesm2020/theseam-ui-common-data-filters.mjs +13 -13
  484. package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
  485. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +26 -26
  486. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  487. package/fesm2020/theseam-ui-common-datatable.mjs +1096 -139
  488. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  489. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  490. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  491. package/fesm2020/theseam-ui-common-dynamic.mjs +21 -21
  492. package/fesm2020/theseam-ui-common-dynamic.mjs.map +1 -1
  493. package/fesm2020/theseam-ui-common-footer-bar.mjs +7 -7
  494. package/fesm2020/theseam-ui-common-footer-bar.mjs.map +1 -1
  495. package/fesm2020/theseam-ui-common-form-field-error.mjs +16 -16
  496. package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
  497. package/fesm2020/theseam-ui-common-form-field.mjs +22 -22
  498. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  499. package/fesm2020/theseam-ui-common-framework.mjs +1028 -277
  500. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  501. package/fesm2020/theseam-ui-common-google-maps.mjs +41 -41
  502. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  503. package/fesm2020/theseam-ui-common-graphql.mjs +257 -4
  504. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  505. package/fesm2020/theseam-ui-common-icon.mjs +13 -13
  506. package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
  507. package/fesm2020/theseam-ui-common-layout.mjs +18 -9
  508. package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
  509. package/fesm2020/theseam-ui-common-loading.mjs +10 -10
  510. package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
  511. package/fesm2020/theseam-ui-common-menu.mjs +30 -25
  512. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  513. package/fesm2020/theseam-ui-common-modal.mjs +43 -43
  514. package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
  515. package/fesm2020/theseam-ui-common-navigation-reload.mjs +4 -4
  516. package/fesm2020/theseam-ui-common-navigation-reload.mjs.map +1 -1
  517. package/fesm2020/theseam-ui-common-popover.mjs +19 -11
  518. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  519. package/fesm2020/theseam-ui-common-progress.mjs +7 -7
  520. package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
  521. package/fesm2020/theseam-ui-common-rich-text.mjs +7 -7
  522. package/fesm2020/theseam-ui-common-rich-text.mjs.map +1 -1
  523. package/fesm2020/theseam-ui-common-scrollbar.mjs +10 -10
  524. package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
  525. package/fesm2020/theseam-ui-common-services.mjs +12 -12
  526. package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
  527. package/fesm2020/theseam-ui-common-shared.mjs +37 -37
  528. package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
  529. package/fesm2020/theseam-ui-common-storage.mjs +3 -3
  530. package/fesm2020/theseam-ui-common-storage.mjs.map +1 -1
  531. package/fesm2020/theseam-ui-common-story-helpers.mjs +26 -26
  532. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  533. package/fesm2020/theseam-ui-common-tabbed.mjs +22 -22
  534. package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
  535. package/fesm2020/theseam-ui-common-table-cell-type.mjs +10 -10
  536. package/fesm2020/theseam-ui-common-table-cell-type.mjs.map +1 -1
  537. package/fesm2020/theseam-ui-common-table-cell-types.mjs +34 -32
  538. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  539. package/fesm2020/theseam-ui-common-table.mjs +205 -15
  540. package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
  541. package/fesm2020/theseam-ui-common-tel-input.mjs +13 -13
  542. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  543. package/fesm2020/theseam-ui-common-tiled-select.mjs +22 -22
  544. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  545. package/fesm2020/theseam-ui-common-toggle-edit.mjs +16 -16
  546. package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
  547. package/fesm2020/theseam-ui-common-toggle-group.mjs +10 -10
  548. package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
  549. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  550. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  551. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  552. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs +3 -3
  553. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
  554. package/fesm2020/theseam-ui-common-viewers.mjs +20 -20
  555. package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
  556. package/fesm2020/theseam-ui-common-widget.mjs +135 -135
  557. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  558. package/framework/base-layout/base-layout.component.d.ts +4 -2
  559. package/framework/base-layout/base-layout.component.scss +18 -10
  560. package/framework/base-layout/base-layout.module.d.ts +11 -10
  561. package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +8 -3
  562. package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +9 -0
  563. package/framework/base-layout/index.d.ts +1 -0
  564. package/framework/base-layout/styles/_variables.scss +21 -0
  565. package/framework/nav/_nav-theme.scss +4 -0
  566. package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +25 -0
  567. package/framework/nav/horizontal-nav/horizontal-nav.component.scss +50 -0
  568. package/framework/nav/index.d.ts +5 -0
  569. package/framework/nav/nav-item/nav-item.component.d.ts +74 -0
  570. package/framework/nav/nav-item/nav-item.component.scss +203 -0
  571. package/framework/nav/nav-utils.d.ts +20 -0
  572. package/framework/nav/nav.models.d.ts +77 -0
  573. package/framework/nav/nav.module.d.ts +17 -0
  574. package/framework/nav/nav.service.d.ts +27 -0
  575. package/framework/nav/styles/_themes/light/_variables.scss +56 -0
  576. package/framework/nav/styles/_themes/primary/_variables.scss +56 -0
  577. package/framework/nav/styles/_utilities.scss +3 -0
  578. package/framework/nav/styles/_variables.scss +2 -0
  579. package/framework/public-api.d.ts +1 -0
  580. package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +7 -14
  581. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +7 -5
  582. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +5 -3
  583. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +3 -6
  584. package/framework/side-nav/side-nav.component.d.ts +13 -1
  585. package/framework/side-nav/side-nav.component.scss +0 -1
  586. package/framework/side-nav/side-nav.models.d.ts +7 -1
  587. package/framework/side-nav/side-nav.module.d.ts +1 -9
  588. package/framework/side-nav/styles/_themes/light/_variables.scss +24 -14
  589. package/framework/side-nav/styles/_themes/primary/_variables.scss +8 -0
  590. package/framework/top-bar/index.d.ts +2 -0
  591. package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +8 -0
  592. package/framework/top-bar/top-bar-item.directive.d.ts +4 -1
  593. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +5 -2
  594. package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +8 -0
  595. package/framework/top-bar/top-bar.component.d.ts +25 -3
  596. package/framework/top-bar/top-bar.component.scss +7 -2
  597. package/framework/top-bar/top-bar.module.d.ts +10 -8
  598. package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
  599. package/graphql/datatable/index.d.ts +3 -0
  600. package/graphql/datatable/map-filter-states.d.ts +2 -2
  601. package/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.d.ts +4 -0
  602. package/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.d.ts +4 -0
  603. package/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.d.ts +4 -0
  604. package/layout/layout.service.d.ts +9 -1
  605. package/menu/menu-toggle.directive.d.ts +2 -1
  606. package/package.json +3 -3
  607. package/popover/popover/popover.component.d.ts +4 -1
  608. package/popover/popover.directive.d.ts +2 -1
  609. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +83 -14
  610. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +38 -3
  611. package/table/public-api.d.ts +3 -0
  612. package/table/table/table.component.d.ts +21 -3
  613. package/table/table-cell-tpl.directive.d.ts +7 -0
  614. package/table/table-column-header-tpl.directive.d.ts +7 -0
  615. package/table/table-column.component.d.ts +24 -0
  616. package/table/table.module.d.ts +4 -1
@@ -4,56 +4,59 @@ import { coerceArray } from '@angular/cdk/coercion';
4
4
  import { DataSource, isDataSource } from '@angular/cdk/collections';
5
5
  import * as i0 from '@angular/core';
6
6
  import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, ViewChild, ContentChildren, Directive, Injectable, TemplateRef, ContentChild, Self, Inject, forwardRef, InjectionToken, isDevMode, Optional, ElementRef, HostListener, HostBinding, NgModule } from '@angular/core';
7
- import { Subject, BehaviorSubject, of, defer, combineLatest, EMPTY, Subscription, from, isObservable } from 'rxjs';
7
+ import { Subject, BehaviorSubject, of, defer, combineLatest, EMPTY, startWith as startWith$1, map as map$1, switchMap as switchMap$1, debounceTime, tap as tap$1, Subscription, from, isObservable } from 'rxjs';
8
8
  import { switchMap, map, startWith, auditTime, shareReplay, take, tap, distinctUntilChanged, takeUntil, concatMap, catchError } from 'rxjs/operators';
9
- import { faEllipsisH, faChevronDown, faChevronRight, faSpinner, faColumns, faFileDownload } from '@fortawesome/free-solid-svg-icons';
10
- import * as i5$1 from '@marklb/ngx-datatable';
9
+ import { faEllipsisH, faChevronDown, faChevronRight, faSpinner, faFilter, faColumns, faFileDownload } from '@fortawesome/free-solid-svg-icons';
10
+ import * as i6 from '@marklb/ngx-datatable';
11
11
  import { camelCase, setColumnDefaults as setColumnDefaults$1, translateTemplates, SelectionType, SortType, ColumnMode, DatatableComponent as DatatableComponent$1, DatatableRowDetailDirective, NgxDatatableModule, ScrollbarHelper } from '@marklb/ngx-datatable';
12
12
  import { InputBoolean, InputNumber } from '@theseam/ui-common/core';
13
- import { THESEAM_DATA_FILTER, THESEAM_DATA_FILTER_CONTAINER, composeDataFilterStates, composeDataFilters } from '@theseam/ui-common/data-filters';
14
- import { notNullOrUndefined, hasProperty, arrayMoveMutable, waitOnConditionAsync, observeControlValue } from '@theseam/ui-common/utils';
15
- import * as i4$1 from '@theseam/ui-common/menu';
13
+ import { THESEAM_DATA_FILTER, THESEAM_DATA_FILTER_CONTAINER, composeDataFilterStates, composeDataFilters, TheSeamDataFiltersModule } from '@theseam/ui-common/data-filters';
14
+ import { notNullOrUndefined, hasProperty, arrayMoveMutable, isNullOrUndefined, isNullOrUndefinedOrEmpty, notNullOrUndefinedOrEmpty, waitOnConditionAsync, observeControlValue } from '@theseam/ui-common/utils';
15
+ import * as i4 from '@theseam/ui-common/menu';
16
16
  import { MenuComponent, TheSeamMenuModule } from '@theseam/ui-common/menu';
17
17
  import * as i1 from '@theseam/ui-common/confirm-dialog';
18
18
  import { TheSeamConfirmDialogModule } from '@theseam/ui-common/confirm-dialog';
19
19
  import * as i2 from '@angular/router';
20
20
  import { RouterModule } from '@angular/router';
21
- import * as i4 from '@angular/common';
21
+ import * as i2$1 from '@angular/common';
22
22
  import { CommonModule } from '@angular/common';
23
23
  import * as i5 from '@theseam/ui-common/icon';
24
24
  import { TheSeamIconModule } from '@theseam/ui-common/icon';
25
+ import * as i4$1 from '@angular/forms';
26
+ import { FormGroup, FormControl, ControlContainer, FormGroupDirective, UntypedFormControl, ReactiveFormsModule } from '@angular/forms';
25
27
  import * as i1$1 from '@theseam/ui-common/services';
26
- import * as i6 from '@fortawesome/angular-fontawesome';
28
+ import * as i7 from '@fortawesome/angular-fontawesome';
27
29
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
28
- import * as i7 from '@theseam/ui-common/shared';
30
+ import * as i2$2 from '@theseam/ui-common/shared';
29
31
  import { TheSeamSharedModule } from '@theseam/ui-common/shared';
30
- import * as i8 from '@theseam/ui-common/table-cell-type';
32
+ import * as i3$1 from '@theseam/ui-common/buttons';
33
+ import { TheSeamButtonsModule } from '@theseam/ui-common/buttons';
34
+ import * as i11 from '@theseam/ui-common/popover';
35
+ import { TheSeamPopoverModule } from '@theseam/ui-common/popover';
36
+ import * as i12 from '@theseam/ui-common/table-cell-type';
31
37
  import { TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type';
32
- import * as i7$1 from '@angular/forms';
33
- import { UntypedFormControl, ReactiveFormsModule } from '@angular/forms';
38
+ import * as i3 from '@theseam/ui-common/form-field';
39
+ import { TheSeamFormFieldModule } from '@theseam/ui-common/form-field';
40
+ import * as i5$1 from '@ng-select/ng-select';
41
+ import { NgSelectModule } from '@ng-select/ng-select';
34
42
  import * as i1$2 from '@theseam/ui-common/scrollbar';
35
43
  import * as i5$2 from '@theseam/ui-common/checkbox';
36
44
  import { TheSeamCheckboxComponent } from '@theseam/ui-common/checkbox';
37
- import * as i6$1 from '@theseam/ui-common/form-field';
38
- import { TheSeamFormFieldModule } from '@theseam/ui-common/form-field';
39
- import * as i4$2 from '@theseam/ui-common/popover';
40
- import { TheSeamPopoverModule } from '@theseam/ui-common/popover';
41
- import * as i3 from '@theseam/ui-common/dynamic';
45
+ import * as i3$2 from '@theseam/ui-common/dynamic';
42
46
  import { THESEAM_DYNAMIC_DATA } from '@theseam/ui-common/dynamic';
43
47
  import * as i1$3 from 'ngx-toastr';
44
48
  import { ToastrModule } from 'ngx-toastr';
45
- import * as i2$1 from '@theseam/ui-common/loading';
49
+ import * as i2$3 from '@theseam/ui-common/loading';
46
50
  import { TheSeamLoadingModule } from '@theseam/ui-common/loading';
47
- import * as i7$2 from '@theseam/ui-common/buttons';
48
- import { TheSeamButtonsModule } from '@theseam/ui-common/buttons';
49
51
  import * as i1$4 from '@theseam/ui-common/modal';
50
- import * as i2$2 from '@theseam/ui-common/dynamic-component-loader';
51
- import * as i3$1 from '@angular/common/http';
52
+ import * as i2$4 from '@theseam/ui-common/dynamic-component-loader';
53
+ import * as i3$3 from '@angular/common/http';
52
54
  import { ESCAPE } from '@angular/cdk/keycodes';
53
55
  import { TemplatePortal, PortalModule } from '@angular/cdk/portal';
54
56
  import * as i1$5 from '@angular/cdk/overlay';
55
57
  import { OverlayModule } from '@angular/cdk/overlay';
56
58
  import { A11yModule } from '@angular/cdk/a11y';
59
+ import { TheSeamToggleGroupModule } from '@theseam/ui-common/toggle-group';
57
60
 
58
61
  class DatatableActionMenuItemComponent {
59
62
  constructor() {
@@ -61,9 +64,9 @@ class DatatableActionMenuItemComponent {
61
64
  this.click = new EventEmitter();
62
65
  }
63
66
  }
64
- DatatableActionMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
65
- DatatableActionMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableActionMenuItemComponent, 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 });
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuItemComponent, decorators: [{
67
+ DatatableActionMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableActionMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
+ DatatableActionMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableActionMenuItemComponent, 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 });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableActionMenuItemComponent, decorators: [{
67
70
  type: Component,
68
71
  args: [{
69
72
  selector: 'seam-datatable-action-menu-item',
@@ -185,14 +188,14 @@ class DatatableActionMenuComponent {
185
188
  }
186
189
  }
187
190
  }
188
- DatatableActionMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuComponent, deps: [{ token: i1.SeamConfirmDialogService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
189
- DatatableActionMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableActionMenuComponent, selector: "seam-datatable-action-menu", inputs: { isSubMenu: "isSubMenu" }, queries: [{ propertyName: "items", predicate: DatatableActionMenuItemComponent }], viewQueries: [{ propertyName: "menu", first: true, predicate: MenuComponent, descendants: true, static: true }], exportAs: ["seamDatatableActionMenu"], ngImport: i0, template: "<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"$any(item.fragment)\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"$any(item.preserveFragment)\"\n [skipLocationChange]=\"$any(item.skipLocationChange)\"\n [replaceUrl]=\"$any(item.replaceUrl)\"\n [state]=\"$any(item.state)\"\n [routerLink]=\"item.routerLink\"\n [target]=\"$any(item.target)\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [seamMenuToggle]=\"item.subMenu.menu\"\n [seamMenuTogglePositionsOffsetY]=\"-3\">\n {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</seam-menu>\n\n<ng-container *ngIf=\"!isSubMenu && items?.length\">\n <button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i4$1.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i4$1.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i4$1.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "component", type: i5.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }] });
191
+ DatatableActionMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableActionMenuComponent, deps: [{ token: i1.SeamConfirmDialogService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
192
+ DatatableActionMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableActionMenuComponent, selector: "seam-datatable-action-menu", inputs: { isSubMenu: "isSubMenu" }, queries: [{ propertyName: "items", predicate: DatatableActionMenuItemComponent }], viewQueries: [{ propertyName: "menu", first: true, predicate: MenuComponent, descendants: true, static: true }], exportAs: ["seamDatatableActionMenu"], ngImport: i0, template: "<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"$any(item.fragment)\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"$any(item.preserveFragment)\"\n [skipLocationChange]=\"$any(item.skipLocationChange)\"\n [replaceUrl]=\"$any(item.replaceUrl)\"\n [state]=\"$any(item.state)\"\n [routerLink]=\"item.routerLink\"\n [target]=\"$any(item.target)\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [seamMenuToggle]=\"item.subMenu.menu\"\n [seamMenuTogglePositionsOffsetY]=\"-3\">\n {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</seam-menu>\n\n<ng-container *ngIf=\"!isSubMenu && items?.length\">\n <button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{position:relative;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", "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"] }] });
190
193
  __decorate([
191
194
  InputBoolean()
192
195
  ], DatatableActionMenuComponent.prototype, "isSubMenu", void 0);
193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuComponent, decorators: [{
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableActionMenuComponent, decorators: [{
194
197
  type: Component,
195
- args: [{ selector: 'seam-datatable-action-menu', exportAs: 'seamDatatableActionMenu', template: "<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"$any(item.fragment)\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"$any(item.preserveFragment)\"\n [skipLocationChange]=\"$any(item.skipLocationChange)\"\n [replaceUrl]=\"$any(item.replaceUrl)\"\n [state]=\"$any(item.state)\"\n [routerLink]=\"item.routerLink\"\n [target]=\"$any(item.target)\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [seamMenuToggle]=\"item.subMenu.menu\"\n [seamMenuTogglePositionsOffsetY]=\"-3\">\n {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</seam-menu>\n\n<ng-container *ngIf=\"!isSubMenu && items?.length\">\n <button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"] }]
198
+ args: [{ selector: 'seam-datatable-action-menu', exportAs: 'seamDatatableActionMenu', template: "<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"$any(item.fragment)\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"$any(item.preserveFragment)\"\n [skipLocationChange]=\"$any(item.skipLocationChange)\"\n [replaceUrl]=\"$any(item.replaceUrl)\"\n [state]=\"$any(item.state)\"\n [routerLink]=\"item.routerLink\"\n [target]=\"$any(item.target)\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [seamMenuToggle]=\"item.subMenu.menu\"\n [seamMenuTogglePositionsOffsetY]=\"-3\">\n {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</seam-menu>\n\n<ng-container *ngIf=\"!isSubMenu && items?.length\">\n <button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{position:relative;display:flex;align-items:center;justify-content:center;height:100%}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"] }]
196
199
  }], ctorParameters: function () { return [{ type: i1.SeamConfirmDialogService }, { type: i2.Router }]; }, propDecorators: { menu: [{
197
200
  type: ViewChild,
198
201
  args: [MenuComponent, { static: true }]
@@ -208,9 +211,9 @@ class DatatableCellTplDirective {
208
211
  this.template = template;
209
212
  }
210
213
  }
211
- DatatableCellTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableCellTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
212
- DatatableCellTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: DatatableCellTplDirective, selector: "[seamDatatableCellTpl]", ngImport: i0 });
213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableCellTplDirective, decorators: [{
214
+ DatatableCellTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableCellTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
215
+ DatatableCellTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DatatableCellTplDirective, selector: "[seamDatatableCellTpl]", ngImport: i0 });
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableCellTplDirective, decorators: [{
214
217
  type: Directive,
215
218
  args: [{
216
219
  selector: '[seamDatatableCellTpl]'
@@ -228,9 +231,9 @@ class DatatableColumnChangesService {
228
231
  this.columnInputChanges.next(undefined);
229
232
  }
230
233
  }
231
- DatatableColumnChangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
232
- DatatableColumnChangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnChangesService });
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnChangesService, decorators: [{
234
+ DatatableColumnChangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
235
+ DatatableColumnChangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnChangesService });
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnChangesService, decorators: [{
234
237
  type: Injectable
235
238
  }] });
236
239
 
@@ -273,9 +276,9 @@ class DatatableColumnComponent {
273
276
  return null;
274
277
  }
275
278
  }
276
- DatatableColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnComponent, deps: [{ token: DatatableColumnChangesService }], target: i0.ɵɵFactoryTarget.Component });
277
- DatatableColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnComponent, 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: [""] });
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnComponent, decorators: [{
279
+ DatatableColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnComponent, deps: [{ token: DatatableColumnChangesService }], target: i0.ɵɵFactoryTarget.Component });
280
+ DatatableColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableColumnComponent, 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: [""] });
281
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnComponent, decorators: [{
279
282
  type: Component,
280
283
  args: [{ selector: 'seam-datatable-column', template: "<p>\n datatable-column works!\n</p>\n" }]
281
284
  }], ctorParameters: function () { return [{ type: DatatableColumnChangesService }]; }, propDecorators: { name: [{
@@ -342,9 +345,9 @@ class DatatableFooterTplDirective {
342
345
  this.template = template;
343
346
  }
344
347
  }
345
- DatatableFooterTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableFooterTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
346
- DatatableFooterTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: DatatableFooterTplDirective, selector: "[seamDatatableFooterTpl]", ngImport: i0 });
347
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableFooterTplDirective, decorators: [{
348
+ DatatableFooterTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableFooterTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
349
+ DatatableFooterTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DatatableFooterTplDirective, selector: "[seamDatatableFooterTpl]", ngImport: i0 });
350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableFooterTplDirective, decorators: [{
348
351
  type: Directive,
349
352
  args: [{
350
353
  selector: '[seamDatatableFooterTpl]'
@@ -356,9 +359,9 @@ class TheSeamDatatableFooterDirective {
356
359
  return this._templateInput || this._templateQuery;
357
360
  }
358
361
  }
359
- TheSeamDatatableFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
360
- TheSeamDatatableFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamDatatableFooterDirective, selector: "seam-datatable-footer", inputs: { _templateInput: ["template", "_templateInput"] }, queries: [{ propertyName: "_templateQuery", first: true, predicate: DatatableFooterTplDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0 });
361
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableFooterDirective, decorators: [{
362
+ TheSeamDatatableFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
363
+ TheSeamDatatableFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TheSeamDatatableFooterDirective, selector: "seam-datatable-footer", inputs: { _templateInput: ["template", "_templateInput"] }, queries: [{ propertyName: "_templateQuery", first: true, predicate: DatatableFooterTplDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0 });
364
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableFooterDirective, decorators: [{
362
365
  type: Directive,
363
366
  args: [{
364
367
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -382,9 +385,9 @@ class DatatableFilterDirective {
382
385
  return this._filter;
383
386
  }
384
387
  }
385
- DatatableFilterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableFilterDirective, deps: [{ token: THESEAM_DATA_FILTER, self: true }], target: i0.ɵɵFactoryTarget.Directive });
386
- DatatableFilterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: DatatableFilterDirective, selector: "[seamDatatableFilter]", ngImport: i0 });
387
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableFilterDirective, decorators: [{
388
+ DatatableFilterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableFilterDirective, deps: [{ token: THESEAM_DATA_FILTER, self: true }], target: i0.ɵɵFactoryTarget.Directive });
389
+ DatatableFilterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DatatableFilterDirective, selector: "[seamDatatableFilter]", ngImport: i0 });
390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableFilterDirective, decorators: [{
388
391
  type: Directive,
389
392
  args: [{
390
393
  selector: '[seamDatatableFilter]'
@@ -432,9 +435,9 @@ class DatatableMenuBarComponent {
432
435
  this.filtersChanged.emit(this.filters());
433
436
  }
434
437
  }
435
- DatatableMenuBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableMenuBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
436
- DatatableMenuBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableMenuBarComponent, 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"] });
437
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableMenuBarComponent, decorators: [{
438
+ DatatableMenuBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableMenuBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
439
+ DatatableMenuBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableMenuBarComponent, 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"] });
440
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableMenuBarComponent, decorators: [{
438
441
  type: Component,
439
442
  args: [{ selector: 'seam-datatable-menu-bar', providers: [_THESEAM_DATA_FILTER_CONTAINER], template: "<div class=\"bg-light border rounded p-2\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:block}\n"] }]
440
443
  }], propDecorators: { filterDirectives: [{
@@ -447,9 +450,9 @@ class DatatableRowDetailTplDirective {
447
450
  this.template = template;
448
451
  }
449
452
  }
450
- DatatableRowDetailTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableRowDetailTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
451
- DatatableRowDetailTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: DatatableRowDetailTplDirective, selector: "[seamDatatableRowDetailTpl]", ngImport: i0 });
452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableRowDetailTplDirective, decorators: [{
453
+ DatatableRowDetailTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableRowDetailTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
454
+ DatatableRowDetailTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DatatableRowDetailTplDirective, selector: "[seamDatatableRowDetailTpl]", ngImport: i0 });
455
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableRowDetailTplDirective, decorators: [{
453
456
  type: Directive,
454
457
  args: [{
455
458
  selector: '[seamDatatableRowDetailTpl]'
@@ -510,9 +513,9 @@ class TheSeamDatatableRowDetailDirective {
510
513
  });
511
514
  }
512
515
  }
513
- TheSeamDatatableRowDetailDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableRowDetailDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
514
- TheSeamDatatableRowDetailDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamDatatableRowDetailDirective, 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 });
515
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableRowDetailDirective, decorators: [{
516
+ TheSeamDatatableRowDetailDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableRowDetailDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
517
+ TheSeamDatatableRowDetailDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TheSeamDatatableRowDetailDirective, 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 });
518
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableRowDetailDirective, decorators: [{
516
519
  type: Directive,
517
520
  args: [{
518
521
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -535,9 +538,9 @@ class DatatableRowActionItemDirective {
535
538
  this.template = template;
536
539
  }
537
540
  }
538
- DatatableRowActionItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableRowActionItemDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
539
- DatatableRowActionItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: DatatableRowActionItemDirective, selector: "[seamDatatableRowActionItem]", ngImport: i0 });
540
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableRowActionItemDirective, decorators: [{
541
+ DatatableRowActionItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableRowActionItemDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
542
+ DatatableRowActionItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DatatableRowActionItemDirective, selector: "[seamDatatableRowActionItem]", ngImport: i0 });
543
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableRowActionItemDirective, decorators: [{
541
544
  type: Directive,
542
545
  args: [{
543
546
  selector: '[seamDatatableRowActionItem]'
@@ -584,7 +587,7 @@ class DatatableDataSource extends DataSource {
584
587
  }
585
588
 
586
589
  const ACTION_MENU_COLUMN_PROP = '$$__actionMenu__';
587
- function createActionMenuColumn(cellTemplate, headerTemplate) {
590
+ function createActionMenuColumn(cellTemplate, headerTemplate, frozenLeft, frozenRight) {
588
591
  return {
589
592
  prop: ACTION_MENU_COLUMN_PROP,
590
593
  name: '',
@@ -595,7 +598,8 @@ function createActionMenuColumn(cellTemplate, headerTemplate) {
595
598
  sortable: false,
596
599
  draggable: false,
597
600
  // TODO: Fix column auto sizing with fixed column and cell overlay before enabling.
598
- // frozenRight: true,
601
+ frozenLeft: frozenLeft,
602
+ frozenRight: frozenRight,
599
603
  cellTemplate,
600
604
  headerTemplate,
601
605
  };
@@ -710,6 +714,13 @@ class ColumnsManagerService {
710
714
  this._updateColumns.next(undefined);
711
715
  }
712
716
  }
717
+ setActionItemColumnPosition(actionItemColumnPosition) {
718
+ const changed = this._actionItemColumnPosition !== actionItemColumnPosition;
719
+ this._actionItemColumnPosition = actionItemColumnPosition;
720
+ if (changed) {
721
+ this._updateColumns.next(undefined);
722
+ }
723
+ }
713
724
  setActionMenuCellTpl(actionMenuCellTpl) {
714
725
  const changed = this._actionMenuCellTpl !== actionMenuCellTpl;
715
726
  this._actionMenuCellTpl = actionMenuCellTpl;
@@ -783,7 +794,13 @@ class ColumnsManagerService {
783
794
  cols.push(_col);
784
795
  }
785
796
  if (this._shouldAddRowActionColumn()) {
786
- cols.push(createActionMenuColumn(this._actionMenuCellTpl, this._blankHeaderTpl));
797
+ const actionMenuColumn = createActionMenuColumn(this._actionMenuCellTpl, this._blankHeaderTpl, this._rowActionColumnIsFrozenLeft(), this._rowActionColumnIsFrozenRight());
798
+ if (this._rowActionColumnIsStaticLeft()) {
799
+ cols.unshift(actionMenuColumn);
800
+ }
801
+ else {
802
+ cols.push(actionMenuColumn);
803
+ }
787
804
  }
788
805
  // Make sure the default for any missing props are set.
789
806
  // TODO: Determine if this should be done earlier, because I don't like
@@ -869,6 +886,18 @@ class ColumnsManagerService {
869
886
  _shouldAddRowActionColumn() {
870
887
  return this._rowActionItem !== undefined;
871
888
  }
889
+ _rowActionColumnIsFrozenLeft() {
890
+ return this._actionItemColumnPosition === 'frozenLeft';
891
+ }
892
+ _rowActionColumnIsFrozenRight() {
893
+ return this._actionItemColumnPosition === 'frozenRight';
894
+ }
895
+ _rowActionColumnIsStaticLeft() {
896
+ return this._actionItemColumnPosition === 'staticLeft';
897
+ }
898
+ _rowActionColumnIsStaticRight() {
899
+ return this._actionItemColumnPosition === 'staticRight';
900
+ }
872
901
  _shouldAddTreeToggleColumn(column) {
873
902
  return column.isTreeColumn !== undefined && column.isTreeColumn &&
874
903
  (!hasProperty(column, 'treeToggleTemplate') || !notNullOrUndefined(column.treeToggleTemplate));
@@ -880,9 +909,9 @@ class ColumnsManagerService {
880
909
  return hasProperty(column, 'cellType');
881
910
  }
882
911
  }
883
- ColumnsManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsManagerService, deps: [{ token: i0.KeyValueDiffers }, { token: DatatableColumnChangesService }], target: i0.ɵɵFactoryTarget.Injectable });
884
- ColumnsManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsManagerService });
885
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsManagerService, decorators: [{
912
+ ColumnsManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsManagerService, deps: [{ token: i0.KeyValueDiffers }, { token: DatatableColumnChangesService }], target: i0.ɵɵFactoryTarget.Injectable });
913
+ ColumnsManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsManagerService });
914
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsManagerService, decorators: [{
886
915
  type: Injectable
887
916
  }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: DatatableColumnChangesService }]; } });
888
917
 
@@ -1161,9 +1190,9 @@ class ColumnsAlterationsManagerService {
1161
1190
  this._changesSubject.next(event);
1162
1191
  }
1163
1192
  }
1164
- ColumnsAlterationsManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsAlterationsManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1165
- ColumnsAlterationsManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsAlterationsManagerService });
1166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsAlterationsManagerService, decorators: [{
1193
+ ColumnsAlterationsManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsAlterationsManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1194
+ ColumnsAlterationsManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsAlterationsManagerService });
1195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsAlterationsManagerService, decorators: [{
1167
1196
  type: Injectable
1168
1197
  }], ctorParameters: function () { return []; } });
1169
1198
 
@@ -1294,6 +1323,549 @@ function mapColumnsAlterationsStates(states) {
1294
1323
  return alterations;
1295
1324
  }
1296
1325
 
1326
+ const ActionItemColumnPosition = ['frozenLeft', 'frozenRight', 'staticLeft', 'staticRight'];
1327
+ function isActionItemColumnPosition(input) {
1328
+ return ActionItemColumnPosition.indexOf(input) != -1;
1329
+ }
1330
+
1331
+ class ColumnsDataFilter {
1332
+ constructor(prop, initialValue, column) {
1333
+ this.prop = prop;
1334
+ this.initialValue = initialValue;
1335
+ this.column = column;
1336
+ }
1337
+ }
1338
+ const THESEAM_COLUMNS_DATA_FILTER = new InjectionToken('ColumnsDataFilter');
1339
+
1340
+ const THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME = 'search-date';
1341
+ const THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_TYPES = [
1342
+ 'lt',
1343
+ 'lte',
1344
+ 'gt',
1345
+ 'gte',
1346
+ 'eq',
1347
+ 'blank',
1348
+ 'not-blank',
1349
+ 'between',
1350
+ 'not-between'
1351
+ ];
1352
+ const THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES = [
1353
+ 'lt',
1354
+ 'lte',
1355
+ 'gt',
1356
+ 'gte',
1357
+ 'eq',
1358
+ ];
1359
+ const THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES = [
1360
+ 'between',
1361
+ 'not-between'
1362
+ ];
1363
+ const THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES = [
1364
+ 'blank',
1365
+ 'not-blank',
1366
+ ];
1367
+ const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME = 'search-numeric';
1368
+ const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_TYPES = [
1369
+ 'gt',
1370
+ 'lt',
1371
+ 'eq',
1372
+ 'gte',
1373
+ 'lte',
1374
+ 'blank',
1375
+ 'not-blank',
1376
+ 'between',
1377
+ 'not-between'
1378
+ ];
1379
+ const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES = [
1380
+ 'gt',
1381
+ 'lt',
1382
+ 'eq',
1383
+ 'gte',
1384
+ 'lte',
1385
+ ];
1386
+ const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES = [
1387
+ 'between',
1388
+ 'not-between'
1389
+ ];
1390
+ const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES = [
1391
+ 'blank',
1392
+ 'not-blank',
1393
+ ];
1394
+ const THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME = 'search-text';
1395
+ const THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_TYPES = [
1396
+ 'contains',
1397
+ 'ncontains',
1398
+ 'eq',
1399
+ 'neq',
1400
+ 'blank',
1401
+ 'not-blank'
1402
+ ];
1403
+ const THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES = [
1404
+ 'contains',
1405
+ 'ncontains',
1406
+ 'eq',
1407
+ 'neq',
1408
+ ];
1409
+ const THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES = [
1410
+ 'blank',
1411
+ 'not-blank'
1412
+ ];
1413
+
1414
+ class SearchDateColumnsDataFilter extends ColumnsDataFilter {
1415
+ constructor(prop, initialValue, column) {
1416
+ var _a;
1417
+ super(prop, initialValue, column);
1418
+ this.name = THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME;
1419
+ this._updateFilterValue = new Subject;
1420
+ this.form = new FormGroup({
1421
+ searchType: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchType : 'eq'),
1422
+ searchText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchText : null),
1423
+ fromText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.fromText : null),
1424
+ toText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.toText : null),
1425
+ });
1426
+ this.uid = `${this.name}--${prop}`;
1427
+ this.filterStateChanges = this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.filterState()));
1428
+ this.options = {
1429
+ dateType: ((_a = this.column.filterOptions) === null || _a === void 0 ? void 0 : _a.dateType) || 'date'
1430
+ };
1431
+ }
1432
+ dataFilter(data, filterValue, options) {
1433
+ if (isNullOrUndefined(filterValue) || this.isDefault()) {
1434
+ return data;
1435
+ }
1436
+ return this._dateSearchDataFilter(this.prop, data, filterValue.searchText, filterValue.fromText, filterValue.toText, filterValue.searchType || null);
1437
+ }
1438
+ _isInvalidDate(dateString) {
1439
+ return isNullOrUndefinedOrEmpty(dateString) || isNaN(new Date(dateString).valueOf());
1440
+ }
1441
+ _isInvalidSearchTerm(searchText, fromText, toText, comparator) {
1442
+ if (THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(comparator) && this._isInvalidDate(searchText)) {
1443
+ return true;
1444
+ }
1445
+ else if (THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(comparator) && (this._isInvalidDate(fromText) || this._isInvalidDate(toText))) {
1446
+ return true;
1447
+ }
1448
+ return false;
1449
+ }
1450
+ _dateSearchDataFilter(prop, data, text, fromText, toText, comparator) {
1451
+ var _a;
1452
+ if (!data || data.length <= 0 || isNullOrUndefined(comparator)) {
1453
+ console.warn('No filter applied - invalid options.');
1454
+ return data;
1455
+ }
1456
+ if (this._isInvalidSearchTerm(text, fromText, toText, comparator)) {
1457
+ console.warn('No filter applied - invalid search terms.');
1458
+ return data;
1459
+ }
1460
+ const useLocalTime = ((_a = this.column.filterOptions) === null || _a === void 0 ? void 0 : _a.useLocalTime) === true;
1461
+ const textDate = getFormattedDateForComparison(text, this.options.dateType, true);
1462
+ const fromTextDate = getFormattedDateForComparison(fromText, this.options.dateType, true);
1463
+ const toTextDate = getFormattedDateForComparison(toText, this.options.dateType, true);
1464
+ return data.filter(item => {
1465
+ let propDate = getFormattedDateForComparison(item[prop], this.options.dateType, useLocalTime);
1466
+ if ((comparator === 'blank' && (isNullOrUndefined(item[prop]) || isNullOrUndefinedOrEmpty(`${item[prop]}`))) ||
1467
+ (comparator === 'not-blank' && notNullOrUndefined(item[prop]) && notNullOrUndefinedOrEmpty(`${item[prop]}`)) ||
1468
+ (comparator === 'lt' && propDate.valueOf() < textDate.valueOf()) ||
1469
+ (comparator === 'lte' && propDate.valueOf() <= textDate.valueOf()) ||
1470
+ (comparator === 'gt' && propDate.valueOf() > textDate.valueOf()) ||
1471
+ (comparator === 'gte' && propDate.valueOf() >= textDate.valueOf()) ||
1472
+ (comparator === 'eq' && propDate.valueOf() === textDate.valueOf()) ||
1473
+ (comparator === 'between' && propDate.valueOf() >= fromTextDate.valueOf() && propDate.valueOf() <= toTextDate.valueOf()) ||
1474
+ (comparator === 'not-between' && !(propDate.valueOf() >= fromTextDate.valueOf() && propDate.valueOf() <= toTextDate.valueOf()))) {
1475
+ return true;
1476
+ }
1477
+ return false;
1478
+ });
1479
+ }
1480
+ filter(data) {
1481
+ return this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.dataFilter(data, this.form.value, undefined)));
1482
+ }
1483
+ filterState() {
1484
+ return {
1485
+ name: this.name,
1486
+ state: {
1487
+ prop: this.prop,
1488
+ formValue: this.form.value,
1489
+ options: this.options
1490
+ }
1491
+ };
1492
+ }
1493
+ applyFilter() {
1494
+ this._updateFilterValue.next();
1495
+ }
1496
+ clearFilter() {
1497
+ this.form.setValue({
1498
+ searchType: 'eq',
1499
+ searchText: null,
1500
+ fromText: null,
1501
+ toText: null
1502
+ });
1503
+ this._updateFilterValue.next();
1504
+ }
1505
+ isDefault() {
1506
+ const formValue = this.form.value;
1507
+ if (isNullOrUndefinedOrEmpty(formValue.searchType)) {
1508
+ return true;
1509
+ }
1510
+ if (THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
1511
+ return false;
1512
+ }
1513
+ else if (THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefinedOrEmpty(formValue.searchText)) {
1514
+ return false;
1515
+ }
1516
+ else if (THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefinedOrEmpty(formValue.fromText) && notNullOrUndefinedOrEmpty(formValue.toText)) {
1517
+ return false;
1518
+ }
1519
+ return true;
1520
+ }
1521
+ }
1522
+
1523
+ class SearchNumericColumnsDataFilter extends ColumnsDataFilter {
1524
+ constructor(prop, initialValue, column) {
1525
+ super(prop, initialValue, column);
1526
+ this.name = THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME;
1527
+ this._updateFilterValue = new Subject;
1528
+ this.form = new FormGroup({
1529
+ searchType: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchType : 'eq'),
1530
+ searchText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchText : null),
1531
+ fromText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.fromText : null),
1532
+ toText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.toText : null),
1533
+ });
1534
+ this.uid = `${this.name}--${prop}`;
1535
+ this.filterStateChanges = this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.filterState()));
1536
+ }
1537
+ dataFilter(data, filterValue, options) {
1538
+ if (isNullOrUndefined(filterValue) || this.isDefault()) {
1539
+ return data;
1540
+ }
1541
+ return this.numberSearchDataFilter(this.prop, data, filterValue.searchText, filterValue.fromText, filterValue.toText, filterValue.searchType || null);
1542
+ }
1543
+ _isInvalidSearchTerm(searchText, fromText, toText, comparator) {
1544
+ if (isNaN(searchText) && THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(comparator)) {
1545
+ return true;
1546
+ }
1547
+ else if ((isNaN(fromText) || isNaN(toText)) && THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(comparator)) {
1548
+ return true;
1549
+ }
1550
+ return false;
1551
+ }
1552
+ numberSearchDataFilter(prop, data, text, fromText, toText, comparator) {
1553
+ if (!data || data.length <= 0 || isNullOrUndefined(comparator)) {
1554
+ console.warn('No filter applied - invalid options.');
1555
+ return data;
1556
+ }
1557
+ const textNumeric = notNullOrUndefinedOrEmpty(text) ? parseFloat(text) : NaN;
1558
+ const toTextNumeric = notNullOrUndefinedOrEmpty(toText) ? parseFloat(toText) : NaN;
1559
+ const fromTextNumeric = notNullOrUndefinedOrEmpty(fromText) ? parseFloat(fromText) : NaN;
1560
+ if (this._isInvalidSearchTerm(textNumeric, fromTextNumeric, toTextNumeric, comparator)) {
1561
+ console.warn('No filter applied - invalid search terms.');
1562
+ return data;
1563
+ }
1564
+ return data.filter(item => {
1565
+ let propNumeric = parseFloat(item[prop]);
1566
+ if ((comparator === 'blank' && (isNullOrUndefined(item[prop]) || isNullOrUndefinedOrEmpty(`${item[prop]}`))) ||
1567
+ (comparator === 'not-blank' && notNullOrUndefined(item[prop]) && notNullOrUndefinedOrEmpty(`${item[prop]}`)) ||
1568
+ (comparator === 'lt' && propNumeric < textNumeric) ||
1569
+ (comparator === 'lte' && propNumeric <= textNumeric) ||
1570
+ (comparator === 'gt' && propNumeric > textNumeric) ||
1571
+ (comparator === 'gte' && propNumeric >= textNumeric) ||
1572
+ (comparator === 'eq' && propNumeric === textNumeric) ||
1573
+ (comparator === 'between' && propNumeric >= fromTextNumeric && propNumeric <= toTextNumeric) ||
1574
+ (comparator === 'not-between' && !(propNumeric >= fromTextNumeric && propNumeric <= toTextNumeric))) {
1575
+ return true;
1576
+ }
1577
+ return false;
1578
+ });
1579
+ }
1580
+ filter(data) {
1581
+ return this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.dataFilter(data, this.form.value, undefined)));
1582
+ }
1583
+ filterState() {
1584
+ return {
1585
+ name: this.name,
1586
+ state: {
1587
+ prop: this.prop,
1588
+ formValue: this.form.value
1589
+ }
1590
+ };
1591
+ }
1592
+ applyFilter() {
1593
+ this._updateFilterValue.next();
1594
+ }
1595
+ clearFilter() {
1596
+ this.form.setValue({
1597
+ searchType: 'eq',
1598
+ searchText: null,
1599
+ fromText: null,
1600
+ toText: null
1601
+ });
1602
+ this._updateFilterValue.next();
1603
+ }
1604
+ isDefault() {
1605
+ const formValue = this.form.value;
1606
+ if (isNullOrUndefinedOrEmpty(formValue.searchType)) {
1607
+ return true;
1608
+ }
1609
+ else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
1610
+ return false;
1611
+ }
1612
+ else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefinedOrEmpty(formValue.searchText)) {
1613
+ return false;
1614
+ }
1615
+ else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefinedOrEmpty(formValue.fromText) && notNullOrUndefinedOrEmpty(formValue.toText)) {
1616
+ return false;
1617
+ }
1618
+ return true;
1619
+ }
1620
+ }
1621
+
1622
+ class SearchTextColumnsDataFilter extends ColumnsDataFilter {
1623
+ constructor(prop, initialValue, column) {
1624
+ super(prop, initialValue, column);
1625
+ this.name = THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME;
1626
+ this._updateFilterValue = new Subject;
1627
+ this.form = new FormGroup({
1628
+ searchType: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchType : 'contains'),
1629
+ searchText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchText : null),
1630
+ // caseSensitive: new FormControl<boolean | null>(notNullOrUndefined(initialValue) ? initialValue.caseSensitive : null),
1631
+ });
1632
+ this.uid = `${this.name}--${prop}`;
1633
+ this.filterStateChanges = this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.filterState()));
1634
+ }
1635
+ dataFilter(data, filterValue, options) {
1636
+ if (isNullOrUndefined(filterValue) || this.isDefault()) {
1637
+ return data;
1638
+ }
1639
+ return this._textSearchDataFilter(this.prop, data, filterValue.searchText, filterValue.searchType || null);
1640
+ }
1641
+ _textSearchDataFilter(prop, data, text, comparator) {
1642
+ if (!data || data.length < 0 || isNullOrUndefined(comparator)) {
1643
+ return data;
1644
+ }
1645
+ return data.filter(item => {
1646
+ let value1 = `${notNullOrUndefined(item[prop]) ? item[prop] : ''}`;
1647
+ let value2 = text || '';
1648
+ // if (!options.caseSensitive) {
1649
+ // value1 = value1.toLowerCase()
1650
+ // value2 = value2.toLowerCase()
1651
+ // }
1652
+ value1 = value1.toLowerCase();
1653
+ value2 = value2.toLowerCase();
1654
+ if ((comparator === 'eq' && value1 === value2) ||
1655
+ (comparator === 'neq' && value1 !== value2) ||
1656
+ (comparator === 'contains' && value1.indexOf(value2) !== -1) ||
1657
+ (comparator === 'ncontains' && value1.indexOf(value2) === -1) ||
1658
+ (comparator === 'blank' && isNullOrUndefinedOrEmpty(value1)) ||
1659
+ (comparator === 'not-blank' && notNullOrUndefinedOrEmpty(value1))) {
1660
+ return true;
1661
+ }
1662
+ return false;
1663
+ });
1664
+ }
1665
+ filter(data) {
1666
+ return this._updateFilterValue.pipe(startWith$1(undefined), map$1(() => this.dataFilter(data, this.form.value, undefined)));
1667
+ }
1668
+ filterState() {
1669
+ return {
1670
+ name: this.name,
1671
+ state: {
1672
+ prop: this.prop,
1673
+ formValue: this.form.value,
1674
+ }
1675
+ };
1676
+ }
1677
+ applyFilter() {
1678
+ this._updateFilterValue.next();
1679
+ }
1680
+ clearFilter() {
1681
+ this.form.setValue({
1682
+ searchType: 'contains',
1683
+ searchText: null,
1684
+ // caseSensitive: null
1685
+ });
1686
+ this._updateFilterValue.next();
1687
+ }
1688
+ isDefault() {
1689
+ const formValue = this.form.value;
1690
+ if (isNullOrUndefinedOrEmpty(formValue.searchType)) {
1691
+ return true;
1692
+ }
1693
+ else if (THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefinedOrEmpty(formValue.searchText)) {
1694
+ return false;
1695
+ }
1696
+ else if (THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
1697
+ return false;
1698
+ }
1699
+ return true;
1700
+ }
1701
+ }
1702
+
1703
+ const THESEAM_COLUMNS_DATA_FILTERS_DEFAULT = [
1704
+ { name: THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME, class: SearchTextColumnsDataFilter },
1705
+ { name: THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME, class: SearchNumericColumnsDataFilter },
1706
+ { name: THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME, class: SearchDateColumnsDataFilter },
1707
+ ];
1708
+ const getFormattedDateForComparison = (date, dateType, setToLocalTime = false) => {
1709
+ const dateObj = new Date(notNullOrUndefined(date) ? date : '');
1710
+ if (dateType === 'datetime-local') {
1711
+ // reset seconds and ms, since they can't be specified from the search input
1712
+ dateObj.setSeconds(0);
1713
+ dateObj.setMilliseconds(0);
1714
+ }
1715
+ else if (dateType === 'date') {
1716
+ if (setToLocalTime) {
1717
+ // set date from input type="date" to current timezone, to match expected behavior
1718
+ dateObj.setMinutes(dateObj.getMinutes() + dateObj.getTimezoneOffset());
1719
+ }
1720
+ // reset hours/minutes/seconds/ms, since they can't be specified from the search input
1721
+ dateObj.setHours(0, 0, 0, 0);
1722
+ }
1723
+ return dateObj;
1724
+ };
1725
+
1726
+ class ColumnsFiltersService {
1727
+ constructor(_customColumnsDataFilters) {
1728
+ this._customColumnsDataFilters = _customColumnsDataFilters;
1729
+ this._columnFilterTemplates = new BehaviorSubject([]);
1730
+ this.columnFilterTemplates$ = this._columnFilterTemplates.asObservable();
1731
+ this._columnsFilters = new BehaviorSubject([]);
1732
+ this.columnsFilters$ = this._columnsFilters.asObservable();
1733
+ this.columnActiveFilterProps$ = this.columnsFilters$.pipe(switchMap$1(filters => {
1734
+ if (!filters.length) {
1735
+ return of([]);
1736
+ }
1737
+ return combineLatest(filters.map(f => f.filterStateChanges.pipe(map$1(filterState => !f.isDefault() ? filterState.state.prop : null))));
1738
+ }), map$1(props => props.filter(notNullOrUndefined)));
1739
+ }
1740
+ registerColumnFilters(columns) {
1741
+ this._columnsFilters.next([]);
1742
+ const filters = columns
1743
+ .filter(col => col.filterable)
1744
+ .map(col => this.createColumnDataFilter(col, null));
1745
+ this._columnsFilters.next(filters.filter(notNullOrUndefined));
1746
+ }
1747
+ setFilterTemplates(tpls) {
1748
+ this._columnFilterTemplates.next(tpls);
1749
+ }
1750
+ createColumnDataFilter(column, initialValue) {
1751
+ const prop = this.getColumnFilterProp(column);
1752
+ if (isNullOrUndefined(prop)) {
1753
+ return null;
1754
+ }
1755
+ return this._getColumnsDataFilter(prop, column, initialValue);
1756
+ }
1757
+ _getColumnsDataFilter(prop, column, initialValue) {
1758
+ const filterClass = this._getColumnsDataFilterType(column);
1759
+ let filter;
1760
+ if (notNullOrUndefined(this._customColumnsDataFilters)) {
1761
+ filter = this._customColumnsDataFilters.find(x => x.name === filterClass);
1762
+ }
1763
+ if (isNullOrUndefined(filter)) {
1764
+ filter = THESEAM_COLUMNS_DATA_FILTERS_DEFAULT.find(x => x.name === filterClass);
1765
+ }
1766
+ if (notNullOrUndefined(filter)) {
1767
+ return new filter.class(prop, initialValue, column);
1768
+ }
1769
+ return null;
1770
+ }
1771
+ _getColumnsDataFilterType(column) {
1772
+ if (notNullOrUndefined(column.filterOptions) && notNullOrUndefined(column.filterOptions.filterType)) {
1773
+ return column.filterOptions.filterType;
1774
+ }
1775
+ else if (notNullOrUndefined(column.cellType)) {
1776
+ switch (column.cellType) {
1777
+ case 'string':
1778
+ case 'phone':
1779
+ return THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME;
1780
+ case 'currency':
1781
+ case 'decimal':
1782
+ case 'integer':
1783
+ return THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME;
1784
+ case 'date':
1785
+ return THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME;
1786
+ }
1787
+ }
1788
+ return THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME;
1789
+ }
1790
+ getColumnFilterProp(column) {
1791
+ var _a;
1792
+ if (isNullOrUndefined(column)) {
1793
+ return null;
1794
+ }
1795
+ const prop = ((_a = column.filterOptions) === null || _a === void 0 ? void 0 : _a.filterProp) || column.prop || (notNullOrUndefined(column.name) ? camelCase(column.name) : undefined);
1796
+ if (isNullOrUndefined(prop)) {
1797
+ return null;
1798
+ }
1799
+ return `${prop}`;
1800
+ }
1801
+ getColumnFilter(prop) {
1802
+ if (isNullOrUndefined(prop)) {
1803
+ return undefined;
1804
+ }
1805
+ return this._columnsFilters.value.find(f => f.prop === prop);
1806
+ }
1807
+ filters() {
1808
+ return this._columnsFilters.value;
1809
+ }
1810
+ addFilter(filter) {
1811
+ this._columnsFilters.next([...this._columnsFilters.value, filter]);
1812
+ }
1813
+ removeFilter(filter) {
1814
+ this._columnsFilters.next([...this._columnsFilters.value.filter(c => c.name !== filter.name)]);
1815
+ }
1816
+ }
1817
+ ColumnsFiltersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsFiltersService, deps: [{ token: THESEAM_COLUMNS_DATA_FILTER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
1818
+ ColumnsFiltersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsFiltersService });
1819
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnsFiltersService, decorators: [{
1820
+ type: Injectable
1821
+ }], ctorParameters: function () {
1822
+ return [{ type: undefined, decorators: [{
1823
+ type: Optional
1824
+ }, {
1825
+ type: Inject,
1826
+ args: [THESEAM_COLUMNS_DATA_FILTER]
1827
+ }] }];
1828
+ } });
1829
+
1830
+ const THESEAM_DATATABLE_CONFIG = new InjectionToken('TheSeamDatatableConfig');
1831
+
1832
+ class DatatableColumnFilterTplDirective {
1833
+ constructor(template) {
1834
+ this.template = template;
1835
+ }
1836
+ }
1837
+ DatatableColumnFilterTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnFilterTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1838
+ DatatableColumnFilterTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DatatableColumnFilterTplDirective, selector: "[seamDatatableColumnFilterTpl]", ngImport: i0 });
1839
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnFilterTplDirective, decorators: [{
1840
+ type: Directive,
1841
+ args: [{
1842
+ selector: '[seamDatatableColumnFilterTpl]'
1843
+ }]
1844
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
1845
+
1846
+ class TheSeamDatatableColumnFilterDirective {
1847
+ get template() {
1848
+ return this._templateInput || this._templateQuery;
1849
+ }
1850
+ }
1851
+ TheSeamDatatableColumnFilterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableColumnFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1852
+ TheSeamDatatableColumnFilterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TheSeamDatatableColumnFilterDirective, selector: "seam-datatable-column-filter", inputs: { filterName: "filterName", _templateInput: ["template", "_templateInput"] }, queries: [{ propertyName: "_templateQuery", first: true, predicate: DatatableColumnFilterTplDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0 });
1853
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableColumnFilterDirective, decorators: [{
1854
+ type: Directive,
1855
+ args: [{
1856
+ // eslint-disable-next-line @angular-eslint/directive-selector
1857
+ selector: 'seam-datatable-column-filter'
1858
+ }]
1859
+ }], propDecorators: { filterName: [{
1860
+ type: Input
1861
+ }], _templateInput: [{
1862
+ type: Input,
1863
+ args: ['template']
1864
+ }], _templateQuery: [{
1865
+ type: ContentChild,
1866
+ args: [DatatableColumnFilterTplDirective, { read: TemplateRef, static: true }]
1867
+ }] } });
1868
+
1297
1869
  const CURRENT_DATATABLE_PREFERENCES_VERSION = 2;
1298
1870
  const EMPTY_DATATABLE_PREFERENCES = {
1299
1871
  version: 2,
@@ -1372,9 +1944,9 @@ class DatatablePreferencesService {
1372
1944
  return prefs.version === CURRENT_DATATABLE_PREFERENCES_VERSION;
1373
1945
  }
1374
1946
  }
1375
- DatatablePreferencesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatablePreferencesService, deps: [{ token: i1$1.TheSeamPreferencesManagerService }, { token: THESEAM_DATATABLE_PREFERENCES_ACCESSOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
1376
- DatatablePreferencesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatablePreferencesService, providedIn: 'root' });
1377
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatablePreferencesService, decorators: [{
1947
+ DatatablePreferencesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatablePreferencesService, deps: [{ token: i1$1.TheSeamPreferencesManagerService }, { token: THESEAM_DATATABLE_PREFERENCES_ACCESSOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
1948
+ DatatablePreferencesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatablePreferencesService, providedIn: 'root' });
1949
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatablePreferencesService, decorators: [{
1378
1950
  type: Injectable,
1379
1951
  args: [{
1380
1952
  providedIn: 'root'
@@ -1388,6 +1960,168 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1388
1960
  }] }];
1389
1961
  } });
1390
1962
 
1963
+ class DatatableColumnFilterSearchTextComponent {
1964
+ constructor() {
1965
+ this.searchTypes = [
1966
+ { label: 'Contains', value: 'contains' },
1967
+ { label: 'Does not contain', value: 'ncontains' },
1968
+ { label: 'Matches exactly', value: 'eq' },
1969
+ { label: 'Does not match exactly', value: 'neq' },
1970
+ { label: 'Is blank', value: 'blank' },
1971
+ { label: 'Is not blank', value: 'not-blank' },
1972
+ ];
1973
+ }
1974
+ ngOnInit() {
1975
+ var _a, _b;
1976
+ this.showTextbox$ = (_a = this.filterForm) === null || _a === void 0 ? void 0 : _a.controls.searchType.valueChanges.pipe(startWith$1((_b = this.filterForm) === null || _b === void 0 ? void 0 : _b.controls.searchType.value), map$1(value => THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES.includes(value || '')));
1977
+ }
1978
+ }
1979
+ DatatableColumnFilterSearchTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnFilterSearchTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1980
+ DatatableColumnFilterSearchTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableColumnFilterSearchTextComponent, selector: "seam-datatable-column-filter-search-text", inputs: { filterForm: "filterForm" }, ngImport: i0, template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n seamAutoFocus\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"></ng-select>\n </seam-form-field>\n <ng-container *ngIf=\"showTextbox$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\n </seam-form-field>\n <!-- TODO: implement this? Does not work with current Seam GraphQL/SQL Server implementation. -->\n <!-- <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <seam-checkbox seamInput formControlName=\"caseSensitive\">Case Sensitive</seam-checkbox>\n </seam-form-field> -->\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.AutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i2$2.NgSelectExtraDirective, selector: "ng-select" }, { kind: "component", type: i3.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i3.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5$1.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], viewProviders: [
1981
+ {
1982
+ provide: ControlContainer,
1983
+ useExisting: FormGroupDirective
1984
+ }
1985
+ ] });
1986
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnFilterSearchTextComponent, decorators: [{
1987
+ type: Component,
1988
+ args: [{ selector: 'seam-datatable-column-filter-search-text', viewProviders: [
1989
+ {
1990
+ provide: ControlContainer,
1991
+ useExisting: FormGroupDirective
1992
+ }
1993
+ ], 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" }]
1994
+ }], propDecorators: { filterForm: [{
1995
+ type: Input
1996
+ }] } });
1997
+
1998
+ class DatatableColumnFilterSearchNumericComponent {
1999
+ constructor() {
2000
+ this.searchTypes = [
2001
+ { label: 'Less than (<)', value: 'lt' },
2002
+ { label: 'Less than or equal to (<=)', value: 'lte' },
2003
+ { label: 'Equal to (=)', value: 'eq' },
2004
+ { label: 'Greater than (>)', value: 'gt' },
2005
+ { label: 'Greater than or equal to (>=)', value: 'gte' },
2006
+ { label: 'Between', value: 'between' },
2007
+ { label: 'Not between', value: 'not-between' },
2008
+ { label: 'Blank', value: 'blank' },
2009
+ { label: 'Not blank', value: 'not-blank' },
2010
+ ];
2011
+ }
2012
+ ngOnInit() {
2013
+ var _a, _b, _c, _d;
2014
+ this.showSearchInput$ = (_a = this.filterForm) === null || _a === void 0 ? void 0 : _a.controls.searchType.valueChanges.pipe(startWith$1((_b = this.filterForm) === null || _b === void 0 ? void 0 : _b.controls.searchType.value), map$1(searchType => THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(searchType || '')));
2015
+ this.showRangeInputs$ = (_c = this.filterForm) === null || _c === void 0 ? void 0 : _c.controls.searchType.valueChanges.pipe(startWith$1((_d = this.filterForm) === null || _d === void 0 ? void 0 : _d.controls.searchType.value), map$1(searchType => THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(searchType || '')));
2016
+ }
2017
+ }
2018
+ DatatableColumnFilterSearchNumericComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnFilterSearchNumericComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2019
+ DatatableColumnFilterSearchNumericComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableColumnFilterSearchNumericComponent, selector: "seam-datatable-column-filter-search-numeric", inputs: { filterForm: "filterForm" }, ngImport: i0, template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\n </seam-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"showRangeInputs$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"fromText\" placeholder=\"Range Start\" seamAutoFocus>\n </seam-form-field>\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"toText\" placeholder=\"Range End\">\n </seam-form-field>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.AutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i2$2.NgSelectExtraDirective, selector: "ng-select" }, { kind: "component", type: i3.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i3.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5$1.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], viewProviders: [
2020
+ {
2021
+ provide: ControlContainer,
2022
+ useExisting: FormGroupDirective
2023
+ }
2024
+ ] });
2025
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnFilterSearchNumericComponent, decorators: [{
2026
+ type: Component,
2027
+ args: [{ selector: 'seam-datatable-column-filter-search-numeric', viewProviders: [
2028
+ {
2029
+ provide: ControlContainer,
2030
+ useExisting: FormGroupDirective
2031
+ }
2032
+ ], 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" }]
2033
+ }], propDecorators: { filterForm: [{
2034
+ type: Input
2035
+ }] } });
2036
+
2037
+ class DatatableColumnFilterSearchDateComponent {
2038
+ constructor() {
2039
+ this.searchTypes = [
2040
+ { label: 'Before', value: 'lt' },
2041
+ { label: 'Before or on', value: 'lte' },
2042
+ { label: 'On', value: 'eq' },
2043
+ { label: 'After', value: 'gt' },
2044
+ { label: 'After or on', value: 'gte' },
2045
+ { label: 'Between', value: 'between' },
2046
+ { label: 'Not between', value: 'not-between' },
2047
+ { label: 'Blank', value: 'blank' },
2048
+ { label: 'Not blank', value: 'not-blank' },
2049
+ ];
2050
+ }
2051
+ ngOnInit() {
2052
+ var _a, _b, _c, _d, _e, _f;
2053
+ if (notNullOrUndefined((_a = this.options) === null || _a === void 0 ? void 0 : _a.dateType)) {
2054
+ this.dateFormat = (_b = this.options) === null || _b === void 0 ? void 0 : _b.dateType;
2055
+ }
2056
+ this.showSearchInput$ = (_c = this.filterForm) === null || _c === void 0 ? void 0 : _c.controls.searchType.valueChanges.pipe(startWith$1((_d = this.filterForm) === null || _d === void 0 ? void 0 : _d.controls.searchType.value), map$1(searchType => THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(searchType || '')));
2057
+ this.showRangeInputs$ = (_e = this.filterForm) === null || _e === void 0 ? void 0 : _e.controls.searchType.valueChanges.pipe(startWith$1((_f = this.filterForm) === null || _f === void 0 ? void 0 : _f.controls.searchType.value), map$1(searchType => THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(searchType || '')));
2058
+ }
2059
+ }
2060
+ DatatableColumnFilterSearchDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnFilterSearchDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2061
+ DatatableColumnFilterSearchDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableColumnFilterSearchDateComponent, selector: "seam-datatable-column-filter-search-date", inputs: { options: "options", filterForm: "filterForm" }, ngImport: i0, template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput [type]=\"dateFormat\" formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\n </seam-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"showRangeInputs$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput [type]=\"dateFormat\" formControlName=\"fromText\" placeholder=\"Range Start\" seamAutoFocus>\n </seam-form-field>\n\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput [type]=\"dateFormat\" formControlName=\"toText\" placeholder=\"Range End\">\n </seam-form-field>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.AutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i2$2.NgSelectExtraDirective, selector: "ng-select" }, { kind: "component", type: i3.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i3.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5$1.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], viewProviders: [
2062
+ {
2063
+ provide: ControlContainer,
2064
+ useExisting: FormGroupDirective
2065
+ }
2066
+ ] });
2067
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnFilterSearchDateComponent, decorators: [{
2068
+ type: Component,
2069
+ args: [{ selector: 'seam-datatable-column-filter-search-date', viewProviders: [
2070
+ {
2071
+ provide: ControlContainer,
2072
+ useExisting: FormGroupDirective
2073
+ }
2074
+ ], 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" }]
2075
+ }], propDecorators: { options: [{
2076
+ type: Input
2077
+ }], filterForm: [{
2078
+ type: Input
2079
+ }] } });
2080
+
2081
+ class DatatableColumnFilterMenuComponent {
2082
+ constructor(_columnsFilters) {
2083
+ this._columnsFilters = _columnsFilters;
2084
+ this.closePopover = new EventEmitter();
2085
+ }
2086
+ ngOnInit() {
2087
+ this.columnFilterProp = this._columnsFilters.getColumnFilterProp(this.column);
2088
+ this.columnFilter = this._columnsFilters.getColumnFilter(this.columnFilterProp);
2089
+ if (notNullOrUndefined(this.columnFilter)) {
2090
+ this._filterForm = this.columnFilter.form;
2091
+ }
2092
+ this.customFilterTemplate$ = this._columnsFilters.columnFilterTemplates$.pipe(map$1(templates => templates.find(t => { var _a; return t.filterName === ((_a = this.columnFilter) === null || _a === void 0 ? void 0 : _a.name); })));
2093
+ if (this.updateMethod === 'valueChanges' && notNullOrUndefined(this._filterForm)) {
2094
+ this._filterForm.valueChanges.pipe(debounceTime(this.debounce || 0), tap$1(() => { var _a; return (_a = this.columnFilter) === null || _a === void 0 ? void 0 : _a.applyFilter(); })).subscribe();
2095
+ }
2096
+ }
2097
+ submit() {
2098
+ var _a;
2099
+ (_a = this.columnFilter) === null || _a === void 0 ? void 0 : _a.applyFilter();
2100
+ this.closePopover.emit();
2101
+ }
2102
+ clearFilter() {
2103
+ var _a;
2104
+ (_a = this.columnFilter) === null || _a === void 0 ? void 0 : _a.clearFilter();
2105
+ }
2106
+ }
2107
+ DatatableColumnFilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnFilterMenuComponent, deps: [{ token: ColumnsFiltersService }], target: i0.ɵɵFactoryTarget.Component });
2108
+ DatatableColumnFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableColumnFilterMenuComponent, selector: "seam-datatable-column-filter-menu", inputs: { column: "column", updateMethod: "updateMethod", debounce: "debounce" }, outputs: { closePopover: "closePopover" }, ngImport: i0, template: "<ng-container *ngIf=\"_filterForm && columnFilter\">\n <form [formGroup]=\"_filterForm\" (ngSubmit)=\"submit()\">\n <ng-container [ngSwitch]=\"columnFilter.name\">\n <div *ngSwitchCase=\"'search-text'\">\n <seam-datatable-column-filter-search-text [filterForm]=\"_filterForm\"></seam-datatable-column-filter-search-text>\n </div>\n <div *ngSwitchCase=\"'search-numeric'\">\n <seam-datatable-column-filter-search-numeric [filterForm]=\"_filterForm\"></seam-datatable-column-filter-search-numeric>\n </div>\n <div *ngSwitchCase=\"'search-date'\">\n <seam-datatable-column-filter-search-date [filterForm]=\"_filterForm\" [options]=\"columnFilter.options\"></seam-datatable-column-filter-search-date>\n </div>\n <div *ngSwitchDefault>\n <ng-container *ngIf=\"customFilterTemplate$ | async as filterTpl\">\n <ng-container *ngIf=\"filterTpl.template\">\n <ng-container\n [ngTemplateOutlet]=\"filterTpl.template\"\n [ngTemplateOutletContext]=\"{ $implicit: _filterForm, filterForm: _filterForm, options: columnFilter.options, column: column, columnFilter: columnFilter }\">\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n\n <hr class=\"mb-1\">\n <div class=\"d-flex align-items-center\" [class.justify-content-between]=\"updateMethod === 'submit'\" [class.text-right]=\"updateMethod === 'valueChanges'\">\n <button seamButton size=\"sm\" class=\"text-primary p-0\" (click)=\"clearFilter()\" [disabled]=\"columnFilter?.isDefault() === true\">Clear</button>\n <button\n *ngIf=\"updateMethod === 'submit'\"\n seamButton\n size=\"sm\"\n class=\"text-primary p-0\"\n type=\"submit\"\n [disabled]=\"columnFilter?.isDefault() === true\">\n Apply\n </button>\n </div>\n </form>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3$1.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }, { kind: "directive", type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: DatatableColumnFilterSearchTextComponent, selector: "seam-datatable-column-filter-search-text", inputs: ["filterForm"] }, { kind: "component", type: DatatableColumnFilterSearchNumericComponent, selector: "seam-datatable-column-filter-search-numeric", inputs: ["filterForm"] }, { kind: "component", type: DatatableColumnFilterSearchDateComponent, selector: "seam-datatable-column-filter-search-date", inputs: ["options", "filterForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }] });
2109
+ __decorate([
2110
+ InputNumber()
2111
+ ], DatatableColumnFilterMenuComponent.prototype, "debounce", void 0);
2112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnFilterMenuComponent, decorators: [{
2113
+ type: Component,
2114
+ args: [{ selector: 'seam-datatable-column-filter-menu', template: "<ng-container *ngIf=\"_filterForm && columnFilter\">\n <form [formGroup]=\"_filterForm\" (ngSubmit)=\"submit()\">\n <ng-container [ngSwitch]=\"columnFilter.name\">\n <div *ngSwitchCase=\"'search-text'\">\n <seam-datatable-column-filter-search-text [filterForm]=\"_filterForm\"></seam-datatable-column-filter-search-text>\n </div>\n <div *ngSwitchCase=\"'search-numeric'\">\n <seam-datatable-column-filter-search-numeric [filterForm]=\"_filterForm\"></seam-datatable-column-filter-search-numeric>\n </div>\n <div *ngSwitchCase=\"'search-date'\">\n <seam-datatable-column-filter-search-date [filterForm]=\"_filterForm\" [options]=\"columnFilter.options\"></seam-datatable-column-filter-search-date>\n </div>\n <div *ngSwitchDefault>\n <ng-container *ngIf=\"customFilterTemplate$ | async as filterTpl\">\n <ng-container *ngIf=\"filterTpl.template\">\n <ng-container\n [ngTemplateOutlet]=\"filterTpl.template\"\n [ngTemplateOutletContext]=\"{ $implicit: _filterForm, filterForm: _filterForm, options: columnFilter.options, column: column, columnFilter: columnFilter }\">\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n\n <hr class=\"mb-1\">\n <div class=\"d-flex align-items-center\" [class.justify-content-between]=\"updateMethod === 'submit'\" [class.text-right]=\"updateMethod === 'valueChanges'\">\n <button seamButton size=\"sm\" class=\"text-primary p-0\" (click)=\"clearFilter()\" [disabled]=\"columnFilter?.isDefault() === true\">Clear</button>\n <button\n *ngIf=\"updateMethod === 'submit'\"\n seamButton\n size=\"sm\"\n class=\"text-primary p-0\"\n type=\"submit\"\n [disabled]=\"columnFilter?.isDefault() === true\">\n Apply\n </button>\n </div>\n </form>\n</ng-container>\n" }]
2115
+ }], ctorParameters: function () { return [{ type: ColumnsFiltersService }]; }, propDecorators: { column: [{
2116
+ type: Input
2117
+ }], updateMethod: [{
2118
+ type: Input
2119
+ }], debounce: [{
2120
+ type: Input
2121
+ }], closePopover: [{
2122
+ type: Output
2123
+ }] } });
2124
+
1391
2125
  /**
1392
2126
  * Intended for internal classes declared by the `TheSeamDatatableModule`.
1393
2127
  */
@@ -1403,11 +2137,17 @@ const _THESEAM_DATATABLE_ACCESSOR = {
1403
2137
  useExisting: forwardRef(() => DatatableComponent)
1404
2138
  };
1405
2139
  class DatatableComponent {
1406
- get filters() { return this._filtersSubject.value; }
2140
+ get filters() {
2141
+ return [
2142
+ ...this._menuBarsFiltersSubject.value,
2143
+ ...this._columnsFilters.filters()
2144
+ ];
2145
+ }
1407
2146
  get preferencesKey() { return this._preferencesKey.value; }
1408
2147
  set preferencesKey(value) { this._preferencesKey.next(value || undefined); }
1409
2148
  set columns(value) {
1410
2149
  this._columnsManager.setInputColumns(Array.isArray(value) ? value : []);
2150
+ this._columnsFilters.registerColumnFilters(Array.isArray(value) ? value : []);
1411
2151
  }
1412
2152
  get rows() { return this._rows.value; }
1413
2153
  set rows(value) {
@@ -1432,12 +2172,151 @@ class DatatableComponent {
1432
2172
  set sorts(value) {
1433
2173
  this._sorts = notNullOrUndefined(value) ? coerceArray(value) : [];
1434
2174
  }
2175
+ get cssClasses() {
2176
+ return this._cssClasses;
2177
+ }
2178
+ set cssClasses(value) {
2179
+ var _a, _b;
2180
+ if (notNullOrUndefined(value)) {
2181
+ this._cssClasses = value;
2182
+ }
2183
+ else if (notNullOrUndefined((_a = this._config) === null || _a === void 0 ? void 0 : _a.cssClasses)) {
2184
+ this._cssClasses = (_b = this._config) === null || _b === void 0 ? void 0 : _b.cssClasses;
2185
+ }
2186
+ else {
2187
+ this._cssClasses = this._cssClassesDefault;
2188
+ }
2189
+ }
2190
+ get messages() {
2191
+ return this._messages;
2192
+ }
2193
+ set messages(value) {
2194
+ var _a, _b;
2195
+ if (notNullOrUndefined(value)) {
2196
+ this._messages = value;
2197
+ }
2198
+ else if (notNullOrUndefined((_a = this._config) === null || _a === void 0 ? void 0 : _a.messages)) {
2199
+ this._messages = Object.assign(Object.assign({}, this._messagesDefault), (_b = this._config) === null || _b === void 0 ? void 0 : _b.messages);
2200
+ }
2201
+ else {
2202
+ this._messages = this._messagesDefault;
2203
+ }
2204
+ }
2205
+ get headerHeight() {
2206
+ return this._headerHeight;
2207
+ }
2208
+ set headerHeight(value) {
2209
+ var _a, _b;
2210
+ if (notNullOrUndefined(value)) {
2211
+ this._headerHeight = value;
2212
+ }
2213
+ else if (notNullOrUndefined((_a = this._config) === null || _a === void 0 ? void 0 : _a.headerHeight)) {
2214
+ this._headerHeight = (_b = this._config) === null || _b === void 0 ? void 0 : _b.headerHeight;
2215
+ }
2216
+ else {
2217
+ this._headerHeight = this._headerHeightDefault;
2218
+ }
2219
+ }
2220
+ get rowHeight() {
2221
+ return this._rowHeight;
2222
+ }
2223
+ set rowHeight(value) {
2224
+ var _a, _b;
2225
+ if (notNullOrUndefined(value)) {
2226
+ this._rowHeight = value;
2227
+ }
2228
+ else if (notNullOrUndefined((_a = this._config) === null || _a === void 0 ? void 0 : _a.rowHeight)) {
2229
+ this._rowHeight = (_b = this._config) === null || _b === void 0 ? void 0 : _b.rowHeight;
2230
+ }
2231
+ else {
2232
+ this._rowHeight = this._rowHeightDefault;
2233
+ }
2234
+ }
2235
+ get footerHeight() {
2236
+ return this._footerHeight;
2237
+ }
2238
+ set footerHeight(value) {
2239
+ var _a, _b;
2240
+ if (notNullOrUndefined(value)) {
2241
+ this._footerHeight = value;
2242
+ }
2243
+ else if (notNullOrUndefined((_a = this._config) === null || _a === void 0 ? void 0 : _a.footerHeight)) {
2244
+ this._footerHeight = (_b = this._config) === null || _b === void 0 ? void 0 : _b.footerHeight;
2245
+ }
2246
+ else {
2247
+ this._footerHeight = this._footerHeightDefault;
2248
+ }
2249
+ }
1435
2250
  set dataSource(value) {
1436
2251
  if (value instanceof DatatableDataSource) {
1437
2252
  value.setDatatableAccessor(this);
1438
2253
  }
1439
2254
  this._dataSourceSubject.next(value || undefined);
1440
2255
  }
2256
+ /**
2257
+ * Sets position behavior for optional Action Menu Button column.
2258
+ *
2259
+ * Defaults to `frozenRight`.
2260
+ */
2261
+ get actionItemColumnPosition() { return this._actionItemColumnPosition; }
2262
+ set actionItemColumnPosition(value) {
2263
+ var _a, _b, _c;
2264
+ if (notNullOrUndefined(value) && isActionItemColumnPosition(value)) {
2265
+ this._actionItemColumnPosition = value;
2266
+ }
2267
+ else if (notNullOrUndefined((_a = this._config) === null || _a === void 0 ? void 0 : _a.actionItemColumnPosition) && isActionItemColumnPosition((_b = this._config) === null || _b === void 0 ? void 0 : _b.actionItemColumnPosition)) {
2268
+ this._actionItemColumnPosition = (_c = this._config) === null || _c === void 0 ? void 0 : _c.actionItemColumnPosition;
2269
+ }
2270
+ else {
2271
+ this._actionItemColumnPosition = this._actionItemColumnPositionDefault;
2272
+ }
2273
+ this._columnsManager.setActionItemColumnPosition(this._actionItemColumnPosition);
2274
+ }
2275
+ get columnFilterIcon() {
2276
+ return this._columnFilterIcon;
2277
+ }
2278
+ set columnFilterIcon(value) {
2279
+ var _a, _b;
2280
+ if (notNullOrUndefined(value)) {
2281
+ this._columnFilterIcon = value;
2282
+ }
2283
+ else if (notNullOrUndefined((_a = this._config) === null || _a === void 0 ? void 0 : _a.columnFilterIcon)) {
2284
+ this._columnFilterIcon = (_b = this._config) === null || _b === void 0 ? void 0 : _b.columnFilterIcon;
2285
+ }
2286
+ else {
2287
+ this._columnFilterIcon = this._columnFilterIconDefault;
2288
+ }
2289
+ }
2290
+ get columnFilterUpdateMethod() {
2291
+ return this._columnFilterUpdateMethod;
2292
+ }
2293
+ set columnFilterUpdateMethod(value) {
2294
+ var _a, _b;
2295
+ if (notNullOrUndefined(value)) {
2296
+ this._columnFilterUpdateMethod = value;
2297
+ }
2298
+ else if (notNullOrUndefined((_a = this._config) === null || _a === void 0 ? void 0 : _a.columnFilterUpdateMethod)) {
2299
+ this._columnFilterUpdateMethod = (_b = this._config) === null || _b === void 0 ? void 0 : _b.columnFilterUpdateMethod;
2300
+ }
2301
+ else {
2302
+ this._columnFilterUpdateMethod = this._columnFilterUpdateMethodDefault;
2303
+ }
2304
+ }
2305
+ get columnFilterUpdateDebounce() {
2306
+ return this._columnFilterUpdateDebounce;
2307
+ }
2308
+ set columnFilterUpdateDebounce(value) {
2309
+ var _a, _b;
2310
+ if (notNullOrUndefined(value)) {
2311
+ this._columnFilterUpdateDebounce = value;
2312
+ }
2313
+ else if (notNullOrUndefined((_a = this._config) === null || _a === void 0 ? void 0 : _a.columnFilterUpdateDebounce)) {
2314
+ this._columnFilterUpdateDebounce = (_b = this._config) === null || _b === void 0 ? void 0 : _b.columnFilterUpdateDebounce;
2315
+ }
2316
+ else {
2317
+ this._columnFilterUpdateDebounce = this._columnFilterUpdateDebounceDefault;
2318
+ }
2319
+ }
1441
2320
  set columnComponents(value) {
1442
2321
  var _a;
1443
2322
  this._columnsManager.setTemplateColumns(translateTemplateColumns((_a = value === null || value === void 0 ? void 0 : value.toArray()) !== null && _a !== void 0 ? _a : []));
@@ -1459,6 +2338,10 @@ class DatatableComponent {
1459
2338
  this._menuBarSub = (_a = this._menuBarComponent) === null || _a === void 0 ? void 0 : _a.filtersChanged.subscribe(v => { this._setMenuBarFilters(value.filters()); });
1460
2339
  }
1461
2340
  }
2341
+ set columnFilterTemplates(value) {
2342
+ var _a;
2343
+ this._columnsFilters.setFilterTemplates((_a = value === null || value === void 0 ? void 0 : value.toArray()) !== null && _a !== void 0 ? _a : []);
2344
+ }
1462
2345
  get actionMenuCellTpl() { return this._actionMenuCellTpl; }
1463
2346
  set actionMenuCellTpl(value) {
1464
2347
  this._actionMenuCellTpl = value;
@@ -1507,15 +2390,17 @@ class DatatableComponent {
1507
2390
  }
1508
2391
  }
1509
2392
  }
1510
- constructor(_preferences, _columnsManager, _columnsAlterationsManager) {
2393
+ constructor(_preferences, _columnsManager, _columnsAlterationsManager, _columnsFilters, _config) {
1511
2394
  this._preferences = _preferences;
1512
2395
  this._columnsManager = _columnsManager;
1513
2396
  this._columnsAlterationsManager = _columnsAlterationsManager;
2397
+ this._columnsFilters = _columnsFilters;
2398
+ this._config = _config;
1514
2399
  this._faChevronDown = faChevronDown;
1515
2400
  this._faChevronRight = faChevronRight;
1516
2401
  this._faSpinner = faSpinner;
1517
2402
  this._ngUnsubscribe = new Subject();
1518
- this._filtersSubject = new BehaviorSubject([]);
2403
+ this._menuBarsFiltersSubject = new BehaviorSubject([]);
1519
2404
  this._dataSourceSubject = new BehaviorSubject(undefined);
1520
2405
  this._resizing = {};
1521
2406
  this._preferencesKey = new BehaviorSubject(undefined);
@@ -1532,7 +2417,7 @@ class DatatableComponent {
1532
2417
  this.swapColumns = false;
1533
2418
  this._sortType = SortType.single;
1534
2419
  this._sorts = [];
1535
- this.cssClasses = {
2420
+ this._cssClassesDefault = {
1536
2421
  sortAscending: 'datatable-icon-up',
1537
2422
  sortDescending: 'datatable-icon-down',
1538
2423
  pagerLeftArrow: 'datatable-icon-left',
@@ -1540,7 +2425,7 @@ class DatatableComponent {
1540
2425
  pagerPrevious: 'datatable-icon-prev',
1541
2426
  pagerNext: 'datatable-icon-skip'
1542
2427
  };
1543
- this.messages = {
2428
+ this._messagesDefault = {
1544
2429
  // Message to show when array is presented
1545
2430
  // but contains no values
1546
2431
  emptyMessage: 'No records found',
@@ -1556,11 +2441,15 @@ class DatatableComponent {
1556
2441
  this.summaryHeight = 30;
1557
2442
  this.summaryPosition = 'top';
1558
2443
  this.virtualization = true;
1559
- this.headerHeight = 50;
1560
- this.rowHeight = 50;
1561
- this.footerHeight = 40;
2444
+ this._headerHeightDefault = 50;
2445
+ this._rowHeightDefault = 50;
2446
+ this._footerHeightDefault = 40;
1562
2447
  this.scrollbarV = true;
1563
2448
  this.scrollbarH = true;
2449
+ this._actionItemColumnPositionDefault = 'frozenRight';
2450
+ this._columnFilterIconDefault = faFilter;
2451
+ this._columnFilterUpdateMethodDefault = 'valueChanges';
2452
+ this._columnFilterUpdateDebounceDefault = 400;
1564
2453
  // eslint-disable-next-line @angular-eslint/no-output-native
1565
2454
  this.scroll = new EventEmitter();
1566
2455
  this.activate = new EventEmitter();
@@ -1613,10 +2502,10 @@ class DatatableComponent {
1613
2502
  this._columnsAlterationsManager.add(alterations);
1614
2503
  }));
1615
2504
  }), takeUntil(this._ngUnsubscribe)).subscribe();
1616
- this.columns$ = this._columnsManager.columns$;
2505
+ this.columns$ = combineLatest([this._columnsManager.columns$, this._columnsFilters.columnActiveFilterProps$]).pipe(map(([columns, columnActiveFilterProps]) => columns.map(col => (Object.assign(Object.assign({}, col), { filterActive: columnActiveFilterProps.includes(this._columnsFilters.getColumnFilterProp(col) || '') })))));
1617
2506
  this.displayColumns$ = this.columns$.pipe(switchMap(cols => applyPrefs(cols)), map(cols => cols.filter(c => !c.hidden)), tap(v => removeUnusedDiffs(v, this._colDiffersInp, this._colDiffersTpl)));
1618
- this.filters$ = this._filtersSubject.asObservable();
1619
- this.filterStates = this._filtersSubject.asObservable().pipe(switchMap(filters => composeDataFilterStates(filters)));
2507
+ this.filters$ = combineLatest([this._menuBarsFiltersSubject.asObservable(), this._columnsFilters.columnsFilters$]).pipe(map(([menuFilters, columnsFilters]) => [...menuFilters, ...columnsFilters]));
2508
+ this.filterStates = this.filters$.pipe(switchMap(filters => composeDataFilterStates(filters)));
1620
2509
  this.rows$ = this._dataSourceSubject.pipe(switchMap(dataSource => {
1621
2510
  // console.log('dataSource', dataSource)
1622
2511
  let dataStream;
@@ -1639,7 +2528,7 @@ class DatatableComponent {
1639
2528
  }
1640
2529
  if (!this.externalFiltering) {
1641
2530
  // console.log('not using externalFiltering')
1642
- dataStream = dataStream.pipe(switchMap(rows => this._filtersSubject.pipe(
2531
+ dataStream = dataStream.pipe(switchMap(rows => this.filters$.pipe(
1643
2532
  // tap(v => console.log('filters', v)),
1644
2533
  concatMap(filters => of(rows).pipe(composeDataFilters(filters))))));
1645
2534
  // dataStream = this._filtersSubject.pipe(
@@ -1663,12 +2552,43 @@ class DatatableComponent {
1663
2552
  }
1664
2553
  });
1665
2554
  }
2555
+ this._setDatatableConfigOrDefault();
2556
+ }
2557
+ /** Sets missing inputs from config */
2558
+ _setDatatableConfigOrDefault() {
2559
+ if (isNullOrUndefined(this.messages)) {
2560
+ this.messages = undefined;
2561
+ }
2562
+ if (isNullOrUndefined(this.headerHeight)) {
2563
+ this.headerHeight = undefined;
2564
+ }
2565
+ if (isNullOrUndefined(this.rowHeight)) {
2566
+ this.rowHeight = undefined;
2567
+ }
2568
+ if (isNullOrUndefined(this.footerHeight)) {
2569
+ this.footerHeight = undefined;
2570
+ }
2571
+ if (isNullOrUndefined(this.cssClasses)) {
2572
+ this.cssClasses = undefined;
2573
+ }
2574
+ if (isNullOrUndefined(this.columnFilterIcon)) {
2575
+ this.columnFilterIcon = undefined;
2576
+ }
2577
+ if (isNullOrUndefined(this.columnFilterUpdateMethod)) {
2578
+ this.columnFilterUpdateMethod = undefined;
2579
+ }
2580
+ if (isNullOrUndefined(this.columnFilterUpdateDebounce)) {
2581
+ this.columnFilterUpdateDebounce = undefined;
2582
+ }
2583
+ if (isNullOrUndefined(this.actionItemColumnPosition)) {
2584
+ this.actionItemColumnPosition = undefined;
2585
+ }
1666
2586
  }
1667
2587
  ngOnDestroy() {
1668
2588
  this._rowDetailToggleSubscription.unsubscribe();
1669
2589
  }
1670
2590
  _setMenuBarFilters(filters) {
1671
- this._filtersSubject.next(filters || []);
2591
+ this._menuBarsFiltersSubject.next(filters || []);
1672
2592
  }
1673
2593
  getColumnComponent(propName) {
1674
2594
  if (!this.columnComponents || this.columnComponents.length === 0) {
@@ -1773,14 +2693,15 @@ class DatatableComponent {
1773
2693
  };
1774
2694
  }
1775
2695
  }
1776
- DatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableComponent, deps: [{ token: DatatablePreferencesService }, { token: ColumnsManagerService }, { token: ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
1777
- DatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableComponent, selector: "seam-datatable", inputs: { preferencesKey: "preferencesKey", targetMarkerTemplate: "targetMarkerTemplate", columns: "columns", rows: "rows", columnMode: "columnMode", groupRowsBy: "groupRowsBy", groupedRows: "groupedRows", selected: "selected", externalPaging: "externalPaging", externalSorting: "externalSorting", externalFiltering: "externalFiltering", limit: "limit", count: "count", offset: "offset", loadingIndicator: "loadingIndicator", selectionType: "selectionType", reorderable: "reorderable", swapColumns: "swapColumns", sortType: "sortType", sorts: "sorts", cssClasses: "cssClasses", messages: "messages", rowIdentity: "rowIdentity", rowClass: "rowClass", selectCheck: "selectCheck", displayCheck: "displayCheck", groupExpansionDefault: "groupExpansionDefault", trackByProp: "trackByProp", selectAllRowsOnPage: "selectAllRowsOnPage", treeFromRelation: "treeFromRelation", treeToRelation: "treeToRelation", summaryRow: "summaryRow", summaryHeight: "summaryHeight", summaryPosition: "summaryPosition", virtualization: "virtualization", headerHeight: "headerHeight", rowHeight: "rowHeight", footerHeight: "footerHeight", scrollbarV: "scrollbarV", scrollbarH: "scrollbarH", dataSource: "dataSource" }, outputs: { scroll: "scroll", activate: "activate", select: "select", sort: "sort", page: "page", reorder: "reorder", resize: "resize", tableContextmenu: "tableContextmenu", treeAction: "treeAction", actionRefreshRequest: "actionRefreshRequest", hiddenColumnsChange: "hiddenColumnsChange" }, host: { listeners: { "dblclick": "_dblClick($event)" } }, providers: [
2696
+ DatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableComponent, deps: [{ token: DatatablePreferencesService }, { token: ColumnsManagerService }, { token: ColumnsAlterationsManagerService }, { token: ColumnsFiltersService }, { token: THESEAM_DATATABLE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
2697
+ DatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableComponent, selector: "seam-datatable", inputs: { preferencesKey: "preferencesKey", targetMarkerTemplate: "targetMarkerTemplate", columns: "columns", rows: "rows", columnMode: "columnMode", groupRowsBy: "groupRowsBy", groupedRows: "groupedRows", selected: "selected", externalPaging: "externalPaging", externalSorting: "externalSorting", externalFiltering: "externalFiltering", limit: "limit", count: "count", offset: "offset", loadingIndicator: "loadingIndicator", selectionType: "selectionType", reorderable: "reorderable", swapColumns: "swapColumns", sortType: "sortType", sorts: "sorts", cssClasses: "cssClasses", messages: "messages", rowIdentity: "rowIdentity", rowClass: "rowClass", selectCheck: "selectCheck", displayCheck: "displayCheck", groupExpansionDefault: "groupExpansionDefault", trackByProp: "trackByProp", selectAllRowsOnPage: "selectAllRowsOnPage", treeFromRelation: "treeFromRelation", treeToRelation: "treeToRelation", summaryRow: "summaryRow", summaryHeight: "summaryHeight", summaryPosition: "summaryPosition", virtualization: "virtualization", headerHeight: "headerHeight", rowHeight: "rowHeight", footerHeight: "footerHeight", scrollbarV: "scrollbarV", scrollbarH: "scrollbarH", dataSource: "dataSource", 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: [
1778
2698
  _THESEAM_DATATABLE,
1779
2699
  DatatableColumnChangesService,
1780
2700
  _THESEAM_DATATABLE_ACCESSOR,
1781
2701
  ColumnsManagerService,
1782
2702
  ColumnsAlterationsManagerService,
1783
- ], queries: [{ propertyName: "actionMenu", first: true, predicate: DatatableActionMenuComponent, descendants: true, static: true }, { propertyName: "rowActionItem", first: true, predicate: DatatableRowActionItemDirective, descendants: true }, { propertyName: "rowDetail", first: true, predicate: TheSeamDatatableRowDetailDirective, descendants: true, static: true }, { propertyName: "footer", first: true, predicate: TheSeamDatatableFooterDirective, descendants: true, static: true }, { propertyName: "menuBarComponent", first: true, predicate: DatatableMenuBarComponent, descendants: true }, { propertyName: "columnComponents", predicate: DatatableColumnComponent }], viewQueries: [{ propertyName: "ngxDatatable", first: true, predicate: DatatableComponent$1, descendants: true }, { propertyName: "ngxDatatableElement", first: true, predicate: DatatableComponent$1, descendants: true, read: ElementRef }, { propertyName: "ngxRowDetail", first: true, predicate: DatatableRowDetailDirective, descendants: true }, { propertyName: "actionMenuCellTpl", first: true, predicate: ["actionMenuCellTpl"], descendants: true, static: true }, { propertyName: "treeToggleTpl", first: true, predicate: ["treeToggleTpl"], descendants: true, static: true }, { propertyName: "headerTpl", first: true, predicate: ["headerTpl"], descendants: true, static: true }, { propertyName: "blankHeaderTpl", first: true, predicate: ["blankHeaderTpl"], descendants: true, static: true }, { propertyName: "cellTypeSelectorTpl", first: true, predicate: ["cellTypeSelectorTpl"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n [columnMode]=\"$any(columnMode)\"\n [scrollbarV]=\"scrollbarV\"\n [scrollbarH]=\"scrollbarH\"\n [virtualization]=\"virtualization\"\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n [groupRowsBy]=\"$any(groupRowsBy)\"\n [groupedRows]=\"$any(groupedRows)\"\n [selected]=\"$any(selected)\"\n [externalPaging]=\"externalPaging\"\n [externalSorting]=\"externalSorting\"\n [limit]=\"$any(limit)\"\n [count]=\"$any(count)\"\n [offset]=\"$any(offset)\"\n [loadingIndicator]=\"loadingIndicator\"\n [selectionType]=\"$any(selectionType)\"\n [reorderable]=\"reorderable\"\n [swapColumns]=\"swapColumns\"\n [sortType]=\"$any(sortType)\"\n [sorts]=\"$any(_sorts)\"\n [cssClasses]=\"cssClasses\"\n [messages]=\"messages\"\n [rowIdentity]=\"$any(rowIdentity)\"\n [rowClass]=\"rowClass\"\n [selectCheck]=\"selectCheck\"\n [displayCheck]=\"$any(displayCheck)\"\n [groupExpansionDefault]=\"groupExpansionDefault\"\n [trackByProp]=\"$any(trackByProp)\"\n [selectAllRowsOnPage]=\"selectAllRowsOnPage\"\n [treeFromRelation]=\"$any(treeFromRelation)\"\n [treeToRelation]=\"$any(treeToRelation)\"\n [summaryRow]=\"summaryRow\"\n [summaryHeight]=\"$any(summaryHeight)\"\n [summaryPosition]=\"$any(summaryPosition)\"\n [rows]=\"rows$ | async\"\n [columns]=\"$any(displayColumns$ | async)\"\n [headerHeight]=\"$any(headerHeight)\"\n [rowHeight]=\"$any(rowHeight)\"\n [footerHeight]=\"$any(footerHeight)\"\n (scroll)=\"scroll.emit($event)\"\n (activate)=\"activate.emit($event)\"\n (select)=\"select.emit($event)\"\n (sort)=\"_onSort($event)\"\n (page)=\"page.emit($event)\"\n (reorder)=\"_onReorder($event)\"\n (resize)=\"_onResize($event)\"\n (tableContextmenu)=\"tableContextmenu.emit($event)\"\n (treeAction)=\"treeAction.emit($event)\"\n (seamElemResized)=\"onDatatableResize($event)\"\n (treeAction)=\"_onTreeAction($event)\">\n\n <ngx-datatable-group-header [rowHeight]=\"50\" #myGroupHeader *ngIf=\"groupRowsBy\">\n <ng-template let-group=\"group\" let-expanded=\"expanded\" ngx-datatable-group-header-template>\n <div\n class=\"w-100 bg-light p-1\"\n [class.border-bottom]=\"!expanded\"\n [class.datatable-icon-right]=\"!expanded\"\n [class.datatable-icon-down]=\"expanded\"\n title=\"Expand/Collapse Group\"\n (click)=\"ngxDatatable?.groupHeader?.toggleExpandGroup(group)\">\n <b>Age: {{ group.age }}</b>\n </div>\n </ng-template>\n </ngx-datatable-group-header>\n\n <ngx-datatable-row-detail *ngIf=\"rowDetail && rowDetail.template\"\n [rowHeight]=\"rowDetail.rowHeight || 0\"\n [template]=\"$any(rowDetail.template)\"\n (toggle)=\"rowDetail.toggle.emit($event)\">\n </ngx-datatable-row-detail>\n\n <ngx-datatable-footer *ngIf=\"footer && footer.template\"\n [template]=\"$any(footer.template)\">\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n\n<ng-template #blankHeaderTpl ngx-datatable-header-template></ng-template>\n\n<ng-template #headerTpl ngx-datatable-header-template\n let-column=\"column\" let-sortFn=\"sortFn\">\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{column.name}}</strong>\n <strong *ngIf=\"column.sortable\" class=\"datatable-sort-target draggable\" (click)=\"sortFn()\">{{column.name}}</strong>\n <div class=\"datatable-column-header-separator\" [attr.data-column-id]=\"column.$$id\"></div>\n</ng-template>\n\n<ng-template #cellTypeSelectorTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\" let-column=\"column\">\n <seam-table-cell-type-selector *ngIf=\"row\"\n [type]=\"column.cellType\"\n [value]=\"value\"\n [rowIndex]=\"rowIndex\"\n [row]=\"row\"\n [colData]=\"column\">\n </seam-table-cell-type-selector>\n</ng-template>\n\n<ng-template #actionMenuCellTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\">\n\n <ng-container *ngIf=\"row && rowActionItem?.template\">\n <ng-template\n [ngTemplateOutlet]=\"$any(rowActionItem?.template)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, row: row, rowIndex: rowIndex }\">\n </ng-template>\n </ng-container>\n\n</ng-template>\n\n<ng-template #treeToggleTpl ngx-datatable-tree-toggle let-tree=\"cellContext\">\n <button\n class=\"p-0 bg-transparent border-0 btn\"\n [disabled]=\"tree.treeStatus==='disabled'\"\n (click)=\"tree.onTreeAction()\">\n <span *ngIf=\"tree.treeStatus==='loading'\">\n <fa-icon [icon]=\"_faSpinner\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='collapsed'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='expanded'\">\n <fa-icon [icon]=\"_faChevronDown\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='disabled'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n </button>\n</ng-template>\n", styles: [":host{display:flex;flex-grow:1;flex-direction:column}::ng-deep .seam-datatable-action-menu{min-width:auto!important}ngx-datatable{position:absolute!important;inset:0}.datatable-wrapper{display:flex;flex-direction:column;flex-grow:1}.datatable-wrapper .datatable-table-wrapper{position:relative;flex:1 1 100%}.datatable-column-header-separator{position:absolute}.datatable-sort-target{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5$1.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "displayPageCount", "displayPager", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i5$1.DatatableRowDetailDirective, selector: "ngx-datatable-row-detail", inputs: ["rowHeight", "template"], outputs: ["toggle"] }, { kind: "directive", type: i5$1.DatatableGroupHeaderDirective, selector: "ngx-datatable-group-header", inputs: ["rowHeight", "template"], outputs: ["toggle"] }, { kind: "directive", type: i5$1.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i5$1.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i5$1.DataTableColumnCellTreeToggle, selector: "[ngx-datatable-tree-toggle]" }, { kind: "directive", type: i5$1.DatatableFooterDirective, selector: "ngx-datatable-footer", inputs: ["footerHeight", "totalMessage", "selectedMessage", "pagerLeftArrowIcon", "pagerRightArrowIcon", "pagerPreviousIcon", "pagerNextIcon", "template"] }, { kind: "directive", type: i5$1.DatatableGroupHeaderTemplateDirective, selector: "[ngx-datatable-group-header-template]" }, { kind: "component", type: i6.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "directive", type: i7.ElemResizedDirective, selector: "[seamElemResized]", outputs: ["seamElemResized"] }, { kind: "component", type: i8.TableCellTypeSelectorComponent, selector: "seam-table-cell-type-selector", inputs: ["type", "value", "rowIndex", "row", "colData"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], animations: [
2703
+ ColumnsFiltersService
2704
+ ], queries: [{ propertyName: "actionMenu", first: true, predicate: DatatableActionMenuComponent, descendants: true, static: true }, { propertyName: "rowActionItem", first: true, predicate: DatatableRowActionItemDirective, descendants: true }, { propertyName: "rowDetail", first: true, predicate: TheSeamDatatableRowDetailDirective, descendants: true, static: true }, { propertyName: "footer", first: true, predicate: TheSeamDatatableFooterDirective, descendants: true, static: true }, { propertyName: "menuBarComponent", first: true, predicate: DatatableMenuBarComponent, descendants: true }, { propertyName: "columnComponents", predicate: DatatableColumnComponent }, { propertyName: "columnFilterTemplates", predicate: TheSeamDatatableColumnFilterDirective }], viewQueries: [{ propertyName: "ngxDatatable", first: true, predicate: DatatableComponent$1, descendants: true }, { propertyName: "ngxDatatableElement", first: true, predicate: DatatableComponent$1, descendants: true, read: ElementRef }, { propertyName: "ngxRowDetail", first: true, predicate: DatatableRowDetailDirective, descendants: true }, { propertyName: "actionMenuCellTpl", first: true, predicate: ["actionMenuCellTpl"], descendants: true, static: true }, { propertyName: "treeToggleTpl", first: true, predicate: ["treeToggleTpl"], descendants: true, static: true }, { propertyName: "headerTpl", first: true, predicate: ["headerTpl"], descendants: true, static: true }, { propertyName: "blankHeaderTpl", first: true, predicate: ["blankHeaderTpl"], descendants: true, static: true }, { propertyName: "cellTypeSelectorTpl", first: true, predicate: ["cellTypeSelectorTpl"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n [columnMode]=\"$any(columnMode)\"\n [scrollbarV]=\"scrollbarV\"\n [scrollbarH]=\"scrollbarH\"\n [virtualization]=\"virtualization\"\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n [groupRowsBy]=\"$any(groupRowsBy)\"\n [groupedRows]=\"$any(groupedRows)\"\n [selected]=\"$any(selected)\"\n [externalPaging]=\"externalPaging\"\n [externalSorting]=\"externalSorting\"\n [limit]=\"$any(limit)\"\n [count]=\"$any(count)\"\n [offset]=\"$any(offset)\"\n [loadingIndicator]=\"loadingIndicator\"\n [selectionType]=\"$any(selectionType)\"\n [reorderable]=\"reorderable\"\n [swapColumns]=\"swapColumns\"\n [sortType]=\"$any(sortType)\"\n [sorts]=\"$any(_sorts)\"\n [cssClasses]=\"cssClasses\"\n [messages]=\"messages\"\n [rowIdentity]=\"$any(rowIdentity)\"\n [rowClass]=\"rowClass\"\n [selectCheck]=\"selectCheck\"\n [displayCheck]=\"$any(displayCheck)\"\n [groupExpansionDefault]=\"groupExpansionDefault\"\n [trackByProp]=\"$any(trackByProp)\"\n [selectAllRowsOnPage]=\"selectAllRowsOnPage\"\n [treeFromRelation]=\"$any(treeFromRelation)\"\n [treeToRelation]=\"$any(treeToRelation)\"\n [summaryRow]=\"summaryRow\"\n [summaryHeight]=\"$any(summaryHeight)\"\n [summaryPosition]=\"$any(summaryPosition)\"\n [rows]=\"rows$ | async\"\n [columns]=\"$any(displayColumns$ | async)\"\n [headerHeight]=\"$any(headerHeight)\"\n [rowHeight]=\"$any(rowHeight)\"\n [footerHeight]=\"$any(footerHeight)\"\n (scroll)=\"scroll.emit($event)\"\n (activate)=\"activate.emit($event)\"\n (select)=\"select.emit($event)\"\n (sort)=\"_onSort($event)\"\n (page)=\"page.emit($event)\"\n (reorder)=\"_onReorder($event)\"\n (resize)=\"_onResize($event)\"\n (tableContextmenu)=\"tableContextmenu.emit($event)\"\n (treeAction)=\"treeAction.emit($event)\"\n (seamElemResized)=\"onDatatableResize($event)\"\n (treeAction)=\"_onTreeAction($event)\">\n\n <ngx-datatable-group-header [rowHeight]=\"50\" #myGroupHeader *ngIf=\"groupRowsBy\">\n <ng-template let-group=\"group\" let-expanded=\"expanded\" ngx-datatable-group-header-template>\n <div\n class=\"w-100 bg-light p-1\"\n [class.border-bottom]=\"!expanded\"\n [class.datatable-icon-right]=\"!expanded\"\n [class.datatable-icon-down]=\"expanded\"\n title=\"Expand/Collapse Group\"\n (click)=\"ngxDatatable?.groupHeader?.toggleExpandGroup(group)\">\n <b>Age: {{ group.age }}</b>\n </div>\n </ng-template>\n </ngx-datatable-group-header>\n\n <ngx-datatable-row-detail *ngIf=\"rowDetail && rowDetail.template\"\n [rowHeight]=\"rowDetail.rowHeight || 0\"\n [template]=\"$any(rowDetail.template)\"\n (toggle)=\"rowDetail.toggle.emit($event)\">\n </ngx-datatable-row-detail>\n\n <ngx-datatable-footer *ngIf=\"footer && footer.template\"\n [template]=\"$any(footer.template)\">\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n\n<ng-template #blankHeaderTpl ngx-datatable-header-template></ng-template>\n\n<ng-template\n #headerTpl\n ngx-datatable-header-template\n let-column=\"column\"\n let-sortFn=\"sortFn\"\n>\n <div class=\"d-inline-flex align-items-center\">\n <ng-container *ngIf=\"column.filterable\">\n <button\n seamIconBtn\n [icon]=\"columnFilterIcon\"\n size=\"sm\"\n [seamPopover]=\"filterMenu\"\n [seamPopoverBaseWidth]=\"300\"\n class=\"datatable-column-header-filter-button d-flex align-items-center mr-2\"\n [class.datatable-column-header-filter-button-active]=\"column.filterActive\"\n style=\"width: 1rem;\"\n title=\"Click to see filter options\"></button>\n </ng-container>\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{column.name}}</strong>\n <button\n seamButton\n *ngIf=\"column.sortable\"\n class=\"datatable-sort-target 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]=\"column.cellType\"\n [value]=\"value\"\n [rowIndex]=\"rowIndex\"\n [row]=\"row\"\n [colData]=\"column\">\n </seam-table-cell-type-selector>\n</ng-template>\n\n<ng-template #actionMenuCellTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\">\n\n <ng-container *ngIf=\"row && rowActionItem?.template\">\n <ng-template\n [ngTemplateOutlet]=\"$any(rowActionItem?.template)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, row: row, rowIndex: rowIndex }\">\n </ng-template>\n </ng-container>\n\n</ng-template>\n\n<ng-template #treeToggleTpl ngx-datatable-tree-toggle let-tree=\"cellContext\">\n <button\n class=\"p-0 bg-transparent border-0 btn\"\n [disabled]=\"tree.treeStatus==='disabled'\"\n (click)=\"tree.onTreeAction()\">\n <span *ngIf=\"tree.treeStatus==='loading'\">\n <fa-icon [icon]=\"_faSpinner\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='collapsed'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='expanded'\">\n <fa-icon [icon]=\"_faChevronDown\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='disabled'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n </button>\n</ng-template>\n", styles: [":host{display:flex;flex-grow:1;flex-direction:column}::ng-deep .seam-datatable-action-menu{min-width:auto!important}ngx-datatable{position:absolute!important;inset:0}.datatable-wrapper{display:flex;flex-direction:column;flex-grow:1}.datatable-wrapper .datatable-table-wrapper{position:relative;flex:1 1 100%}.datatable-column-header-separator{position:absolute}.datatable-sort-target{cursor:pointer}::ng-deep .ngx-datatable .datatable-body-row{position:relative}::ng-deep .ngx-datatable .datatable-row-right{position:absolute!important;top:0}::ng-deep .ngx-datatable .datatable-row-right{right:0}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "displayPageCount", "displayPager", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DatatableRowDetailDirective, selector: "ngx-datatable-row-detail", inputs: ["rowHeight", "template"], outputs: ["toggle"] }, { kind: "directive", type: i6.DatatableGroupHeaderDirective, selector: "ngx-datatable-group-header", inputs: ["rowHeight", "template"], outputs: ["toggle"] }, { kind: "directive", type: i6.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i6.DataTableColumnCellTreeToggle, selector: "[ngx-datatable-tree-toggle]" }, { kind: "directive", type: i6.DatatableFooterDirective, selector: "ngx-datatable-footer", inputs: ["footerHeight", "totalMessage", "selectedMessage", "pagerLeftArrowIcon", "pagerRightArrowIcon", "pagerPreviousIcon", "pagerNextIcon", "template"] }, { kind: "directive", type: i6.DatatableGroupHeaderTemplateDirective, selector: "[ngx-datatable-group-header-template]" }, { kind: "component", type: i7.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "directive", type: i2$2.ElemResizedDirective, selector: "[seamElemResized]", outputs: ["seamElemResized"] }, { kind: "component", type: i5.IconBtnComponent, selector: "button[seamIconBtn]", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "iconType", "btnTheme", "badgeTheme", "badgeText", "btnSize", "type", "role"] }, { kind: "component", type: i3$1.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }, { kind: "directive", type: i11.TheSeamPopoverDirective, selector: "[seamPopover]", inputs: ["seamPopover", "seamPopoverContext", "seamPopoverBaseWidth", "seamPopoverDisabled"], exportAs: ["seamPopover"] }, { kind: "component", type: i12.TableCellTypeSelectorComponent, selector: "seam-table-cell-type-selector", inputs: ["type", "value", "rowIndex", "row", "colData"] }, { kind: "component", type: DatatableColumnFilterMenuComponent, selector: "seam-datatable-column-filter-menu", inputs: ["column", "updateMethod", "debounce"], outputs: ["closePopover"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], animations: [
1784
2705
  trigger('slideDown', [
1785
2706
  transition(':enter', [
1786
2707
  style({ transform: 'translateY(-20%)', opacity: '0' }),
@@ -1836,20 +2757,20 @@ __decorate([
1836
2757
  ], DatatableComponent.prototype, "virtualization", void 0);
1837
2758
  __decorate([
1838
2759
  InputNumber()
1839
- ], DatatableComponent.prototype, "headerHeight", void 0);
2760
+ ], DatatableComponent.prototype, "headerHeight", null);
1840
2761
  __decorate([
1841
2762
  InputNumber()
1842
- ], DatatableComponent.prototype, "rowHeight", void 0);
2763
+ ], DatatableComponent.prototype, "rowHeight", null);
1843
2764
  __decorate([
1844
2765
  InputNumber()
1845
- ], DatatableComponent.prototype, "footerHeight", void 0);
2766
+ ], DatatableComponent.prototype, "footerHeight", null);
1846
2767
  __decorate([
1847
2768
  InputBoolean()
1848
2769
  ], DatatableComponent.prototype, "scrollbarV", void 0);
1849
2770
  __decorate([
1850
2771
  InputBoolean()
1851
2772
  ], DatatableComponent.prototype, "scrollbarH", void 0);
1852
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableComponent, decorators: [{
2773
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableComponent, decorators: [{
1853
2774
  type: Component,
1854
2775
  args: [{ selector: 'seam-datatable', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
1855
2776
  trigger('slideDown', [
@@ -1868,8 +2789,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1868
2789
  _THESEAM_DATATABLE_ACCESSOR,
1869
2790
  ColumnsManagerService,
1870
2791
  ColumnsAlterationsManagerService,
1871
- ], template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n [columnMode]=\"$any(columnMode)\"\n [scrollbarV]=\"scrollbarV\"\n [scrollbarH]=\"scrollbarH\"\n [virtualization]=\"virtualization\"\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n [groupRowsBy]=\"$any(groupRowsBy)\"\n [groupedRows]=\"$any(groupedRows)\"\n [selected]=\"$any(selected)\"\n [externalPaging]=\"externalPaging\"\n [externalSorting]=\"externalSorting\"\n [limit]=\"$any(limit)\"\n [count]=\"$any(count)\"\n [offset]=\"$any(offset)\"\n [loadingIndicator]=\"loadingIndicator\"\n [selectionType]=\"$any(selectionType)\"\n [reorderable]=\"reorderable\"\n [swapColumns]=\"swapColumns\"\n [sortType]=\"$any(sortType)\"\n [sorts]=\"$any(_sorts)\"\n [cssClasses]=\"cssClasses\"\n [messages]=\"messages\"\n [rowIdentity]=\"$any(rowIdentity)\"\n [rowClass]=\"rowClass\"\n [selectCheck]=\"selectCheck\"\n [displayCheck]=\"$any(displayCheck)\"\n [groupExpansionDefault]=\"groupExpansionDefault\"\n [trackByProp]=\"$any(trackByProp)\"\n [selectAllRowsOnPage]=\"selectAllRowsOnPage\"\n [treeFromRelation]=\"$any(treeFromRelation)\"\n [treeToRelation]=\"$any(treeToRelation)\"\n [summaryRow]=\"summaryRow\"\n [summaryHeight]=\"$any(summaryHeight)\"\n [summaryPosition]=\"$any(summaryPosition)\"\n [rows]=\"rows$ | async\"\n [columns]=\"$any(displayColumns$ | async)\"\n [headerHeight]=\"$any(headerHeight)\"\n [rowHeight]=\"$any(rowHeight)\"\n [footerHeight]=\"$any(footerHeight)\"\n (scroll)=\"scroll.emit($event)\"\n (activate)=\"activate.emit($event)\"\n (select)=\"select.emit($event)\"\n (sort)=\"_onSort($event)\"\n (page)=\"page.emit($event)\"\n (reorder)=\"_onReorder($event)\"\n (resize)=\"_onResize($event)\"\n (tableContextmenu)=\"tableContextmenu.emit($event)\"\n (treeAction)=\"treeAction.emit($event)\"\n (seamElemResized)=\"onDatatableResize($event)\"\n (treeAction)=\"_onTreeAction($event)\">\n\n <ngx-datatable-group-header [rowHeight]=\"50\" #myGroupHeader *ngIf=\"groupRowsBy\">\n <ng-template let-group=\"group\" let-expanded=\"expanded\" ngx-datatable-group-header-template>\n <div\n class=\"w-100 bg-light p-1\"\n [class.border-bottom]=\"!expanded\"\n [class.datatable-icon-right]=\"!expanded\"\n [class.datatable-icon-down]=\"expanded\"\n title=\"Expand/Collapse Group\"\n (click)=\"ngxDatatable?.groupHeader?.toggleExpandGroup(group)\">\n <b>Age: {{ group.age }}</b>\n </div>\n </ng-template>\n </ngx-datatable-group-header>\n\n <ngx-datatable-row-detail *ngIf=\"rowDetail && rowDetail.template\"\n [rowHeight]=\"rowDetail.rowHeight || 0\"\n [template]=\"$any(rowDetail.template)\"\n (toggle)=\"rowDetail.toggle.emit($event)\">\n </ngx-datatable-row-detail>\n\n <ngx-datatable-footer *ngIf=\"footer && footer.template\"\n [template]=\"$any(footer.template)\">\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n\n<ng-template #blankHeaderTpl ngx-datatable-header-template></ng-template>\n\n<ng-template #headerTpl ngx-datatable-header-template\n let-column=\"column\" let-sortFn=\"sortFn\">\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{column.name}}</strong>\n <strong *ngIf=\"column.sortable\" class=\"datatable-sort-target draggable\" (click)=\"sortFn()\">{{column.name}}</strong>\n <div class=\"datatable-column-header-separator\" [attr.data-column-id]=\"column.$$id\"></div>\n</ng-template>\n\n<ng-template #cellTypeSelectorTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\" let-column=\"column\">\n <seam-table-cell-type-selector *ngIf=\"row\"\n [type]=\"column.cellType\"\n [value]=\"value\"\n [rowIndex]=\"rowIndex\"\n [row]=\"row\"\n [colData]=\"column\">\n </seam-table-cell-type-selector>\n</ng-template>\n\n<ng-template #actionMenuCellTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\">\n\n <ng-container *ngIf=\"row && rowActionItem?.template\">\n <ng-template\n [ngTemplateOutlet]=\"$any(rowActionItem?.template)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, row: row, rowIndex: rowIndex }\">\n </ng-template>\n </ng-container>\n\n</ng-template>\n\n<ng-template #treeToggleTpl ngx-datatable-tree-toggle let-tree=\"cellContext\">\n <button\n class=\"p-0 bg-transparent border-0 btn\"\n [disabled]=\"tree.treeStatus==='disabled'\"\n (click)=\"tree.onTreeAction()\">\n <span *ngIf=\"tree.treeStatus==='loading'\">\n <fa-icon [icon]=\"_faSpinner\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='collapsed'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='expanded'\">\n <fa-icon [icon]=\"_faChevronDown\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='disabled'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n </button>\n</ng-template>\n", styles: [":host{display:flex;flex-grow:1;flex-direction:column}::ng-deep .seam-datatable-action-menu{min-width:auto!important}ngx-datatable{position:absolute!important;inset:0}.datatable-wrapper{display:flex;flex-direction:column;flex-grow:1}.datatable-wrapper .datatable-table-wrapper{position:relative;flex:1 1 100%}.datatable-column-header-separator{position:absolute}.datatable-sort-target{cursor:pointer}\n"] }]
1872
- }], ctorParameters: function () { return [{ type: DatatablePreferencesService }, { type: ColumnsManagerService }, { type: ColumnsAlterationsManagerService }]; }, propDecorators: { preferencesKey: [{
2792
+ ColumnsFiltersService
2793
+ ], template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n [columnMode]=\"$any(columnMode)\"\n [scrollbarV]=\"scrollbarV\"\n [scrollbarH]=\"scrollbarH\"\n [virtualization]=\"virtualization\"\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n [groupRowsBy]=\"$any(groupRowsBy)\"\n [groupedRows]=\"$any(groupedRows)\"\n [selected]=\"$any(selected)\"\n [externalPaging]=\"externalPaging\"\n [externalSorting]=\"externalSorting\"\n [limit]=\"$any(limit)\"\n [count]=\"$any(count)\"\n [offset]=\"$any(offset)\"\n [loadingIndicator]=\"loadingIndicator\"\n [selectionType]=\"$any(selectionType)\"\n [reorderable]=\"reorderable\"\n [swapColumns]=\"swapColumns\"\n [sortType]=\"$any(sortType)\"\n [sorts]=\"$any(_sorts)\"\n [cssClasses]=\"cssClasses\"\n [messages]=\"messages\"\n [rowIdentity]=\"$any(rowIdentity)\"\n [rowClass]=\"rowClass\"\n [selectCheck]=\"selectCheck\"\n [displayCheck]=\"$any(displayCheck)\"\n [groupExpansionDefault]=\"groupExpansionDefault\"\n [trackByProp]=\"$any(trackByProp)\"\n [selectAllRowsOnPage]=\"selectAllRowsOnPage\"\n [treeFromRelation]=\"$any(treeFromRelation)\"\n [treeToRelation]=\"$any(treeToRelation)\"\n [summaryRow]=\"summaryRow\"\n [summaryHeight]=\"$any(summaryHeight)\"\n [summaryPosition]=\"$any(summaryPosition)\"\n [rows]=\"rows$ | async\"\n [columns]=\"$any(displayColumns$ | async)\"\n [headerHeight]=\"$any(headerHeight)\"\n [rowHeight]=\"$any(rowHeight)\"\n [footerHeight]=\"$any(footerHeight)\"\n (scroll)=\"scroll.emit($event)\"\n (activate)=\"activate.emit($event)\"\n (select)=\"select.emit($event)\"\n (sort)=\"_onSort($event)\"\n (page)=\"page.emit($event)\"\n (reorder)=\"_onReorder($event)\"\n (resize)=\"_onResize($event)\"\n (tableContextmenu)=\"tableContextmenu.emit($event)\"\n (treeAction)=\"treeAction.emit($event)\"\n (seamElemResized)=\"onDatatableResize($event)\"\n (treeAction)=\"_onTreeAction($event)\">\n\n <ngx-datatable-group-header [rowHeight]=\"50\" #myGroupHeader *ngIf=\"groupRowsBy\">\n <ng-template let-group=\"group\" let-expanded=\"expanded\" ngx-datatable-group-header-template>\n <div\n class=\"w-100 bg-light p-1\"\n [class.border-bottom]=\"!expanded\"\n [class.datatable-icon-right]=\"!expanded\"\n [class.datatable-icon-down]=\"expanded\"\n title=\"Expand/Collapse Group\"\n (click)=\"ngxDatatable?.groupHeader?.toggleExpandGroup(group)\">\n <b>Age: {{ group.age }}</b>\n </div>\n </ng-template>\n </ngx-datatable-group-header>\n\n <ngx-datatable-row-detail *ngIf=\"rowDetail && rowDetail.template\"\n [rowHeight]=\"rowDetail.rowHeight || 0\"\n [template]=\"$any(rowDetail.template)\"\n (toggle)=\"rowDetail.toggle.emit($event)\">\n </ngx-datatable-row-detail>\n\n <ngx-datatable-footer *ngIf=\"footer && footer.template\"\n [template]=\"$any(footer.template)\">\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n\n<ng-template #blankHeaderTpl ngx-datatable-header-template></ng-template>\n\n<ng-template\n #headerTpl\n ngx-datatable-header-template\n let-column=\"column\"\n let-sortFn=\"sortFn\"\n>\n <div class=\"d-inline-flex align-items-center\">\n <ng-container *ngIf=\"column.filterable\">\n <button\n seamIconBtn\n [icon]=\"columnFilterIcon\"\n size=\"sm\"\n [seamPopover]=\"filterMenu\"\n [seamPopoverBaseWidth]=\"300\"\n class=\"datatable-column-header-filter-button d-flex align-items-center mr-2\"\n [class.datatable-column-header-filter-button-active]=\"column.filterActive\"\n style=\"width: 1rem;\"\n title=\"Click to see filter options\"></button>\n </ng-container>\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{column.name}}</strong>\n <button\n seamButton\n *ngIf=\"column.sortable\"\n class=\"datatable-sort-target 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]=\"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"] }]
2794
+ }], ctorParameters: function () {
2795
+ return [{ type: DatatablePreferencesService }, { type: ColumnsManagerService }, { type: ColumnsAlterationsManagerService }, { type: ColumnsFiltersService }, { type: undefined, decorators: [{
2796
+ type: Optional
2797
+ }, {
2798
+ type: Inject,
2799
+ args: [THESEAM_DATATABLE_CONFIG]
2800
+ }] }];
2801
+ }, propDecorators: { preferencesKey: [{
1873
2802
  type: Input
1874
2803
  }], targetMarkerTemplate: [{
1875
2804
  type: Input
@@ -1951,6 +2880,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1951
2880
  type: Input
1952
2881
  }], dataSource: [{
1953
2882
  type: Input
2883
+ }], actionItemColumnPosition: [{
2884
+ type: Input
2885
+ }], columnFilterIcon: [{
2886
+ type: Input
2887
+ }], columnFilterUpdateMethod: [{
2888
+ type: Input
2889
+ }], columnFilterUpdateDebounce: [{
2890
+ type: Input
1954
2891
  }], scroll: [{
1955
2892
  type: Output
1956
2893
  }], activate: [{
@@ -1991,6 +2928,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1991
2928
  }], menuBarComponent: [{
1992
2929
  type: ContentChild,
1993
2930
  args: [DatatableMenuBarComponent]
2931
+ }], columnFilterTemplates: [{
2932
+ type: ContentChildren,
2933
+ args: [TheSeamDatatableColumnFilterDirective]
1994
2934
  }], ngxDatatable: [{
1995
2935
  type: ViewChild,
1996
2936
  args: [DatatableComponent$1]
@@ -2060,9 +3000,9 @@ class DatatableColumnPreferencesComponent {
2060
3000
  this._columnsAlterationsManager.add([alteration]);
2061
3001
  }
2062
3002
  }
2063
- DatatableColumnPreferencesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnPreferencesComponent, deps: [{ token: THESEAM_DATATABLE }, { token: ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
2064
- DatatableColumnPreferencesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnPreferencesComponent, selector: "seam-datatable-column-preferences", ngImport: i0, template: "<h3>Columns</h3>\n\n<seam-form-field [numPaddingErrors]=\"0\" >\n <input seamInput [formControl]=\"_filterControl\" seamInputSize=\"sm\" placeholder=\"Search\" seamAutoFocus>\n</seam-form-field>\n\n<div seamOverlayScrollbar style=\"min-height: 200px; max-height: 600px; min-width: 250px;\" class=\"flex-grow-1 mb-2\">\n <div class=\"p-2\">\n <ng-container *ngFor=\"let col of _columns$ | async\">\n <seam-checkbox [checked]=\"!col.hidden\" (change)=\"_onChange($event, col)\">{{ col.name || col.prop }}</seam-checkbox>\n </ng-container>\n </div>\n\n</div>\n<div class=\"d-flex flex-row justify-content-end\">\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" (click)=\"_onCloseClick()\">Close</button> -->\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" class=\"mr-1\">Cancel</button>\n <button seamButton size=\"sm\" theme=\"success\">Done</button> -->\n</div>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.AutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i1$2.OverlayScrollbarDirective, selector: "[seamOverlayScrollbar]", inputs: ["seamOverlayScrollbar", "overlayScrollbarEnabled"], exportAs: ["seamOverlayScrollbar"] }, { kind: "component", type: i5$2.TheSeamCheckboxComponent, selector: "seam-checkbox", inputs: ["tabIndex", "id", "aria-label", "aria-labelledby", "required", "checked", "disabled", "indeterminate", "name", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["seamCheckbox"] }, { kind: "component", type: i6$1.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i6$1.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i7$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2065
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnPreferencesComponent, decorators: [{
3003
+ DatatableColumnPreferencesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnPreferencesComponent, deps: [{ token: THESEAM_DATATABLE }, { token: ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
3004
+ DatatableColumnPreferencesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableColumnPreferencesComponent, selector: "seam-datatable-column-preferences", ngImport: i0, template: "<h3>Columns</h3>\n\n<seam-form-field [numPaddingErrors]=\"0\" >\n <input seamInput [formControl]=\"_filterControl\" seamInputSize=\"sm\" placeholder=\"Search\" seamAutoFocus>\n</seam-form-field>\n\n<div seamOverlayScrollbar style=\"min-height: 200px; max-height: 600px; min-width: 250px;\" class=\"flex-grow-1 mb-2\">\n <div class=\"p-2\">\n <ng-container *ngFor=\"let col of _columns$ | async\">\n <seam-checkbox [checked]=\"!col.hidden\" (change)=\"_onChange($event, col)\">{{ col.name || col.prop }}</seam-checkbox>\n </ng-container>\n </div>\n\n</div>\n<div class=\"d-flex flex-row justify-content-end\">\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" (click)=\"_onCloseClick()\">Close</button> -->\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" class=\"mr-1\">Cancel</button>\n <button seamButton size=\"sm\" theme=\"success\">Done</button> -->\n</div>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.AutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i1$2.OverlayScrollbarDirective, selector: "[seamOverlayScrollbar]", inputs: ["seamOverlayScrollbar", "overlayScrollbarEnabled"], exportAs: ["seamOverlayScrollbar"] }, { kind: "component", type: i5$2.TheSeamCheckboxComponent, selector: "seam-checkbox", inputs: ["tabIndex", "id", "aria-label", "aria-labelledby", "required", "checked", "disabled", "indeterminate", "name", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["seamCheckbox"] }, { kind: "component", type: i3.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i3.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3005
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnPreferencesComponent, decorators: [{
2066
3006
  type: Component,
2067
3007
  args: [{ selector: 'seam-datatable-column-preferences', changeDetection: ChangeDetectionStrategy.OnPush, template: "<h3>Columns</h3>\n\n<seam-form-field [numPaddingErrors]=\"0\" >\n <input seamInput [formControl]=\"_filterControl\" seamInputSize=\"sm\" placeholder=\"Search\" seamAutoFocus>\n</seam-form-field>\n\n<div seamOverlayScrollbar style=\"min-height: 200px; max-height: 600px; min-width: 250px;\" class=\"flex-grow-1 mb-2\">\n <div class=\"p-2\">\n <ng-container *ngFor=\"let col of _columns$ | async\">\n <seam-checkbox [checked]=\"!col.hidden\" (change)=\"_onChange($event, col)\">{{ col.name || col.prop }}</seam-checkbox>\n </ng-container>\n </div>\n\n</div>\n<div class=\"d-flex flex-row justify-content-end\">\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" (click)=\"_onCloseClick()\">Close</button> -->\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" class=\"mr-1\">Cancel</button>\n <button seamButton size=\"sm\" theme=\"success\">Done</button> -->\n</div>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
2068
3008
  }], ctorParameters: function () {
@@ -2108,9 +3048,9 @@ class DatatableColumnPreferencesButtonComponent {
2108
3048
  this._columnsAlterationsManager.clear();
2109
3049
  }
2110
3050
  }
2111
- DatatableColumnPreferencesButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, deps: [{ token: ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
2112
- DatatableColumnPreferencesButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnPreferencesButtonComponent, selector: "seam-datatable-column-preferences-button", ngImport: i0, template: "<ng-template #colPrefsTpl>\n <seam-datatable-column-preferences></seam-datatable-column-preferences>\n</ng-template>\n\n<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [seamPopover]=\"colPrefsTpl\">\n Show/Hide Columns\n </button>\n\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"_resetColumns($event)\">\n Reset Columns\n </button>\n</seam-menu>\n\n<button type=\"button\" class=\"btn btn-lightgray btn-sm\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Column Preferences\">\n <seam-icon [icon]=\"icon\"></seam-icon>\n <span class=\"sr-only\">Column Preferences</span>\n</button>\n\n", styles: [""], dependencies: [{ kind: "component", type: i4$1.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i4$1.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i4$1.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "component", type: i5.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "directive", type: i4$2.TheSeamPopoverDirective, selector: "[seamPopover]", inputs: ["seamPopover", "seamPopoverBaseWidth", "seamPopoverDisabled"], exportAs: ["seamPopover"] }, { kind: "component", type: DatatableColumnPreferencesComponent, selector: "seam-datatable-column-preferences" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, decorators: [{
3051
+ DatatableColumnPreferencesButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, deps: [{ token: ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
3052
+ DatatableColumnPreferencesButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableColumnPreferencesButtonComponent, selector: "seam-datatable-column-preferences-button", ngImport: i0, template: "<ng-template #colPrefsTpl>\n <seam-datatable-column-preferences></seam-datatable-column-preferences>\n</ng-template>\n\n<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [seamPopover]=\"colPrefsTpl\">\n Show/Hide Columns\n </button>\n\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"_resetColumns($event)\">\n Reset Columns\n </button>\n</seam-menu>\n\n<button type=\"button\" class=\"btn btn-lightgray btn-sm\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Column Preferences\">\n <seam-icon [icon]=\"icon\"></seam-icon>\n <span class=\"sr-only\">Column Preferences</span>\n</button>\n\n", styles: [""], dependencies: [{ kind: "component", type: i4.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i4.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["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 });
3053
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, decorators: [{
2114
3054
  type: Component,
2115
3055
  args: [{ selector: 'seam-datatable-column-preferences-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #colPrefsTpl>\n <seam-datatable-column-preferences></seam-datatable-column-preferences>\n</ng-template>\n\n<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [seamPopover]=\"colPrefsTpl\">\n Show/Hide Columns\n </button>\n\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"_resetColumns($event)\">\n Reset Columns\n </button>\n</seam-menu>\n\n<button type=\"button\" class=\"btn btn-lightgray btn-sm\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Column Preferences\">\n <seam-icon [icon]=\"icon\"></seam-icon>\n <span class=\"sr-only\">Column Preferences</span>\n</button>\n\n" }]
2116
3056
  }], ctorParameters: function () { return [{ type: ColumnsAlterationsManagerService }]; } });
@@ -2187,16 +3127,16 @@ class DatatableExportButtonComponent {
2187
3127
  return undefined;
2188
3128
  }
2189
3129
  }
2190
- DatatableExportButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableExportButtonComponent, deps: [{ token: THESEAM_DATATABLE }, { token: i1$3.ToastrService }, { token: i2$1.TheSeamLoadingOverlayService }, { token: i3.DynamicValueHelperService }, { token: THESEAM_DYNAMIC_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
2191
- DatatableExportButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableExportButtonComponent, selector: "seam-datatable-export-button", inputs: { exporters: "exporters" }, ngImport: i0, template: "<seam-menu #menu>\n <button *ngFor=\"let exp of exporters\"\n seamMenuItem\n [icon]=\"exp?.icon\"\n (click)=\"_onExporterClicked(exp)\">\n {{ exp.label }}\n </button>\n</seam-menu>\n<button\n [seamMenuToggle]=\"menu\"\n seamButton\n theme=\"lightgray\"\n size=\"sm\"\n class=\"dropdown-toggle\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Export\"\n [disabled]=\"disabled\"\n >\n <seam-icon [icon]=\"icon\" class=\"mr-2\"></seam-icon>\n</button>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4$1.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i4$1.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i4$1.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "component", type: i5.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "component", type: i7$2.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableExportButtonComponent, decorators: [{
3130
+ DatatableExportButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableExportButtonComponent, deps: [{ token: THESEAM_DATATABLE }, { token: i1$3.ToastrService }, { token: i2$3.TheSeamLoadingOverlayService }, { token: i3$2.DynamicValueHelperService }, { token: THESEAM_DYNAMIC_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
3131
+ DatatableExportButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableExportButtonComponent, selector: "seam-datatable-export-button", inputs: { exporters: "exporters" }, ngImport: i0, template: "<seam-menu #menu>\n <button *ngFor=\"let exp of exporters\"\n seamMenuItem\n [icon]=\"exp?.icon\"\n (click)=\"_onExporterClicked(exp)\">\n {{ exp.label }}\n </button>\n</seam-menu>\n<button\n [seamMenuToggle]=\"menu\"\n seamButton\n theme=\"lightgray\"\n size=\"sm\"\n class=\"dropdown-toggle\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Export\"\n [disabled]=\"disabled\"\n >\n <seam-icon [icon]=\"icon\" class=\"mr-2\"></seam-icon>\n</button>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "directive", type: 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 });
3132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableExportButtonComponent, decorators: [{
2193
3133
  type: Component,
2194
3134
  args: [{ selector: 'seam-datatable-export-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<seam-menu #menu>\n <button *ngFor=\"let exp of exporters\"\n seamMenuItem\n [icon]=\"exp?.icon\"\n (click)=\"_onExporterClicked(exp)\">\n {{ exp.label }}\n </button>\n</seam-menu>\n<button\n [seamMenuToggle]=\"menu\"\n seamButton\n theme=\"lightgray\"\n size=\"sm\"\n class=\"dropdown-toggle\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Export\"\n [disabled]=\"disabled\"\n >\n <seam-icon [icon]=\"icon\" class=\"mr-2\"></seam-icon>\n</button>\n", styles: [":host{display:inline-block}\n"] }]
2195
3135
  }], ctorParameters: function () {
2196
3136
  return [{ type: DatatableComponent, decorators: [{
2197
3137
  type: Inject,
2198
3138
  args: [THESEAM_DATATABLE]
2199
- }] }, { type: i1$3.ToastrService }, { type: i2$1.TheSeamLoadingOverlayService }, { type: i3.DynamicValueHelperService }, { type: undefined, decorators: [{
3139
+ }] }, { type: i1$3.ToastrService }, { type: i2$3.TheSeamLoadingOverlayService }, { type: i3$2.DynamicValueHelperService }, { type: undefined, decorators: [{
2200
3140
  type: Optional
2201
3141
  }, {
2202
3142
  type: Inject,
@@ -2208,36 +3148,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2208
3148
 
2209
3149
  class DatatableMenuBarColumnCenterComponent {
2210
3150
  }
2211
- DatatableMenuBarColumnCenterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableMenuBarColumnCenterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2212
- DatatableMenuBarColumnCenterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableMenuBarColumnCenterComponent, 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 });
2213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableMenuBarColumnCenterComponent, decorators: [{
3151
+ DatatableMenuBarColumnCenterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableMenuBarColumnCenterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3152
+ DatatableMenuBarColumnCenterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableMenuBarColumnCenterComponent, 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 });
3153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableMenuBarColumnCenterComponent, decorators: [{
2214
3154
  type: Component,
2215
3155
  args: [{ selector: 'seam-datatable-menu-bar-column-center', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:row;flex:1 1 auto;justify-content:center}\n"] }]
2216
3156
  }] });
2217
3157
 
2218
3158
  class DatatableMenuBarColumnLeftComponent {
2219
3159
  }
2220
- DatatableMenuBarColumnLeftComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableMenuBarColumnLeftComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2221
- DatatableMenuBarColumnLeftComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableMenuBarColumnLeftComponent, 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 });
2222
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableMenuBarColumnLeftComponent, decorators: [{
3160
+ DatatableMenuBarColumnLeftComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableMenuBarColumnLeftComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3161
+ DatatableMenuBarColumnLeftComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableMenuBarColumnLeftComponent, 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 });
3162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableMenuBarColumnLeftComponent, decorators: [{
2223
3163
  type: Component,
2224
3164
  args: [{ selector: 'seam-datatable-menu-bar-column-left', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:row;flex:1 1 0%;justify-content:flex-start}\n"] }]
2225
3165
  }] });
2226
3166
 
2227
3167
  class DatatableMenuBarColumnRightComponent {
2228
3168
  }
2229
- DatatableMenuBarColumnRightComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableMenuBarColumnRightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2230
- DatatableMenuBarColumnRightComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableMenuBarColumnRightComponent, 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 });
2231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableMenuBarColumnRightComponent, decorators: [{
3169
+ DatatableMenuBarColumnRightComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableMenuBarColumnRightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3170
+ DatatableMenuBarColumnRightComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableMenuBarColumnRightComponent, 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 });
3171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableMenuBarColumnRightComponent, decorators: [{
2232
3172
  type: Component,
2233
3173
  args: [{ selector: 'seam-datatable-menu-bar-column-right', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:row;flex:1 1 0%;justify-content:flex-end}\n"] }]
2234
3174
  }] });
2235
3175
 
2236
3176
  class DatatableMenuBarRowComponent {
2237
3177
  }
2238
- DatatableMenuBarRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableMenuBarRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2239
- DatatableMenuBarRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableMenuBarRowComponent, 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 });
2240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableMenuBarRowComponent, decorators: [{
3178
+ DatatableMenuBarRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableMenuBarRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3179
+ DatatableMenuBarRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableMenuBarRowComponent, 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 });
3180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableMenuBarRowComponent, decorators: [{
2241
3181
  type: Component,
2242
3182
  args: [{ selector: 'seam-datatable-menu-bar-row', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap}\n"] }]
2243
3183
  }] });
@@ -2255,9 +3195,9 @@ class DatatableMenuBarTextComponent {
2255
3195
  }
2256
3196
  }
2257
3197
  }
2258
- DatatableMenuBarTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableMenuBarTextComponent, deps: [{ token: DatatableMenuBarComponent }, { token: THESEAM_MENUBAR_ITEM_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
2259
- DatatableMenuBarTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableMenuBarTextComponent, selector: "seam-datatable-menu-bar-text", inputs: { value: "value" }, ngImport: i0, template: "{{ value }}\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableMenuBarTextComponent, decorators: [{
3198
+ DatatableMenuBarTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableMenuBarTextComponent, deps: [{ token: DatatableMenuBarComponent }, { token: THESEAM_MENUBAR_ITEM_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
3199
+ DatatableMenuBarTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableMenuBarTextComponent, selector: "seam-datatable-menu-bar-text", inputs: { value: "value" }, ngImport: i0, template: "{{ value }}\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableMenuBarTextComponent, decorators: [{
2261
3201
  type: Component,
2262
3202
  args: [{ selector: 'seam-datatable-menu-bar-text', changeDetection: ChangeDetectionStrategy.OnPush, template: "{{ value }}\n" }]
2263
3203
  }], ctorParameters: function () {
@@ -2282,15 +3222,15 @@ class DatatableActionMenuItemDirective {
2282
3222
  this.click = new EventEmitter();
2283
3223
  }
2284
3224
  }
2285
- DatatableActionMenuItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuItemDirective, deps: [{ token: i1$4.Modal }, { token: i2$2.TheSeamDynamicComponentLoader }, { token: i3$1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
2286
- DatatableActionMenuItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: DatatableActionMenuItemDirective, selector: "[seamDatatableActionMenuItem]", inputs: { label: "label", href: ["attr.href", "href"], target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", preserveFragment: "preserveFragment", skipLocationChange: "skipLocationChange", replaceUrl: "replaceUrl", state: "state", routerLink: "routerLink", confirmDialog: "confirmDialog", row: "row" }, outputs: { click: "click" }, host: { properties: { "class.list-group-item": "this._listGroupItem", "class.list-group-item-action": "this._listGroupItemAction" } }, ngImport: i0 });
2287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuItemDirective, decorators: [{
3225
+ DatatableActionMenuItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableActionMenuItemDirective, deps: [{ token: i1$4.Modal }, { token: i2$4.TheSeamDynamicComponentLoader }, { token: i3$3.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3226
+ DatatableActionMenuItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DatatableActionMenuItemDirective, selector: "[seamDatatableActionMenuItem]", inputs: { label: "label", href: ["attr.href", "href"], target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", preserveFragment: "preserveFragment", skipLocationChange: "skipLocationChange", replaceUrl: "replaceUrl", state: "state", routerLink: "routerLink", confirmDialog: "confirmDialog", row: "row" }, outputs: { click: "click" }, host: { properties: { "class.list-group-item": "this._listGroupItem", "class.list-group-item-action": "this._listGroupItemAction" } }, ngImport: i0 });
3227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableActionMenuItemDirective, decorators: [{
2288
3228
  type: Directive,
2289
3229
  args: [{
2290
3230
  selector: '[seamDatatableActionMenuItem]'
2291
3231
  }]
2292
3232
  }], ctorParameters: function () {
2293
- return [{ type: i1$4.Modal }, { type: i2$2.TheSeamDynamicComponentLoader }, { type: i3$1.HttpClient, decorators: [{
3233
+ return [{ type: i1$4.Modal }, { type: i2$4.TheSeamDynamicComponentLoader }, { type: i3$3.HttpClient, decorators: [{
2294
3234
  type: Optional
2295
3235
  }] }];
2296
3236
  }, propDecorators: { _listGroupItem: [{
@@ -2433,9 +3373,9 @@ class DatatableActionMenuToggleDirective {
2433
3373
  this._actionDown = false;
2434
3374
  }
2435
3375
  }
2436
- DatatableActionMenuToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuToggleDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$5.Overlay }], target: i0.ɵɵFactoryTarget.Directive });
2437
- DatatableActionMenuToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: DatatableActionMenuToggleDirective, 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 });
2438
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuToggleDirective, decorators: [{
3376
+ DatatableActionMenuToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableActionMenuToggleDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$5.Overlay }], target: i0.ɵɵFactoryTarget.Directive });
3377
+ DatatableActionMenuToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DatatableActionMenuToggleDirective, 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 });
3378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableActionMenuToggleDirective, decorators: [{
2439
3379
  type: Directive,
2440
3380
  args: [{
2441
3381
  selector: '[seamDatatableActionMenuToggle]',
@@ -2518,9 +3458,9 @@ class TheSeamDatatableScrollbarHelperService {
2518
3458
  });
2519
3459
  }
2520
3460
  }
2521
- TheSeamDatatableScrollbarHelperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableScrollbarHelperService, deps: [{ token: i0.NgZone }, { token: i1$2.OverlayScrollbarsService }], target: i0.ɵɵFactoryTarget.Injectable });
2522
- TheSeamDatatableScrollbarHelperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableScrollbarHelperService });
2523
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableScrollbarHelperService, decorators: [{
3461
+ TheSeamDatatableScrollbarHelperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableScrollbarHelperService, deps: [{ token: i0.NgZone }, { token: i1$2.OverlayScrollbarsService }], target: i0.ɵɵFactoryTarget.Injectable });
3462
+ TheSeamDatatableScrollbarHelperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableScrollbarHelperService });
3463
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableScrollbarHelperService, decorators: [{
2524
3464
  type: Injectable
2525
3465
  }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1$2.OverlayScrollbarsService }]; } });
2526
3466
 
@@ -2545,8 +3485,8 @@ function withStoredColumnInfo(columns, preferenceColumns) {
2545
3485
 
2546
3486
  class TheSeamDatatableModule {
2547
3487
  }
2548
- TheSeamDatatableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2549
- TheSeamDatatableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableModule, declarations: [DatatableComponent,
3488
+ TheSeamDatatableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3489
+ TheSeamDatatableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableModule, declarations: [DatatableComponent,
2550
3490
  DatatableCellTplDirective,
2551
3491
  DatatableColumnComponent,
2552
3492
  DatatableActionMenuComponent,
@@ -2567,7 +3507,13 @@ TheSeamDatatableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
2567
3507
  DatatableMenuBarColumnLeftComponent,
2568
3508
  DatatableMenuBarColumnCenterComponent,
2569
3509
  DatatableMenuBarColumnRightComponent,
2570
- DatatableMenuBarTextComponent], imports: [CommonModule,
3510
+ DatatableMenuBarTextComponent,
3511
+ DatatableColumnFilterMenuComponent,
3512
+ DatatableColumnFilterSearchTextComponent,
3513
+ DatatableColumnFilterSearchNumericComponent,
3514
+ DatatableColumnFilterSearchDateComponent,
3515
+ DatatableColumnFilterTplDirective,
3516
+ TheSeamDatatableColumnFilterDirective], imports: [CommonModule,
2571
3517
  NgxDatatableModule,
2572
3518
  FontAwesomeModule,
2573
3519
  OverlayModule,
@@ -2585,7 +3531,10 @@ TheSeamDatatableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
2585
3531
  TheSeamCheckboxComponent,
2586
3532
  TheSeamFormFieldModule,
2587
3533
  ReactiveFormsModule,
2588
- TheSeamTableCellTypeModule], exports: [DatatableComponent,
3534
+ TheSeamTableCellTypeModule,
3535
+ TheSeamDataFiltersModule,
3536
+ NgSelectModule,
3537
+ TheSeamToggleGroupModule], exports: [DatatableComponent,
2589
3538
  DatatableCellTplDirective,
2590
3539
  DatatableColumnComponent,
2591
3540
  DatatableActionMenuComponent,
@@ -2605,8 +3554,14 @@ TheSeamDatatableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
2605
3554
  DatatableMenuBarColumnLeftComponent,
2606
3555
  DatatableMenuBarColumnCenterComponent,
2607
3556
  DatatableMenuBarColumnRightComponent,
2608
- DatatableMenuBarTextComponent] });
2609
- TheSeamDatatableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableModule, providers: [
3557
+ DatatableMenuBarTextComponent,
3558
+ DatatableColumnFilterMenuComponent,
3559
+ DatatableColumnFilterSearchTextComponent,
3560
+ DatatableColumnFilterSearchNumericComponent,
3561
+ DatatableColumnFilterSearchDateComponent,
3562
+ DatatableColumnFilterTplDirective,
3563
+ TheSeamDatatableColumnFilterDirective] });
3564
+ TheSeamDatatableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableModule, providers: [
2610
3565
  { provide: ScrollbarHelper, useClass: TheSeamDatatableScrollbarHelperService }
2611
3566
  ], imports: [CommonModule,
2612
3567
  NgxDatatableModule,
@@ -2626,8 +3581,11 @@ TheSeamDatatableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
2626
3581
  TheSeamCheckboxComponent,
2627
3582
  TheSeamFormFieldModule,
2628
3583
  ReactiveFormsModule,
2629
- TheSeamTableCellTypeModule] });
2630
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDatatableModule, decorators: [{
3584
+ TheSeamTableCellTypeModule,
3585
+ TheSeamDataFiltersModule,
3586
+ NgSelectModule,
3587
+ TheSeamToggleGroupModule] });
3588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamDatatableModule, decorators: [{
2631
3589
  type: NgModule,
2632
3590
  args: [{
2633
3591
  declarations: [
@@ -2653,6 +3611,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2653
3611
  DatatableMenuBarColumnCenterComponent,
2654
3612
  DatatableMenuBarColumnRightComponent,
2655
3613
  DatatableMenuBarTextComponent,
3614
+ DatatableColumnFilterMenuComponent,
3615
+ DatatableColumnFilterSearchTextComponent,
3616
+ DatatableColumnFilterSearchNumericComponent,
3617
+ DatatableColumnFilterSearchDateComponent,
3618
+ DatatableColumnFilterTplDirective,
3619
+ TheSeamDatatableColumnFilterDirective
2656
3620
  ],
2657
3621
  imports: [
2658
3622
  CommonModule,
@@ -2673,7 +3637,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2673
3637
  TheSeamCheckboxComponent,
2674
3638
  TheSeamFormFieldModule,
2675
3639
  ReactiveFormsModule,
2676
- TheSeamTableCellTypeModule
3640
+ TheSeamTableCellTypeModule,
3641
+ TheSeamDataFiltersModule,
3642
+ NgSelectModule,
3643
+ TheSeamToggleGroupModule
2677
3644
  ],
2678
3645
  exports: [
2679
3646
  DatatableComponent,
@@ -2696,7 +3663,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2696
3663
  DatatableMenuBarColumnLeftComponent,
2697
3664
  DatatableMenuBarColumnCenterComponent,
2698
3665
  DatatableMenuBarColumnRightComponent,
2699
- DatatableMenuBarTextComponent
3666
+ DatatableMenuBarTextComponent,
3667
+ DatatableColumnFilterMenuComponent,
3668
+ DatatableColumnFilterSearchTextComponent,
3669
+ DatatableColumnFilterSearchNumericComponent,
3670
+ DatatableColumnFilterSearchDateComponent,
3671
+ DatatableColumnFilterTplDirective,
3672
+ TheSeamDatatableColumnFilterDirective
2700
3673
  ],
2701
3674
  providers: [
2702
3675
  { provide: ScrollbarHelper, useClass: TheSeamDatatableScrollbarHelperService }
@@ -2708,5 +3681,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2708
3681
  * Generated bundle index. Do not edit.
2709
3682
  */
2710
3683
 
2711
- export { CURRENT_DATATABLE_PREFERENCES_VERSION, DatatableActionMenuComponent, DatatableActionMenuItemComponent, DatatableActionMenuItemDirective, DatatableActionMenuToggleDirective, DatatableCellTplDirective, DatatableColumnChangesService, DatatableColumnComponent, DatatableColumnPreferencesButtonComponent, DatatableColumnPreferencesComponent, DatatableComponent, DatatableDataSource, DatatableExportButtonComponent, DatatableFilterDirective, DatatableFooterTplDirective, DatatableGqlDataSource, DatatableMenuBarColumnCenterComponent, DatatableMenuBarColumnLeftComponent, DatatableMenuBarColumnRightComponent, DatatableMenuBarComponent, DatatableMenuBarRowComponent, DatatableMenuBarTextComponent, DatatablePreferencesService, DatatableRowActionItemDirective, DatatableRowDetailTplDirective, EMPTY_DATATABLE_PREFERENCES, THESEAM_DATATABLE, THESEAM_DATATABLE_PREFERENCES_ACCESSOR, THESEAM_MENUBAR_ITEM_DATA, TheSeamDatatableFooterDirective, TheSeamDatatableModule, TheSeamDatatableRowDetailDirective, TheSeamDatatableScrollbarHelperService, _THESEAM_DATATABLE, _THESEAM_DATATABLE_ACCESSOR, _THESEAM_DATA_FILTER_CONTAINER, withStoredColumnInfo };
3684
+ export { CURRENT_DATATABLE_PREFERENCES_VERSION, ColumnsDataFilter, ColumnsFiltersService, DatatableActionMenuComponent, DatatableActionMenuItemComponent, DatatableActionMenuItemDirective, DatatableActionMenuToggleDirective, DatatableCellTplDirective, DatatableColumnChangesService, DatatableColumnComponent, DatatableColumnFilterMenuComponent, DatatableColumnFilterSearchDateComponent, DatatableColumnFilterSearchNumericComponent, DatatableColumnFilterSearchTextComponent, DatatableColumnFilterTplDirective, DatatableColumnPreferencesButtonComponent, DatatableColumnPreferencesComponent, DatatableComponent, DatatableDataSource, DatatableExportButtonComponent, DatatableFilterDirective, DatatableFooterTplDirective, DatatableGqlDataSource, DatatableMenuBarColumnCenterComponent, DatatableMenuBarColumnLeftComponent, DatatableMenuBarColumnRightComponent, DatatableMenuBarComponent, DatatableMenuBarRowComponent, DatatableMenuBarTextComponent, DatatablePreferencesService, DatatableRowActionItemDirective, DatatableRowDetailTplDirective, EMPTY_DATATABLE_PREFERENCES, SearchDateColumnsDataFilter, SearchNumericColumnsDataFilter, SearchTextColumnsDataFilter, THESEAM_COLUMNS_DATA_FILTER, THESEAM_COLUMNS_DATA_FILTERS_DEFAULT, THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES, THESEAM_DATATABLE, THESEAM_DATATABLE_CONFIG, THESEAM_DATATABLE_PREFERENCES_ACCESSOR, THESEAM_MENUBAR_ITEM_DATA, TheSeamDatatableColumnFilterDirective, TheSeamDatatableFooterDirective, TheSeamDatatableModule, TheSeamDatatableRowDetailDirective, TheSeamDatatableScrollbarHelperService, _THESEAM_DATATABLE, _THESEAM_DATATABLE_ACCESSOR, _THESEAM_DATA_FILTER_CONTAINER, getFormattedDateForComparison, withStoredColumnInfo };
2712
3685
  //# sourceMappingURL=theseam-ui-common-datatable.mjs.map