@theseam/ui-common 0.4.29 → 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 +4 -4
  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 +3 -3
  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 +3 -3
  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-icon.mjs","sources":["../../../projects/ui-common/icon/icon/icon.component.ts","../../../projects/ui-common/icon/icon/icon.component.html","../../../projects/ui-common/icon/icon-btn/icon-btn.component.ts","../../../projects/ui-common/icon/icon-notification/icon-notification.component.ts","../../../projects/ui-common/icon/icon.module.ts","../../../projects/ui-common/icon/utils/file-extension-icon.ts","../../../projects/ui-common/icon/utils/get-known-icon.ts","../../../projects/ui-common/icon/theseam-ui-common-icon.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { Component, HostBinding, Input } from '@angular/core'\n\nimport { IconProp, SizeProp } from '@fortawesome/fontawesome-svg-core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { SeamIcon } from '../icon'\n\n//\n// TODO: Ensure all inputs correctly update the state whenever changed, not just\n// on initial load.\n//\n\n// Browsers that do not support css grayscale filter.\nconst needToFix = /(MSIE 10)|(Trident.*rv:11\\.0)|( Edge\\/[\\d.]+$)/.test(navigator.userAgent)\n\nexport type TheSeamIconType = 'borderless-styled-square' | 'styled-square' | 'image-fill' | undefined\n\n@Component({\n selector: 'seam-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss']\n})\nexport class IconComponent {\n static ngAcceptInputType_grayscaleOnDisable: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_showDefaultOnError: BooleanInput\n\n needToFix = needToFix\n\n /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */\n @Input() @InputBoolean() grayscaleOnDisable = true\n\n /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */\n @Input() @InputBoolean() disabled = false\n\n /**\n * Placed on the `.seam-icon--fa` and `seam-icon--img` elements.\n */\n @Input() iconClass: string | undefined | null\n\n /**\n * The icon to display.\n *\n * If the input icon is a string an `img` element will be used with icon as `src`.\n * If the input is not a string it will be assumed to be a font-awesome IconProp object.\n */\n @Input()\n get icon(): SeamIcon | undefined | null { return this._iconUrl || this._iconObj }\n set icon(value: SeamIcon | undefined | null) {\n if (typeof value === 'string') {\n this._iconUrl = value\n this._iconObj = undefined\n } else {\n this._iconUrl = undefined\n this._iconObj = value\n }\n\n this._iconUrlBeforeError = undefined\n this._iconObjBeforeError = undefined\n\n if (!this._iconUrl && !this._iconObj) {\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n\n public _iconUrl: string | undefined | null\n public _iconObj: IconProp | undefined | null\n\n private _iconUrlBeforeError: string | undefined | null\n private _iconObjBeforeError: IconProp | undefined | null\n\n /**\n * NOTE: Only works for fa-icon for now.\n */\n @Input() size: SizeProp | undefined | null\n\n /**\n * Toggles whether an image that has thrown the `onerror` event should show\n * the `defaultIcon` instead.\n */\n @Input()\n get showDefaultOnError(): boolean { return this._showDefaultOnError }\n set showDefaultOnError(value: boolean) {\n this._showDefaultOnError = coerceBooleanProperty(value)\n if (this._hasError) {\n if (this._iconUrlBeforeError || this._iconObjBeforeError) {\n this._iconUrl = this._iconUrlBeforeError\n this._iconObj = this._iconObjBeforeError\n this._iconUrlBeforeError = undefined\n this._iconObjBeforeError = undefined\n } else if (this._showDefaultOnError) {\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n }\n private _showDefaultOnError = false\n\n /**\n * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.\n */\n @Input()\n get defaultIcon(): SeamIcon | undefined | null { return this._defaultIconUrl || this._defaultIconObj }\n set defaultIcon(value: SeamIcon | undefined | null) {\n if (typeof value === 'string') {\n this._defaultIconUrl = value\n this._defaultIconObj = undefined\n } else {\n this._defaultIconUrl = undefined\n this._defaultIconObj = value\n }\n\n if (!this._defaultIconUrl && !this._defaultIconObj) {\n this._iconUrl = this._iconUrlBeforeError\n this._iconObj = this._iconObjBeforeError\n }\n\n if (!this._iconUrl && !this._iconObj) {\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n\n public _defaultIconUrl: string | undefined | null\n public _defaultIconObj: IconProp | undefined | null\n\n @Input() iconType: TheSeamIconType | undefined | null\n\n @HostBinding('attr.icon-type')\n get _iconTypeAttr() { return this.iconType }\n\n private _hasError = false\n\n public _imgError(event: ErrorEvent): void {\n this._hasError = true\n if (this._showDefaultOnError && (this._defaultIconUrl || this._defaultIconObj)) {\n this._iconUrlBeforeError = this._iconUrl\n this._iconObjBeforeError = this._iconObj\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n\n @HostBinding('class.disabled')\n get _cssDisabled() { return this.disabled || null }\n\n @HostBinding('class.no-grayscale')\n get _cssNoGreyscale() { return !this.grayscaleOnDisable }\n\n}\n","<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","import { BooleanInput } from '@angular/cdk/coercion'\nimport { Component, DoCheck, ElementRef, HostBinding, Input, Renderer2 } from '@angular/core'\n\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport type { ThemeTypes } from '@theseam/ui-common/models'\n\nimport type { SeamIcon } from '../icon'\nimport type { TheSeamIconType } from '../icon/icon.component'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[seamIconBtn]',\n template: `\n <seam-icon *ngIf=\"icon\"\n [grayscaleOnDisable]=\"grayscaleOnDisable\"\n [disabled]=\"disabled\"\n [iconClass]=\"iconClass\"\n [icon]=\"icon\"\n [size]=\"size\"\n [showDefaultOnError]=\"showDefaultOnError\"\n [iconType]=\"iconType\">\n </seam-icon>\n <ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n `,\n styles: [],\n host: {\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n})\nexport class IconBtnComponent implements DoCheck {\n static ngAcceptInputType_grayscaleOnDisable: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_showDefaultOnError: BooleanInput\n\n /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */\n @Input() @InputBoolean() grayscaleOnDisable = true\n\n /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */\n @Input() @InputBoolean() disabled = false\n\n /**\n * Placed on the `.seam-icon--fa` and `seam-icon--img` elements.\n */\n @Input() iconClass: string | undefined | null\n\n /**\n * The icon to display.\n *\n * If the input icon is a string an `img` element will be used with icon as `src`.\n * If the input is not a string it will be assumed to be a font-awesome IconProp object.\n */\n @Input() icon: SeamIcon | undefined | null\n\n /**\n * NOTE: Only works for fa-icon for now.\n */\n @Input() size: SizeProp | undefined | null\n\n /**\n * Toggles whether an image that has thrown the `onerror` event should show\n * the `defaultIcon` instead.\n */\n @Input() @InputBoolean() showDefaultOnError = false\n\n /**\n * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.\n *\n * NOTE: Not supported for icon-btn yet.\n */\n // @Input() defaultIcon: SeamIcon\n\n @Input() iconType: TheSeamIconType | undefined | null = 'image-fill'\n\n @HostBinding('class.p-0') _cssPadding0 = true\n\n @HostBinding('class.btn') _btn = true\n @HostBinding('class.text-nowrap') _textNoWrap = true\n\n @HostBinding('class.btn-default') get _btnDefault() { return this.isBtnTheme('default') }\n @HostBinding('class.btn-primary') get _btnPrimary() { return this.isBtnTheme('primary') }\n @HostBinding('class.btn-secondary') get _btnSecondary() { return this.isBtnTheme('secondary') }\n @HostBinding('class.btn-success') get _btnSuccess() { return this.isBtnTheme('success') }\n @HostBinding('class.btn-danger') get _btnDanger() { return this.isBtnTheme('danger') }\n @HostBinding('class.btn-warning') get _btnWarning() { return this.isBtnTheme('warning') }\n @HostBinding('class.btn-info') get _btnInfo() { return this.isBtnTheme('info') }\n @HostBinding('class.btn-light') get _btnLight() { return this.isBtnTheme('light') }\n @HostBinding('class.btn-dark') get _btnDark() { return this.isBtnTheme('dark') }\n @HostBinding('class.btn-lightgray') get _btnLightGray() { return this.isBtnTheme('lightgray') }\n\n @HostBinding('class.btn-sm') get _btnSizeSm() { return this.btnSize === 'sm' }\n @HostBinding('class.btn-lg') get _btnSizeLg() { return this.btnSize === 'lg' }\n\n @Input() btnTheme: ThemeTypes | undefined | null = 'default'\n @Input() badgeTheme: ThemeTypes | undefined | null = 'light'\n @Input() badgeText: string | undefined | null = ''\n\n @Input() btnSize: 'sm' | 'lg' | undefined | null\n\n @Input()\n get type(): string | undefined | null { return this._type }\n set type(value: string | undefined | null) {\n this._type = value\n }\n private _type: string | undefined | null\n\n @Input()\n get role(): string | undefined | null { return this._role }\n set role(value: string | undefined | null) {\n this._role = value\n }\n private _role: string | undefined | null\n\n constructor(\n private _elementRef: ElementRef<HTMLButtonElement | HTMLAnchorElement>,\n private _renderer: Renderer2\n ) { }\n\n ngDoCheck() {\n if (this._isButton()) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'type', this._type || 'button')\n } else if (this._isAnchor()) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'role', this._role || 'button')\n }\n }\n\n public isBtnTheme(type: ThemeTypes): boolean {\n return this.btnTheme === type\n }\n\n protected _isButton() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n\n protected _isAnchor() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n\n}\n","import { animate, animation, keyframes, style, transition, trigger, useAnimation } from '@angular/animations'\nimport { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core'\n\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core'\nimport { faCircle } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { SeamIcon } from '../icon'\nimport type { TheSeamIconType } from '../icon/icon.component'\n\nexport const pulseAnimation = animation([\n style({ transform: 'scale(1)' }),\n animate(\n '{{ timings }}',\n keyframes([\n style({ transform: 'scale(1)', offset: 0 }),\n style({ transform: 'scale({{ scale }})', offset: 0.5 }),\n style({ transform: 'scale(1)', offset: 1 })\n ])\n )\n])\n\n@Component({\n selector: 'seam-icon-notification',\n template: `\n <seam-icon *ngIf=\"icon && !hidden\" [@counterChange]=\"count\"\n [grayscaleOnDisable]=\"grayscaleOnDisable\"\n [disabled]=\"disabled\"\n [iconClass]=\"iconClass\"\n [icon]=\"icon\"\n [size]=\"size\"\n [showDefaultOnError]=\"showDefaultOnError\"\n [iconType]=\"iconType\">\n </seam-icon>\n <ng-content select=\".sr-only\"></ng-content>\n `,\n styles: [`\n :host {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n }\n\n seam-icon {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 25% !important;\n height: 25% !important;\n min-width: 15px;\n min-height: 15px;\n }\n `],\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n animations: [\n trigger('counterChange', [\n transition(\n ':increment',\n useAnimation(pulseAnimation, {\n params: {\n timings: '400ms ease-in-out',\n scale: 1.2\n }\n })\n )\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IconNotificationComponent implements OnInit {\n static ngAcceptInputType_hidden: BooleanInput\n static ngAcceptInputType_grayscaleOnDisable: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_showDefaultOnError: BooleanInput\n\n @Input() count: number | undefined | null\n\n @Input() @InputBoolean() hidden = false\n\n /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */\n @Input() @InputBoolean() grayscaleOnDisable = true\n\n /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */\n @Input() @InputBoolean() disabled = false\n\n /**\n * Placed on the `.seam-icon--fa` and `seam-icon--img` elements.\n */\n @Input() iconClass: string | undefined | null\n\n /**\n * The icon to display.\n *\n * If the input icon is a string an `img` element will be used with icon as `src`.\n * If the input is not a string it will be assumed to be a font-awesome IconProp object.\n */\n @Input() icon: SeamIcon | undefined | null = faCircle\n\n /**\n * Toggles whether an image that has thrown the `onerror` event should show\n * the `defaultIcon` instead.\n */\n @Input() @InputBoolean() showDefaultOnError = false\n\n /**\n * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.\n *\n * NOTE: Not supported for icon-notification yet.\n */\n // @Input() defaultIcon: SeamIcon\n\n /**\n * NOTE: Only works for fa-icon for now.\n */\n @Input() size: SizeProp | undefined | null\n\n @Input() iconType: TheSeamIconType | undefined | null = 'image-fill'\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>\n ) { }\n\n ngOnInit() {\n if (this._elementRef && this._elementRef.nativeElement && this._elementRef.nativeElement.parentElement) {\n this._elementRef.nativeElement.parentElement.style.position = 'relative'\n }\n }\n\n // ngDoCheck() {}\n\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\n\nimport { IconBtnComponent } from './icon-btn/icon-btn.component'\nimport { IconNotificationComponent } from './icon-notification/icon-notification.component'\nimport { IconComponent } from './icon/icon.component'\n\n@NgModule({\n declarations: [\n IconComponent,\n IconBtnComponent,\n IconNotificationComponent\n ],\n imports: [\n CommonModule,\n FontAwesomeModule\n ],\n exports: [\n IconComponent,\n IconBtnComponent,\n IconNotificationComponent\n ]\n})\nexport class TheSeamIconModule { }\n","import {\n faFile,\n faFileAlt,\n faFileArchive,\n faFileExcel,\n faFileImage,\n faFilePdf,\n faFilePowerpoint,\n faFileWord\n} from '@fortawesome/free-regular-svg-icons'\n\nimport { SeamIcon } from '../icon'\n\nconst FILE_EXTENSION_ICONS: { [type: string]: SeamIcon } = {\n 'pdf': faFilePdf,\n 'doc': faFileWord,\n 'docx': faFileWord,\n 'xls': faFileExcel,\n 'xlsx': faFileExcel,\n 'gif': faFileImage,\n 'jpg': faFileImage,\n 'jpeg': faFileImage,\n 'png': faFileImage,\n 'zip': faFileArchive,\n 'ppt': faFilePowerpoint,\n 'pptx': faFilePowerpoint,\n 'txt': faFileAlt,\n 'json': faFileAlt\n}\n\nexport const DEFAULT_FILE_EXTENSION_ICON: SeamIcon = faFile\n\nexport function fileExtensionIcon(extension: string | null | undefined, defaultIfNotFound: boolean = true): SeamIcon | undefined {\n if (!extension) {\n return defaultIfNotFound ? DEFAULT_FILE_EXTENSION_ICON : undefined\n }\n\n let ext = extension\n if (ext.charAt(0) === '.') {\n ext = ext.substr(1)\n }\n\n const icon = FILE_EXTENSION_ICONS[ext]\n if (!icon && defaultIfNotFound) {\n return DEFAULT_FILE_EXTENSION_ICON\n }\n return icon\n}\n","import {\n faAddressCard,\n faBell,\n faBookmark,\n faCheckCircle,\n faClock,\n faComment,\n faEnvelope,\n faEnvelopeOpen,\n faFile,\n faFileAlt,\n faFileArchive,\n faFileAudio,\n faFileCode,\n faFileExcel,\n faFileImage,\n faFilePdf,\n faFilePowerpoint,\n faFileVideo,\n faFileWord,\n faFolder,\n faFolderOpen,\n faImage,\n faImages,\n faQuestionCircle,\n faSave,\n faStickyNote,\n faTimesCircle,\n faTrashAlt,\n faUser,\n faUserCircle\n} from '@fortawesome/free-regular-svg-icons'\nimport {\n faBan,\n faChartArea,\n faChartBar,\n faChartLine,\n faCheck,\n faCloudUploadAlt,\n faCog,\n faEdit,\n faExclamation,\n faExclamationCircle,\n faExclamationTriangle,\n faExternalLinkSquareAlt,\n faFileContract,\n faFileCsv,\n faFileDownload,\n faFileExport,\n faFileImport,\n faFileInvoice,\n faFileInvoiceDollar,\n faFileMedical,\n faFileMedicalAlt,\n faFilePrescription,\n faFileSignature,\n faFileUpload,\n faInbox,\n faInfoCircle,\n faLock,\n faLockOpen,\n faPrint,\n faReceipt,\n faReply,\n faShare,\n faSignature,\n faTimes,\n faTrash,\n faUserCheck,\n faUserEdit,\n faUserPlus,\n faUsers,\n faUserTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nimport { SeamIcon } from '../icon'\n\n// TODO: Decide a good way to do this, so that we don't have to import full icon\n// libraries, but still provide icon choices to use from a string. One way could\n// be to define a dictionary of app icons that we can use that map a unique\n// string to an icon definition.\nconst knownIcons: { [key: string]: SeamIcon } = {\n faAddressCard,\n faBan,\n faBell,\n faBookmark,\n faChartLine,\n faChartArea,\n faChartBar,\n faCheck,\n faCheckCircle,\n faClock,\n faCloudUploadAlt,\n faComment,\n faCog,\n faEdit,\n faEnvelope,\n faEnvelopeOpen,\n faExclamation,\n faExclamationCircle,\n faExclamationTriangle,\n faExternalLinkSquareAlt,\n faFile,\n faFileAlt,\n faFileArchive,\n faFileAudio,\n faFileCode,\n faFileContract,\n faFileCsv,\n faFileDownload,\n faFileExcel,\n faFileExport,\n faFileImage,\n faFileImport,\n faFileInvoice,\n faFileInvoiceDollar,\n faFileMedical,\n faFileMedicalAlt,\n faFilePdf,\n faFilePowerpoint,\n faFilePrescription,\n faFileSignature,\n faFileUpload,\n faFileVideo,\n faFileWord,\n faFolder,\n faFolderOpen,\n faImage,\n faImages,\n faInbox,\n faInfoCircle,\n faLock,\n faLockOpen,\n faPrint,\n faQuestionCircle,\n faReceipt,\n faReply,\n faSave,\n faShare,\n faSignature,\n faStickyNote,\n faTimes,\n faTimesCircle,\n faTrash,\n faTrashAlt,\n faUser,\n faUserCheck,\n faUserCircle,\n faUserEdit,\n faUserTimes,\n faUsers,\n faUserPlus\n}\n\nexport function getKnownIcon(iconStr: string): SeamIcon | undefined {\n return knownIcons[iconStr]\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.IconComponent"],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-icon.mjs","sources":["../../../projects/ui-common/icon/icon/icon.component.ts","../../../projects/ui-common/icon/icon/icon.component.html","../../../projects/ui-common/icon/icon-btn/icon-btn.component.ts","../../../projects/ui-common/icon/icon-notification/icon-notification.component.ts","../../../projects/ui-common/icon/icon.module.ts","../../../projects/ui-common/icon/utils/file-extension-icon.ts","../../../projects/ui-common/icon/utils/get-known-icon.ts","../../../projects/ui-common/icon/theseam-ui-common-icon.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { Component, HostBinding, Input } from '@angular/core'\n\nimport { IconProp, SizeProp } from '@fortawesome/fontawesome-svg-core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { SeamIcon } from '../icon'\n\n//\n// TODO: Ensure all inputs correctly update the state whenever changed, not just\n// on initial load.\n//\n\n// Browsers that do not support css grayscale filter.\nconst needToFix = /(MSIE 10)|(Trident.*rv:11\\.0)|( Edge\\/[\\d.]+$)/.test(navigator.userAgent)\n\nexport type TheSeamIconType = 'borderless-styled-square' | 'styled-square' | 'image-fill' | undefined\n\n@Component({\n selector: 'seam-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss']\n})\nexport class IconComponent {\n static ngAcceptInputType_grayscaleOnDisable: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_showDefaultOnError: BooleanInput\n\n needToFix = needToFix\n\n /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */\n @Input() @InputBoolean() grayscaleOnDisable = true\n\n /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */\n @Input() @InputBoolean() disabled = false\n\n /**\n * Placed on the `.seam-icon--fa` and `seam-icon--img` elements.\n */\n @Input() iconClass: string | undefined | null\n\n /**\n * The icon to display.\n *\n * If the input icon is a string an `img` element will be used with icon as `src`.\n * If the input is not a string it will be assumed to be a font-awesome IconProp object.\n */\n @Input()\n get icon(): SeamIcon | undefined | null { return this._iconUrl || this._iconObj }\n set icon(value: SeamIcon | undefined | null) {\n if (typeof value === 'string') {\n this._iconUrl = value\n this._iconObj = undefined\n } else {\n this._iconUrl = undefined\n this._iconObj = value\n }\n\n this._iconUrlBeforeError = undefined\n this._iconObjBeforeError = undefined\n\n if (!this._iconUrl && !this._iconObj) {\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n\n public _iconUrl: string | undefined | null\n public _iconObj: IconProp | undefined | null\n\n private _iconUrlBeforeError: string | undefined | null\n private _iconObjBeforeError: IconProp | undefined | null\n\n /**\n * NOTE: Only works for fa-icon for now.\n */\n @Input() size: SizeProp | undefined | null\n\n /**\n * Toggles whether an image that has thrown the `onerror` event should show\n * the `defaultIcon` instead.\n */\n @Input()\n get showDefaultOnError(): boolean { return this._showDefaultOnError }\n set showDefaultOnError(value: boolean) {\n this._showDefaultOnError = coerceBooleanProperty(value)\n if (this._hasError) {\n if (this._iconUrlBeforeError || this._iconObjBeforeError) {\n this._iconUrl = this._iconUrlBeforeError\n this._iconObj = this._iconObjBeforeError\n this._iconUrlBeforeError = undefined\n this._iconObjBeforeError = undefined\n } else if (this._showDefaultOnError) {\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n }\n private _showDefaultOnError = false\n\n /**\n * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.\n */\n @Input()\n get defaultIcon(): SeamIcon | undefined | null { return this._defaultIconUrl || this._defaultIconObj }\n set defaultIcon(value: SeamIcon | undefined | null) {\n if (typeof value === 'string') {\n this._defaultIconUrl = value\n this._defaultIconObj = undefined\n } else {\n this._defaultIconUrl = undefined\n this._defaultIconObj = value\n }\n\n if (!this._defaultIconUrl && !this._defaultIconObj) {\n this._iconUrl = this._iconUrlBeforeError\n this._iconObj = this._iconObjBeforeError\n }\n\n if (!this._iconUrl && !this._iconObj) {\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n\n public _defaultIconUrl: string | undefined | null\n public _defaultIconObj: IconProp | undefined | null\n\n @Input() iconType: TheSeamIconType | undefined | null\n\n @HostBinding('attr.icon-type')\n get _iconTypeAttr() { return this.iconType }\n\n private _hasError = false\n\n public _imgError(event: ErrorEvent): void {\n this._hasError = true\n if (this._showDefaultOnError && (this._defaultIconUrl || this._defaultIconObj)) {\n this._iconUrlBeforeError = this._iconUrl\n this._iconObjBeforeError = this._iconObj\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n\n @HostBinding('class.disabled')\n get _cssDisabled() { return this.disabled || null }\n\n @HostBinding('class.no-grayscale')\n get _cssNoGreyscale() { return !this.grayscaleOnDisable }\n\n}\n","<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","import { BooleanInput } from '@angular/cdk/coercion'\nimport { Component, DoCheck, ElementRef, HostBinding, Input, Renderer2 } from '@angular/core'\n\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport type { ThemeTypes } from '@theseam/ui-common/models'\n\nimport type { SeamIcon } from '../icon'\nimport type { TheSeamIconType } from '../icon/icon.component'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[seamIconBtn]',\n template: `\n <seam-icon *ngIf=\"icon\"\n [grayscaleOnDisable]=\"grayscaleOnDisable\"\n [disabled]=\"disabled\"\n [iconClass]=\"iconClass\"\n [icon]=\"icon\"\n [size]=\"size\"\n [showDefaultOnError]=\"showDefaultOnError\"\n [iconType]=\"iconType\">\n </seam-icon>\n <ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n `,\n styles: [],\n host: {\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n})\nexport class IconBtnComponent implements DoCheck {\n static ngAcceptInputType_grayscaleOnDisable: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_showDefaultOnError: BooleanInput\n\n /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */\n @Input() @InputBoolean() grayscaleOnDisable = true\n\n /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */\n @Input() @InputBoolean() disabled = false\n\n /**\n * Placed on the `.seam-icon--fa` and `seam-icon--img` elements.\n */\n @Input() iconClass: string | undefined | null\n\n /**\n * The icon to display.\n *\n * If the input icon is a string an `img` element will be used with icon as `src`.\n * If the input is not a string it will be assumed to be a font-awesome IconProp object.\n */\n @Input() icon: SeamIcon | undefined | null\n\n /**\n * NOTE: Only works for fa-icon for now.\n */\n @Input() size: SizeProp | undefined | null\n\n /**\n * Toggles whether an image that has thrown the `onerror` event should show\n * the `defaultIcon` instead.\n */\n @Input() @InputBoolean() showDefaultOnError = false\n\n /**\n * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.\n *\n * NOTE: Not supported for icon-btn yet.\n */\n // @Input() defaultIcon: SeamIcon\n\n @Input() iconType: TheSeamIconType | undefined | null = 'image-fill'\n\n @HostBinding('class.p-0') _cssPadding0 = true\n\n @HostBinding('class.btn') _btn = true\n @HostBinding('class.text-nowrap') _textNoWrap = true\n\n @HostBinding('class.btn-default') get _btnDefault() { return this.isBtnTheme('default') }\n @HostBinding('class.btn-primary') get _btnPrimary() { return this.isBtnTheme('primary') }\n @HostBinding('class.btn-secondary') get _btnSecondary() { return this.isBtnTheme('secondary') }\n @HostBinding('class.btn-success') get _btnSuccess() { return this.isBtnTheme('success') }\n @HostBinding('class.btn-danger') get _btnDanger() { return this.isBtnTheme('danger') }\n @HostBinding('class.btn-warning') get _btnWarning() { return this.isBtnTheme('warning') }\n @HostBinding('class.btn-info') get _btnInfo() { return this.isBtnTheme('info') }\n @HostBinding('class.btn-light') get _btnLight() { return this.isBtnTheme('light') }\n @HostBinding('class.btn-dark') get _btnDark() { return this.isBtnTheme('dark') }\n @HostBinding('class.btn-lightgray') get _btnLightGray() { return this.isBtnTheme('lightgray') }\n\n @HostBinding('class.btn-sm') get _btnSizeSm() { return this.btnSize === 'sm' }\n @HostBinding('class.btn-lg') get _btnSizeLg() { return this.btnSize === 'lg' }\n\n @Input() btnTheme: ThemeTypes | undefined | null = 'default'\n @Input() badgeTheme: ThemeTypes | undefined | null = 'light'\n @Input() badgeText: string | undefined | null = ''\n\n @Input() btnSize: 'sm' | 'lg' | undefined | null\n\n @Input()\n get type(): string | undefined | null { return this._type }\n set type(value: string | undefined | null) {\n this._type = value\n }\n private _type: string | undefined | null\n\n @Input()\n get role(): string | undefined | null { return this._role }\n set role(value: string | undefined | null) {\n this._role = value\n }\n private _role: string | undefined | null\n\n constructor(\n private _elementRef: ElementRef<HTMLButtonElement | HTMLAnchorElement>,\n private _renderer: Renderer2\n ) { }\n\n ngDoCheck() {\n if (this._isButton()) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'type', this._type || 'button')\n } else if (this._isAnchor()) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'role', this._role || 'button')\n }\n }\n\n public isBtnTheme(type: ThemeTypes): boolean {\n return this.btnTheme === type\n }\n\n protected _isButton() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n\n protected _isAnchor() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n\n}\n","import { animate, animation, keyframes, style, transition, trigger, useAnimation } from '@angular/animations'\nimport { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core'\n\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core'\nimport { faCircle } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { SeamIcon } from '../icon'\nimport type { TheSeamIconType } from '../icon/icon.component'\n\nexport const pulseAnimation = animation([\n style({ transform: 'scale(1)' }),\n animate(\n '{{ timings }}',\n keyframes([\n style({ transform: 'scale(1)', offset: 0 }),\n style({ transform: 'scale({{ scale }})', offset: 0.5 }),\n style({ transform: 'scale(1)', offset: 1 })\n ])\n )\n])\n\n@Component({\n selector: 'seam-icon-notification',\n template: `\n <seam-icon *ngIf=\"icon && !hidden\" [@counterChange]=\"count\"\n [grayscaleOnDisable]=\"grayscaleOnDisable\"\n [disabled]=\"disabled\"\n [iconClass]=\"iconClass\"\n [icon]=\"icon\"\n [size]=\"size\"\n [showDefaultOnError]=\"showDefaultOnError\"\n [iconType]=\"iconType\">\n </seam-icon>\n <ng-content select=\".sr-only\"></ng-content>\n `,\n styles: [`\n :host {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n }\n\n seam-icon {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 25% !important;\n height: 25% !important;\n min-width: 15px;\n min-height: 15px;\n }\n `],\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n animations: [\n trigger('counterChange', [\n transition(\n ':increment',\n useAnimation(pulseAnimation, {\n params: {\n timings: '400ms ease-in-out',\n scale: 1.2\n }\n })\n )\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IconNotificationComponent implements OnInit {\n static ngAcceptInputType_hidden: BooleanInput\n static ngAcceptInputType_grayscaleOnDisable: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_showDefaultOnError: BooleanInput\n\n @Input() count: number | undefined | null\n\n @Input() @InputBoolean() hidden = false\n\n /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */\n @Input() @InputBoolean() grayscaleOnDisable = true\n\n /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */\n @Input() @InputBoolean() disabled = false\n\n /**\n * Placed on the `.seam-icon--fa` and `seam-icon--img` elements.\n */\n @Input() iconClass: string | undefined | null\n\n /**\n * The icon to display.\n *\n * If the input icon is a string an `img` element will be used with icon as `src`.\n * If the input is not a string it will be assumed to be a font-awesome IconProp object.\n */\n @Input() icon: SeamIcon | undefined | null = faCircle\n\n /**\n * Toggles whether an image that has thrown the `onerror` event should show\n * the `defaultIcon` instead.\n */\n @Input() @InputBoolean() showDefaultOnError = false\n\n /**\n * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.\n *\n * NOTE: Not supported for icon-notification yet.\n */\n // @Input() defaultIcon: SeamIcon\n\n /**\n * NOTE: Only works for fa-icon for now.\n */\n @Input() size: SizeProp | undefined | null\n\n @Input() iconType: TheSeamIconType | undefined | null = 'image-fill'\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>\n ) { }\n\n ngOnInit() {\n if (this._elementRef && this._elementRef.nativeElement && this._elementRef.nativeElement.parentElement) {\n this._elementRef.nativeElement.parentElement.style.position = 'relative'\n }\n }\n\n // ngDoCheck() {}\n\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\n\nimport { IconBtnComponent } from './icon-btn/icon-btn.component'\nimport { IconNotificationComponent } from './icon-notification/icon-notification.component'\nimport { IconComponent } from './icon/icon.component'\n\n@NgModule({\n declarations: [\n IconComponent,\n IconBtnComponent,\n IconNotificationComponent\n ],\n imports: [\n CommonModule,\n FontAwesomeModule\n ],\n exports: [\n IconComponent,\n IconBtnComponent,\n IconNotificationComponent\n ]\n})\nexport class TheSeamIconModule { }\n","import {\n faFile,\n faFileAlt,\n faFileArchive,\n faFileExcel,\n faFileImage,\n faFilePdf,\n faFilePowerpoint,\n faFileWord\n} from '@fortawesome/free-regular-svg-icons'\n\nimport { SeamIcon } from '../icon'\n\nconst FILE_EXTENSION_ICONS: { [type: string]: SeamIcon } = {\n 'pdf': faFilePdf,\n 'doc': faFileWord,\n 'docx': faFileWord,\n 'xls': faFileExcel,\n 'xlsx': faFileExcel,\n 'gif': faFileImage,\n 'jpg': faFileImage,\n 'jpeg': faFileImage,\n 'png': faFileImage,\n 'zip': faFileArchive,\n 'ppt': faFilePowerpoint,\n 'pptx': faFilePowerpoint,\n 'txt': faFileAlt,\n 'json': faFileAlt\n}\n\nexport const DEFAULT_FILE_EXTENSION_ICON: SeamIcon = faFile\n\nexport function fileExtensionIcon(extension: string | null | undefined, defaultIfNotFound: boolean = true): SeamIcon | undefined {\n if (!extension) {\n return defaultIfNotFound ? DEFAULT_FILE_EXTENSION_ICON : undefined\n }\n\n let ext = extension\n if (ext.charAt(0) === '.') {\n ext = ext.substr(1)\n }\n\n const icon = FILE_EXTENSION_ICONS[ext]\n if (!icon && defaultIfNotFound) {\n return DEFAULT_FILE_EXTENSION_ICON\n }\n return icon\n}\n","import {\n faAddressCard,\n faBell,\n faBookmark,\n faCheckCircle,\n faClock,\n faComment,\n faEnvelope,\n faEnvelopeOpen,\n faFile,\n faFileAlt,\n faFileArchive,\n faFileAudio,\n faFileCode,\n faFileExcel,\n faFileImage,\n faFilePdf,\n faFilePowerpoint,\n faFileVideo,\n faFileWord,\n faFolder,\n faFolderOpen,\n faImage,\n faImages,\n faQuestionCircle,\n faSave,\n faStickyNote,\n faTimesCircle,\n faTrashAlt,\n faUser,\n faUserCircle\n} from '@fortawesome/free-regular-svg-icons'\nimport {\n faBan,\n faChartArea,\n faChartBar,\n faChartLine,\n faCheck,\n faCloudUploadAlt,\n faCog,\n faEdit,\n faExclamation,\n faExclamationCircle,\n faExclamationTriangle,\n faExternalLinkSquareAlt,\n faFileContract,\n faFileCsv,\n faFileDownload,\n faFileExport,\n faFileImport,\n faFileInvoice,\n faFileInvoiceDollar,\n faFileMedical,\n faFileMedicalAlt,\n faFilePrescription,\n faFileSignature,\n faFileUpload,\n faInbox,\n faInfoCircle,\n faLock,\n faLockOpen,\n faPrint,\n faReceipt,\n faReply,\n faShare,\n faSignature,\n faTimes,\n faTrash,\n faUserCheck,\n faUserEdit,\n faUserPlus,\n faUsers,\n faUserTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nimport { SeamIcon } from '../icon'\n\n// TODO: Decide a good way to do this, so that we don't have to import full icon\n// libraries, but still provide icon choices to use from a string. One way could\n// be to define a dictionary of app icons that we can use that map a unique\n// string to an icon definition.\nconst knownIcons: { [key: string]: SeamIcon } = {\n faAddressCard,\n faBan,\n faBell,\n faBookmark,\n faChartLine,\n faChartArea,\n faChartBar,\n faCheck,\n faCheckCircle,\n faClock,\n faCloudUploadAlt,\n faComment,\n faCog,\n faEdit,\n faEnvelope,\n faEnvelopeOpen,\n faExclamation,\n faExclamationCircle,\n faExclamationTriangle,\n faExternalLinkSquareAlt,\n faFile,\n faFileAlt,\n faFileArchive,\n faFileAudio,\n faFileCode,\n faFileContract,\n faFileCsv,\n faFileDownload,\n faFileExcel,\n faFileExport,\n faFileImage,\n faFileImport,\n faFileInvoice,\n faFileInvoiceDollar,\n faFileMedical,\n faFileMedicalAlt,\n faFilePdf,\n faFilePowerpoint,\n faFilePrescription,\n faFileSignature,\n faFileUpload,\n faFileVideo,\n faFileWord,\n faFolder,\n faFolderOpen,\n faImage,\n faImages,\n faInbox,\n faInfoCircle,\n faLock,\n faLockOpen,\n faPrint,\n faQuestionCircle,\n faReceipt,\n faReply,\n faSave,\n faShare,\n faSignature,\n faStickyNote,\n faTimes,\n faTimesCircle,\n faTrash,\n faTrashAlt,\n faUser,\n faUserCheck,\n faUserCircle,\n faUserEdit,\n faUserTimes,\n faUsers,\n faUserPlus\n}\n\nexport function getKnownIcon(iconStr: string): SeamIcon | undefined {\n return knownIcons[iconStr]\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.IconComponent"],"mappings":"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"}
@@ -3,7 +3,8 @@ import * as i0 from '@angular/core';
3
3
  import { NgModule, Injectable } from '@angular/core';
4
4
  import * as i1 from '@angular/flex-layout';
5
5
  import { FlexLayoutModule } from '@angular/flex-layout';
6
- import { map, startWith, distinctUntilChanged, shareReplay } from 'rxjs/operators';
6
+ import { BehaviorSubject } from 'rxjs';
7
+ import { map, startWith, distinctUntilChanged, shareReplay, switchMap } from 'rxjs/operators';
7
8
 
8
9
  // TODO: Make sure the `@angular/flex-layout` breakpoints and bootstrap
9
10
  // breakpoints work the same.
@@ -17,12 +18,12 @@ import { map, startWith, distinctUntilChanged, shareReplay } from 'rxjs/operator
17
18
 
18
19
  class TheSeamLayoutModule {
19
20
  }
20
- TheSeamLayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- TheSeamLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLayoutModule, imports: [CommonModule,
21
+ TheSeamLayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
22
+ TheSeamLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLayoutModule, imports: [CommonModule,
22
23
  FlexLayoutModule], exports: [FlexLayoutModule] });
