@theseam/ui-common 0.4.0-beta.6 → 0.4.2

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 (668) hide show
  1. package/breadcrumbs/breadcrumbs/breadcrumbs.component.d.ts +1 -3
  2. package/card/card-body/card-body.component.d.ts +2 -4
  3. package/card/card-footer/card-footer.component.d.ts +1 -4
  4. package/card/card-header/card-header.component.d.ts +1 -4
  5. package/card/card.component.d.ts +1 -4
  6. package/carousel/carousel-slide.directive.d.ts +8 -0
  7. package/carousel/carousel.component.d.ts +85 -0
  8. package/carousel/carousel.module.d.ts +11 -0
  9. package/carousel/index.d.ts +5 -0
  10. package/carousel/public-api.d.ts +3 -0
  11. package/checkbox/checkbox.component.d.ts +2 -4
  12. package/core/common-behaviors/active.d.ts +1 -1
  13. package/core/common-behaviors/disabled.d.ts +1 -1
  14. package/core/common-behaviors/initialized.d.ts +1 -1
  15. package/data-filters/data-filter.d.ts +1 -1
  16. package/datatable/datatable-column/datatable-column.component.d.ts +2 -3
  17. package/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.d.ts +1 -3
  18. package/datatable/datatable-export-button/datatable-export-button.component.d.ts +1 -3
  19. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -5
  20. package/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.d.ts +1 -4
  21. package/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.d.ts +1 -4
  22. package/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.d.ts +1 -4
  23. package/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.d.ts +1 -4
  24. package/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.d.ts +1 -3
  25. package/datatable/directives/datatable-action-menu-item.directive.d.ts +2 -4
  26. package/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.d.ts +1 -3
  27. package/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.d.ts +3 -4
  28. package/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.d.ts +1 -1
  29. package/datatable-dynamic/datatable-dynamic.component.d.ts +1 -4
  30. package/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.d.ts +3 -4
  31. package/dynamic/action/modal/dynamic-action-modal-def.d.ts +1 -1
  32. package/esm2020/asset-reader/asset-reader-helper.service.mjs +7 -5
  33. package/esm2020/asset-reader/asset-reader.module.mjs +4 -4
  34. package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +3 -3
  35. package/esm2020/breadcrumbs/breadcrumb.mjs +1 -1
  36. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +4 -5
  37. package/esm2020/breadcrumbs/breadcrumbs-resolver.mjs +1 -1
  38. package/esm2020/breadcrumbs/breadcrumbs.module.mjs +5 -5
  39. package/esm2020/breadcrumbs/breadcrumbs.service.mjs +7 -7
  40. package/esm2020/buttons/badge-button/badge-button.component.mjs +9 -7
  41. package/esm2020/buttons/button/button.component.mjs +12 -10
  42. package/esm2020/buttons/buttons.module.mjs +4 -4
  43. package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +4 -4
  44. package/esm2020/buttons/toggle-button/toggle-button.component.mjs +6 -6
  45. package/esm2020/card/card-action/card-action.component.mjs +4 -4
  46. package/esm2020/card/card-body/card-body.component.mjs +5 -6
  47. package/esm2020/card/card-footer/card-footer.component.mjs +5 -8
  48. package/esm2020/card/card-header/card-header.component.mjs +5 -7
  49. package/esm2020/card/card.component.mjs +5 -7
  50. package/esm2020/card/card.module.mjs +4 -4
  51. package/esm2020/carousel/carousel-slide.directive.mjs +16 -0
  52. package/esm2020/carousel/carousel.component.mjs +211 -0
  53. package/esm2020/carousel/carousel.module.mjs +38 -0
  54. package/esm2020/carousel/public-api.mjs +4 -0
  55. package/esm2020/carousel/theseam-ui-common-carousel.mjs +5 -0
  56. package/esm2020/checkbox/checkbox.component.mjs +5 -6
  57. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  58. package/esm2020/checkbox/testing/checkbox.harness.mjs +1 -1
  59. package/esm2020/checkbox/testing/index.mjs +1 -1
  60. package/esm2020/confirm-dialog/confirm-click.directive.mjs +6 -6
  61. package/esm2020/confirm-dialog/confirm-dialog.component.mjs +3 -3
  62. package/esm2020/confirm-dialog/confirm-dialog.module.mjs +4 -4
  63. package/esm2020/confirm-dialog/confirm-dialog.service.mjs +3 -3
  64. package/esm2020/core/common-behaviors/active.mjs +2 -1
  65. package/esm2020/core/common-behaviors/disabled.mjs +2 -1
  66. package/esm2020/core/common-behaviors/initialized.mjs +2 -1
  67. package/esm2020/core/common-behaviors/tabindex.mjs +2 -1
  68. package/esm2020/core/input-decorators/input-boolean.decorator.mjs +4 -5
  69. package/esm2020/core/input-decorators/input-number.decorator.mjs +4 -5
  70. package/esm2020/data-exporter/data-exporter.module.mjs +4 -4
  71. package/esm2020/data-exporter/exporters/csv-exporter.mjs +3 -3
  72. package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +3 -3
  73. package/esm2020/data-filters/data-filter.mjs +1 -1
  74. package/esm2020/data-filters/data-filters.module.mjs +4 -4
  75. package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +5 -5
  76. package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +6 -6
  77. package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +11 -8
  78. package/esm2020/datatable/datatable/datatable.component.mjs +11 -6
  79. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +3 -3
  80. package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +5 -4
  81. package/esm2020/datatable/datatable-column/datatable-column.component.mjs +4 -5
  82. package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +3 -3
  83. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +4 -5
  84. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +5 -5
  85. package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +3 -3
  86. package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +5 -5
  87. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +9 -13
  88. package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +5 -8
  89. package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +5 -8
  90. package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +5 -8
  91. package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +5 -8
  92. package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +4 -5
  93. package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +3 -3
  94. package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +5 -5
  95. package/esm2020/datatable/datatable.module.mjs +4 -4
  96. package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +5 -6
  97. package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +3 -3
  98. package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +3 -3
  99. package/esm2020/datatable/directives/datatable-filter.directive.mjs +3 -3
  100. package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +3 -3
  101. package/esm2020/datatable/models/columns-alteration.mjs +1 -1
  102. package/esm2020/datatable/models/columns-alterations/order.columns-alteration.mjs +3 -1
  103. package/esm2020/datatable/models/datatable-gql-data-source.mjs +1 -1
  104. package/esm2020/datatable/models/internal-column-props.mjs +1 -1
  105. package/esm2020/datatable/models/sort-item.mjs +1 -1
  106. package/esm2020/datatable/services/columns-alterations-manager.service.mjs +4 -4
  107. package/esm2020/datatable/services/columns-manager.service.mjs +5 -5
  108. package/esm2020/datatable/services/datatable-column-changes.service.mjs +3 -3
  109. package/esm2020/datatable/services/datatable-preferences.service.mjs +5 -4
  110. package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +5 -5
  111. package/esm2020/datatable/utils/map-columns-alterations-states.mjs +4 -1
  112. package/esm2020/datatable/utils/set-column-defaults.mjs +2 -2
  113. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +5 -6
  114. package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +4 -4
  115. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +6 -7
  116. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.mjs +1 -1
  117. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +4 -6
  118. package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +4 -4
  119. package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +6 -6
  120. package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +7 -7
  121. package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +6 -6
  122. package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +11 -8
  123. package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +6 -5
  124. package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +4 -4
  125. package/esm2020/dynamic/action/modal/dynamic-action-modal-def.mjs +1 -1
  126. package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +4 -4
  127. package/esm2020/dynamic/dynamic-value-helper.service.mjs +5 -4
  128. package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +4 -4
  129. package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +5 -5
  130. package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +4 -4
  131. package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +9 -9
  132. package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +5 -8
  133. package/esm2020/footer-bar/footer-bar.module.mjs +5 -5
  134. package/esm2020/form-field/form-field-error.directive.mjs +4 -4
  135. package/esm2020/form-field/form-field-help-text.directive.mjs +3 -3
  136. package/esm2020/form-field/form-field-label-tpl.directive.mjs +3 -3
  137. package/esm2020/form-field/form-field-required-indicator.component.mjs +4 -4
  138. package/esm2020/form-field/form-field.component.mjs +5 -5
  139. package/esm2020/form-field/form-field.module.mjs +4 -4
  140. package/esm2020/form-field/input.directive.mjs +10 -9
  141. package/esm2020/form-field/testing/form-field-required-indicator.harness.mjs +1 -1
  142. package/esm2020/form-field/testing/index.mjs +1 -1
  143. package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +5 -7
  144. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +4 -4
  145. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +3 -3
  146. package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +8 -8
  147. package/esm2020/form-field-error/form-field-error.module.mjs +4 -4
  148. package/esm2020/framework/base-layout/base-layout.component.mjs +5 -4
  149. package/esm2020/framework/base-layout/base-layout.module.mjs +5 -5
  150. package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +3 -3
  151. package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +3 -3
  152. package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +3 -3
  153. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +3 -3
  154. package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +3 -3
  155. package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +3 -3
  156. package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +3 -3
  157. package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +5 -7
  158. package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +4 -5
  159. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +7 -7
  160. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +6 -5
  161. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +4 -4
  162. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +7 -5
  163. package/esm2020/framework/dashboard/dashboard.component.mjs +5 -5
  164. package/esm2020/framework/dashboard/dashboard.module.mjs +4 -4
  165. package/esm2020/framework/dynamic-router/dynamic-route-def.mjs +1 -1
  166. package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +5 -5
  167. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-route-animations.mjs +1 -1
  168. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +5 -6
  169. package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +5 -6
  170. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +3 -3
  171. package/esm2020/framework/schema-form/schema-form-framework.mjs +3 -3
  172. package/esm2020/framework/schema-form/schema-form.module.mjs +4 -4
  173. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +3 -3
  174. package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +4 -4
  175. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +3 -3
  176. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +3 -3
  177. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +3 -3
  178. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +3 -3
  179. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +5 -4
  180. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +5 -5
  181. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +5 -6
  182. package/esm2020/framework/side-nav/side-nav-utils.mjs +2 -1
  183. package/esm2020/framework/side-nav/side-nav.component.mjs +6 -7
  184. package/esm2020/framework/side-nav/side-nav.module.mjs +4 -4
  185. package/esm2020/framework/side-nav/side-nav.service.mjs +3 -3
  186. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +3 -3
  187. package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +3 -3
  188. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +4 -6
  189. package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +3 -3
  190. package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +5 -7
  191. package/esm2020/framework/top-bar/top-bar.component.mjs +4 -6
  192. package/esm2020/framework/top-bar/top-bar.module.mjs +4 -4
  193. package/esm2020/google-maps/google-maps/google-maps.component.mjs +53 -32
  194. package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +3 -3
  195. package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +3 -3
  196. package/esm2020/google-maps/google-maps-contextmenu.mjs +9 -8
  197. package/esm2020/google-maps/google-maps-controls.service.mjs +3 -3
  198. package/esm2020/google-maps/google-maps-feature-helpers.mjs +13 -1
  199. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +9 -10
  200. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +9 -9
  201. package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +6 -6
  202. package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +6 -6
  203. package/esm2020/google-maps/google-maps.module.mjs +8 -6
  204. package/esm2020/google-maps/google-maps.service.mjs +103 -32
  205. package/esm2020/google-maps/map-control.component.mjs +3 -3
  206. package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +4 -4
  207. package/esm2020/google-maps/map-value-manager.service.mjs +3 -3
  208. package/esm2020/graphql/datatable/datatable-graphql-query-ref.mjs +1 -27
  209. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +4 -4
  210. package/esm2020/graphql/datatable/datatable-helpers.mjs +2 -2
  211. package/esm2020/graphql/datatable/map-filter-states.mjs +2 -1
  212. package/esm2020/graphql/utils/inline-variables.mjs +2 -1
  213. package/esm2020/graphql/utils/parse-hints.mjs +3 -3
  214. package/esm2020/graphql/utils/to-gql.mjs +3 -3
  215. package/esm2020/icon/icon/icon.component.mjs +5 -5
  216. package/esm2020/icon/icon-btn/icon-btn.component.mjs +4 -5
  217. package/esm2020/icon/icon-notification/icon-notification.component.mjs +3 -3
  218. package/esm2020/icon/icon.module.mjs +4 -4
  219. package/esm2020/icon/utils/get-known-icon.mjs +71 -71
  220. package/esm2020/layout/breakpoint-aliases.mjs +1 -1
  221. package/esm2020/layout/layout.module.mjs +4 -4
  222. package/esm2020/layout/layout.service.mjs +3 -3
  223. package/esm2020/layout/observe-media-query.mjs +1 -1
  224. package/esm2020/loading/loading/loading.component.mjs +8 -9
  225. package/esm2020/loading/loading-overlay.service.mjs +3 -3
  226. package/esm2020/loading/loading.module.mjs +4 -4
  227. package/esm2020/menu/menu-divider.component.mjs +3 -3
  228. package/esm2020/menu/menu-footer/menu-footer.component.mjs +3 -3
  229. package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +4 -4
  230. package/esm2020/menu/menu-header/menu-header.component.mjs +3 -3
  231. package/esm2020/menu/menu-item.component.mjs +44 -17
  232. package/esm2020/menu/menu-toggle.directive.mjs +203 -44
  233. package/esm2020/menu/menu.component.mjs +39 -16
  234. package/esm2020/menu/menu.module.mjs +4 -4
  235. package/esm2020/modal/directives/modal-close.directive.mjs +3 -3
  236. package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +3 -3
  237. package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +3 -3
  238. package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +3 -3
  239. package/esm2020/modal/directives/modal-title.directive.mjs +3 -3
  240. package/esm2020/modal/directives/modal.directive.mjs +5 -5
  241. package/esm2020/modal/modal/modal.component.mjs +6 -7
  242. package/esm2020/modal/modal-body/modal-body.component.mjs +5 -7
  243. package/esm2020/modal/modal-config.mjs +1 -1
  244. package/esm2020/modal/modal-container/modal-container.component.mjs +4 -4
  245. package/esm2020/modal/modal-footer/modal-footer.component.mjs +5 -7
  246. package/esm2020/modal/modal-header/modal-header.component.mjs +5 -7
  247. package/esm2020/modal/modal-ref.mjs +1 -1
  248. package/esm2020/modal/modal.module.mjs +4 -4
  249. package/esm2020/modal/modal.service.mjs +26 -23
  250. package/esm2020/modal/route-modal/route-modal.component.mjs +4 -5
  251. package/esm2020/popover/popover/popover.component.mjs +3 -3
  252. package/esm2020/popover/popover.directive.mjs +4 -4
  253. package/esm2020/popover/popover.module.mjs +5 -5
  254. package/esm2020/progress/progress-circle/progress-circle.component.mjs +10 -10
  255. package/esm2020/progress/progress.module.mjs +4 -4
  256. package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +4 -5
  257. package/esm2020/scrollbar/overlay-scrollbars.service.mjs +4 -4
  258. package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
  259. package/esm2020/services/asset-loader.service.mjs +5 -6
  260. package/esm2020/services/font-loader.service.mjs +5 -6
  261. package/esm2020/services/router-helpers.service.mjs +3 -3
  262. package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +3 -3
  263. package/esm2020/shared/directives/auto-focus.directive.mjs +3 -3
  264. package/esm2020/shared/directives/click-outside.directive.mjs +3 -3
  265. package/esm2020/shared/directives/disable-control.directive.mjs +3 -3
  266. package/esm2020/shared/directives/elem-resized.directive.mjs +5 -5
  267. package/esm2020/shared/directives/hover-class-toggle.directive.mjs +4 -4
  268. package/esm2020/shared/directives/hover-class.directive.mjs +3 -3
  269. package/esm2020/shared/directives/ng-select-extra.directive.mjs +7 -7
  270. package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +5 -5
  271. package/esm2020/shared/pipes/mask-chars.pipe.mjs +3 -3
  272. package/esm2020/shared/pipes/truncate.pipe.mjs +3 -3
  273. package/esm2020/shared/shared.module.mjs +4 -4
  274. package/esm2020/storage/local-storage.service.mjs +8 -8
  275. package/esm2020/storage/localstorage-memory.mjs +4 -4
  276. package/esm2020/story-helpers/arg-type-helpers.mjs +1 -1
  277. package/esm2020/story-helpers/initial-route.service.mjs +3 -3
  278. package/esm2020/story-helpers/on-story-bootstrapped-trigger.mjs +2 -1
  279. package/esm2020/story-helpers/public-api.mjs +2 -2
  280. package/esm2020/story-helpers/story-empty-with-route.component.mjs +3 -3
  281. package/esm2020/story-helpers/story-empty.component.mjs +3 -3
  282. package/esm2020/story-helpers/story-helper-components.module.mjs +4 -4
  283. package/esm2020/story-helpers/story-initial-route.mjs +4 -4
  284. package/esm2020/story-helpers/story-modal-container.component.mjs +4 -4
  285. package/esm2020/story-helpers/story-toastr.service.mjs +3 -3
  286. package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +5 -5
  287. package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +5 -4
  288. package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +5 -7
  289. package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +5 -6
  290. package/esm2020/tabbed/tabbed.component.mjs +4 -4
  291. package/esm2020/tabbed/tabbed.module.mjs +4 -4
  292. package/esm2020/tabbed/tabbed.service.mjs +5 -5
  293. package/esm2020/table/table/table.component.mjs +5 -6
  294. package/esm2020/table/table.module.mjs +4 -4
  295. package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +5 -5
  296. package/esm2020/table-cell-type/table-cell-type-export-props.mjs +1 -1
  297. package/esm2020/table-cell-type/table-cell-type-models.mjs +1 -1
  298. package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +5 -6
  299. package/esm2020/table-cell-type/table-cell-type.module.mjs +4 -4
  300. package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +12 -12
  301. package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +8 -12
  302. package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +14 -14
  303. package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +10 -10
  304. package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +14 -14
  305. package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +6 -7
  306. package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +11 -10
  307. package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +7 -8
  308. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +11 -8
  309. package/esm2020/table-cell-types/table-cell-types.module.mjs +4 -4
  310. package/esm2020/tel-input/intl-tel-input.mjs +2 -2
  311. package/esm2020/tel-input/phone-number.pipe.mjs +3 -3
  312. package/esm2020/tel-input/tel-input/tel-input.component.mjs +5 -6
  313. package/esm2020/tel-input/tel-input.directive.mjs +4 -4
  314. package/esm2020/tel-input/tel-input.module.mjs +4 -4
  315. package/esm2020/tel-input/utils/add-country-code.mjs +4 -4
  316. package/esm2020/tel-input/utils/process-country-codes.mjs +4 -7
  317. package/esm2020/testing/story-expect.mjs +2 -1
  318. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +5 -6
  319. package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +4 -5
  320. package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +12 -13
  321. package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +3 -3
  322. package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +3 -3
  323. package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +3 -3
  324. package/esm2020/tiled-select/testing/index.mjs +1 -1
  325. package/esm2020/tiled-select/tiled-select.module.mjs +4 -4
  326. package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +5 -8
  327. package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +3 -3
  328. package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +3 -3
  329. package/esm2020/toggle-edit/toggle-edit.component.mjs +7 -7
  330. package/esm2020/toggle-edit/toggle-edit.module.mjs +4 -4
  331. package/esm2020/toggle-group/toggle-group-option.directive.mjs +3 -3
  332. package/esm2020/toggle-group/toggle-group.directive.mjs +6 -6
  333. package/esm2020/toggle-group/toggle-group.module.mjs +4 -4
  334. package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +5 -5
  335. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +5 -8
  336. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +5 -4
  337. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +4 -4
  338. package/esm2020/utils/array-move.mjs +1 -1
  339. package/esm2020/utils/cdk/get-closest-widget-cdk-drag.mjs +3 -3
  340. package/esm2020/utils/file-utils.mjs +2 -2
  341. package/esm2020/utils/form/get-control-path.mjs +6 -5
  342. package/esm2020/utils/geo-json/close-polygons.mjs +38 -0
  343. package/esm2020/utils/geo-json/geo-json-to-area.mjs +3 -3
  344. package/esm2020/utils/geo-json/is-only-geometry-types.validator.mjs +1 -1
  345. package/esm2020/utils/geo-json/min-max-points.validator.mjs +5 -5
  346. package/esm2020/utils/geo-json/read-geo-file.mjs +3 -2
  347. package/esm2020/utils/has-property.mjs +2 -2
  348. package/esm2020/utils/load-style-sheet.mjs +2 -2
  349. package/esm2020/utils/load-style.mjs +2 -2
  350. package/esm2020/utils/obj-utils.mjs +2 -2
  351. package/esm2020/utils/polling-ticker.mjs +2 -2
  352. package/esm2020/utils/public-api.mjs +2 -1
  353. package/esm2020/utils/router/operators/activated-routes-with-data-property.mjs +2 -2
  354. package/esm2020/utils/router/route-snapshot-path-full.mjs +2 -2
  355. package/esm2020/utils/router/route-snapshot-path-relative.mjs +2 -2
  356. package/esm2020/utils/router/will-have-data-prop.mjs +3 -3
  357. package/esm2020/utils/subscriber-count.mjs +2 -1
  358. package/esm2020/utils/toggle-attribute.mjs +6 -5
  359. package/esm2020/utils/wait-on-condition-async.mjs +5 -5
  360. package/esm2020/vertical-list-filter/public-api.mjs +3 -0
  361. package/esm2020/vertical-list-filter/testing/index.mjs +2 -0
  362. package/esm2020/vertical-list-filter/testing/vertical-list-filter.harness.mjs +28 -0
  363. package/esm2020/vertical-list-filter/theseam-ui-common-vertical-list-filter.mjs +5 -0
  364. package/esm2020/vertical-list-filter/vertical-list-filter.component.mjs +52 -0
  365. package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +4 -4
  366. package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +4 -4
  367. package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +5 -4
  368. package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +4 -4
  369. package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +5 -4
  370. package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +4 -4
  371. package/esm2020/widget/directives/widget-drag-handle.directive.mjs +7 -7
  372. package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +3 -3
  373. package/esm2020/widget/directives/widget-title-tpl.directive.mjs +3 -3
  374. package/esm2020/widget/widget/widget.component.mjs +56 -35
  375. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +5 -8
  376. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +4 -4
  377. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +5 -8
  378. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +4 -4
  379. package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +3 -3
  380. package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +4 -4
  381. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +6 -7
  382. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +4 -4
  383. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +5 -7
  384. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +4 -4
  385. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +5 -8
  386. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +4 -4
  387. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +5 -5
  388. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +4 -4
  389. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +3 -3
  390. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +16 -19
  391. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +5 -7
  392. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +4 -4
  393. package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +5 -5
  394. package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +4 -4
  395. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +6 -9
  396. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +5 -6
  397. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +5 -8
  398. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +5 -5
  399. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +9 -8
  400. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +10 -10
  401. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +5 -8
  402. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +4 -4
  403. package/esm2020/widget/widget-footer/widget-footer.component.mjs +5 -7
  404. package/esm2020/widget/widget-registry.service.mjs +6 -5
  405. package/esm2020/widget/widget.module.mjs +7 -7
  406. package/fesm2015/theseam-ui-common-asset-reader.mjs +13 -11
  407. package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
  408. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +13 -14
  409. package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  410. package/fesm2015/theseam-ui-common-buttons.mjs +31 -27
  411. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  412. package/fesm2015/theseam-ui-common-card.mjs +23 -31
  413. package/fesm2015/theseam-ui-common-card.mjs.map +1 -1
  414. package/fesm2015/theseam-ui-common-carousel.mjs +265 -0
  415. package/fesm2015/theseam-ui-common-carousel.mjs.map +1 -0
  416. package/fesm2015/theseam-ui-common-checkbox.mjs +8 -9
  417. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  418. package/fesm2015/theseam-ui-common-confirm-dialog.mjs +15 -15
  419. package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  420. package/fesm2015/theseam-ui-common-core.mjs +10 -8
  421. package/fesm2015/theseam-ui-common-core.mjs.map +1 -1
  422. package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
  423. package/fesm2015/theseam-ui-common-data-filters.mjs +23 -20
  424. package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
  425. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +34 -38
  426. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  427. package/fesm2015/theseam-ui-common-datatable.mjs +115 -123
  428. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  429. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +12 -12
  430. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  431. package/fesm2015/theseam-ui-common-dynamic.mjs +36 -26
  432. package/fesm2015/theseam-ui-common-dynamic.mjs.map +1 -1
  433. package/fesm2015/theseam-ui-common-footer-bar.mjs +8 -11
  434. package/fesm2015/theseam-ui-common-footer-bar.mjs.map +1 -1
  435. package/fesm2015/theseam-ui-common-form-field-error.mjs +21 -23
  436. package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
  437. package/fesm2015/theseam-ui-common-form-field.mjs +29 -28
  438. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  439. package/fesm2015/theseam-ui-common-framework.mjs +153 -160
  440. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  441. package/fesm2015/theseam-ui-common-google-maps.mjs +221 -113
  442. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  443. package/fesm2015/theseam-ui-common-graphql.mjs +10 -34
  444. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  445. package/fesm2015/theseam-ui-common-icon.mjs +84 -85
  446. package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
  447. package/fesm2015/theseam-ui-common-layout.mjs +7 -7
  448. package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
  449. package/fesm2015/theseam-ui-common-loading.mjs +14 -15
  450. package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
  451. package/fesm2015/theseam-ui-common-menu.mjs +460 -247
  452. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  453. package/fesm2015/theseam-ui-common-modal.mjs +71 -76
  454. package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
  455. package/fesm2015/theseam-ui-common-popover.mjs +10 -10
  456. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  457. package/fesm2015/theseam-ui-common-progress.mjs +13 -13
  458. package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
  459. package/fesm2015/theseam-ui-common-scrollbar.mjs +10 -11
  460. package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
  461. package/fesm2015/theseam-ui-common-services.mjs +11 -13
  462. package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
  463. package/fesm2015/theseam-ui-common-shared.mjs +42 -42
  464. package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
  465. package/fesm2015/theseam-ui-common-storage.mjs +10 -10
  466. package/fesm2015/theseam-ui-common-storage.mjs.map +1 -1
  467. package/fesm2015/theseam-ui-common-story-helpers.mjs +25 -100
  468. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  469. package/fesm2015/theseam-ui-common-tabbed.mjs +27 -29
  470. package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
  471. package/fesm2015/theseam-ui-common-table-cell-type.mjs +12 -13
  472. package/fesm2015/theseam-ui-common-table-cell-type.mjs.map +1 -1
  473. package/fesm2015/theseam-ui-common-table-cell-types.mjs +87 -89
  474. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  475. package/fesm2015/theseam-ui-common-table.mjs +8 -9
  476. package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
  477. package/fesm2015/theseam-ui-common-tel-input.mjs +21 -25
  478. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  479. package/fesm2015/theseam-ui-common-testing.mjs.map +1 -1
  480. package/fesm2015/theseam-ui-common-tiled-select.mjs +31 -34
  481. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  482. package/fesm2015/theseam-ui-common-toggle-edit.mjs +20 -23
  483. package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
  484. package/fesm2015/theseam-ui-common-toggle-group.mjs +12 -12
  485. package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
  486. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +16 -18
  487. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  488. package/fesm2015/theseam-ui-common-utils.mjs +75 -33
  489. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  490. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs +96 -0
  491. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs.map +1 -0
  492. package/fesm2015/theseam-ui-common-viewers.mjs +22 -20
  493. package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
  494. package/fesm2015/theseam-ui-common-widget.mjs +211 -217
  495. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  496. package/fesm2020/theseam-ui-common-asset-reader.mjs +13 -11
  497. package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
  498. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +13 -14
  499. package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  500. package/fesm2020/theseam-ui-common-buttons.mjs +31 -27
  501. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  502. package/fesm2020/theseam-ui-common-card.mjs +23 -31
  503. package/fesm2020/theseam-ui-common-card.mjs.map +1 -1
  504. package/fesm2020/theseam-ui-common-carousel.mjs +265 -0
  505. package/fesm2020/theseam-ui-common-carousel.mjs.map +1 -0
  506. package/fesm2020/theseam-ui-common-checkbox.mjs +8 -9
  507. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  508. package/fesm2020/theseam-ui-common-confirm-dialog.mjs +15 -15
  509. package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  510. package/fesm2020/theseam-ui-common-core.mjs +10 -8
  511. package/fesm2020/theseam-ui-common-core.mjs.map +1 -1
  512. package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
  513. package/fesm2020/theseam-ui-common-data-filters.mjs +23 -20
  514. package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
  515. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +34 -38
  516. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  517. package/fesm2020/theseam-ui-common-datatable.mjs +115 -123
  518. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  519. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +12 -12
  520. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  521. package/fesm2020/theseam-ui-common-dynamic.mjs +36 -26
  522. package/fesm2020/theseam-ui-common-dynamic.mjs.map +1 -1
  523. package/fesm2020/theseam-ui-common-footer-bar.mjs +8 -11
  524. package/fesm2020/theseam-ui-common-footer-bar.mjs.map +1 -1
  525. package/fesm2020/theseam-ui-common-form-field-error.mjs +21 -23
  526. package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
  527. package/fesm2020/theseam-ui-common-form-field.mjs +29 -28
  528. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  529. package/fesm2020/theseam-ui-common-framework.mjs +153 -160
  530. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  531. package/fesm2020/theseam-ui-common-google-maps.mjs +223 -117
  532. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  533. package/fesm2020/theseam-ui-common-graphql.mjs +10 -34
  534. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  535. package/fesm2020/theseam-ui-common-icon.mjs +84 -85
  536. package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
  537. package/fesm2020/theseam-ui-common-layout.mjs +16 -8
  538. package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
  539. package/fesm2020/theseam-ui-common-loading.mjs +14 -15
  540. package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
  541. package/fesm2020/theseam-ui-common-menu.mjs +450 -244
  542. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  543. package/fesm2020/theseam-ui-common-modal.mjs +71 -76
  544. package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
  545. package/fesm2020/theseam-ui-common-models.mjs +2 -1
  546. package/fesm2020/theseam-ui-common-models.mjs.map +1 -1
  547. package/fesm2020/theseam-ui-common-popover.mjs +10 -10
  548. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  549. package/fesm2020/theseam-ui-common-progress.mjs +13 -13
  550. package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
  551. package/fesm2020/theseam-ui-common-scrollbar.mjs +10 -11
  552. package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
  553. package/fesm2020/theseam-ui-common-services.mjs +11 -13
  554. package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
  555. package/fesm2020/theseam-ui-common-shared.mjs +42 -42
  556. package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
  557. package/fesm2020/theseam-ui-common-storage.mjs +10 -10
  558. package/fesm2020/theseam-ui-common-storage.mjs.map +1 -1
  559. package/fesm2020/theseam-ui-common-story-helpers.mjs +25 -96
  560. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  561. package/fesm2020/theseam-ui-common-tabbed.mjs +27 -29
  562. package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
  563. package/fesm2020/theseam-ui-common-table-cell-type.mjs +12 -13
  564. package/fesm2020/theseam-ui-common-table-cell-type.mjs.map +1 -1
  565. package/fesm2020/theseam-ui-common-table-cell-types.mjs +87 -89
  566. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  567. package/fesm2020/theseam-ui-common-table.mjs +8 -9
  568. package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
  569. package/fesm2020/theseam-ui-common-tel-input.mjs +21 -25
  570. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  571. package/fesm2020/theseam-ui-common-testing.mjs +1 -0
  572. package/fesm2020/theseam-ui-common-testing.mjs.map +1 -1
  573. package/fesm2020/theseam-ui-common-tiled-select.mjs +31 -34
  574. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  575. package/fesm2020/theseam-ui-common-toggle-edit.mjs +20 -23
  576. package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
  577. package/fesm2020/theseam-ui-common-toggle-group.mjs +12 -12
  578. package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
  579. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +16 -18
  580. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  581. package/fesm2020/theseam-ui-common-utils.mjs +75 -33
  582. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  583. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs +87 -0
  584. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs.map +1 -0
  585. package/fesm2020/theseam-ui-common-viewers.mjs +22 -20
  586. package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
  587. package/fesm2020/theseam-ui-common-widget.mjs +211 -217
  588. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  589. package/footer-bar/footer-bar/footer-bar.component.d.ts +1 -4
  590. package/form-field-error/form-field-error/form-field-error.component.d.ts +1 -4
  591. package/form-field-error/form-field-error-list/form-field-error-list.component.d.ts +2 -3
  592. package/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.d.ts +2 -4
  593. package/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.d.ts +2 -3
  594. package/framework/dashboard/dashboard.component.d.ts +0 -1
  595. package/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.d.ts +2 -3
  596. package/framework/dynamic-router/resolvers/hierarchy-level.resolver.d.ts +0 -1
  597. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +2 -4
  598. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +3 -5
  599. package/framework/top-bar/top-bar-title/top-bar-title.component.d.ts +1 -4
  600. package/framework/top-bar/top-bar.component.d.ts +2 -4
  601. package/google-maps/google-maps/google-maps.component.d.ts +11 -7
  602. package/google-maps/google-maps-feature-helpers.d.ts +3 -0
  603. package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.d.ts +2 -3
  604. package/google-maps/google-maps.module.d.ts +1 -1
  605. package/google-maps/google-maps.service.d.ts +7 -0
  606. package/graphql/datatable/datatable-graphql-query-ref.d.ts +0 -1
  607. package/icon/icon-btn/icon-btn.component.d.ts +2 -3
  608. package/loading/loading/loading.component.d.ts +1 -4
  609. package/menu/menu-item.component.d.ts +20 -10
  610. package/menu/menu-toggle.directive.d.ts +34 -11
  611. package/menu/menu.component.d.ts +16 -2
  612. package/modal/modal/modal.component.d.ts +3 -4
  613. package/modal/modal-body/modal-body.component.d.ts +1 -4
  614. package/modal/modal-footer/modal-footer.component.d.ts +1 -4
  615. package/modal/modal-header/modal-header.component.d.ts +1 -4
  616. package/modal/route-modal/route-modal.component.d.ts +2 -3
  617. package/package.json +17 -1
  618. package/progress/progress-circle/progress-circle.component.d.ts +0 -1
  619. package/scrollbar/overlay-scrollbar.directive.d.ts +2 -3
  620. package/services/asset-loader.service.d.ts +0 -1
  621. package/services/font-loader.service.d.ts +0 -1
  622. package/story-helpers/public-api.d.ts +0 -1
  623. package/tabbed/directives/tabbed-tab-content.directive.d.ts +0 -1
  624. package/tabbed/tabbed-content/tabbed-content.component.d.ts +1 -4
  625. package/tabbed/tabbed-item/tabbed-item.component.d.ts +2 -4
  626. package/tabbed/tabbed.service.d.ts +0 -1
  627. package/table/table/table.component.d.ts +2 -3
  628. package/table-cell-type/table-cell-type-models.d.ts +1 -1
  629. package/table-cell-type/table-cell-type-selector.component.d.ts +3 -4
  630. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.d.ts +2 -3
  631. package/table-cell-types/table-cell-type-date/table-cell-type-date.component.d.ts +2 -3
  632. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.d.ts +2 -3
  633. package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +2 -3
  634. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.d.ts +2 -3
  635. package/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.d.ts +2 -3
  636. package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.d.ts +2 -3
  637. package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.d.ts +2 -3
  638. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +2 -3
  639. package/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.d.ts +1 -4
  640. package/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.d.ts +1 -4
  641. package/toggle-group/toggle-group.directive.d.ts +0 -1
  642. package/unsaved-changes-dialog/unsaved-changes-dialog.component.d.ts +1 -4
  643. package/utils/geo-json/close-polygons.d.ts +9 -0
  644. package/utils/obj-utils.d.ts +2 -2
  645. package/utils/public-api.d.ts +1 -0
  646. package/vertical-list-filter/index.d.ts +5 -0
  647. package/vertical-list-filter/public-api.d.ts +2 -0
  648. package/vertical-list-filter/testing/index.d.ts +1 -0
  649. package/vertical-list-filter/testing/vertical-list-filter.harness.d.ts +9 -0
  650. package/vertical-list-filter/vertical-list-filter.component.d.ts +17 -0
  651. package/widget/widget/widget.component.d.ts +10 -11
  652. package/widget/widget/widget.component.scss +12 -1
  653. package/widget/widget-content-components/widget-button-group/widget-button-group.component.d.ts +1 -4
  654. package/widget/widget-content-components/widget-content-header/widget-content-header.component.d.ts +1 -4
  655. package/widget/widget-content-components/widget-empty-label/widget-empty-label.component.d.ts +2 -3
  656. package/widget/widget-content-components/widget-footer-link/widget-footer-link.component.d.ts +1 -4
  657. package/widget/widget-content-components/widget-footer-text/widget-footer-text.component.d.ts +1 -4
  658. package/widget/widget-content-components/widget-header-badge/widget-header-badge.component.d.ts +2 -3
  659. package/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.d.ts +4 -7
  660. package/widget/widget-content-components/widget-list-group/widget-list-group.component.d.ts +1 -4
  661. package/widget/widget-content-components/widget-table/widget-table.component.d.ts +0 -1
  662. package/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.d.ts +1 -4
  663. package/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.d.ts +2 -3
  664. package/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.d.ts +1 -4
  665. package/widget/widget-content-components/widget-tile-list/widget-tile-list.component.d.ts +1 -4
  666. package/widget/widget-footer/widget-footer.component.d.ts +1 -4
  667. package/esm2020/story-helpers/args-to-tpl.mjs +0 -72
  668. package/story-helpers/args-to-tpl.d.ts +0 -24
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-datatable.mjs","sources":["../../../projects/ui-common/datatable/datatable-action-menu-item/datatable-action-menu-item.component.ts","../../../projects/ui-common/datatable/datatable-action-menu/datatable-action-menu.component.ts","../../../projects/ui-common/datatable/datatable-action-menu/datatable-action-menu.component.html","../../../projects/ui-common/datatable/directives/datatable-cell-tpl.directive.ts","../../../projects/ui-common/datatable/services/datatable-column-changes.service.ts","../../../projects/ui-common/datatable/datatable-column/datatable-column.component.ts","../../../projects/ui-common/datatable/datatable-column/datatable-column.component.html","../../../projects/ui-common/datatable/datatable-footer/datatable-footer-tpl.directive.ts","../../../projects/ui-common/datatable/datatable-footer/datatable-footer.directive.ts","../../../projects/ui-common/datatable/directives/datatable-filter.directive.ts","../../../projects/ui-common/datatable/datatable-menu-bar/datatable-menu-bar.component.ts","../../../projects/ui-common/datatable/datatable-menu-bar/datatable-menu-bar.component.html","../../../projects/ui-common/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.ts","../../../projects/ui-common/datatable/datatable-row-detail/datatable-row-detail.directive.ts","../../../projects/ui-common/datatable/directives/datatable-row-action-item.directive.ts","../../../projects/ui-common/datatable/models/datatable-data-source.ts","../../../projects/ui-common/datatable/utils/create-action-menu-column.ts","../../../projects/ui-common/datatable/utils/create-checkbox-column.ts","../../../projects/ui-common/datatable/utils/get-column-prop.ts","../../../projects/ui-common/datatable/utils/set-column-defaults.ts","../../../projects/ui-common/datatable/utils/translate-templates.ts","../../../projects/ui-common/datatable/services/columns-manager.service.ts","../../../projects/ui-common/datatable/tokens/datatable-accessor.ts","../../../projects/ui-common/datatable/utils/remove-unused-diffs.ts","../../../projects/ui-common/datatable/models/columns-alteration.ts","../../../projects/ui-common/datatable/models/columns-alterations/hide-column.columns-alteration.ts","../../../projects/ui-common/datatable/models/columns-alterations/sort.columns-alteration.ts","../../../projects/ui-common/datatable/models/columns-alterations/width.columns-alteration.ts","../../../projects/ui-common/datatable/services/columns-alterations-manager.service.ts","../../../projects/ui-common/datatable/models/internal-column-props.ts","../../../projects/ui-common/datatable/models/columns-alterations/order.columns-alteration.ts","../../../projects/ui-common/datatable/utils/map-columns-alterations-states.ts","../../../projects/ui-common/datatable/models/preferences.ts","../../../projects/ui-common/datatable/tokens/datatable-preferences-accessor.ts","../../../projects/ui-common/datatable/services/datatable-preferences.service.ts","../../../projects/ui-common/datatable/datatable/datatable.component.ts","../../../projects/ui-common/datatable/datatable/datatable.component.html","../../../projects/ui-common/datatable/datatable-column-preferences/datatable-column-preferences.component.ts","../../../projects/ui-common/datatable/datatable-column-preferences/datatable-column-preferences.component.html","../../../projects/ui-common/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.ts","../../../projects/ui-common/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.html","../../../projects/ui-common/datatable/datatable-export-button/datatable-export-button.component.ts","../../../projects/ui-common/datatable/datatable-export-button/datatable-export-button.component.html","../../../projects/ui-common/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.ts","../../../projects/ui-common/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.html","../../../projects/ui-common/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.ts","../../../projects/ui-common/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.html","../../../projects/ui-common/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.ts","../../../projects/ui-common/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.html","../../../projects/ui-common/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.ts","../../../projects/ui-common/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.html","../../../projects/ui-common/datatable/tokens/menubar-item-data.ts","../../../projects/ui-common/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.ts","../../../projects/ui-common/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.html","../../../projects/ui-common/datatable/directives/datatable-action-menu-item.directive.ts","../../../projects/ui-common/datatable/directives/datatable-action-menu-toggle.directive.ts","../../../projects/ui-common/datatable/models/datatable-gql-data-source.ts","../../../projects/ui-common/datatable/services/datatable-scrollbar-helper.service.ts","../../../projects/ui-common/datatable/utils/with-stored-column-info.ts","../../../projects/ui-common/datatable/datatable.module.ts","../../../projects/ui-common/datatable/theseam-ui-common-datatable.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core'\n\nimport { ThemeTypes } from '@theseam/ui-common/models'\n\n@Component({\n selector: 'seam-datatable-action-menu-item',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableActionMenuItemComponent {\n\n @Input() label: string | undefined | null\n\n // tslint:disable-next-line:no-input-rename\n @Input('attr.href') href: string | undefined | null\n @Input() target: string | undefined | null\n\n // Allow routerLink inputs on menu item\n @Input() queryParams: {[k: string]: any} | undefined | null\n @Input() fragment: string | undefined | null\n @Input() queryParamsHandling: any\n @Input() preserveFragment: boolean| undefined | null\n @Input() skipLocationChange: boolean| undefined | null\n @Input() replaceUrl: boolean| undefined | null\n @Input() state: {[k: string]: any} | undefined | null\n @Input() routerLink: string | any[] | undefined | null\n\n @Input() confirmDialog: { message?: string, alert?: string | { message: string, type: ThemeTypes } } | undefined | null\n\n @Input() disabled: boolean | undefined | null\n\n @Output() readonly click = new EventEmitter<any>()\n\n}\n","import { ConnectionPositionPair } from '@angular/cdk/overlay'\nimport { Component, ContentChildren, QueryList } from '@angular/core'\nimport { NavigationExtras, Router } from '@angular/router'\n\nimport { faEllipsisH } from '@fortawesome/free-solid-svg-icons'\n\nimport { SeamConfirmDialogService } from '@theseam/ui-common/confirm-dialog'\n\nimport { DatatableActionMenuItemComponent } from '../datatable-action-menu-item/datatable-action-menu-item.component'\n\n@Component({\n selector: 'seam-datatable-action-menu',\n templateUrl: './datatable-action-menu.component.html',\n styleUrls: ['./datatable-action-menu.component.scss']\n})\nexport class DatatableActionMenuComponent {\n\n faEllipsisH = faEllipsisH\n\n @ContentChildren(DatatableActionMenuItemComponent) items?: QueryList<DatatableActionMenuItemComponent>\n\n /** @ignore */\n _actionMenuPositions: ConnectionPositionPair[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n\n constructor(\n private _confirmDialog: SeamConfirmDialogService,\n private _router: Router\n ) { }\n\n activateItem(event: any, item: DatatableActionMenuItemComponent) {\n if (item.confirmDialog) {\n this._confirmDialog.open(item.confirmDialog.message, item.confirmDialog.alert)\n .afterClosed()\n .subscribe(v => {\n if (v === 'confirm') {\n item.click.emit(event)\n if (item.href) {\n const win = window.open(item.href, item.target || undefined)\n // TODO: Consider if always setting opener to null is to restrictive\n // if (win && item.target && item.target.toLowerCase() === '_blank') {\n // win.opener = null\n // }\n } else {\n const extras: NavigationExtras = {}\n if (item.queryParams) { extras.queryParams = item.queryParams }\n if (item.fragment) { extras.fragment = item.fragment }\n if (item.queryParamsHandling) { extras.queryParamsHandling = item.queryParamsHandling }\n if (item.preserveFragment) { extras.preserveFragment = item.preserveFragment }\n if (item.skipLocationChange) { extras.skipLocationChange = item.skipLocationChange }\n if (item.replaceUrl) { extras.replaceUrl = item.replaceUrl }\n if (item.state) { extras.state = item.state }\n\n const commands = Array.isArray(item.routerLink) ? item.routerLink : [item.routerLink]\n this._router.navigate(commands, extras)\n }\n }\n })\n } else {\n item.click.emit(event)\n }\n }\n\n}\n","<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 <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-container>\n</seam-menu>\n\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","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamDatatableCellTpl]'\n})\nexport class DatatableCellTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Injectable } from '@angular/core'\nimport { Observable, Subject } from 'rxjs'\n\n@Injectable()\nexport class DatatableColumnChangesService {\n\n private columnInputChanges = new Subject<undefined>()\n\n get columnInputChanges$(): Observable<undefined> {\n return this.columnInputChanges.asObservable()\n }\n\n onInputChange(): void {\n this.columnInputChanges.next(undefined)\n }\n\n}\n","import { Component, ContentChild, Input, OnChanges, OnInit, PipeTransform, SimpleChanges, TemplateRef } from '@angular/core'\n\nimport { ColumnChangesService, TableColumnProp } from '@marklb/ngx-datatable'\n\nimport { DatatableCellTplDirective } from '../directives/datatable-cell-tpl.directive'\nimport { DatatableColumnChangesService } from '../services/datatable-column-changes.service'\n\n// HACK: Union type prevents the not found warning\ntype _PipeTransform = PipeTransform | PipeTransform\n\n// TODO: The column component should implement `ITheSeamDatatableColumn`, since\n// providing some properties by input and some by template could be confusing.\n\n@Component({\n selector: 'seam-datatable-column',\n templateUrl: './datatable-column.component.html',\n styleUrls: ['./datatable-column.component.scss']\n})\nexport class DatatableColumnComponent implements OnInit, OnChanges {\n\n @Input() name?: string | null\n @Input() prop?: TableColumnProp | null\n\n @Input() flexGrow?: number | null\n @Input() minWidth?: number | null\n @Input() maxWidth?: number | null\n @Input() width?: number | null\n\n @Input() resizeable?: boolean | null\n @Input() sortable?: boolean | null\n @Input() draggable?: boolean | null\n\n @Input() canAutoResize?: boolean | null\n\n @Input() comparator?: ((valueA: any, valueB: any, rowA?: any, rowB?: any, sortDirection?: 'asc' | 'desc') => -1 | 0 | 1) | null\n\n @Input() headerTemplate?: TemplateRef<any> | null\n\n @Input() checkboxable?: boolean | null\n @Input() headerCheckboxable?: boolean | null\n\n @Input() headerClass?: string | ((data: any) => string|any) | null\n @Input() cellClass?: string | ((data: any) => string|any) | null\n\n @Input() frozenLeft?: boolean | null\n @Input() frozenRight?: boolean | null\n\n @Input() pipe?: _PipeTransform | null\n\n @Input() isTreeColumn?: boolean | null\n @Input() treeLevelIndent?: number | null\n\n @Input() summaryFunc?: ((cells: any[]) => any) | null\n @Input() summaryTemplate?: TemplateRef<any> | null\n\n @Input() hidden?: boolean | null\n\n private _isFirstChange = true\n\n @ContentChild(DatatableCellTplDirective, { static: true }) cellTplDirective?: DatatableCellTplDirective\n\n // tslint:disable-next-line: no-input-rename\n @Input('cellTemplate')\n _cellTemplateInput?: TemplateRef<any> | null\n\n @ContentChild(DatatableCellTplDirective, { read: TemplateRef, static: true })\n _cellTemplateQuery?: TemplateRef<any>\n\n get cellTemplate(): TemplateRef<any> | undefined | null {\n return this._cellTemplateInput || this._cellTemplateQuery\n }\n\n // @Input('headerTemplate')\n // _headerTemplateInput: TemplateRef<any>;\n\n // @ContentChild(DataTableColumnHeaderDirective, { read: TemplateRef, static: true })\n // _headerTemplateQuery: TemplateRef<any>;\n\n // get headerTemplate(): TemplateRef<any> {\n // return this._headerTemplateInput || this._headerTemplateQuery;\n // }\n\n // @Input('treeToggleTemplate')\n // _treeToggleTemplateInput: TemplateRef<any>;\n\n // @ContentChild(DataTableColumnCellTreeToggle, { read: TemplateRef, static: true })\n // _treeToggleTemplateQuery: TemplateRef<any>;\n\n // get treeToggleTemplate(): TemplateRef<any> {\n // return this._treeToggleTemplateInput || this._treeToggleTemplateQuery;\n // }\n\n constructor(\n private _columnChangesService: DatatableColumnChangesService\n ) {}\n\n ngOnInit() { }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this._isFirstChange) {\n this._isFirstChange = false\n } else {\n this._columnChangesService.onInputChange()\n }\n }\n\n public getCellDirective(): DatatableCellTplDirective | null {\n if (this.cellTplDirective) {\n return this.cellTplDirective\n }\n\n return null\n }\n\n}\n","<p>\n datatable-column works!\n</p>\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamDatatableFooterTpl]'\n})\nexport class DatatableFooterTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { ContentChild, Directive, Input, TemplateRef } from '@angular/core'\n\nimport { DatatableFooterTplDirective } from './datatable-footer-tpl.directive'\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: 'seam-datatable-footer'\n})\nexport class TheSeamDatatableFooterDirective {\n\n // tslint:disable-next-line: no-input-rename\n @Input('template')\n _templateInput: TemplateRef<any> | undefined | null\n\n @ContentChild(DatatableFooterTplDirective, { read: TemplateRef, static: true })\n _templateQuery: TemplateRef<any> | undefined | null\n\n get template(): TemplateRef<any> | undefined | null {\n return this._templateInput || this._templateQuery\n }\n\n}\n","import { Directive, Inject, Self } from '@angular/core'\n\nimport { IDataFilter, THESEAM_DATA_FILTER } from '@theseam/ui-common/data-filters'\n\n@Directive({\n selector: '[seamDatatableFilter]'\n})\nexport class DatatableFilterDirective {\n\n private _filter?: IDataFilter\n\n constructor(\n @Self() @Inject(THESEAM_DATA_FILTER) dataFilters: IDataFilter[]\n ) {\n if (dataFilters && dataFilters.length > 0) {\n this._filter = dataFilters[0]\n }\n }\n\n get filter() {\n return this._filter\n }\n\n}\n","import { AfterViewInit, Component, ContentChildren, EventEmitter, forwardRef, OnInit, QueryList } from '@angular/core'\n\nimport { IDataFilter, THESEAM_DATA_FILTER_CONTAINER } from '@theseam/ui-common/data-filters'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DatatableFilterDirective } from '../directives/datatable-filter.directive'\n\nexport const _THESEAM_DATA_FILTER_CONTAINER: any = {\n provide: THESEAM_DATA_FILTER_CONTAINER,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DatatableMenuBarComponent)\n}\n\n@Component({\n selector: 'seam-datatable-menu-bar',\n templateUrl: './datatable-menu-bar.component.html',\n styleUrls: ['./datatable-menu-bar.component.scss'],\n providers: [ _THESEAM_DATA_FILTER_CONTAINER ]\n})\nexport class DatatableMenuBarComponent implements OnInit, AfterViewInit {\n\n @ContentChildren(DatatableFilterDirective)\n get filterDirectives(): QueryList<DatatableFilterDirective> | undefined {\n return this._filterDirectives\n }\n set filterDirectives(value: QueryList<DatatableFilterDirective> | undefined) {\n this._filterDirectives = value\n this.filtersChanged.emit(this.filters())\n }\n private _filterDirectives: QueryList<DatatableFilterDirective> | undefined\n\n private _filtersArr: IDataFilter[] = []\n\n public readonly filtersChanged = new EventEmitter<IDataFilter[]>()\n\n constructor() { }\n\n ngOnInit() { }\n\n ngAfterViewInit() {\n // console.log('_filterDirectives', this._filterDirectives, this.filters())\n }\n\n public filters(): IDataFilter[] {\n const fDirectives = this._filterDirectives\n ? this._filterDirectives.map(f => f.filter).filter(notNullOrUndefined)\n : []\n\n const fArr = this._filtersArr\n .filter(f => fDirectives.findIndex(fd => fd.uid === f.uid) === -1)\n return [ ...fArr, ...fDirectives ]\n }\n\n public addFilter(dataFilter: IDataFilter): void {\n this._filtersArr.push(dataFilter)\n this.filtersChanged.emit(this.filters())\n }\n\n public removeFilter(dataFilter: IDataFilter): void {\n this._filtersArr = this._filtersArr.filter(f => f !== dataFilter)\n this.filtersChanged.emit(this.filters())\n }\n\n}\n","<div class=\"bg-light border rounded p-2\">\n <ng-content></ng-content>\n</div>\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamDatatableRowDetailTpl]'\n})\nexport class DatatableRowDetailTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { ContentChild, Directive, EventEmitter, Input, Output, TemplateRef } from '@angular/core'\n\nimport { DatatableRowDetailTplDirective } from './datatable-row-detail-tpl.directive'\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: 'seam-datatable-row-detail'\n})\nexport class TheSeamDatatableRowDetailDirective {\n\n /**\n * The detail row height is required especially\n * when virtual scroll is enabled.\n */\n @Input() rowHeight: number | ((row?: any, index?: number) => number) | undefined | null = 0\n\n // tslint:disable-next-line: no-input-rename\n @Input('template')\n _templateInput: TemplateRef<any> | undefined | null\n\n @ContentChild(DatatableRowDetailTplDirective, { read: TemplateRef, static: true })\n _templateQuery: TemplateRef<any> | undefined | null\n\n get template(): TemplateRef<any> | undefined | null {\n return this._templateInput || this._templateQuery\n }\n\n /**\n * Row detail row visbility was toggled.\n */\n // NOTE: This will trigger from the internal ngx-datatable toggle event.\n @Output() toggle: EventEmitter<any> = new EventEmitter()\n\n /**\n * Internal use for wrapper only.\n *\n * To avoid confusion with this directives output and the ngx-datatable\n * directive being wrapped, this directive emits `_toggle` stream to the\n * `ngx-datatable-row-detail` directive and emits it's `toggle` stream out to\n * this directives `toggle` stream.\n * @ignore\n */\n _toggle: EventEmitter<any> = new EventEmitter()\n\n /**\n * Toggle the expansion of the row\n */\n toggleExpandRow(row: any): void {\n this._toggle.emit({\n type: 'row',\n value: row\n })\n }\n\n /**\n * API method to expand all the rows.\n */\n expandAllRows(): void {\n this._toggle.emit({\n type: 'all',\n value: true\n })\n }\n\n /**\n * API method to collapse all the rows.\n */\n collapseAllRows(): void {\n this._toggle.emit({\n type: 'all',\n value: false\n })\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamDatatableRowActionItem]'\n})\nexport class DatatableRowActionItemDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { DataSource } from '@angular/cdk/collections'\nimport { BehaviorSubject, Observable, of } from 'rxjs'\nimport { map, startWith, switchMap } from 'rxjs/operators'\n\nimport { DataFilterState } from '@theseam/ui-common/data-filters'\n\nimport { TheSeamDatatableAccessor } from './datatable-accessor'\nimport { TheSeamPageInfo } from './page-info'\nimport { SortItem } from './sort-item'\n\nexport abstract class DatatableDataSource<TRow> extends DataSource<TRow> {\n\n private readonly _datatableSubject = new BehaviorSubject<TheSeamDatatableAccessor | undefined>(undefined)\n\n public readonly sorts$: Observable<SortItem[]>\n public readonly filterStates$: Observable<DataFilterState[]>\n public readonly page$: Observable<TheSeamPageInfo>\n\n constructor() {\n super()\n\n this.sorts$ = this._datatableSubject.pipe(\n switchMap(_datatable => {\n if (!_datatable) {\n return of([])\n }\n\n return _datatable.sort.pipe(\n map(v => v.sorts),\n startWith(_datatable.sorts)\n )\n })\n )\n\n this.filterStates$ = this._datatableSubject.pipe(\n switchMap(_datatable => {\n if (!_datatable) {\n return of([])\n }\n\n return _datatable.filterStates\n })\n )\n\n this.page$ = this._datatableSubject.pipe(\n switchMap(_datatable => {\n if (!_datatable) {\n return of({\n offset: 0,\n pageSize: 0,\n limit: undefined,\n count: 0\n })\n }\n\n return _datatable.page.pipe(\n startWith(_datatable.pageInfo)\n )\n })\n )\n }\n\n // connect(): Observable<readonly TRow[]> {\n // return this.\n // }\n\n // disconnect(): void {\n // throw new Error('Method not implemented.')\n // }\n\n public setDatatableAccessor(accessor: TheSeamDatatableAccessor): void {\n this._datatableSubject.next(accessor)\n }\n\n}\n","import { TheSeamDatatableColumn } from '../models/table-column'\n\nexport const ACTION_MENU_COLUMN_PROP = '$$__actionMenu__'\n\nexport function createActionMenuColumn(\n cellTemplate: any,\n headerTemplate: any\n): TheSeamDatatableColumn {\n return {\n prop: ACTION_MENU_COLUMN_PROP,\n name: '',\n width: 50,\n minWidth: 50,\n maxWidth: 50,\n resizeable: false,\n sortable: false,\n draggable: false,\n // TODO: Fix column auto sizing with fixed column and cell overlay before enabling.\n // frozenRight: true,\n cellTemplate,\n headerTemplate,\n }\n}\n","import { TheSeamDatatableColumn } from '../models/table-column'\n\nexport const CHECKBOX_COLUMN_PROP = '$$__checkbox__'\n\nexport function createCheckboxColumn(): TheSeamDatatableColumn {\n return {\n prop: CHECKBOX_COLUMN_PROP,\n name: '',\n width: 40,\n sortable: false,\n canAutoResize: false,\n draggable: false,\n resizeable: false,\n headerCheckboxable: true,\n checkboxable: true,\n }\n}\n","import { camelCase, TableColumn, TableColumnProp } from '@marklb/ngx-datatable'\n\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nexport function getColumnProp<T extends { prop?: TableColumnProp | null, name?: string | null }>(\n col: T\n): TableColumnProp | undefined {\n if (!notNullOrUndefined(col.prop) && col.name) {\n return camelCase(col.name)\n }\n\n return col.prop === null ? undefined : col.prop\n}\n","import { setColumnDefaults as _scd } from '@marklb/ngx-datatable'\n\nimport { TheSeamDatatableColumn } from '../models/table-column'\n\nexport function setColumnDefaults(columns: TheSeamDatatableColumn[]): void {\n for (const column of columns) {\n if (!column.hasOwnProperty('hidden')) {\n column.hidden = false\n }\n }\n _scd(columns)\n}\n","import { translateTemplates } from '@marklb/ngx-datatable'\n\nimport { DatatableColumnComponent } from '../datatable-column/datatable-column.component'\nimport { getColumnProp } from '../utils/get-column-prop'\n\n// TODO: Replace with a `translateTemplates` function that fits the\n// wrapper component better.\nexport function translateTemplateColumns(v: DatatableColumnComponent[]): DatatableColumnComponent[] {\n const cols = translateTemplates(v as any) as DatatableColumnComponent[]\n\n for (const col of cols) {\n col.prop = getColumnProp(col)\n }\n\n return cols\n}\n","import { Injectable, KeyValueChanges, KeyValueDiffer, KeyValueDiffers, TemplateRef } from '@angular/core'\nimport { BehaviorSubject, combineLatest, defer, EMPTY, Observable, of, Subject } from 'rxjs'\nimport { auditTime, map, shareReplay, startWith, switchMap } from 'rxjs/operators'\n\nimport {\n DataTableColumnCellTreeToggle,\n DataTableColumnDirective,\n DataTableColumnHeaderDirective,\n SelectionType,\n TableColumn,\n TableColumnProp,\n} from '@marklb/ngx-datatable'\n\nimport { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DatatableColumnComponent } from '../datatable-column/datatable-column.component'\nimport { DatatableRowActionItemDirective } from '../directives/datatable-row-action-item.directive'\nimport { TheSeamDatatableColumn } from '../models/table-column'\nimport { createActionMenuColumn } from '../utils/create-action-menu-column'\nimport { createCheckboxColumn } from '../utils/create-checkbox-column'\nimport { getColumnProp } from '../utils/get-column-prop'\nimport { setColumnDefaults } from '../utils/set-column-defaults'\nimport { translateTemplateColumns } from '../utils/translate-templates'\nimport { DatatableColumnChangesService } from './datatable-column-changes.service'\n\nenum ColumnsTypes {\n Input,\n Template,\n Result,\n}\n\nexport type InternalColumnsGetter = () => TableColumn[]\n\n@Injectable()\nexport class ColumnsManagerService {\n private readonly _updateColumns = new Subject<void>()\n\n private readonly _inputColumns = new BehaviorSubject<TheSeamDatatableColumn[]>([])\n private readonly _templateColumns = new BehaviorSubject<DatatableColumnComponent[]>([])\n\n private readonly _inpColDiffersMap = new Map<TableColumnProp, KeyValueDiffer<any, any>>()\n private readonly _tplColDiffersMap = new Map<TableColumnProp, KeyValueDiffer<any, any>>()\n private readonly _resultColDiffersMap = new Map<TableColumnProp, KeyValueDiffer<any, any>>()\n private _colPropsDiffer?: KeyValueDiffer<any, any>\n\n private _internalColumnsGetter?: InternalColumnsGetter\n\n private _selectionType: SelectionType | undefined\n private _rowActionItem: DatatableRowActionItemDirective | undefined\n private _actionMenuCellTpl: TemplateRef<DataTableColumnDirective> | undefined\n private _blankHeaderTpl: TemplateRef<DataTableColumnHeaderDirective> | undefined\n private _treeToggleTpl: TemplateRef<DataTableColumnCellTreeToggle> | undefined\n private _headerTpl: TemplateRef<DataTableColumnHeaderDirective> | undefined\n private _cellTypeSelectorTpl: TemplateRef<DataTableColumnDirective> | undefined\n\n // TODO: Consider making this a columns changed obervable, to make changes more predictable.\n public readonly columns$: Observable<TheSeamDatatableColumn[]>\n\n constructor(\n private readonly _differs: KeyValueDiffers,\n private readonly _columnChangesService: DatatableColumnChangesService,\n ) {\n const templateColumns$ = this._columnChangesService.columnInputChanges$.pipe(\n startWith(undefined),\n switchMap(() => {\n return this._templateColumns.asObservable().pipe(map(translateTemplateColumns))\n })\n )\n\n this.columns$ = defer(() => {\n let isFirst = true\n return combineLatest([\n this._inputColumns.asObservable(),\n templateColumns$,\n this._updateColumns.asObservable().pipe(auditTime(0), startWith(undefined))\n ]).pipe(\n switchMap(([ inputColumns, templateColumns ]) => {\n const cols = this._mergeColumns(inputColumns, templateColumns)\n\n const hasColumnsChanged = this._hasColumnsChanged(cols)\n\n // TODO: Look for columns added/removed and remove the removed columns\n // differs, not just changes to columns.\n const hasAddedOrRemovedColumns = this._hasAddedOrRemovedColumns(cols)\n\n // NOTE: Both checks need to be run, even though only one needs to be\n // true, because their differs need to be called.\n if (hasColumnsChanged || hasAddedOrRemovedColumns || isFirst) {\n isFirst = false\n return of(cols)\n }\n\n return EMPTY\n }),\n )\n }).pipe(\n shareReplay({ refCount: true, bufferSize: 1 })\n )\n }\n\n public setInputColumns(columns: TheSeamDatatableColumn[]): void {\n this._inputColumns.next(columns)\n }\n\n public setTemplateColumns(columns: DatatableColumnComponent[]): void {\n this._templateColumns.next(columns)\n }\n\n public setInternalColumnsGetter(getter: InternalColumnsGetter | null): void {\n this._internalColumnsGetter = getter || undefined\n this._updateColumns.next(undefined)\n }\n\n public setSelectionType(selectionType: SelectionType | undefined): void {\n const changed = this._selectionType !== selectionType\n this._selectionType = selectionType\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n public getSelectionType(): SelectionType | undefined {\n return this._selectionType\n }\n\n public setRowActionItem(rowActionItem: DatatableRowActionItemDirective | undefined): void {\n const changed = this._rowActionItem !== rowActionItem\n this._rowActionItem = rowActionItem\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n public setActionMenuCellTpl(actionMenuCellTpl: TemplateRef<DataTableColumnDirective> | undefined): void {\n const changed = this._actionMenuCellTpl !== actionMenuCellTpl\n this._actionMenuCellTpl = actionMenuCellTpl\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n public setBlankHeaderTpl(blankHeaderTpl: TemplateRef<DataTableColumnHeaderDirective> | undefined): void {\n const changed = this._blankHeaderTpl !== blankHeaderTpl\n this._blankHeaderTpl = blankHeaderTpl\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n public setTreeToggleTpl(treeToggleTpl: TemplateRef<DataTableColumnCellTreeToggle> | undefined): void {\n const changed = this._treeToggleTpl !== treeToggleTpl\n this._treeToggleTpl = treeToggleTpl\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n public setHeaderTpl(headerTpl: TemplateRef<DataTableColumnHeaderDirective> | undefined): void {\n const changed = this._headerTpl !== headerTpl\n this._headerTpl = headerTpl\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n public setCellTypeSelectorTpl(cellTypeSelectorTpl: TemplateRef<DataTableColumnDirective> | undefined): void {\n const changed = this._cellTypeSelectorTpl !== cellTypeSelectorTpl\n this._cellTypeSelectorTpl = cellTypeSelectorTpl\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n private _mergeColumns(\n inputColumns: TheSeamDatatableColumn[],\n templateColumns: DatatableColumnComponent[]\n ): TheSeamDatatableColumn[] {\n const cols: TheSeamDatatableColumn[] = []\n\n // Add the first column checkbox if 'checkbox' selection is enabled.\n if (this._shouldAddCheckboxColumn()) {\n cols.push(createCheckboxColumn())\n }\n\n // Column needs to be provided in the inputColumns, so iterate the\n // inputColumns.\n for (const inpCol of inputColumns) {\n const prop = getColumnProp(inpCol)\n if (!notNullOrUndefined(prop)) {\n throw Error(`Column may have 'prop' or 'name' defined.`)\n }\n\n const internalCol = this._getInternalColumn(prop)\n\n const inpColDif = this._getColDif(inpCol, ColumnsTypes.Input)\n if (notNullOrUndefined(inpColDif)) {\n this._updateColDif(inpColDif, internalCol, inpCol)\n }\n\n const tplCol = this._findColumnByProp(prop, templateColumns)\n if (tplCol !== undefined) {\n const tplColDif = this._getColDif(tplCol, ColumnsTypes.Template)\n if (notNullOrUndefined(tplColDif)) {\n this._updateColDif(tplColDif, internalCol, tplCol)\n }\n }\n\n const _col: TheSeamDatatableColumn = {\n ...(internalCol || {}),\n ...inpCol,\n // TODO: Rethink this, because I don't know if this is correct.\n ...(tplCol as any || {})\n }\n\n if (this._shouldAddTreeToggleColumn(_col)) {\n _col.treeToggleTemplate = this._treeToggleTpl\n }\n\n if (this._shouldAddHeaderTemplate(_col)) {\n _col.headerTemplate = this._headerTpl\n }\n\n if (this._shouldAddCellTypeSelectorTpl(_col)) {\n _col.cellTemplate = this._cellTypeSelectorTpl\n }\n\n cols.push(_col)\n }\n\n if (this._shouldAddRowActionColumn()) {\n cols.push(createActionMenuColumn(this._actionMenuCellTpl, this._blankHeaderTpl))\n }\n\n // Make sure the default for any missing props are set.\n // TODO: Determine if this should be done earlier, because I don't like\n // how this is done after dif checks.\n setColumnDefaults(cols)\n\n return cols\n }\n\n private _getInternalColumns(): TableColumn[] | undefined {\n if (this._internalColumnsGetter === undefined) {\n return undefined\n }\n\n return this._internalColumnsGetter()\n }\n\n private _getInternalColumn(prop: TableColumnProp): TableColumn | undefined {\n const internalCols = this._getInternalColumns()\n\n if (internalCols === undefined) {\n return undefined\n }\n\n return internalCols.find(c => getColumnProp(c) === prop)\n }\n\n private _findColumnByProp<T extends TheSeamDatatableColumn | DatatableColumnComponent>(\n prop: TableColumnProp,\n columns: T[]\n ): T | undefined {\n return columns.find(c => getColumnProp(c) === prop)\n }\n\n private _getDifMapForColumnsType(columnsType: ColumnsTypes): Map<TableColumnProp, KeyValueDiffer<any, any>> {\n switch (columnsType) {\n case ColumnsTypes.Input: return this._inpColDiffersMap\n case ColumnsTypes.Template: return this._tplColDiffersMap\n case ColumnsTypes.Result: return this._resultColDiffersMap\n }\n }\n\n private _getColumnDiffer(prop: TableColumnProp, colsType: ColumnsTypes): KeyValueDiffer<string, any> {\n const difMap = this._getDifMapForColumnsType(colsType)\n if (difMap === null) {\n throw Error(`Invalid columns type.`)\n }\n\n if (!difMap.has(prop)) {\n difMap.set(prop, this._differs.find({}).create())\n }\n\n const differ = difMap.get(prop)\n if (differ === undefined) {\n throw Error(`Differ not found. New differ should have been created.`)\n }\n\n return differ\n }\n\n private _getColDif(\n col: TheSeamDatatableColumn | DatatableColumnComponent,\n colsType: ColumnsTypes\n ): KeyValueChanges<string, any> | null {\n const prop = getColumnProp(col)\n if (prop === undefined) {\n throw Error(`Column prop not found.`)\n }\n\n return this._getColumnDiffer(prop, colsType).diff(col)\n }\n\n private _updateColDif(\n colDif: KeyValueChanges<string, any>,\n internalColumn: TableColumn | undefined,\n col: TheSeamDatatableColumn | DatatableColumnComponent\n ): void {\n colDif.forEachRemovedItem(r => {\n if (internalColumn && internalColumn.hasOwnProperty(r.key)) {\n const k = r.key as keyof TableColumn\n delete internalColumn[k]\n }\n })\n colDif.forEachAddedItem(r => (col as any)[r.key] = r.currentValue)\n colDif.forEachChangedItem(r => (col as any)[r.key] = r.currentValue)\n }\n\n private _hasAddedOrRemovedColumns(columns: TheSeamDatatableColumn[]): boolean {\n if (!this._colPropsDiffer) {\n this._colPropsDiffer = this._differs.find([]).create()\n }\n\n const props = columns.map(c => getColumnProp(c))\n return this._colPropsDiffer.diff(props) !== null\n }\n\n private _hasColumnsChanged(columns: TheSeamDatatableColumn[]): boolean {\n let colChanged = false\n for (const col of columns) {\n const resultDif = this._getColDif(col, ColumnsTypes.Result)\n if (resultDif) {\n // NOTE: Can't return early, because the differs need to be updated.\n colChanged = true\n }\n }\n return colChanged\n }\n\n private _shouldAddCheckboxColumn(): boolean {\n return this._selectionType === SelectionType.checkbox\n }\n\n private _shouldAddRowActionColumn(): boolean {\n return this._rowActionItem !== undefined\n }\n\n private _shouldAddTreeToggleColumn(column: TheSeamDatatableColumn): boolean {\n return column.isTreeColumn !== undefined && column.isTreeColumn &&\n (!hasProperty(column, 'treeToggleTemplate') || !notNullOrUndefined(column.treeToggleTemplate))\n }\n\n private _shouldAddHeaderTemplate(column: TheSeamDatatableColumn): boolean {\n return !hasProperty(column, 'headerTemplate')\n }\n\n private _shouldAddCellTypeSelectorTpl(column: TheSeamDatatableColumn): boolean {\n return hasProperty(column, 'cellType')\n }\n\n}\n","import { InjectionToken } from '@angular/core'\n\nimport { TheSeamDatatableAccessor } from '../models/datatable-accessor'\n\nexport const THESEAM_DATATABLE_ACCESSOR = new InjectionToken<TheSeamDatatableAccessor>(\n 'TheSeamDatatableAccessor'\n)\n","import { KeyValueDiffer } from '@angular/core'\n\nimport { TheSeamDatatableColumn } from './../models/table-column'\n\nexport function removeUnusedDiffs(\n cols: TheSeamDatatableColumn[],\n colDiffersInp: { [propName: string]: KeyValueDiffer<any, any> },\n colDiffersTpl: { [propName: string]: KeyValueDiffer<any, any> }\n): void {\n const inpKeys = Object.keys(colDiffersInp)\n inpKeys.filter(k => cols.findIndex(c => c.prop === k) === -1)\n .forEach(k => { delete colDiffersInp[k] })\n\n const tplKeys = Object.keys(colDiffersTpl)\n tplKeys.filter(k => cols.findIndex(c => c.prop === k) === -1)\n .forEach(k => { delete colDiffersTpl[k] })\n}\n","import { TheSeamDatatableAccessor } from './datatable-accessor';\nimport { TheSeamDatatableColumn } from './table-column';\n\nexport interface ColumnsAlterationState<TState = any> {\n readonly id: string\n readonly type: string\n readonly state: TState\n}\n\n/**\n * Alteration applied to a column or columns that can be persisted.\n *\n * Tracking if a column was altered by user or library code can be confusing.\n * This allows us to store a list of replayable alterations on columns. By\n * having a defined way to implement alterations, the datatable should be easier\n * to support external features that want to provide an alteration.\n *\n * NOTE: Current, to unapply an alteration you can create an alteration with\n * `persistent` set to false and the alteration will be removed after `apply()`\n * is called.\n */\nexport abstract class ColumnsAlteration<TState = any> {\n /**\n * This should be unique to the alteration, but determinable. When an app is\n * reloaded and alterations are restored from a persistable storage this\n * should still be recognizable.\n */\n public abstract readonly id: string\n\n /**\n * The alteration type.\n *\n * This can be used to group alteraction from a common feature.\n */\n public abstract readonly type: string\n\n constructor(\n /**\n * Persistable state.\n *\n * Returned value should be JSON stringifyable.\n */\n public state: TState,\n /**\n * If false, the state will not be persisted to a persistent storage and\n * will be removed after applied.\n */\n public readonly persistent: boolean\n ) {\n this.state = state\n }\n\n /**\n * Apply alteration to column.\n */\n public abstract apply(columns: TheSeamDatatableColumn[], datatable: TheSeamDatatableAccessor): void\n\n public toJSON(): ColumnsAlterationState<TState> {\n return {\n id: this.id,\n type: this.type,\n state: this.state\n }\n }\n}\n","import { TableColumnProp } from '@marklb/ngx-datatable'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { getColumnProp } from '../../utils/get-column-prop'\nimport { ColumnsAlteration } from '../columns-alteration'\nimport { TheSeamDatatableAccessor } from '../datatable-accessor'\nimport { TheSeamDatatableColumn } from '../table-column'\n\nexport interface HideColumnColumnsAlterationState {\n columnProp: TableColumnProp\n hidden: boolean\n}\n\nexport class HideColumnColumnsAlteration extends ColumnsAlteration<HideColumnColumnsAlterationState> {\n public readonly id: string\n\n public readonly type: string = 'hide-column'\n\n constructor(\n state: HideColumnColumnsAlterationState,\n persistent: boolean\n ) {\n super(state, persistent)\n\n if (!this._isValidState(state)) {\n throw Error(`Invalid state: ${JSON.stringify(state)}`)\n }\n\n this.id = `${this.type}--${state.columnProp}`\n }\n\n public apply(columns: TheSeamDatatableColumn<any, any>[], datatable: TheSeamDatatableAccessor): void {\n for (const col of columns) {\n const prop = getColumnProp(col)\n if (prop === this.state.columnProp) {\n col.hidden = this.state.hidden\n }\n }\n }\n\n private _isValidState(state: HideColumnColumnsAlterationState): boolean {\n // NOTE: Checking null or undefined, even though the type doesn't allow,\n // because the state may have been loaded from an invalid persistant\n // storage.\n\n // TODO: Remove when state validation/migration is implemented to happen\n // when retrieved from storage.\n if (!notNullOrUndefined(state.columnProp)) {\n return false\n }\n\n // TODO: Remove when state validation/migration is implemented to happen\n // when retrieved from storage.\n if (!notNullOrUndefined(state.hidden)) {\n return false\n }\n\n return true\n }\n}\n","import { SortType } from '@marklb/ngx-datatable'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { SortItem } from '../sort-item'\nimport { ColumnsAlteration } from '../columns-alteration'\nimport { TheSeamDatatableAccessor } from '../datatable-accessor'\nimport { TheSeamDatatableColumn } from '../table-column'\n\n// NOTE: This doesn't act on a single SortItem, because dealing with conflicts\n// between if a sort was added by an alteration or datatable input is difficult\n// to determine. There may be some good assumptions for handling the issues, but\n// for now I think it is safest to just store the whole sorts array as an\n// alteration.\nexport interface SortColumnsAlterationState {\n sorts: SortItem[]\n}\n\nexport class SortColumnsAlteration extends ColumnsAlteration<SortColumnsAlterationState> {\n public readonly id: string\n\n public readonly type: string = 'sort'\n\n constructor(\n state: SortColumnsAlterationState,\n persistent: boolean\n ) {\n super(state, persistent)\n\n if (!this._isValidState(state)) {\n throw Error(`Invalid state: ${JSON.stringify(state)}`)\n }\n\n this.id = `${this.type}`\n }\n\n public apply(columns: TheSeamDatatableColumn<any, any>[], datatable: TheSeamDatatableAccessor): void {\n if (datatable.sortType === SortType.single) {\n datatable.sorts = this.state.sorts.length > 0 ? [ this.state.sorts[0] ] : []\n } else {\n datatable.sorts = this.state.sorts\n }\n }\n\n private _isValidState(state: SortColumnsAlterationState): boolean {\n // NOTE: Checking null or undefined, even though the type doesn't allow,\n // because the state may have been loaded from an invalid persistant\n // storage.\n\n // TODO: Remove when state validation/migration is implemented to happen\n // when retrieved from storage.\n if (!notNullOrUndefined(state.sorts)) {\n return false\n }\n\n return true\n }\n}\n","import { TableColumnProp } from '@marklb/ngx-datatable'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { getColumnProp } from '../../utils/get-column-prop'\nimport { ColumnsAlteration } from '../columns-alteration'\nimport { TheSeamDatatableAccessor } from '../datatable-accessor'\nimport { TheSeamDatatableColumn } from '../table-column'\n\nexport interface WidthColumnsAlterationState {\n columnProp: TableColumnProp\n width?: number\n canAutoResize: boolean\n}\n\nexport class WidthColumnsAlteration extends ColumnsAlteration<WidthColumnsAlterationState> {\n public readonly id: string\n\n public readonly type: string = 'width'\n\n constructor(\n state: WidthColumnsAlterationState,\n persistent: boolean\n ) {\n super(state, persistent)\n\n if (!this._isValidState(state)) {\n throw Error(`Invalid state: ${JSON.stringify(state)}`)\n }\n\n this.id = `${this.type}--${state.columnProp}`\n }\n\n public apply(columns: TheSeamDatatableColumn<any, any>[], datatable: TheSeamDatatableAccessor): void {\n for (const col of columns) {\n const prop = getColumnProp(col)\n if (prop === this.state.columnProp) {\n col.canAutoResize = this.state.canAutoResize\n if (notNullOrUndefined(this.state.width)) {\n col.width = this.state.width\n }\n }\n }\n }\n\n private _isValidState(state: WidthColumnsAlterationState): boolean {\n // NOTE: Checking null or undefined, even though the type doesn't allow,\n // because the state may have been loaded from an invalid persistant\n // storage.\n\n // TODO: Remove when state validation/migration is implemented to happen\n // when retrieved from storage.\n if (!notNullOrUndefined(state.columnProp)) {\n return false\n }\n\n // TODO: Remove when state validation/migration is implemented to happen\n // when retrieved from storage.\n if (!notNullOrUndefined(state.canAutoResize)) {\n return false\n }\n\n return true\n }\n}\n","import { Injectable } from '@angular/core'\nimport { Observable, Subject } from 'rxjs'\n\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { ColumnsAlteration } from '../models/columns-alteration'\nimport { TheSeamDatatableColumn } from '../models/table-column'\nimport { TheSeamDatatableAccessor } from '../models/datatable-accessor'\nimport { HideColumnColumnsAlteration } from '../models/columns-alterations/hide-column.columns-alteration'\nimport { SortColumnsAlteration } from '../models/columns-alterations/sort.columns-alteration'\nimport { WidthColumnsAlteration } from '../models/columns-alterations/width.columns-alteration'\n\nexport interface ColumnsAlterationsChangedRecord {\n type: 'added' | 'removed'\n alteration: ColumnsAlteration\n}\n\nexport interface ColumnsAlterationsChangedEvent {\n changes: ColumnsAlterationsChangedRecord[]\n}\n\n@Injectable()\nexport class ColumnsAlterationsManagerService {\n\n private readonly _changesSubject = new Subject<ColumnsAlterationsChangedEvent>()\n private _alterations: ColumnsAlteration[] = []\n\n public readonly changes: Observable<ColumnsAlterationsChangedEvent>\n\n constructor() {\n this.changes = this._changesSubject.asObservable()\n }\n\n public get(): ColumnsAlteration[] {\n return [ ...this._alterations ]\n }\n\n /**\n * Adds alterations to be applied to columns.\n *\n * If an alteration with the same `id` already exists then the existing\n * alteration will be removed and the new one added.\n *\n * NOTE: When there is a duplicate alteration the old alteration is removed,\n * instead of updated, to maintain the order alterations are applied.\n */\n public add(alterations: ColumnsAlteration[], options?: { emitEvent?: boolean }): ColumnsAlterationsChangedRecord[] {\n // console.log('add', alterations)\n const removed: ColumnsAlterationsChangedRecord[] = this.remove(alterations, { emitEvent: false })\n this._alterations = [ ...this._alterations, ...alterations ]\n\n const changes: ColumnsAlterationsChangedRecord[] = [\n ...removed,\n ...alterations.map(a => {\n const record: ColumnsAlterationsChangedRecord = {\n type: 'added',\n alteration: a\n }\n return record\n })\n ]\n\n if (notNullOrUndefined(options?.emitEvent) && !options?.emitEvent) {\n return changes\n }\n\n this._emitChanges(changes)\n\n return changes\n }\n\n public remove(alterations: ColumnsAlteration[], options?: { emitEvent?: boolean }): ColumnsAlterationsChangedRecord[] {\n // console.log('remove', alterations)\n const removed: ColumnsAlterationsChangedRecord[] = []\n this._alterations = this._alterations.filter(x => {\n const found = alterations.findIndex(y => y.id === x.id) !== -1\n if (found) {\n const eventRecord: ColumnsAlterationsChangedRecord = {\n type: 'removed',\n alteration: x\n }\n removed.push(eventRecord)\n }\n return !found\n })\n\n // console.log('removed', removed, this._alterations)\n\n if (notNullOrUndefined(options?.emitEvent) && !options?.emitEvent) {\n return removed\n }\n\n this._emitChanges(removed)\n\n return removed\n }\n\n public apply(columns: TheSeamDatatableColumn[], datatable: TheSeamDatatableAccessor): void {\n for (const a of this._alterations) {\n a.apply(columns, datatable)\n }\n\n this._removeNonPersistant()\n }\n\n // TODO: Make aware of original column order and properties. This is tricky,\n // because the datatable does not deal with immutable column/row records and\n // it is hard to know where changes happened. Just serializing the columns\n // input is not enough, because the columns input is called anytime the user\n // makes a column change. We can probably come up with a mostly accurate\n // implementation, such as \"reset original columns cache when preferencesKey\n // changes\" or \"number of columns change\". There are issues with those rules,\n // but with some testing/experimenting I think there should be a \"good enough\"\n // solution.\n //\n // TODO: Find a generic way to clear alterations. I would like to add an\n // `unapply` method to `ColumnsAlteration`, but since the alterations\n // themselves are not too generic it may be tricky.\n public clear(options?: { emitEvent?: boolean }): ColumnsAlterationsChangedRecord[] {\n const changes: ColumnsAlterationsChangedRecord[] = []\n for (const colAlt of this._alterations) {\n switch (colAlt.type) {\n case 'hide-column': {\n const alteration = new HideColumnColumnsAlteration({ columnProp: colAlt.state.columnProp, hidden: false }, false)\n changes.push(...this.add([ alteration ]))\n break;\n }\n case 'order': {\n changes.push(...this.remove([ colAlt ]))\n break;\n }\n case 'sort': {\n const alteration = new SortColumnsAlteration({ sorts: [] }, false)\n changes.push(...this.add([ alteration ]))\n break;\n }\n case 'width': {\n const alteration = new WidthColumnsAlteration({ columnProp: colAlt.state.columnProp, canAutoResize: true }, false)\n changes.push(...this.add([ alteration ]))\n break;\n }\n }\n }\n\n if (notNullOrUndefined(options?.emitEvent) && !options?.emitEvent) {\n return changes\n }\n\n this._emitChanges(changes)\n\n return changes\n }\n\n private _removeNonPersistant(): void {\n const nonPersistent = this._alterations.filter(x => !x.persistent)\n this.remove(nonPersistent, { emitEvent: false })\n }\n\n private _emitChanges(changes: ColumnsAlterationsChangedRecord[]): void {\n if (changes.length === 0) {\n return\n }\n\n const event: ColumnsAlterationsChangedEvent = {\n changes\n }\n\n this._changesSubject.next(event)\n }\n\n}\n","import { ACTION_MENU_COLUMN_PROP } from '../utils/create-action-menu-column'\nimport { CHECKBOX_COLUMN_PROP } from '../utils/create-checkbox-column'\nimport { getColumnProp } from '../utils/get-column-prop'\nimport { TheSeamDatatableColumn } from './table-column'\n\n/**\n * Strings used for columns created and managed\n * by the datatable.\n */\nexport const INTERNAL_COLUMN_PROPS: string[] = [\n ACTION_MENU_COLUMN_PROP,\n CHECKBOX_COLUMN_PROP\n]\n\n\nexport function isInternalColumn(column: TheSeamDatatableColumn): boolean {\n return INTERNAL_COLUMN_PROPS.findIndex(p => getColumnProp(column) === p) !== -1\n}\n","import { isDevMode } from '@angular/core'\n\nimport { TableColumnProp } from '@marklb/ngx-datatable'\nimport { arrayMoveMutable, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { getColumnProp } from '../../utils/get-column-prop'\nimport { ColumnsAlteration } from '../columns-alteration'\nimport { TheSeamDatatableAccessor } from '../datatable-accessor'\nimport { isInternalColumn } from '../internal-column-props'\nimport { TheSeamDatatableColumn } from '../table-column'\n\nexport interface ColumnOrderRecord {\n columnProp: TableColumnProp\n index: number\n}\n\nexport interface OrderColumnsAlterationState {\n // NOTE: This stores the column index of reordered columns only, to avoid any\n // new columns from always being placed at the end. The moved columns should\n // always be accurate relative to each other, but if this becomes an issue\n // then we can just store all the columns positions.\n columns: ColumnOrderRecord[]\n}\n\nexport class OrderColumnsAlteration extends ColumnsAlteration<OrderColumnsAlterationState> {\n public readonly id: string\n\n public readonly type: string = 'order'\n\n constructor(\n state: OrderColumnsAlterationState,\n persistent: boolean\n ) {\n super(state, persistent)\n\n if (!this._isValidState(state)) {\n throw Error(`Invalid state: ${JSON.stringify(state)}`)\n }\n\n this.id = `${this.type}`\n }\n\n public apply(columns: TheSeamDatatableColumn<any, any>[], datatable: TheSeamDatatableAccessor): void {\n if (this.state.columns.length === 0) {\n return\n }\n\n const stateColumns = this._stateColumns()\n\n // The internal columns are not intended for a user to be able to move them.\n // Store the internal columns current index, so it can be moved back ofter\n // sorting. This may not be the best way to do this, but it is easier than\n // making a sort that avoids them.\n //\n // NOTE: If we add an internal column that can be moved then this will need\n // to be changed.\n const internalColumns = columns\n .map((column, index) => ({ column, index }))\n .filter(x => isInternalColumn(x.column))\n\n for (const c of stateColumns) {\n const currentIndex = columns.findIndex(x => getColumnProp(x) === c.columnProp)\n if (currentIndex === c.index || currentIndex === -1) {\n // Skip if already at correct index.\n // Skip columns not found. It may be a column that was removed from the\n // table, but we still want to handle the other columns.\n continue\n }\n\n arrayMoveMutable(columns, currentIndex, c.index)\n }\n\n for (const c of internalColumns) {\n const currentIndex = columns.findIndex(col => col === c.column)\n if (currentIndex !== -1) {\n arrayMoveMutable(columns, currentIndex, c.index)\n } else {\n if (isDevMode()) {\n console.warn(`Internal column could not be found after sorting. Was it lost during the sorting?`)\n }\n }\n }\n }\n\n private _isValidState(state: OrderColumnsAlterationState): boolean {\n // NOTE: Checking null or undefined, even though the type doesn't allow,\n // because the state may have been loaded from an invalid persistant\n // storage.\n\n // TODO: Remove when state validation/migration is implemented to happen\n // when retrieved from storage.\n if (!notNullOrUndefined(state.columns)) {\n return false\n }\n\n // NOTE: Didn't iterate each column record, because it is probably better to\n // just skip to invalid column records. It does prevent being able to\n // validate the whole state though.\n\n return true\n }\n\n private _isColumnOrderRecordValid(columnOrder: ColumnOrderRecord): boolean {\n return notNullOrUndefined(columnOrder.columnProp) && notNullOrUndefined(columnOrder.index)\n }\n\n private _stateColumns(): ColumnOrderRecord[] {\n return this.state.columns.filter(c => {\n if (!this._isColumnOrderRecordValid(c)) {\n if (isDevMode()) {\n console.warn('Invalid column order record', c)\n }\n return false\n }\n return true\n }).sort((a, b) => a.index === b.index ? 0 : a.index > b.index ? 1 : -1)\n }\n}\n","import { isDevMode } from '@angular/core'\n\nimport { ColumnsAlteration, ColumnsAlterationState } from '../models/columns-alteration'\nimport { HideColumnColumnsAlteration } from '../models/columns-alterations/hide-column.columns-alteration'\nimport { OrderColumnsAlteration } from '../models/columns-alterations/order.columns-alteration';\nimport { SortColumnsAlteration } from '../models/columns-alterations/sort.columns-alteration';\nimport { WidthColumnsAlteration } from '../models/columns-alterations/width.columns-alteration';\n\nexport function mapColumnsAlterationsStates(states: ColumnsAlterationState[]): ColumnsAlteration[] {\n const alterations: ColumnsAlteration[] = []\n\n for (const state of states) {\n try {\n switch (state.type) {\n case 'hide-column': alterations.push(new HideColumnColumnsAlteration(state.state, true)); break;\n case 'width': alterations.push(new WidthColumnsAlteration(state.state, true)); break;\n case 'order': alterations.push(new OrderColumnsAlteration(state.state, true)); break;\n case 'sort': alterations.push(new SortColumnsAlteration(state.state, true)); break;\n default: {\n if (isDevMode()) {\n console.warn('Unrecognized ColumnsAlteration state', state)\n }\n }\n }\n } catch (e) {\n if (isDevMode()) {\n console.warn('Unable to map ColumnsAlteration state', state)\n console.warn(e)\n }\n }\n }\n\n return alterations\n}\n","import { ColumnsAlterationState } from './columns-alteration'\n\nexport interface TheSeamDatatablePreferencesColumn {\n prop: string\n width?: number\n canAutoResize?: boolean\n hidden?: boolean\n}\n\nexport interface TheSeamDatatablePreferences_v1 {\n columns?: TheSeamDatatablePreferencesColumn[]\n}\n\nexport interface TheSeamDatatablePreferences_v2 {\n version: 2\n alterations: ColumnsAlterationState[]\n}\n\nexport type TheSeamDatatablePreferences = TheSeamDatatablePreferences_v2\n\nexport const CURRENT_DATATABLE_PREFERENCES_VERSION = 2\n\nexport const EMPTY_DATATABLE_PREFERENCES: TheSeamDatatablePreferences = {\n version: 2,\n alterations: []\n}\n","import { InjectionToken } from '@angular/core'\n\nimport { TheSeamDatatablePreferencesAccessor } from '../models/preferences-accessor'\n\nexport const THESEAM_DATATABLE_PREFERENCES_ACCESSOR = new InjectionToken<TheSeamDatatablePreferencesAccessor>(\n 'TheSeamDatatablePreferencesAccessor'\n)\n","import { Inject, Injectable, isDevMode, Optional } from '@angular/core'\nimport { Observable, of, Subject } from 'rxjs'\nimport { map, shareReplay, startWith, switchMap, take, tap } from 'rxjs/operators'\n\nimport { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils'\nimport { EMPTY_DATATABLE_PREFERENCES, TheSeamDatatablePreferences, TheSeamDatatablePreferencesColumn } from '../models/preferences'\nimport type { TheSeamDatatablePreferencesAccessor } from '../models/preferences-accessor'\nimport { THESEAM_DATATABLE_PREFERENCES_ACCESSOR } from '../tokens/datatable-preferences-accessor'\nimport { withStoredColumnInfo } from '../utils/with-stored-column-info'\nimport { ColumnsAlterationState } from '../models/columns-alteration'\n\nexport interface IDatatablePreferencesMapRecord {\n observable: Observable<TheSeamDatatablePreferences>\n refresh: Subject<void>\n}\n\n// TODO: Add per key status\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DatatablePreferencesService {\n\n private readonly _tablePrefsMap = new Map<string, IDatatablePreferencesMapRecord>()\n private _pending = false\n private _loaded = false\n\n public get pending() { return this._pending }\n public get loaded() { return this._loaded }\n\n constructor(\n @Optional() @Inject(THESEAM_DATATABLE_PREFERENCES_ACCESSOR) private _prefsAccessor?: TheSeamDatatablePreferencesAccessor\n ) { }\n\n public preferences(preferenceKey: string): Observable<TheSeamDatatablePreferences> {\n let prefs = this._tablePrefsMap.get(preferenceKey)\n if (!prefs) {\n const refreshSubject = new Subject<void>()\n prefs = {\n observable: this._createObservable(refreshSubject, preferenceKey),\n refresh: refreshSubject\n }\n this._tablePrefsMap.set(preferenceKey, prefs)\n }\n return prefs.observable\n }\n\n private _createObservable(refreshSubject: Subject<void>, prefKey: string): Observable<TheSeamDatatablePreferences> {\n if (!this._prefsAccessor) {\n return of(EMPTY_DATATABLE_PREFERENCES)\n }\n\n const accessor = (key: string): Observable<string> =>\n this._prefsAccessor ? this._prefsAccessor.get(key) : of(JSON.stringify(EMPTY_DATATABLE_PREFERENCES))\n\n return refreshSubject.pipe(\n startWith(undefined),\n switchMap(() => accessor(prefKey).pipe(\n map(v => {\n if (!v) {\n return null\n }\n\n // TODO: Add a schema validator and migration tool to avoid parsing issues.\n try {\n // return JSON.parse(v) as TheSeamDatatablePreferences\n return this._descerializePreferences(v)\n } catch (error) {\n if (isDevMode()) {\n console.error(error)\n }\n return null\n }\n }),\n map(v => notNullOrUndefined(v) ? v : EMPTY_DATATABLE_PREFERENCES),\n // tap(v => console.log('preferences$', v)),\n tap(() => {\n this._pending = false\n this._loaded = true\n })\n )),\n shareReplay({ bufferSize: 1, refCount: true }),\n )\n }\n\n public refresh(preferenceKey: string): void {\n const prefs = this._tablePrefsMap.get(preferenceKey)\n if (prefs) {\n this._pending = true\n prefs.refresh.next()\n }\n }\n\n // TODO: Improve this updating to be more generic, so we can quickly add\n // edits for different preference schema's.\n //\n // TODO: Decide if a send queue/merging of pending queue is needed to avoid\n // out of order updates. This shouldn't be an issue, with how fast preferences\n // will most likely be changing, but it could happen in situations, such as\n // network issues.\n // public setColumnPreference(preferenceKey: string, column: TheSeamDatatablePreferencesColumn): void {\n // if (!this._prefsAccessor) {\n // return\n // }\n\n // this._pending = true\n // this.preferences(preferenceKey).pipe(\n // map(prefs => {\n // // Making the preferences immutable may not be necessary, but for now\n // // this obj->str->obj will work as a naive clone.\n // const columns = JSON.parse(JSON.stringify(prefs.columns || []))\n // const _colPref = columns.find((c: any) => c.prop === column.prop)\n // // console.log('has', _colPref)\n // if (_colPref) {\n // // console.log('hasProperty(column, \"width\"))', hasProperty(column, 'width'))\n // if (hasProperty(column, 'width')) { _colPref.width = column.width }\n // if (hasProperty(column, 'canAutoResize')) { _colPref.canAutoResize = column.canAutoResize }\n // if (hasProperty(column, 'hidden')) { _colPref.hidden = column.hidden }\n // } else {\n // columns.push({ ...column })\n // }\n // const newPrefs: TheSeamDatatablePreferences = { ...prefs, columns }\n // return newPrefs\n // }),\n // // tap(v => console.log('newPrefs', v)),\n // take(1),\n // switchMap(newPrefs => this._prefsAccessor\n // ? this._prefsAccessor.update(preferenceKey, JSON.stringify(newPrefs))\n // : of(newPrefs)\n // ),\n // tap(() => this.refresh(preferenceKey))\n // )\n // .subscribe()\n // }\n\n public setAlterations(preferenceKey: string, alterations: ColumnsAlterationState[]): void {\n if (!this._prefsAccessor) {\n return\n }\n\n this._pending = true\n this.preferences(preferenceKey).pipe(\n map(prefs => {\n // Making the preferences immutable may not be necessary, but for now\n // this obj->str->obj will work as a naive clone.\n // const columns = JSON.parse(JSON.stringify(prefs.columns || []))\n // const _colPref = columns.find((c: any) => c.prop === column.prop)\n // // console.log('has', _colPref)\n // if (_colPref) {\n // // console.log('hasProperty(column, \"width\"))', hasProperty(column, 'width'))\n // if (hasProperty(column, 'width')) { _colPref.width = column.width }\n // if (hasProperty(column, 'canAutoResize')) { _colPref.canAutoResize = column.canAutoResize }\n // if (hasProperty(column, 'hidden')) { _colPref.hidden = column.hidden }\n // } else {\n // columns.push({ ...column })\n // }\n // const newPrefs: TheSeamDatatablePreferences = { ...prefs, columns }\n // return newPrefs\n\n const newPrefs: TheSeamDatatablePreferences = {\n ...EMPTY_DATATABLE_PREFERENCES,\n alterations\n }\n return newPrefs\n }),\n // tap(v => console.log('newPrefs', v)),\n take(1),\n switchMap(newPrefs => this._prefsAccessor\n ? this._prefsAccessor.update(preferenceKey, JSON.stringify(newPrefs))\n : of(newPrefs)\n ),\n tap(() => this.refresh(preferenceKey))\n )\n .subscribe()\n }\n\n // public withColumnPreferences<T>(preferenceKey: string, columns: T[]): Observable<T[]> {\n // return this.preferences(preferenceKey).pipe(\n // startWith(EMPTY_DATATABLE_PREFERENCES),\n // map(preferences => preferences && preferences.columns\n // ? withStoredColumnInfo(columns, preferences.columns) as T[]\n // : columns\n // )\n // )\n // }\n\n private _descerializePreferences(serialized: string): TheSeamDatatablePreferences {\n const prefs = JSON.parse(serialized)\n\n // TODO: Implement migration\n\n return prefs\n }\n\n}\n","import { animate, style, transition, trigger } from '@angular/animations'\nimport { BooleanInput, coerceArray, NumberInput } from '@angular/cdk/coercion'\nimport { CollectionViewer, DataSource, isDataSource, ListRange } from '@angular/cdk/collections'\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n InjectionToken,\n Input,\n isDevMode,\n KeyValueDiffer,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n TemplateRef,\n ViewChild\n} from '@angular/core'\nimport { BehaviorSubject, from, isObservable, Observable, of, Subject, Subscription } from 'rxjs'\nimport { concatMap, distinctUntilChanged, map, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators'\n\nimport { faChevronDown, faChevronRight, faSpinner } from '@fortawesome/free-solid-svg-icons'\nimport {\n ColumnMode,\n ContextmenuType,\n DataTableColumnCellTreeToggle,\n DataTableColumnDirective,\n DataTableColumnHeaderDirective,\n DatatableComponent as NgxDatatableComponent,\n DatatableRowDetailDirective,\n SortType,\n TreeStatus\n} from '@marklb/ngx-datatable'\nimport type { SelectionType } from '@marklb/ngx-datatable'\n\nimport { InputBoolean, InputNumber } from '@theseam/ui-common/core'\nimport { composeDataFilters, composeDataFilterStates, DataFilter, DataFilterState } from '@theseam/ui-common/data-filters'\nimport { IElementResizedEvent } from '@theseam/ui-common/shared'\nimport { notNullOrUndefined, waitOnConditionAsync } from '@theseam/ui-common/utils'\n\nimport { DatatableActionMenuComponent } from '../datatable-action-menu/datatable-action-menu.component'\nimport { DatatableColumnComponent } from '../datatable-column/datatable-column.component'\nimport { TheSeamDatatableFooterDirective } from '../datatable-footer/datatable-footer.directive'\nimport { DatatableMenuBarComponent } from '../datatable-menu-bar/datatable-menu-bar.component'\nimport { TheSeamDatatableRowDetailDirective } from '../datatable-row-detail/datatable-row-detail.directive'\nimport { DatatableRowActionItemDirective } from '../directives/datatable-row-action-item.directive'\nimport { TheSeamDatatableAccessor } from '../models/datatable-accessor'\nimport { DatatableDataSource } from '../models/datatable-data-source'\nimport { TheSeamPageInfo } from '../models/page-info'\nimport { SortEvent } from '../models/sort-event'\nimport { SortItem } from '../models/sort-item'\nimport { TheSeamDatatableColumn } from '../models/table-column'\nimport { ColumnsManagerService } from '../services/columns-manager.service'\nimport { DatatableColumnChangesService } from '../services/datatable-column-changes.service'\nimport { DatatablePreferencesService } from '../services/datatable-preferences.service'\nimport { THESEAM_DATATABLE_ACCESSOR } from '../tokens/datatable-accessor'\nimport { removeUnusedDiffs } from '../utils/remove-unused-diffs'\nimport { translateTemplateColumns } from '../utils/translate-templates'\nimport { ColumnsAlterationsManagerService } from '../services/columns-alterations-manager.service'\nimport { ColumnsAlteration } from '../models/columns-alteration'\nimport { mapColumnsAlterationsStates } from '../utils/map-columns-alterations-states'\nimport { WidthColumnsAlteration } from '../models/columns-alterations/width.columns-alteration'\nimport { getColumnProp } from '../utils/get-column-prop'\nimport { OrderColumnsAlteration, OrderColumnsAlterationState } from '../models/columns-alterations/order.columns-alteration'\nimport { SortColumnsAlteration } from '../models/columns-alterations/sort.columns-alteration'\n\n/**\n * NOTE: This is still being worked on. I am trying to figure out this model\n * because `ngx-datatable` just uses an untyped object and sets properties in\n * multiple places.\n */\nexport interface ICellContext {\n allRowsSelected: false\n\n selectFn: () => any\n sortDir?: 'asc' | 'desc'\n sortFn: () => any\n\n expanded?: boolean\n\n onCheckboxChangeFn?: any\n activateFn?: any\n row?: any\n group?: any\n value?: any\n column?: TheSeamDatatableColumn\n rowHeight?: number\n isSelected?: boolean\n rowIndex?: number\n treeStatus?: TreeStatus\n onTreeAction?: any\n}\n\n/**\n * Intended for internal classes declared by the `TheSeamDatatableModule`.\n */\nexport const THESEAM_DATATABLE = new InjectionToken<DataFilter>('LibDatatable')\n\nexport const _THESEAM_DATATABLE: any = {\n provide: THESEAM_DATATABLE,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DatatableComponent)\n}\n\nexport const _THESEAM_DATATABLE_ACCESSOR: any = {\n provide: THESEAM_DATATABLE_ACCESSOR,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DatatableComponent)\n}\n\n@Component({\n selector: 'seam-datatable',\n templateUrl: './datatable.component.html',\n styleUrls: ['./datatable.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('slideDown', [\n transition(':enter', [\n style({ transform: 'translateY(-20%)', opacity: '0' }),\n animate('250ms', style({ transform: 'translateY(0)', opacity: '1' })),\n ]),\n transition(':leave', [\n style({ transform: 'translateY(0)', opacity: '1' }),\n animate('250ms', style({ transform: 'translateY(-20%)', opacity: '0' })),\n ])\n ])\n ],\n providers: [\n _THESEAM_DATATABLE,\n DatatableColumnChangesService,\n _THESEAM_DATATABLE_ACCESSOR,\n ColumnsManagerService,\n ColumnsAlterationsManagerService,\n ]\n})\nexport class DatatableComponent\n implements OnInit, OnDestroy, TheSeamDatatableAccessor, CollectionViewer {\n static ngAcceptInputType_externalPaging: BooleanInput\n static ngAcceptInputType_externalSorting: BooleanInput\n static ngAcceptInputType_externalFiltering: BooleanInput\n static ngAcceptInputType_loadingIndicator: BooleanInput\n static ngAcceptInputType_reorderable: BooleanInput\n static ngAcceptInputType_swapColumns: BooleanInput\n static ngAcceptInputType_groupExpansionDefault: BooleanInput\n static ngAcceptInputType_selectAllRowsOnPage: BooleanInput\n static ngAcceptInputType_summaryRow: BooleanInput\n static ngAcceptInputType_virtualization: BooleanInput\n static ngAcceptInputType_scrollbarV: BooleanInput\n static ngAcceptInputType_scrollbarH: BooleanInput\n static ngAcceptInputType_limit: NumberInput\n static ngAcceptInputType_count: NumberInput\n static ngAcceptInputType_offset: NumberInput\n static ngAcceptInputType_headerHeight: NumberInput\n static ngAcceptInputType_rowHeight: NumberInput\n static ngAcceptInputType_footerHeight: NumberInput\n static ngAcceptInputType_summaryHeight: NumberInput\n static ngAcceptInputType_columns: TheSeamDatatableColumn[] | undefined | null\n static ngAcceptInputType_sorts: SortItem[] | undefined | null\n\n readonly _faChevronDown = faChevronDown\n readonly _faChevronRight = faChevronRight\n readonly _faSpinner = faSpinner\n\n private readonly _ngUnsubscribe = new Subject()\n private readonly _filtersSubject = new BehaviorSubject<DataFilter[]>([])\n private readonly _dataSourceSubject = new BehaviorSubject<DataSource<any> | any[] | undefined>(undefined)\n\n private _resizing: { [prop: string]: boolean } = {}\n\n public readonly filterStates: Observable<DataFilterState[]>\n\n get filters(): DataFilter[] { return this._filtersSubject.value }\n\n public readonly filters$: Observable<DataFilter[]>\n\n @Input()\n get preferencesKey(): string | undefined | null { return this._preferencesKey.value }\n set preferencesKey(value: string | undefined | null) { this._preferencesKey.next(value || undefined) }\n private _preferencesKey = new BehaviorSubject<string | undefined | null>(undefined)\n\n @Input() targetMarkerTemplate: any\n\n @Input()\n set columns(value: TheSeamDatatableColumn[]) {\n this._columnsManager.setInputColumns(Array.isArray(value) ? value : [])\n }\n\n @Input()\n get rows(): any[] { return this._rows.value }\n set rows(value: any[]) {\n this._rows.next(value || [])\n }\n private _rows = new BehaviorSubject<any[]>([])\n\n public rows$: Observable<any[]>\n\n @Input() columnMode: ColumnMode | undefined | null = ColumnMode.force\n\n @Input() groupRowsBy: string | undefined | null\n @Input() groupedRows: any[] | undefined | null\n\n @Input() selected: any[] | undefined | null = []\n\n @Input() @InputBoolean() externalPaging: boolean = false\n @Input() @InputBoolean() externalSorting: boolean = false\n @Input() @InputBoolean() externalFiltering: boolean = false\n\n @Input() @InputNumber() limit: number | undefined\n @Input() @InputNumber(0) count: number = 0\n @Input() @InputNumber(0) offset: number = 0\n\n @Input() @InputBoolean() loadingIndicator: boolean = false\n\n @Input()\n get selectionType(): SelectionType | undefined | null { return this._columnsManager.getSelectionType() }\n set selectionType(value: SelectionType | undefined | null) {\n this._columnsManager.setSelectionType(notNullOrUndefined(value) ? value : undefined)\n }\n\n @Input() @InputBoolean() reorderable: boolean = true\n @Input() @InputBoolean() swapColumns: boolean = false\n\n @Input()\n get sortType(): SortType { return this._sortType }\n set sortType(value: SortType) {\n if (notNullOrUndefined(value) && (value === SortType.single || value == SortType.multi)) {\n this._sortType = value\n } else {\n this._sortType = SortType.single\n }\n }\n _sortType: SortType = SortType.single\n\n @Input()\n get sorts(): SortItem[] {\n return this.ngxDatatable ? this.ngxDatatable.sorts : this._sorts\n }\n set sorts(value: SortItem[]) {\n this._sorts = notNullOrUndefined(value) ? coerceArray(value) : []\n }\n _sorts: SortItem[] = []\n\n @Input() cssClasses: any | undefined | null = {\n sortAscending: 'datatable-icon-up',\n sortDescending: 'datatable-icon-down',\n pagerLeftArrow: 'datatable-icon-left',\n pagerRightArrow: 'datatable-icon-right',\n pagerPrevious: 'datatable-icon-prev',\n pagerNext: 'datatable-icon-skip'\n }\n\n @Input() messages: any | undefined | null = {\n // Message to show when array is presented\n // but contains no values\n emptyMessage: 'No records found',\n\n // Footer total message\n totalMessage: 'total',\n\n // Footer selected message\n selectedMessage: 'selected'\n }\n\n @Input() rowIdentity: ((x: any) => any) | undefined | null = ((x: any) => x)\n\n @Input() rowClass: any | undefined | null\n\n @Input() selectCheck: any | undefined | null\n @Input() displayCheck: ((row: any, column?: any, value?: any) => boolean) | undefined | null\n\n @Input() @InputBoolean() groupExpansionDefault: boolean = false\n\n @Input() trackByProp: string | undefined | null\n\n @Input() @InputBoolean() selectAllRowsOnPage: boolean = false\n\n @Input() treeFromRelation: string | undefined | null\n @Input() treeToRelation: string | undefined | null\n @Input() @InputBoolean() summaryRow: boolean = false\n @Input() @InputNumber() summaryHeight: number = 30\n @Input() summaryPosition: string | undefined | null = 'top'\n\n @Input() @InputBoolean() virtualization: boolean = true\n\n @Input() @InputNumber() headerHeight: number = 50\n @Input() @InputNumber() rowHeight: number = 50\n @Input() @InputNumber() footerHeight: number = 40\n\n @Input() @InputBoolean() scrollbarV: boolean = true\n @Input() @InputBoolean() scrollbarH: boolean = true\n\n @Input()\n set dataSource(value: DataSource<any> | any[] | undefined | null) {\n if (value instanceof DatatableDataSource) {\n value.setDatatableAccessor(this)\n }\n this._dataSourceSubject.next(value || undefined)\n }\n\n @Output() readonly scroll = new EventEmitter<any>()\n @Output() readonly activate = new EventEmitter<any>()\n @Output() readonly select = new EventEmitter<any>()\n @Output() readonly sort = new EventEmitter<SortEvent>()\n @Output() readonly page = new EventEmitter<TheSeamPageInfo>()\n @Output() readonly reorder = new EventEmitter<any>()\n @Output() readonly resize = new EventEmitter<any>()\n @Output() readonly tableContextmenu = new EventEmitter<{ event: MouseEvent, type: ContextmenuType, content: any }>(false)\n @Output() readonly treeAction = new EventEmitter<any>()\n\n @Output() readonly actionRefreshRequest = new EventEmitter<void>()\n @Output() readonly hiddenColumnsChange = new EventEmitter<string[]>()\n\n @ContentChildren(DatatableColumnComponent)\n set columnComponents(value: QueryList<DatatableColumnComponent> | undefined) {\n this._columnsManager.setTemplateColumns(translateTemplateColumns(value?.toArray() ?? []))\n }\n\n @ContentChild(DatatableActionMenuComponent, { static: true }) actionMenu?: DatatableActionMenuComponent\n @ContentChild(DatatableRowActionItemDirective, { static: true })\n get rowActionItem(): DatatableRowActionItemDirective | undefined { return this._rowActionItem }\n set rowActionItem(value: DatatableRowActionItemDirective | undefined) {\n this._rowActionItem = value\n this._columnsManager.setRowActionItem(notNullOrUndefined(value) ? value : undefined)\n }\n private _rowActionItem: DatatableRowActionItemDirective | undefined\n\n @ContentChild(TheSeamDatatableRowDetailDirective, { static: true }) rowDetail?: TheSeamDatatableRowDetailDirective\n @ContentChild(TheSeamDatatableFooterDirective, { static: true }) footer?: TheSeamDatatableFooterDirective\n\n @ContentChild(DatatableMenuBarComponent)\n get menuBarComponent(): DatatableMenuBarComponent | undefined { return this._menuBarComponent }\n set menuBarComponent(value: DatatableMenuBarComponent | undefined) {\n this._menuBarComponent = value\n\n if (this._menuBarSub) { this._menuBarSub.unsubscribe() }\n\n if (value) {\n this._setMenuBarFilters(value.filters())\n\n this._menuBarSub = this._menuBarComponent?.filtersChanged\n .subscribe(v => { this._setMenuBarFilters(value.filters()) })\n }\n }\n private _menuBarComponent: DatatableMenuBarComponent | undefined\n private _menuBarSub: Subscription | undefined\n\n @ViewChild(NgxDatatableComponent) ngxDatatable?: NgxDatatableComponent\n @ViewChild(NgxDatatableComponent, { read: ElementRef }) ngxDatatableElement?: ElementRef\n @ViewChild(DatatableRowDetailDirective) ngxRowDetail?: DatatableRowDetailDirective\n\n @ViewChild('actionMenuCellTpl', { static: true })\n get actionMenuCellTpl(): TemplateRef<DataTableColumnDirective> | undefined { return this._actionMenuCellTpl }\n set actionMenuCellTpl(value: TemplateRef<DataTableColumnDirective> | undefined) {\n this._actionMenuCellTpl = value\n this._columnsManager.setActionMenuCellTpl(notNullOrUndefined(value) ? value : undefined)\n }\n private _actionMenuCellTpl: TemplateRef<DataTableColumnDirective> | undefined\n\n @ViewChild('treeToggleTpl', { static: true })\n get treeToggleTpl(): TemplateRef<DataTableColumnCellTreeToggle> | undefined { return this._treeToggleTpl }\n set treeToggleTpl(value: TemplateRef<DataTableColumnCellTreeToggle> | undefined) {\n this._treeToggleTpl = value\n this._columnsManager.setTreeToggleTpl(notNullOrUndefined(value) ? value : undefined)\n }\n private _treeToggleTpl: TemplateRef<DataTableColumnCellTreeToggle> | undefined\n\n @ViewChild('headerTpl', { static: true })\n get headerTpl(): TemplateRef<DataTableColumnHeaderDirective> | undefined { return this._headerTpl }\n set headerTpl(value: TemplateRef<DataTableColumnHeaderDirective> | undefined) {\n this._headerTpl = value\n this._columnsManager.setHeaderTpl(notNullOrUndefined(value) ? value : undefined)\n }\n private _headerTpl: TemplateRef<DataTableColumnHeaderDirective> | undefined\n\n @ViewChild('blankHeaderTpl', { static: true })\n get blankHeaderTpl(): TemplateRef<DataTableColumnHeaderDirective> | undefined { return this._blankHeaderTpl }\n set blankHeaderTpl(value: TemplateRef<DataTableColumnHeaderDirective> | undefined) {\n this._blankHeaderTpl = value\n this._columnsManager.setBlankHeaderTpl(notNullOrUndefined(value) ? value : undefined)\n }\n private _blankHeaderTpl: TemplateRef<DataTableColumnHeaderDirective> | undefined\n\n @ViewChild('cellTypeSelectorTpl', { static: true })\n get cellTypeSelectorTpl(): TemplateRef<DataTableColumnDirective> | undefined { return this._cellTypeSelectorTpl }\n set cellTypeSelectorTpl(value: TemplateRef<DataTableColumnDirective> | undefined) {\n this._cellTypeSelectorTpl = value\n this._columnsManager.setCellTypeSelectorTpl(notNullOrUndefined(value) ? value : undefined)\n }\n private _cellTypeSelectorTpl: TemplateRef<DataTableColumnDirective> | undefined\n\n public columnComponents$?: Observable<DatatableColumnComponent[]>\n private _colDiffersInp: { [propName: string]: KeyValueDiffer<any, any> } = {}\n private _colDiffersTpl: { [propName: string]: KeyValueDiffer<any, any> } = {}\n\n public readonly columns$: Observable<TheSeamDatatableColumn[]>\n public readonly displayColumns$: Observable<TheSeamDatatableColumn[]>\n\n viewChange: Observable<ListRange>\n\n private _rowDetailToggleSubscription = Subscription.EMPTY\n\n // TODO: Remove this DOM-dependent code when a way to property listen for\n // dblclick on the header reasize handles.\n @HostListener('dblclick', [ '$event' ])\n _dblClick(event: any) {\n const isHandle = (<HTMLElement>event.target).classList.contains('resize-handle')\n if (isHandle) {\n const isResizeable = (<HTMLElement>event.target).parentElement?.classList.contains('resizeable')\n if (isResizeable) {\n event.stopPropagation()\n const id = (<HTMLElement>event.target).parentElement\n ?.querySelector('.datatable-column-header-separator')\n ?.getAttribute('data-column-id')\n this._columnsManager.columns$.pipe(\n take(1),\n ).subscribe(columns => {\n const column = columns.find(c => c.$$id === id)\n if (column) {\n const columnProp = getColumnProp(column)\n if (columnProp) {\n const alteration = new WidthColumnsAlteration({ columnProp, canAutoResize: true }, false)\n this._columnsAlterationsManager.add([ alteration ])\n }\n }\n })\n }\n }\n }\n\n constructor(\n private readonly _preferences: DatatablePreferencesService,\n private readonly _columnsManager: ColumnsManagerService,\n private readonly _columnsAlterationsManager: ColumnsAlterationsManagerService,\n ) {\n this._preferencesKey.pipe(\n distinctUntilChanged(),\n switchMap(key => {\n if (!notNullOrUndefined(key) || key.length === 0) {\n return of(undefined)\n }\n\n return from(waitOnConditionAsync(() => this._preferences.loaded)).pipe(\n switchMap(() => this._columnsAlterationsManager.changes.pipe(\n startWith(undefined),\n tap(() => {\n this._preferences.setAlterations(key, this._columnsAlterationsManager.get())\n }),\n ))\n )\n }),\n takeUntil(this._ngUnsubscribe),\n ).subscribe()\n\n const applyPrefs = (cols: TheSeamDatatableColumn[]) => this._columnsAlterationsManager.changes.pipe(\n startWith(undefined),\n map(() => {\n this._columnsAlterationsManager.apply(cols, this)\n return cols\n }),\n )\n\n this._preferencesKey.pipe(\n distinctUntilChanged(),\n switchMap(prefsKey => {\n if (!notNullOrUndefined(prefsKey)) {\n return of(undefined)\n }\n return this._preferences.preferences(prefsKey).pipe(\n switchMap(async (preferences) => {\n await waitOnConditionAsync(() => this._preferences.loaded)\n return preferences\n }),\n take(1),\n map(preferences => {\n let alterations: ColumnsAlteration[] = []\n try {\n alterations = mapColumnsAlterationsStates(preferences.alterations)\n } catch (e) {\n if (isDevMode()) {\n console.warn('Unable to map columns alterations states')\n console.warn(e)\n }\n }\n\n this._columnsAlterationsManager.add(alterations)\n })\n )\n }),\n takeUntil(this._ngUnsubscribe)\n ).subscribe()\n\n this.columns$ = this._columnsManager.columns$\n\n this.displayColumns$ = this.columns$.pipe(\n switchMap(cols => applyPrefs(cols)),\n map(cols => cols.filter(c => !c.hidden)),\n tap(v => removeUnusedDiffs(v, this._colDiffersInp, this._colDiffersTpl)),\n )\n\n this.filters$ = this._filtersSubject.asObservable()\n\n this.filterStates = this._filtersSubject.asObservable().pipe(\n switchMap(filters => composeDataFilterStates(filters))\n )\n\n this.rows$ = this._dataSourceSubject.pipe(\n switchMap(dataSource => {\n // console.log('dataSource', dataSource)\n let dataStream: Observable<any[]>\n\n if (isDataSource(dataSource)) {\n // console.log('~datasource')\n dataStream = dataSource.connect(this) as any\n } else if (isObservable(dataSource)) {\n // console.log('~observable')\n dataStream = dataSource as any\n } else if (Array.isArray(dataSource)) {\n // console.log('~array')\n dataStream = of(dataSource)\n } else {\n // console.log('~rows fallback')\n dataStream = this._rows.asObservable()\n // .pipe(tap(v => console.log('rows~', v)))\n }\n\n if (!this.externalFiltering) {\n // console.log('not using externalFiltering')\n dataStream = dataStream.pipe(\n switchMap(rows => this._filtersSubject.pipe(\n // tap(v => console.log('filters', v)),\n concatMap(filters => of(rows).pipe(composeDataFilters(filters))),\n // tap(v => console.log('composed filters', v)),\n ))\n )\n\n // dataStream = this._filtersSubject.pipe(\n // tap(v => console.log('filters', v)),\n // concatMap(filters => dataStream.pipe(composeDataFilters(filters))),\n // tap(v => console.log('composed filters', v)),\n // )\n }\n\n return dataStream.pipe(\n // tap(v => console.log('stream', v)),\n takeUntil(this._ngUnsubscribe)\n )\n })\n )\n\n // TODO: Implement viewChange for CollectionViewer.\n this.viewChange = this.page.pipe(map(p => ({ start: 0, end: p.count })))\n }\n\n ngOnInit() {\n if (this.rowDetail) {\n this._rowDetailToggleSubscription = this.rowDetail._toggle.subscribe(event => {\n if (this.ngxRowDetail) {\n this.ngxRowDetail.toggle.emit(event)\n }\n })\n }\n }\n\n ngOnDestroy() {\n this._rowDetailToggleSubscription.unsubscribe()\n }\n\n private _setMenuBarFilters(filters: DataFilter[]) {\n this._filtersSubject.next(filters || [])\n }\n\n public getColumnComponent(propName: string): DatatableColumnComponent | null {\n if (!this.columnComponents || this.columnComponents.length === 0) {\n return null\n }\n\n const tpl = this.columnComponents.find(t => t.prop === propName)\n if (tpl) {\n return tpl\n }\n\n return null\n }\n\n _columnData(col: any): { col: any, comp: DatatableColumnComponent | null } {\n const comp = this.getColumnComponent(col.prop)\n return { col, comp }\n }\n\n _getRowExpanded(row: any) {\n if (this.ngxDatatable && this.ngxDatatable.bodyComponent) {\n return this.ngxDatatable.bodyComponent.getRowExpanded(row)\n }\n return false\n }\n\n public trackByFnColumn(index: number, item: any) {\n return item.prop\n }\n\n public onDatatableResize(event: IElementResizedEvent) {\n if (this.ngxDatatable && this.ngxDatatableElement && this.ngxDatatableElement.nativeElement) {\n // TODO: Consider integrating this into the ngx-datatable library to avoid\n // multiple resize calls when the table resizes itself.\n this.ngxDatatable.recalculate()\n }\n }\n\n _onResize(event: any) {\n this.resize.emit(event)\n\n if (!notNullOrUndefined(event.column)) {\n return\n }\n\n const columnProp = getColumnProp(event.column)\n if (columnProp) {\n let addAlteration = false\n\n if (!this._resizing[columnProp]) {\n this._resizing[columnProp] = true\n addAlteration = true\n }\n\n if (event.isDone) {\n this._resizing[columnProp] = false\n addAlteration = true\n }\n\n if (addAlteration) {\n const alteration = new WidthColumnsAlteration({\n columnProp,\n width: event.column.width,\n canAutoResize: false\n }, true)\n this._columnsAlterationsManager.add([ alteration ])\n }\n }\n\n }\n\n _onReorder(event: any): void {\n this.reorder.emit(event)\n\n const columnProp = getColumnProp(event.column)\n if (columnProp) {\n const currentOrderAlteration = this._columnsAlterationsManager.get().find(x => x.type === 'order')\n const state: OrderColumnsAlterationState = {\n columns: [\n ...(currentOrderAlteration?.state.columns || []),\n { columnProp, index: event.newValue }\n ]\n }\n const alteration = new OrderColumnsAlteration(state, true)\n this._columnsAlterationsManager.add([ alteration ])\n }\n }\n\n _onSort(event: any): void {\n this.sort.emit(event)\n\n const alteration = new SortColumnsAlteration({ sorts: event.sorts }, true)\n this._columnsAlterationsManager.add([ alteration ])\n }\n\n _onTreeAction(event: any) {\n const index = event.rowIndex\n const row = event.row\n if (row.treeStatus === 'collapsed') {\n row.treeStatus = 'expanded'\n } else {\n row.treeStatus = 'collapsed'\n }\n this.rows = [ ...this.rows ]\n }\n\n public triggerActionRefreshRequest() {\n this.actionRefreshRequest.emit(undefined)\n }\n\n /**\n * Returns the page info from the wrapped NgxDatatable instance or defaults.\n */\n public get pageInfo(): TheSeamPageInfo {\n return {\n offset: this.ngxDatatable?.offset ?? 0,\n pageSize: this.ngxDatatable?.pageSize ?? 0,\n limit: this.ngxDatatable?.limit,\n count: this.ngxDatatable?.count ?? 0\n }\n }\n\n}\n","<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","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'\nimport { UntypedFormControl } from '@angular/forms'\nimport { combineLatest, Observable, of } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport { notNullOrUndefined, observeControlValue } from '@theseam/ui-common/utils'\n\nimport { DatatableComponent, THESEAM_DATATABLE } from '../datatable/datatable.component'\nimport { HideColumnColumnsAlteration } from '../models/columns-alterations/hide-column.columns-alteration'\nimport { isInternalColumn } from '../models/internal-column-props'\nimport { TheSeamDatatableColumn } from '../models/table-column'\nimport { ColumnsAlterationsManagerService } from '../services/columns-alterations-manager.service'\nimport { getColumnProp } from '../utils/get-column-prop'\n\n@Component({\n selector: 'seam-datatable-column-preferences',\n templateUrl: './datatable-column-preferences.component.html',\n styleUrls: ['./datatable-column-preferences.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableColumnPreferencesComponent {\n _columns$: Observable<TheSeamDatatableColumn[]>\n\n _filterControl = new UntypedFormControl()\n\n constructor(\n @Inject(THESEAM_DATATABLE) private _datatable: DatatableComponent,\n private readonly _columnsAlterationsManager: ColumnsAlterationsManagerService,\n ) {\n this._columns$ = combineLatest([\n this._datatable.columns$ ?? of([]),\n observeControlValue<string>(this._filterControl)\n ]).pipe(\n map(([ columns, filter ]) => {\n const _filter = (filter || '').trim().toLowerCase()\n return columns\n .filter(c => this._canToggleColumn(c, _filter))\n }),\n )\n }\n\n private _canToggleColumn(column: TheSeamDatatableColumn, filter: string, omitInternalColumns: boolean = true): boolean {\n if (omitInternalColumns && isInternalColumn(column)) {\n return false\n }\n\n return this._columnMatchesFilter(column, filter)\n }\n\n private _columnMatchesFilter(column: TheSeamDatatableColumn, filter: string): boolean {\n if (filter.length === 0) { return true }\n\n return `${(getColumnProp(column) || '')}`.toLowerCase().indexOf(filter) !== -1\n }\n\n _onChange(event: any, col: TheSeamDatatableColumn) {\n const columnProp = getColumnProp(col)\n const hidden = !event.checked\n\n if (!notNullOrUndefined(columnProp)) {\n throw Error(`Unable to get column prop.`)\n }\n\n const alteration = new HideColumnColumnsAlteration(\n {\n columnProp,\n hidden\n },\n hidden\n )\n\n this._columnsAlterationsManager.add([ alteration ])\n }\n\n}\n","<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","import { ConnectionPositionPair } from '@angular/cdk/overlay'\nimport { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'\n\nimport { faColumns } from '@fortawesome/free-solid-svg-icons'\nimport { ColumnsAlterationsManagerService } from '../services/columns-alterations-manager.service'\n\n@Component({\n selector: 'seam-datatable-column-preferences-button',\n templateUrl: './datatable-column-preferences-button.component.html',\n styleUrls: ['./datatable-column-preferences-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableColumnPreferencesButtonComponent implements OnInit {\n\n icon = faColumns\n\n /** @ignore */\n _actionMenuPositions: ConnectionPositionPair[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n\n constructor(\n private readonly _columnsAlterationsManager: ColumnsAlterationsManagerService,\n ) { }\n\n ngOnInit() { }\n\n _resetColumns(event: any) {\n this._columnsAlterationsManager.clear()\n }\n\n}\n","<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","import { ChangeDetectionStrategy, Component, Inject, Input, isDevMode, OnInit, Optional } from '@angular/core'\nimport { combineLatest, of } from 'rxjs'\nimport { catchError, concatMap, map, take, tap } from 'rxjs/operators'\n\nimport { faFileDownload } from '@fortawesome/free-solid-svg-icons'\nimport { ToastrService } from 'ngx-toastr'\n\nimport { IDataExporter } from '@theseam/ui-common/data-exporter'\nimport { DynamicValueHelperService, THESEAM_DYNAMIC_DATA } from '@theseam/ui-common/dynamic'\nimport { TheSeamLoadingOverlayService } from '@theseam/ui-common/loading'\nimport { hasProperty } from '@theseam/ui-common/utils'\n\nimport { DatatableComponent, THESEAM_DATATABLE } from '../datatable/datatable.component'\nimport { isInternalColumn } from '../models/internal-column-props'\nimport { TheSeamDatatableColumn } from '../models/table-column'\n\nexport interface IDatatableExportButtonData {\n exporters: IDataExporter[]\n}\n\n@Component({\n selector: 'seam-datatable-export-button',\n templateUrl: './datatable-export-button.component.html',\n styleUrls: ['./datatable-export-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableExportButtonComponent implements OnInit {\n\n icon = faFileDownload\n\n @Input() exporters: IDataExporter[] | undefined | null\n\n get disabled() {\n return !(this.exporters && this.exporters.length > 0)\n }\n\n constructor(\n @Inject(THESEAM_DATATABLE) private readonly _datatable: DatatableComponent,\n private readonly _toastr: ToastrService,\n private readonly _loading: TheSeamLoadingOverlayService,\n private readonly _valueHelper: DynamicValueHelperService,\n @Optional() @Inject(THESEAM_DYNAMIC_DATA) private readonly _data?: IDatatableExportButtonData\n ) {\n if (this._data && this._data.exporters) {\n this.exporters = this._data.exporters\n }\n }\n\n ngOnInit() { }\n\n _onExporterClicked(exporter: IDataExporter) {\n if (!exporter.export) {\n const msg = isDevMode()\n ? `Exporter '${exporter.name}' is missing an export method.`\n : `${exporter.label} export is not available.`\n this._toastr.error(msg, 'Data Export')\n }\n\n const export$ = combineLatest([\n this._datatable.rows$,\n this._datatable.columns$.pipe(map(cols => cols.filter(c => !isInternalColumn(c))))\n ]).pipe(\n take(1),\n map(([ rows, columns ]) => {\n if (exporter.skipDataMapping) {\n return rows\n }\n return this._mapExportData(columns || [], rows)\n }),\n concatMap(data => exporter.export(data)),\n catchError(err => {\n console.error(err)\n return of(false)\n }),\n tap(success => {\n if (success) {\n this._toastr.success(`${exporter.label} export complete.`, 'Data Export')\n } else {\n this._toastr.error(`${exporter.label} export failed.`, 'Data Export')\n }\n })\n )\n\n this._loading.while(export$).subscribe()\n }\n\n private _mapExportData(columns: TheSeamDatatableColumn[], rows: any[]) {\n const data: any[] = []\n\n for (const row of rows) {\n const newRow: any = {}\n\n for (const col of columns) {\n if (!col.exportIgnore) {\n const colName = col.exportHeader || col.name || col.prop\n if (colName) {\n newRow[colName] = this._rowValue(col, row)\n }\n }\n }\n\n data.push(newRow)\n }\n\n return data\n }\n\n private _rowValue(column: TheSeamDatatableColumn, row: any) {\n if (hasProperty(column as any, 'exportValue')) {\n const context = { value: column.prop ? row[column.prop] : undefined, row }\n return this._valueHelper.evalSync((column as any).exportValue, context)\n }\n\n const colProp = column.prop\n if (colProp) {\n return row[colProp]\n }\n return undefined\n }\n\n}\n","<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","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'\n\n@Component({\n selector: 'seam-datatable-menu-bar-column-center',\n templateUrl: './datatable-menu-bar-column-center.component.html',\n styleUrls: ['./datatable-menu-bar-column-center.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableMenuBarColumnCenterComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'\n\n@Component({\n selector: 'seam-datatable-menu-bar-column-left',\n templateUrl: './datatable-menu-bar-column-left.component.html',\n styleUrls: ['./datatable-menu-bar-column-left.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableMenuBarColumnLeftComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'\n\n@Component({\n selector: 'seam-datatable-menu-bar-column-right',\n templateUrl: './datatable-menu-bar-column-right.component.html',\n styleUrls: ['./datatable-menu-bar-column-right.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableMenuBarColumnRightComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'\n\n@Component({\n selector: 'seam-datatable-menu-bar-row',\n templateUrl: './datatable-menu-bar-row.component.html',\n styleUrls: ['./datatable-menu-bar-row.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableMenuBarRowComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","<ng-content></ng-content>\n","import { InjectionToken } from '@angular/core'\n\nimport { MenubarItemData } from '../models/menubar-item-data'\n\nexport const THESEAM_MENUBAR_ITEM_DATA = new InjectionToken<MenubarItemData>('MenubarItemData')\n","import { ChangeDetectionStrategy, Component, Inject, Input, OnInit, Optional } from '@angular/core'\n\nimport { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils'\nimport { DatatableMenuBarComponent } from './../datatable-menu-bar/datatable-menu-bar.component'\nimport { MenubarItemData } from './../models/menubar-item-data'\nimport { THESEAM_MENUBAR_ITEM_DATA } from './../tokens/menubar-item-data'\n\n\n@Component({\n selector: 'seam-datatable-menu-bar-text',\n templateUrl: './datatable-menu-bar-text.component.html',\n styleUrls: ['./datatable-menu-bar-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableMenuBarTextComponent implements OnInit {\n\n @Input()\n public value: string | undefined | null\n\n constructor(\n private _menuBar: DatatableMenuBarComponent,\n @Optional() @Inject(THESEAM_MENUBAR_ITEM_DATA) private _data: MenubarItemData | null\n ) {\n if (notNullOrUndefined(this._data)) {\n if (hasProperty(this._data, 'value')) {\n this.value = this._data.value\n }\n }\n }\n\n ngOnInit(): void { }\n\n}\n","{{ value }}\n","// import { QueryParamsHandling } from '@angular/router/src/config'\nimport { ComponentType } from '@angular/cdk/portal'\nimport { HttpClient, HttpHeaders } from '@angular/common/http'\nimport { Component, Directive, EventEmitter, HostBinding, Input, isDevMode, OnDestroy, OnInit, Optional, Output } from '@angular/core'\nimport { Subscription } from 'rxjs'\n\n// import jexl from 'jexl'\n\nimport { TheSeamDynamicComponentLoader } from '@theseam/ui-common/dynamic-component-loader'\nimport { Modal } from '@theseam/ui-common/modal'\n\n//\n// TODO: Move the dynamic datatable logic out of this component when refactoring.\n//\n\n// export interface IActionMenuItemEndpointConfig {\n// /**\n// * Api endpoint.\n// */\n// endpoint?: string\n\n// endpointExpr?: string\n\n// method: 'GET' | 'POST' | 'PATCH' | 'DELETE'\n\n// bodyExpr?: string\n\n// paramsExpr?: string\n// }\n\n// export interface IActionMenuItemModalConfig {\n// component: ComponentType<{}> | string\n// }\n\nexport interface TheSeamDatatableRow {\n [prop: string]: any\n}\n\n@Directive({\n selector: '[seamDatatableActionMenuItem]'\n})\nexport class DatatableActionMenuItemDirective implements OnInit, OnDestroy {\n\n @HostBinding('class.list-group-item') _listGroupItem = true\n @HostBinding('class.list-group-item-action') _listGroupItemAction = true\n\n @Input() label: string | undefined | null\n\n // tslint:disable-next-line:no-input-rename\n @Input('attr.href') href: string | undefined | null\n @Input() target: string | undefined | null\n\n // Allow routerLink inputs on menu item\n @Input() queryParams: { [k: string]: any } | undefined | null\n @Input() fragment: string | undefined | null\n // @Input() queryParamsHandling: QueryParamsHandling\n @Input() queryParamsHandling: any | undefined | null\n @Input() preserveFragment: boolean | undefined | null\n @Input() skipLocationChange: boolean | undefined | null\n @Input() replaceUrl: boolean | undefined | null\n @Input() state: {[k: string]: any} | undefined | null\n @Input() routerLink: string | any[] | undefined | null\n\n @Input() confirmDialog: any\n\n // @Input()\n // get endpointConfig(): IActionMenuItemEndpointConfig { return this._endpointConfig }\n // set endpointConfig(value: IActionMenuItemEndpointConfig) {\n // this._endpointConfig = value\n // if (value) {\n // // TODO: Handle this in a way that can be canceled.\n // this._endpointConfigSub = this.click\n // .pipe(untilDestroyed(this))\n // .subscribe(e => this._handleEndpointAction())\n // } else {\n // if (this._endpointConfigSub) {\n // this._endpointConfigSub.unsubscribe()\n // }\n // }\n // }\n // private _endpointConfig: IActionMenuItemEndpointConfig\n // private _endpointConfigSub: Subscription\n\n // @Input()\n // get modalConfig(): IActionMenuItemModalConfig { return this._modalConfig }\n // set modalConfig(value: IActionMenuItemModalConfig) {\n // this._modalConfig = value\n // if (value) {\n // // TODO: Handle this in a way that can be canceled.\n // this._modalConfigSub = this.click\n // .pipe(untilDestroyed(this))\n // .subscribe(e => this._handleModalAction())\n // } else {\n // if (this._modalConfigSub) {\n // this._modalConfigSub.unsubscribe()\n // }\n // }\n // }\n // private _modalConfig: IActionMenuItemModalConfig\n // private _modalConfigSub: Subscription\n\n @Input() row: TheSeamDatatableRow | undefined | null\n\n @Output() click = new EventEmitter<any>()\n\n constructor(\n private readonly _modal: Modal,\n private readonly _dynamicComponentLoader: TheSeamDynamicComponentLoader,\n @Optional() private readonly _http: HttpClient,\n ) { }\n\n ngOnInit() { }\n\n ngOnDestroy() { }\n\n // private _handleEndpointAction() {\n // if (!this._http) {\n // if (isDevMode()) {\n // console.warn(`[DatatableActionMenuItemDirective] Endpoint actions require \\`HttpClientModule\\` to be imported.`)\n // }\n // return\n // }\n\n // // console.log('_handleEndpointAction')\n // // TODO: This should probably be done through a provider that uses the api.\n // if (isDevMode()) {\n // console.warn(`[DatatableActionMenuItemDirective] '_handleEndpointAction()' is not ready for production yet.`)\n // } else {\n // // I don't expect this to be attempted in prod before completed, so I am just adding a console warning.\n // console.warn(`Unable to complete request. Contact support for assistance.`)\n // }\n\n // let endpoint = ''\n // const method = this._endpointConfig.method\n // const context = { row: this.row }\n // // console.log('context', context)\n\n // if (this._endpointConfig.endpoint) {\n // endpoint = this._endpointConfig.endpoint\n // }\n\n // if (this._endpointConfig.endpointExpr) {\n // // TODO: Use async jexl.\n // endpoint = jexl.evalSync(this._endpointConfig.endpointExpr, context)\n // }\n\n // const url = `http://localhost:57648/api/${endpoint}`\n\n // const options: any = {}\n // if (this._endpointConfig.bodyExpr) {\n // // TODO: Use async jexl.\n // options.body = jexl.evalSync(this._endpointConfig.bodyExpr, context)\n // }\n // if (this._endpointConfig.paramsExpr) {\n // // TODO: Use async jexl.\n // options.params = jexl.evalSync(this._endpointConfig.paramsExpr, context)\n // }\n\n // const headers = new HttpHeaders({\n // 'Content-Type': 'application/json'\n // })\n\n // this._http.request<any>(method, url, { ...options, headers })\n // .subscribe()\n // // .subscribe(v => console.log('v', v))\n // }\n\n // private _handleModalAction() {\n // if (typeof this._modalConfig.component === 'string') {\n // this._dynamicComponentLoader.getComponentFactory(this._modalConfig.component)\n // .subscribe(componentFactory => {\n // const factoryResolver = (<any /* ComponentFactoryBoundToModule */>componentFactory).ngModule.componentFactoryResolver\n // this._modal.openFromComponent(componentFactory.componentType, undefined, factoryResolver)\n // })\n // } else {\n // this._modal.openFromComponent(this._modalConfig.component)\n // }\n // }\n\n}\n","import { ESCAPE } from '@angular/cdk/keycodes'\nimport { ConnectionPositionPair, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay'\nimport { TemplatePortal } from '@angular/cdk/portal'\nimport { Directive, ElementRef, HostListener, Input, TemplateRef, ViewContainerRef } from '@angular/core'\n\n@Directive({\n selector: '[seamDatatableActionMenuToggle]',\n exportAs: 'seamDatatableActionMenuToggle'\n})\nexport class DatatableActionMenuToggleDirective {\n\n @Input() seamDatatableActionMenuToggle: TemplateRef<HTMLElement> | undefined | null\n\n private _active = false\n private _overlayRef?: OverlayRef\n private _actionDown = false\n\n @HostListener('document:keydown', [ '$event' ])\n _onKeydown(event: any) {\n if (event.keyCode === ESCAPE) {\n this.disable()\n }\n }\n\n @HostListener('click', [ '$event' ])\n _onClick(event: any) {\n this.toggle()\n }\n\n @HostListener('mousedown', [ '$event' ]) _mouseDown(event: any) { this.onInputDown(event) }\n @HostListener('pointerdown', [ '$event' ]) _pointerDown(event: any) { this.onInputDown(event) }\n\n @HostListener('mouseup', [ '$event' ]) _mouseUp(event: any) { this.onInputUp(event) }\n @HostListener('pointerup', [ '$event' ]) _pointerUp(event: any) { this.onInputUp(event) }\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _viewContainerRef: ViewContainerRef,\n private _overlay: Overlay,\n ) { }\n\n public get active(): boolean { return this._active }\n\n public toggle() {\n if (this._active) {\n this.disable()\n } else {\n this.enable()\n }\n }\n\n public enable() {\n if (this.active) { return }\n if (!this.seamDatatableActionMenuToggle) { return }\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: false,\n positionStrategy: this.getOverlayPosition(this._elementRef.nativeElement),\n })\n\n this._overlayRef.attach(new TemplatePortal(this.seamDatatableActionMenuToggle, this._viewContainerRef))\n\n this._active = true\n }\n\n public disable() {\n if (!this.active) { return }\n\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef.detach()\n }\n\n this._active = false\n }\n\n private getOverlayPosition(origin: HTMLElement): PositionStrategy {\n const positionStrategy = this._overlay.position()\n .flexibleConnectedTo(origin)\n .withPositions(this.getPositions())\n .withFlexibleDimensions(false)\n .withPush(false)\n\n return positionStrategy\n }\n\n private getPositions(): ConnectionPositionPair[] {\n return [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n }\n\n onFocusChangeOverlay(event: any) {\n if (event === null) {\n if (!this._actionDown) {\n // this.disable()\n }\n }\n }\n\n onInputDown(event: any) {\n this._actionDown = true\n }\n\n onInputUp(event: any) {\n this._actionDown = false\n }\n\n}\n","import { CollectionViewer } from '@angular/cdk/collections'\nimport { combineLatest, Observable } from 'rxjs'\n\nimport { DatatableDataSource } from './datatable-data-source'\n\n\nexport class DatatableGqlDataSource<TRow> extends DatatableDataSource<TRow> {\n\n connect(collectionViewer: CollectionViewer): Observable<readonly TRow[]> {\n throw new Error('Method not implemented.')\n\n // return combineLatest([\n // this.sorts$,\n // this.filterStates$,\n // this.page$\n // ]).pipe()\n }\n\n disconnect(collectionViewer: CollectionViewer): void {\n throw new Error('Method not implemented.')\n }\n\n\n}\n","import { Injectable, NgZone } from '@angular/core'\n\nimport { OverlayScrollbarsService } from '@theseam/ui-common/scrollbar'\n\n@Injectable()\nexport class TheSeamDatatableScrollbarHelperService {\n\n width = 0\n\n /**\n * Animates programmatic scrolling, such as switching pages.\n *\n * NOTE: Animating the scrolling works, but the datatable may need changes\n * before this is enabled, because it seems a little stuttery when it moves.\n */\n animatedScrolling = false\n animatedScrollingTime = 250\n\n constructor(\n private _ngZone: NgZone,\n private _scrollbars: OverlayScrollbarsService\n ) { }\n\n onInitScroller(scroller: any): void {\n this._scrollbars.initializeInstance(scroller.parentElement, {\n callbacks: {\n onScroll: (e) => {\n this._ngZone.run(() => {\n scroller.onScrolled(e)\n })\n }\n }\n })\n }\n\n onDestroyScroller(scroller: any): void {\n this._scrollbars.destroyInstance(scroller.parentElement)\n }\n\n setOffset(scroller: any, offsetY: number): void {\n this._ngZone.runOutsideAngular(() => {\n if (this.animatedScrolling) {\n this._scrollbars.getInstance(scroller.parentElement)\n .scroll({ y: offsetY }, this.animatedScrollingTime)\n } else {\n this._scrollbars.getInstance(scroller.parentElement)\n .scroll({ y: offsetY })\n }\n })\n }\n}\n","import { hasProperty } from '@theseam/ui-common/utils'\n\nimport { TheSeamDatatablePreferencesColumn } from '../models/preferences'\nimport { TheSeamDatatableColumn } from '../models/table-column'\n\nexport function withStoredColumnInfo(\n columns: TheSeamDatatableColumn[],\n preferenceColumns: TheSeamDatatablePreferencesColumn[]\n): TheSeamDatatableColumn[] {\n const _columns: TheSeamDatatableColumn[] = []\n for (const col of columns) {\n const storedCol = preferenceColumns.find(v => v.prop === col.prop)\n if (storedCol) {\n const _col = { ...col }\n if (hasProperty(storedCol, 'width')) { _col.width = Math.max(storedCol.width, 0) }\n _col.canAutoResize = storedCol.canAutoResize\n _columns.push(_col)\n } else {\n _columns.push(col)\n }\n }\n return _columns\n}\n","import { A11yModule } from '@angular/cdk/a11y'\nimport { OverlayModule } from '@angular/cdk/overlay'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\nimport { RouterModule } from '@angular/router'\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\nimport { NgxDatatableModule, ScrollbarHelper } from '@marklb/ngx-datatable'\nimport { ToastrModule } from 'ngx-toastr'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamCheckboxModule } from '@theseam/ui-common/checkbox'\nimport { TheSeamConfirmDialogModule } from '@theseam/ui-common/confirm-dialog'\nimport { TheSeamFormFieldModule } from '@theseam/ui-common/form-field'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamLoadingModule } from '@theseam/ui-common/loading'\nimport { TheSeamMenuModule } from '@theseam/ui-common/menu'\nimport { TheSeamPopoverModule } from '@theseam/ui-common/popover'\nimport { TheSeamSharedModule } from '@theseam/ui-common/shared'\nimport { TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type'\n\nimport { DatatableActionMenuItemComponent } from './datatable-action-menu-item/datatable-action-menu-item.component'\nimport { DatatableActionMenuComponent } from './datatable-action-menu/datatable-action-menu.component'\nimport { DatatableColumnPreferencesButtonComponent } from './datatable-column-preferences-button/datatable-column-preferences-button.component' // tslint:disable-line: max-line-length\nimport { DatatableColumnPreferencesComponent } from './datatable-column-preferences/datatable-column-preferences.component'\nimport { DatatableColumnComponent } from './datatable-column/datatable-column.component'\nimport { DatatableExportButtonComponent } from './datatable-export-button/datatable-export-button.component'\nimport { DatatableFooterTplDirective } from './datatable-footer/datatable-footer-tpl.directive'\nimport { TheSeamDatatableFooterDirective } from './datatable-footer/datatable-footer.directive'\nimport { DatatableMenuBarColumnCenterComponent } from './datatable-menu-bar-column-center/datatable-menu-bar-column-center.component'\nimport { DatatableMenuBarColumnLeftComponent } from './datatable-menu-bar-column-left/datatable-menu-bar-column-left.component'\nimport { DatatableMenuBarColumnRightComponent } from './datatable-menu-bar-column-right/datatable-menu-bar-column-right.component'\nimport { DatatableMenuBarRowComponent } from './datatable-menu-bar-row/datatable-menu-bar-row.component'\nimport { DatatableMenuBarTextComponent } from './datatable-menu-bar-text/datatable-menu-bar-text.component'\nimport { DatatableMenuBarComponent } from './datatable-menu-bar/datatable-menu-bar.component'\nimport { DatatableRowDetailTplDirective } from './datatable-row-detail/datatable-row-detail-tpl.directive'\nimport { TheSeamDatatableRowDetailDirective } from './datatable-row-detail/datatable-row-detail.directive'\nimport { DatatableComponent } from './datatable/datatable.component'\nimport { DatatableActionMenuItemDirective } from './directives/datatable-action-menu-item.directive'\nimport { DatatableActionMenuToggleDirective } from './directives/datatable-action-menu-toggle.directive'\nimport { DatatableCellTplDirective } from './directives/datatable-cell-tpl.directive'\nimport { DatatableFilterDirective } from './directives/datatable-filter.directive'\nimport { DatatableRowActionItemDirective } from './directives/datatable-row-action-item.directive'\nimport { TheSeamDatatableScrollbarHelperService } from './services/datatable-scrollbar-helper.service'\n\n@NgModule({\n declarations: [\n DatatableComponent,\n DatatableCellTplDirective,\n DatatableColumnComponent,\n DatatableActionMenuComponent,\n DatatableActionMenuToggleDirective,\n DatatableActionMenuItemComponent,\n DatatableMenuBarComponent,\n DatatableFilterDirective,\n DatatableRowActionItemDirective,\n DatatableExportButtonComponent,\n TheSeamDatatableRowDetailDirective,\n DatatableRowDetailTplDirective,\n TheSeamDatatableFooterDirective,\n DatatableFooterTplDirective,\n DatatableColumnPreferencesComponent,\n DatatableColumnPreferencesButtonComponent,\n DatatableActionMenuItemDirective,\n DatatableMenuBarRowComponent,\n DatatableMenuBarColumnLeftComponent,\n DatatableMenuBarColumnCenterComponent,\n DatatableMenuBarColumnRightComponent,\n DatatableMenuBarTextComponent,\n ],\n imports: [\n CommonModule,\n NgxDatatableModule,\n FontAwesomeModule,\n OverlayModule,\n A11yModule,\n TheSeamSharedModule,\n RouterModule,\n TheSeamMenuModule,\n TheSeamButtonsModule,\n TheSeamIconModule,\n ToastrModule,\n TheSeamLoadingModule,\n PortalModule,\n TheSeamConfirmDialogModule,\n TheSeamPopoverModule,\n TheSeamCheckboxModule,\n TheSeamFormFieldModule,\n ReactiveFormsModule,\n TheSeamTableCellTypeModule\n ],\n exports: [\n DatatableComponent,\n DatatableCellTplDirective,\n DatatableColumnComponent,\n DatatableActionMenuComponent,\n DatatableActionMenuItemComponent,\n DatatableMenuBarComponent,\n DatatableFilterDirective,\n DatatableRowActionItemDirective,\n DatatableExportButtonComponent,\n TheSeamDatatableRowDetailDirective,\n DatatableRowDetailTplDirective,\n TheSeamDatatableFooterDirective,\n DatatableFooterTplDirective,\n DatatableColumnPreferencesComponent,\n DatatableColumnPreferencesButtonComponent,\n DatatableActionMenuItemDirective,\n DatatableMenuBarRowComponent,\n DatatableMenuBarColumnLeftComponent,\n DatatableMenuBarColumnCenterComponent,\n DatatableMenuBarColumnRightComponent,\n DatatableMenuBarTextComponent\n ],\n providers: [\n { provide: ScrollbarHelper, useClass: TheSeamDatatableScrollbarHelperService }\n ]\n})\nexport class TheSeamDatatableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","i1.DatatableColumnChangesService","_scd","i1.DatatablePreferencesService","i2.ColumnsManagerService","i3.ColumnsAlterationsManagerService","NgxDatatableComponent","i5","i1.ColumnsAlterationsManagerService","i2","i6","i7","i5.DatatableColumnPreferencesComponent","i1"],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-datatable.mjs","sources":["../../../projects/ui-common/datatable/datatable-action-menu-item/datatable-action-menu-item.component.ts","../../../projects/ui-common/datatable/datatable-action-menu/datatable-action-menu.component.ts","../../../projects/ui-common/datatable/datatable-action-menu/datatable-action-menu.component.html","../../../projects/ui-common/datatable/directives/datatable-cell-tpl.directive.ts","../../../projects/ui-common/datatable/services/datatable-column-changes.service.ts","../../../projects/ui-common/datatable/datatable-column/datatable-column.component.ts","../../../projects/ui-common/datatable/datatable-column/datatable-column.component.html","../../../projects/ui-common/datatable/datatable-footer/datatable-footer-tpl.directive.ts","../../../projects/ui-common/datatable/datatable-footer/datatable-footer.directive.ts","../../../projects/ui-common/datatable/directives/datatable-filter.directive.ts","../../../projects/ui-common/datatable/datatable-menu-bar/datatable-menu-bar.component.ts","../../../projects/ui-common/datatable/datatable-menu-bar/datatable-menu-bar.component.html","../../../projects/ui-common/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.ts","../../../projects/ui-common/datatable/datatable-row-detail/datatable-row-detail.directive.ts","../../../projects/ui-common/datatable/directives/datatable-row-action-item.directive.ts","../../../projects/ui-common/datatable/models/datatable-data-source.ts","../../../projects/ui-common/datatable/utils/create-action-menu-column.ts","../../../projects/ui-common/datatable/utils/create-checkbox-column.ts","../../../projects/ui-common/datatable/utils/get-column-prop.ts","../../../projects/ui-common/datatable/utils/set-column-defaults.ts","../../../projects/ui-common/datatable/utils/translate-templates.ts","../../../projects/ui-common/datatable/services/columns-manager.service.ts","../../../projects/ui-common/datatable/tokens/datatable-accessor.ts","../../../projects/ui-common/datatable/utils/remove-unused-diffs.ts","../../../projects/ui-common/datatable/models/columns-alteration.ts","../../../projects/ui-common/datatable/models/columns-alterations/hide-column.columns-alteration.ts","../../../projects/ui-common/datatable/models/columns-alterations/sort.columns-alteration.ts","../../../projects/ui-common/datatable/models/columns-alterations/width.columns-alteration.ts","../../../projects/ui-common/datatable/services/columns-alterations-manager.service.ts","../../../projects/ui-common/datatable/models/internal-column-props.ts","../../../projects/ui-common/datatable/models/columns-alterations/order.columns-alteration.ts","../../../projects/ui-common/datatable/utils/map-columns-alterations-states.ts","../../../projects/ui-common/datatable/models/preferences.ts","../../../projects/ui-common/datatable/tokens/datatable-preferences-accessor.ts","../../../projects/ui-common/datatable/services/datatable-preferences.service.ts","../../../projects/ui-common/datatable/datatable/datatable.component.ts","../../../projects/ui-common/datatable/datatable/datatable.component.html","../../../projects/ui-common/datatable/datatable-column-preferences/datatable-column-preferences.component.ts","../../../projects/ui-common/datatable/datatable-column-preferences/datatable-column-preferences.component.html","../../../projects/ui-common/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.ts","../../../projects/ui-common/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.html","../../../projects/ui-common/datatable/datatable-export-button/datatable-export-button.component.ts","../../../projects/ui-common/datatable/datatable-export-button/datatable-export-button.component.html","../../../projects/ui-common/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.ts","../../../projects/ui-common/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.html","../../../projects/ui-common/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.ts","../../../projects/ui-common/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.html","../../../projects/ui-common/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.ts","../../../projects/ui-common/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.html","../../../projects/ui-common/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.ts","../../../projects/ui-common/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.html","../../../projects/ui-common/datatable/tokens/menubar-item-data.ts","../../../projects/ui-common/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.ts","../../../projects/ui-common/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.html","../../../projects/ui-common/datatable/directives/datatable-action-menu-item.directive.ts","../../../projects/ui-common/datatable/directives/datatable-action-menu-toggle.directive.ts","../../../projects/ui-common/datatable/models/datatable-gql-data-source.ts","../../../projects/ui-common/datatable/services/datatable-scrollbar-helper.service.ts","../../../projects/ui-common/datatable/utils/with-stored-column-info.ts","../../../projects/ui-common/datatable/datatable.module.ts","../../../projects/ui-common/datatable/theseam-ui-common-datatable.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core'\n\nimport { ThemeTypes } from '@theseam/ui-common/models'\n\n@Component({\n selector: 'seam-datatable-action-menu-item',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableActionMenuItemComponent {\n\n @Input() label: string | undefined | null\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('attr.href') href: string | undefined | null\n @Input() target: string | undefined | null\n\n // Allow routerLink inputs on menu item\n @Input() queryParams: {[k: string]: any} | undefined | null\n @Input() fragment: string | undefined | null\n @Input() queryParamsHandling: any\n @Input() preserveFragment: boolean| undefined | null\n @Input() skipLocationChange: boolean| undefined | null\n @Input() replaceUrl: boolean| undefined | null\n @Input() state: {[k: string]: any} | undefined | null\n @Input() routerLink: string | any[] | undefined | null\n\n @Input() confirmDialog: { message?: string, alert?: string | { message: string, type: ThemeTypes } } | undefined | null\n\n @Input() disabled: boolean | undefined | null\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() readonly click = new EventEmitter<any>()\n\n}\n","import { ConnectionPositionPair } from '@angular/cdk/overlay'\nimport { Component, ContentChildren, QueryList } from '@angular/core'\nimport { NavigationExtras, Router } from '@angular/router'\n\nimport { faEllipsisH } from '@fortawesome/free-solid-svg-icons'\n\nimport { SeamConfirmDialogService } from '@theseam/ui-common/confirm-dialog'\n\nimport { DatatableActionMenuItemComponent } from '../datatable-action-menu-item/datatable-action-menu-item.component'\n\n@Component({\n selector: 'seam-datatable-action-menu',\n templateUrl: './datatable-action-menu.component.html',\n styleUrls: ['./datatable-action-menu.component.scss']\n})\nexport class DatatableActionMenuComponent {\n\n faEllipsisH = faEllipsisH\n\n @ContentChildren(DatatableActionMenuItemComponent) items?: QueryList<DatatableActionMenuItemComponent>\n\n /** @ignore */\n _actionMenuPositions: ConnectionPositionPair[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n\n constructor(\n private _confirmDialog: SeamConfirmDialogService,\n private _router: Router\n ) { }\n\n activateItem(event: any, item: DatatableActionMenuItemComponent) {\n if (item.confirmDialog) {\n this._confirmDialog.open(item.confirmDialog.message, item.confirmDialog.alert)\n .afterClosed()\n .subscribe(v => {\n if (v === 'confirm') {\n item.click.emit(event)\n if (item.href) {\n const win = window.open(item.href, item.target || undefined)\n // TODO: Consider if always setting opener to null is to restrictive\n // if (win && item.target && item.target.toLowerCase() === '_blank') {\n // win.opener = null\n // }\n } else {\n const extras: NavigationExtras = {}\n if (item.queryParams) { extras.queryParams = item.queryParams }\n if (item.fragment) { extras.fragment = item.fragment }\n if (item.queryParamsHandling) { extras.queryParamsHandling = item.queryParamsHandling }\n if (item.preserveFragment) { extras.preserveFragment = item.preserveFragment }\n if (item.skipLocationChange) { extras.skipLocationChange = item.skipLocationChange }\n if (item.replaceUrl) { extras.replaceUrl = item.replaceUrl }\n if (item.state) { extras.state = item.state }\n\n const commands = Array.isArray(item.routerLink) ? item.routerLink : [item.routerLink]\n this._router.navigate(commands, extras)\n }\n }\n })\n } else {\n item.click.emit(event)\n }\n }\n\n}\n","<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 <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-container>\n</seam-menu>\n\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","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamDatatableCellTpl]'\n})\nexport class DatatableCellTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Injectable } from '@angular/core'\nimport { Observable, Subject } from 'rxjs'\n\n@Injectable()\nexport class DatatableColumnChangesService {\n\n private columnInputChanges = new Subject<undefined>()\n\n get columnInputChanges$(): Observable<undefined> {\n return this.columnInputChanges.asObservable()\n }\n\n onInputChange(): void {\n this.columnInputChanges.next(undefined)\n }\n\n}\n","import { Component, ContentChild, Input, OnChanges, PipeTransform, SimpleChanges, TemplateRef } from '@angular/core'\n\nimport { ColumnChangesService, TableColumnProp } from '@marklb/ngx-datatable'\n\nimport { DatatableCellTplDirective } from '../directives/datatable-cell-tpl.directive'\nimport { DatatableColumnChangesService } from '../services/datatable-column-changes.service'\n\n// HACK: Union type prevents the not found warning\ntype _PipeTransform = PipeTransform | PipeTransform\n\n// TODO: The column component should implement `ITheSeamDatatableColumn`, since\n// providing some properties by input and some by template could be confusing.\n\n@Component({\n selector: 'seam-datatable-column',\n templateUrl: './datatable-column.component.html',\n styleUrls: ['./datatable-column.component.scss']\n})\nexport class DatatableColumnComponent implements OnChanges {\n\n @Input() name?: string | null\n @Input() prop?: TableColumnProp | null\n\n @Input() flexGrow?: number | null\n @Input() minWidth?: number | null\n @Input() maxWidth?: number | null\n @Input() width?: number | null\n\n @Input() resizeable?: boolean | null\n @Input() sortable?: boolean | null\n @Input() draggable?: boolean | null\n\n @Input() canAutoResize?: boolean | null\n\n @Input() comparator?: ((valueA: any, valueB: any, rowA?: any, rowB?: any, sortDirection?: 'asc' | 'desc') => -1 | 0 | 1) | null\n\n @Input() headerTemplate?: TemplateRef<any> | null\n\n @Input() checkboxable?: boolean | null\n @Input() headerCheckboxable?: boolean | null\n\n @Input() headerClass?: string | ((data: any) => string|any) | null\n @Input() cellClass?: string | ((data: any) => string|any) | null\n\n @Input() frozenLeft?: boolean | null\n @Input() frozenRight?: boolean | null\n\n @Input() pipe?: _PipeTransform | null\n\n @Input() isTreeColumn?: boolean | null\n @Input() treeLevelIndent?: number | null\n\n @Input() summaryFunc?: ((cells: any[]) => any) | null\n @Input() summaryTemplate?: TemplateRef<any> | null\n\n @Input() hidden?: boolean | null\n\n private _isFirstChange = true\n\n @ContentChild(DatatableCellTplDirective, { static: true }) cellTplDirective?: DatatableCellTplDirective\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('cellTemplate')\n _cellTemplateInput?: TemplateRef<any> | null\n\n @ContentChild(DatatableCellTplDirective, { read: TemplateRef, static: true })\n _cellTemplateQuery?: TemplateRef<any>\n\n get cellTemplate(): TemplateRef<any> | undefined | null {\n return this._cellTemplateInput || this._cellTemplateQuery\n }\n\n // @Input('headerTemplate')\n // _headerTemplateInput: TemplateRef<any>;\n\n // @ContentChild(DataTableColumnHeaderDirective, { read: TemplateRef, static: true })\n // _headerTemplateQuery: TemplateRef<any>;\n\n // get headerTemplate(): TemplateRef<any> {\n // return this._headerTemplateInput || this._headerTemplateQuery;\n // }\n\n // @Input('treeToggleTemplate')\n // _treeToggleTemplateInput: TemplateRef<any>;\n\n // @ContentChild(DataTableColumnCellTreeToggle, { read: TemplateRef, static: true })\n // _treeToggleTemplateQuery: TemplateRef<any>;\n\n // get treeToggleTemplate(): TemplateRef<any> {\n // return this._treeToggleTemplateInput || this._treeToggleTemplateQuery;\n // }\n\n constructor(\n private _columnChangesService: DatatableColumnChangesService\n ) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (this._isFirstChange) {\n this._isFirstChange = false\n } else {\n this._columnChangesService.onInputChange()\n }\n }\n\n public getCellDirective(): DatatableCellTplDirective | null {\n if (this.cellTplDirective) {\n return this.cellTplDirective\n }\n\n return null\n }\n\n}\n","<p>\n datatable-column works!\n</p>\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamDatatableFooterTpl]'\n})\nexport class DatatableFooterTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { ContentChild, Directive, Input, TemplateRef } from '@angular/core'\n\nimport { DatatableFooterTplDirective } from './datatable-footer-tpl.directive'\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'seam-datatable-footer'\n})\nexport class TheSeamDatatableFooterDirective {\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('template')\n _templateInput: TemplateRef<any> | undefined | null\n\n @ContentChild(DatatableFooterTplDirective, { read: TemplateRef, static: true })\n _templateQuery: TemplateRef<any> | undefined | null\n\n get template(): TemplateRef<any> | undefined | null {\n return this._templateInput || this._templateQuery\n }\n\n}\n","import { Directive, Inject, Self } from '@angular/core'\n\nimport { IDataFilter, THESEAM_DATA_FILTER } from '@theseam/ui-common/data-filters'\n\n@Directive({\n selector: '[seamDatatableFilter]'\n})\nexport class DatatableFilterDirective {\n\n private _filter?: IDataFilter\n\n constructor(\n @Self() @Inject(THESEAM_DATA_FILTER) dataFilters: IDataFilter[]\n ) {\n if (dataFilters && dataFilters.length > 0) {\n this._filter = dataFilters[0]\n }\n }\n\n get filter() {\n return this._filter\n }\n\n}\n","import { Component, ContentChildren, EventEmitter, forwardRef, QueryList } from '@angular/core'\n\nimport { IDataFilter, THESEAM_DATA_FILTER_CONTAINER } from '@theseam/ui-common/data-filters'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DatatableFilterDirective } from '../directives/datatable-filter.directive'\n\nexport const _THESEAM_DATA_FILTER_CONTAINER: any = {\n provide: THESEAM_DATA_FILTER_CONTAINER,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DatatableMenuBarComponent)\n}\n\n@Component({\n selector: 'seam-datatable-menu-bar',\n templateUrl: './datatable-menu-bar.component.html',\n styleUrls: ['./datatable-menu-bar.component.scss'],\n providers: [ _THESEAM_DATA_FILTER_CONTAINER ]\n})\nexport class DatatableMenuBarComponent {\n\n @ContentChildren(DatatableFilterDirective)\n get filterDirectives(): QueryList<DatatableFilterDirective> | undefined {\n return this._filterDirectives\n }\n set filterDirectives(value: QueryList<DatatableFilterDirective> | undefined) {\n this._filterDirectives = value\n this.filtersChanged.emit(this.filters())\n }\n private _filterDirectives: QueryList<DatatableFilterDirective> | undefined\n\n private _filtersArr: IDataFilter[] = []\n\n public readonly filtersChanged = new EventEmitter<IDataFilter[]>()\n\n public filters(): IDataFilter[] {\n const fDirectives = this._filterDirectives\n ? this._filterDirectives.map(f => f.filter).filter(notNullOrUndefined)\n : []\n\n const fArr = this._filtersArr\n .filter(f => fDirectives.findIndex(fd => fd.uid === f.uid) === -1)\n return [ ...fArr, ...fDirectives ]\n }\n\n public addFilter(dataFilter: IDataFilter): void {\n this._filtersArr.push(dataFilter)\n this.filtersChanged.emit(this.filters())\n }\n\n public removeFilter(dataFilter: IDataFilter): void {\n this._filtersArr = this._filtersArr.filter(f => f !== dataFilter)\n this.filtersChanged.emit(this.filters())\n }\n\n}\n","<div class=\"bg-light border rounded p-2\">\n <ng-content></ng-content>\n</div>\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamDatatableRowDetailTpl]'\n})\nexport class DatatableRowDetailTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { ContentChild, Directive, EventEmitter, Input, Output, TemplateRef } from '@angular/core'\n\nimport { DatatableRowDetailTplDirective } from './datatable-row-detail-tpl.directive'\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'seam-datatable-row-detail'\n})\nexport class TheSeamDatatableRowDetailDirective {\n\n /**\n * The detail row height is required especially\n * when virtual scroll is enabled.\n */\n @Input() rowHeight: number | ((row?: any, index?: number) => number) | undefined | null = 0\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('template')\n _templateInput: TemplateRef<any> | undefined | null\n\n @ContentChild(DatatableRowDetailTplDirective, { read: TemplateRef, static: true })\n _templateQuery: TemplateRef<any> | undefined | null\n\n get template(): TemplateRef<any> | undefined | null {\n return this._templateInput || this._templateQuery\n }\n\n /**\n * Row detail row visbility was toggled.\n */\n // NOTE: This will trigger from the internal ngx-datatable toggle event.\n @Output() toggle: EventEmitter<any> = new EventEmitter()\n\n /**\n * Internal use for wrapper only.\n *\n * To avoid confusion with this directives output and the ngx-datatable\n * directive being wrapped, this directive emits `_toggle` stream to the\n * `ngx-datatable-row-detail` directive and emits it's `toggle` stream out to\n * this directives `toggle` stream.\n * @ignore\n */\n _toggle: EventEmitter<any> = new EventEmitter()\n\n /**\n * Toggle the expansion of the row\n */\n toggleExpandRow(row: any): void {\n this._toggle.emit({\n type: 'row',\n value: row\n })\n }\n\n /**\n * API method to expand all the rows.\n */\n expandAllRows(): void {\n this._toggle.emit({\n type: 'all',\n value: true\n })\n }\n\n /**\n * API method to collapse all the rows.\n */\n collapseAllRows(): void {\n this._toggle.emit({\n type: 'all',\n value: false\n })\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamDatatableRowActionItem]'\n})\nexport class DatatableRowActionItemDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { DataSource } from '@angular/cdk/collections'\nimport { BehaviorSubject, Observable, of } from 'rxjs'\nimport { map, startWith, switchMap } from 'rxjs/operators'\n\nimport { DataFilterState } from '@theseam/ui-common/data-filters'\n\nimport { TheSeamDatatableAccessor } from './datatable-accessor'\nimport { TheSeamPageInfo } from './page-info'\nimport { SortItem } from './sort-item'\n\nexport abstract class DatatableDataSource<TRow> extends DataSource<TRow> {\n\n private readonly _datatableSubject = new BehaviorSubject<TheSeamDatatableAccessor | undefined>(undefined)\n\n public readonly sorts$: Observable<SortItem[]>\n public readonly filterStates$: Observable<DataFilterState[]>\n public readonly page$: Observable<TheSeamPageInfo>\n\n constructor() {\n super()\n\n this.sorts$ = this._datatableSubject.pipe(\n switchMap(_datatable => {\n if (!_datatable) {\n return of([])\n }\n\n return _datatable.sort.pipe(\n map(v => v.sorts),\n startWith(_datatable.sorts)\n )\n })\n )\n\n this.filterStates$ = this._datatableSubject.pipe(\n switchMap(_datatable => {\n if (!_datatable) {\n return of([])\n }\n\n return _datatable.filterStates\n })\n )\n\n this.page$ = this._datatableSubject.pipe(\n switchMap(_datatable => {\n if (!_datatable) {\n return of({\n offset: 0,\n pageSize: 0,\n limit: undefined,\n count: 0\n })\n }\n\n return _datatable.page.pipe(\n startWith(_datatable.pageInfo)\n )\n })\n )\n }\n\n // connect(): Observable<readonly TRow[]> {\n // return this.\n // }\n\n // disconnect(): void {\n // throw new Error('Method not implemented.')\n // }\n\n public setDatatableAccessor(accessor: TheSeamDatatableAccessor): void {\n this._datatableSubject.next(accessor)\n }\n\n}\n","import { TheSeamDatatableColumn } from '../models/table-column'\n\nexport const ACTION_MENU_COLUMN_PROP = '$$__actionMenu__'\n\nexport function createActionMenuColumn(\n cellTemplate: any,\n headerTemplate: any\n): TheSeamDatatableColumn {\n return {\n prop: ACTION_MENU_COLUMN_PROP,\n name: '',\n width: 50,\n minWidth: 50,\n maxWidth: 50,\n resizeable: false,\n sortable: false,\n draggable: false,\n // TODO: Fix column auto sizing with fixed column and cell overlay before enabling.\n // frozenRight: true,\n cellTemplate,\n headerTemplate,\n }\n}\n","import { TheSeamDatatableColumn } from '../models/table-column'\n\nexport const CHECKBOX_COLUMN_PROP = '$$__checkbox__'\n\nexport function createCheckboxColumn(): TheSeamDatatableColumn {\n return {\n prop: CHECKBOX_COLUMN_PROP,\n name: '',\n width: 40,\n sortable: false,\n canAutoResize: false,\n draggable: false,\n resizeable: false,\n headerCheckboxable: true,\n checkboxable: true,\n }\n}\n","import { camelCase, TableColumn, TableColumnProp } from '@marklb/ngx-datatable'\n\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nexport function getColumnProp<T extends { prop?: TableColumnProp | null, name?: string | null }>(\n col: T\n): TableColumnProp | undefined {\n if (!notNullOrUndefined(col.prop) && col.name) {\n return camelCase(col.name)\n }\n\n return col.prop === null ? undefined : col.prop\n}\n","import { setColumnDefaults as _scd } from '@marklb/ngx-datatable'\n\nimport { TheSeamDatatableColumn } from '../models/table-column'\n\nexport function setColumnDefaults(columns: TheSeamDatatableColumn[]): void {\n for (const column of columns) {\n if (!Object.prototype.hasOwnProperty.call(column, 'hidden')) {\n column.hidden = false\n }\n }\n _scd(columns)\n}\n","import { translateTemplates } from '@marklb/ngx-datatable'\n\nimport { DatatableColumnComponent } from '../datatable-column/datatable-column.component'\nimport { getColumnProp } from '../utils/get-column-prop'\n\n// TODO: Replace with a `translateTemplates` function that fits the\n// wrapper component better.\nexport function translateTemplateColumns(v: DatatableColumnComponent[]): DatatableColumnComponent[] {\n const cols = translateTemplates(v as any) as DatatableColumnComponent[]\n\n for (const col of cols) {\n col.prop = getColumnProp(col)\n }\n\n return cols\n}\n","import { Injectable, KeyValueChanges, KeyValueDiffer, KeyValueDiffers, TemplateRef } from '@angular/core'\nimport { BehaviorSubject, combineLatest, defer, EMPTY, Observable, of, Subject } from 'rxjs'\nimport { auditTime, map, shareReplay, startWith, switchMap } from 'rxjs/operators'\n\nimport {\n DataTableColumnCellTreeToggle,\n DataTableColumnDirective,\n DataTableColumnHeaderDirective,\n SelectionType,\n TableColumn,\n TableColumnProp,\n} from '@marklb/ngx-datatable'\n\nimport { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DatatableColumnComponent } from '../datatable-column/datatable-column.component'\nimport { DatatableRowActionItemDirective } from '../directives/datatable-row-action-item.directive'\nimport { TheSeamDatatableColumn } from '../models/table-column'\nimport { createActionMenuColumn } from '../utils/create-action-menu-column'\nimport { createCheckboxColumn } from '../utils/create-checkbox-column'\nimport { getColumnProp } from '../utils/get-column-prop'\nimport { setColumnDefaults } from '../utils/set-column-defaults'\nimport { translateTemplateColumns } from '../utils/translate-templates'\nimport { DatatableColumnChangesService } from './datatable-column-changes.service'\n\nenum ColumnsTypes {\n Input,\n Template,\n Result,\n}\n\nexport type InternalColumnsGetter = () => TableColumn[]\n\n@Injectable()\nexport class ColumnsManagerService {\n private readonly _updateColumns = new Subject<void>()\n\n private readonly _inputColumns = new BehaviorSubject<TheSeamDatatableColumn[]>([])\n private readonly _templateColumns = new BehaviorSubject<DatatableColumnComponent[]>([])\n\n private readonly _inpColDiffersMap = new Map<TableColumnProp, KeyValueDiffer<any, any>>()\n private readonly _tplColDiffersMap = new Map<TableColumnProp, KeyValueDiffer<any, any>>()\n private readonly _resultColDiffersMap = new Map<TableColumnProp, KeyValueDiffer<any, any>>()\n private _colPropsDiffer?: KeyValueDiffer<any, any>\n\n private _internalColumnsGetter?: InternalColumnsGetter\n\n private _selectionType: SelectionType | undefined\n private _rowActionItem: DatatableRowActionItemDirective | undefined\n private _actionMenuCellTpl: TemplateRef<DataTableColumnDirective> | undefined\n private _blankHeaderTpl: TemplateRef<DataTableColumnHeaderDirective> | undefined\n private _treeToggleTpl: TemplateRef<DataTableColumnCellTreeToggle> | undefined\n private _headerTpl: TemplateRef<DataTableColumnHeaderDirective> | undefined\n private _cellTypeSelectorTpl: TemplateRef<DataTableColumnDirective> | undefined\n\n // TODO: Consider making this a columns changed obervable, to make changes more predictable.\n public readonly columns$: Observable<TheSeamDatatableColumn[]>\n\n constructor(\n private readonly _differs: KeyValueDiffers,\n private readonly _columnChangesService: DatatableColumnChangesService,\n ) {\n const templateColumns$ = this._columnChangesService.columnInputChanges$.pipe(\n startWith(undefined),\n switchMap(() => {\n return this._templateColumns.asObservable().pipe(map(translateTemplateColumns))\n })\n )\n\n this.columns$ = defer(() => {\n let isFirst = true\n return combineLatest([\n this._inputColumns.asObservable(),\n templateColumns$,\n this._updateColumns.asObservable().pipe(auditTime(0), startWith(undefined))\n ]).pipe(\n switchMap(([ inputColumns, templateColumns ]) => {\n const cols = this._mergeColumns(inputColumns, templateColumns)\n\n const hasColumnsChanged = this._hasColumnsChanged(cols)\n\n // TODO: Look for columns added/removed and remove the removed columns\n // differs, not just changes to columns.\n const hasAddedOrRemovedColumns = this._hasAddedOrRemovedColumns(cols)\n\n // NOTE: Both checks need to be run, even though only one needs to be\n // true, because their differs need to be called.\n if (hasColumnsChanged || hasAddedOrRemovedColumns || isFirst) {\n isFirst = false\n return of(cols)\n }\n\n return EMPTY\n }),\n )\n }).pipe(\n shareReplay({ refCount: true, bufferSize: 1 })\n )\n }\n\n public setInputColumns(columns: TheSeamDatatableColumn[]): void {\n this._inputColumns.next(columns)\n }\n\n public setTemplateColumns(columns: DatatableColumnComponent[]): void {\n this._templateColumns.next(columns)\n }\n\n public setInternalColumnsGetter(getter: InternalColumnsGetter | null): void {\n this._internalColumnsGetter = getter || undefined\n this._updateColumns.next(undefined)\n }\n\n public setSelectionType(selectionType: SelectionType | undefined): void {\n const changed = this._selectionType !== selectionType\n this._selectionType = selectionType\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n public getSelectionType(): SelectionType | undefined {\n return this._selectionType\n }\n\n public setRowActionItem(rowActionItem: DatatableRowActionItemDirective | undefined): void {\n const changed = this._rowActionItem !== rowActionItem\n this._rowActionItem = rowActionItem\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n public setActionMenuCellTpl(actionMenuCellTpl: TemplateRef<DataTableColumnDirective> | undefined): void {\n const changed = this._actionMenuCellTpl !== actionMenuCellTpl\n this._actionMenuCellTpl = actionMenuCellTpl\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n public setBlankHeaderTpl(blankHeaderTpl: TemplateRef<DataTableColumnHeaderDirective> | undefined): void {\n const changed = this._blankHeaderTpl !== blankHeaderTpl\n this._blankHeaderTpl = blankHeaderTpl\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n public setTreeToggleTpl(treeToggleTpl: TemplateRef<DataTableColumnCellTreeToggle> | undefined): void {\n const changed = this._treeToggleTpl !== treeToggleTpl\n this._treeToggleTpl = treeToggleTpl\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n public setHeaderTpl(headerTpl: TemplateRef<DataTableColumnHeaderDirective> | undefined): void {\n const changed = this._headerTpl !== headerTpl\n this._headerTpl = headerTpl\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n public setCellTypeSelectorTpl(cellTypeSelectorTpl: TemplateRef<DataTableColumnDirective> | undefined): void {\n const changed = this._cellTypeSelectorTpl !== cellTypeSelectorTpl\n this._cellTypeSelectorTpl = cellTypeSelectorTpl\n if (changed) {\n this._updateColumns.next(undefined)\n }\n }\n\n private _mergeColumns(\n inputColumns: TheSeamDatatableColumn[],\n templateColumns: DatatableColumnComponent[]\n ): TheSeamDatatableColumn[] {\n const cols: TheSeamDatatableColumn[] = []\n\n // Add the first column checkbox if 'checkbox' selection is enabled.\n if (this._shouldAddCheckboxColumn()) {\n cols.push(createCheckboxColumn())\n }\n\n // Column needs to be provided in the inputColumns, so iterate the\n // inputColumns.\n for (const inpCol of inputColumns) {\n const prop = getColumnProp(inpCol)\n if (!notNullOrUndefined(prop)) {\n throw Error(`Column may have 'prop' or 'name' defined.`)\n }\n\n const internalCol = this._getInternalColumn(prop)\n\n const inpColDif = this._getColDif(inpCol, ColumnsTypes.Input)\n if (notNullOrUndefined(inpColDif)) {\n this._updateColDif(inpColDif, internalCol, inpCol)\n }\n\n const tplCol = this._findColumnByProp(prop, templateColumns)\n if (tplCol !== undefined) {\n const tplColDif = this._getColDif(tplCol, ColumnsTypes.Template)\n if (notNullOrUndefined(tplColDif)) {\n this._updateColDif(tplColDif, internalCol, tplCol)\n }\n }\n\n const _col: TheSeamDatatableColumn = {\n ...(internalCol || {}),\n ...inpCol,\n // TODO: Rethink this, because I don't know if this is correct.\n ...(tplCol as any || {})\n }\n\n if (this._shouldAddTreeToggleColumn(_col)) {\n _col.treeToggleTemplate = this._treeToggleTpl\n }\n\n if (this._shouldAddHeaderTemplate(_col)) {\n _col.headerTemplate = this._headerTpl\n }\n\n if (this._shouldAddCellTypeSelectorTpl(_col)) {\n _col.cellTemplate = this._cellTypeSelectorTpl\n }\n\n cols.push(_col)\n }\n\n if (this._shouldAddRowActionColumn()) {\n cols.push(createActionMenuColumn(this._actionMenuCellTpl, this._blankHeaderTpl))\n }\n\n // Make sure the default for any missing props are set.\n // TODO: Determine if this should be done earlier, because I don't like\n // how this is done after dif checks.\n setColumnDefaults(cols)\n\n return cols\n }\n\n private _getInternalColumns(): TableColumn[] | undefined {\n if (this._internalColumnsGetter === undefined) {\n return undefined\n }\n\n return this._internalColumnsGetter()\n }\n\n private _getInternalColumn(prop: TableColumnProp): TableColumn | undefined {\n const internalCols = this._getInternalColumns()\n\n if (internalCols === undefined) {\n return undefined\n }\n\n return internalCols.find(c => getColumnProp(c) === prop)\n }\n\n private _findColumnByProp<T extends TheSeamDatatableColumn | DatatableColumnComponent>(\n prop: TableColumnProp,\n columns: T[]\n ): T | undefined {\n return columns.find(c => getColumnProp(c) === prop)\n }\n\n private _getDifMapForColumnsType(columnsType: ColumnsTypes): Map<TableColumnProp, KeyValueDiffer<any, any>> {\n switch (columnsType) {\n case ColumnsTypes.Input: return this._inpColDiffersMap\n case ColumnsTypes.Template: return this._tplColDiffersMap\n case ColumnsTypes.Result: return this._resultColDiffersMap\n }\n }\n\n private _getColumnDiffer(prop: TableColumnProp, colsType: ColumnsTypes): KeyValueDiffer<string, any> {\n const difMap = this._getDifMapForColumnsType(colsType)\n if (difMap === null) {\n throw Error(`Invalid columns type.`)\n }\n\n if (!difMap.has(prop)) {\n difMap.set(prop, this._differs.find({}).create())\n }\n\n const differ = difMap.get(prop)\n if (differ === undefined) {\n throw Error(`Differ not found. New differ should have been created.`)\n }\n\n return differ\n }\n\n private _getColDif(\n col: TheSeamDatatableColumn | DatatableColumnComponent,\n colsType: ColumnsTypes\n ): KeyValueChanges<string, any> | null {\n const prop = getColumnProp(col)\n if (prop === undefined) {\n throw Error(`Column prop not found.`)\n }\n\n return this._getColumnDiffer(prop, colsType).diff(col)\n }\n\n private _updateColDif(\n colDif: KeyValueChanges<string, any>,\n internalColumn: TableColumn | undefined,\n col: TheSeamDatatableColumn | DatatableColumnComponent\n ): void {\n colDif.forEachRemovedItem(r => {\n if (internalColumn && Object.prototype.hasOwnProperty.call(internalColumn, r.key)) {\n const k = r.key as keyof TableColumn\n delete internalColumn[k]\n }\n })\n colDif.forEachAddedItem(r => (col as any)[r.key] = r.currentValue)\n colDif.forEachChangedItem(r => (col as any)[r.key] = r.currentValue)\n }\n\n private _hasAddedOrRemovedColumns(columns: TheSeamDatatableColumn[]): boolean {\n if (!this._colPropsDiffer) {\n this._colPropsDiffer = this._differs.find([]).create()\n }\n\n const props = columns.map(c => getColumnProp(c))\n return this._colPropsDiffer.diff(props) !== null\n }\n\n private _hasColumnsChanged(columns: TheSeamDatatableColumn[]): boolean {\n let colChanged = false\n for (const col of columns) {\n const resultDif = this._getColDif(col, ColumnsTypes.Result)\n if (resultDif) {\n // NOTE: Can't return early, because the differs need to be updated.\n colChanged = true\n }\n }\n return colChanged\n }\n\n private _shouldAddCheckboxColumn(): boolean {\n return this._selectionType === SelectionType.checkbox\n }\n\n private _shouldAddRowActionColumn(): boolean {\n return this._rowActionItem !== undefined\n }\n\n private _shouldAddTreeToggleColumn(column: TheSeamDatatableColumn): boolean {\n return column.isTreeColumn !== undefined && column.isTreeColumn &&\n (!hasProperty(column, 'treeToggleTemplate') || !notNullOrUndefined(column.treeToggleTemplate))\n }\n\n private _shouldAddHeaderTemplate(column: TheSeamDatatableColumn): boolean {\n return !hasProperty(column, 'headerTemplate')\n }\n\n private _shouldAddCellTypeSelectorTpl(column: TheSeamDatatableColumn): boolean {\n return hasProperty(column, 'cellType')\n }\n\n}\n","import { InjectionToken } from '@angular/core'\n\nimport { TheSeamDatatableAccessor } from '../models/datatable-accessor'\n\nexport const THESEAM_DATATABLE_ACCESSOR = new InjectionToken<TheSeamDatatableAccessor>(\n 'TheSeamDatatableAccessor'\n)\n","import { KeyValueDiffer } from '@angular/core'\n\nimport { TheSeamDatatableColumn } from './../models/table-column'\n\nexport function removeUnusedDiffs(\n cols: TheSeamDatatableColumn[],\n colDiffersInp: { [propName: string]: KeyValueDiffer<any, any> },\n colDiffersTpl: { [propName: string]: KeyValueDiffer<any, any> }\n): void {\n const inpKeys = Object.keys(colDiffersInp)\n inpKeys.filter(k => cols.findIndex(c => c.prop === k) === -1)\n .forEach(k => { delete colDiffersInp[k] })\n\n const tplKeys = Object.keys(colDiffersTpl)\n tplKeys.filter(k => cols.findIndex(c => c.prop === k) === -1)\n .forEach(k => { delete colDiffersTpl[k] })\n}\n","import { TheSeamDatatableAccessor } from './datatable-accessor'\nimport { TheSeamDatatableColumn } from './table-column'\n\nexport interface ColumnsAlterationState<TState = any> {\n readonly id: string\n readonly type: string\n readonly state: TState\n}\n\n/**\n * Alteration applied to a column or columns that can be persisted.\n *\n * Tracking if a column was altered by user or library code can be confusing.\n * This allows us to store a list of replayable alterations on columns. By\n * having a defined way to implement alterations, the datatable should be easier\n * to support external features that want to provide an alteration.\n *\n * NOTE: Current, to unapply an alteration you can create an alteration with\n * `persistent` set to false and the alteration will be removed after `apply()`\n * is called.\n */\nexport abstract class ColumnsAlteration<TState = any> {\n /**\n * This should be unique to the alteration, but determinable. When an app is\n * reloaded and alterations are restored from a persistable storage this\n * should still be recognizable.\n */\n public abstract readonly id: string\n\n /**\n * The alteration type.\n *\n * This can be used to group alteraction from a common feature.\n */\n public abstract readonly type: string\n\n constructor(\n /**\n * Persistable state.\n *\n * Returned value should be JSON stringifyable.\n */\n public state: TState,\n /**\n * If false, the state will not be persisted to a persistent storage and\n * will be removed after applied.\n */\n public readonly persistent: boolean\n ) {\n this.state = state\n }\n\n /**\n * Apply alteration to column.\n */\n public abstract apply(columns: TheSeamDatatableColumn[], datatable: TheSeamDatatableAccessor): void\n\n public toJSON(): ColumnsAlterationState<TState> {\n return {\n id: this.id,\n type: this.type,\n state: this.state\n }\n }\n}\n","import { TableColumnProp } from '@marklb/ngx-datatable'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { getColumnProp } from '../../utils/get-column-prop'\nimport { ColumnsAlteration } from '../columns-alteration'\nimport { TheSeamDatatableAccessor } from '../datatable-accessor'\nimport { TheSeamDatatableColumn } from '../table-column'\n\nexport interface HideColumnColumnsAlterationState {\n columnProp: TableColumnProp\n hidden: boolean\n}\n\nexport class HideColumnColumnsAlteration extends ColumnsAlteration<HideColumnColumnsAlterationState> {\n public readonly id: string\n\n public readonly type: string = 'hide-column'\n\n constructor(\n state: HideColumnColumnsAlterationState,\n persistent: boolean\n ) {\n super(state, persistent)\n\n if (!this._isValidState(state)) {\n throw Error(`Invalid state: ${JSON.stringify(state)}`)\n }\n\n this.id = `${this.type}--${state.columnProp}`\n }\n\n public apply(columns: TheSeamDatatableColumn<any, any>[], datatable: TheSeamDatatableAccessor): void {\n for (const col of columns) {\n const prop = getColumnProp(col)\n if (prop === this.state.columnProp) {\n col.hidden = this.state.hidden\n }\n }\n }\n\n private _isValidState(state: HideColumnColumnsAlterationState): boolean {\n // NOTE: Checking null or undefined, even though the type doesn't allow,\n // because the state may have been loaded from an invalid persistant\n // storage.\n\n // TODO: Remove when state validation/migration is implemented to happen\n // when retrieved from storage.\n if (!notNullOrUndefined(state.columnProp)) {\n return false\n }\n\n // TODO: Remove when state validation/migration is implemented to happen\n // when retrieved from storage.\n if (!notNullOrUndefined(state.hidden)) {\n return false\n }\n\n return true\n }\n}\n","import { SortType } from '@marklb/ngx-datatable'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { SortItem } from '../sort-item'\nimport { ColumnsAlteration } from '../columns-alteration'\nimport { TheSeamDatatableAccessor } from '../datatable-accessor'\nimport { TheSeamDatatableColumn } from '../table-column'\n\n// NOTE: This doesn't act on a single SortItem, because dealing with conflicts\n// between if a sort was added by an alteration or datatable input is difficult\n// to determine. There may be some good assumptions for handling the issues, but\n// for now I think it is safest to just store the whole sorts array as an\n// alteration.\nexport interface SortColumnsAlterationState {\n sorts: SortItem[]\n}\n\nexport class SortColumnsAlteration extends ColumnsAlteration<SortColumnsAlterationState> {\n public readonly id: string\n\n public readonly type: string = 'sort'\n\n constructor(\n state: SortColumnsAlterationState,\n persistent: boolean\n ) {\n super(state, persistent)\n\n if (!this._isValidState(state)) {\n throw Error(`Invalid state: ${JSON.stringify(state)}`)\n }\n\n this.id = `${this.type}`\n }\n\n public apply(columns: TheSeamDatatableColumn<any, any>[], datatable: TheSeamDatatableAccessor): void {\n if (datatable.sortType === SortType.single) {\n datatable.sorts = this.state.sorts.length > 0 ? [ this.state.sorts[0] ] : []\n } else {\n datatable.sorts = this.state.sorts\n }\n }\n\n private _isValidState(state: SortColumnsAlterationState): boolean {\n // NOTE: Checking null or undefined, even though the type doesn't allow,\n // because the state may have been loaded from an invalid persistant\n // storage.\n\n // TODO: Remove when state validation/migration is implemented to happen\n // when retrieved from storage.\n if (!notNullOrUndefined(state.sorts)) {\n return false\n }\n\n return true\n }\n}\n","import { TableColumnProp } from '@marklb/ngx-datatable'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { getColumnProp } from '../../utils/get-column-prop'\nimport { ColumnsAlteration } from '../columns-alteration'\nimport { TheSeamDatatableAccessor } from '../datatable-accessor'\nimport { TheSeamDatatableColumn } from '../table-column'\n\nexport interface WidthColumnsAlterationState {\n columnProp: TableColumnProp\n width?: number\n canAutoResize: boolean\n}\n\nexport class WidthColumnsAlteration extends ColumnsAlteration<WidthColumnsAlterationState> {\n public readonly id: string\n\n public readonly type: string = 'width'\n\n constructor(\n state: WidthColumnsAlterationState,\n persistent: boolean\n ) {\n super(state, persistent)\n\n if (!this._isValidState(state)) {\n throw Error(`Invalid state: ${JSON.stringify(state)}`)\n }\n\n this.id = `${this.type}--${state.columnProp}`\n }\n\n public apply(columns: TheSeamDatatableColumn<any, any>[], datatable: TheSeamDatatableAccessor): void {\n for (const col of columns) {\n const prop = getColumnProp(col)\n if (prop === this.state.columnProp) {\n col.canAutoResize = this.state.canAutoResize\n if (notNullOrUndefined(this.state.width)) {\n col.width = this.state.width\n }\n }\n }\n }\n\n private _isValidState(state: WidthColumnsAlterationState): boolean {\n // NOTE: Checking null or undefined, even though the type doesn't allow,\n // because the state may have been loaded from an invalid persistant\n // storage.\n\n // TODO: Remove when state validation/migration is implemented to happen\n // when retrieved from storage.\n if (!notNullOrUndefined(state.columnProp)) {\n return false\n }\n\n // TODO: Remove when state validation/migration is implemented to happen\n // when retrieved from storage.\n if (!notNullOrUndefined(state.canAutoResize)) {\n return false\n }\n\n return true\n }\n}\n","import { Injectable } from '@angular/core'\nimport { Observable, Subject } from 'rxjs'\n\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { ColumnsAlteration } from '../models/columns-alteration'\nimport { TheSeamDatatableColumn } from '../models/table-column'\nimport { TheSeamDatatableAccessor } from '../models/datatable-accessor'\nimport { HideColumnColumnsAlteration } from '../models/columns-alterations/hide-column.columns-alteration'\nimport { SortColumnsAlteration } from '../models/columns-alterations/sort.columns-alteration'\nimport { WidthColumnsAlteration } from '../models/columns-alterations/width.columns-alteration'\n\nexport interface ColumnsAlterationsChangedRecord {\n type: 'added' | 'removed'\n alteration: ColumnsAlteration\n}\n\nexport interface ColumnsAlterationsChangedEvent {\n changes: ColumnsAlterationsChangedRecord[]\n}\n\n@Injectable()\nexport class ColumnsAlterationsManagerService {\n\n private readonly _changesSubject = new Subject<ColumnsAlterationsChangedEvent>()\n private _alterations: ColumnsAlteration[] = []\n\n public readonly changes: Observable<ColumnsAlterationsChangedEvent>\n\n constructor() {\n this.changes = this._changesSubject.asObservable()\n }\n\n public get(): ColumnsAlteration[] {\n return [ ...this._alterations ]\n }\n\n /**\n * Adds alterations to be applied to columns.\n *\n * If an alteration with the same `id` already exists then the existing\n * alteration will be removed and the new one added.\n *\n * NOTE: When there is a duplicate alteration the old alteration is removed,\n * instead of updated, to maintain the order alterations are applied.\n */\n public add(alterations: ColumnsAlteration[], options?: { emitEvent?: boolean }): ColumnsAlterationsChangedRecord[] {\n // console.log('add', alterations)\n const removed: ColumnsAlterationsChangedRecord[] = this.remove(alterations, { emitEvent: false })\n this._alterations = [ ...this._alterations, ...alterations ]\n\n const changes: ColumnsAlterationsChangedRecord[] = [\n ...removed,\n ...alterations.map(a => {\n const record: ColumnsAlterationsChangedRecord = {\n type: 'added',\n alteration: a\n }\n return record\n })\n ]\n\n if (notNullOrUndefined(options?.emitEvent) && !options?.emitEvent) {\n return changes\n }\n\n this._emitChanges(changes)\n\n return changes\n }\n\n public remove(alterations: ColumnsAlteration[], options?: { emitEvent?: boolean }): ColumnsAlterationsChangedRecord[] {\n // console.log('remove', alterations)\n const removed: ColumnsAlterationsChangedRecord[] = []\n this._alterations = this._alterations.filter(x => {\n const found = alterations.findIndex(y => y.id === x.id) !== -1\n if (found) {\n const eventRecord: ColumnsAlterationsChangedRecord = {\n type: 'removed',\n alteration: x\n }\n removed.push(eventRecord)\n }\n return !found\n })\n\n // console.log('removed', removed, this._alterations)\n\n if (notNullOrUndefined(options?.emitEvent) && !options?.emitEvent) {\n return removed\n }\n\n this._emitChanges(removed)\n\n return removed\n }\n\n public apply(columns: TheSeamDatatableColumn[], datatable: TheSeamDatatableAccessor): void {\n for (const a of this._alterations) {\n a.apply(columns, datatable)\n }\n\n this._removeNonPersistant()\n }\n\n // TODO: Make aware of original column order and properties. This is tricky,\n // because the datatable does not deal with immutable column/row records and\n // it is hard to know where changes happened. Just serializing the columns\n // input is not enough, because the columns input is called anytime the user\n // makes a column change. We can probably come up with a mostly accurate\n // implementation, such as \"reset original columns cache when preferencesKey\n // changes\" or \"number of columns change\". There are issues with those rules,\n // but with some testing/experimenting I think there should be a \"good enough\"\n // solution.\n //\n // TODO: Find a generic way to clear alterations. I would like to add an\n // `unapply` method to `ColumnsAlteration`, but since the alterations\n // themselves are not too generic it may be tricky.\n public clear(options?: { emitEvent?: boolean }): ColumnsAlterationsChangedRecord[] {\n const changes: ColumnsAlterationsChangedRecord[] = []\n for (const colAlt of this._alterations) {\n switch (colAlt.type) {\n case 'hide-column': {\n const alteration = new HideColumnColumnsAlteration({ columnProp: colAlt.state.columnProp, hidden: false }, false)\n changes.push(...this.add([ alteration ]))\n break\n }\n case 'order': {\n changes.push(...this.remove([ colAlt ]))\n break\n }\n case 'sort': {\n const alteration = new SortColumnsAlteration({ sorts: [] }, false)\n changes.push(...this.add([ alteration ]))\n break\n }\n case 'width': {\n const alteration = new WidthColumnsAlteration({ columnProp: colAlt.state.columnProp, canAutoResize: true }, false)\n changes.push(...this.add([ alteration ]))\n break\n }\n }\n }\n\n if (notNullOrUndefined(options?.emitEvent) && !options?.emitEvent) {\n return changes\n }\n\n this._emitChanges(changes)\n\n return changes\n }\n\n private _removeNonPersistant(): void {\n const nonPersistent = this._alterations.filter(x => !x.persistent)\n this.remove(nonPersistent, { emitEvent: false })\n }\n\n private _emitChanges(changes: ColumnsAlterationsChangedRecord[]): void {\n if (changes.length === 0) {\n return\n }\n\n const event: ColumnsAlterationsChangedEvent = {\n changes\n }\n\n this._changesSubject.next(event)\n }\n\n}\n","import { ACTION_MENU_COLUMN_PROP } from '../utils/create-action-menu-column'\nimport { CHECKBOX_COLUMN_PROP } from '../utils/create-checkbox-column'\nimport { getColumnProp } from '../utils/get-column-prop'\nimport { TheSeamDatatableColumn } from './table-column'\n\n/**\n * Strings used for columns created and managed\n * by the datatable.\n */\nexport const INTERNAL_COLUMN_PROPS: string[] = [\n ACTION_MENU_COLUMN_PROP,\n CHECKBOX_COLUMN_PROP\n]\n\nexport function isInternalColumn(column: TheSeamDatatableColumn): boolean {\n return INTERNAL_COLUMN_PROPS.findIndex(p => getColumnProp(column) === p) !== -1\n}\n","import { isDevMode } from '@angular/core'\n\nimport { TableColumnProp } from '@marklb/ngx-datatable'\nimport { arrayMoveMutable, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { getColumnProp } from '../../utils/get-column-prop'\nimport { ColumnsAlteration } from '../columns-alteration'\nimport { TheSeamDatatableAccessor } from '../datatable-accessor'\nimport { isInternalColumn } from '../internal-column-props'\nimport { TheSeamDatatableColumn } from '../table-column'\n\nexport interface ColumnOrderRecord {\n columnProp: TableColumnProp\n index: number\n}\n\nexport interface OrderColumnsAlterationState {\n // NOTE: This stores the column index of reordered columns only, to avoid any\n // new columns from always being placed at the end. The moved columns should\n // always be accurate relative to each other, but if this becomes an issue\n // then we can just store all the columns positions.\n columns: ColumnOrderRecord[]\n}\n\nexport class OrderColumnsAlteration extends ColumnsAlteration<OrderColumnsAlterationState> {\n public readonly id: string\n\n public readonly type: string = 'order'\n\n constructor(\n state: OrderColumnsAlterationState,\n persistent: boolean\n ) {\n super(state, persistent)\n\n if (!this._isValidState(state)) {\n throw Error(`Invalid state: ${JSON.stringify(state)}`)\n }\n\n this.id = `${this.type}`\n }\n\n public apply(columns: TheSeamDatatableColumn<any, any>[], datatable: TheSeamDatatableAccessor): void {\n if (this.state.columns.length === 0) {\n return\n }\n\n const stateColumns = this._stateColumns()\n\n // The internal columns are not intended for a user to be able to move them.\n // Store the internal columns current index, so it can be moved back ofter\n // sorting. This may not be the best way to do this, but it is easier than\n // making a sort that avoids them.\n //\n // NOTE: If we add an internal column that can be moved then this will need\n // to be changed.\n const internalColumns = columns\n .map((column, index) => ({ column, index }))\n .filter(x => isInternalColumn(x.column))\n\n for (const c of stateColumns) {\n const currentIndex = columns.findIndex(x => getColumnProp(x) === c.columnProp)\n if (currentIndex === c.index || currentIndex === -1) {\n // Skip if already at correct index.\n // Skip columns not found. It may be a column that was removed from the\n // table, but we still want to handle the other columns.\n continue\n }\n\n arrayMoveMutable(columns, currentIndex, c.index)\n }\n\n for (const c of internalColumns) {\n const currentIndex = columns.findIndex(col => col === c.column)\n if (currentIndex !== -1) {\n arrayMoveMutable(columns, currentIndex, c.index)\n } else {\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn(`Internal column could not be found after sorting. Was it lost during the sorting?`)\n }\n }\n }\n }\n\n private _isValidState(state: OrderColumnsAlterationState): boolean {\n // NOTE: Checking null or undefined, even though the type doesn't allow,\n // because the state may have been loaded from an invalid persistant\n // storage.\n\n // TODO: Remove when state validation/migration is implemented to happen\n // when retrieved from storage.\n if (!notNullOrUndefined(state.columns)) {\n return false\n }\n\n // NOTE: Didn't iterate each column record, because it is probably better to\n // just skip to invalid column records. It does prevent being able to\n // validate the whole state though.\n\n return true\n }\n\n private _isColumnOrderRecordValid(columnOrder: ColumnOrderRecord): boolean {\n return notNullOrUndefined(columnOrder.columnProp) && notNullOrUndefined(columnOrder.index)\n }\n\n private _stateColumns(): ColumnOrderRecord[] {\n return this.state.columns.filter(c => {\n if (!this._isColumnOrderRecordValid(c)) {\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('Invalid column order record', c)\n }\n return false\n }\n return true\n }).sort((a, b) => a.index === b.index ? 0 : a.index > b.index ? 1 : -1)\n }\n}\n","import { isDevMode } from '@angular/core'\n\nimport { ColumnsAlteration, ColumnsAlterationState } from '../models/columns-alteration'\nimport { HideColumnColumnsAlteration } from '../models/columns-alterations/hide-column.columns-alteration'\nimport { OrderColumnsAlteration } from '../models/columns-alterations/order.columns-alteration'\nimport { SortColumnsAlteration } from '../models/columns-alterations/sort.columns-alteration'\nimport { WidthColumnsAlteration } from '../models/columns-alterations/width.columns-alteration'\n\nexport function mapColumnsAlterationsStates(states: ColumnsAlterationState[]): ColumnsAlteration[] {\n const alterations: ColumnsAlteration[] = []\n\n for (const state of states) {\n try {\n switch (state.type) {\n case 'hide-column': alterations.push(new HideColumnColumnsAlteration(state.state, true)); break\n case 'width': alterations.push(new WidthColumnsAlteration(state.state, true)); break\n case 'order': alterations.push(new OrderColumnsAlteration(state.state, true)); break\n case 'sort': alterations.push(new SortColumnsAlteration(state.state, true)); break\n default: {\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('Unrecognized ColumnsAlteration state', state)\n }\n }\n }\n } catch (e) {\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('Unable to map ColumnsAlteration state', state)\n // eslint-disable-next-line no-console\n console.warn(e)\n }\n }\n }\n\n return alterations\n}\n","import { ColumnsAlterationState } from './columns-alteration'\n\nexport interface TheSeamDatatablePreferencesColumn {\n prop: string\n width?: number\n canAutoResize?: boolean\n hidden?: boolean\n}\n\nexport interface TheSeamDatatablePreferences_v1 {\n columns?: TheSeamDatatablePreferencesColumn[]\n}\n\nexport interface TheSeamDatatablePreferences_v2 {\n version: 2\n alterations: ColumnsAlterationState[]\n}\n\nexport type TheSeamDatatablePreferences = TheSeamDatatablePreferences_v2\n\nexport const CURRENT_DATATABLE_PREFERENCES_VERSION = 2\n\nexport const EMPTY_DATATABLE_PREFERENCES: TheSeamDatatablePreferences = {\n version: 2,\n alterations: []\n}\n","import { InjectionToken } from '@angular/core'\n\nimport { TheSeamDatatablePreferencesAccessor } from '../models/preferences-accessor'\n\nexport const THESEAM_DATATABLE_PREFERENCES_ACCESSOR = new InjectionToken<TheSeamDatatablePreferencesAccessor>(\n 'TheSeamDatatablePreferencesAccessor'\n)\n","import { Inject, Injectable, isDevMode, Optional } from '@angular/core'\nimport { Observable, of, Subject } from 'rxjs'\nimport { map, shareReplay, startWith, switchMap, take, tap } from 'rxjs/operators'\n\nimport { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils'\nimport { EMPTY_DATATABLE_PREFERENCES, TheSeamDatatablePreferences, TheSeamDatatablePreferencesColumn } from '../models/preferences'\nimport type { TheSeamDatatablePreferencesAccessor } from '../models/preferences-accessor'\nimport { THESEAM_DATATABLE_PREFERENCES_ACCESSOR } from '../tokens/datatable-preferences-accessor'\nimport { withStoredColumnInfo } from '../utils/with-stored-column-info'\nimport { ColumnsAlterationState } from '../models/columns-alteration'\n\nexport interface IDatatablePreferencesMapRecord {\n observable: Observable<TheSeamDatatablePreferences>\n refresh: Subject<void>\n}\n\n// TODO: Add per key status\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DatatablePreferencesService {\n\n private readonly _tablePrefsMap = new Map<string, IDatatablePreferencesMapRecord>()\n private _pending = false\n private _loaded = false\n\n public get pending() { return this._pending }\n public get loaded() { return this._loaded }\n\n constructor(\n @Optional() @Inject(THESEAM_DATATABLE_PREFERENCES_ACCESSOR) private _prefsAccessor?: TheSeamDatatablePreferencesAccessor\n ) { }\n\n public preferences(preferenceKey: string): Observable<TheSeamDatatablePreferences> {\n let prefs = this._tablePrefsMap.get(preferenceKey)\n if (!prefs) {\n const refreshSubject = new Subject<void>()\n prefs = {\n observable: this._createObservable(refreshSubject, preferenceKey),\n refresh: refreshSubject\n }\n this._tablePrefsMap.set(preferenceKey, prefs)\n }\n return prefs.observable\n }\n\n private _createObservable(refreshSubject: Subject<void>, prefKey: string): Observable<TheSeamDatatablePreferences> {\n if (!this._prefsAccessor) {\n return of(EMPTY_DATATABLE_PREFERENCES)\n }\n\n const accessor = (key: string): Observable<string> =>\n this._prefsAccessor ? this._prefsAccessor.get(key) : of(JSON.stringify(EMPTY_DATATABLE_PREFERENCES))\n\n return refreshSubject.pipe(\n startWith(undefined),\n switchMap(() => accessor(prefKey).pipe(\n map(v => {\n if (!v) {\n return null\n }\n\n // TODO: Add a schema validator and migration tool to avoid parsing issues.\n try {\n // return JSON.parse(v) as TheSeamDatatablePreferences\n return this._descerializePreferences(v)\n } catch (error) {\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.error(error)\n }\n return null\n }\n }),\n map(v => notNullOrUndefined(v) ? v : EMPTY_DATATABLE_PREFERENCES),\n // tap(v => console.log('preferences$', v)),\n tap(() => {\n this._pending = false\n this._loaded = true\n })\n )),\n shareReplay({ bufferSize: 1, refCount: true }),\n )\n }\n\n public refresh(preferenceKey: string): void {\n const prefs = this._tablePrefsMap.get(preferenceKey)\n if (prefs) {\n this._pending = true\n prefs.refresh.next()\n }\n }\n\n // TODO: Improve this updating to be more generic, so we can quickly add\n // edits for different preference schema's.\n //\n // TODO: Decide if a send queue/merging of pending queue is needed to avoid\n // out of order updates. This shouldn't be an issue, with how fast preferences\n // will most likely be changing, but it could happen in situations, such as\n // network issues.\n // public setColumnPreference(preferenceKey: string, column: TheSeamDatatablePreferencesColumn): void {\n // if (!this._prefsAccessor) {\n // return\n // }\n\n // this._pending = true\n // this.preferences(preferenceKey).pipe(\n // map(prefs => {\n // // Making the preferences immutable may not be necessary, but for now\n // // this obj->str->obj will work as a naive clone.\n // const columns = JSON.parse(JSON.stringify(prefs.columns || []))\n // const _colPref = columns.find((c: any) => c.prop === column.prop)\n // // console.log('has', _colPref)\n // if (_colPref) {\n // // console.log('hasProperty(column, \"width\"))', hasProperty(column, 'width'))\n // if (hasProperty(column, 'width')) { _colPref.width = column.width }\n // if (hasProperty(column, 'canAutoResize')) { _colPref.canAutoResize = column.canAutoResize }\n // if (hasProperty(column, 'hidden')) { _colPref.hidden = column.hidden }\n // } else {\n // columns.push({ ...column })\n // }\n // const newPrefs: TheSeamDatatablePreferences = { ...prefs, columns }\n // return newPrefs\n // }),\n // // tap(v => console.log('newPrefs', v)),\n // take(1),\n // switchMap(newPrefs => this._prefsAccessor\n // ? this._prefsAccessor.update(preferenceKey, JSON.stringify(newPrefs))\n // : of(newPrefs)\n // ),\n // tap(() => this.refresh(preferenceKey))\n // )\n // .subscribe()\n // }\n\n public setAlterations(preferenceKey: string, alterations: ColumnsAlterationState[]): void {\n if (!this._prefsAccessor) {\n return\n }\n\n this._pending = true\n this.preferences(preferenceKey).pipe(\n map(prefs => {\n // Making the preferences immutable may not be necessary, but for now\n // this obj->str->obj will work as a naive clone.\n // const columns = JSON.parse(JSON.stringify(prefs.columns || []))\n // const _colPref = columns.find((c: any) => c.prop === column.prop)\n // // console.log('has', _colPref)\n // if (_colPref) {\n // // console.log('hasProperty(column, \"width\"))', hasProperty(column, 'width'))\n // if (hasProperty(column, 'width')) { _colPref.width = column.width }\n // if (hasProperty(column, 'canAutoResize')) { _colPref.canAutoResize = column.canAutoResize }\n // if (hasProperty(column, 'hidden')) { _colPref.hidden = column.hidden }\n // } else {\n // columns.push({ ...column })\n // }\n // const newPrefs: TheSeamDatatablePreferences = { ...prefs, columns }\n // return newPrefs\n\n const newPrefs: TheSeamDatatablePreferences = {\n ...EMPTY_DATATABLE_PREFERENCES,\n alterations\n }\n return newPrefs\n }),\n // tap(v => console.log('newPrefs', v)),\n take(1),\n switchMap(newPrefs => this._prefsAccessor\n ? this._prefsAccessor.update(preferenceKey, JSON.stringify(newPrefs))\n : of(newPrefs)\n ),\n tap(() => this.refresh(preferenceKey))\n )\n .subscribe()\n }\n\n // public withColumnPreferences<T>(preferenceKey: string, columns: T[]): Observable<T[]> {\n // return this.preferences(preferenceKey).pipe(\n // startWith(EMPTY_DATATABLE_PREFERENCES),\n // map(preferences => preferences && preferences.columns\n // ? withStoredColumnInfo(columns, preferences.columns) as T[]\n // : columns\n // )\n // )\n // }\n\n private _descerializePreferences(serialized: string): TheSeamDatatablePreferences {\n const prefs = JSON.parse(serialized)\n\n // TODO: Implement migration\n\n return prefs\n }\n\n}\n","import { animate, style, transition, trigger } from '@angular/animations'\nimport { BooleanInput, coerceArray, NumberInput } from '@angular/cdk/coercion'\nimport { CollectionViewer, DataSource, isDataSource, ListRange } from '@angular/cdk/collections'\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n InjectionToken,\n Input,\n isDevMode,\n KeyValueDiffer,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n TemplateRef,\n ViewChild\n} from '@angular/core'\nimport { BehaviorSubject, from, isObservable, Observable, of, Subject, Subscription } from 'rxjs'\nimport { concatMap, distinctUntilChanged, map, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators'\n\nimport { faChevronDown, faChevronRight, faSpinner } from '@fortawesome/free-solid-svg-icons'\nimport {\n ColumnMode,\n ContextmenuType,\n DataTableColumnCellTreeToggle,\n DataTableColumnDirective,\n DataTableColumnHeaderDirective,\n DatatableComponent as NgxDatatableComponent,\n DatatableRowDetailDirective,\n SortType,\n TreeStatus\n} from '@marklb/ngx-datatable'\nimport type { SelectionType } from '@marklb/ngx-datatable'\n\nimport { InputBoolean, InputNumber } from '@theseam/ui-common/core'\nimport { composeDataFilters, composeDataFilterStates, DataFilter, DataFilterState } from '@theseam/ui-common/data-filters'\nimport { IElementResizedEvent } from '@theseam/ui-common/shared'\nimport { notNullOrUndefined, waitOnConditionAsync } from '@theseam/ui-common/utils'\n\nimport { DatatableActionMenuComponent } from '../datatable-action-menu/datatable-action-menu.component'\nimport { DatatableColumnComponent } from '../datatable-column/datatable-column.component'\nimport { TheSeamDatatableFooterDirective } from '../datatable-footer/datatable-footer.directive'\nimport { DatatableMenuBarComponent } from '../datatable-menu-bar/datatable-menu-bar.component'\nimport { TheSeamDatatableRowDetailDirective } from '../datatable-row-detail/datatable-row-detail.directive'\nimport { DatatableRowActionItemDirective } from '../directives/datatable-row-action-item.directive'\nimport { TheSeamDatatableAccessor } from '../models/datatable-accessor'\nimport { DatatableDataSource } from '../models/datatable-data-source'\nimport { TheSeamPageInfo } from '../models/page-info'\nimport { SortEvent } from '../models/sort-event'\nimport { SortItem } from '../models/sort-item'\nimport { TheSeamDatatableColumn } from '../models/table-column'\nimport { ColumnsManagerService } from '../services/columns-manager.service'\nimport { DatatableColumnChangesService } from '../services/datatable-column-changes.service'\nimport { DatatablePreferencesService } from '../services/datatable-preferences.service'\nimport { THESEAM_DATATABLE_ACCESSOR } from '../tokens/datatable-accessor'\nimport { removeUnusedDiffs } from '../utils/remove-unused-diffs'\nimport { translateTemplateColumns } from '../utils/translate-templates'\nimport { ColumnsAlterationsManagerService } from '../services/columns-alterations-manager.service'\nimport { ColumnsAlteration } from '../models/columns-alteration'\nimport { mapColumnsAlterationsStates } from '../utils/map-columns-alterations-states'\nimport { WidthColumnsAlteration } from '../models/columns-alterations/width.columns-alteration'\nimport { getColumnProp } from '../utils/get-column-prop'\nimport { OrderColumnsAlteration, OrderColumnsAlterationState } from '../models/columns-alterations/order.columns-alteration'\nimport { SortColumnsAlteration } from '../models/columns-alterations/sort.columns-alteration'\n\n/**\n * NOTE: This is still being worked on. I am trying to figure out this model\n * because `ngx-datatable` just uses an untyped object and sets properties in\n * multiple places.\n */\nexport interface ICellContext {\n allRowsSelected: false\n\n selectFn: () => any\n sortDir?: 'asc' | 'desc'\n sortFn: () => any\n\n expanded?: boolean\n\n onCheckboxChangeFn?: any\n activateFn?: any\n row?: any\n group?: any\n value?: any\n column?: TheSeamDatatableColumn\n rowHeight?: number\n isSelected?: boolean\n rowIndex?: number\n treeStatus?: TreeStatus\n onTreeAction?: any\n}\n\n/**\n * Intended for internal classes declared by the `TheSeamDatatableModule`.\n */\nexport const THESEAM_DATATABLE = new InjectionToken<DataFilter>('LibDatatable')\n\nexport const _THESEAM_DATATABLE: any = {\n provide: THESEAM_DATATABLE,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DatatableComponent)\n}\n\nexport const _THESEAM_DATATABLE_ACCESSOR: any = {\n provide: THESEAM_DATATABLE_ACCESSOR,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DatatableComponent)\n}\n\n@Component({\n selector: 'seam-datatable',\n templateUrl: './datatable.component.html',\n styleUrls: ['./datatable.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('slideDown', [\n transition(':enter', [\n style({ transform: 'translateY(-20%)', opacity: '0' }),\n animate('250ms', style({ transform: 'translateY(0)', opacity: '1' })),\n ]),\n transition(':leave', [\n style({ transform: 'translateY(0)', opacity: '1' }),\n animate('250ms', style({ transform: 'translateY(-20%)', opacity: '0' })),\n ])\n ])\n ],\n providers: [\n _THESEAM_DATATABLE,\n DatatableColumnChangesService,\n _THESEAM_DATATABLE_ACCESSOR,\n ColumnsManagerService,\n ColumnsAlterationsManagerService,\n ]\n})\nexport class DatatableComponent\n implements OnInit, OnDestroy, TheSeamDatatableAccessor, CollectionViewer {\n static ngAcceptInputType_externalPaging: BooleanInput\n static ngAcceptInputType_externalSorting: BooleanInput\n static ngAcceptInputType_externalFiltering: BooleanInput\n static ngAcceptInputType_loadingIndicator: BooleanInput\n static ngAcceptInputType_reorderable: BooleanInput\n static ngAcceptInputType_swapColumns: BooleanInput\n static ngAcceptInputType_groupExpansionDefault: BooleanInput\n static ngAcceptInputType_selectAllRowsOnPage: BooleanInput\n static ngAcceptInputType_summaryRow: BooleanInput\n static ngAcceptInputType_virtualization: BooleanInput\n static ngAcceptInputType_scrollbarV: BooleanInput\n static ngAcceptInputType_scrollbarH: BooleanInput\n static ngAcceptInputType_limit: NumberInput\n static ngAcceptInputType_count: NumberInput\n static ngAcceptInputType_offset: NumberInput\n static ngAcceptInputType_headerHeight: NumberInput\n static ngAcceptInputType_rowHeight: NumberInput\n static ngAcceptInputType_footerHeight: NumberInput\n static ngAcceptInputType_summaryHeight: NumberInput\n static ngAcceptInputType_columns: TheSeamDatatableColumn[] | undefined | null\n static ngAcceptInputType_sorts: SortItem[] | undefined | null\n\n readonly _faChevronDown = faChevronDown\n readonly _faChevronRight = faChevronRight\n readonly _faSpinner = faSpinner\n\n private readonly _ngUnsubscribe = new Subject()\n private readonly _filtersSubject = new BehaviorSubject<DataFilter[]>([])\n private readonly _dataSourceSubject = new BehaviorSubject<DataSource<any> | any[] | undefined>(undefined)\n\n private _resizing: { [prop: string]: boolean } = {}\n\n public readonly filterStates: Observable<DataFilterState[]>\n\n get filters(): DataFilter[] { return this._filtersSubject.value }\n\n public readonly filters$: Observable<DataFilter[]>\n\n @Input()\n get preferencesKey(): string | undefined | null { return this._preferencesKey.value }\n set preferencesKey(value: string | undefined | null) { this._preferencesKey.next(value || undefined) }\n private _preferencesKey = new BehaviorSubject<string | undefined | null>(undefined)\n\n @Input() targetMarkerTemplate: any\n\n @Input()\n set columns(value: TheSeamDatatableColumn[]) {\n this._columnsManager.setInputColumns(Array.isArray(value) ? value : [])\n }\n\n @Input()\n get rows(): any[] { return this._rows.value }\n set rows(value: any[]) {\n this._rows.next(value || [])\n }\n private _rows = new BehaviorSubject<any[]>([])\n\n public rows$: Observable<any[]>\n\n @Input() columnMode: ColumnMode | undefined | null = ColumnMode.force\n\n @Input() groupRowsBy: string | undefined | null\n @Input() groupedRows: any[] | undefined | null\n\n @Input() selected: any[] | undefined | null = []\n\n @Input() @InputBoolean() externalPaging = false\n @Input() @InputBoolean() externalSorting = false\n @Input() @InputBoolean() externalFiltering = false\n\n @Input() @InputNumber() limit: number | undefined\n @Input() @InputNumber(0) count = 0\n @Input() @InputNumber(0) offset = 0\n\n @Input() @InputBoolean() loadingIndicator = false\n\n @Input()\n get selectionType(): SelectionType | undefined | null { return this._columnsManager.getSelectionType() }\n set selectionType(value: SelectionType | undefined | null) {\n this._columnsManager.setSelectionType(notNullOrUndefined(value) ? value : undefined)\n }\n\n @Input() @InputBoolean() reorderable = true\n @Input() @InputBoolean() swapColumns = false\n\n @Input()\n get sortType(): SortType { return this._sortType }\n set sortType(value: SortType) {\n if (notNullOrUndefined(value) && (value === SortType.single || value === SortType.multi)) {\n this._sortType = value\n } else {\n this._sortType = SortType.single\n }\n }\n _sortType: SortType = SortType.single\n\n @Input()\n get sorts(): SortItem[] {\n return this.ngxDatatable ? this.ngxDatatable.sorts : this._sorts\n }\n set sorts(value: SortItem[]) {\n this._sorts = notNullOrUndefined(value) ? coerceArray(value) : []\n }\n _sorts: SortItem[] = []\n\n @Input() cssClasses: any | undefined | null = {\n sortAscending: 'datatable-icon-up',\n sortDescending: 'datatable-icon-down',\n pagerLeftArrow: 'datatable-icon-left',\n pagerRightArrow: 'datatable-icon-right',\n pagerPrevious: 'datatable-icon-prev',\n pagerNext: 'datatable-icon-skip'\n }\n\n @Input() messages: any | undefined | null = {\n // Message to show when array is presented\n // but contains no values\n emptyMessage: 'No records found',\n\n // Footer total message\n totalMessage: 'total',\n\n // Footer selected message\n selectedMessage: 'selected'\n }\n\n @Input() rowIdentity: ((x: any) => any) | undefined | null = (x: any) => x\n\n @Input() rowClass: any | undefined | null\n\n @Input() selectCheck: any | undefined | null\n @Input() displayCheck: ((row: any, column?: any, value?: any) => boolean) | undefined | null\n\n @Input() @InputBoolean() groupExpansionDefault = false\n\n @Input() trackByProp: string | undefined | null\n\n @Input() @InputBoolean() selectAllRowsOnPage = false\n\n @Input() treeFromRelation: string | undefined | null\n @Input() treeToRelation: string | undefined | null\n @Input() @InputBoolean() summaryRow = false\n @Input() @InputNumber() summaryHeight = 30\n @Input() summaryPosition: string | undefined | null = 'top'\n\n @Input() @InputBoolean() virtualization = true\n\n @Input() @InputNumber() headerHeight = 50\n @Input() @InputNumber() rowHeight = 50\n @Input() @InputNumber() footerHeight = 40\n\n @Input() @InputBoolean() scrollbarV = true\n @Input() @InputBoolean() scrollbarH = true\n\n @Input()\n set dataSource(value: DataSource<any> | any[] | undefined | null) {\n if (value instanceof DatatableDataSource) {\n value.setDatatableAccessor(this)\n }\n this._dataSourceSubject.next(value || undefined)\n }\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() readonly scroll = new EventEmitter<any>()\n @Output() readonly activate = new EventEmitter<any>()\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() readonly select = new EventEmitter<any>()\n @Output() readonly sort = new EventEmitter<SortEvent>()\n @Output() readonly page = new EventEmitter<TheSeamPageInfo>()\n @Output() readonly reorder = new EventEmitter<any>()\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() readonly resize = new EventEmitter<any>()\n @Output() readonly tableContextmenu = new EventEmitter<{ event: MouseEvent, type: ContextmenuType, content: any }>(false)\n @Output() readonly treeAction = new EventEmitter<any>()\n\n @Output() readonly actionRefreshRequest = new EventEmitter<void>()\n @Output() readonly hiddenColumnsChange = new EventEmitter<string[]>()\n\n @ContentChildren(DatatableColumnComponent)\n set columnComponents(value: QueryList<DatatableColumnComponent> | undefined) {\n this._columnsManager.setTemplateColumns(translateTemplateColumns(value?.toArray() ?? []))\n }\n\n @ContentChild(DatatableActionMenuComponent, { static: true }) actionMenu?: DatatableActionMenuComponent\n @ContentChild(DatatableRowActionItemDirective, { static: true })\n get rowActionItem(): DatatableRowActionItemDirective | undefined { return this._rowActionItem }\n set rowActionItem(value: DatatableRowActionItemDirective | undefined) {\n this._rowActionItem = value\n this._columnsManager.setRowActionItem(notNullOrUndefined(value) ? value : undefined)\n }\n private _rowActionItem: DatatableRowActionItemDirective | undefined\n\n @ContentChild(TheSeamDatatableRowDetailDirective, { static: true }) rowDetail?: TheSeamDatatableRowDetailDirective\n @ContentChild(TheSeamDatatableFooterDirective, { static: true }) footer?: TheSeamDatatableFooterDirective\n\n @ContentChild(DatatableMenuBarComponent)\n get menuBarComponent(): DatatableMenuBarComponent | undefined { return this._menuBarComponent }\n set menuBarComponent(value: DatatableMenuBarComponent | undefined) {\n this._menuBarComponent = value\n\n if (this._menuBarSub) { this._menuBarSub.unsubscribe() }\n\n if (value) {\n this._setMenuBarFilters(value.filters())\n\n this._menuBarSub = this._menuBarComponent?.filtersChanged\n .subscribe(v => { this._setMenuBarFilters(value.filters()) })\n }\n }\n private _menuBarComponent: DatatableMenuBarComponent | undefined\n private _menuBarSub: Subscription | undefined\n\n @ViewChild(NgxDatatableComponent) ngxDatatable?: NgxDatatableComponent\n @ViewChild(NgxDatatableComponent, { read: ElementRef }) ngxDatatableElement?: ElementRef\n @ViewChild(DatatableRowDetailDirective) ngxRowDetail?: DatatableRowDetailDirective\n\n @ViewChild('actionMenuCellTpl', { static: true })\n get actionMenuCellTpl(): TemplateRef<DataTableColumnDirective> | undefined { return this._actionMenuCellTpl }\n set actionMenuCellTpl(value: TemplateRef<DataTableColumnDirective> | undefined) {\n this._actionMenuCellTpl = value\n this._columnsManager.setActionMenuCellTpl(notNullOrUndefined(value) ? value : undefined)\n }\n private _actionMenuCellTpl: TemplateRef<DataTableColumnDirective> | undefined\n\n @ViewChild('treeToggleTpl', { static: true })\n get treeToggleTpl(): TemplateRef<DataTableColumnCellTreeToggle> | undefined { return this._treeToggleTpl }\n set treeToggleTpl(value: TemplateRef<DataTableColumnCellTreeToggle> | undefined) {\n this._treeToggleTpl = value\n this._columnsManager.setTreeToggleTpl(notNullOrUndefined(value) ? value : undefined)\n }\n private _treeToggleTpl: TemplateRef<DataTableColumnCellTreeToggle> | undefined\n\n @ViewChild('headerTpl', { static: true })\n get headerTpl(): TemplateRef<DataTableColumnHeaderDirective> | undefined { return this._headerTpl }\n set headerTpl(value: TemplateRef<DataTableColumnHeaderDirective> | undefined) {\n this._headerTpl = value\n this._columnsManager.setHeaderTpl(notNullOrUndefined(value) ? value : undefined)\n }\n private _headerTpl: TemplateRef<DataTableColumnHeaderDirective> | undefined\n\n @ViewChild('blankHeaderTpl', { static: true })\n get blankHeaderTpl(): TemplateRef<DataTableColumnHeaderDirective> | undefined { return this._blankHeaderTpl }\n set blankHeaderTpl(value: TemplateRef<DataTableColumnHeaderDirective> | undefined) {\n this._blankHeaderTpl = value\n this._columnsManager.setBlankHeaderTpl(notNullOrUndefined(value) ? value : undefined)\n }\n private _blankHeaderTpl: TemplateRef<DataTableColumnHeaderDirective> | undefined\n\n @ViewChild('cellTypeSelectorTpl', { static: true })\n get cellTypeSelectorTpl(): TemplateRef<DataTableColumnDirective> | undefined { return this._cellTypeSelectorTpl }\n set cellTypeSelectorTpl(value: TemplateRef<DataTableColumnDirective> | undefined) {\n this._cellTypeSelectorTpl = value\n this._columnsManager.setCellTypeSelectorTpl(notNullOrUndefined(value) ? value : undefined)\n }\n private _cellTypeSelectorTpl: TemplateRef<DataTableColumnDirective> | undefined\n\n public columnComponents$?: Observable<DatatableColumnComponent[]>\n private _colDiffersInp: { [propName: string]: KeyValueDiffer<any, any> } = {}\n private _colDiffersTpl: { [propName: string]: KeyValueDiffer<any, any> } = {}\n\n public readonly columns$: Observable<TheSeamDatatableColumn[]>\n public readonly displayColumns$: Observable<TheSeamDatatableColumn[]>\n\n viewChange: Observable<ListRange>\n\n private _rowDetailToggleSubscription = Subscription.EMPTY\n\n // TODO: Remove this DOM-dependent code when a way to property listen for\n // dblclick on the header reasize handles.\n @HostListener('dblclick', [ '$event' ])\n _dblClick(event: any) {\n const isHandle = (event.target as HTMLElement).classList.contains('resize-handle')\n if (isHandle) {\n const isResizeable = (event.target as HTMLElement).parentElement?.classList.contains('resizeable')\n if (isResizeable) {\n event.stopPropagation()\n const id = (event.target as HTMLElement).parentElement\n ?.querySelector('.datatable-column-header-separator')\n ?.getAttribute('data-column-id')\n this._columnsManager.columns$.pipe(\n take(1),\n ).subscribe(columns => {\n const column = columns.find(c => c.$$id === id)\n if (column) {\n const columnProp = getColumnProp(column)\n if (columnProp) {\n const alteration = new WidthColumnsAlteration({ columnProp, canAutoResize: true }, false)\n this._columnsAlterationsManager.add([ alteration ])\n }\n }\n })\n }\n }\n }\n\n constructor(\n private readonly _preferences: DatatablePreferencesService,\n private readonly _columnsManager: ColumnsManagerService,\n private readonly _columnsAlterationsManager: ColumnsAlterationsManagerService,\n ) {\n this._preferencesKey.pipe(\n distinctUntilChanged(),\n switchMap(key => {\n if (!notNullOrUndefined(key) || key.length === 0) {\n return of(undefined)\n }\n\n return from(waitOnConditionAsync(() => this._preferences.loaded)).pipe(\n switchMap(() => this._columnsAlterationsManager.changes.pipe(\n startWith(undefined),\n tap(() => {\n this._preferences.setAlterations(key, this._columnsAlterationsManager.get())\n }),\n ))\n )\n }),\n takeUntil(this._ngUnsubscribe),\n ).subscribe()\n\n const applyPrefs = (cols: TheSeamDatatableColumn[]) => this._columnsAlterationsManager.changes.pipe(\n startWith(undefined),\n map(() => {\n this._columnsAlterationsManager.apply(cols, this)\n return cols\n }),\n )\n\n this._preferencesKey.pipe(\n distinctUntilChanged(),\n switchMap(prefsKey => {\n if (!notNullOrUndefined(prefsKey)) {\n return of(undefined)\n }\n return this._preferences.preferences(prefsKey).pipe(\n switchMap(async preferences => {\n await waitOnConditionAsync(() => this._preferences.loaded)\n return preferences\n }),\n take(1),\n map(preferences => {\n let alterations: ColumnsAlteration[] = []\n try {\n alterations = mapColumnsAlterationsStates(preferences.alterations)\n } catch (e) {\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('Unable to map columns alterations states')\n // eslint-disable-next-line no-console\n console.warn(e)\n }\n }\n\n this._columnsAlterationsManager.add(alterations)\n })\n )\n }),\n takeUntil(this._ngUnsubscribe)\n ).subscribe()\n\n this.columns$ = this._columnsManager.columns$\n\n this.displayColumns$ = this.columns$.pipe(\n switchMap(cols => applyPrefs(cols)),\n map(cols => cols.filter(c => !c.hidden)),\n tap(v => removeUnusedDiffs(v, this._colDiffersInp, this._colDiffersTpl)),\n )\n\n this.filters$ = this._filtersSubject.asObservable()\n\n this.filterStates = this._filtersSubject.asObservable().pipe(\n switchMap(filters => composeDataFilterStates(filters))\n )\n\n this.rows$ = this._dataSourceSubject.pipe(\n switchMap(dataSource => {\n // console.log('dataSource', dataSource)\n let dataStream: Observable<any[]>\n\n if (isDataSource(dataSource)) {\n // console.log('~datasource')\n dataStream = dataSource.connect(this) as any\n } else if (isObservable(dataSource)) {\n // console.log('~observable')\n dataStream = dataSource as any\n } else if (Array.isArray(dataSource)) {\n // console.log('~array')\n dataStream = of(dataSource)\n } else {\n // console.log('~rows fallback')\n dataStream = this._rows.asObservable()\n // .pipe(tap(v => console.log('rows~', v)))\n }\n\n if (!this.externalFiltering) {\n // console.log('not using externalFiltering')\n dataStream = dataStream.pipe(\n switchMap(rows => this._filtersSubject.pipe(\n // tap(v => console.log('filters', v)),\n concatMap(filters => of(rows).pipe(composeDataFilters(filters))),\n // tap(v => console.log('composed filters', v)),\n ))\n )\n\n // dataStream = this._filtersSubject.pipe(\n // tap(v => console.log('filters', v)),\n // concatMap(filters => dataStream.pipe(composeDataFilters(filters))),\n // tap(v => console.log('composed filters', v)),\n // )\n }\n\n return dataStream.pipe(\n // tap(v => console.log('stream', v)),\n takeUntil(this._ngUnsubscribe)\n )\n })\n )\n\n // TODO: Implement viewChange for CollectionViewer.\n this.viewChange = this.page.pipe(map(p => ({ start: 0, end: p.count })))\n }\n\n ngOnInit() {\n if (this.rowDetail) {\n this._rowDetailToggleSubscription = this.rowDetail._toggle.subscribe(event => {\n if (this.ngxRowDetail) {\n this.ngxRowDetail.toggle.emit(event)\n }\n })\n }\n }\n\n ngOnDestroy() {\n this._rowDetailToggleSubscription.unsubscribe()\n }\n\n private _setMenuBarFilters(filters: DataFilter[]) {\n this._filtersSubject.next(filters || [])\n }\n\n public getColumnComponent(propName: string): DatatableColumnComponent | null {\n if (!this.columnComponents || this.columnComponents.length === 0) {\n return null\n }\n\n const tpl = this.columnComponents.find(t => t.prop === propName)\n if (tpl) {\n return tpl\n }\n\n return null\n }\n\n _columnData(col: any): { col: any, comp: DatatableColumnComponent | null } {\n const comp = this.getColumnComponent(col.prop)\n return { col, comp }\n }\n\n _getRowExpanded(row: any) {\n if (this.ngxDatatable && this.ngxDatatable.bodyComponent) {\n return this.ngxDatatable.bodyComponent.getRowExpanded(row)\n }\n return false\n }\n\n public trackByFnColumn(index: number, item: any) {\n return item.prop\n }\n\n public onDatatableResize(event: IElementResizedEvent) {\n if (this.ngxDatatable && this.ngxDatatableElement && this.ngxDatatableElement.nativeElement) {\n // TODO: Consider integrating this into the ngx-datatable library to avoid\n // multiple resize calls when the table resizes itself.\n this.ngxDatatable.recalculate()\n }\n }\n\n _onResize(event: any) {\n this.resize.emit(event)\n\n if (!notNullOrUndefined(event.column)) {\n return\n }\n\n const columnProp = getColumnProp(event.column)\n if (columnProp) {\n let addAlteration = false\n\n if (!this._resizing[columnProp]) {\n this._resizing[columnProp] = true\n addAlteration = true\n }\n\n if (event.isDone) {\n this._resizing[columnProp] = false\n addAlteration = true\n }\n\n if (addAlteration) {\n const alteration = new WidthColumnsAlteration({\n columnProp,\n width: event.column.width,\n canAutoResize: false\n }, true)\n this._columnsAlterationsManager.add([ alteration ])\n }\n }\n }\n\n _onReorder(event: any): void {\n this.reorder.emit(event)\n\n const columnProp = getColumnProp(event.column)\n if (columnProp) {\n const currentOrderAlteration = this._columnsAlterationsManager.get().find(x => x.type === 'order')\n const state: OrderColumnsAlterationState = {\n columns: [\n ...(currentOrderAlteration?.state.columns || []),\n { columnProp, index: event.newValue }\n ]\n }\n const alteration = new OrderColumnsAlteration(state, true)\n this._columnsAlterationsManager.add([ alteration ])\n }\n }\n\n _onSort(event: any): void {\n this.sort.emit(event)\n\n const alteration = new SortColumnsAlteration({ sorts: event.sorts }, true)\n this._columnsAlterationsManager.add([ alteration ])\n }\n\n _onTreeAction(event: any) {\n const index = event.rowIndex\n const row = event.row\n if (row.treeStatus === 'collapsed') {\n row.treeStatus = 'expanded'\n } else {\n row.treeStatus = 'collapsed'\n }\n this.rows = [ ...this.rows ]\n }\n\n public triggerActionRefreshRequest() {\n this.actionRefreshRequest.emit(undefined)\n }\n\n /**\n * Returns the page info from the wrapped NgxDatatable instance or defaults.\n */\n public get pageInfo(): TheSeamPageInfo {\n return {\n offset: this.ngxDatatable?.offset ?? 0,\n pageSize: this.ngxDatatable?.pageSize ?? 0,\n limit: this.ngxDatatable?.limit,\n count: this.ngxDatatable?.count ?? 0\n }\n }\n\n}\n","<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","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'\nimport { UntypedFormControl } from '@angular/forms'\nimport { combineLatest, Observable, of } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport { notNullOrUndefined, observeControlValue } from '@theseam/ui-common/utils'\n\nimport { DatatableComponent, THESEAM_DATATABLE } from '../datatable/datatable.component'\nimport { HideColumnColumnsAlteration } from '../models/columns-alterations/hide-column.columns-alteration'\nimport { isInternalColumn } from '../models/internal-column-props'\nimport { TheSeamDatatableColumn } from '../models/table-column'\nimport { ColumnsAlterationsManagerService } from '../services/columns-alterations-manager.service'\nimport { getColumnProp } from '../utils/get-column-prop'\n\n@Component({\n selector: 'seam-datatable-column-preferences',\n templateUrl: './datatable-column-preferences.component.html',\n styleUrls: ['./datatable-column-preferences.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableColumnPreferencesComponent {\n _columns$: Observable<TheSeamDatatableColumn[]>\n\n _filterControl = new UntypedFormControl()\n\n constructor(\n @Inject(THESEAM_DATATABLE) private _datatable: DatatableComponent,\n private readonly _columnsAlterationsManager: ColumnsAlterationsManagerService,\n ) {\n this._columns$ = combineLatest([\n this._datatable.columns$ ?? of([]),\n observeControlValue<string>(this._filterControl)\n ]).pipe(\n map(([ columns, filter ]) => {\n const _filter = (filter || '').trim().toLowerCase()\n return columns\n .filter(c => this._canToggleColumn(c, _filter))\n }),\n )\n }\n\n private _canToggleColumn(column: TheSeamDatatableColumn, filter: string, omitInternalColumns: boolean = true): boolean {\n if (omitInternalColumns && isInternalColumn(column)) {\n return false\n }\n\n return this._columnMatchesFilter(column, filter)\n }\n\n private _columnMatchesFilter(column: TheSeamDatatableColumn, filter: string): boolean {\n if (filter.length === 0) { return true }\n\n return `${(getColumnProp(column) || '')}`.toLowerCase().indexOf(filter) !== -1\n }\n\n _onChange(event: any, col: TheSeamDatatableColumn) {\n const columnProp = getColumnProp(col)\n const hidden = !event.checked\n\n if (!notNullOrUndefined(columnProp)) {\n throw Error(`Unable to get column prop.`)\n }\n\n const alteration = new HideColumnColumnsAlteration(\n {\n columnProp,\n hidden\n },\n hidden\n )\n\n this._columnsAlterationsManager.add([ alteration ])\n }\n\n}\n","<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","import { ConnectionPositionPair } from '@angular/cdk/overlay'\nimport { ChangeDetectionStrategy, Component } from '@angular/core'\n\nimport { faColumns } from '@fortawesome/free-solid-svg-icons'\n\nimport { ColumnsAlterationsManagerService } from '../services/columns-alterations-manager.service'\n\n@Component({\n selector: 'seam-datatable-column-preferences-button',\n templateUrl: './datatable-column-preferences-button.component.html',\n styleUrls: ['./datatable-column-preferences-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableColumnPreferencesButtonComponent {\n\n icon = faColumns\n\n /** @ignore */\n _actionMenuPositions: ConnectionPositionPair[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n\n constructor(\n private readonly _columnsAlterationsManager: ColumnsAlterationsManagerService,\n ) { }\n\n _resetColumns(event: any) {\n this._columnsAlterationsManager.clear()\n }\n\n}\n","<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","import { ChangeDetectionStrategy, Component, Inject, Input, isDevMode, Optional } from '@angular/core'\nimport { combineLatest, of } from 'rxjs'\nimport { catchError, concatMap, map, take, tap } from 'rxjs/operators'\n\nimport { faFileDownload } from '@fortawesome/free-solid-svg-icons'\nimport { ToastrService } from 'ngx-toastr'\n\nimport { IDataExporter } from '@theseam/ui-common/data-exporter'\nimport { DynamicValueHelperService, THESEAM_DYNAMIC_DATA } from '@theseam/ui-common/dynamic'\nimport { TheSeamLoadingOverlayService } from '@theseam/ui-common/loading'\nimport { hasProperty } from '@theseam/ui-common/utils'\n\nimport { DatatableComponent, THESEAM_DATATABLE } from '../datatable/datatable.component'\nimport { isInternalColumn } from '../models/internal-column-props'\nimport { TheSeamDatatableColumn } from '../models/table-column'\n\nexport interface IDatatableExportButtonData {\n exporters: IDataExporter[]\n}\n\n@Component({\n selector: 'seam-datatable-export-button',\n templateUrl: './datatable-export-button.component.html',\n styleUrls: ['./datatable-export-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableExportButtonComponent {\n\n icon = faFileDownload\n\n @Input() exporters: IDataExporter[] | undefined | null\n\n get disabled() {\n return !(this.exporters && this.exporters.length > 0)\n }\n\n constructor(\n @Inject(THESEAM_DATATABLE) private readonly _datatable: DatatableComponent,\n private readonly _toastr: ToastrService,\n private readonly _loading: TheSeamLoadingOverlayService,\n private readonly _valueHelper: DynamicValueHelperService,\n @Optional() @Inject(THESEAM_DYNAMIC_DATA) private readonly _data?: IDatatableExportButtonData\n ) {\n if (this._data && this._data.exporters) {\n this.exporters = this._data.exporters\n }\n }\n\n _onExporterClicked(exporter: IDataExporter) {\n if (!exporter.export) {\n const msg = isDevMode()\n ? `Exporter '${exporter.name}' is missing an export method.`\n : `${exporter.label} export is not available.`\n this._toastr.error(msg, 'Data Export')\n }\n\n const export$ = combineLatest([\n this._datatable.rows$,\n this._datatable.columns$.pipe(map(cols => cols.filter(c => !isInternalColumn(c))))\n ]).pipe(\n take(1),\n map(([ rows, columns ]) => {\n if (exporter.skipDataMapping) {\n return rows\n }\n return this._mapExportData(columns || [], rows)\n }),\n concatMap(data => exporter.export(data)),\n catchError(err => {\n // eslint-disable-next-line no-console\n console.error(err)\n return of(false)\n }),\n tap(success => {\n if (success) {\n this._toastr.success(`${exporter.label} export complete.`, 'Data Export')\n } else {\n this._toastr.error(`${exporter.label} export failed.`, 'Data Export')\n }\n })\n )\n\n this._loading.while(export$).subscribe()\n }\n\n private _mapExportData(columns: TheSeamDatatableColumn[], rows: any[]) {\n const data: any[] = []\n\n for (const row of rows) {\n const newRow: any = {}\n\n for (const col of columns) {\n if (!col.exportIgnore) {\n const colName = col.exportHeader || col.name || col.prop\n if (colName) {\n newRow[colName] = this._rowValue(col, row)\n }\n }\n }\n\n data.push(newRow)\n }\n\n return data\n }\n\n private _rowValue(column: TheSeamDatatableColumn, row: any) {\n if (hasProperty(column as any, 'exportValue')) {\n const context = { value: column.prop ? row[column.prop] : undefined, row }\n return this._valueHelper.evalSync((column as any).exportValue, context)\n }\n\n const colProp = column.prop\n if (colProp) {\n return row[colProp]\n }\n return undefined\n }\n\n}\n","<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","import { ChangeDetectionStrategy, Component } from '@angular/core'\n\n@Component({\n selector: 'seam-datatable-menu-bar-column-center',\n templateUrl: './datatable-menu-bar-column-center.component.html',\n styleUrls: ['./datatable-menu-bar-column-center.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableMenuBarColumnCenterComponent { }\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component } from '@angular/core'\n\n@Component({\n selector: 'seam-datatable-menu-bar-column-left',\n templateUrl: './datatable-menu-bar-column-left.component.html',\n styleUrls: ['./datatable-menu-bar-column-left.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableMenuBarColumnLeftComponent { }\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component } from '@angular/core'\n\n@Component({\n selector: 'seam-datatable-menu-bar-column-right',\n templateUrl: './datatable-menu-bar-column-right.component.html',\n styleUrls: ['./datatable-menu-bar-column-right.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableMenuBarColumnRightComponent { }\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component } from '@angular/core'\n\n@Component({\n selector: 'seam-datatable-menu-bar-row',\n templateUrl: './datatable-menu-bar-row.component.html',\n styleUrls: ['./datatable-menu-bar-row.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableMenuBarRowComponent { }\n","<ng-content></ng-content>\n","import { InjectionToken } from '@angular/core'\n\nimport { MenubarItemData } from '../models/menubar-item-data'\n\nexport const THESEAM_MENUBAR_ITEM_DATA = new InjectionToken<MenubarItemData>('MenubarItemData')\n","import { ChangeDetectionStrategy, Component, Inject, Input, Optional } from '@angular/core'\n\nimport { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils'\nimport { DatatableMenuBarComponent } from './../datatable-menu-bar/datatable-menu-bar.component'\nimport { MenubarItemData } from './../models/menubar-item-data'\nimport { THESEAM_MENUBAR_ITEM_DATA } from './../tokens/menubar-item-data'\n\n@Component({\n selector: 'seam-datatable-menu-bar-text',\n templateUrl: './datatable-menu-bar-text.component.html',\n styleUrls: ['./datatable-menu-bar-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatatableMenuBarTextComponent {\n\n @Input()\n public value: string | undefined | null\n\n constructor(\n private _menuBar: DatatableMenuBarComponent,\n @Optional() @Inject(THESEAM_MENUBAR_ITEM_DATA) private _data: MenubarItemData | null\n ) {\n if (notNullOrUndefined(this._data)) {\n if (hasProperty(this._data, 'value')) {\n this.value = this._data.value\n }\n }\n }\n\n}\n","{{ value }}\n","// import { QueryParamsHandling } from '@angular/router/src/config'\nimport { ComponentType } from '@angular/cdk/portal'\nimport { HttpClient, HttpHeaders } from '@angular/common/http'\nimport { Component, Directive, EventEmitter, HostBinding, Input, isDevMode, Optional, Output } from '@angular/core'\nimport { Subscription } from 'rxjs'\n\n// import jexl from 'jexl'\n\nimport { TheSeamDynamicComponentLoader } from '@theseam/ui-common/dynamic-component-loader'\nimport { Modal } from '@theseam/ui-common/modal'\n\n//\n// TODO: Move the dynamic datatable logic out of this component when refactoring.\n//\n\n// export interface IActionMenuItemEndpointConfig {\n// /**\n// * Api endpoint.\n// */\n// endpoint?: string\n\n// endpointExpr?: string\n\n// method: 'GET' | 'POST' | 'PATCH' | 'DELETE'\n\n// bodyExpr?: string\n\n// paramsExpr?: string\n// }\n\n// export interface IActionMenuItemModalConfig {\n// component: ComponentType<{}> | string\n// }\n\nexport interface TheSeamDatatableRow {\n [prop: string]: any\n}\n\n@Directive({\n selector: '[seamDatatableActionMenuItem]'\n})\nexport class DatatableActionMenuItemDirective {\n\n @HostBinding('class.list-group-item') _listGroupItem = true\n @HostBinding('class.list-group-item-action') _listGroupItemAction = true\n\n @Input() label: string | undefined | null\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('attr.href') href: string | undefined | null\n @Input() target: string | undefined | null\n\n // Allow routerLink inputs on menu item\n @Input() queryParams: { [k: string]: any } | undefined | null\n @Input() fragment: string | undefined | null\n // @Input() queryParamsHandling: QueryParamsHandling\n @Input() queryParamsHandling: any | undefined | null\n @Input() preserveFragment: boolean | undefined | null\n @Input() skipLocationChange: boolean | undefined | null\n @Input() replaceUrl: boolean | undefined | null\n @Input() state: {[k: string]: any} | undefined | null\n @Input() routerLink: string | any[] | undefined | null\n\n @Input() confirmDialog: any\n\n // @Input()\n // get endpointConfig(): IActionMenuItemEndpointConfig { return this._endpointConfig }\n // set endpointConfig(value: IActionMenuItemEndpointConfig) {\n // this._endpointConfig = value\n // if (value) {\n // // TODO: Handle this in a way that can be canceled.\n // this._endpointConfigSub = this.click\n // .pipe(untilDestroyed(this))\n // .subscribe(e => this._handleEndpointAction())\n // } else {\n // if (this._endpointConfigSub) {\n // this._endpointConfigSub.unsubscribe()\n // }\n // }\n // }\n // private _endpointConfig: IActionMenuItemEndpointConfig\n // private _endpointConfigSub: Subscription\n\n // @Input()\n // get modalConfig(): IActionMenuItemModalConfig { return this._modalConfig }\n // set modalConfig(value: IActionMenuItemModalConfig) {\n // this._modalConfig = value\n // if (value) {\n // // TODO: Handle this in a way that can be canceled.\n // this._modalConfigSub = this.click\n // .pipe(untilDestroyed(this))\n // .subscribe(e => this._handleModalAction())\n // } else {\n // if (this._modalConfigSub) {\n // this._modalConfigSub.unsubscribe()\n // }\n // }\n // }\n // private _modalConfig: IActionMenuItemModalConfig\n // private _modalConfigSub: Subscription\n\n @Input() row: TheSeamDatatableRow | undefined | null\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() click = new EventEmitter<any>()\n\n constructor(\n private readonly _modal: Modal,\n private readonly _dynamicComponentLoader: TheSeamDynamicComponentLoader,\n @Optional() private readonly _http: HttpClient,\n ) { }\n\n // private _handleEndpointAction() {\n // if (!this._http) {\n // if (isDevMode()) {\n // console.warn(`[DatatableActionMenuItemDirective] Endpoint actions require \\`HttpClientModule\\` to be imported.`)\n // }\n // return\n // }\n\n // // console.log('_handleEndpointAction')\n // // TODO: This should probably be done through a provider that uses the api.\n // if (isDevMode()) {\n // console.warn(`[DatatableActionMenuItemDirective] '_handleEndpointAction()' is not ready for production yet.`)\n // } else {\n // // I don't expect this to be attempted in prod before completed, so I am just adding a console warning.\n // console.warn(`Unable to complete request. Contact support for assistance.`)\n // }\n\n // let endpoint = ''\n // const method = this._endpointConfig.method\n // const context = { row: this.row }\n // // console.log('context', context)\n\n // if (this._endpointConfig.endpoint) {\n // endpoint = this._endpointConfig.endpoint\n // }\n\n // if (this._endpointConfig.endpointExpr) {\n // // TODO: Use async jexl.\n // endpoint = jexl.evalSync(this._endpointConfig.endpointExpr, context)\n // }\n\n // const url = `http://localhost:57648/api/${endpoint}`\n\n // const options: any = {}\n // if (this._endpointConfig.bodyExpr) {\n // // TODO: Use async jexl.\n // options.body = jexl.evalSync(this._endpointConfig.bodyExpr, context)\n // }\n // if (this._endpointConfig.paramsExpr) {\n // // TODO: Use async jexl.\n // options.params = jexl.evalSync(this._endpointConfig.paramsExpr, context)\n // }\n\n // const headers = new HttpHeaders({\n // 'Content-Type': 'application/json'\n // })\n\n // this._http.request<any>(method, url, { ...options, headers })\n // .subscribe()\n // // .subscribe(v => console.log('v', v))\n // }\n\n // private _handleModalAction() {\n // if (typeof this._modalConfig.component === 'string') {\n // this._dynamicComponentLoader.getComponentFactory(this._modalConfig.component)\n // .subscribe(componentFactory => {\n // const factoryResolver = (<any /* ComponentFactoryBoundToModule */>componentFactory).ngModule.componentFactoryResolver\n // this._modal.openFromComponent(componentFactory.componentType, undefined, factoryResolver)\n // })\n // } else {\n // this._modal.openFromComponent(this._modalConfig.component)\n // }\n // }\n\n}\n","import { ESCAPE } from '@angular/cdk/keycodes'\nimport { ConnectionPositionPair, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay'\nimport { TemplatePortal } from '@angular/cdk/portal'\nimport { Directive, ElementRef, HostListener, Input, TemplateRef, ViewContainerRef } from '@angular/core'\n\n@Directive({\n selector: '[seamDatatableActionMenuToggle]',\n exportAs: 'seamDatatableActionMenuToggle'\n})\nexport class DatatableActionMenuToggleDirective {\n\n @Input() seamDatatableActionMenuToggle: TemplateRef<HTMLElement> | undefined | null\n\n private _active = false\n private _overlayRef?: OverlayRef\n private _actionDown = false\n\n @HostListener('document:keydown', [ '$event' ])\n _onKeydown(event: any) {\n if (event.keyCode === ESCAPE) {\n this.disable()\n }\n }\n\n @HostListener('click', [ '$event' ])\n _onClick(event: any) {\n this.toggle()\n }\n\n @HostListener('mousedown', [ '$event' ]) _mouseDown(event: any) { this.onInputDown(event) }\n @HostListener('pointerdown', [ '$event' ]) _pointerDown(event: any) { this.onInputDown(event) }\n\n @HostListener('mouseup', [ '$event' ]) _mouseUp(event: any) { this.onInputUp(event) }\n @HostListener('pointerup', [ '$event' ]) _pointerUp(event: any) { this.onInputUp(event) }\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _viewContainerRef: ViewContainerRef,\n private _overlay: Overlay,\n ) { }\n\n public get active(): boolean { return this._active }\n\n public toggle() {\n if (this._active) {\n this.disable()\n } else {\n this.enable()\n }\n }\n\n public enable() {\n if (this.active) { return }\n if (!this.seamDatatableActionMenuToggle) { return }\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: false,\n positionStrategy: this.getOverlayPosition(this._elementRef.nativeElement),\n })\n\n this._overlayRef.attach(new TemplatePortal(this.seamDatatableActionMenuToggle, this._viewContainerRef))\n\n this._active = true\n }\n\n public disable() {\n if (!this.active) { return }\n\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef.detach()\n }\n\n this._active = false\n }\n\n private getOverlayPosition(origin: HTMLElement): PositionStrategy {\n const positionStrategy = this._overlay.position()\n .flexibleConnectedTo(origin)\n .withPositions(this.getPositions())\n .withFlexibleDimensions(false)\n .withPush(false)\n\n return positionStrategy\n }\n\n private getPositions(): ConnectionPositionPair[] {\n return [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n }\n\n onFocusChangeOverlay(event: any) {\n if (event === null) {\n if (!this._actionDown) {\n // this.disable()\n }\n }\n }\n\n onInputDown(event: any) {\n this._actionDown = true\n }\n\n onInputUp(event: any) {\n this._actionDown = false\n }\n\n}\n","import { CollectionViewer } from '@angular/cdk/collections'\nimport { combineLatest, Observable } from 'rxjs'\n\nimport { DatatableDataSource } from './datatable-data-source'\n\nexport class DatatableGqlDataSource<TRow> extends DatatableDataSource<TRow> {\n\n connect(collectionViewer: CollectionViewer): Observable<readonly TRow[]> {\n throw new Error('Method not implemented.')\n\n // return combineLatest([\n // this.sorts$,\n // this.filterStates$,\n // this.page$\n // ]).pipe()\n }\n\n disconnect(collectionViewer: CollectionViewer): void {\n throw new Error('Method not implemented.')\n }\n\n}\n","import { Injectable, NgZone } from '@angular/core'\n\nimport { OverlayScrollbarsService } from '@theseam/ui-common/scrollbar'\n\n@Injectable()\nexport class TheSeamDatatableScrollbarHelperService {\n\n width = 0\n\n /**\n * Animates programmatic scrolling, such as switching pages.\n *\n * NOTE: Animating the scrolling works, but the datatable may need changes\n * before this is enabled, because it seems a little stuttery when it moves.\n */\n animatedScrolling = false\n animatedScrollingTime = 250\n\n constructor(\n private _ngZone: NgZone,\n private _scrollbars: OverlayScrollbarsService\n ) { }\n\n onInitScroller(scroller: any): void {\n this._scrollbars.initializeInstance(scroller.parentElement, {\n callbacks: {\n onScroll: e => {\n this._ngZone.run(() => {\n scroller.onScrolled(e)\n })\n }\n }\n })\n }\n\n onDestroyScroller(scroller: any): void {\n this._scrollbars.destroyInstance(scroller.parentElement)\n }\n\n setOffset(scroller: any, offsetY: number): void {\n this._ngZone.runOutsideAngular(() => {\n if (this.animatedScrolling) {\n this._scrollbars.getInstance(scroller.parentElement)\n .scroll({ y: offsetY }, this.animatedScrollingTime)\n } else {\n this._scrollbars.getInstance(scroller.parentElement)\n .scroll({ y: offsetY })\n }\n })\n }\n}\n","import { hasProperty } from '@theseam/ui-common/utils'\n\nimport { TheSeamDatatablePreferencesColumn } from '../models/preferences'\nimport { TheSeamDatatableColumn } from '../models/table-column'\n\nexport function withStoredColumnInfo(\n columns: TheSeamDatatableColumn[],\n preferenceColumns: TheSeamDatatablePreferencesColumn[]\n): TheSeamDatatableColumn[] {\n const _columns: TheSeamDatatableColumn[] = []\n for (const col of columns) {\n const storedCol = preferenceColumns.find(v => v.prop === col.prop)\n if (storedCol) {\n const _col = { ...col }\n if (hasProperty(storedCol, 'width')) { _col.width = Math.max(storedCol.width, 0) }\n _col.canAutoResize = storedCol.canAutoResize\n _columns.push(_col)\n } else {\n _columns.push(col)\n }\n }\n return _columns\n}\n","import { A11yModule } from '@angular/cdk/a11y'\nimport { OverlayModule } from '@angular/cdk/overlay'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\nimport { RouterModule } from '@angular/router'\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\nimport { NgxDatatableModule, ScrollbarHelper } from '@marklb/ngx-datatable'\nimport { ToastrModule } from 'ngx-toastr'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamCheckboxModule } from '@theseam/ui-common/checkbox'\nimport { TheSeamConfirmDialogModule } from '@theseam/ui-common/confirm-dialog'\nimport { TheSeamFormFieldModule } from '@theseam/ui-common/form-field'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamLoadingModule } from '@theseam/ui-common/loading'\nimport { TheSeamMenuModule } from '@theseam/ui-common/menu'\nimport { TheSeamPopoverModule } from '@theseam/ui-common/popover'\nimport { TheSeamSharedModule } from '@theseam/ui-common/shared'\nimport { TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type'\n\nimport { DatatableActionMenuItemComponent } from './datatable-action-menu-item/datatable-action-menu-item.component'\nimport { DatatableActionMenuComponent } from './datatable-action-menu/datatable-action-menu.component'\nimport { DatatableColumnPreferencesButtonComponent } from './datatable-column-preferences-button/datatable-column-preferences-button.component' // tslint:disable-line: max-line-length\nimport { DatatableColumnPreferencesComponent } from './datatable-column-preferences/datatable-column-preferences.component'\nimport { DatatableColumnComponent } from './datatable-column/datatable-column.component'\nimport { DatatableExportButtonComponent } from './datatable-export-button/datatable-export-button.component'\nimport { DatatableFooterTplDirective } from './datatable-footer/datatable-footer-tpl.directive'\nimport { TheSeamDatatableFooterDirective } from './datatable-footer/datatable-footer.directive'\nimport { DatatableMenuBarColumnCenterComponent } from './datatable-menu-bar-column-center/datatable-menu-bar-column-center.component'\nimport { DatatableMenuBarColumnLeftComponent } from './datatable-menu-bar-column-left/datatable-menu-bar-column-left.component'\nimport { DatatableMenuBarColumnRightComponent } from './datatable-menu-bar-column-right/datatable-menu-bar-column-right.component'\nimport { DatatableMenuBarRowComponent } from './datatable-menu-bar-row/datatable-menu-bar-row.component'\nimport { DatatableMenuBarTextComponent } from './datatable-menu-bar-text/datatable-menu-bar-text.component'\nimport { DatatableMenuBarComponent } from './datatable-menu-bar/datatable-menu-bar.component'\nimport { DatatableRowDetailTplDirective } from './datatable-row-detail/datatable-row-detail-tpl.directive'\nimport { TheSeamDatatableRowDetailDirective } from './datatable-row-detail/datatable-row-detail.directive'\nimport { DatatableComponent } from './datatable/datatable.component'\nimport { DatatableActionMenuItemDirective } from './directives/datatable-action-menu-item.directive'\nimport { DatatableActionMenuToggleDirective } from './directives/datatable-action-menu-toggle.directive'\nimport { DatatableCellTplDirective } from './directives/datatable-cell-tpl.directive'\nimport { DatatableFilterDirective } from './directives/datatable-filter.directive'\nimport { DatatableRowActionItemDirective } from './directives/datatable-row-action-item.directive'\nimport { TheSeamDatatableScrollbarHelperService } from './services/datatable-scrollbar-helper.service'\n\n@NgModule({\n declarations: [\n DatatableComponent,\n DatatableCellTplDirective,\n DatatableColumnComponent,\n DatatableActionMenuComponent,\n DatatableActionMenuToggleDirective,\n DatatableActionMenuItemComponent,\n DatatableMenuBarComponent,\n DatatableFilterDirective,\n DatatableRowActionItemDirective,\n DatatableExportButtonComponent,\n TheSeamDatatableRowDetailDirective,\n DatatableRowDetailTplDirective,\n TheSeamDatatableFooterDirective,\n DatatableFooterTplDirective,\n DatatableColumnPreferencesComponent,\n DatatableColumnPreferencesButtonComponent,\n DatatableActionMenuItemDirective,\n DatatableMenuBarRowComponent,\n DatatableMenuBarColumnLeftComponent,\n DatatableMenuBarColumnCenterComponent,\n DatatableMenuBarColumnRightComponent,\n DatatableMenuBarTextComponent,\n ],\n imports: [\n CommonModule,\n NgxDatatableModule,\n FontAwesomeModule,\n OverlayModule,\n A11yModule,\n TheSeamSharedModule,\n RouterModule,\n TheSeamMenuModule,\n TheSeamButtonsModule,\n TheSeamIconModule,\n ToastrModule,\n TheSeamLoadingModule,\n PortalModule,\n TheSeamConfirmDialogModule,\n TheSeamPopoverModule,\n TheSeamCheckboxModule,\n TheSeamFormFieldModule,\n ReactiveFormsModule,\n TheSeamTableCellTypeModule\n ],\n exports: [\n DatatableComponent,\n DatatableCellTplDirective,\n DatatableColumnComponent,\n DatatableActionMenuComponent,\n DatatableActionMenuItemComponent,\n DatatableMenuBarComponent,\n DatatableFilterDirective,\n DatatableRowActionItemDirective,\n DatatableExportButtonComponent,\n TheSeamDatatableRowDetailDirective,\n DatatableRowDetailTplDirective,\n TheSeamDatatableFooterDirective,\n DatatableFooterTplDirective,\n DatatableColumnPreferencesComponent,\n DatatableColumnPreferencesButtonComponent,\n DatatableActionMenuItemDirective,\n DatatableMenuBarRowComponent,\n DatatableMenuBarColumnLeftComponent,\n DatatableMenuBarColumnCenterComponent,\n DatatableMenuBarColumnRightComponent,\n DatatableMenuBarTextComponent\n ],\n providers: [\n { provide: ScrollbarHelper, useClass: TheSeamDatatableScrollbarHelperService }\n ]\n})\nexport class TheSeamDatatableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","i1.DatatableColumnChangesService","_scd","i1.DatatablePreferencesService","i2.ColumnsManagerService","i3.ColumnsAlterationsManagerService","NgxDatatableComponent","i5","i1.ColumnsAlterationsManagerService","i2","i6","i7","i5.DatatableColumnPreferencesComponent","i1"],"mappings":"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"}