@theseam/ui-common 0.4.28 → 0.4.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. package/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +1 -1
  2. package/datatable/datatable/datatable.component.d.ts +61 -9
  3. package/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.d.ts +25 -0
  4. package/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.d.ts +18 -0
  5. package/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.d.ts +16 -0
  6. package/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.d.ts +15 -0
  7. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -2
  8. package/datatable/datatable.module.d.ts +29 -20
  9. package/datatable/directives/datatable-column-filter-tpl.directive.d.ts +8 -0
  10. package/datatable/directives/datatable-column-filter.directive.d.ts +10 -0
  11. package/datatable/models/action-item-column-position.d.ts +13 -0
  12. package/datatable/models/columns-data-filter.d.ts +57 -0
  13. package/datatable/models/columns-data-filters/models.d.ts +65 -0
  14. package/datatable/models/columns-data-filters/search-date.columns-data-filter.d.ts +23 -0
  15. package/datatable/models/columns-data-filters/search-numeric.columns-data-filter.d.ts +22 -0
  16. package/datatable/models/columns-data-filters/search-text.columns-data-filter.d.ts +21 -0
  17. package/datatable/models/columns-data-filters/utils.d.ts +15 -0
  18. package/datatable/models/datatable-config.d.ts +97 -0
  19. package/datatable/models/table-column.d.ts +22 -1
  20. package/datatable/public-api.d.ts +14 -0
  21. package/datatable/services/columns-filters.service.d.ts +29 -0
  22. package/datatable/services/columns-manager.service.d.ts +7 -0
  23. package/datatable/utils/create-action-menu-column.d.ts +1 -1
  24. package/esm2020/asset-reader/asset-reader-helper.service.mjs +4 -4
  25. package/esm2020/asset-reader/asset-reader.module.mjs +5 -5
  26. package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +4 -4
  27. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +5 -5
  28. package/esm2020/breadcrumbs/breadcrumbs.module.mjs +5 -5
  29. package/esm2020/breadcrumbs/breadcrumbs.service.mjs +4 -4
  30. package/esm2020/buttons/badge-button/badge-button.component.mjs +7 -7
  31. package/esm2020/buttons/button/button.component.mjs +10 -10
  32. package/esm2020/buttons/buttons.module.mjs +5 -5
  33. package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +4 -4
  34. package/esm2020/buttons/toggle-button/toggle-button.component.mjs +4 -4
  35. package/esm2020/card/card-action/card-action.component.mjs +4 -4
  36. package/esm2020/card/card-body/card-body.component.mjs +4 -4
  37. package/esm2020/card/card-footer/card-footer.component.mjs +4 -4
  38. package/esm2020/card/card-header/card-header.component.mjs +4 -4
  39. package/esm2020/card/card.component.mjs +4 -4
  40. package/esm2020/card/card.module.mjs +5 -5
  41. package/esm2020/carousel/carousel-slide.directive.mjs +4 -4
  42. package/esm2020/carousel/carousel.component.mjs +4 -4
  43. package/esm2020/carousel/carousel.module.mjs +5 -5
  44. package/esm2020/checkbox/checkbox.component.mjs +4 -4
  45. package/esm2020/checkbox/checkbox.module.mjs +5 -5
  46. package/esm2020/confirm-dialog/confirm-click.directive.mjs +4 -4
  47. package/esm2020/confirm-dialog/confirm-dialog.component.mjs +4 -4
  48. package/esm2020/confirm-dialog/confirm-dialog.module.mjs +5 -5
  49. package/esm2020/confirm-dialog/confirm-dialog.service.mjs +4 -4
  50. package/esm2020/data-exporter/data-exporter.module.mjs +5 -5
  51. package/esm2020/data-exporter/exporters/csv-exporter.mjs +4 -4
  52. package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +4 -4
  53. package/esm2020/data-filters/data-filters.module.mjs +5 -5
  54. package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +4 -4
  55. package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +4 -4
  56. package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +4 -4
  57. package/esm2020/datatable/datatable/datatable.component.mjs +241 -32
  58. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +5 -5
  59. package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +4 -4
  60. package/esm2020/datatable/datatable-column/datatable-column.component.mjs +4 -4
  61. package/esm2020/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.mjs +55 -0
  62. package/esm2020/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.mjs +54 -0
  63. package/esm2020/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.mjs +48 -0
  64. package/esm2020/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.mjs +44 -0
  65. package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +4 -4
  66. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +4 -4
  67. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +4 -4
  68. package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +4 -4
  69. package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +4 -4
  70. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +4 -4
  71. package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +4 -4
  72. package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +4 -4
  73. package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +4 -4
  74. package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +4 -4
  75. package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +4 -4
  76. package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +4 -4
  77. package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +4 -4
  78. package/esm2020/datatable/datatable.module.mjs +53 -11
  79. package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +4 -4
  80. package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +4 -4
  81. package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +4 -4
  82. package/esm2020/datatable/directives/datatable-column-filter-tpl.directive.mjs +16 -0
  83. package/esm2020/datatable/directives/datatable-column-filter.directive.mjs +26 -0
  84. package/esm2020/datatable/directives/datatable-filter.directive.mjs +4 -4
  85. package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +4 -4
  86. package/esm2020/datatable/models/action-item-column-position.mjs +5 -0
  87. package/esm2020/datatable/models/columns-data-filter.mjs +10 -0
  88. package/esm2020/datatable/models/columns-data-filters/models.mjs +74 -0
  89. package/esm2020/datatable/models/columns-data-filters/search-date.columns-data-filter.mjs +113 -0
  90. package/esm2020/datatable/models/columns-data-filters/search-numeric.columns-data-filter.mjs +104 -0
  91. package/esm2020/datatable/models/columns-data-filters/search-text.columns-data-filter.mjs +86 -0
  92. package/esm2020/datatable/models/columns-data-filters/utils.mjs +28 -0
  93. package/esm2020/datatable/models/datatable-config.mjs +3 -0
  94. package/esm2020/datatable/models/table-column.mjs +1 -1
  95. package/esm2020/datatable/public-api.mjs +15 -1
  96. package/esm2020/datatable/services/columns-alterations-manager.service.mjs +4 -4
  97. package/esm2020/datatable/services/columns-filters.service.mjs +109 -0
  98. package/esm2020/datatable/services/columns-manager.service.mjs +30 -5
  99. package/esm2020/datatable/services/datatable-column-changes.service.mjs +4 -4
  100. package/esm2020/datatable/services/datatable-preferences.service.mjs +4 -4
  101. package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +4 -4
  102. package/esm2020/datatable/utils/create-action-menu-column.mjs +4 -3
  103. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +4 -4
  104. package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +4 -4
  105. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +4 -4
  106. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +5 -5
  107. package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +5 -5
  108. package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +4 -4
  109. package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +4 -4
  110. package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +4 -4
  111. package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +4 -4
  112. package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +4 -4
  113. package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +4 -4
  114. package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +4 -4
  115. package/esm2020/dynamic/dynamic-value-helper.service.mjs +4 -4
  116. package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +4 -4
  117. package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +4 -4
  118. package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +5 -5
  119. package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +4 -4
  120. package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +4 -4
  121. package/esm2020/footer-bar/footer-bar.module.mjs +5 -5
  122. package/esm2020/form-field/form-field-error.directive.mjs +4 -4
  123. package/esm2020/form-field/form-field-help-text.directive.mjs +4 -4
  124. package/esm2020/form-field/form-field-label-tpl.directive.mjs +4 -4
  125. package/esm2020/form-field/form-field-required-indicator.component.mjs +4 -4
  126. package/esm2020/form-field/form-field.component.mjs +4 -4
  127. package/esm2020/form-field/form-field.module.mjs +5 -5
  128. package/esm2020/form-field/input.directive.mjs +4 -4
  129. package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +4 -4
  130. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +4 -4
  131. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +4 -4
  132. package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +4 -4
  133. package/esm2020/form-field-error/form-field-error.module.mjs +5 -5
  134. package/esm2020/framework/base-layout/base-layout.component.mjs +16 -6
  135. package/esm2020/framework/base-layout/base-layout.module.mjs +10 -5
  136. package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +4 -4
  137. package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +4 -4
  138. package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +4 -4
  139. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +22 -6
  140. package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +4 -4
  141. package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +16 -0
  142. package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +4 -4
  143. package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +4 -4
  144. package/esm2020/framework/base-layout/index.mjs +2 -1
  145. package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +4 -4
  146. package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +4 -4
  147. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +4 -4
  148. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +4 -4
  149. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +4 -4
  150. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +4 -4
  151. package/esm2020/framework/dashboard/dashboard.component.mjs +4 -4
  152. package/esm2020/framework/dashboard/dashboard.module.mjs +5 -5
  153. package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +5 -5
  154. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +4 -4
  155. package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +4 -4
  156. package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +55 -0
  157. package/esm2020/framework/nav/index.mjs +6 -0
  158. package/esm2020/framework/nav/nav-item/nav-item.component.mjs +227 -0
  159. package/esm2020/framework/nav/nav-utils.mjs +107 -0
  160. package/esm2020/framework/nav/nav.models.mjs +2 -0
  161. package/esm2020/framework/nav/nav.module.mjs +67 -0
  162. package/esm2020/framework/nav/nav.service.mjs +204 -0
  163. package/esm2020/framework/public-api.mjs +2 -1
  164. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +4 -4
  165. package/esm2020/framework/schema-form/schema-form-framework.mjs +4 -4
  166. package/esm2020/framework/schema-form/schema-form.module.mjs +5 -5
  167. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +4 -4
  168. package/esm2020/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.mjs +4 -4
  169. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +4 -4
  170. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +4 -4
  171. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +4 -4
  172. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +4 -4
  173. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +4 -4
  174. package/esm2020/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.mjs +4 -4
  175. package/esm2020/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.mjs +4 -4
  176. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +29 -68
  177. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +14 -7
  178. package/esm2020/framework/side-nav/side-nav.component.mjs +117 -39
  179. package/esm2020/framework/side-nav/side-nav.models.mjs +1 -1
  180. package/esm2020/framework/side-nav/side-nav.module.mjs +11 -41
  181. package/esm2020/framework/side-nav/side-nav.service.mjs +4 -4
  182. package/esm2020/framework/top-bar/index.mjs +3 -1
  183. package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +16 -0
  184. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +12 -6
  185. package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +4 -4
  186. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +8 -6
  187. package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +4 -4
  188. package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +16 -0
  189. package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +4 -4
  190. package/esm2020/framework/top-bar/top-bar.component.mjs +57 -13
  191. package/esm2020/framework/top-bar/top-bar.module.mjs +19 -9
  192. package/esm2020/google-maps/google-maps/google-maps.component.mjs +4 -4
  193. package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +4 -4
  194. package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +4 -4
  195. package/esm2020/google-maps/google-maps-controls.service.mjs +4 -4
  196. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +5 -5
  197. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +4 -4
  198. package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +4 -4
  199. package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +4 -4
  200. package/esm2020/google-maps/google-maps.module.mjs +5 -5
  201. package/esm2020/google-maps/google-maps.service.mjs +4 -4
  202. package/esm2020/google-maps/map-control.component.mjs +4 -4
  203. package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +4 -4
  204. package/esm2020/google-maps/map-value-manager.service.mjs +4 -4
  205. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +4 -4
  206. package/esm2020/graphql/datatable/index.mjs +4 -1
  207. package/esm2020/graphql/datatable/map-filter-states.mjs +1 -1
  208. package/esm2020/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.mjs +139 -0
  209. package/esm2020/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.mjs +75 -0
  210. package/esm2020/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.mjs +44 -0
  211. package/esm2020/icon/icon/icon.component.mjs +4 -4
  212. package/esm2020/icon/icon-btn/icon-btn.component.mjs +4 -4
  213. package/esm2020/icon/icon-notification/icon-notification.component.mjs +4 -4
  214. package/esm2020/icon/icon.module.mjs +5 -5
  215. package/esm2020/layout/layout.module.mjs +5 -5
  216. package/esm2020/layout/layout.service.mjs +15 -5
  217. package/esm2020/loading/loading/loading.component.mjs +4 -4
  218. package/esm2020/loading/loading-overlay.service.mjs +4 -4
  219. package/esm2020/loading/loading.module.mjs +5 -5
  220. package/esm2020/menu/menu-divider.component.mjs +4 -4
  221. package/esm2020/menu/menu-footer/menu-footer.component.mjs +4 -4
  222. package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +4 -4
  223. package/esm2020/menu/menu-header/menu-header.component.mjs +4 -4
  224. package/esm2020/menu/menu-item.component.mjs +4 -4
  225. package/esm2020/menu/menu-toggle.directive.mjs +9 -4
  226. package/esm2020/menu/menu.component.mjs +4 -4
  227. package/esm2020/menu/menu.module.mjs +5 -5
  228. package/esm2020/modal/directives/modal-close.directive.mjs +4 -4
  229. package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +4 -4
  230. package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +4 -4
  231. package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +4 -4
  232. package/esm2020/modal/directives/modal-title.directive.mjs +4 -4
  233. package/esm2020/modal/directives/modal.directive.mjs +4 -4
  234. package/esm2020/modal/modal/modal.component.mjs +4 -4
  235. package/esm2020/modal/modal-body/modal-body.component.mjs +4 -4
  236. package/esm2020/modal/modal-container/modal-container.component.mjs +4 -4
  237. package/esm2020/modal/modal-footer/modal-footer.component.mjs +4 -4
  238. package/esm2020/modal/modal-header/modal-header.component.mjs +4 -4
  239. package/esm2020/modal/modal.module.mjs +5 -5
  240. package/esm2020/modal/modal.service.mjs +4 -4
  241. package/esm2020/modal/route-modal/route-modal.component.mjs +4 -4
  242. package/esm2020/navigation-reload/navigation-reload.service.mjs +5 -5
  243. package/esm2020/popover/popover/popover.component.mjs +9 -5
  244. package/esm2020/popover/popover.directive.mjs +8 -4
  245. package/esm2020/popover/popover.module.mjs +5 -5
  246. package/esm2020/progress/progress-circle/progress-circle.component.mjs +4 -4
  247. package/esm2020/progress/progress.module.mjs +5 -5
  248. package/esm2020/rich-text/rich-text/rich-text.component.mjs +4 -4
  249. package/esm2020/rich-text/rich-text.module.mjs +5 -5
  250. package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +4 -4
  251. package/esm2020/scrollbar/overlay-scrollbars.service.mjs +4 -4
  252. package/esm2020/scrollbar/scrollbar.module.mjs +5 -5
  253. package/esm2020/services/asset-loader.service.mjs +4 -4
  254. package/esm2020/services/font-loader.service.mjs +4 -4
  255. package/esm2020/services/preferences/preferences-manager.service.mjs +4 -4
  256. package/esm2020/services/router-helpers.service.mjs +4 -4
  257. package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +4 -4
  258. package/esm2020/shared/directives/auto-focus.directive.mjs +4 -4
  259. package/esm2020/shared/directives/click-outside.directive.mjs +4 -4
  260. package/esm2020/shared/directives/disable-control.directive.mjs +4 -4
  261. package/esm2020/shared/directives/elem-resized.directive.mjs +4 -4
  262. package/esm2020/shared/directives/hover-class-toggle.directive.mjs +4 -4
  263. package/esm2020/shared/directives/hover-class.directive.mjs +4 -4
  264. package/esm2020/shared/directives/ng-select-extra.directive.mjs +4 -4
  265. package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +4 -4
  266. package/esm2020/shared/pipes/mask-chars.pipe.mjs +4 -4
  267. package/esm2020/shared/pipes/truncate.pipe.mjs +4 -4
  268. package/esm2020/shared/shared.module.mjs +5 -5
  269. package/esm2020/storage/local-storage.service.mjs +4 -4
  270. package/esm2020/story-helpers/initial-route.service.mjs +4 -4
  271. package/esm2020/story-helpers/story-empty-with-route.component.mjs +4 -4
  272. package/esm2020/story-helpers/story-empty.component.mjs +4 -4
  273. package/esm2020/story-helpers/story-helper-components.module.mjs +5 -5
  274. package/esm2020/story-helpers/story-initial-route.mjs +5 -5
  275. package/esm2020/story-helpers/story-modal-container.component.mjs +4 -4
  276. package/esm2020/story-helpers/story-preferences-accessor.service.mjs +4 -4
  277. package/esm2020/story-helpers/story-toastr.service.mjs +4 -4
  278. package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +4 -4
  279. package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +4 -4
  280. package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +4 -4
  281. package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +4 -4
  282. package/esm2020/tabbed/tabbed.component.mjs +4 -4
  283. package/esm2020/tabbed/tabbed.module.mjs +5 -5
  284. package/esm2020/tabbed/tabbed.service.mjs +4 -4
  285. package/esm2020/table/public-api.mjs +4 -1
  286. package/esm2020/table/table/table.component.mjs +92 -7
  287. package/esm2020/table/table-cell-tpl.directive.mjs +17 -0
  288. package/esm2020/table/table-column-header-tpl.directive.mjs +17 -0
  289. package/esm2020/table/table-column.component.mjs +68 -0
  290. package/esm2020/table/table.module.mjs +25 -9
  291. package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +4 -4
  292. package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +4 -4
  293. package/esm2020/table-cell-type/table-cell-type.module.mjs +5 -5
  294. package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +4 -4
  295. package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +4 -4
  296. package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +4 -4
  297. package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +4 -4
  298. package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +4 -4
  299. package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +4 -4
  300. package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +4 -4
  301. package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +4 -4
  302. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +7 -5
  303. package/esm2020/table-cell-types/table-cell-types.module.mjs +5 -5
  304. package/esm2020/tel-input/phone-number.pipe.mjs +4 -4
  305. package/esm2020/tel-input/tel-input/tel-input.component.mjs +4 -4
  306. package/esm2020/tel-input/tel-input.directive.mjs +4 -4
  307. package/esm2020/tel-input/tel-input.module.mjs +5 -5
  308. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +4 -4
  309. package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +4 -4
  310. package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +4 -4
  311. package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +4 -4
  312. package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +4 -4
  313. package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +4 -4
  314. package/esm2020/tiled-select/tiled-select.module.mjs +5 -5
  315. package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +4 -4
  316. package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +4 -4
  317. package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +4 -4
  318. package/esm2020/toggle-edit/toggle-edit.component.mjs +4 -4
  319. package/esm2020/toggle-edit/toggle-edit.module.mjs +5 -5
  320. package/esm2020/toggle-group/toggle-group-option.directive.mjs +4 -4
  321. package/esm2020/toggle-group/toggle-group.directive.mjs +4 -4
  322. package/esm2020/toggle-group/toggle-group.module.mjs +5 -5
  323. package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +4 -4
  324. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +4 -4
  325. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +4 -4
  326. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +5 -5
  327. package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
  328. package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
  329. package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
  330. package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
  331. package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
  332. package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
  333. package/esm2020/vertical-list-filter/vertical-list-filter.component.mjs +4 -4
  334. package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +4 -4
  335. package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +5 -5
  336. package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +4 -4
  337. package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +4 -4
  338. package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +4 -4
  339. package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +5 -5
  340. package/esm2020/widget/directives/widget-drag-handle.directive.mjs +4 -4
  341. package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +4 -4
  342. package/esm2020/widget/directives/widget-title-tpl.directive.mjs +4 -4
  343. package/esm2020/widget/preferences/widget-preferences.service.mjs +4 -4
  344. package/esm2020/widget/widget/widget.component.mjs +4 -4
  345. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +4 -4
  346. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +5 -5
  347. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +4 -4
  348. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +5 -5
  349. package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +4 -4
  350. package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +5 -5
  351. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +4 -4
  352. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +5 -5
  353. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +4 -4
  354. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +5 -5
  355. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +4 -4
  356. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +5 -5
  357. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +4 -4
  358. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +5 -5
  359. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +4 -4
  360. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +16 -16
  361. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +4 -4
  362. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +5 -5
  363. package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +4 -4
  364. package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +5 -5
  365. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +4 -4
  366. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +4 -4
  367. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +4 -4
  368. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +4 -4
  369. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +7 -7
  370. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +5 -5
  371. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +4 -4
  372. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +5 -5
  373. package/esm2020/widget/widget-footer/widget-footer.component.mjs +4 -4
  374. package/esm2020/widget/widget-registry.service.mjs +4 -4
  375. package/esm2020/widget/widget.module.mjs +5 -5
  376. package/fesm2015/theseam-ui-common-asset-reader.mjs +10 -10
  377. package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
  378. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +11 -11
  379. package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  380. package/fesm2015/theseam-ui-common-buttons.mjs +25 -25
  381. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  382. package/fesm2015/theseam-ui-common-card.mjs +19 -19
  383. package/fesm2015/theseam-ui-common-card.mjs.map +1 -1
  384. package/fesm2015/theseam-ui-common-carousel.mjs +10 -10
  385. package/fesm2015/theseam-ui-common-carousel.mjs.map +1 -1
  386. package/fesm2015/theseam-ui-common-checkbox.mjs +7 -7
  387. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  388. package/fesm2015/theseam-ui-common-confirm-dialog.mjs +13 -13
  389. package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  390. package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
  391. package/fesm2015/theseam-ui-common-data-exporter.mjs.map +1 -1
  392. package/fesm2015/theseam-ui-common-data-filters.mjs +13 -13
  393. package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
  394. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +26 -26
  395. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  396. package/fesm2015/theseam-ui-common-datatable.mjs +1112 -139
  397. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  398. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  399. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  400. package/fesm2015/theseam-ui-common-dynamic.mjs +21 -21
  401. package/fesm2015/theseam-ui-common-dynamic.mjs.map +1 -1
  402. package/fesm2015/theseam-ui-common-footer-bar.mjs +7 -7
  403. package/fesm2015/theseam-ui-common-footer-bar.mjs.map +1 -1
  404. package/fesm2015/theseam-ui-common-form-field-error.mjs +16 -16
  405. package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
  406. package/fesm2015/theseam-ui-common-form-field.mjs +22 -22
  407. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  408. package/fesm2015/theseam-ui-common-framework.mjs +1026 -277
  409. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  410. package/fesm2015/theseam-ui-common-google-maps.mjs +41 -41
  411. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  412. package/fesm2015/theseam-ui-common-graphql.mjs +257 -4
  413. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  414. package/fesm2015/theseam-ui-common-icon.mjs +13 -13
  415. package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
  416. package/fesm2015/theseam-ui-common-layout.mjs +18 -9
  417. package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
  418. package/fesm2015/theseam-ui-common-loading.mjs +10 -10
  419. package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
  420. package/fesm2015/theseam-ui-common-menu.mjs +30 -25
  421. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  422. package/fesm2015/theseam-ui-common-modal.mjs +43 -43
  423. package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
  424. package/fesm2015/theseam-ui-common-navigation-reload.mjs +4 -4
  425. package/fesm2015/theseam-ui-common-navigation-reload.mjs.map +1 -1
  426. package/fesm2015/theseam-ui-common-popover.mjs +19 -11
  427. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  428. package/fesm2015/theseam-ui-common-progress.mjs +7 -7
  429. package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
  430. package/fesm2015/theseam-ui-common-rich-text.mjs +7 -7
  431. package/fesm2015/theseam-ui-common-rich-text.mjs.map +1 -1
  432. package/fesm2015/theseam-ui-common-scrollbar.mjs +10 -10
  433. package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
  434. package/fesm2015/theseam-ui-common-services.mjs +12 -12
  435. package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
  436. package/fesm2015/theseam-ui-common-shared.mjs +37 -37
  437. package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
  438. package/fesm2015/theseam-ui-common-storage.mjs +3 -3
  439. package/fesm2015/theseam-ui-common-storage.mjs.map +1 -1
  440. package/fesm2015/theseam-ui-common-story-helpers.mjs +26 -26
  441. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  442. package/fesm2015/theseam-ui-common-tabbed.mjs +22 -22
  443. package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
  444. package/fesm2015/theseam-ui-common-table-cell-type.mjs +10 -10
  445. package/fesm2015/theseam-ui-common-table-cell-type.mjs.map +1 -1
  446. package/fesm2015/theseam-ui-common-table-cell-types.mjs +34 -32
  447. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  448. package/fesm2015/theseam-ui-common-table.mjs +207 -15
  449. package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
  450. package/fesm2015/theseam-ui-common-tel-input.mjs +13 -13
  451. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  452. package/fesm2015/theseam-ui-common-tiled-select.mjs +22 -22
  453. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  454. package/fesm2015/theseam-ui-common-toggle-edit.mjs +16 -16
  455. package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
  456. package/fesm2015/theseam-ui-common-toggle-group.mjs +10 -10
  457. package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
  458. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  459. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  460. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  461. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs +3 -3
  462. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
  463. package/fesm2015/theseam-ui-common-viewers.mjs +20 -20
  464. package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
  465. package/fesm2015/theseam-ui-common-widget.mjs +135 -135
  466. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  467. package/fesm2020/theseam-ui-common-asset-reader.mjs +10 -10
  468. package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
  469. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +11 -11
  470. package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  471. package/fesm2020/theseam-ui-common-buttons.mjs +25 -25
  472. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  473. package/fesm2020/theseam-ui-common-card.mjs +19 -19
  474. package/fesm2020/theseam-ui-common-card.mjs.map +1 -1
  475. package/fesm2020/theseam-ui-common-carousel.mjs +10 -10
  476. package/fesm2020/theseam-ui-common-carousel.mjs.map +1 -1
  477. package/fesm2020/theseam-ui-common-checkbox.mjs +7 -7
  478. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  479. package/fesm2020/theseam-ui-common-confirm-dialog.mjs +13 -13
  480. package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  481. package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
  482. package/fesm2020/theseam-ui-common-data-exporter.mjs.map +1 -1
  483. package/fesm2020/theseam-ui-common-data-filters.mjs +13 -13
  484. package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
  485. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +26 -26
  486. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  487. package/fesm2020/theseam-ui-common-datatable.mjs +1096 -139
  488. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  489. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  490. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  491. package/fesm2020/theseam-ui-common-dynamic.mjs +21 -21
  492. package/fesm2020/theseam-ui-common-dynamic.mjs.map +1 -1
  493. package/fesm2020/theseam-ui-common-footer-bar.mjs +7 -7
  494. package/fesm2020/theseam-ui-common-footer-bar.mjs.map +1 -1
  495. package/fesm2020/theseam-ui-common-form-field-error.mjs +16 -16
  496. package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
  497. package/fesm2020/theseam-ui-common-form-field.mjs +22 -22
  498. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  499. package/fesm2020/theseam-ui-common-framework.mjs +1028 -277
  500. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  501. package/fesm2020/theseam-ui-common-google-maps.mjs +41 -41
  502. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  503. package/fesm2020/theseam-ui-common-graphql.mjs +257 -4
  504. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  505. package/fesm2020/theseam-ui-common-icon.mjs +13 -13
  506. package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
  507. package/fesm2020/theseam-ui-common-layout.mjs +18 -9
  508. package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
  509. package/fesm2020/theseam-ui-common-loading.mjs +10 -10
  510. package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
  511. package/fesm2020/theseam-ui-common-menu.mjs +30 -25
  512. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  513. package/fesm2020/theseam-ui-common-modal.mjs +43 -43
  514. package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
  515. package/fesm2020/theseam-ui-common-navigation-reload.mjs +4 -4
  516. package/fesm2020/theseam-ui-common-navigation-reload.mjs.map +1 -1
  517. package/fesm2020/theseam-ui-common-popover.mjs +19 -11
  518. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  519. package/fesm2020/theseam-ui-common-progress.mjs +7 -7
  520. package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
  521. package/fesm2020/theseam-ui-common-rich-text.mjs +7 -7
  522. package/fesm2020/theseam-ui-common-rich-text.mjs.map +1 -1
  523. package/fesm2020/theseam-ui-common-scrollbar.mjs +10 -10
  524. package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
  525. package/fesm2020/theseam-ui-common-services.mjs +12 -12
  526. package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
  527. package/fesm2020/theseam-ui-common-shared.mjs +37 -37
  528. package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
  529. package/fesm2020/theseam-ui-common-storage.mjs +3 -3
  530. package/fesm2020/theseam-ui-common-storage.mjs.map +1 -1
  531. package/fesm2020/theseam-ui-common-story-helpers.mjs +26 -26
  532. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  533. package/fesm2020/theseam-ui-common-tabbed.mjs +22 -22
  534. package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
  535. package/fesm2020/theseam-ui-common-table-cell-type.mjs +10 -10
  536. package/fesm2020/theseam-ui-common-table-cell-type.mjs.map +1 -1
  537. package/fesm2020/theseam-ui-common-table-cell-types.mjs +34 -32
  538. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  539. package/fesm2020/theseam-ui-common-table.mjs +205 -15
  540. package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
  541. package/fesm2020/theseam-ui-common-tel-input.mjs +13 -13
  542. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  543. package/fesm2020/theseam-ui-common-tiled-select.mjs +22 -22
  544. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  545. package/fesm2020/theseam-ui-common-toggle-edit.mjs +16 -16
  546. package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
  547. package/fesm2020/theseam-ui-common-toggle-group.mjs +10 -10
  548. package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
  549. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  550. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  551. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  552. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs +3 -3
  553. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
  554. package/fesm2020/theseam-ui-common-viewers.mjs +20 -20
  555. package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
  556. package/fesm2020/theseam-ui-common-widget.mjs +135 -135
  557. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  558. package/framework/base-layout/base-layout.component.d.ts +4 -2
  559. package/framework/base-layout/base-layout.component.scss +18 -10
  560. package/framework/base-layout/base-layout.module.d.ts +11 -10
  561. package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +8 -3
  562. package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +9 -0
  563. package/framework/base-layout/index.d.ts +1 -0
  564. package/framework/base-layout/styles/_variables.scss +21 -0
  565. package/framework/nav/_nav-theme.scss +4 -0
  566. package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +25 -0
  567. package/framework/nav/horizontal-nav/horizontal-nav.component.scss +50 -0
  568. package/framework/nav/index.d.ts +5 -0
  569. package/framework/nav/nav-item/nav-item.component.d.ts +74 -0
  570. package/framework/nav/nav-item/nav-item.component.scss +203 -0
  571. package/framework/nav/nav-utils.d.ts +20 -0
  572. package/framework/nav/nav.models.d.ts +77 -0
  573. package/framework/nav/nav.module.d.ts +17 -0
  574. package/framework/nav/nav.service.d.ts +27 -0
  575. package/framework/nav/styles/_themes/light/_variables.scss +56 -0
  576. package/framework/nav/styles/_themes/primary/_variables.scss +56 -0
  577. package/framework/nav/styles/_utilities.scss +3 -0
  578. package/framework/nav/styles/_variables.scss +2 -0
  579. package/framework/public-api.d.ts +1 -0
  580. package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +7 -14
  581. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +7 -5
  582. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +5 -3
  583. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +3 -6
  584. package/framework/side-nav/side-nav.component.d.ts +13 -1
  585. package/framework/side-nav/side-nav.component.scss +0 -1
  586. package/framework/side-nav/side-nav.models.d.ts +7 -1
  587. package/framework/side-nav/side-nav.module.d.ts +1 -9
  588. package/framework/side-nav/styles/_themes/light/_variables.scss +24 -14
  589. package/framework/side-nav/styles/_themes/primary/_variables.scss +8 -0
  590. package/framework/top-bar/index.d.ts +2 -0
  591. package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +8 -0
  592. package/framework/top-bar/top-bar-item.directive.d.ts +4 -1
  593. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +5 -2
  594. package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +8 -0
  595. package/framework/top-bar/top-bar.component.d.ts +25 -3
  596. package/framework/top-bar/top-bar.component.scss +7 -2
  597. package/framework/top-bar/top-bar.module.d.ts +10 -8
  598. package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
  599. package/graphql/datatable/index.d.ts +3 -0
  600. package/graphql/datatable/map-filter-states.d.ts +2 -2
  601. package/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.d.ts +4 -0
  602. package/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.d.ts +4 -0
  603. package/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.d.ts +4 -0
  604. package/layout/layout.service.d.ts +9 -1
  605. package/menu/menu-toggle.directive.d.ts +2 -1
  606. package/package.json +3 -3
  607. package/popover/popover/popover.component.d.ts +4 -1
  608. package/popover/popover.directive.d.ts +2 -1
  609. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +83 -14
  610. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +38 -3
  611. package/table/public-api.d.ts +3 -0
  612. package/table/table/table.component.d.ts +21 -3
  613. package/table/table-cell-tpl.directive.d.ts +7 -0
  614. package/table/table-column-header-tpl.directive.d.ts +7 -0
  615. package/table/table-column.component.d.ts +24 -0
  616. package/table/table.module.d.ts +4 -1
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-graphql.mjs","sources":["../../../projects/ui-common/graphql/utils/contains-variable.ts","../../../projects/ui-common/graphql/utils/gql-var.ts","../../../projects/ui-common/graphql/utils/inline-variables.ts","../../../projects/ui-common/graphql/utils/parse-comments.ts","../../../projects/ui-common/graphql/models/direction.ts","../../../projects/ui-common/graphql/models/hints-kind.ts","../../../projects/ui-common/graphql/models/query-processing-config.ts","../../../projects/ui-common/graphql/models/variable.ts","../../../projects/ui-common/graphql/utils/parse-hints.ts","../../../projects/ui-common/graphql/utils/remove-variable-definition.ts","../../../projects/ui-common/graphql/utils/remove-variable-definitions-not-defined.ts","../../../projects/ui-common/graphql/utils/remove-variable.ts","../../../projects/ui-common/graphql/utils/to-gql.ts","../../../projects/ui-common/graphql/utils/hints-tokens-containing-hint.ts","../../../projects/ui-common/graphql/datatable/get-page-info.ts","../../../projects/ui-common/graphql/datatable/create-page-info-observable.ts","../../../projects/ui-common/graphql/datatable/map-filter-states.ts","../../../projects/ui-common/graphql/datatable/map-page-info.ts","../../../projects/ui-common/graphql/datatable/datatable-helpers.ts","../../../projects/ui-common/graphql/datatable/datatable-graphql-query-ref.ts","../../../projects/ui-common/graphql/datatable/datatable-graphql.service.ts","../../../projects/ui-common/graphql/theseam-ui-common-graphql.ts"],"sourcesContent":["import { BREAK, DocumentNode, ValueNode, visit } from 'graphql/language'\n\nexport function containsVariable(node: DocumentNode | ValueNode, variableName: string) {\n let found = false\n\n visit(node, {\n Variable(variable) {\n if (variableName === variable.name.value) {\n found = true\n return BREAK\n }\n }\n })\n\n return found\n}\n","\nexport function gqlVar(varName: string): { gqlVar: string } {\n return { gqlVar: `$${varName}` }\n}\n","import { isDevMode } from '@angular/core'\n\nimport { hasProperty } from '@theseam/ui-common/utils'\nimport { BREAK, DocumentNode, ValueNode, visit } from 'graphql'\n\nexport function inlineVariable(query: DocumentNode, variableName: string, variableValue: ValueNode): DocumentNode {\n // return visit(query, {\n // VariableDefinition(node) {\n // if (variableName === node.variable.name.value) {\n // console.log(node)\n // // found = true\n // console.log('insert', variableValue)\n // // return BREAK\n\n // // node.defaultValue = variableValue\n // return {\n // ...node,\n // defaultValue: variableValue\n // }\n // }\n // }\n // })\n\n // console.log('~inlineVariable', variableName, variableValue)\n\n // TODO: Decide if this is a good solution.\n if (hasProperty(variableValue as any, 'value') && (variableValue as any).value === 'undefined') {\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn(`Ignoring attempt to inline '${variableName}', because it is undefined.`)\n }\n return visit(query, {\n SelectionSet(selectionSetNode) {\n return visit(selectionSetNode, {\n Variable(variableNode) {\n if (variableName === variableNode.name.value) {\n return null\n }\n }\n })\n }\n })\n }\n\n return visit(query, {\n SelectionSet(selectionSetNode) {\n return visit(selectionSetNode, {\n Variable(variableNode) {\n if (variableName === variableNode.name.value) {\n return variableValue\n }\n }\n })\n }\n })\n}\n","import { DocumentNode, Token } from 'graphql/language'\n\n// Based on Prettier's comment parsing.\n//\n// Source: https://github.com/prettier/prettier/blob/4e46f92b8648c7f25de62bfaf4368aa3f2e588d9/src/language-graphql/parser-graphql.js#L6\nexport function parseComments(ast: DocumentNode): Token[] {\n const comments: Token[] = []\n\n if (ast.loc === undefined) {\n return comments\n }\n\n const startToken = ast.loc.startToken\n let next = startToken.next\n while (next !== null && next.kind !== '<EOF>') {\n if (next.kind === 'Comment') {\n Object.assign(next, {\n // The Comment token's column starts _after_ the `#`,\n // but we need to make sure the node captures the `#`\n column: next.column - 1\n })\n comments.push(next)\n }\n next = next.next\n }\n\n return comments\n}\n","export class GQLDirection {\n constructor(public readonly direction: string) { }\n public static readonly ASC = new GQLDirection('ASC')\n public static readonly DESC = new GQLDirection('DESC')\n}\n","export enum HintsKind {\n OperationDefinition = 'OperationDefinition',\n Field = 'Field',\n VariableDefinition = 'VariableDefinition',\n Variable = 'Variable',\n Argument = 'Argument'\n}\n","export const DEFAULT_TO_REMOVE_ON_UNDEFINED = [ 'where', 'order' ]\n\nexport interface QueryProcessingVariablesConfig {\n removeIfNotDefined?: string[]\n removeIfNotUsed?: string[]\n inline?: string[]\n}\n\nexport interface QueryProcessingConfig {\n variables: QueryProcessingVariablesConfig\n\n /**\n * If skip and take are found, they will be removed\n */\n disablePaging?: boolean\n}\n","export class GQLVariable {\n constructor(\n public readonly name: string,\n public readonly type: string\n ) {}\n}\n","import {\n ArgumentNode,\n BREAK,\n DocumentNode,\n FieldNode,\n OperationDefinitionNode,\n parse,\n Token,\n VariableDefinitionNode,\n VariableNode,\n visit\n} from 'graphql'\n\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { HintsKind, HintsToken } from '../models'\nimport { parseComments } from './parse-comments'\n\nexport const HINT_PREFIX_REGEX = /^\\s*@gql-hint:.+/\nexport const HINT_NAMES_CAPTURE_REGEX = /^\\s*@gql-hint:([a-zA-z-\\d\\s]+)$/\n\n/**\n * If AST loc has startToken prop then return same AST else reparse with config\n * to contain comments and loc at each node.\n */\nexport function parseAst(ast: DocumentNode): DocumentNode {\n if (ast.loc === undefined) {\n throw Error(`Expected AST to have loc.`)\n }\n\n if (ast.loc.startToken !== undefined) {\n return ast\n }\n\n return parse(ast.loc.source, {\n allowLegacySDLImplementsInterfaces: false,\n experimentalFragmentVariables: true,\n })\n}\n\nexport function isCommentToken(token: Token): boolean {\n return token.kind === 'Comment'\n}\n\nexport function isHintToken(token: Token): boolean {\n return (isCommentToken(token) &&\n (token.value?.match(HINT_PREFIX_REGEX)?.length || 0) > 0) || false\n}\n\nexport function isInlineComment(token: Token): boolean {\n return isCommentToken(token) &&\n token.prev !== null &&\n token.prev.line === token.line\n}\n\nexport function hintNamesFromHintToken(token: Token): string[] {\n const grp = token.value?.match(HINT_NAMES_CAPTURE_REGEX)\n if (grp === null || grp === undefined || grp.length === 0) {\n return []\n }\n return grp[1].split(' ').map(x => x.trim()).filter(x => x.length > 0)\n}\n\nexport function getTokenAppliesTo(token: Token): Token | null {\n if (isInlineComment(token)) {\n return token.prev\n }\n\n let t = token.next\n if (t?.kind === '$' && t.next?.kind === 'Name') {\n t = t.next\n }\n return t\n}\n\nexport function createHintsToken(token: Token, node: HintsToken['node'], kind: HintsKind): HintsToken {\n return {\n node,\n hints: hintNamesFromHintToken(token),\n kind\n }\n}\n\nexport function getHintsToken(token: Token, ast: DocumentNode): HintsToken | null {\n // console.log('getHintsToken', token)\n const appliesTo = getTokenAppliesTo(token)\n if (appliesTo === null) {\n return null\n }\n\n let appliesToNode: HintsToken | null = null\n visit(ast, {\n OperationDefinition(node: OperationDefinitionNode) {\n if (node.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.OperationDefinition)\n return BREAK\n }\n },\n VariableDefinition(node: VariableDefinitionNode) {\n if (node.variable.name.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.VariableDefinition)\n return BREAK\n }\n },\n Variable(node: VariableNode) {\n if (node.name.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.Variable)\n return BREAK\n }\n },\n Argument(node: ArgumentNode) {\n if (node.name.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.Argument)\n return BREAK\n }\n },\n Field(node: FieldNode) {\n if (node.name.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.Field)\n return BREAK\n }\n }\n })\n return appliesToNode\n}\n\nexport function parseHints(ast: DocumentNode): HintsToken[] {\n const _ast = parseAst(ast)\n // console.log('_ast', _ast)\n return parseComments(_ast)\n .filter(isHintToken)\n .map(r => getHintsToken(r, _ast))\n .filter(notNullOrUndefined)\n}\n","import { DocumentNode, visit } from 'graphql'\n\nexport function removeVariableDefinition(query: DocumentNode, variableName: string): DocumentNode {\n return visit(query, {\n VariableDefinition: {\n enter(variable) {\n const name = variable.variable.name.value\n if (name === variableName) {\n return null\n }\n }\n }\n })\n}\n","import { Operation } from '@apollo/client'\nimport { DocumentNode, OperationDefinitionNode, visit } from 'graphql'\n\nimport { isNullOrUndefined } from '@theseam/ui-common/utils'\n\nexport function removeVariableDefinitionsNotDefined(\n query: DocumentNode,\n node: OperationDefinitionNode,\n variables: Operation['variables']\n) {\n return visit(query, {\n OperationDefinition(opDef) {\n if (opDef === node) {\n return visit(opDef, {\n VariableDefinition(varDef) {\n const name = varDef.variable.name.value\n if (isNullOrUndefined(variables[name])) {\n return null\n }\n }\n })\n }\n }\n })\n}\n","import { DocumentNode, visit } from 'graphql'\n\nexport function removeVariable(query: DocumentNode, variableName: string): DocumentNode {\n return visit(query, {\n VariableDefinition: {\n enter(variable) {\n const name = variable.variable.name.value\n if (name === variableName) {\n return null\n }\n }\n },\n Argument: {\n enter(variable) {\n const name = variable.name.value\n if (name === variableName) {\n return null\n }\n }\n }\n })\n}\n","import { GQLDirection } from '../models'\n\n// Naive initial implementation. This is intended for dynamic values, such as\n// sorting and filtering. If you are defining a schema, use the gql template\n// function from 'apollo-angular'.\n//\n// TODO: Try to find a maintained library that will handle this. Ideally a\n// type-safe one, but that is becoming surprisingly harder to find than I\n// expected for GraphQL.\nexport function toGQL(json: any): string {\n const props: string[] = Object.keys(json).map(prop => {\n const value = json[prop]\n let resultValue: string | undefined\n if (typeof value === 'string') {\n resultValue = `\"${value}\"`\n } else if (value instanceof GQLDirection) {\n resultValue = `${value.direction}`\n } else if (Array.isArray(value)) {\n resultValue = `[${value.map(v => toGQL(v)).join(',')}]`\n } else if (typeof value === 'object') {\n if (Object.prototype.hasOwnProperty.call(value, 'gqlVar')) {\n resultValue = `${value.gqlVar}`\n } else {\n resultValue = toGQL(value)\n }\n } else {\n resultValue = `${value}`\n }\n if (typeof resultValue !== 'string') {\n throw Error(`Unexpected value.`)\n }\n return `${prop}: ${resultValue}`\n })\n return `{${props.join(', ')}}`\n}\n","import { HintsToken } from '../models'\n\nexport function hintsTokensContainingHint(hintsTokens: HintsToken[], hint: string): HintsToken[] {\n return hintsTokens.filter(r => r.hints.indexOf(hint) !== -1)\n}\n","import { TheSeamPageInfo } from '@theseam/ui-common/datatable'\n\nimport { GqlDatatableAccessor } from '../models/gql-datatable-accessor'\n\nexport const DEFAULT_PAGE_SIZE = 20\n\nexport function getPageInfo(\n datatable: GqlDatatableAccessor | null | undefined,\n defaultPageSize: number = DEFAULT_PAGE_SIZE\n): TheSeamPageInfo {\n return {\n offset: datatable?.ngxDatatable?.offset ?? 0,\n pageSize: datatable?.ngxDatatable?.pageSize ?? defaultPageSize,\n limit: datatable?.ngxDatatable?.limit,\n count: datatable?.ngxDatatable?.count ?? 0\n }\n}\n","import { EMPTY, Observable, Subscriber } from 'rxjs'\nimport { switchMap, tap } from 'rxjs/operators'\n\nimport { TheSeamPageInfo } from '@theseam/ui-common/datatable'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { GqlDatatableAccessor } from '../models/gql-datatable-accessor'\nimport { getPageInfo } from './get-page-info'\n\nexport function createPageInfoObservable(\n datatable$: Observable<GqlDatatableAccessor | null | undefined>,\n defaultPageSize: number = 20\n): Observable<TheSeamPageInfo> {\n return new Observable<TheSeamPageInfo>((subscriber: Subscriber<TheSeamPageInfo>) => {\n let prev: TheSeamPageInfo | null = null\n const handlePageInfo = (pageInfo: TheSeamPageInfo | null) => {\n if (!_isPageInfoSame(prev, pageInfo)) {\n if (pageInfo !== null) {\n subscriber.next(pageInfo)\n }\n prev = pageInfo\n }\n }\n\n const dtSub = datatable$.pipe(\n switchMap(dt => {\n if (!notNullOrUndefined(dt)) {\n handlePageInfo(null)\n return EMPTY\n }\n\n handlePageInfo(getPageInfo(dt, defaultPageSize))\n\n return dt.page.pipe(tap(p => handlePageInfo(p)))\n })\n ).subscribe()\n\n return () => {\n dtSub.unsubscribe()\n }\n })\n}\n\nfunction _isPageInfoSame(prev: TheSeamPageInfo | null, curr: TheSeamPageInfo | null): boolean {\n if (\n prev?.offset === curr?.offset &&\n prev?.pageSize === curr?.pageSize &&\n prev?.limit === curr?.limit &&\n prev?.count === curr?.count\n ) {\n return true\n }\n return false\n}\n","import { isDevMode } from '@angular/core'\nimport { from, Observable } from 'rxjs'\nimport { concatMap, filter, take, toArray } from 'rxjs/operators'\n\nimport { DataFilterState } from '@theseam/ui-common/data-filters'\nimport { notNullOrUndefined, wrapIntoObservable } from '@theseam/ui-common/utils'\n\nimport { MapperContext } from './mapper-context'\n\nexport interface FilterStateMapperVariables {\n [name: string]: any\n}\n\nexport interface FilterStateMapperFilter {\n [name: string]: any\n}\n\nexport type FilterStateMapperResult = {\n filter?: FilterStateMapperFilter | undefined | null,\n variables?: FilterStateMapperVariables | undefined | null\n} | null\n\nexport type FilterStateMapper = (filterState: DataFilterState, context: MapperContext)\n => (FilterStateMapperResult | Promise<FilterStateMapperResult> | Observable<FilterStateMapperResult>)\nexport interface FilterStateMappers { [filterName: string]: FilterStateMapper }\n\nfunction resolveMapper(\n filterState: DataFilterState,\n filterStateMappers: FilterStateMappers,\n context: MapperContext\n): Observable<FilterStateMapperResult> {\n const mapper = filterStateMappers[filterState.name]\n if (!notNullOrUndefined(mapper)) {\n throw Error(`Mapper for filter '${filterState.name}' not found.`)\n }\n\n return wrapIntoObservable(mapper(filterState, context)).pipe(\n // Require each mapper to complete.\n take(1)\n )\n}\n\nfunction resolveMappers(\n filterStates: DataFilterState[],\n filterStateMappers: FilterStateMappers,\n context: MapperContext\n): Observable<(Exclude<FilterStateMapperResult, null>)[]> {\n return from(filterStates).pipe(\n concatMap(filterState => resolveMapper(filterState, filterStateMappers, context)),\n filter(notNullOrUndefined),\n toArray()\n )\n}\n\nfunction mergeFilters(filters: FilterStateMapperFilter[]): { or: FilterStateMapperFilter[] } {\n return { or: filters }\n}\n\n/**\n * Merges variable objects.\n *\n * NOTE: This does not try to deep merge, so if two objects define the same\n * variable then the last object's value will be in the merged object. *In\n * devMode an error will be thrown.*\n */\nfunction mergeVariables(variableObjects: FilterStateMapperVariables[]): FilterStateMapperVariables {\n const variables: FilterStateMapperVariables = {}\n\n for (const v of variableObjects) {\n const props = Object.keys(v)\n\n if (isDevMode()) {\n for (const p of props) {\n if (notNullOrUndefined(variables[p]) && variables[p] !== v[p]) {\n // eslint-disable-next-line no-console\n console.warn(`Multiple filters adding the same variable with a different result. This could cause unexpected results.`)\n break\n }\n }\n }\n\n for (const p of props) {\n variables[p] = v[p]\n }\n }\n\n return variables\n}\n\nexport async function mapFilterStates(\n filterStates: DataFilterState[],\n filterStateMappers: FilterStateMappers,\n context: MapperContext\n): Promise<FilterStateMapperResult> {\n // TODO: Fix types\n const results: any = await resolveMappers(filterStates, filterStateMappers, context).toPromise()\n\n if (results.length === 0) {\n return null\n }\n\n const filters = results\n .map((r: any) => r.filter)\n .filter(notNullOrUndefined)\n\n const variableObjs = results\n .map((r: any) => r.variables)\n .filter(notNullOrUndefined)\n\n return {\n filter: mergeFilters(filters),\n variables: mergeVariables(variableObjs)\n }\n}\n","import { TheSeamPageInfo } from '@theseam/ui-common/datatable'\n\nexport interface PageInfoMapperResult { skip: number, take: number }\nexport type PageInfoMapper = (pageInfo: TheSeamPageInfo) => PageInfoMapperResult\n\n/**\n * Maps to a range that fetches the page before the current page, the current\n * page, and the page after the current page.\n */\nexport function mapPageInfo(pageInfo: TheSeamPageInfo): PageInfoMapperResult {\n const _skip = pageInfo.offset * pageInfo.pageSize\n\n const skipWithWindowOffset = _skip - pageInfo.pageSize\n const takeOffset = skipWithWindowOffset < 0 ? skipWithWindowOffset : 0\n\n return {\n skip: Math.max(skipWithWindowOffset, 0),\n take: Math.max((pageInfo.pageSize * 3) + takeOffset, 0)\n }\n}\n","import { isDevMode } from '@angular/core'\nimport { combineLatest, defer, Observable, of, ReplaySubject, Subject, Subscriber } from 'rxjs'\nimport { catchError, distinctUntilChanged, finalize, map, shareReplay, startWith, switchMap, take, tap } from 'rxjs/operators'\n\nimport { notNullOrUndefined, subscriberCount, wrapIntoObservable } from '@theseam/ui-common/utils'\nimport { EmptyObject } from 'apollo-angular/types'\nimport { SortItem } from '@theseam/ui-common/datatable'\n\nimport { GqlDatatableAccessor } from '../models'\nimport { createPageInfoObservable } from './create-page-info-observable'\nimport { DatatableGraphQLQueryRef } from './datatable-graphql-query-ref'\nimport { FilterStateMapperResult, FilterStateMappers, mapFilterStates } from './map-filter-states'\nimport { mapPageInfo, PageInfoMapper, PageInfoMapperResult } from './map-page-info'\nimport { MapperContext } from './mapper-context'\n\nexport type SortsMapperResult = { [name: string]: any }[]\nexport type SortsMapper = (sorts: SortItem[], context: MapperContext)\n => (SortsMapperResult | Promise<SortsMapperResult> | Observable<SortsMapperResult>)\n\ninterface DatatableResults {\n pageInfo: PageInfoMapperResult\n sorts: SortsMapperResult\n filter: FilterStateMapperResult\n context: MapperContext\n}\n\ninterface DatatableMappers {\n pageInfo: PageInfoMapper\n sorts: SortsMapper\n filters: FilterStateMappers\n}\n\nexport function observeRowsWithGqlInputsHandling<TData, TRow, GqlVariables extends EmptyObject>(\n queryRef: DatatableGraphQLQueryRef<TData, GqlVariables, TRow>,\n rows: Observable<TRow[]>,\n datatable: Observable<GqlDatatableAccessor | undefined> | Promise<GqlDatatableAccessor | undefined> | GqlDatatableAccessor,\n extraVariables: Observable<Partial<GqlVariables>> | Promise<Partial<GqlVariables>> | Partial<GqlVariables>,\n sortsMapper: SortsMapper,\n filterStateMappers: FilterStateMappers\n): Observable<TRow[]> {\n return new Observable<TRow[]>((subscriber: Subscriber<TRow[]>) => {\n const datatable$ = wrapIntoObservable(datatable)\n const extraVariables$ = wrapIntoObservable<Partial<GqlVariables>>(extraVariables)\n\n const context$ = extraVariables$.pipe(\n map(_extraVariables => {\n const context: MapperContext = {\n extraVariables: _extraVariables\n }\n\n return context\n }),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n const datatableMappers: DatatableMappers = {\n pageInfo: mapPageInfo,\n sorts: sortsMapper,\n filters: filterStateMappers,\n }\n\n const datatableResults$ = _createDatatableResultsObservable(\n datatable$,\n datatableMappers,\n context$,\n )\n\n const queryVariablesChanged$ = datatableResults$.pipe(\n tap(results => {\n queryRef.setVariables({\n ...(results.context || {}),\n ...results.pageInfo,\n ...(results.sorts.length > 0 ? { order: results.sorts } : {}),\n ...(results.filter?.variables || {}),\n ...(results.filter?.filter ? { where: results.filter.filter } : {})\n } as any)\n })\n )\n\n // const _emitSubject = new Subject<void>()\n\n // const queryVarsChangedSub = queryVariablesChanged$.pipe(\n // switchMap(() => subscriberCount(rows, 'rows'))\n // ).subscribe(subscriber)\n const queryVarsChangedSub = queryVariablesChanged$.subscribe()\n\n const _sub = subscriberCount(rows, 'rows').subscribe(subscriber)\n\n return () => {\n queryVarsChangedSub.unsubscribe()\n _sub.unsubscribe()\n }\n })\n\n // const context$ = extraVariables$.pipe(\n // map(_extraVariables => {\n // const context: MapperContext = {\n // extraVariables: _extraVariables\n // }\n\n // return context\n // })\n // )\n\n // const datatableMappers: DatatableMappers = {\n // pageInfo: mapPageInfo,\n // sorts: sortsMapper,\n // filters: filterStateMappers,\n // }\n\n // const datatableResults$ = _createDatatableResultsObservable(\n // datatable$,\n // datatableMappers,\n // context$,\n // )\n\n // const queryVariablesChanged$ = datatableResults$.pipe(\n // tap(results => {\n // queryRef.setVariables({\n // ...(results.extraVariables || {}),\n // ...results.pageInfo,\n // ...(results.sorts.length > 0 ? { order: results.sorts } : {}),\n // ...(results.filterInfo?.variables || {}),\n // ...(results.filterInfo?.filter ? { where: results.filterInfo.filter } : {})\n // } as any)\n // })\n // )\n\n // const handleQueryInputs = combineLatest([ extraVariables$, pageInfo$ ]).pipe(\n // switchMap(([ _extraVariables, pageInfo ]) => {\n // // console.log('_extraVariables, pageInfo', _extraVariables, pageInfo)\n // const context: MapperContext = {\n // extraVariables: _extraVariables\n // }\n\n // return combineLatest([ sorts$, filterInfo$ ]).pipe(\n // // map(([ sorts, filterInfo ]) => ({ extraVariables: _extraVariables, pageInfo, sorts, filterInfo }))\n // map(([ sorts, filterInfo ]) => {\n // // console.log('sorts, filterInfo', sorts, filterInfo)\n // return { extraVariables: _extraVariables, pageInfo, sorts, filterInfo }\n // })\n // )\n // }),\n // tap(v => {\n // // console.log('~~~', v)\n // queryRef.setVariables({\n // ...(v.extraVariables || {}),\n // ...v.pageInfo,\n // ...(v.sorts.length > 0 ? { order: v.sorts } : {}),\n // ...(v.filterInfo?.variables || {}),\n // ...(v.filterInfo?.filter ? { where: v.filterInfo.filter } : {})\n // } as any)\n // })\n // )\n\n // return defer(() => {\n // const _emitted = new Subject<void>()\n // const handlerSub = handleQueryInputs.pipe(\n // // skip(1)\n // // ).subscribe(() => _emitted.next())\n // ).subscribe(() => {\n // _emitted.next()\n // })\n // return _emitted.pipe(\n // // tap(v => {\n // // console.log('emitted', v)\n // // }),\n // distinctUntilChanged(),\n // switchMap(() => subscriberCount(rows, 'rows')),\n // // tap(v => {\n // // console.log('emitting rows', v)\n // // }),\n // finalize(() => handlerSub.unsubscribe())\n // )\n // }).pipe(\n // // tap(v => {\n // // console.log('rows', v)\n // // }),\n // catchError(err => {\n // console.error(err)\n // return of([] as TRow[])\n // }),\n // shareReplay({ bufferSize: 1, refCount: true })\n // )\n}\n\nfunction _createSortsObservable(datatable$: Observable<GqlDatatableAccessor | undefined>) {\n return datatable$.pipe(\n // tap(v => console.log('sorts got dt', v)),\n switchMap(dt => dt\n ? dt.sort.pipe(map(v => v.sorts), startWith(dt.sorts)) // .pipe(tap(v => console.log('sorts 1', v)))\n : of([]) // .pipe(tap(v => console.log('sorts 2', v)))\n ),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n}\n\nfunction _createFilterStatesObservable(datatable$: Observable<GqlDatatableAccessor | undefined>) {\n return datatable$.pipe(\n // tap(v => console.log('filters got dt', v)),\n switchMap(dt => dt\n ? dt.filterStates // .pipe(tap(v => console.log('filterStates 1', v)))\n : of([]) // .pipe(tap(v => console.log('filterStates 2', v)))\n ),\n // TODO: Remove when the datatable fixes the bug causing it to emit more than it should.\n distinctUntilChanged((x, y) => JSON.stringify(x) === JSON.stringify(y)),\n )\n}\n\nfunction _createDatatableResultsObservable(\n datatable$: Observable<GqlDatatableAccessor | undefined>,\n mappers: DatatableMappers,\n context$: Observable<MapperContext>,\n): Observable<DatatableResults> {\n return new Observable<DatatableResults>((subscriber: Subscriber<DatatableResults>) => {\n const datatableSubject = new ReplaySubject<GqlDatatableAccessor | undefined>()\n\n const dtSub = datatable$.subscribe(\n dt => datatableSubject.next(dt),\n err => datatableSubject.error(err),\n () => datatableSubject.complete()\n )\n\n const ctxSub = context$.pipe(\n switchMap(context => {\n // TODO: Decide if the disabled paging feature will be reimplemented in a way\n // that it should be considered here. `_isPagingDisabled(queryRef)`\n const pageInfo$ = createPageInfoObservable(datatable$).pipe(\n map(info => mappers.pageInfo(info))\n )\n\n const sorts$ = _createSortsObservable(datatable$).pipe(\n switchMap(m => wrapIntoObservable(mappers.sorts(m, context)))\n )\n\n const filterInfo$ = _createFilterStatesObservable(datatable$).pipe(\n switchMap(x => mapFilterStates(x, mappers.filters, context)),\n )\n\n return combineLatest([\n pageInfo$,\n sorts$,\n filterInfo$,\n ]).pipe(\n map(([ pageInfo, sorts, filterInfo ]) => ({\n pageInfo,\n sorts,\n filter: filterInfo,\n context\n }))\n )\n })\n ).subscribe(subscriber)\n\n return () => {\n dtSub.unsubscribe()\n ctxSub.unsubscribe()\n }\n })\n}\n\n// function _isPagingDisabled<TData, TVariables, TRow>(queryRef: DatatableGraphQLQueryRef<TData, TVariables, TRow>): boolean {\n// return queryRef.getQueryProcessingConfig()?.disablePaging ?? false\n// }\n","import { BehaviorSubject, defer, from, isObservable, Observable, of, ReplaySubject, Subject, Subscriber } from 'rxjs'\nimport { auditTime, filter, finalize, map, share, shareReplay, skip, startWith, switchMap, take, tap } from 'rxjs/operators'\n\nimport { ApolloQueryResult, DocumentNode, NetworkStatus, TypedDocumentNode } from '@apollo/client/core'\nimport { hasProperty, isNullOrUndefined, notNullOrUndefined } from '@theseam/ui-common/utils'\nimport { QueryRef } from 'apollo-angular'\nimport { EmptyObject, WatchQueryOptions } from 'apollo-angular/types'\n\nimport { QueryProcessingConfig } from '../models'\nimport { DEFAULT_PAGE_SIZE } from './get-page-info'\n\nexport interface DatatableGraphQLDataMapperResult<TRow = EmptyObject> {\n rows: TRow[]\n\n /**\n * If data is paged, this is the total number of unpaged rows.\n */\n totalCount?: number\n}\n\nexport type DatatableGraphQLDataMapper<TData, TRow = EmptyObject> = (data: TData) =>\n (DatatableGraphQLDataMapperResult<TRow> |\n Promise<DatatableGraphQLDataMapperResult<TRow>> |\n Observable<DatatableGraphQLDataMapperResult<TRow>>)\n\nexport type DatatableGraphQLVariables = {\n skip?: number\n take?: number\n} & EmptyObject\n\n/**\n * Partially wraps ApolloClient's QueryRef with some of our datatable boilerplate.\n *\n * TODO: Decide how to handle/display errors.\n */\nexport class DatatableGraphQLQueryRef<TData, TVariables extends DatatableGraphQLVariables = EmptyObject, TRow = EmptyObject> {\n\n private readonly _variablesSubject = new BehaviorSubject<TVariables>({} as TVariables)\n private readonly _observingChangesSubject = new BehaviorSubject<boolean>(false)\n\n /**\n * Temporary way of tracking total count when paging is disabled.\n */\n private _totalCount: number = DEFAULT_PAGE_SIZE\n\n private get _observingChanges(): boolean { return this._observingChangesSubject.value }\n private set _observingChanges(value: boolean) { this._observingChangesSubject.next(value) }\n\n private _variablesUpdatePending = false\n\n private readonly _valueChanges: Observable<ApolloQueryResult<TData>>\n\n public readonly loading$: Observable<boolean>\n\n public get updatesPollDelay(): number { return this._updatesPollDelay }\n public get variablesUpdatePending(): boolean { return this._variablesUpdatePending }\n\n constructor(\n /** Original ApolloClient's QueryRef. */\n private readonly _queryRef: QueryRef<TData, TVariables>,\n /**\n * How long to wait before refetching from an update to the query or variables.\n */\n private readonly _updatesPollDelay: number = 500\n ) {\n this._variablesSubject.next((this._queryRef as any).obsQuery.options.variables || {})\n // this._getValueChanges().subscribe(v => this._logNetworkStatus(v.networkStatus))\n\n this._valueChanges = defer(() => {\n // console.log('Observing value changes')\n const varChangesSub = this._variablesSubject.pipe(\n skip(1),\n tap(() => {\n this._variablesUpdatePending = true\n }),\n auditTime(this._updatesPollDelay),\n finalize(() => {\n // If the query stopped being observed before setting the pending\n // variables, set them now.\n if (this._variablesUpdatePending) {\n this.refetch()\n this._variablesUpdatePending = false\n }\n })\n ).subscribe(variables => {\n // console.log('set vars', variables)\n this._setVariablesImmediate(variables)\n // this.refetch()\n this._variablesUpdatePending = false\n })\n this._observingChanges = true\n\n return this._queryRef.valueChanges.pipe(\n // tap(v => {\n // console.log('v', v)\n // }),\n filter(v => v.networkStatus === NetworkStatus.ready),\n finalize(() => {\n // console.log('Done observing value changes')\n varChangesSub.unsubscribe()\n this._observingChanges = false\n })\n )\n }).pipe(\n // share()\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this.loading$ = this._observingChangesSubject.pipe(\n switchMap(observingChanges => {\n if (!observingChanges) {\n return of(false)\n }\n\n return this._valueChanges.pipe(\n map(result => result.loading),\n startWith(this._queryRef.getCurrentResult().loading),\n auditTime(0),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n })\n )\n }\n\n public rows(mapper: DatatableGraphQLDataMapper<TData, TRow>): Observable<TRow[]> {\n return this._rowsObservable(mapper)\n }\n\n private _rowsObservable(mapper: DatatableGraphQLDataMapper<TData, TRow>): Observable<TRow[]> {\n return new Observable<TRow[]>((subscriber: Subscriber<TRow[]>) => {\n // const rowsBufferSubject = new BehaviorSubject<TRow[]>([])\n\n // console.log('obs _rowsObservable')\n\n let rowsBuffer: TRow[] = []\n // const rowsBufferSubject = new ReplaySubject<TRow[]>()\n const rowsBufferSubject = new Subject<TRow[]>()\n\n const querySub = this._valueChanges.pipe(\n switchMap(result => {\n if (result.data === undefined) {\n return of([])\n }\n\n return this._resolveRowMapper(mapper(result.data)).pipe(\n tap(mapperResult => {\n // console.log('mapperResult', mapperResult)\n if (this._needsToRequeryWithAllRecords(mapperResult)) {\n this.patchVariables({ take: mapperResult.totalCount } as any)\n }\n\n if (hasProperty(mapperResult, 'totalCount')) {\n this._totalCount = mapperResult.totalCount\n }\n\n // let rows = rowsBufferSubject.value || []\n let rows = rowsBuffer || []\n\n const hasTotalCount = mapperResult.totalCount !== undefined && mapperResult.totalCount !== null\n\n // If the rows buffer is not the same size as the totalCount, create a\n // new buffer.\n //\n // TODO: Find out if this is resetting the buffer too eagerly.\n // ApolloClient may have a better solution.\n if (hasTotalCount) {\n if (mapperResult.totalCount !== rows.length) {\n rows = new Array<TRow>(mapperResult.totalCount || 0)\n }\n\n let startIndex = this.getVariables().skip ?? 0\n if (this.getQueryProcessingConfig()?.disablePaging) {\n startIndex = 0\n }\n\n // Insert rows into buffer location.\n rows.splice(startIndex, mapperResult.rows.length, ...mapperResult.rows)\n\n rows = [ ...rows ]\n } else {\n rows = [ ...mapperResult.rows ]\n }\n\n rowsBuffer = rows\n rowsBufferSubject.next(rows)\n })\n )\n })\n ).subscribe()\n\n const rowsSub = rowsBufferSubject.subscribe(subscriber)\n\n return () => {\n // console.log('unsub')\n querySub.unsubscribe()\n rowsSub.unsubscribe()\n\n rowsBufferSubject.next([])\n rowsBufferSubject.complete()\n }\n })\n }\n\n private _needsToRequeryWithAllRecords(data: DatatableGraphQLDataMapperResult<TRow>): boolean {\n if (!(this.getQueryProcessingConfig()?.disablePaging)) {\n return false\n }\n\n return hasProperty(data, 'totalCount') &&\n hasProperty(data, 'rows') &&\n Array.isArray(data.rows) &&\n data.totalCount > data.rows.length &&\n this._totalCount !== data.totalCount\n }\n\n private _resolveRowMapper(\n mapperReturn: ReturnType<DatatableGraphQLDataMapper<TData, TRow>>\n ): Observable<DatatableGraphQLDataMapperResult<TRow>> {\n if (isObservable(mapperReturn)) {\n return mapperReturn.pipe(take(1))\n }\n\n return from(Promise.resolve(mapperReturn))\n }\n\n public getVariables(): TVariables {\n // The types aren't accurate or Apollo has a bug, so I had to use `any`.\n // return (this._queryRef as any).obsQuery.options.variables || {}\n\n // TODO: Look into debouncing our variable setting, while still depending on Apollo for managing them.\n return this._variablesSubject.value\n }\n\n private _setVariablesImmediate(variables: TVariables): Promise<void | ApolloQueryResult<TData>> {\n const _vars = this._withVariableOverrides(variables)\n return this._queryRef.setVariables(_vars || {} as TVariables)\n }\n\n private _patchVariablesImmediate(variables: Partial<TVariables>): Promise<void | ApolloQueryResult<TData>> {\n const _variables = {\n ...this.getVariables(),\n ...variables\n }\n\n const _vars = this._withVariableOverrides(_variables)\n return this._queryRef.setVariables(_vars || {} as TVariables)\n }\n\n public setVariables(variables: TVariables): void {\n this._variablesSubject.next(variables)\n if (!this._observingChanges) {\n this._setVariablesImmediate(variables)\n }\n }\n\n public patchVariables(variables: Partial<TVariables>): void {\n const _variables = {\n ...this.getVariables(),\n ...variables\n }\n\n this._variablesSubject.next(_variables)\n if (!this._observingChanges) {\n this._setVariablesImmediate(_variables)\n }\n }\n\n public refetch(variables?: TVariables): Promise<ApolloQueryResult<TData>> {\n const _vars = this._withVariableOverrides(variables)\n return this._queryRef.refetch(_vars)\n }\n\n public setQuery(query: DocumentNode | TypedDocumentNode<TData, TVariables>, triggerRefetch: boolean = false): void {\n this._queryRef.setOptions({ query })\n if (triggerRefetch) {\n // TODO: Consider refactoring the refetch process. I can't call Apollo's\n // refetch directly, because I want it to share the update triggered\n // polling delay with the setting of variables.\n // this._queryRef.refetch(this.getVariables())\n\n // Fake variables update to trigger a refetch that shares it's refetch delay.\n this.setVariables(this.getVariables())\n }\n }\n\n public getOptions(): WatchQueryOptions<TVariables, TData> | undefined {\n return (this._queryRef as any).obsQuery.options\n }\n\n public getQueryProcessingConfig(): QueryProcessingConfig | undefined {\n return this.getOptions()?.context?.queryProcessingConfig\n }\n\n private _withVariableOverrides(variables?: TVariables): TVariables | undefined {\n if (!notNullOrUndefined(variables) && !(this.getQueryProcessingConfig()?.disablePaging)) {\n return undefined\n }\n\n const _vars = { ...(variables || {}) } as TVariables\n if (this.getQueryProcessingConfig()?.disablePaging) {\n _vars.take = this._totalCount\n }\n return _vars\n }\n\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core'\n\nimport { OperationVariables } from '@apollo/client/core/types'\nimport { Apollo } from 'apollo-angular'\nimport { EmptyObject, WatchQueryOptions } from 'apollo-angular/types'\n\nimport { QueryProcessingConfig } from '../models'\nimport { DatatableGraphQLQueryRef, DatatableGraphQLVariables } from './datatable-graphql-query-ref'\n\n/**\n * NOTE: Any of ApolloClient's WatchQueryOptions properties can be set, but I\n * think our components should only be providing `query` and `variables`. The\n * rest should be common options shared by all our app's datatables. This may\n * change if it is determined to be too restrictive.\n */\nexport type DatatableQueryOptions<TVariables = OperationVariables, TData = any> =\n Pick<WatchQueryOptions<TVariables, TData>, 'query'>\n & Pick<WatchQueryOptions<TVariables, TData>, 'variables'>\n & Pick<WatchQueryOptions<TVariables, TData>, 'context'>\n\nexport interface DatatableGraphqlServiceConfig {\n /**\n * Polling interval time in milliseconds.\n */\n pollingIntervalTime?: number\n}\n\nexport const DATATABLE_GRAPHQL_SERVICE_CONFIG = new InjectionToken<DatatableGraphqlServiceConfig>('DATATABLE_GRAPHQL_SERVICE_CONFIG')\n\nconst _CONFIG_DEFAULTS: DatatableGraphqlServiceConfig = {\n pollingIntervalTime: 1 * 60 * 1000\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DatatableGraphqlService {\n\n private readonly _config: DatatableGraphqlServiceConfig\n\n constructor(\n private readonly _apollo: Apollo,\n @Optional() @Inject(DATATABLE_GRAPHQL_SERVICE_CONFIG) _config?: DatatableGraphqlServiceConfig\n ) {\n this._config = {\n ..._CONFIG_DEFAULTS,\n ...(_config || {})\n }\n }\n\n public watchQuery<TData, TVariables extends DatatableGraphQLVariables = EmptyObject, TRow = EmptyObject>(\n options: DatatableQueryOptions<TVariables>,\n queryProcessingConfig?: QueryProcessingConfig\n ): DatatableGraphQLQueryRef<TData, TVariables, TRow> {\n const _options: WatchQueryOptions<TVariables, TData> = {\n useInitialLoading: true,\n ..._CONFIG_DEFAULTS,\n pollInterval: this._config.pollingIntervalTime,\n ...options\n }\n\n if (queryProcessingConfig) {\n _options.context = {\n ...(_options.context || {}),\n queryProcessingConfig: {\n ...(_options.context?.queryProcessingConfig || {}),\n ...queryProcessingConfig\n }\n }\n }\n\n const queryRef = this._apollo.watchQuery<TData, TVariables>(_options)\n\n return new DatatableGraphQLQueryRef(queryRef)\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["visit","BREAK"],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-graphql.mjs","sources":["../../../projects/ui-common/graphql/utils/contains-variable.ts","../../../projects/ui-common/graphql/utils/gql-var.ts","../../../projects/ui-common/graphql/utils/inline-variables.ts","../../../projects/ui-common/graphql/utils/parse-comments.ts","../../../projects/ui-common/graphql/models/direction.ts","../../../projects/ui-common/graphql/models/hints-kind.ts","../../../projects/ui-common/graphql/models/query-processing-config.ts","../../../projects/ui-common/graphql/models/variable.ts","../../../projects/ui-common/graphql/utils/parse-hints.ts","../../../projects/ui-common/graphql/utils/remove-variable-definition.ts","../../../projects/ui-common/graphql/utils/remove-variable-definitions-not-defined.ts","../../../projects/ui-common/graphql/utils/remove-variable.ts","../../../projects/ui-common/graphql/utils/to-gql.ts","../../../projects/ui-common/graphql/utils/hints-tokens-containing-hint.ts","../../../projects/ui-common/graphql/datatable/get-page-info.ts","../../../projects/ui-common/graphql/datatable/create-page-info-observable.ts","../../../projects/ui-common/graphql/datatable/map-filter-states.ts","../../../projects/ui-common/graphql/datatable/map-page-info.ts","../../../projects/ui-common/graphql/datatable/datatable-helpers.ts","../../../projects/ui-common/graphql/datatable/datatable-graphql-query-ref.ts","../../../projects/ui-common/graphql/datatable/datatable-graphql.service.ts","../../../projects/ui-common/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.ts","../../../projects/ui-common/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.ts","../../../projects/ui-common/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.ts","../../../projects/ui-common/graphql/theseam-ui-common-graphql.ts"],"sourcesContent":["import { BREAK, DocumentNode, ValueNode, visit } from 'graphql/language'\n\nexport function containsVariable(node: DocumentNode | ValueNode, variableName: string) {\n let found = false\n\n visit(node, {\n Variable(variable) {\n if (variableName === variable.name.value) {\n found = true\n return BREAK\n }\n }\n })\n\n return found\n}\n","\nexport function gqlVar(varName: string): { gqlVar: string } {\n return { gqlVar: `$${varName}` }\n}\n","import { isDevMode } from '@angular/core'\n\nimport { hasProperty } from '@theseam/ui-common/utils'\nimport { BREAK, DocumentNode, ValueNode, visit } from 'graphql'\n\nexport function inlineVariable(query: DocumentNode, variableName: string, variableValue: ValueNode): DocumentNode {\n // return visit(query, {\n // VariableDefinition(node) {\n // if (variableName === node.variable.name.value) {\n // console.log(node)\n // // found = true\n // console.log('insert', variableValue)\n // // return BREAK\n\n // // node.defaultValue = variableValue\n // return {\n // ...node,\n // defaultValue: variableValue\n // }\n // }\n // }\n // })\n\n // console.log('~inlineVariable', variableName, variableValue)\n\n // TODO: Decide if this is a good solution.\n if (hasProperty(variableValue as any, 'value') && (variableValue as any).value === 'undefined') {\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn(`Ignoring attempt to inline '${variableName}', because it is undefined.`)\n }\n return visit(query, {\n SelectionSet(selectionSetNode) {\n return visit(selectionSetNode, {\n Variable(variableNode) {\n if (variableName === variableNode.name.value) {\n return null\n }\n }\n })\n }\n })\n }\n\n return visit(query, {\n SelectionSet(selectionSetNode) {\n return visit(selectionSetNode, {\n Variable(variableNode) {\n if (variableName === variableNode.name.value) {\n return variableValue\n }\n }\n })\n }\n })\n}\n","import { DocumentNode, Token } from 'graphql/language'\n\n// Based on Prettier's comment parsing.\n//\n// Source: https://github.com/prettier/prettier/blob/4e46f92b8648c7f25de62bfaf4368aa3f2e588d9/src/language-graphql/parser-graphql.js#L6\nexport function parseComments(ast: DocumentNode): Token[] {\n const comments: Token[] = []\n\n if (ast.loc === undefined) {\n return comments\n }\n\n const startToken = ast.loc.startToken\n let next = startToken.next\n while (next !== null && next.kind !== '<EOF>') {\n if (next.kind === 'Comment') {\n Object.assign(next, {\n // The Comment token's column starts _after_ the `#`,\n // but we need to make sure the node captures the `#`\n column: next.column - 1\n })\n comments.push(next)\n }\n next = next.next\n }\n\n return comments\n}\n","export class GQLDirection {\n constructor(public readonly direction: string) { }\n public static readonly ASC = new GQLDirection('ASC')\n public static readonly DESC = new GQLDirection('DESC')\n}\n","export enum HintsKind {\n OperationDefinition = 'OperationDefinition',\n Field = 'Field',\n VariableDefinition = 'VariableDefinition',\n Variable = 'Variable',\n Argument = 'Argument'\n}\n","export const DEFAULT_TO_REMOVE_ON_UNDEFINED = [ 'where', 'order' ]\n\nexport interface QueryProcessingVariablesConfig {\n removeIfNotDefined?: string[]\n removeIfNotUsed?: string[]\n inline?: string[]\n}\n\nexport interface QueryProcessingConfig {\n variables: QueryProcessingVariablesConfig\n\n /**\n * If skip and take are found, they will be removed\n */\n disablePaging?: boolean\n}\n","export class GQLVariable {\n constructor(\n public readonly name: string,\n public readonly type: string\n ) {}\n}\n","import {\n ArgumentNode,\n BREAK,\n DocumentNode,\n FieldNode,\n OperationDefinitionNode,\n parse,\n Token,\n VariableDefinitionNode,\n VariableNode,\n visit\n} from 'graphql'\n\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { HintsKind, HintsToken } from '../models'\nimport { parseComments } from './parse-comments'\n\nexport const HINT_PREFIX_REGEX = /^\\s*@gql-hint:.+/\nexport const HINT_NAMES_CAPTURE_REGEX = /^\\s*@gql-hint:([a-zA-z-\\d\\s]+)$/\n\n/**\n * If AST loc has startToken prop then return same AST else reparse with config\n * to contain comments and loc at each node.\n */\nexport function parseAst(ast: DocumentNode): DocumentNode {\n if (ast.loc === undefined) {\n throw Error(`Expected AST to have loc.`)\n }\n\n if (ast.loc.startToken !== undefined) {\n return ast\n }\n\n return parse(ast.loc.source, {\n allowLegacySDLImplementsInterfaces: false,\n experimentalFragmentVariables: true,\n })\n}\n\nexport function isCommentToken(token: Token): boolean {\n return token.kind === 'Comment'\n}\n\nexport function isHintToken(token: Token): boolean {\n return (isCommentToken(token) &&\n (token.value?.match(HINT_PREFIX_REGEX)?.length || 0) > 0) || false\n}\n\nexport function isInlineComment(token: Token): boolean {\n return isCommentToken(token) &&\n token.prev !== null &&\n token.prev.line === token.line\n}\n\nexport function hintNamesFromHintToken(token: Token): string[] {\n const grp = token.value?.match(HINT_NAMES_CAPTURE_REGEX)\n if (grp === null || grp === undefined || grp.length === 0) {\n return []\n }\n return grp[1].split(' ').map(x => x.trim()).filter(x => x.length > 0)\n}\n\nexport function getTokenAppliesTo(token: Token): Token | null {\n if (isInlineComment(token)) {\n return token.prev\n }\n\n let t = token.next\n if (t?.kind === '$' && t.next?.kind === 'Name') {\n t = t.next\n }\n return t\n}\n\nexport function createHintsToken(token: Token, node: HintsToken['node'], kind: HintsKind): HintsToken {\n return {\n node,\n hints: hintNamesFromHintToken(token),\n kind\n }\n}\n\nexport function getHintsToken(token: Token, ast: DocumentNode): HintsToken | null {\n // console.log('getHintsToken', token)\n const appliesTo = getTokenAppliesTo(token)\n if (appliesTo === null) {\n return null\n }\n\n let appliesToNode: HintsToken | null = null\n visit(ast, {\n OperationDefinition(node: OperationDefinitionNode) {\n if (node.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.OperationDefinition)\n return BREAK\n }\n },\n VariableDefinition(node: VariableDefinitionNode) {\n if (node.variable.name.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.VariableDefinition)\n return BREAK\n }\n },\n Variable(node: VariableNode) {\n if (node.name.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.Variable)\n return BREAK\n }\n },\n Argument(node: ArgumentNode) {\n if (node.name.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.Argument)\n return BREAK\n }\n },\n Field(node: FieldNode) {\n if (node.name.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.Field)\n return BREAK\n }\n }\n })\n return appliesToNode\n}\n\nexport function parseHints(ast: DocumentNode): HintsToken[] {\n const _ast = parseAst(ast)\n // console.log('_ast', _ast)\n return parseComments(_ast)\n .filter(isHintToken)\n .map(r => getHintsToken(r, _ast))\n .filter(notNullOrUndefined)\n}\n","import { DocumentNode, visit } from 'graphql'\n\nexport function removeVariableDefinition(query: DocumentNode, variableName: string): DocumentNode {\n return visit(query, {\n VariableDefinition: {\n enter(variable) {\n const name = variable.variable.name.value\n if (name === variableName) {\n return null\n }\n }\n }\n })\n}\n","import { Operation } from '@apollo/client'\nimport { DocumentNode, OperationDefinitionNode, visit } from 'graphql'\n\nimport { isNullOrUndefined } from '@theseam/ui-common/utils'\n\nexport function removeVariableDefinitionsNotDefined(\n query: DocumentNode,\n node: OperationDefinitionNode,\n variables: Operation['variables']\n) {\n return visit(query, {\n OperationDefinition(opDef) {\n if (opDef === node) {\n return visit(opDef, {\n VariableDefinition(varDef) {\n const name = varDef.variable.name.value\n if (isNullOrUndefined(variables[name])) {\n return null\n }\n }\n })\n }\n }\n })\n}\n","import { DocumentNode, visit } from 'graphql'\n\nexport function removeVariable(query: DocumentNode, variableName: string): DocumentNode {\n return visit(query, {\n VariableDefinition: {\n enter(variable) {\n const name = variable.variable.name.value\n if (name === variableName) {\n return null\n }\n }\n },\n Argument: {\n enter(variable) {\n const name = variable.name.value\n if (name === variableName) {\n return null\n }\n }\n }\n })\n}\n","import { GQLDirection } from '../models'\n\n// Naive initial implementation. This is intended for dynamic values, such as\n// sorting and filtering. If you are defining a schema, use the gql template\n// function from 'apollo-angular'.\n//\n// TODO: Try to find a maintained library that will handle this. Ideally a\n// type-safe one, but that is becoming surprisingly harder to find than I\n// expected for GraphQL.\nexport function toGQL(json: any): string {\n const props: string[] = Object.keys(json).map(prop => {\n const value = json[prop]\n let resultValue: string | undefined\n if (typeof value === 'string') {\n resultValue = `\"${value}\"`\n } else if (value instanceof GQLDirection) {\n resultValue = `${value.direction}`\n } else if (Array.isArray(value)) {\n resultValue = `[${value.map(v => toGQL(v)).join(',')}]`\n } else if (typeof value === 'object') {\n if (Object.prototype.hasOwnProperty.call(value, 'gqlVar')) {\n resultValue = `${value.gqlVar}`\n } else {\n resultValue = toGQL(value)\n }\n } else {\n resultValue = `${value}`\n }\n if (typeof resultValue !== 'string') {\n throw Error(`Unexpected value.`)\n }\n return `${prop}: ${resultValue}`\n })\n return `{${props.join(', ')}}`\n}\n","import { HintsToken } from '../models'\n\nexport function hintsTokensContainingHint(hintsTokens: HintsToken[], hint: string): HintsToken[] {\n return hintsTokens.filter(r => r.hints.indexOf(hint) !== -1)\n}\n","import { TheSeamPageInfo } from '@theseam/ui-common/datatable'\n\nimport { GqlDatatableAccessor } from '../models/gql-datatable-accessor'\n\nexport const DEFAULT_PAGE_SIZE = 20\n\nexport function getPageInfo(\n datatable: GqlDatatableAccessor | null | undefined,\n defaultPageSize: number = DEFAULT_PAGE_SIZE\n): TheSeamPageInfo {\n return {\n offset: datatable?.ngxDatatable?.offset ?? 0,\n pageSize: datatable?.ngxDatatable?.pageSize ?? defaultPageSize,\n limit: datatable?.ngxDatatable?.limit,\n count: datatable?.ngxDatatable?.count ?? 0\n }\n}\n","import { EMPTY, Observable, Subscriber } from 'rxjs'\nimport { switchMap, tap } from 'rxjs/operators'\n\nimport { TheSeamPageInfo } from '@theseam/ui-common/datatable'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { GqlDatatableAccessor } from '../models/gql-datatable-accessor'\nimport { getPageInfo } from './get-page-info'\n\nexport function createPageInfoObservable(\n datatable$: Observable<GqlDatatableAccessor | null | undefined>,\n defaultPageSize: number = 20\n): Observable<TheSeamPageInfo> {\n return new Observable<TheSeamPageInfo>((subscriber: Subscriber<TheSeamPageInfo>) => {\n let prev: TheSeamPageInfo | null = null\n const handlePageInfo = (pageInfo: TheSeamPageInfo | null) => {\n if (!_isPageInfoSame(prev, pageInfo)) {\n if (pageInfo !== null) {\n subscriber.next(pageInfo)\n }\n prev = pageInfo\n }\n }\n\n const dtSub = datatable$.pipe(\n switchMap(dt => {\n if (!notNullOrUndefined(dt)) {\n handlePageInfo(null)\n return EMPTY\n }\n\n handlePageInfo(getPageInfo(dt, defaultPageSize))\n\n return dt.page.pipe(tap(p => handlePageInfo(p)))\n })\n ).subscribe()\n\n return () => {\n dtSub.unsubscribe()\n }\n })\n}\n\nfunction _isPageInfoSame(prev: TheSeamPageInfo | null, curr: TheSeamPageInfo | null): boolean {\n if (\n prev?.offset === curr?.offset &&\n prev?.pageSize === curr?.pageSize &&\n prev?.limit === curr?.limit &&\n prev?.count === curr?.count\n ) {\n return true\n }\n return false\n}\n","import { isDevMode } from '@angular/core'\nimport { from, Observable } from 'rxjs'\nimport { concatMap, filter, take, toArray } from 'rxjs/operators'\n\nimport { DataFilterState } from '@theseam/ui-common/data-filters'\nimport { notNullOrUndefined, wrapIntoObservable } from '@theseam/ui-common/utils'\n\nimport { MapperContext } from './mapper-context'\n\nexport interface FilterStateMapperVariables {\n [name: string]: any\n}\n\nexport interface FilterStateMapperFilter {\n [name: string]: any\n}\n\nexport type FilterStateMapperResult = {\n filter: FilterStateMapperFilter,\n variables: FilterStateMapperVariables\n} | null\n\nexport type FilterStateMapper = (filterState: DataFilterState, context: MapperContext)\n => (FilterStateMapperResult | Promise<FilterStateMapperResult> | Observable<FilterStateMapperResult>)\nexport interface FilterStateMappers { [filterName: string]: FilterStateMapper }\n\nfunction resolveMapper(\n filterState: DataFilterState,\n filterStateMappers: FilterStateMappers,\n context: MapperContext\n): Observable<FilterStateMapperResult> {\n const mapper = filterStateMappers[filterState.name]\n if (!notNullOrUndefined(mapper)) {\n throw Error(`Mapper for filter '${filterState.name}' not found.`)\n }\n\n return wrapIntoObservable(mapper(filterState, context)).pipe(\n // Require each mapper to complete.\n take(1)\n )\n}\n\nfunction resolveMappers(\n filterStates: DataFilterState[],\n filterStateMappers: FilterStateMappers,\n context: MapperContext\n): Observable<(Exclude<FilterStateMapperResult, null>)[]> {\n return from(filterStates).pipe(\n concatMap(filterState => resolveMapper(filterState, filterStateMappers, context)),\n filter(notNullOrUndefined),\n toArray()\n )\n}\n\nfunction mergeFilters(filters: FilterStateMapperFilter[]): { or: FilterStateMapperFilter[] } {\n return { or: filters }\n}\n\n/**\n * Merges variable objects.\n *\n * NOTE: This does not try to deep merge, so if two objects define the same\n * variable then the last object's value will be in the merged object. *In\n * devMode an error will be thrown.*\n */\nfunction mergeVariables(variableObjects: FilterStateMapperVariables[]): FilterStateMapperVariables {\n const variables: FilterStateMapperVariables = {}\n\n for (const v of variableObjects) {\n const props = Object.keys(v)\n\n if (isDevMode()) {\n for (const p of props) {\n if (notNullOrUndefined(variables[p]) && variables[p] !== v[p]) {\n // eslint-disable-next-line no-console\n console.warn(`Multiple filters adding the same variable with a different result. This could cause unexpected results.`)\n break\n }\n }\n }\n\n for (const p of props) {\n variables[p] = v[p]\n }\n }\n\n return variables\n}\n\nexport async function mapFilterStates(\n filterStates: DataFilterState[],\n filterStateMappers: FilterStateMappers,\n context: MapperContext\n): Promise<FilterStateMapperResult> {\n // TODO: Fix types\n const results: any = await resolveMappers(filterStates, filterStateMappers, context).toPromise()\n\n if (results.length === 0) {\n return null\n }\n\n const filters = results\n .map((r: any) => r.filter)\n .filter(notNullOrUndefined)\n\n const variableObjs = results\n .map((r: any) => r.variables)\n .filter(notNullOrUndefined)\n\n return {\n filter: mergeFilters(filters),\n variables: mergeVariables(variableObjs)\n }\n}\n","import { TheSeamPageInfo } from '@theseam/ui-common/datatable'\n\nexport interface PageInfoMapperResult { skip: number, take: number }\nexport type PageInfoMapper = (pageInfo: TheSeamPageInfo) => PageInfoMapperResult\n\n/**\n * Maps to a range that fetches the page before the current page, the current\n * page, and the page after the current page.\n */\nexport function mapPageInfo(pageInfo: TheSeamPageInfo): PageInfoMapperResult {\n const _skip = pageInfo.offset * pageInfo.pageSize\n\n const skipWithWindowOffset = _skip - pageInfo.pageSize\n const takeOffset = skipWithWindowOffset < 0 ? skipWithWindowOffset : 0\n\n return {\n skip: Math.max(skipWithWindowOffset, 0),\n take: Math.max((pageInfo.pageSize * 3) + takeOffset, 0)\n }\n}\n","import { isDevMode } from '@angular/core'\nimport { combineLatest, defer, Observable, of, ReplaySubject, Subject, Subscriber } from 'rxjs'\nimport { catchError, distinctUntilChanged, finalize, map, shareReplay, startWith, switchMap, take, tap } from 'rxjs/operators'\n\nimport { notNullOrUndefined, subscriberCount, wrapIntoObservable } from '@theseam/ui-common/utils'\nimport { EmptyObject } from 'apollo-angular/types'\nimport { SortItem } from '@theseam/ui-common/datatable'\n\nimport { GqlDatatableAccessor } from '../models'\nimport { createPageInfoObservable } from './create-page-info-observable'\nimport { DatatableGraphQLQueryRef } from './datatable-graphql-query-ref'\nimport { FilterStateMapperResult, FilterStateMappers, mapFilterStates } from './map-filter-states'\nimport { mapPageInfo, PageInfoMapper, PageInfoMapperResult } from './map-page-info'\nimport { MapperContext } from './mapper-context'\n\nexport type SortsMapperResult = { [name: string]: any }[]\nexport type SortsMapper = (sorts: SortItem[], context: MapperContext)\n => (SortsMapperResult | Promise<SortsMapperResult> | Observable<SortsMapperResult>)\n\ninterface DatatableResults {\n pageInfo: PageInfoMapperResult\n sorts: SortsMapperResult\n filter: FilterStateMapperResult\n context: MapperContext\n}\n\ninterface DatatableMappers {\n pageInfo: PageInfoMapper\n sorts: SortsMapper\n filters: FilterStateMappers\n}\n\nexport function observeRowsWithGqlInputsHandling<TData, TRow, GqlVariables extends EmptyObject>(\n queryRef: DatatableGraphQLQueryRef<TData, GqlVariables, TRow>,\n rows: Observable<TRow[]>,\n datatable: Observable<GqlDatatableAccessor | undefined> | Promise<GqlDatatableAccessor | undefined> | GqlDatatableAccessor,\n extraVariables: Observable<Partial<GqlVariables>> | Promise<Partial<GqlVariables>> | Partial<GqlVariables>,\n sortsMapper: SortsMapper,\n filterStateMappers: FilterStateMappers\n): Observable<TRow[]> {\n return new Observable<TRow[]>((subscriber: Subscriber<TRow[]>) => {\n const datatable$ = wrapIntoObservable(datatable)\n const extraVariables$ = wrapIntoObservable<Partial<GqlVariables>>(extraVariables)\n\n const context$ = extraVariables$.pipe(\n map(_extraVariables => {\n const context: MapperContext = {\n extraVariables: _extraVariables\n }\n\n return context\n }),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n const datatableMappers: DatatableMappers = {\n pageInfo: mapPageInfo,\n sorts: sortsMapper,\n filters: filterStateMappers,\n }\n\n const datatableResults$ = _createDatatableResultsObservable(\n datatable$,\n datatableMappers,\n context$,\n )\n\n const queryVariablesChanged$ = datatableResults$.pipe(\n tap(results => {\n queryRef.setVariables({\n ...(results.context || {}),\n ...results.pageInfo,\n ...(results.sorts.length > 0 ? { order: results.sorts } : {}),\n ...(results.filter?.variables || {}),\n ...(results.filter?.filter ? { where: results.filter.filter } : {})\n } as any)\n })\n )\n\n // const _emitSubject = new Subject<void>()\n\n // const queryVarsChangedSub = queryVariablesChanged$.pipe(\n // switchMap(() => subscriberCount(rows, 'rows'))\n // ).subscribe(subscriber)\n const queryVarsChangedSub = queryVariablesChanged$.subscribe()\n\n const _sub = subscriberCount(rows, 'rows').subscribe(subscriber)\n\n return () => {\n queryVarsChangedSub.unsubscribe()\n _sub.unsubscribe()\n }\n })\n\n // const context$ = extraVariables$.pipe(\n // map(_extraVariables => {\n // const context: MapperContext = {\n // extraVariables: _extraVariables\n // }\n\n // return context\n // })\n // )\n\n // const datatableMappers: DatatableMappers = {\n // pageInfo: mapPageInfo,\n // sorts: sortsMapper,\n // filters: filterStateMappers,\n // }\n\n // const datatableResults$ = _createDatatableResultsObservable(\n // datatable$,\n // datatableMappers,\n // context$,\n // )\n\n // const queryVariablesChanged$ = datatableResults$.pipe(\n // tap(results => {\n // queryRef.setVariables({\n // ...(results.extraVariables || {}),\n // ...results.pageInfo,\n // ...(results.sorts.length > 0 ? { order: results.sorts } : {}),\n // ...(results.filterInfo?.variables || {}),\n // ...(results.filterInfo?.filter ? { where: results.filterInfo.filter } : {})\n // } as any)\n // })\n // )\n\n // const handleQueryInputs = combineLatest([ extraVariables$, pageInfo$ ]).pipe(\n // switchMap(([ _extraVariables, pageInfo ]) => {\n // // console.log('_extraVariables, pageInfo', _extraVariables, pageInfo)\n // const context: MapperContext = {\n // extraVariables: _extraVariables\n // }\n\n // return combineLatest([ sorts$, filterInfo$ ]).pipe(\n // // map(([ sorts, filterInfo ]) => ({ extraVariables: _extraVariables, pageInfo, sorts, filterInfo }))\n // map(([ sorts, filterInfo ]) => {\n // // console.log('sorts, filterInfo', sorts, filterInfo)\n // return { extraVariables: _extraVariables, pageInfo, sorts, filterInfo }\n // })\n // )\n // }),\n // tap(v => {\n // // console.log('~~~', v)\n // queryRef.setVariables({\n // ...(v.extraVariables || {}),\n // ...v.pageInfo,\n // ...(v.sorts.length > 0 ? { order: v.sorts } : {}),\n // ...(v.filterInfo?.variables || {}),\n // ...(v.filterInfo?.filter ? { where: v.filterInfo.filter } : {})\n // } as any)\n // })\n // )\n\n // return defer(() => {\n // const _emitted = new Subject<void>()\n // const handlerSub = handleQueryInputs.pipe(\n // // skip(1)\n // // ).subscribe(() => _emitted.next())\n // ).subscribe(() => {\n // _emitted.next()\n // })\n // return _emitted.pipe(\n // // tap(v => {\n // // console.log('emitted', v)\n // // }),\n // distinctUntilChanged(),\n // switchMap(() => subscriberCount(rows, 'rows')),\n // // tap(v => {\n // // console.log('emitting rows', v)\n // // }),\n // finalize(() => handlerSub.unsubscribe())\n // )\n // }).pipe(\n // // tap(v => {\n // // console.log('rows', v)\n // // }),\n // catchError(err => {\n // console.error(err)\n // return of([] as TRow[])\n // }),\n // shareReplay({ bufferSize: 1, refCount: true })\n // )\n}\n\nfunction _createSortsObservable(datatable$: Observable<GqlDatatableAccessor | undefined>) {\n return datatable$.pipe(\n // tap(v => console.log('sorts got dt', v)),\n switchMap(dt => dt\n ? dt.sort.pipe(map(v => v.sorts), startWith(dt.sorts)) // .pipe(tap(v => console.log('sorts 1', v)))\n : of([]) // .pipe(tap(v => console.log('sorts 2', v)))\n ),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n}\n\nfunction _createFilterStatesObservable(datatable$: Observable<GqlDatatableAccessor | undefined>) {\n return datatable$.pipe(\n // tap(v => console.log('filters got dt', v)),\n switchMap(dt => dt\n ? dt.filterStates // .pipe(tap(v => console.log('filterStates 1', v)))\n : of([]) // .pipe(tap(v => console.log('filterStates 2', v)))\n ),\n // TODO: Remove when the datatable fixes the bug causing it to emit more than it should.\n distinctUntilChanged((x, y) => JSON.stringify(x) === JSON.stringify(y)),\n )\n}\n\nfunction _createDatatableResultsObservable(\n datatable$: Observable<GqlDatatableAccessor | undefined>,\n mappers: DatatableMappers,\n context$: Observable<MapperContext>,\n): Observable<DatatableResults> {\n return new Observable<DatatableResults>((subscriber: Subscriber<DatatableResults>) => {\n const datatableSubject = new ReplaySubject<GqlDatatableAccessor | undefined>()\n\n const dtSub = datatable$.subscribe(\n dt => datatableSubject.next(dt),\n err => datatableSubject.error(err),\n () => datatableSubject.complete()\n )\n\n const ctxSub = context$.pipe(\n switchMap(context => {\n // TODO: Decide if the disabled paging feature will be reimplemented in a way\n // that it should be considered here. `_isPagingDisabled(queryRef)`\n const pageInfo$ = createPageInfoObservable(datatable$).pipe(\n map(info => mappers.pageInfo(info))\n )\n\n const sorts$ = _createSortsObservable(datatable$).pipe(\n switchMap(m => wrapIntoObservable(mappers.sorts(m, context)))\n )\n\n const filterInfo$ = _createFilterStatesObservable(datatable$).pipe(\n switchMap(x => mapFilterStates(x, mappers.filters, context)),\n )\n\n return combineLatest([\n pageInfo$,\n sorts$,\n filterInfo$,\n ]).pipe(\n map(([ pageInfo, sorts, filterInfo ]) => ({\n pageInfo,\n sorts,\n filter: filterInfo,\n context\n }))\n )\n })\n ).subscribe(subscriber)\n\n return () => {\n dtSub.unsubscribe()\n ctxSub.unsubscribe()\n }\n })\n}\n\n// function _isPagingDisabled<TData, TVariables, TRow>(queryRef: DatatableGraphQLQueryRef<TData, TVariables, TRow>): boolean {\n// return queryRef.getQueryProcessingConfig()?.disablePaging ?? false\n// }\n","import { BehaviorSubject, defer, from, isObservable, Observable, of, ReplaySubject, Subject, Subscriber } from 'rxjs'\nimport { auditTime, filter, finalize, map, share, shareReplay, skip, startWith, switchMap, take, tap } from 'rxjs/operators'\n\nimport { ApolloQueryResult, DocumentNode, NetworkStatus, TypedDocumentNode } from '@apollo/client/core'\nimport { hasProperty, isNullOrUndefined, notNullOrUndefined } from '@theseam/ui-common/utils'\nimport { QueryRef } from 'apollo-angular'\nimport { EmptyObject, WatchQueryOptions } from 'apollo-angular/types'\n\nimport { QueryProcessingConfig } from '../models'\nimport { DEFAULT_PAGE_SIZE } from './get-page-info'\n\nexport interface DatatableGraphQLDataMapperResult<TRow = EmptyObject> {\n rows: TRow[]\n\n /**\n * If data is paged, this is the total number of unpaged rows.\n */\n totalCount?: number\n}\n\nexport type DatatableGraphQLDataMapper<TData, TRow = EmptyObject> = (data: TData) =>\n (DatatableGraphQLDataMapperResult<TRow> |\n Promise<DatatableGraphQLDataMapperResult<TRow>> |\n Observable<DatatableGraphQLDataMapperResult<TRow>>)\n\nexport type DatatableGraphQLVariables = {\n skip?: number\n take?: number\n} & EmptyObject\n\n/**\n * Partially wraps ApolloClient's QueryRef with some of our datatable boilerplate.\n *\n * TODO: Decide how to handle/display errors.\n */\nexport class DatatableGraphQLQueryRef<TData, TVariables extends DatatableGraphQLVariables = EmptyObject, TRow = EmptyObject> {\n\n private readonly _variablesSubject = new BehaviorSubject<TVariables>({} as TVariables)\n private readonly _observingChangesSubject = new BehaviorSubject<boolean>(false)\n\n /**\n * Temporary way of tracking total count when paging is disabled.\n */\n private _totalCount: number = DEFAULT_PAGE_SIZE\n\n private get _observingChanges(): boolean { return this._observingChangesSubject.value }\n private set _observingChanges(value: boolean) { this._observingChangesSubject.next(value) }\n\n private _variablesUpdatePending = false\n\n private readonly _valueChanges: Observable<ApolloQueryResult<TData>>\n\n public readonly loading$: Observable<boolean>\n\n public get updatesPollDelay(): number { return this._updatesPollDelay }\n public get variablesUpdatePending(): boolean { return this._variablesUpdatePending }\n\n constructor(\n /** Original ApolloClient's QueryRef. */\n private readonly _queryRef: QueryRef<TData, TVariables>,\n /**\n * How long to wait before refetching from an update to the query or variables.\n */\n private readonly _updatesPollDelay: number = 500\n ) {\n this._variablesSubject.next((this._queryRef as any).obsQuery.options.variables || {})\n // this._getValueChanges().subscribe(v => this._logNetworkStatus(v.networkStatus))\n\n this._valueChanges = defer(() => {\n // console.log('Observing value changes')\n const varChangesSub = this._variablesSubject.pipe(\n skip(1),\n tap(() => {\n this._variablesUpdatePending = true\n }),\n auditTime(this._updatesPollDelay),\n finalize(() => {\n // If the query stopped being observed before setting the pending\n // variables, set them now.\n if (this._variablesUpdatePending) {\n this.refetch()\n this._variablesUpdatePending = false\n }\n })\n ).subscribe(variables => {\n // console.log('set vars', variables)\n this._setVariablesImmediate(variables)\n // this.refetch()\n this._variablesUpdatePending = false\n })\n this._observingChanges = true\n\n return this._queryRef.valueChanges.pipe(\n // tap(v => {\n // console.log('v', v)\n // }),\n filter(v => v.networkStatus === NetworkStatus.ready),\n finalize(() => {\n // console.log('Done observing value changes')\n varChangesSub.unsubscribe()\n this._observingChanges = false\n })\n )\n }).pipe(\n // share()\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this.loading$ = this._observingChangesSubject.pipe(\n switchMap(observingChanges => {\n if (!observingChanges) {\n return of(false)\n }\n\n return this._valueChanges.pipe(\n map(result => result.loading),\n startWith(this._queryRef.getCurrentResult().loading),\n auditTime(0),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n })\n )\n }\n\n public rows(mapper: DatatableGraphQLDataMapper<TData, TRow>): Observable<TRow[]> {\n return this._rowsObservable(mapper)\n }\n\n private _rowsObservable(mapper: DatatableGraphQLDataMapper<TData, TRow>): Observable<TRow[]> {\n return new Observable<TRow[]>((subscriber: Subscriber<TRow[]>) => {\n // const rowsBufferSubject = new BehaviorSubject<TRow[]>([])\n\n // console.log('obs _rowsObservable')\n\n let rowsBuffer: TRow[] = []\n // const rowsBufferSubject = new ReplaySubject<TRow[]>()\n const rowsBufferSubject = new Subject<TRow[]>()\n\n const querySub = this._valueChanges.pipe(\n switchMap(result => {\n if (result.data === undefined) {\n return of([])\n }\n\n return this._resolveRowMapper(mapper(result.data)).pipe(\n tap(mapperResult => {\n // console.log('mapperResult', mapperResult)\n if (this._needsToRequeryWithAllRecords(mapperResult)) {\n this.patchVariables({ take: mapperResult.totalCount } as any)\n }\n\n if (hasProperty(mapperResult, 'totalCount')) {\n this._totalCount = mapperResult.totalCount\n }\n\n // let rows = rowsBufferSubject.value || []\n let rows = rowsBuffer || []\n\n const hasTotalCount = mapperResult.totalCount !== undefined && mapperResult.totalCount !== null\n\n // If the rows buffer is not the same size as the totalCount, create a\n // new buffer.\n //\n // TODO: Find out if this is resetting the buffer too eagerly.\n // ApolloClient may have a better solution.\n if (hasTotalCount) {\n if (mapperResult.totalCount !== rows.length) {\n rows = new Array<TRow>(mapperResult.totalCount || 0)\n }\n\n let startIndex = this.getVariables().skip ?? 0\n if (this.getQueryProcessingConfig()?.disablePaging) {\n startIndex = 0\n }\n\n // Insert rows into buffer location.\n rows.splice(startIndex, mapperResult.rows.length, ...mapperResult.rows)\n\n rows = [ ...rows ]\n } else {\n rows = [ ...mapperResult.rows ]\n }\n\n rowsBuffer = rows\n rowsBufferSubject.next(rows)\n })\n )\n })\n ).subscribe()\n\n const rowsSub = rowsBufferSubject.subscribe(subscriber)\n\n return () => {\n // console.log('unsub')\n querySub.unsubscribe()\n rowsSub.unsubscribe()\n\n rowsBufferSubject.next([])\n rowsBufferSubject.complete()\n }\n })\n }\n\n private _needsToRequeryWithAllRecords(data: DatatableGraphQLDataMapperResult<TRow>): boolean {\n if (!(this.getQueryProcessingConfig()?.disablePaging)) {\n return false\n }\n\n return hasProperty(data, 'totalCount') &&\n hasProperty(data, 'rows') &&\n Array.isArray(data.rows) &&\n data.totalCount > data.rows.length &&\n this._totalCount !== data.totalCount\n }\n\n private _resolveRowMapper(\n mapperReturn: ReturnType<DatatableGraphQLDataMapper<TData, TRow>>\n ): Observable<DatatableGraphQLDataMapperResult<TRow>> {\n if (isObservable(mapperReturn)) {\n return mapperReturn.pipe(take(1))\n }\n\n return from(Promise.resolve(mapperReturn))\n }\n\n public getVariables(): TVariables {\n // The types aren't accurate or Apollo has a bug, so I had to use `any`.\n // return (this._queryRef as any).obsQuery.options.variables || {}\n\n // TODO: Look into debouncing our variable setting, while still depending on Apollo for managing them.\n return this._variablesSubject.value\n }\n\n private _setVariablesImmediate(variables: TVariables): Promise<void | ApolloQueryResult<TData>> {\n const _vars = this._withVariableOverrides(variables)\n return this._queryRef.setVariables(_vars || {} as TVariables)\n }\n\n private _patchVariablesImmediate(variables: Partial<TVariables>): Promise<void | ApolloQueryResult<TData>> {\n const _variables = {\n ...this.getVariables(),\n ...variables\n }\n\n const _vars = this._withVariableOverrides(_variables)\n return this._queryRef.setVariables(_vars || {} as TVariables)\n }\n\n public setVariables(variables: TVariables): void {\n this._variablesSubject.next(variables)\n if (!this._observingChanges) {\n this._setVariablesImmediate(variables)\n }\n }\n\n public patchVariables(variables: Partial<TVariables>): void {\n const _variables = {\n ...this.getVariables(),\n ...variables\n }\n\n this._variablesSubject.next(_variables)\n if (!this._observingChanges) {\n this._setVariablesImmediate(_variables)\n }\n }\n\n public refetch(variables?: TVariables): Promise<ApolloQueryResult<TData>> {\n const _vars = this._withVariableOverrides(variables)\n return this._queryRef.refetch(_vars)\n }\n\n public setQuery(query: DocumentNode | TypedDocumentNode<TData, TVariables>, triggerRefetch: boolean = false): void {\n this._queryRef.setOptions({ query })\n if (triggerRefetch) {\n // TODO: Consider refactoring the refetch process. I can't call Apollo's\n // refetch directly, because I want it to share the update triggered\n // polling delay with the setting of variables.\n // this._queryRef.refetch(this.getVariables())\n\n // Fake variables update to trigger a refetch that shares it's refetch delay.\n this.setVariables(this.getVariables())\n }\n }\n\n public getOptions(): WatchQueryOptions<TVariables, TData> | undefined {\n return (this._queryRef as any).obsQuery.options\n }\n\n public getQueryProcessingConfig(): QueryProcessingConfig | undefined {\n return this.getOptions()?.context?.queryProcessingConfig\n }\n\n private _withVariableOverrides(variables?: TVariables): TVariables | undefined {\n if (!notNullOrUndefined(variables) && !(this.getQueryProcessingConfig()?.disablePaging)) {\n return undefined\n }\n\n const _vars = { ...(variables || {}) } as TVariables\n if (this.getQueryProcessingConfig()?.disablePaging) {\n _vars.take = this._totalCount\n }\n return _vars\n }\n\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core'\n\nimport { OperationVariables } from '@apollo/client/core/types'\nimport { Apollo } from 'apollo-angular'\nimport { EmptyObject, WatchQueryOptions } from 'apollo-angular/types'\n\nimport { QueryProcessingConfig } from '../models'\nimport { DatatableGraphQLQueryRef, DatatableGraphQLVariables } from './datatable-graphql-query-ref'\n\n/**\n * NOTE: Any of ApolloClient's WatchQueryOptions properties can be set, but I\n * think our components should only be providing `query` and `variables`. The\n * rest should be common options shared by all our app's datatables. This may\n * change if it is determined to be too restrictive.\n */\nexport type DatatableQueryOptions<TVariables extends OperationVariables = OperationVariables, TData = any> =\n Pick<WatchQueryOptions<TVariables, TData>, 'query'>\n & Pick<WatchQueryOptions<TVariables, TData>, 'variables'>\n & Pick<WatchQueryOptions<TVariables, TData>, 'context'>\n\nexport interface DatatableGraphqlServiceConfig {\n /**\n * Polling interval time in milliseconds.\n */\n pollingIntervalTime?: number\n}\n\nexport const DATATABLE_GRAPHQL_SERVICE_CONFIG = new InjectionToken<DatatableGraphqlServiceConfig>('DATATABLE_GRAPHQL_SERVICE_CONFIG')\n\nconst _CONFIG_DEFAULTS: DatatableGraphqlServiceConfig = {\n pollingIntervalTime: 1 * 60 * 1000\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DatatableGraphqlService {\n\n private readonly _config: DatatableGraphqlServiceConfig\n\n constructor(\n private readonly _apollo: Apollo,\n @Optional() @Inject(DATATABLE_GRAPHQL_SERVICE_CONFIG) _config?: DatatableGraphqlServiceConfig\n ) {\n this._config = {\n ..._CONFIG_DEFAULTS,\n ...(_config || {})\n }\n }\n\n public watchQuery<TData, TVariables extends DatatableGraphQLVariables = EmptyObject, TRow = EmptyObject>(\n options: DatatableQueryOptions<TVariables>,\n queryProcessingConfig?: QueryProcessingConfig\n ): DatatableGraphQLQueryRef<TData, TVariables, TRow> {\n const _options: WatchQueryOptions<TVariables, TData> = {\n useInitialLoading: true,\n ..._CONFIG_DEFAULTS,\n pollInterval: this._config.pollingIntervalTime,\n ...options\n }\n\n if (queryProcessingConfig) {\n _options.context = {\n ...(_options.context || {}),\n queryProcessingConfig: {\n ...(_options.context?.queryProcessingConfig || {}),\n ...queryProcessingConfig\n }\n }\n }\n\n const queryRef = this._apollo.watchQuery<TData, TVariables>(_options)\n\n return new DatatableGraphQLQueryRef(queryRef)\n }\n\n}\n","import { ColumnsDataFilterState, TheSeamColumnsDataFilterDateSearchFormState, TheSeamColumnsDataFilterDateSearchOptions, THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES, getFormattedDateForComparison, THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES } from \"@theseam/ui-common/datatable\"\nimport { isNullOrUndefined, notNullOrUndefined } from \"@theseam/ui-common/utils\"\nimport { FilterStateMapperResult } from \"./map-filter-states\"\nimport { MapperContext } from \"./mapper-context\"\n\nexport const mapSearchDateColumnsDataFilterStateToGql = (\n filterState: ColumnsDataFilterState<TheSeamColumnsDataFilterDateSearchFormState, TheSeamColumnsDataFilterDateSearchOptions>, context: MapperContext<any>,\n): FilterStateMapperResult => {\n const formValue = filterState.state.formValue\n const options = filterState.state.options\n\n let filter = null\n\n if (isNullOrUndefined(filterState.state.prop) || isNullOrUndefined(options) || isNullOrUndefined(formValue) || isNullOrUndefined(formValue.searchType)) {\n return filter\n }\n\n if (THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefined(formValue.searchText)) {\n const searchDate = getFormattedDateForComparison(formValue.searchText, options.dateType, true)\n\n if (!isNaN(searchDate.valueOf())) {\n switch (formValue.searchType) {\n case 'eq': {\n let searchDateEnd\n if (options.dateType === 'datetime-local') {\n searchDateEnd = new Date(searchDate)\n searchDateEnd.setMinutes(searchDateEnd.getMinutes() + 1)\n }\n else if (options.dateType === 'date') {\n searchDateEnd = new Date(searchDate)\n searchDateEnd.setDate(searchDateEnd.getDate() + 1)\n }\n\n if (notNullOrUndefined(searchDateEnd)) {\n filter = {\n filter: {\n and: [\n { [filterState.state.prop]: { gte: searchDate.toISOString() } },\n { [filterState.state.prop]: { lt: searchDateEnd.toISOString() } }\n ]\n },\n variables: {}\n }\n }\n\n break\n }\n case 'gt':\n case 'lte': {\n const comparator = formValue.searchType === 'gt' ? 'gte' : formValue.searchType === 'lte' ? 'lt' : null\n\n let searchDateEnd\n if (options.dateType === 'datetime-local') {\n searchDateEnd = new Date(searchDate)\n searchDateEnd.setMinutes(searchDateEnd.getMinutes() + 1)\n }\n else if (options.dateType === 'date') {\n searchDateEnd = new Date(searchDate)\n searchDateEnd.setDate(searchDateEnd.getDate() + 1)\n }\n\n if (notNullOrUndefined(comparator) && notNullOrUndefined(searchDateEnd)) {\n filter = {\n filter: {\n and: [\n { [filterState.state.prop]: { [comparator]: searchDateEnd.toISOString() } },\n ]\n },\n variables: {}\n }\n }\n\n break\n }\n case 'lt':\n case 'gte': {\n filter = {\n filter: {\n and: [\n { [filterState.state.prop]: { [formValue.searchType]: searchDate.toISOString() } },\n ]\n },\n variables: {}\n }\n\n break\n }\n default:\n break\n }\n }\n }\n else if (THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefined(formValue.fromText) && notNullOrUndefined(formValue.toText)) {\n const fromDate = getFormattedDateForComparison(formValue.fromText, options.dateType, true)\n const toDate = getFormattedDateForComparison(formValue.toText, options.dateType, true)\n\n if (!isNaN(fromDate.valueOf()) && !isNaN(toDate.valueOf())) {\n let toDateEnd\n if (options.dateType === 'datetime-local') {\n toDateEnd = new Date(toDate)\n toDateEnd.setMinutes(toDateEnd.getMinutes() + 1)\n }\n else if (options.dateType === 'date') {\n toDateEnd = new Date(toDate)\n toDateEnd.setDate(toDateEnd.getDate() + 1)\n }\n\n if (notNullOrUndefined(toDateEnd)) {\n if (formValue.searchType === 'between') {\n filter = {\n filter: {\n and: [\n { [filterState.state.prop]: { gte: fromDate.toISOString() } },\n { [filterState.state.prop]: { lt: toDateEnd.toISOString() } },\n ]\n },\n variables: {}\n }\n }\n else if (formValue.searchType === 'not-between') {\n filter = {\n filter: {\n or: [\n { [filterState.state.prop]: { lt: fromDate.toISOString() } },\n { [filterState.state.prop]: { gt: toDateEnd.toISOString() } },\n ]\n },\n variables: {}\n }\n }\n }\n }\n }\n else if (formValue.searchType === 'blank') {\n filter = {\n filter: {\n or: [\n { [filterState.state.prop]: { eq: null } }\n ]\n },\n variables: {}\n }\n }\n else if (formValue.searchType === 'not-blank') {\n filter = {\n filter: {\n and: [\n { [filterState.state.prop]: { neq: null } }\n ]\n },\n variables: {}\n }\n }\n\n return filter\n}\n","import { ColumnsDataFilterState, TheSeamColumnsDataFilterNumericSearchFormState, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES } from \"@theseam/ui-common/datatable\"\nimport { isNullOrUndefined, notNullOrUndefined } from \"@theseam/ui-common/utils\"\nimport { FilterStateMapperResult } from \"./map-filter-states\"\nimport { MapperContext } from \"./mapper-context\"\n\nexport const mapSearchNumericColumnsDataFilterStateToGql = (\n filterState: ColumnsDataFilterState<TheSeamColumnsDataFilterNumericSearchFormState>, context: MapperContext<any>,\n): FilterStateMapperResult => {\n let filter = null\n\n if (isNullOrUndefined(filterState.state.prop)) {\n return filter\n }\n\n if (notNullOrUndefined(filterState.state.formValue) && notNullOrUndefined(filterState.state.formValue.searchType)) {\n if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(filterState.state.formValue.searchType) && notNullOrUndefined(filterState.state.formValue.searchText)) {\n const searchNumeric = parseFloat(filterState.state.formValue.searchText)\n\n if (!isNaN(searchNumeric)) {\n filter = {\n filter: {\n and: [\n { [filterState.state.prop]: { [filterState.state.formValue.searchType]: searchNumeric } }\n ]\n },\n variables: {}\n }\n }\n }\n else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(filterState.state.formValue.searchType) && notNullOrUndefined(filterState.state.formValue.fromText) && notNullOrUndefined(filterState.state.formValue.toText)) {\n const fromNumeric = parseFloat(filterState.state.formValue.fromText)\n\n const toNumeric = parseFloat(filterState.state.formValue.toText)\n\n if (!isNaN(fromNumeric) && !isNaN(toNumeric)) {\n if (filterState.state.formValue.searchType === 'between') {\n filter = {\n filter: {\n and: [\n { [filterState.state.prop]: { 'gte': fromNumeric } },\n { [filterState.state.prop]: { 'lte': toNumeric } },\n ]\n },\n variables: {}\n }\n }\n else if (filterState.state.formValue.searchType === 'not-between') {\n filter = {\n filter: {\n or: [\n { [filterState.state.prop]: { 'lt': fromNumeric } },\n { [filterState.state.prop]: { 'gt': toNumeric } },\n ]\n },\n variables: {}\n }\n }\n }\n }\n else if (filterState.state.formValue.searchType === 'blank') {\n filter = {\n filter: {\n or: [\n { [filterState.state.prop]: { eq: null } },\n { [filterState.state.prop]: { eq: '' } },\n ]\n },\n variables: {}\n }\n }\n else if (filterState.state.formValue.searchType === 'not-blank') {\n filter = {\n filter: {\n and: [\n { [filterState.state.prop]: { neq: null } },\n { [filterState.state.prop]: { neq: '' } }\n ]\n },\n variables: {}\n }\n }\n }\n\n return filter\n}\n","import { ColumnsDataFilterState, TheSeamColumnsDataFilterTextSearchFormState, THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES } from \"@theseam/ui-common/datatable\"\nimport { isNullOrUndefined, notNullOrUndefined } from \"@theseam/ui-common/utils\"\nimport { FilterStateMapperResult } from \"./map-filter-states\"\nimport { MapperContext } from \"./mapper-context\"\n\nexport const mapSearchTextColumnsDataFilterStateToGql = (\n filterState: ColumnsDataFilterState<TheSeamColumnsDataFilterTextSearchFormState>, context: MapperContext<any>,\n): FilterStateMapperResult => {\n let filter = null\n\n if (isNullOrUndefined(filterState.state.prop)) {\n return filter\n }\n\n if (notNullOrUndefined(filterState.state.formValue) && notNullOrUndefined(filterState.state.formValue.searchType)) {\n if (THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES.includes(filterState.state.formValue.searchType) && notNullOrUndefined(filterState.state.formValue.searchText)) {\n filter = {\n filter: {\n and: [\n { [filterState.state.prop]: { [filterState.state.formValue.searchType]: filterState.state.formValue.searchText } }\n ]\n },\n variables: {}\n }\n }\n else if (filterState.state.formValue.searchType === 'blank') {\n filter = {\n filter: {\n or: [\n { [filterState.state.prop]: { eq: null } },\n { [filterState.state.prop]: { eq: '' } },\n ]\n },\n variables: {}\n }\n }\n else if (filterState.state.formValue.searchType === 'not-blank') {\n filter = {\n filter: {\n and: [\n { [filterState.state.prop]: { neq: null } },\n { [filterState.state.prop]: { neq: '' } }\n ]\n },\n variables: {}\n }\n }\n }\n\n return filter\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["visit","BREAK"],"mappings":"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"}
@@ -105,15 +105,15 @@ class IconComponent {
105
105
  get _cssDisabled() { return this.disabled || null; }
106
106
  get _cssNoGreyscale() { return !this.grayscaleOnDisable; }
107
107
  }
108
- IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
109
- IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: IconComponent, selector: "seam-icon", inputs: { grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", size: "size", showDefaultOnError: "showDefaultOnError", defaultIcon: "defaultIcon", iconType: "iconType" }, host: { properties: { "attr.icon-type": "this._iconTypeAttr", "class.disabled": "this._cssDisabled", "class.no-grayscale": "this._cssNoGreyscale" } }, ngImport: i0, template: "<fa-icon *ngIf=\"_iconObj\"\n class=\"seam-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"\n [size]=\"size || undefined\">\n</fa-icon>\n\n<ng-container *ngIf=\"_iconUrl\">\n <!-- Partial fix for IE greyscale -->\n <ng-container *ngIf=\"needToFix\">\n <ng-container *ngIf=\"disabled && grayscaleOnDisable\">\n <span class=\"grayscale-fix\" style=\"display: inline-block; position: relative;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"svgroot\" style=\"position: absolute; left: 0; right: 0;\" viewBox=\"0 0 48 48\" width=\"100%\" height=\"100%\">\n <defs><filter id=\"gray\"><feColorMatrix type=\"matrix\" values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\" /></filter></defs>\n <image filter=\"url(&quot;#gray&quot;)\" preserveAspectRatio=\"none meet\" x=\"0\" y=\"0\" width=\"48\" height=\"48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [attr.xlink:href]=\"_iconUrl\" />\n </svg>\n <img class=\"seam-icon--img {{ iconClass }}\" style=\"display: block; visibility: hidden;\" alt=\"Icon\" [src]=\"_iconUrl\" (error)=\"_imgError($event)\">\n </span>\n </ng-container>\n <ng-container *ngIf=\"!disabled\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!needToFix\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n</ng-container>\n\n<ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n", styles: [":host{display:inline-block}:host:disabled:not(.no-grayscale),:host.disabled:not(.no-grayscale){filter:grayscale(1)}:host[icon-type=styled-square]{border:1px solid #dee2e6;border-radius:8px}:host[icon-type=styled-square],:host[icon-type=borderless-styled-square]{-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;min-width:39px;width:39px;min-height:39px;height:39px;padding:1px;align-items:center;display:inline-flex;vertical-align:top}:host[icon-type=styled-square] img,:host[icon-type=borderless-styled-square] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=styled-square] .seam-icon--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%;padding:2px}:host[icon-type=styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}:host[icon-type=image-fill]{max-height:100%;max-width:100%;width:100%;height:100%}:host[icon-type=image-fill] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=image-fill] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%}:host[icon-type=image-fill] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}.grey-fix{visibility:hidden;display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] });
108
+ IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
109
+ IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: IconComponent, selector: "seam-icon", inputs: { grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", size: "size", showDefaultOnError: "showDefaultOnError", defaultIcon: "defaultIcon", iconType: "iconType" }, host: { properties: { "attr.icon-type": "this._iconTypeAttr", "class.disabled": "this._cssDisabled", "class.no-grayscale": "this._cssNoGreyscale" } }, ngImport: i0, template: "<fa-icon *ngIf=\"_iconObj\"\n class=\"seam-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"\n [size]=\"size || undefined\">\n</fa-icon>\n\n<ng-container *ngIf=\"_iconUrl\">\n <!-- Partial fix for IE greyscale -->\n <ng-container *ngIf=\"needToFix\">\n <ng-container *ngIf=\"disabled && grayscaleOnDisable\">\n <span class=\"grayscale-fix\" style=\"display: inline-block; position: relative;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"svgroot\" style=\"position: absolute; left: 0; right: 0;\" viewBox=\"0 0 48 48\" width=\"100%\" height=\"100%\">\n <defs><filter id=\"gray\"><feColorMatrix type=\"matrix\" values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\" /></filter></defs>\n <image filter=\"url(&quot;#gray&quot;)\" preserveAspectRatio=\"none meet\" x=\"0\" y=\"0\" width=\"48\" height=\"48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [attr.xlink:href]=\"_iconUrl\" />\n </svg>\n <img class=\"seam-icon--img {{ iconClass }}\" style=\"display: block; visibility: hidden;\" alt=\"Icon\" [src]=\"_iconUrl\" (error)=\"_imgError($event)\">\n </span>\n </ng-container>\n <ng-container *ngIf=\"!disabled\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!needToFix\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n</ng-container>\n\n<ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n", styles: [":host{display:inline-block}:host:disabled:not(.no-grayscale),:host.disabled:not(.no-grayscale){filter:grayscale(1)}:host[icon-type=styled-square]{border:1px solid #dee2e6;border-radius:8px}:host[icon-type=styled-square],:host[icon-type=borderless-styled-square]{-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;min-width:39px;width:39px;min-height:39px;height:39px;padding:1px;align-items:center;display:inline-flex;vertical-align:top}:host[icon-type=styled-square] img,:host[icon-type=borderless-styled-square] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=styled-square] .seam-icon--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%;padding:2px}:host[icon-type=styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}:host[icon-type=image-fill]{max-height:100%;max-width:100%;width:100%;height:100%}:host[icon-type=image-fill] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=image-fill] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%}:host[icon-type=image-fill] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}.grey-fix{visibility:hidden;display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] });
110
110
  __decorate([
111
111
  InputBoolean()
112
112
  ], IconComponent.prototype, "grayscaleOnDisable", void 0);
113
113
  __decorate([
114
114
  InputBoolean()
115
115
  ], IconComponent.prototype, "disabled", void 0);
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconComponent, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IconComponent, decorators: [{
117
117
  type: Component,
118
118
  args: [{ selector: 'seam-icon', template: "<fa-icon *ngIf=\"_iconObj\"\n class=\"seam-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"\n [size]=\"size || undefined\">\n</fa-icon>\n\n<ng-container *ngIf=\"_iconUrl\">\n <!-- Partial fix for IE greyscale -->\n <ng-container *ngIf=\"needToFix\">\n <ng-container *ngIf=\"disabled && grayscaleOnDisable\">\n <span class=\"grayscale-fix\" style=\"display: inline-block; position: relative;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"svgroot\" style=\"position: absolute; left: 0; right: 0;\" viewBox=\"0 0 48 48\" width=\"100%\" height=\"100%\">\n <defs><filter id=\"gray\"><feColorMatrix type=\"matrix\" values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\" /></filter></defs>\n <image filter=\"url(&quot;#gray&quot;)\" preserveAspectRatio=\"none meet\" x=\"0\" y=\"0\" width=\"48\" height=\"48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [attr.xlink:href]=\"_iconUrl\" />\n </svg>\n <img class=\"seam-icon--img {{ iconClass }}\" style=\"display: block; visibility: hidden;\" alt=\"Icon\" [src]=\"_iconUrl\" (error)=\"_imgError($event)\">\n </span>\n </ng-container>\n <ng-container *ngIf=\"!disabled\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!needToFix\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n</ng-container>\n\n<ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n", styles: [":host{display:inline-block}:host:disabled:not(.no-grayscale),:host.disabled:not(.no-grayscale){filter:grayscale(1)}:host[icon-type=styled-square]{border:1px solid #dee2e6;border-radius:8px}:host[icon-type=styled-square],:host[icon-type=borderless-styled-square]{-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;min-width:39px;width:39px;min-height:39px;height:39px;padding:1px;align-items:center;display:inline-flex;vertical-align:top}:host[icon-type=styled-square] img,:host[icon-type=borderless-styled-square] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=styled-square] .seam-icon--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%;padding:2px}:host[icon-type=styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}:host[icon-type=image-fill]{max-height:100%;max-width:100%;width:100%;height:100%}:host[icon-type=image-fill] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=image-fill] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%}:host[icon-type=image-fill] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}.grey-fix{visibility:hidden;display:block}\n"] }]
119
119
  }], propDecorators: { grayscaleOnDisable: [{
@@ -208,8 +208,8 @@ class IconBtnComponent {
208
208
  return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button';
209
209
  }
210
210
  }
211
- IconBtnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconBtnComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
212
- IconBtnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: IconBtnComponent, selector: "button[seamIconBtn]", inputs: { grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", size: "size", showDefaultOnError: "showDefaultOnError", iconType: "iconType", btnTheme: "btnTheme", badgeTheme: "badgeTheme", badgeText: "badgeText", btnSize: "btnSize", type: "type", role: "role" }, host: { properties: { "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null", "class.p-0": "this._cssPadding0", "class.btn": "this._btn", "class.text-nowrap": "this._textNoWrap", "class.btn-default": "this._btnDefault", "class.btn-primary": "this._btnPrimary", "class.btn-secondary": "this._btnSecondary", "class.btn-success": "this._btnSuccess", "class.btn-danger": "this._btnDanger", "class.btn-warning": "this._btnWarning", "class.btn-info": "this._btnInfo", "class.btn-light": "this._btnLight", "class.btn-dark": "this._btnDark", "class.btn-lightgray": "this._btnLightGray", "class.btn-sm": "this._btnSizeSm", "class.btn-lg": "this._btnSizeLg" } }, ngImport: i0, template: `
211
+ IconBtnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IconBtnComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
212
+ IconBtnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: IconBtnComponent, selector: "button[seamIconBtn]", inputs: { grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", size: "size", showDefaultOnError: "showDefaultOnError", iconType: "iconType", btnTheme: "btnTheme", badgeTheme: "badgeTheme", badgeText: "badgeText", btnSize: "btnSize", type: "type", role: "role" }, host: { properties: { "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null", "class.p-0": "this._cssPadding0", "class.btn": "this._btn", "class.text-nowrap": "this._textNoWrap", "class.btn-default": "this._btnDefault", "class.btn-primary": "this._btnPrimary", "class.btn-secondary": "this._btnSecondary", "class.btn-success": "this._btnSuccess", "class.btn-danger": "this._btnDanger", "class.btn-warning": "this._btnWarning", "class.btn-info": "this._btnInfo", "class.btn-light": "this._btnLight", "class.btn-dark": "this._btnDark", "class.btn-lightgray": "this._btnLightGray", "class.btn-sm": "this._btnSizeSm", "class.btn-lg": "this._btnSizeLg" } }, ngImport: i0, template: `
213
213
  <seam-icon *ngIf="icon"
214
214
  [grayscaleOnDisable]="grayscaleOnDisable"
215
215
  [disabled]="disabled"
@@ -230,7 +230,7 @@ __decorate([
230
230
  __decorate([
231
231
  InputBoolean()
232
232
  ], IconBtnComponent.prototype, "showDefaultOnError", void 0);
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconBtnComponent, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IconBtnComponent, decorators: [{
234
234
  type: Component,
235
235
  args: [{ selector: 'button[seamIconBtn]', template: `
236
236
  <seam-icon *ngIf="icon"
@@ -356,8 +356,8 @@ class IconNotificationComponent {
356
356
  }
357
357
  }
358
358
  }
359
- IconNotificationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconNotificationComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
360
- IconNotificationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: IconNotificationComponent, selector: "seam-icon-notification", inputs: { count: "count", hidden: "hidden", grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", showDefaultOnError: "showDefaultOnError", size: "size", iconType: "iconType" }, host: { properties: { "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" } }, ngImport: i0, template: `
359
+ IconNotificationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IconNotificationComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
360
+ IconNotificationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: IconNotificationComponent, selector: "seam-icon-notification", inputs: { count: "count", hidden: "hidden", grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", showDefaultOnError: "showDefaultOnError", size: "size", iconType: "iconType" }, host: { properties: { "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" } }, ngImport: i0, template: `
361
361
  <seam-icon *ngIf="icon && !hidden" [@counterChange]="count"
362
362
  [grayscaleOnDisable]="grayscaleOnDisable"
363
363
  [disabled]="disabled"
@@ -390,7 +390,7 @@ __decorate([
390
390
  __decorate([
391
391
  InputBoolean()
392
392
  ], IconNotificationComponent.prototype, "showDefaultOnError", void 0);
393
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconNotificationComponent, decorators: [{
393
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IconNotificationComponent, decorators: [{
394
394
  type: Component,
395
395
  args: [{ selector: 'seam-icon-notification', template: `
396
396
  <seam-icon *ngIf="icon && !hidden" [@counterChange]="count"
@@ -438,16 +438,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
438
438
 
439
439
  class TheSeamIconModule {
440
440
  }
441
- TheSeamIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
442
- TheSeamIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamIconModule, declarations: [IconComponent,
441
+ TheSeamIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
442
+ TheSeamIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TheSeamIconModule, declarations: [IconComponent,
443
443
  IconBtnComponent,
444
444
  IconNotificationComponent], imports: [CommonModule,
445
445
  FontAwesomeModule], exports: [IconComponent,
446
446
  IconBtnComponent,
447
447
  IconNotificationComponent] });
448
- TheSeamIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamIconModule, imports: [CommonModule,
448
+ TheSeamIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamIconModule, imports: [CommonModule,
449
449
  FontAwesomeModule] });
450
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamIconModule, decorators: [{
450
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamIconModule, decorators: [{
451
451
  type: NgModule,
452
452
  args: [{
453
453
  declarations: [