23
- TheSeamLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLayoutModule, imports: [CommonModule,
24
+ TheSeamLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLayoutModule, imports: [CommonModule,
24
25
  FlexLayoutModule, FlexLayoutModule] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLayoutModule, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLayoutModule, decorators: [{
26
27
  type: NgModule,
27
28
  args: [{
28
29
  declarations: [],
@@ -79,15 +80,23 @@ function observeMediaQuery(mediaObserver, alias) {
79
80
  class TheSeamLayoutService {
80
81
  constructor(_media) {
81
82
  this._media = _media;
82
- this.isMobile$ = this.observe('lt-sm');
83
+ this._mobileBreakpoint = new BehaviorSubject('lt-sm');
84
+ this.mobileBreakpoint$ = this._mobileBreakpoint.asObservable();
85
+ this.isMobile$ = this.mobileBreakpoint$.pipe(switchMap(breakpoint => this.observe(breakpoint)), shareReplay({ bufferSize: 1, refCount: true }));
83
86
  }
84
87
  observe(alias) {
85
88
  return observeMediaQuery(this._media, alias);
86
89
  }
90
+ /**
91
+ * Update breakpoint observed by isMobile$
92
+ */
93
+ setMobileBreakpoint(alias) {
94
+ this._mobileBreakpoint.next(alias);
95
+ }
87
96
  }
88
- TheSeamLayoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLayoutService, deps: [{ token: i1.MediaObserver }], target: i0.ɵɵFactoryTarget.Injectable });
89
- TheSeamLayoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLayoutService, providedIn: 'root' });
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLayoutService, decorators: [{
97
+ TheSeamLayoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLayoutService, deps: [{ token: i1.MediaObserver }], target: i0.ɵɵFactoryTarget.Injectable });
98
+ TheSeamLayoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLayoutService, providedIn: 'root' });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLayoutService, decorators: [{
91
100
  type: Injectable,
92
101
  args: [{
93
102
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-layout.mjs","sources":["../../../projects/ui-common/layout/breakpoint-aliases.ts","../../../projects/ui-common/layout/layout.module.ts","../../../projects/ui-common/layout/observe-media-query.ts","../../../projects/ui-common/layout/layout.service.ts","../../../projects/ui-common/layout/theseam-ui-common-layout.ts"],"sourcesContent":["// TODO: Make sure the `@angular/flex-layout` breakpoints and bootstrap\n// breakpoints work the same.\n//\n// I like the more spread-out ranges in '@angular/flex-layout', but since our\n// styles are mostly based on bootstrap it may be worth it to drop down closer\n// to the bootstrap breakpoints.\n//\n// Another option is to create new aliases to blend a mix between them, if it\n// doesn't add to much complexity.\n\n/**\n * | breakpoint | mediaQuery |\n * |------------|---------------------------------------------------------|\n * | xs | 'screen and (max-width: 599px)' |\n * | sm | 'screen and (min-width: 600px) and (max-width: 959px)' |\n * | md | 'screen and (min-width: 960px) and (max-width: 1279px)' |\n * | lg | 'screen and (min-width: 1280px) and (max-width: 1919px)'|\n * | xl | 'screen and (min-width: 1920px) and (max-width: 5000px)'|\n * | | |\n * | lt-sm | 'screen and (max-width: 599px)' |\n * | lt-md | 'screen and (max-width: 959px)' |\n * | lt-lg | 'screen and (max-width: 1279px)' |\n * | lt-xl | 'screen and (max-width: 1919px)' |\n * | | |\n * | gt-xs | 'screen and (min-width: 600px)' |\n * | gt-sm | 'screen and (min-width: 960px)' |\n * | gt-md | 'screen and (min-width: 1280px)' |\n * | gt-lg | 'screen and (min-width: 1920px)' |\n */\nexport type MediaQueryAliases =\n // Breakpoint MediaQuery\n 'xs' // 'screen and (max-width: 599px)'\n | 'sm' // 'screen and (min-width: 600px) and (max-width: 959px)'\n | 'md' // 'screen and (min-width: 960px) and (max-width: 1279px)'\n | 'lg' // 'screen and (min-width: 1280px) and (max-width: 1919px)'\n | 'xl' // 'screen and (min-width: 1920px) and (max-width: 5000px)'\n | 'lt-sm' // 'screen and (max-width: 599px)'\n | 'lt-md' // 'screen and (max-width: 959px)'\n | 'lt-lg' // 'screen and (max-width: 1279px)'\n | 'lt-xl' // 'screen and (max-width: 1919px)'\n | 'gt-xs' // 'screen and (min-width: 600px)'\n | 'gt-sm' // 'screen and (min-width: 960px)'\n | 'gt-md' // 'screen and (min-width: 1280px)'\n | 'gt-lg' // 'screen and (min-width: 1920px)'\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FlexLayoutModule } from '@angular/flex-layout'\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n FlexLayoutModule\n ],\n exports: [\n FlexLayoutModule\n ]\n})\nexport class TheSeamLayoutModule { }\n","import { MediaObserver } from '@angular/flex-layout'\nimport { Observable } from 'rxjs'\nimport { distinctUntilChanged, map, shareReplay, startWith, tap } from 'rxjs/operators'\n\nimport { MediaQueryAliases } from './breakpoint-aliases'\n\nconst mediaQueriesMap: { [breakpoint: string]: string } = {\n 'xs': 'screen and (max-width: 599px)',\n 'sm': 'screen and (min-width: 600px) and (max-width: 959px)',\n 'md': 'screen and (min-width: 960px) and (max-width: 1279px)',\n 'lg': 'screen and (min-width: 1280px) and (max-width: 1919px)',\n 'xl': 'screen and (min-width: 1920px) and (max-width: 5000px)',\n 'lt-sm': 'screen and (max-width: 599px)',\n 'lt-md': 'screen and (max-width: 959px)',\n 'lt-lg': 'screen and (max-width: 1279px)',\n 'lt-xl': 'screen and (max-width: 1919px)',\n 'gt-xs': 'screen and (min-width: 600px)',\n 'gt-sm': 'screen and (min-width: 960px)',\n 'gt-md': 'screen and (min-width: 1280px)',\n 'gt-lg': 'screen and (min-width: 1920px)'\n}\n\n/**\n * TODO: Find out if the MediaObserver can return an immediate result on load\n * accurately like the native matchMedia. If not switch to another that can or\n * just implement it myself. I would rather use a well tested library for\n * something like that, since it could have a lot of affect on performance.\n */\nfunction isMediaQueryActive(query: string, fallback: MediaObserver) {\n if (window && window.matchMedia) {\n const x = window.matchMedia(mediaQueriesMap[query])\n return x.matches\n }\n return fallback.isActive(query)\n}\n\n/**\n * Observable helper for observing a single breakpoint alias with\n * `@angular/flex-layout` MediaObserver.\n */\nexport function observeMediaQuery(\n mediaObserver: MediaObserver,\n alias: MediaQueryAliases\n): Observable<boolean> {\n // console.log(alias, mediaObserver.isActive(alias), isMediaQueryActive(alias, mediaObserver))\n return mediaObserver.asObservable()\n .pipe(\n map(_ => mediaObserver.isActive(alias)),\n // startWith(mediaObserver.isActive(alias)),\n startWith(isMediaQueryActive(alias, mediaObserver)),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 })\n )\n}\n","import { inject, Injectable, InjectionToken } from '@angular/core'\nimport { MediaObserver } from '@angular/flex-layout'\nimport { Observable } from 'rxjs'\n\nimport { MediaQueryAliases } from './breakpoint-aliases'\nimport { observeMediaQuery } from './observe-media-query'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TheSeamLayoutService {\n\n /**\n * Is app a mobile-like size.\n */\n public isMobile$: Observable<boolean>\n\n constructor(\n private _media: MediaObserver\n ) {\n this.isMobile$ = this.observe('lt-sm')\n }\n\n public observe(alias: MediaQueryAliases): Observable<boolean> {\n return observeMediaQuery(this._media, alias)\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-layout.mjs","sources":["../../../projects/ui-common/layout/breakpoint-aliases.ts","../../../projects/ui-common/layout/layout.module.ts","../../../projects/ui-common/layout/observe-media-query.ts","../../../projects/ui-common/layout/layout.service.ts","../../../projects/ui-common/layout/theseam-ui-common-layout.ts"],"sourcesContent":["// TODO: Make sure the `@angular/flex-layout` breakpoints and bootstrap\n// breakpoints work the same.\n//\n// I like the more spread-out ranges in '@angular/flex-layout', but since our\n// styles are mostly based on bootstrap it may be worth it to drop down closer\n// to the bootstrap breakpoints.\n//\n// Another option is to create new aliases to blend a mix between them, if it\n// doesn't add to much complexity.\n\n/**\n * | breakpoint | mediaQuery |\n * |------------|---------------------------------------------------------|\n * | xs | 'screen and (max-width: 599px)' |\n * | sm | 'screen and (min-width: 600px) and (max-width: 959px)' |\n * | md | 'screen and (min-width: 960px) and (max-width: 1279px)' |\n * | lg | 'screen and (min-width: 1280px) and (max-width: 1919px)'|\n * | xl | 'screen and (min-width: 1920px) and (max-width: 5000px)'|\n * | | |\n * | lt-sm | 'screen and (max-width: 599px)' |\n * | lt-md | 'screen and (max-width: 959px)' |\n * | lt-lg | 'screen and (max-width: 1279px)' |\n * | lt-xl | 'screen and (max-width: 1919px)' |\n * | | |\n * | gt-xs | 'screen and (min-width: 600px)' |\n * | gt-sm | 'screen and (min-width: 960px)' |\n * | gt-md | 'screen and (min-width: 1280px)' |\n * | gt-lg | 'screen and (min-width: 1920px)' |\n */\nexport type MediaQueryAliases =\n // Breakpoint MediaQuery\n 'xs' // 'screen and (max-width: 599px)'\n | 'sm' // 'screen and (min-width: 600px) and (max-width: 959px)'\n | 'md' // 'screen and (min-width: 960px) and (max-width: 1279px)'\n | 'lg' // 'screen and (min-width: 1280px) and (max-width: 1919px)'\n | 'xl' // 'screen and (min-width: 1920px) and (max-width: 5000px)'\n | 'lt-sm' // 'screen and (max-width: 599px)'\n | 'lt-md' // 'screen and (max-width: 959px)'\n | 'lt-lg' // 'screen and (max-width: 1279px)'\n | 'lt-xl' // 'screen and (max-width: 1919px)'\n | 'gt-xs' // 'screen and (min-width: 600px)'\n | 'gt-sm' // 'screen and (min-width: 960px)'\n | 'gt-md' // 'screen and (min-width: 1280px)'\n | 'gt-lg' // 'screen and (min-width: 1920px)'\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FlexLayoutModule } from '@angular/flex-layout'\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n FlexLayoutModule\n ],\n exports: [\n FlexLayoutModule\n ]\n})\nexport class TheSeamLayoutModule { }\n","import { MediaObserver } from '@angular/flex-layout'\nimport { Observable } from 'rxjs'\nimport { distinctUntilChanged, map, shareReplay, startWith, tap } from 'rxjs/operators'\n\nimport { MediaQueryAliases } from './breakpoint-aliases'\n\nconst mediaQueriesMap: { [breakpoint: string]: string } = {\n 'xs': 'screen and (max-width: 599px)',\n 'sm': 'screen and (min-width: 600px) and (max-width: 959px)',\n 'md': 'screen and (min-width: 960px) and (max-width: 1279px)',\n 'lg': 'screen and (min-width: 1280px) and (max-width: 1919px)',\n 'xl': 'screen and (min-width: 1920px) and (max-width: 5000px)',\n 'lt-sm': 'screen and (max-width: 599px)',\n 'lt-md': 'screen and (max-width: 959px)',\n 'lt-lg': 'screen and (max-width: 1279px)',\n 'lt-xl': 'screen and (max-width: 1919px)',\n 'gt-xs': 'screen and (min-width: 600px)',\n 'gt-sm': 'screen and (min-width: 960px)',\n 'gt-md': 'screen and (min-width: 1280px)',\n 'gt-lg': 'screen and (min-width: 1920px)'\n}\n\n/**\n * TODO: Find out if the MediaObserver can return an immediate result on load\n * accurately like the native matchMedia. If not switch to another that can or\n * just implement it myself. I would rather use a well tested library for\n * something like that, since it could have a lot of affect on performance.\n */\nfunction isMediaQueryActive(query: string, fallback: MediaObserver) {\n if (window && window.matchMedia) {\n const x = window.matchMedia(mediaQueriesMap[query])\n return x.matches\n }\n return fallback.isActive(query)\n}\n\n/**\n * Observable helper for observing a single breakpoint alias with\n * `@angular/flex-layout` MediaObserver.\n */\nexport function observeMediaQuery(\n mediaObserver: MediaObserver,\n alias: MediaQueryAliases\n): Observable<boolean> {\n // console.log(alias, mediaObserver.isActive(alias), isMediaQueryActive(alias, mediaObserver))\n return mediaObserver.asObservable()\n .pipe(\n map(_ => mediaObserver.isActive(alias)),\n // startWith(mediaObserver.isActive(alias)),\n startWith(isMediaQueryActive(alias, mediaObserver)),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 })\n )\n}\n","import { Injectable } from '@angular/core'\nimport { MediaObserver } from '@angular/flex-layout'\nimport { BehaviorSubject, Observable } from 'rxjs'\nimport { shareReplay, switchMap } from 'rxjs/operators'\n\nimport { MediaQueryAliases } from './breakpoint-aliases'\nimport { observeMediaQuery } from './observe-media-query'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TheSeamLayoutService {\n\n /**\n * Observes if app is a mobile-like size.\n * Default mobile breakpoint is <= 599px,\n * use setMobileBreakpoint() to change size.\n */\n public isMobile$: Observable<boolean>\n\n private _mobileBreakpoint = new BehaviorSubject<MediaQueryAliases>('lt-sm')\n public mobileBreakpoint$ = this._mobileBreakpoint.asObservable()\n\n constructor(\n private _media: MediaObserver\n ) {\n this.isMobile$ = this.mobileBreakpoint$.pipe(\n switchMap(breakpoint => this.observe(breakpoint)),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n public observe(alias: MediaQueryAliases): Observable<boolean> {\n return observeMediaQuery(this._media, alias)\n }\n\n /**\n * Update breakpoint observed by isMobile$\n */\n public setMobileBreakpoint(alias: MediaQueryAliases) {\n this._mobileBreakpoint.next(alias)\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -39,9 +39,9 @@ class TheSeamLoadingComponent {
39
39
  }
40
40
  }
41
41
  }
42
- TheSeamLoadingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43
- TheSeamLoadingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamLoadingComponent, selector: "seam-loading", inputs: { theme: "theme" }, ngImport: i0, template: "<ngx-loading [show]=\"true\" [config]=\"_theme\"></ngx-loading>\n", styles: [":host{display:block;position:absolute;inset:0;z-index:9000}\n"], dependencies: [{ kind: "component", type: i1.NgxLoadingComponent, selector: "ngx-loading", inputs: ["config", "show", "template"] }] });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLoadingComponent, decorators: [{
42
+ TheSeamLoadingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43
+ TheSeamLoadingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TheSeamLoadingComponent, selector: "seam-loading", inputs: { theme: "theme" }, ngImport: i0, template: "<ngx-loading [show]=\"true\" [config]=\"_theme\"></ngx-loading>\n", styles: [":host{display:block;position:absolute;inset:0;z-index:9000}\n"], dependencies: [{ kind: "component", type: i1.NgxLoadingComponent, selector: "ngx-loading", inputs: ["config", "show", "template"] }] });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLoadingComponent, decorators: [{
45
45
  type: Component,
46
46
  args: [{ selector: 'seam-loading', template: "<ngx-loading [show]=\"true\" [config]=\"_theme\"></ngx-loading>\n", styles: [":host{display:block;position:absolute;inset:0;z-index:9000}\n"] }]
47
47
  }], propDecorators: { theme: [{
@@ -93,9 +93,9 @@ class TheSeamLoadingOverlayService {
93
93
  }), finalize(() => this.disable()));
94
94
  }
95
95
  }
96
- TheSeamLoadingOverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLoadingOverlayService, deps: [{ token: i1$1.Overlay }], target: i0.ɵɵFactoryTarget.Injectable });
97
- TheSeamLoadingOverlayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLoadingOverlayService });
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLoadingOverlayService, decorators: [{
96
+ TheSeamLoadingOverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLoadingOverlayService, deps: [{ token: i1$1.Overlay }], target: i0.ɵɵFactoryTarget.Injectable });
97
+ TheSeamLoadingOverlayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLoadingOverlayService });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLoadingOverlayService, decorators: [{
99
99
  type: Injectable
100
100
  }], ctorParameters: function () { return [{ type: i1$1.Overlay }]; } });
101
101
 
@@ -103,17 +103,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
103
103
  const loadingForRoot = NgxLoadingModule.forRoot(defaultThemeConfig);
104
104
  class TheSeamLoadingModule {
105
105
  }
106
- TheSeamLoadingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
107
- TheSeamLoadingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLoadingModule, declarations: [TheSeamLoadingComponent], imports: [CommonModule,
106
+ TheSeamLoadingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
107
+ TheSeamLoadingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLoadingModule, declarations: [TheSeamLoadingComponent], imports: [CommonModule,
108
108
  OverlayModule,
109
109
  PortalModule, i1.NgxLoadingModule], exports: [TheSeamLoadingComponent] });
110
- TheSeamLoadingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLoadingModule, providers: [
110
+ TheSeamLoadingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLoadingModule, providers: [
111
111
  TheSeamLoadingOverlayService
112
112
  ], imports: [CommonModule,
113
113
  OverlayModule,
114
114
  PortalModule,
115
115
  loadingForRoot] });
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamLoadingModule, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamLoadingModule, decorators: [{
117
117
  type: NgModule,
118
118
  args: [{
119
119
  declarations: [TheSeamLoadingComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-loading.mjs","sources":["../../../projects/ui-common/loading/loading-themes.ts","../../../projects/ui-common/loading/loading/loading.component.ts","../../../projects/ui-common/loading/loading/loading.component.html","../../../projects/ui-common/loading/loading-overlay.service.ts","../../../projects/ui-common/loading/loading.module.ts","../../../projects/ui-common/loading/theseam-ui-common-loading.ts"],"sourcesContent":["import { ngxLoadingAnimationTypes, NgxLoadingConfig } from '@marklb/ngx-loading'\n\nexport const defaultThemeConfig: NgxLoadingConfig = {\n animationType: ngxLoadingAnimationTypes.threeBounce,\n backdropBackgroundColour: 'rgba(0,0,0,0.3)',\n backdropBorderRadius: '0px',\n primaryColour: '#ffffff',\n secondaryColour: '#ffffff',\n tertiaryColour: '#ffffff'\n}\n\nexport const primaryThemeConfig: NgxLoadingConfig = {\n animationType: ngxLoadingAnimationTypes.threeBounce,\n backdropBackgroundColour: 'rgba(250,250,250,0.2)',\n backdropBorderRadius: '0px',\n primaryColour: 'rgba(53,126,189,0.7)',\n secondaryColour: 'rgba(53,126,189,0.7)',\n tertiaryColour: 'rgba(53,126,189,0.7)'\n}\n","import { Component, Input } from '@angular/core'\n\nimport { NgxLoadingConfig } from '@marklb/ngx-loading'\n\nimport { defaultThemeConfig, primaryThemeConfig } from '../loading-themes'\nimport type { TheSeamLoadingTheme } from '../loading.models'\n\n@Component({\n selector: 'seam-loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss']\n})\nexport class TheSeamLoadingComponent {\n\n @Input()\n set theme(value: TheSeamLoadingTheme) {\n if (value === 'primary') {\n this._theme = primaryThemeConfig\n } else {\n this._theme = defaultThemeConfig\n }\n }\n _theme: NgxLoadingConfig = defaultThemeConfig\n\n}\n","<ngx-loading [show]=\"true\" [config]=\"_theme\"></ngx-loading>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay'\nimport { ComponentPortal } from '@angular/cdk/portal'\nimport { Injectable } from '@angular/core'\nimport { Observable, throwError } from 'rxjs'\nimport { catchError, finalize, tap } from 'rxjs/operators'\n\nimport { TheSeamLoadingComponent } from './loading/loading.component'\n\n@Injectable()\nexport class TheSeamLoadingOverlayService {\n\n private _enabled = false\n\n private _overlayRef?: OverlayRef\n\n constructor(\n private _overlay: Overlay\n ) { }\n\n get enabled(): boolean {\n return this._enabled\n }\n\n public toggle(enabled?: boolean) {\n const enable = enabled === undefined ? !this.enabled : enabled\n if (enable && !this.enabled) {\n this.enable()\n } else if (!enable && this.enabled) {\n this.disable()\n }\n }\n\n public enable() {\n if (this.enabled) { return }\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: false,\n width: '100%',\n height: '100%'\n })\n this._overlayRef.attach(new ComponentPortal(TheSeamLoadingComponent))\n\n this._enabled = true\n }\n\n public disable() {\n if (!this.enabled) { return }\n\n this._overlayRef?.dispose()\n\n this._enabled = false\n }\n\n public while<T = any>(source: Observable<T>): Observable<T> {\n this.enable()\n return source\n .pipe(\n tap(() => this.disable()),\n catchError(err => {\n this.disable()\n return throwError(err)\n }),\n finalize(() => this.disable())\n )\n }\n\n}\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { NgxLoadingModule } from '@marklb/ngx-loading'\n\nimport { TheSeamLoadingOverlayService } from './loading-overlay.service'\nimport { defaultThemeConfig } from './loading-themes'\nimport { TheSeamLoadingComponent } from './loading/loading.component'\n\n// NOTE: Named export used for this because of a function calling bug in the builder.\nexport const loadingForRoot = NgxLoadingModule.forRoot(defaultThemeConfig)\n\n@NgModule({\n declarations: [TheSeamLoadingComponent],\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n loadingForRoot\n ],\n providers: [\n TheSeamLoadingOverlayService\n ],\n exports: [TheSeamLoadingComponent]\n})\nexport class TheSeamLoadingModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":";;;;;;;;;;;AAEa,MAAA,kBAAkB,GAAqB;IAClD,aAAa,EAAE,wBAAwB,CAAC,WAAW;AACnD,IAAA,wBAAwB,EAAE,iBAAiB;AAC3C,IAAA,oBAAoB,EAAE,KAAK;AAC3B,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,cAAc,EAAE,SAAS;EAC1B;AAEY,MAAA,kBAAkB,GAAqB;IAClD,aAAa,EAAE,wBAAwB,CAAC,WAAW;AACnD,IAAA,wBAAwB,EAAE,uBAAuB;AACjD,IAAA,oBAAoB,EAAE,KAAK;AAC3B,IAAA,aAAa,EAAE,sBAAsB;AACrC,IAAA,eAAe,EAAE,sBAAsB;AACvC,IAAA,cAAc,EAAE,sBAAsB;;;MCL3B,uBAAuB,CAAA;AALpC,IAAA,WAAA,GAAA;QAeE,IAAM,CAAA,MAAA,GAAqB,kBAAkB,CAAA;AAE9C,KAAA;IAVC,IACI,KAAK,CAAC,KAA0B,EAAA;QAClC,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAA;AACjC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAA;AACjC,SAAA;KACF;;oHATU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,gFCZpC,mEACA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDWa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,mEAAA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA,CAAA;8BAOpB,KAAK,EAAA,CAAA;sBADR,KAAK;;;MELK,4BAA4B,CAAA;AAMvC,IAAA,WAAA,CACU,QAAiB,EAAA;QAAjB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;QALnB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;KAMnB;AAEL,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;KACrB;AAEM,IAAA,MAAM,CAAC,OAAiB,EAAA;AAC7B,QAAA,MAAM,MAAM,GAAG,OAAO,KAAK,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;AAC9D,QAAA,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAC3B,IAAI,CAAC,MAAM,EAAE,CAAA;AACd,SAAA;AAAM,aAAA,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAClC,IAAI,CAAC,OAAO,EAAE,CAAA;AACf,SAAA;KACF;IAEM,MAAM,GAAA;QACX,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,OAAM;AAAE,SAAA;QAE5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtC,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACf,SAAA,CAAC,CAAA;QACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,uBAAuB,CAAC,CAAC,CAAA;AAErE,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;KACrB;IAEM,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAAE,OAAM;AAAE,SAAA;AAE7B,QAAA,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAA;AAE3B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;KACtB;AAEM,IAAA,KAAK,CAAU,MAAqB,EAAA;QACzC,IAAI,CAAC,MAAM,EAAE,CAAA;AACb,QAAA,OAAO,MAAM;AACV,aAAA,IAAI,CACH,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,EACzB,UAAU,CAAC,GAAG,IAAG;YACf,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;AACxB,SAAC,CAAC,EACF,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAC/B,CAAA;KACJ;;yHAvDU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;6HAA5B,4BAA4B,EAAA,CAAA,CAAA;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;;;ACGX;AACa,MAAA,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,EAAC;MAe7D,oBAAoB,CAAA;;iHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;kHAApB,oBAAoB,EAAA,YAAA,EAAA,CAZd,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAElC,YAAY;QACZ,aAAa;AACb,QAAA,YAAY,kCAMN,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAExB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EALlB,SAAA,EAAA;QACP,4BAA4B;AAC/B,KAAA,EAAA,OAAA,EAAA,CAPG,YAAY;QACZ,aAAa;QACb,YAAY;QACZ,cAAc,CAAA,EAAA,CAAA,CAAA;2FAOT,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,uBAAuB,CAAC;AACvC,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,aAAa;wBACb,YAAY;wBACZ,cAAc;AACjB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACP,4BAA4B;AAC/B,qBAAA;oBACD,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACrC,iBAAA,CAAA;;;AC1BD;;AAEG;;;;"}
1
+ {"version":3,"file":"theseam-ui-common-loading.mjs","sources":["../../../projects/ui-common/loading/loading-themes.ts","../../../projects/ui-common/loading/loading/loading.component.ts","../../../projects/ui-common/loading/loading/loading.component.html","../../../projects/ui-common/loading/loading-overlay.service.ts","../../../projects/ui-common/loading/loading.module.ts","../../../projects/ui-common/loading/theseam-ui-common-loading.ts"],"sourcesContent":["import { ngxLoadingAnimationTypes, NgxLoadingConfig } from '@marklb/ngx-loading'\n\nexport const defaultThemeConfig: NgxLoadingConfig = {\n animationType: ngxLoadingAnimationTypes.threeBounce,\n backdropBackgroundColour: 'rgba(0,0,0,0.3)',\n backdropBorderRadius: '0px',\n primaryColour: '#ffffff',\n secondaryColour: '#ffffff',\n tertiaryColour: '#ffffff'\n}\n\nexport const primaryThemeConfig: NgxLoadingConfig = {\n animationType: ngxLoadingAnimationTypes.threeBounce,\n backdropBackgroundColour: 'rgba(250,250,250,0.2)',\n backdropBorderRadius: '0px',\n primaryColour: 'rgba(53,126,189,0.7)',\n secondaryColour: 'rgba(53,126,189,0.7)',\n tertiaryColour: 'rgba(53,126,189,0.7)'\n}\n","import { Component, Input } from '@angular/core'\n\nimport { NgxLoadingConfig } from '@marklb/ngx-loading'\n\nimport { defaultThemeConfig, primaryThemeConfig } from '../loading-themes'\nimport type { TheSeamLoadingTheme } from '../loading.models'\n\n@Component({\n selector: 'seam-loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss']\n})\nexport class TheSeamLoadingComponent {\n\n @Input()\n set theme(value: TheSeamLoadingTheme) {\n if (value === 'primary') {\n this._theme = primaryThemeConfig\n } else {\n this._theme = defaultThemeConfig\n }\n }\n _theme: NgxLoadingConfig = defaultThemeConfig\n\n}\n","<ngx-loading [show]=\"true\" [config]=\"_theme\"></ngx-loading>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay'\nimport { ComponentPortal } from '@angular/cdk/portal'\nimport { Injectable } from '@angular/core'\nimport { Observable, throwError } from 'rxjs'\nimport { catchError, finalize, tap } from 'rxjs/operators'\n\nimport { TheSeamLoadingComponent } from './loading/loading.component'\n\n@Injectable()\nexport class TheSeamLoadingOverlayService {\n\n private _enabled = false\n\n private _overlayRef?: OverlayRef\n\n constructor(\n private _overlay: Overlay\n ) { }\n\n get enabled(): boolean {\n return this._enabled\n }\n\n public toggle(enabled?: boolean) {\n const enable = enabled === undefined ? !this.enabled : enabled\n if (enable && !this.enabled) {\n this.enable()\n } else if (!enable && this.enabled) {\n this.disable()\n }\n }\n\n public enable() {\n if (this.enabled) { return }\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: false,\n width: '100%',\n height: '100%'\n })\n this._overlayRef.attach(new ComponentPortal(TheSeamLoadingComponent))\n\n this._enabled = true\n }\n\n public disable() {\n if (!this.enabled) { return }\n\n this._overlayRef?.dispose()\n\n this._enabled = false\n }\n\n public while<T = any>(source: Observable<T>): Observable<T> {\n this.enable()\n return source\n .pipe(\n tap(() => this.disable()),\n catchError(err => {\n this.disable()\n return throwError(err)\n }),\n finalize(() => this.disable())\n )\n }\n\n}\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { NgxLoadingModule } from '@marklb/ngx-loading'\n\nimport { TheSeamLoadingOverlayService } from './loading-overlay.service'\nimport { defaultThemeConfig } from './loading-themes'\nimport { TheSeamLoadingComponent } from './loading/loading.component'\n\n// NOTE: Named export used for this because of a function calling bug in the builder.\nexport const loadingForRoot = NgxLoadingModule.forRoot(defaultThemeConfig)\n\n@NgModule({\n declarations: [TheSeamLoadingComponent],\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n loadingForRoot\n ],\n providers: [\n TheSeamLoadingOverlayService\n ],\n exports: [TheSeamLoadingComponent]\n})\nexport class TheSeamLoadingModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
@@ -352,9 +352,9 @@ const menuDropdownPanelOut = animation([
352
352
 
353
353
  class MenuDividerComponent {
354
354
  }
355
- MenuDividerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
356
- MenuDividerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: MenuDividerComponent, selector: "seam-menu-divider", host: { classAttribute: "dropdown-divider d-block" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuDividerComponent, decorators: [{
355
+ MenuDividerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
356
+ MenuDividerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MenuDividerComponent, selector: "seam-menu-divider", host: { classAttribute: "dropdown-divider d-block" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
357
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuDividerComponent, decorators: [{
358
358
  type: Component,
359
359
  args: [{ selector: 'seam-menu-divider', template: ``, host: {
360
360
  'class': 'dropdown-divider d-block'
@@ -471,9 +471,9 @@ class MenuItemComponent extends _seamMenuItemMixinBase {
471
471
  return this._document && this._document.activeElement === this._getHostElement();
472
472
  }
473
473
  }
474
- MenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuItemComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.FocusMonitor }, { token: i0.ChangeDetectorRef }, { token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
475
- MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: MenuItemComponent, selector: "[seamMenuItem]", inputs: { disabled: "disabled", role: "role", icon: "icon", iconClass: "iconClass", sublevelIcon: "sublevelIcon", subLevelIconClass: "subLevelIconClass", badgeText: "badgeText", badgeTheme: "badgeTheme" }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "class.seam-menu-item-highlighted": "_highlighted", "class.seam-menu-item-submenu-trigger": "_triggersSubmenu", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" }, classAttribute: "seam-menu-item dropdown-item" }, exportAs: ["seamMenuItem"], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\" class=\"ml-2\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -2px\"\n >{{ badgeText }}</span>\n </div>\n\n <div class=\"d-flex flex-grow-1 justify-content-end\">\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n </div>\n</div>\n", styles: [":host.cdk-mouse-focused:not(:hover){background:transparent}:host[aria-expanded]{color:#16181b;text-decoration:none;background-color:#e9ecef}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
476
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuItemComponent, decorators: [{
474
+ MenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuItemComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.FocusMonitor }, { token: i0.ChangeDetectorRef }, { token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
475
+ MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MenuItemComponent, selector: "[seamMenuItem]", inputs: { disabled: "disabled", role: "role", icon: "icon", iconClass: "iconClass", sublevelIcon: "sublevelIcon", subLevelIconClass: "subLevelIconClass", badgeText: "badgeText", badgeTheme: "badgeTheme" }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "class.seam-menu-item-highlighted": "_highlighted", "class.seam-menu-item-submenu-trigger": "_triggersSubmenu", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" }, classAttribute: "seam-menu-item dropdown-item" }, exportAs: ["seamMenuItem"], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\" class=\"ml-2\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -2px\"\n >{{ badgeText }}</span>\n </div>\n\n <div class=\"d-flex flex-grow-1 justify-content-end\">\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n </div>\n</div>\n", styles: [":host.cdk-mouse-focused:not(:hover){background:transparent}:host[aria-expanded]{color:#16181b;text-decoration:none;background-color:#e9ecef}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
476
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuItemComponent, decorators: [{
477
477
  type: Component,
478
478
  args: [{ selector: '[seamMenuItem]', exportAs: 'seamMenuItem', inputs: ['disabled'], host: {
479
479
  '[attr.role]': 'role',
@@ -675,14 +675,14 @@ class MenuComponent {
675
675
  }
676
676
  }
677
677
  }
678
- MenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
679
- MenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: MenuComponent, selector: "seam-menu", inputs: { menuClass: "menuClass", baseWidth: "baseWidth", animationType: "animationType" }, outputs: { closed: "closed" }, providers: [LIB_MENU], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], exportAs: ["seamMenu"], ngImport: i0, template: "<ng-template>\n <div class=\"seam-menu-container\"\n @slideDown\n (@slideDown.start)=\"_onAnimationStart($event)\"\n (@slideDown.done)=\"_onAnimationDone($event)\"\n [class.seam-menu-anim--slide]=\"animationType==='slide'\"\n [class.seam-menu-anim--fade]=\"animationType==='fade'\"\n [id]=\"panelId\">\n <div class=\"dropdown-menu show position-static{{ menuClass ? ' ' + menuClass : '' }}\"\n [style.width]=\"_menuWidth$ | async\"\n [class.pt-0]=\"hasHeader$ | async\"\n [class.pb-0]=\"hasFooter$ | async\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"_dropdownMenuClick($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".seam-menu-container.seam-menu-anim--slide{overflow:hidden}.seam-menu-container.ng-animating,.dropdown-menu.ng-animating{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}\n"], dependencies: [{ kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [
678
+ MenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
679
+ MenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MenuComponent, selector: "seam-menu", inputs: { menuClass: "menuClass", baseWidth: "baseWidth", animationType: "animationType" }, outputs: { closed: "closed" }, providers: [LIB_MENU], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], exportAs: ["seamMenu"], ngImport: i0, template: "<ng-template>\n <div class=\"seam-menu-container\"\n @slideDown\n (@slideDown.start)=\"_onAnimationStart($event)\"\n (@slideDown.done)=\"_onAnimationDone($event)\"\n [class.seam-menu-anim--slide]=\"animationType==='slide'\"\n [class.seam-menu-anim--fade]=\"animationType==='fade'\"\n [id]=\"panelId\">\n <div class=\"dropdown-menu show position-static{{ menuClass ? ' ' + menuClass : '' }}\"\n [style.width]=\"_menuWidth$ | async\"\n [class.pt-0]=\"hasHeader$ | async\"\n [class.pb-0]=\"hasFooter$ | async\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"_dropdownMenuClick($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".seam-menu-container.seam-menu-anim--slide{overflow:hidden}.seam-menu-container.ng-animating,.dropdown-menu.ng-animating{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}\n"], dependencies: [{ kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [
680
680
  trigger('slideDown', [
681
681
  transition(':enter', useAnimation(menuDropdownPanelIn)),
682
682
  transition(':leave', useAnimation(menuDropdownPanelOut)),
683
683
  ])
684
684
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
685
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuComponent, decorators: [{
685
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuComponent, decorators: [{
686
686
  type: Component,
687
687
  args: [{ selector: 'seam-menu', providers: [LIB_MENU], animations: [
688
688
  trigger('slideDown', [
@@ -864,6 +864,7 @@ class MenuToggleDirective {
864
864
  overlayY: 'bottom',
865
865
  },
866
866
  ];
867
+ this.menuToggle = new EventEmitter();
867
868
  // TODO: Figure out how to automatically handle this. I think the offset can
868
869
  // be calculated using the first item's offsetTop and borderTop. The problem
869
870
  // is that I was only able to calculate it after the animation had started, so
@@ -923,6 +924,7 @@ class MenuToggleDirective {
923
924
  // this._overlayRef.backdropClick().subscribe(v => {
924
925
  // console.log('backdropClick', v)
925
926
  // })
927
+ this.menuToggle.emit(true);
926
928
  }
927
929
  /** The text direction of the containing app. */
928
930
  get dir() {
@@ -951,6 +953,7 @@ class MenuToggleDirective {
951
953
  this.menu?.closed.emit();
952
954
  }
953
955
  this._active = false;
956
+ this.menuToggle.emit(false);
954
957
  }
955
958
  menuOpen() {
956
959
  return (this._overlayRef && this._overlayRef.hasAttached()) ?? false;
@@ -1056,12 +1059,12 @@ class MenuToggleDirective {
1056
1059
  });
1057
1060
  }
1058
1061
  }
1059
- MenuToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuToggleDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$1.Overlay }, { token: i1.FocusMonitor }, { token: THESEAM_MENU_PANEL, optional: true }, { token: MenuItemComponent, optional: true, self: true }, { token: i4.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1060
- MenuToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: MenuToggleDirective, selector: "[seamMenuToggle]", inputs: { menu: ["seamMenuToggle", "menu"], positions: "positions", seamMenuTogglePositionsOffsetY: "seamMenuTogglePositionsOffsetY" }, outputs: { menuOpened: "menuOpened", menuClosed: "menuClosed" }, host: { attributes: { "aria-haspopup": "true" }, listeners: { "mousedown": "_onMouseDown($event)", "keydown": "_onKeydown($event)", "click": "_onClick($event)", "document:keydown": "_onDocumentKeydown($event)" }, properties: { "attr.aria-expanded": "menuOpen() || null", "attr.aria-controls": "menuOpen() ? menu.panelId : null" }, classAttribute: "seam-menu-toggle" }, exportAs: ["seamMenuToggle"], ngImport: i0 });
1062
+ MenuToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuToggleDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$1.Overlay }, { token: i1.FocusMonitor }, { token: THESEAM_MENU_PANEL, optional: true }, { token: MenuItemComponent, optional: true, self: true }, { token: i4.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1063
+ MenuToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: MenuToggleDirective, selector: "[seamMenuToggle]", inputs: { menu: ["seamMenuToggle", "menu"], positions: "positions", seamMenuTogglePositionsOffsetY: "seamMenuTogglePositionsOffsetY" }, outputs: { menuToggle: "menuToggle", menuOpened: "menuOpened", menuClosed: "menuClosed" }, host: { attributes: { "aria-haspopup": "true" }, listeners: { "mousedown": "_onMouseDown($event)", "keydown": "_onKeydown($event)", "click": "_onClick($event)", "document:keydown": "_onDocumentKeydown($event)" }, properties: { "attr.aria-expanded": "menuOpen() || null", "attr.aria-controls": "menuOpen() ? menu.panelId : null" }, classAttribute: "seam-menu-toggle" }, exportAs: ["seamMenuToggle"], ngImport: i0 });
1061
1064
  __decorate([
1062
1065
  InputNumber(0)
1063
1066
  ], MenuToggleDirective.prototype, "seamMenuTogglePositionsOffsetY", void 0);
1064
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuToggleDirective, decorators: [{
1067
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuToggleDirective, decorators: [{
1065
1068
  type: Directive,
1066
1069
  args: [{
1067
1070
  selector: '[seamMenuToggle]',
@@ -1090,6 +1093,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1090
1093
  args: ['seamMenuToggle']
1091
1094
  }], positions: [{
1092
1095
  type: Input
1096
+ }], menuToggle: [{
1097
+ type: Output
1093
1098
  }], seamMenuTogglePositionsOffsetY: [{
1094
1099
  type: Input
1095
1100
  }], menuOpened: [{
@@ -1135,9 +1140,9 @@ class MenuFooterActionComponent {
1135
1140
  return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a';
1136
1141
  }
1137
1142
  }
1138
- MenuFooterActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuFooterActionComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1139
- MenuFooterActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: MenuFooterActionComponent, selector: "button[seamMenuFooterAction],a[seamMenuFooterAction]", inputs: { type: "type" }, host: { properties: { "attr.type": "this._attrType", "class.btn": "this._classBtn", "class.btn-link": "this._classBtnLink", "style.padding.px": "this._stylePadding", "style.border.px": "this._styleBorder", "style.display.px": "this._styleDisplay" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuFooterActionComponent, decorators: [{
1143
+ MenuFooterActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuFooterActionComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1144
+ MenuFooterActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MenuFooterActionComponent, selector: "button[seamMenuFooterAction],a[seamMenuFooterAction]", inputs: { type: "type" }, host: { properties: { "attr.type": "this._attrType", "class.btn": "this._classBtn", "class.btn-link": "this._classBtnLink", "style.padding.px": "this._stylePadding", "style.border.px": "this._styleBorder", "style.display.px": "this._styleDisplay" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuFooterActionComponent, decorators: [{
1141
1146
  type: Component,
1142
1147
  args: [{ selector: 'button[seamMenuFooterAction],a[seamMenuFooterAction]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
1143
1148
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _attrType: [{
@@ -1177,9 +1182,9 @@ class MenuFooterComponent {
1177
1182
  }
1178
1183
  }
1179
1184
  }
1180
- MenuFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuFooterComponent, deps: [{ token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1181
- MenuFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: MenuFooterComponent, selector: "seam-menu-footer", host: { classAttribute: "d-flex flex-column text-center bg-light border-top rounded-bottom py-2" }, ngImport: i0, template: "<ng-content select=\"a[seamMenuFooterAction],button[seamMenuFooterAction]\"></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuFooterComponent, decorators: [{
1185
+ MenuFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuFooterComponent, deps: [{ token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1186
+ MenuFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MenuFooterComponent, selector: "seam-menu-footer", host: { classAttribute: "d-flex flex-column text-center bg-light border-top rounded-bottom py-2" }, ngImport: i0, template: "<ng-content select=\"a[seamMenuFooterAction],button[seamMenuFooterAction]\"></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuFooterComponent, decorators: [{
1183
1188
  type: Component,
1184
1189
  args: [{ selector: 'seam-menu-footer', host: {
1185
1190
  'class': 'd-flex flex-column text-center bg-light border-top rounded-bottom py-2'
@@ -1206,9 +1211,9 @@ class MenuHeaderComponent {
1206
1211
  }
1207
1212
  }
1208
1213
  }
1209
- MenuHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuHeaderComponent, deps: [{ token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1210
- MenuHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: MenuHeaderComponent, selector: "seam-menu-header", host: { classAttribute: "d-flex flex-column bg-light border-bottom rounded-top py-2 mb-2" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1211
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuHeaderComponent, decorators: [{
1214
+ MenuHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuHeaderComponent, deps: [{ token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1215
+ MenuHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MenuHeaderComponent, selector: "seam-menu-header", host: { classAttribute: "d-flex flex-column bg-light border-bottom rounded-top py-2 mb-2" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MenuHeaderComponent, decorators: [{
1212
1217
  type: Component,
1213
1218
  args: [{ selector: 'seam-menu-header', host: {
1214
1219
  'class': 'd-flex flex-column bg-light border-bottom rounded-top py-2 mb-2'
@@ -1222,8 +1227,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1222
1227
 
1223
1228
  class TheSeamMenuModule {
1224
1229
  }
1225
- TheSeamMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1226
- TheSeamMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamMenuModule, declarations: [MenuComponent,
1230
+ TheSeamMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1231
+ TheSeamMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TheSeamMenuModule, declarations: [MenuComponent,
1227
1232
  MenuToggleDirective,
1228
1233
  MenuItemComponent,
1229
1234
  MenuDividerComponent,
@@ -1240,11 +1245,11 @@ TheSeamMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
1240
1245
  MenuFooterComponent,
1241
1246
  MenuFooterActionComponent,
1242
1247
  MenuHeaderComponent] });
1243
- TheSeamMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamMenuModule, imports: [CommonModule,
1248
+ TheSeamMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamMenuModule, imports: [CommonModule,
1244
1249
  OverlayModule,
1245
1250
  TheSeamIconModule, TheSeamIconModule,
1246
1251
  OverlayModule] });
1247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamMenuModule, decorators: [{
1252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamMenuModule, decorators: [{
1248
1253
  type: NgModule,
1249
1254
  args: [{
1250
1255
  declarations: [