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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (668) hide show
  1. package/breadcrumbs/breadcrumbs/breadcrumbs.component.d.ts +1 -3
  2. package/card/card-body/card-body.component.d.ts +2 -4
  3. package/card/card-footer/card-footer.component.d.ts +1 -4
  4. package/card/card-header/card-header.component.d.ts +1 -4
  5. package/card/card.component.d.ts +1 -4
  6. package/carousel/carousel-slide.directive.d.ts +8 -0
  7. package/carousel/carousel.component.d.ts +85 -0
  8. package/carousel/carousel.module.d.ts +11 -0
  9. package/carousel/index.d.ts +5 -0
  10. package/carousel/public-api.d.ts +3 -0
  11. package/checkbox/checkbox.component.d.ts +2 -4
  12. package/core/common-behaviors/active.d.ts +1 -1
  13. package/core/common-behaviors/disabled.d.ts +1 -1
  14. package/core/common-behaviors/initialized.d.ts +1 -1
  15. package/data-filters/data-filter.d.ts +1 -1
  16. package/datatable/datatable-column/datatable-column.component.d.ts +2 -3
  17. package/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.d.ts +1 -3
  18. package/datatable/datatable-export-button/datatable-export-button.component.d.ts +1 -3
  19. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -5
  20. package/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.d.ts +1 -4
  21. package/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.d.ts +1 -4
  22. package/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.d.ts +1 -4
  23. package/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.d.ts +1 -4
  24. package/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.d.ts +1 -3
  25. package/datatable/directives/datatable-action-menu-item.directive.d.ts +2 -4
  26. package/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.d.ts +1 -3
  27. package/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.d.ts +3 -4
  28. package/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.d.ts +1 -1
  29. package/datatable-dynamic/datatable-dynamic.component.d.ts +1 -4
  30. package/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.d.ts +3 -4
  31. package/dynamic/action/modal/dynamic-action-modal-def.d.ts +1 -1
  32. package/esm2020/asset-reader/asset-reader-helper.service.mjs +7 -5
  33. package/esm2020/asset-reader/asset-reader.module.mjs +4 -4
  34. package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +3 -3
  35. package/esm2020/breadcrumbs/breadcrumb.mjs +1 -1
  36. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +4 -5
  37. package/esm2020/breadcrumbs/breadcrumbs-resolver.mjs +1 -1
  38. package/esm2020/breadcrumbs/breadcrumbs.module.mjs +5 -5
  39. package/esm2020/breadcrumbs/breadcrumbs.service.mjs +7 -7
  40. package/esm2020/buttons/badge-button/badge-button.component.mjs +9 -7
  41. package/esm2020/buttons/button/button.component.mjs +12 -10
  42. package/esm2020/buttons/buttons.module.mjs +4 -4
  43. package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +4 -4
  44. package/esm2020/buttons/toggle-button/toggle-button.component.mjs +6 -6
  45. package/esm2020/card/card-action/card-action.component.mjs +4 -4
  46. package/esm2020/card/card-body/card-body.component.mjs +5 -6
  47. package/esm2020/card/card-footer/card-footer.component.mjs +5 -8
  48. package/esm2020/card/card-header/card-header.component.mjs +5 -7
  49. package/esm2020/card/card.component.mjs +5 -7
  50. package/esm2020/card/card.module.mjs +4 -4
  51. package/esm2020/carousel/carousel-slide.directive.mjs +16 -0
  52. package/esm2020/carousel/carousel.component.mjs +211 -0
  53. package/esm2020/carousel/carousel.module.mjs +38 -0
  54. package/esm2020/carousel/public-api.mjs +4 -0
  55. package/esm2020/carousel/theseam-ui-common-carousel.mjs +5 -0
  56. package/esm2020/checkbox/checkbox.component.mjs +5 -6
  57. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  58. package/esm2020/checkbox/testing/checkbox.harness.mjs +1 -1
  59. package/esm2020/checkbox/testing/index.mjs +1 -1
  60. package/esm2020/confirm-dialog/confirm-click.directive.mjs +6 -6
  61. package/esm2020/confirm-dialog/confirm-dialog.component.mjs +3 -3
  62. package/esm2020/confirm-dialog/confirm-dialog.module.mjs +4 -4
  63. package/esm2020/confirm-dialog/confirm-dialog.service.mjs +3 -3
  64. package/esm2020/core/common-behaviors/active.mjs +2 -1
  65. package/esm2020/core/common-behaviors/disabled.mjs +2 -1
  66. package/esm2020/core/common-behaviors/initialized.mjs +2 -1
  67. package/esm2020/core/common-behaviors/tabindex.mjs +2 -1
  68. package/esm2020/core/input-decorators/input-boolean.decorator.mjs +4 -5
  69. package/esm2020/core/input-decorators/input-number.decorator.mjs +4 -5
  70. package/esm2020/data-exporter/data-exporter.module.mjs +4 -4
  71. package/esm2020/data-exporter/exporters/csv-exporter.mjs +3 -3
  72. package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +3 -3
  73. package/esm2020/data-filters/data-filter.mjs +1 -1
  74. package/esm2020/data-filters/data-filters.module.mjs +4 -4
  75. package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +5 -5
  76. package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +6 -6
  77. package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +11 -8
  78. package/esm2020/datatable/datatable/datatable.component.mjs +11 -6
  79. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +3 -3
  80. package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +5 -4
  81. package/esm2020/datatable/datatable-column/datatable-column.component.mjs +4 -5
  82. package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +3 -3
  83. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +4 -5
  84. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +5 -5
  85. package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +3 -3
  86. package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +5 -5
  87. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +9 -13
  88. package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +5 -8
  89. package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +5 -8
  90. package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +5 -8
  91. package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +5 -8
  92. package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +4 -5
  93. package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +3 -3
  94. package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +5 -5
  95. package/esm2020/datatable/datatable.module.mjs +4 -4
  96. package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +5 -6
  97. package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +3 -3
  98. package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +3 -3
  99. package/esm2020/datatable/directives/datatable-filter.directive.mjs +3 -3
  100. package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +3 -3
  101. package/esm2020/datatable/models/columns-alteration.mjs +1 -1
  102. package/esm2020/datatable/models/columns-alterations/order.columns-alteration.mjs +3 -1
  103. package/esm2020/datatable/models/datatable-gql-data-source.mjs +1 -1
  104. package/esm2020/datatable/models/internal-column-props.mjs +1 -1
  105. package/esm2020/datatable/models/sort-item.mjs +1 -1
  106. package/esm2020/datatable/services/columns-alterations-manager.service.mjs +4 -4
  107. package/esm2020/datatable/services/columns-manager.service.mjs +5 -5
  108. package/esm2020/datatable/services/datatable-column-changes.service.mjs +3 -3
  109. package/esm2020/datatable/services/datatable-preferences.service.mjs +5 -4
  110. package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +5 -5
  111. package/esm2020/datatable/utils/map-columns-alterations-states.mjs +4 -1
  112. package/esm2020/datatable/utils/set-column-defaults.mjs +2 -2
  113. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +5 -6
  114. package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +4 -4
  115. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +6 -7
  116. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.mjs +1 -1
  117. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +4 -6
  118. package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +4 -4
  119. package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +6 -6
  120. package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +7 -7
  121. package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +6 -6
  122. package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +11 -8
  123. package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +6 -5
  124. package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +4 -4
  125. package/esm2020/dynamic/action/modal/dynamic-action-modal-def.mjs +1 -1
  126. package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +4 -4
  127. package/esm2020/dynamic/dynamic-value-helper.service.mjs +5 -4
  128. package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +4 -4
  129. package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +5 -5
  130. package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +4 -4
  131. package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +9 -9
  132. package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +5 -8
  133. package/esm2020/footer-bar/footer-bar.module.mjs +5 -5
  134. package/esm2020/form-field/form-field-error.directive.mjs +4 -4
  135. package/esm2020/form-field/form-field-help-text.directive.mjs +3 -3
  136. package/esm2020/form-field/form-field-label-tpl.directive.mjs +3 -3
  137. package/esm2020/form-field/form-field-required-indicator.component.mjs +4 -4
  138. package/esm2020/form-field/form-field.component.mjs +5 -5
  139. package/esm2020/form-field/form-field.module.mjs +4 -4
  140. package/esm2020/form-field/input.directive.mjs +10 -9
  141. package/esm2020/form-field/testing/form-field-required-indicator.harness.mjs +1 -1
  142. package/esm2020/form-field/testing/index.mjs +1 -1
  143. package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +5 -7
  144. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +4 -4
  145. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +3 -3
  146. package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +8 -8
  147. package/esm2020/form-field-error/form-field-error.module.mjs +4 -4
  148. package/esm2020/framework/base-layout/base-layout.component.mjs +5 -4
  149. package/esm2020/framework/base-layout/base-layout.module.mjs +5 -5
  150. package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +3 -3
  151. package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +3 -3
  152. package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +3 -3
  153. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +3 -3
  154. package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +3 -3
  155. package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +3 -3
  156. package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +3 -3
  157. package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +5 -7
  158. package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +4 -5
  159. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +7 -7
  160. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +6 -5
  161. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +4 -4
  162. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +7 -5
  163. package/esm2020/framework/dashboard/dashboard.component.mjs +5 -5
  164. package/esm2020/framework/dashboard/dashboard.module.mjs +4 -4
  165. package/esm2020/framework/dynamic-router/dynamic-route-def.mjs +1 -1
  166. package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +5 -5
  167. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-route-animations.mjs +1 -1
  168. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +5 -6
  169. package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +5 -6
  170. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +3 -3
  171. package/esm2020/framework/schema-form/schema-form-framework.mjs +3 -3
  172. package/esm2020/framework/schema-form/schema-form.module.mjs +4 -4
  173. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +3 -3
  174. package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +4 -4
  175. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +3 -3
  176. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +3 -3
  177. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +3 -3
  178. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +3 -3
  179. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +5 -4
  180. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +5 -5
  181. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +5 -6
  182. package/esm2020/framework/side-nav/side-nav-utils.mjs +2 -1
  183. package/esm2020/framework/side-nav/side-nav.component.mjs +6 -7
  184. package/esm2020/framework/side-nav/side-nav.module.mjs +4 -4
  185. package/esm2020/framework/side-nav/side-nav.service.mjs +3 -3
  186. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +3 -3
  187. package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +3 -3
  188. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +4 -6
  189. package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +3 -3
  190. package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +5 -7
  191. package/esm2020/framework/top-bar/top-bar.component.mjs +4 -6
  192. package/esm2020/framework/top-bar/top-bar.module.mjs +4 -4
  193. package/esm2020/google-maps/google-maps/google-maps.component.mjs +53 -32
  194. package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +3 -3
  195. package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +3 -3
  196. package/esm2020/google-maps/google-maps-contextmenu.mjs +9 -8
  197. package/esm2020/google-maps/google-maps-controls.service.mjs +3 -3
  198. package/esm2020/google-maps/google-maps-feature-helpers.mjs +13 -1
  199. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +9 -10
  200. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +9 -9
  201. package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +6 -6
  202. package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +6 -6
  203. package/esm2020/google-maps/google-maps.module.mjs +8 -6
  204. package/esm2020/google-maps/google-maps.service.mjs +103 -32
  205. package/esm2020/google-maps/map-control.component.mjs +3 -3
  206. package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +4 -4
  207. package/esm2020/google-maps/map-value-manager.service.mjs +3 -3
  208. package/esm2020/graphql/datatable/datatable-graphql-query-ref.mjs +1 -27
  209. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +4 -4
  210. package/esm2020/graphql/datatable/datatable-helpers.mjs +2 -2
  211. package/esm2020/graphql/datatable/map-filter-states.mjs +2 -1
  212. package/esm2020/graphql/utils/inline-variables.mjs +2 -1
  213. package/esm2020/graphql/utils/parse-hints.mjs +3 -3
  214. package/esm2020/graphql/utils/to-gql.mjs +3 -3
  215. package/esm2020/icon/icon/icon.component.mjs +5 -5
  216. package/esm2020/icon/icon-btn/icon-btn.component.mjs +4 -5
  217. package/esm2020/icon/icon-notification/icon-notification.component.mjs +3 -3
  218. package/esm2020/icon/icon.module.mjs +4 -4
  219. package/esm2020/icon/utils/get-known-icon.mjs +71 -71
  220. package/esm2020/layout/breakpoint-aliases.mjs +1 -1
  221. package/esm2020/layout/layout.module.mjs +4 -4
  222. package/esm2020/layout/layout.service.mjs +3 -3
  223. package/esm2020/layout/observe-media-query.mjs +1 -1
  224. package/esm2020/loading/loading/loading.component.mjs +8 -9
  225. package/esm2020/loading/loading-overlay.service.mjs +3 -3
  226. package/esm2020/loading/loading.module.mjs +4 -4
  227. package/esm2020/menu/menu-divider.component.mjs +3 -3
  228. package/esm2020/menu/menu-footer/menu-footer.component.mjs +3 -3
  229. package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +4 -4
  230. package/esm2020/menu/menu-header/menu-header.component.mjs +3 -3
  231. package/esm2020/menu/menu-item.component.mjs +44 -17
  232. package/esm2020/menu/menu-toggle.directive.mjs +203 -44
  233. package/esm2020/menu/menu.component.mjs +39 -16
  234. package/esm2020/menu/menu.module.mjs +4 -4
  235. package/esm2020/modal/directives/modal-close.directive.mjs +3 -3
  236. package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +3 -3
  237. package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +3 -3
  238. package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +3 -3
  239. package/esm2020/modal/directives/modal-title.directive.mjs +3 -3
  240. package/esm2020/modal/directives/modal.directive.mjs +5 -5
  241. package/esm2020/modal/modal/modal.component.mjs +6 -7
  242. package/esm2020/modal/modal-body/modal-body.component.mjs +5 -7
  243. package/esm2020/modal/modal-config.mjs +1 -1
  244. package/esm2020/modal/modal-container/modal-container.component.mjs +4 -4
  245. package/esm2020/modal/modal-footer/modal-footer.component.mjs +5 -7
  246. package/esm2020/modal/modal-header/modal-header.component.mjs +5 -7
  247. package/esm2020/modal/modal-ref.mjs +1 -1
  248. package/esm2020/modal/modal.module.mjs +4 -4
  249. package/esm2020/modal/modal.service.mjs +26 -23
  250. package/esm2020/modal/route-modal/route-modal.component.mjs +4 -5
  251. package/esm2020/popover/popover/popover.component.mjs +3 -3
  252. package/esm2020/popover/popover.directive.mjs +4 -4
  253. package/esm2020/popover/popover.module.mjs +5 -5
  254. package/esm2020/progress/progress-circle/progress-circle.component.mjs +10 -10
  255. package/esm2020/progress/progress.module.mjs +4 -4
  256. package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +4 -5
  257. package/esm2020/scrollbar/overlay-scrollbars.service.mjs +4 -4
  258. package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
  259. package/esm2020/services/asset-loader.service.mjs +5 -6
  260. package/esm2020/services/font-loader.service.mjs +5 -6
  261. package/esm2020/services/router-helpers.service.mjs +3 -3
  262. package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +3 -3
  263. package/esm2020/shared/directives/auto-focus.directive.mjs +3 -3
  264. package/esm2020/shared/directives/click-outside.directive.mjs +3 -3
  265. package/esm2020/shared/directives/disable-control.directive.mjs +3 -3
  266. package/esm2020/shared/directives/elem-resized.directive.mjs +5 -5
  267. package/esm2020/shared/directives/hover-class-toggle.directive.mjs +4 -4
  268. package/esm2020/shared/directives/hover-class.directive.mjs +3 -3
  269. package/esm2020/shared/directives/ng-select-extra.directive.mjs +7 -7
  270. package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +5 -5
  271. package/esm2020/shared/pipes/mask-chars.pipe.mjs +3 -3
  272. package/esm2020/shared/pipes/truncate.pipe.mjs +3 -3
  273. package/esm2020/shared/shared.module.mjs +4 -4
  274. package/esm2020/storage/local-storage.service.mjs +8 -8
  275. package/esm2020/storage/localstorage-memory.mjs +4 -4
  276. package/esm2020/story-helpers/arg-type-helpers.mjs +1 -1
  277. package/esm2020/story-helpers/initial-route.service.mjs +3 -3
  278. package/esm2020/story-helpers/on-story-bootstrapped-trigger.mjs +2 -1
  279. package/esm2020/story-helpers/public-api.mjs +2 -2
  280. package/esm2020/story-helpers/story-empty-with-route.component.mjs +3 -3
  281. package/esm2020/story-helpers/story-empty.component.mjs +3 -3
  282. package/esm2020/story-helpers/story-helper-components.module.mjs +4 -4
  283. package/esm2020/story-helpers/story-initial-route.mjs +4 -4
  284. package/esm2020/story-helpers/story-modal-container.component.mjs +4 -4
  285. package/esm2020/story-helpers/story-toastr.service.mjs +3 -3
  286. package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +5 -5
  287. package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +5 -4
  288. package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +5 -7
  289. package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +5 -6
  290. package/esm2020/tabbed/tabbed.component.mjs +4 -4
  291. package/esm2020/tabbed/tabbed.module.mjs +4 -4
  292. package/esm2020/tabbed/tabbed.service.mjs +5 -5
  293. package/esm2020/table/table/table.component.mjs +5 -6
  294. package/esm2020/table/table.module.mjs +4 -4
  295. package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +5 -5
  296. package/esm2020/table-cell-type/table-cell-type-export-props.mjs +1 -1
  297. package/esm2020/table-cell-type/table-cell-type-models.mjs +1 -1
  298. package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +5 -6
  299. package/esm2020/table-cell-type/table-cell-type.module.mjs +4 -4
  300. package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +12 -12
  301. package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +8 -12
  302. package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +14 -14
  303. package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +10 -10
  304. package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +14 -14
  305. package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +6 -7
  306. package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +11 -10
  307. package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +7 -8
  308. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +11 -8
  309. package/esm2020/table-cell-types/table-cell-types.module.mjs +4 -4
  310. package/esm2020/tel-input/intl-tel-input.mjs +2 -2
  311. package/esm2020/tel-input/phone-number.pipe.mjs +3 -3
  312. package/esm2020/tel-input/tel-input/tel-input.component.mjs +5 -6
  313. package/esm2020/tel-input/tel-input.directive.mjs +4 -4
  314. package/esm2020/tel-input/tel-input.module.mjs +4 -4
  315. package/esm2020/tel-input/utils/add-country-code.mjs +4 -4
  316. package/esm2020/tel-input/utils/process-country-codes.mjs +4 -7
  317. package/esm2020/testing/story-expect.mjs +2 -1
  318. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +5 -6
  319. package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +4 -5
  320. package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +12 -13
  321. package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +3 -3
  322. package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +3 -3
  323. package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +3 -3
  324. package/esm2020/tiled-select/testing/index.mjs +1 -1
  325. package/esm2020/tiled-select/tiled-select.module.mjs +4 -4
  326. package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +5 -8
  327. package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +3 -3
  328. package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +3 -3
  329. package/esm2020/toggle-edit/toggle-edit.component.mjs +7 -7
  330. package/esm2020/toggle-edit/toggle-edit.module.mjs +4 -4
  331. package/esm2020/toggle-group/toggle-group-option.directive.mjs +3 -3
  332. package/esm2020/toggle-group/toggle-group.directive.mjs +6 -6
  333. package/esm2020/toggle-group/toggle-group.module.mjs +4 -4
  334. package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +5 -5
  335. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +5 -8
  336. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +5 -4
  337. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +4 -4
  338. package/esm2020/utils/array-move.mjs +1 -1
  339. package/esm2020/utils/cdk/get-closest-widget-cdk-drag.mjs +3 -3
  340. package/esm2020/utils/file-utils.mjs +2 -2
  341. package/esm2020/utils/form/get-control-path.mjs +6 -5
  342. package/esm2020/utils/geo-json/close-polygons.mjs +38 -0
  343. package/esm2020/utils/geo-json/geo-json-to-area.mjs +3 -3
  344. package/esm2020/utils/geo-json/is-only-geometry-types.validator.mjs +1 -1
  345. package/esm2020/utils/geo-json/min-max-points.validator.mjs +5 -5
  346. package/esm2020/utils/geo-json/read-geo-file.mjs +3 -2
  347. package/esm2020/utils/has-property.mjs +2 -2
  348. package/esm2020/utils/load-style-sheet.mjs +2 -2
  349. package/esm2020/utils/load-style.mjs +2 -2
  350. package/esm2020/utils/obj-utils.mjs +2 -2
  351. package/esm2020/utils/polling-ticker.mjs +2 -2
  352. package/esm2020/utils/public-api.mjs +2 -1
  353. package/esm2020/utils/router/operators/activated-routes-with-data-property.mjs +2 -2
  354. package/esm2020/utils/router/route-snapshot-path-full.mjs +2 -2
  355. package/esm2020/utils/router/route-snapshot-path-relative.mjs +2 -2
  356. package/esm2020/utils/router/will-have-data-prop.mjs +3 -3
  357. package/esm2020/utils/subscriber-count.mjs +2 -1
  358. package/esm2020/utils/toggle-attribute.mjs +6 -5
  359. package/esm2020/utils/wait-on-condition-async.mjs +5 -5
  360. package/esm2020/vertical-list-filter/public-api.mjs +3 -0
  361. package/esm2020/vertical-list-filter/testing/index.mjs +2 -0
  362. package/esm2020/vertical-list-filter/testing/vertical-list-filter.harness.mjs +28 -0
  363. package/esm2020/vertical-list-filter/theseam-ui-common-vertical-list-filter.mjs +5 -0
  364. package/esm2020/vertical-list-filter/vertical-list-filter.component.mjs +52 -0
  365. package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +4 -4
  366. package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +4 -4
  367. package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +5 -4
  368. package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +4 -4
  369. package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +5 -4
  370. package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +4 -4
  371. package/esm2020/widget/directives/widget-drag-handle.directive.mjs +7 -7
  372. package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +3 -3
  373. package/esm2020/widget/directives/widget-title-tpl.directive.mjs +3 -3
  374. package/esm2020/widget/widget/widget.component.mjs +56 -35
  375. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +5 -8
  376. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +4 -4
  377. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +5 -8
  378. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +4 -4
  379. package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +3 -3
  380. package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +4 -4
  381. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +6 -7
  382. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +4 -4
  383. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +5 -7
  384. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +4 -4
  385. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +5 -8
  386. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +4 -4
  387. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +5 -5
  388. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +4 -4
  389. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +3 -3
  390. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +16 -19
  391. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +5 -7
  392. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +4 -4
  393. package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +5 -5
  394. package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +4 -4
  395. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +6 -9
  396. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +5 -6
  397. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +5 -8
  398. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +5 -5
  399. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +9 -8
  400. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +10 -10
  401. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +5 -8
  402. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +4 -4
  403. package/esm2020/widget/widget-footer/widget-footer.component.mjs +5 -7
  404. package/esm2020/widget/widget-registry.service.mjs +6 -5
  405. package/esm2020/widget/widget.module.mjs +7 -7
  406. package/fesm2015/theseam-ui-common-asset-reader.mjs +13 -11
  407. package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
  408. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +13 -14
  409. package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  410. package/fesm2015/theseam-ui-common-buttons.mjs +31 -27
  411. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  412. package/fesm2015/theseam-ui-common-card.mjs +23 -31
  413. package/fesm2015/theseam-ui-common-card.mjs.map +1 -1
  414. package/fesm2015/theseam-ui-common-carousel.mjs +265 -0
  415. package/fesm2015/theseam-ui-common-carousel.mjs.map +1 -0
  416. package/fesm2015/theseam-ui-common-checkbox.mjs +8 -9
  417. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  418. package/fesm2015/theseam-ui-common-confirm-dialog.mjs +15 -15
  419. package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  420. package/fesm2015/theseam-ui-common-core.mjs +10 -8
  421. package/fesm2015/theseam-ui-common-core.mjs.map +1 -1
  422. package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
  423. package/fesm2015/theseam-ui-common-data-filters.mjs +23 -20
  424. package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
  425. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +34 -38
  426. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  427. package/fesm2015/theseam-ui-common-datatable.mjs +115 -123
  428. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  429. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +12 -12
  430. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  431. package/fesm2015/theseam-ui-common-dynamic.mjs +36 -26
  432. package/fesm2015/theseam-ui-common-dynamic.mjs.map +1 -1
  433. package/fesm2015/theseam-ui-common-footer-bar.mjs +8 -11
  434. package/fesm2015/theseam-ui-common-footer-bar.mjs.map +1 -1
  435. package/fesm2015/theseam-ui-common-form-field-error.mjs +21 -23
  436. package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
  437. package/fesm2015/theseam-ui-common-form-field.mjs +29 -28
  438. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  439. package/fesm2015/theseam-ui-common-framework.mjs +153 -160
  440. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  441. package/fesm2015/theseam-ui-common-google-maps.mjs +221 -113
  442. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  443. package/fesm2015/theseam-ui-common-graphql.mjs +10 -34
  444. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  445. package/fesm2015/theseam-ui-common-icon.mjs +84 -85
  446. package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
  447. package/fesm2015/theseam-ui-common-layout.mjs +7 -7
  448. package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
  449. package/fesm2015/theseam-ui-common-loading.mjs +14 -15
  450. package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
  451. package/fesm2015/theseam-ui-common-menu.mjs +460 -247
  452. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  453. package/fesm2015/theseam-ui-common-modal.mjs +71 -76
  454. package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
  455. package/fesm2015/theseam-ui-common-popover.mjs +10 -10
  456. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  457. package/fesm2015/theseam-ui-common-progress.mjs +13 -13
  458. package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
  459. package/fesm2015/theseam-ui-common-scrollbar.mjs +10 -11
  460. package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
  461. package/fesm2015/theseam-ui-common-services.mjs +11 -13
  462. package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
  463. package/fesm2015/theseam-ui-common-shared.mjs +42 -42
  464. package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
  465. package/fesm2015/theseam-ui-common-storage.mjs +10 -10
  466. package/fesm2015/theseam-ui-common-storage.mjs.map +1 -1
  467. package/fesm2015/theseam-ui-common-story-helpers.mjs +25 -100
  468. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  469. package/fesm2015/theseam-ui-common-tabbed.mjs +27 -29
  470. package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
  471. package/fesm2015/theseam-ui-common-table-cell-type.mjs +12 -13
  472. package/fesm2015/theseam-ui-common-table-cell-type.mjs.map +1 -1
  473. package/fesm2015/theseam-ui-common-table-cell-types.mjs +87 -89
  474. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  475. package/fesm2015/theseam-ui-common-table.mjs +8 -9
  476. package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
  477. package/fesm2015/theseam-ui-common-tel-input.mjs +21 -25
  478. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  479. package/fesm2015/theseam-ui-common-testing.mjs.map +1 -1
  480. package/fesm2015/theseam-ui-common-tiled-select.mjs +31 -34
  481. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  482. package/fesm2015/theseam-ui-common-toggle-edit.mjs +20 -23
  483. package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
  484. package/fesm2015/theseam-ui-common-toggle-group.mjs +12 -12
  485. package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
  486. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +16 -18
  487. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  488. package/fesm2015/theseam-ui-common-utils.mjs +75 -33
  489. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  490. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs +96 -0
  491. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs.map +1 -0
  492. package/fesm2015/theseam-ui-common-viewers.mjs +22 -20
  493. package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
  494. package/fesm2015/theseam-ui-common-widget.mjs +211 -217
  495. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  496. package/fesm2020/theseam-ui-common-asset-reader.mjs +13 -11
  497. package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
  498. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +13 -14
  499. package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  500. package/fesm2020/theseam-ui-common-buttons.mjs +31 -27
  501. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  502. package/fesm2020/theseam-ui-common-card.mjs +23 -31
  503. package/fesm2020/theseam-ui-common-card.mjs.map +1 -1
  504. package/fesm2020/theseam-ui-common-carousel.mjs +265 -0
  505. package/fesm2020/theseam-ui-common-carousel.mjs.map +1 -0
  506. package/fesm2020/theseam-ui-common-checkbox.mjs +8 -9
  507. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  508. package/fesm2020/theseam-ui-common-confirm-dialog.mjs +15 -15
  509. package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  510. package/fesm2020/theseam-ui-common-core.mjs +10 -8
  511. package/fesm2020/theseam-ui-common-core.mjs.map +1 -1
  512. package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
  513. package/fesm2020/theseam-ui-common-data-filters.mjs +23 -20
  514. package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
  515. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +34 -38
  516. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  517. package/fesm2020/theseam-ui-common-datatable.mjs +115 -123
  518. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  519. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +12 -12
  520. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  521. package/fesm2020/theseam-ui-common-dynamic.mjs +36 -26
  522. package/fesm2020/theseam-ui-common-dynamic.mjs.map +1 -1
  523. package/fesm2020/theseam-ui-common-footer-bar.mjs +8 -11
  524. package/fesm2020/theseam-ui-common-footer-bar.mjs.map +1 -1
  525. package/fesm2020/theseam-ui-common-form-field-error.mjs +21 -23
  526. package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
  527. package/fesm2020/theseam-ui-common-form-field.mjs +29 -28
  528. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  529. package/fesm2020/theseam-ui-common-framework.mjs +153 -160
  530. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  531. package/fesm2020/theseam-ui-common-google-maps.mjs +223 -117
  532. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  533. package/fesm2020/theseam-ui-common-graphql.mjs +10 -34
  534. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  535. package/fesm2020/theseam-ui-common-icon.mjs +84 -85
  536. package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
  537. package/fesm2020/theseam-ui-common-layout.mjs +16 -8
  538. package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
  539. package/fesm2020/theseam-ui-common-loading.mjs +14 -15
  540. package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
  541. package/fesm2020/theseam-ui-common-menu.mjs +450 -244
  542. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  543. package/fesm2020/theseam-ui-common-modal.mjs +71 -76
  544. package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
  545. package/fesm2020/theseam-ui-common-models.mjs +2 -1
  546. package/fesm2020/theseam-ui-common-models.mjs.map +1 -1
  547. package/fesm2020/theseam-ui-common-popover.mjs +10 -10
  548. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  549. package/fesm2020/theseam-ui-common-progress.mjs +13 -13
  550. package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
  551. package/fesm2020/theseam-ui-common-scrollbar.mjs +10 -11
  552. package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
  553. package/fesm2020/theseam-ui-common-services.mjs +11 -13
  554. package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
  555. package/fesm2020/theseam-ui-common-shared.mjs +42 -42
  556. package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
  557. package/fesm2020/theseam-ui-common-storage.mjs +10 -10
  558. package/fesm2020/theseam-ui-common-storage.mjs.map +1 -1
  559. package/fesm2020/theseam-ui-common-story-helpers.mjs +25 -96
  560. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  561. package/fesm2020/theseam-ui-common-tabbed.mjs +27 -29
  562. package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
  563. package/fesm2020/theseam-ui-common-table-cell-type.mjs +12 -13
  564. package/fesm2020/theseam-ui-common-table-cell-type.mjs.map +1 -1
  565. package/fesm2020/theseam-ui-common-table-cell-types.mjs +87 -89
  566. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  567. package/fesm2020/theseam-ui-common-table.mjs +8 -9
  568. package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
  569. package/fesm2020/theseam-ui-common-tel-input.mjs +21 -25
  570. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  571. package/fesm2020/theseam-ui-common-testing.mjs +1 -0
  572. package/fesm2020/theseam-ui-common-testing.mjs.map +1 -1
  573. package/fesm2020/theseam-ui-common-tiled-select.mjs +31 -34
  574. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  575. package/fesm2020/theseam-ui-common-toggle-edit.mjs +20 -23
  576. package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
  577. package/fesm2020/theseam-ui-common-toggle-group.mjs +12 -12
  578. package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
  579. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +16 -18
  580. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  581. package/fesm2020/theseam-ui-common-utils.mjs +75 -33
  582. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  583. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs +87 -0
  584. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs.map +1 -0
  585. package/fesm2020/theseam-ui-common-viewers.mjs +22 -20
  586. package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
  587. package/fesm2020/theseam-ui-common-widget.mjs +211 -217
  588. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  589. package/footer-bar/footer-bar/footer-bar.component.d.ts +1 -4
  590. package/form-field-error/form-field-error/form-field-error.component.d.ts +1 -4
  591. package/form-field-error/form-field-error-list/form-field-error-list.component.d.ts +2 -3
  592. package/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.d.ts +2 -4
  593. package/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.d.ts +2 -3
  594. package/framework/dashboard/dashboard.component.d.ts +0 -1
  595. package/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.d.ts +2 -3
  596. package/framework/dynamic-router/resolvers/hierarchy-level.resolver.d.ts +0 -1
  597. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +2 -4
  598. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +3 -5
  599. package/framework/top-bar/top-bar-title/top-bar-title.component.d.ts +1 -4
  600. package/framework/top-bar/top-bar.component.d.ts +2 -4
  601. package/google-maps/google-maps/google-maps.component.d.ts +11 -7
  602. package/google-maps/google-maps-feature-helpers.d.ts +3 -0
  603. package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.d.ts +2 -3
  604. package/google-maps/google-maps.module.d.ts +1 -1
  605. package/google-maps/google-maps.service.d.ts +7 -0
  606. package/graphql/datatable/datatable-graphql-query-ref.d.ts +0 -1
  607. package/icon/icon-btn/icon-btn.component.d.ts +2 -3
  608. package/loading/loading/loading.component.d.ts +1 -4
  609. package/menu/menu-item.component.d.ts +20 -10
  610. package/menu/menu-toggle.directive.d.ts +34 -11
  611. package/menu/menu.component.d.ts +16 -2
  612. package/modal/modal/modal.component.d.ts +3 -4
  613. package/modal/modal-body/modal-body.component.d.ts +1 -4
  614. package/modal/modal-footer/modal-footer.component.d.ts +1 -4
  615. package/modal/modal-header/modal-header.component.d.ts +1 -4
  616. package/modal/route-modal/route-modal.component.d.ts +2 -3
  617. package/package.json +17 -1
  618. package/progress/progress-circle/progress-circle.component.d.ts +0 -1
  619. package/scrollbar/overlay-scrollbar.directive.d.ts +2 -3
  620. package/services/asset-loader.service.d.ts +0 -1
  621. package/services/font-loader.service.d.ts +0 -1
  622. package/story-helpers/public-api.d.ts +0 -1
  623. package/tabbed/directives/tabbed-tab-content.directive.d.ts +0 -1
  624. package/tabbed/tabbed-content/tabbed-content.component.d.ts +1 -4
  625. package/tabbed/tabbed-item/tabbed-item.component.d.ts +2 -4
  626. package/tabbed/tabbed.service.d.ts +0 -1
  627. package/table/table/table.component.d.ts +2 -3
  628. package/table-cell-type/table-cell-type-models.d.ts +1 -1
  629. package/table-cell-type/table-cell-type-selector.component.d.ts +3 -4
  630. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.d.ts +2 -3
  631. package/table-cell-types/table-cell-type-date/table-cell-type-date.component.d.ts +2 -3
  632. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.d.ts +2 -3
  633. package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +2 -3
  634. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.d.ts +2 -3
  635. package/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.d.ts +2 -3
  636. package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.d.ts +2 -3
  637. package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.d.ts +2 -3
  638. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +2 -3
  639. package/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.d.ts +1 -4
  640. package/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.d.ts +1 -4
  641. package/toggle-group/toggle-group.directive.d.ts +0 -1
  642. package/unsaved-changes-dialog/unsaved-changes-dialog.component.d.ts +1 -4
  643. package/utils/geo-json/close-polygons.d.ts +9 -0
  644. package/utils/obj-utils.d.ts +2 -2
  645. package/utils/public-api.d.ts +1 -0
  646. package/vertical-list-filter/index.d.ts +5 -0
  647. package/vertical-list-filter/public-api.d.ts +2 -0
  648. package/vertical-list-filter/testing/index.d.ts +1 -0
  649. package/vertical-list-filter/testing/vertical-list-filter.harness.d.ts +9 -0
  650. package/vertical-list-filter/vertical-list-filter.component.d.ts +17 -0
  651. package/widget/widget/widget.component.d.ts +10 -11
  652. package/widget/widget/widget.component.scss +12 -1
  653. package/widget/widget-content-components/widget-button-group/widget-button-group.component.d.ts +1 -4
  654. package/widget/widget-content-components/widget-content-header/widget-content-header.component.d.ts +1 -4
  655. package/widget/widget-content-components/widget-empty-label/widget-empty-label.component.d.ts +2 -3
  656. package/widget/widget-content-components/widget-footer-link/widget-footer-link.component.d.ts +1 -4
  657. package/widget/widget-content-components/widget-footer-text/widget-footer-text.component.d.ts +1 -4
  658. package/widget/widget-content-components/widget-header-badge/widget-header-badge.component.d.ts +2 -3
  659. package/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.d.ts +4 -7
  660. package/widget/widget-content-components/widget-list-group/widget-list-group.component.d.ts +1 -4
  661. package/widget/widget-content-components/widget-table/widget-table.component.d.ts +0 -1
  662. package/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.d.ts +1 -4
  663. package/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.d.ts +2 -3
  664. package/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.d.ts +1 -4
  665. package/widget/widget-content-components/widget-tile-list/widget-tile-list.component.d.ts +1 -4
  666. package/widget/widget-footer/widget-footer.component.d.ts +1 -4
  667. package/esm2020/story-helpers/args-to-tpl.mjs +0 -72
  668. package/story-helpers/args-to-tpl.d.ts +0 -24
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-menu.mjs","sources":["../../../projects/ui-common/menu/menu-animations.ts","../../../projects/ui-common/menu/menu-divider.component.ts","../../../projects/ui-common/menu/menu-panel-token.ts","../../../projects/ui-common/menu/menu-item.component.ts","../../../projects/ui-common/menu/menu-item.component.html","../../../projects/ui-common/menu/menu-toggle.directive.ts","../../../projects/ui-common/menu/menu.component.ts","../../../projects/ui-common/menu/menu.component.html","../../../projects/ui-common/menu/menu-footer-action/menu-footer-action.component.ts","../../../projects/ui-common/menu/menu-footer-action/menu-footer-action.component.html","../../../projects/ui-common/menu/menu-footer/menu-footer.component.ts","../../../projects/ui-common/menu/menu-footer/menu-footer.component.html","../../../projects/ui-common/menu/menu-header/menu-header.component.ts","../../../projects/ui-common/menu/menu-header/menu-header.component.html","../../../projects/ui-common/menu/menu.module.ts","../../../projects/ui-common/menu/theseam-ui-common-menu.ts"],"sourcesContent":["import { animate, animation, group, query, style, useAnimation } from '@angular/animations'\n\nexport const menuDropdownPanelSlideIn = animation([\n style({\n opacity: 0,\n transform: 'translateY(-70%)'\n }),\n group([\n animate('170ms linear', style({ opacity: 1 })),\n animate('220ms ease', style({ transform: 'translateY(0)' })),\n ])\n])\n\nexport const menuDropdownPanelSlideOut = animation([\n style({\n opacity: 1,\n transform: 'translateY(0)'\n }),\n group([\n animate('170ms linear', style({ opacity: 0 })),\n animate('220ms ease', style({ transform: 'translateY(-70%)' })),\n ])\n])\n\nexport const menuDropdownPanelExpandIn = animation([\n style({\n opacity: 0,\n transform: 'scale(0.8)'\n }),\n group([\n animate('100ms linear', style({ opacity: 1 })),\n animate('120ms ease', style({ transform: 'scale(1)' })),\n ])\n])\n\nexport const menuDropdownPanelExpandOut = animation([\n style({\n opacity: 1,\n transform: 'scale(1)'\n }),\n group([\n animate('100ms linear', style({ opacity: 0 })),\n animate('120ms ease', style({ transform: 'scale(0.8)' })),\n ])\n])\n\nexport const menuDropdownPanelFadeIn = animation([\n style({ transform: 'translateY(-30px)', opacity: '0' }),\n animate('250ms', style({ transform: 'translateY(0)', opacity: '1' }))\n])\n\nexport const menuDropdownPanelFadeOut = animation([\n style({ transform: 'translateY(0)', opacity: '1' }),\n animate('250ms', style({ transform: 'translateY(-30px)', opacity: '0' }))\n])\n\nexport const menuDropdownPanelIn = animation([\n query('.seam-menu-container.seam-menu-anim--slide .dropdown-menu', useAnimation(menuDropdownPanelSlideIn), { optional: true }),\n query('.seam-menu-container.seam-menu-anim--fade .dropdown-menu', useAnimation(menuDropdownPanelFadeIn), { optional: true })\n])\n\nexport const menuDropdownPanelOut = animation([\n query('.seam-menu-container.seam-menu-anim--slide .dropdown-menu', useAnimation(menuDropdownPanelSlideOut), { optional: true }),\n query('.seam-menu-container.seam-menu-anim--fade .dropdown-menu', useAnimation(menuDropdownPanelFadeOut), { optional: true })\n])\n","import { ChangeDetectionStrategy, Component } from '@angular/core'\n\n@Component({\n selector: 'seam-menu-divider',\n template: ``,\n styles: [],\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'class': 'dropdown-divider d-block'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuDividerComponent { }\n","import { InjectionToken } from '@angular/core'\n\nimport { ITheSeamMenuPanel } from './menu-panel'\n\n/**\n * Injection token used to provide the parent menu to menu-specific components.\n */\nexport const THESEAM_MENU_PANEL = new InjectionToken<ITheSeamMenuPanel>('THESEAM_MENU_PANEL')\n","import { FocusableOption, FocusMonitor, FocusOrigin } from '@angular/cdk/a11y'\nimport { DOCUMENT } from '@angular/common'\nimport { ChangeDetectionStrategy, Component, ElementRef, HostListener, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\n\nimport { CanDisableCtor, mixinDisabled } from '@theseam/ui-common/core'\nimport { SeamIcon } from '@theseam/ui-common/icon'\n\nimport type { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\n\nclass TheSeamMenuItemBase {}\n\nconst _seamMenuItemMixinBase: CanDisableCtor & typeof TheSeamMenuItemBase =\n mixinDisabled(TheSeamMenuItemBase)\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: '[seamMenuItem]',\n templateUrl: './menu-item.component.html',\n styleUrls: ['./menu-item.component.scss'],\n exportAs: 'seamMenuItem',\n // tslint:disable-next-line:use-input-property-decorator\n inputs: [ 'disabled' ],\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n '[attr.role]': 'role',\n 'class': 'dropdown-item',\n '[attr.tabindex]': '_getTabIndex()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuItemComponent extends _seamMenuItemMixinBase implements OnInit, OnDestroy, FocusableOption {\n\n /** ARIA role for the menu item. */\n @Input() role: 'menuitem' | 'menuitemradio' | 'menuitemcheckbox' | undefined | null = 'menuitem'\n\n @Input() icon: SeamIcon | string | undefined | null\n @Input() iconClass: string | undefined | null\n\n @Input() badgeText: string | undefined | null\n @Input() badgeTheme: string | undefined | null = 'danger'\n\n /** Stream that emits when the menu item is hovered. */\n readonly _hovered: Subject<MenuItemComponent> = new Subject<MenuItemComponent>()\n\n /** Whether the menu item is highlighted. */\n _highlighted = false\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) public document: any,\n private _focusMonitor: FocusMonitor,\n @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) {\n super()\n\n if (_focusMonitor) {\n // Start monitoring the element so it gets the appropriate focused classes. We want\n // to show the focus style for menu items only when the focus was not caused by a\n // mouse or touch interaction.\n _focusMonitor.monitor(this._elementRef, false)\n }\n\n // console.log(this._parentMenu)\n if (_parentMenu && _parentMenu.addItem) {\n _parentMenu.addItem(this)\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n if (this._focusMonitor) {\n this._focusMonitor.stopMonitoring(this._elementRef)\n }\n\n if (this._parentMenu && this._parentMenu.removeItem) {\n this._parentMenu.removeItem(this)\n }\n\n this._hovered.complete()\n }\n\n /** Focuses the menu item. */\n focus(origin: FocusOrigin = 'program'): void {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._getHostElement(), origin)\n } else {\n this._getHostElement().focus()\n }\n }\n\n /** Used to set the `tabindex`. */\n _getTabIndex(): string {\n return this.disabled ? '-1' : '0'\n }\n\n /** Returns the host DOM element. */\n _getHostElement(): HTMLElement {\n return this._elementRef.nativeElement\n }\n\n /** Prevents the default element actions if it is disabled. */\n @HostListener('click', ['$event'])\n _checkDisabled(event: Event): void {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n\n /** Emits to the hover stream. */\n @HostListener('mouseenter')\n _handleMouseEnter() {\n this._hovered.next(this)\n }\n\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel(): string {\n const element: HTMLElement = this._elementRef.nativeElement\n const textNodeType = this.document ? this.document.TEXT_NODE : 3\n let output = ''\n\n if (element.childNodes) {\n const length = element.childNodes.length\n\n // Go through all the top-level text nodes and extract their text.\n // We skip anything that's not a text node to prevent the text from\n // being thrown off by something like an icon.\n for (let i = 0; i < length; i++) {\n if (element.childNodes[i].nodeType === textNodeType) {\n output += element.childNodes[i].textContent\n }\n }\n }\n\n return output.trim()\n }\n\n}\n","<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 <!-- <span class=\"text-nowrap\">\n <ng-content></ng-content>\n </span> -->\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -8px\"\n >{{ badgeText }}</span>\n </div>\n</div>\n","import { FocusMonitor, FocusOrigin, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y'\nimport { DOWN_ARROW, ESCAPE, UP_ARROW } from '@angular/cdk/keycodes'\nimport { ConnectionPositionPair, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay'\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform'\nimport { TemplatePortal } from '@angular/cdk/portal'\nimport { Directive, ElementRef, HostListener, Inject, Input, OnDestroy, Optional, ViewContainerRef } from '@angular/core'\nimport { merge, of, Subscription } from 'rxjs'\n\nimport { MenuItemComponent } from './menu-item.component'\nimport { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\nimport { MenuComponent } from './menu.component'\n\n/** Options for binding a passive event listener. */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({passive: true})\n\n@Directive({\n selector: '[seamMenuToggle]',\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'aria-haspopup': 'true',\n '[attr.aria-expanded]': 'menuOpen() || null'\n },\n exportAs: 'seamMenuToggle'\n})\nexport class MenuToggleDirective implements OnDestroy {\n\n private _active = false\n private _overlayRef?: OverlayRef\n private _menuClosedSubscription = Subscription.EMPTY\n private _closingActionsSubscription = Subscription.EMPTY\n\n public restoreFocus = true\n\n // Tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the menu is opened via the keyboard\n _openedBy: 'mouse' | 'touch' | null = null\n\n @Input() seamMenuToggle: MenuComponent | undefined | null\n\n @Input()\n set positions(val: ConnectionPositionPair[]) {\n this._positions = val\n if (this.menuOpen()) {\n this._overlayRef?.updatePositionStrategy(this.getOverlayPosition(this._elementRef.nativeElement))\n }\n }\n get positions() { return this._positions }\n private _positions: ConnectionPositionPair[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n\n @HostListener('mousedown', [ '$event' ])\n _onMouseDown(event: MouseEvent) {\n if (!isFakeMousedownFromScreenReader(event)) {\n // Since right or middle button clicks won't trigger the `click` event,\n // we shouldn't consider the menu as opened by mouse in those cases.\n this._openedBy = event.button === 0 ? 'mouse' : null\n\n // Since clicking on the trigger won't close the menu if it opens a sub-menu,\n // we should prevent focus from moving onto it via click to avoid the\n // highlight from lingering on the menu item.\n // if (this.triggersSubmenu()) {\n // event.preventDefault();\n // }\n }\n }\n\n @HostListener('keydown', [ '$event' ])\n _onKeydown(event: any) {\n this._openedBy = null\n\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode\n\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n if (this.menuOpen()) {\n this.seamMenuToggle?.focusFirstItem(this._openedBy || 'program')\n }\n }\n }\n\n @HostListener('click', [ '$event' ])\n _onClick(event: any) {\n this.toggle()\n }\n\n @HostListener('document:keydown', [ '$event' ])\n _onDocumentKeydown(event: any) {\n if (event.keyCode === ESCAPE) {\n this.closeMenu()\n }\n }\n\n // @HostListener('document:mousedown', [ '$event' ])\n // _onDocumentMouseDown(event: any) {\n // console.log('outside click')\n // }\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _viewContainerRef: ViewContainerRef,\n private _overlay: Overlay,\n private _focusMonitor: FocusMonitor,\n // @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) {\n this._elementRef.nativeElement.addEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n }\n\n ngOnDestroy() {\n this.closeMenu()\n\n this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._menuClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n }\n\n /**\n * Handles touch start events on the trigger.\n * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.\n */\n private _handleTouchStart = () => this._openedBy = 'touch'\n\n public toggle(): void {\n if (this._active) {\n this.closeMenu()\n } else {\n this.openMenu()\n }\n }\n\n public openMenu(): void {\n if (this._active || !this.seamMenuToggle) { return }\n this._active = true\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: true,\n backdropClass: 'transparent',\n positionStrategy: this.getOverlayPosition(this._elementRef.nativeElement),\n })\n\n const tpl = this.seamMenuToggle.templateRef\n if (!tpl) {\n throw Error(`Menu template not found.`)\n }\n\n this._overlayRef.attach(new TemplatePortal(tpl, this._viewContainerRef))\n\n this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.closeMenu())\n this._initMenu()\n\n this._menuClosedSubscription = this.seamMenuToggle.closed.subscribe(v => {\n // console.log('closed', v)\n this.closeMenu()\n })\n\n // this._overlayRef.backdropClick().subscribe(v => {\n // console.log('backdropClick', v)\n // })\n }\n\n public closeMenu(): void {\n if (!this._active) { return }\n\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef?.detach()\n }\n\n this._resetMenu()\n\n this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._menuClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n\n this._active = false\n }\n\n public menuOpen(): boolean {\n return (this._overlayRef && this._overlayRef.hasAttached()) ?? false\n }\n\n private getOverlayPosition(origin: HTMLElement): PositionStrategy {\n const positionStrategy = this._overlay.position()\n .flexibleConnectedTo(origin)\n .withPositions(this.positions)\n .withFlexibleDimensions(false)\n .withPush(true)\n\n return positionStrategy\n }\n\n /**\n * Focuses the menu trigger.\n * @param origin Source of the menu trigger's focus.\n */\n focus(origin: FocusOrigin = 'program') {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._elementRef, origin)\n } else {\n this._elementRef.nativeElement.focus()\n }\n }\n\n /**\n * This method sets the menu state to open and focuses the first item if\n * the menu was opened via the keyboard.\n */\n private _initMenu(): void {\n // this.seamMenuToggle.parentMenu = this.triggersSubmenu() ? this._parentMenu : undefined\n // this.seamMenuToggle.direction = this.dir\n // this._setMenuElevation()\n // this._setIsMenuOpen(true)\n // this.seamMenuToggle.focusFirstItem(this._openedBy || 'program')\n }\n\n /**\n * This method resets the menu when it's closed, most importantly restoring\n * focus to the menu trigger if the menu was opened via the keyboard.\n */\n private _resetMenu(): void {\n // this._setIsMenuOpen(false)\n\n // We should reset focus if the user is navigating using a keyboard or\n // if we have a top-level trigger which might cause focus to be lost\n // when clicking on the backdrop.\n if (this.restoreFocus) {\n if (!this._openedBy) {\n // Note that the focus style will show up both for `program` and\n // `keyboard` so we don't have to specify which one it is.\n this.focus()\n }\n // else if (!this.triggersSubmenu()) {\n // this.focus(this._openedBy)\n // }\n }\n\n this._openedBy = null\n }\n\n /** Returns a stream that emits whenever an action that should close the menu occurs. */\n private _menuClosingActions() {\n const backdrop = this._overlayRef?.backdropClick() ?? of()\n const detachments = this._overlayRef?.detachments() ?? of()\n // const parentClose = this._parentMenu ? this._parentMenu.closed : of()\n const parentClose = of()\n // const hover = this._parentMenu ? this._parentMenu._hovered().pipe(\n // filter(active => active !== this._menuItemInstance),\n // filter(() => this._menuOpen)\n // ) : of()\n const hover = of()\n\n return merge(backdrop, parentClose, hover, detachments)\n }\n\n}\n","import { animate, group, query, style, transition, trigger, useAnimation } from '@angular/animations'\nimport { FocusKeyManager, FocusOrigin } from '@angular/cdk/a11y'\nimport { coerceNumberProperty } from '@angular/cdk/coercion'\nimport { DOWN_ARROW, END, ESCAPE, hasModifierKey, HOME, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes'\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core'\nimport { BehaviorSubject, fromEvent, merge, Observable, of, Subject, Subscription } from 'rxjs'\n\nimport { distinctUntilChanged, map, startWith, switchMap, takeUntil } from 'rxjs/operators'\nimport { menuDropdownPanelIn, menuDropdownPanelOut, menuDropdownPanelSlideIn, menuDropdownPanelSlideOut } from './menu-animations'\nimport { MenuItemComponent } from './menu-item.component'\nimport { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\n\nimport { MenuFooterComponent } from './menu-footer/menu-footer.component'\nimport { MenuHeaderComponent } from './menu-header/menu-header.component'\n\nexport const LIB_MENU: any = {\n provide: THESEAM_MENU_PANEL,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => MenuComponent)\n}\n\n@Component({\n selector: 'seam-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n providers: [ LIB_MENU ],\n animations: [\n trigger('slideDown', [\n transition(':enter', useAnimation(menuDropdownPanelIn)),\n transition(':leave', useAnimation(menuDropdownPanelOut)),\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'seamMenu'\n})\nexport class MenuComponent implements OnDestroy, AfterContentInit, ITheSeamMenuPanel {\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n private _footer = new BehaviorSubject<MenuFooterComponent | undefined | null>(undefined)\n public hasFooter$ = this._footer.pipe(map(v => v !== null && v !== undefined))\n\n private _header = new BehaviorSubject<MenuHeaderComponent | undefined | null>(undefined)\n public hasHeader$ = this._header.pipe(map(v => v !== null && v !== undefined))\n\n private _keyManager?: FocusKeyManager<MenuItemComponent>\n\n /** Menu items inside the current menu. */\n private _items: MenuItemComponent[] = []\n\n /** Emits whenever the amount of menu items changes. */\n private _itemChanges = new Subject<MenuItemComponent[]>()\n\n /** Subscription to tab events on the menu panel */\n private _tabSubscription = Subscription.EMPTY\n\n /** Parent menu of the current menu panel. */\n parentMenu: ITheSeamMenuPanel | undefined\n\n @ViewChild(TemplateRef) templateRef?: TemplateRef<any>\n\n @Output() readonly closed = new EventEmitter<void | 'click' | 'keydown' | 'tab'>()\n\n @Input() menuClass: string | undefined | null\n\n /**\n * Defines a width for a menu that will scale down if the window innerWidth is\n * smaller than the value.\n */\n @Input()\n get baseWidth() { return this._baseWidth.value }\n set baseWidth(value: number | null) {\n const _val = coerceNumberProperty(value, null)\n if (_val !== this._baseWidth.value) {\n this._baseWidth.next(_val)\n }\n }\n private _baseWidth = new BehaviorSubject<number | null>(null)\n _menuWidth$: Observable<string | undefined>\n\n @Input() animationType: 'slide' | 'fade' = 'slide'\n\n constructor() {\n this._menuWidth$ = this._baseWidth.pipe(\n switchMap(baseWidth => {\n if (baseWidth) {\n return fromEvent(window, 'resize').pipe(\n startWith(undefined),\n map(() => window.innerWidth < baseWidth ? `${window.innerWidth}px` : `${baseWidth}px`)\n )\n }\n return of(undefined)\n }),\n distinctUntilChanged(),\n takeUntil(this._ngUnsubscribe)\n )\n }\n\n ngOnDestroy() {\n this._tabSubscription.unsubscribe()\n this.closed.complete()\n\n this._ngUnsubscribe.next(undefined)\n this._ngUnsubscribe.complete()\n }\n\n ngAfterContentInit() {\n this._keyManager = new FocusKeyManager<MenuItemComponent>(this._items).withWrap().withTypeAhead()\n this._tabSubscription = this._keyManager.tabOut.subscribe(() => this.closed.emit('tab'))\n }\n\n /** Stream that emits whenever the hovered menu item changes. */\n _hovered(): Observable<MenuItemComponent> {\n return this._itemChanges.pipe(\n startWith(this._items),\n switchMap(items => merge(...items.map(item => item._hovered)))\n )\n }\n\n /** Handle a keyboard event from the menu, delegating to the appropriate action. */\n _handleKeydown(event: KeyboardEvent) {\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode\n const manager = this._keyManager\n\n switch (keyCode) {\n case ESCAPE:\n if (!hasModifierKey(event)) {\n event.preventDefault()\n this.closed.emit('keydown')\n }\n break\n // case LEFT_ARROW:\n // if (this.parentMenu && this.direction === 'ltr') {\n // this.closed.emit('keydown')\n // }\n // break\n // case RIGHT_ARROW:\n // if (this.parentMenu && this.direction === 'rtl') {\n // this.closed.emit('keydown')\n // }\n // break\n case HOME:\n case END:\n if (!hasModifierKey(event)) {\n keyCode === HOME ? manager?.setFirstItemActive() : manager?.setLastItemActive()\n event.preventDefault()\n }\n break\n default:\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n manager?.setFocusOrigin('keyboard')\n }\n\n manager?.onKeydown(event)\n }\n }\n\n /**\n * Focus the first item in the menu.\n * @param origin Action from which the focus originated. Used to set the correct styling.\n */\n focusFirstItem(origin: FocusOrigin = 'program'): void {\n this._keyManager?.setFocusOrigin(origin).setFirstItemActive()\n }\n\n /**\n * Resets the active item in the menu. This is used when the menu is opened, allowing\n * the user to start from the first option when pressing the down arrow.\n */\n resetActiveItem() {\n this._keyManager?.setActiveItem(-1)\n }\n\n /** Registers a menu item with the menu. */\n addItem(item: MenuItemComponent) {\n // We register the items through this method, rather than picking them up through\n // `ContentChildren`, because we need the items to be picked up by their closest\n // `seam-menu` ancestor. If we used `@ContentChildren(MenuItemComponent, {descendants: true})`,\n // all descendant items will bleed into the top-level menu in the case where the consumer\n // has `seam-menu` instances nested inside each other.\n if (this._items.indexOf(item) === -1) {\n this._items.push(item)\n this._itemChanges.next(this._items)\n }\n }\n\n /** Removes an item from the menu. */\n removeItem(item: MenuItemComponent) {\n const index = this._items.indexOf(item)\n\n if (this._items.indexOf(item) > -1) {\n this._items.splice(index, 1)\n this._itemChanges.next(this._items)\n }\n }\n\n /** Sets the footer component. */\n setFooter(footer?: MenuFooterComponent) {\n this._footer.next(footer)\n }\n\n /** Sets the header component. */\n setHeader(header?: MenuHeaderComponent) {\n this._header.next(header)\n }\n\n _dropdownMenuClick(event: Event) {\n // This is needed, because some menu's will get stuck open if the component\n // managing the menu is destroyed before the menu finishes its cleanup. I\n // may look for a fix to that eventually.\n this.closed.emit('click')\n }\n\n}\n","<ng-template>\n <div class=\"seam-menu-container\" @slideDown\n [class.seam-menu-anim--slide]=\"animationType==='slide'\"\n [class.seam-menu-anim--fade]=\"animationType==='fade'\">\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","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input } from '@angular/core'\n\n// TODO: Split up the button and anchor classes.\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'button[seamMenuFooterAction],a[seamMenuFooterAction]',\n templateUrl: './menu-footer-action.component.html',\n styleUrls: ['./menu-footer-action.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuFooterActionComponent {\n\n @HostBinding('attr.type') get _attrType() { return this.type }\n\n /** ARIA type for the button. */\n @Input()\n get type() { return this._isButton() ? this._type || 'button' : undefined }\n set type(value: 'button' | 'submit' | 'reset' | undefined | null) {\n this._type = value\n }\n private _type: 'button' | 'submit' | 'reset' | undefined | null\n\n @HostBinding('class.btn') get _classBtn() { return this._isButton() }\n @HostBinding('class.btn-link') get _classBtnLink() { return this._isButton() }\n\n @HostBinding('style.padding.px') get _stylePadding() { return this._isButton() && 0 }\n @HostBinding('style.border.px') get _styleBorder() { return this._isButton() && 0 }\n @HostBinding('style.display.px') get _styleDisplay() { return this._isButton() && 'inline' }\n\n constructor(\n private _elementRef: ElementRef\n ) { }\n\n /** Determines if the component host is a button. */\n protected _isButton() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n\n /** Determines if the component host is an anchor. */\n protected _isAnchor() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a'\n }\n\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core'\n\nimport { MenuItemComponent } from '../menu-item.component'\nimport type { ITheSeamMenuPanel } from '../menu-panel'\nimport { THESEAM_MENU_PANEL } from '../menu-panel-token'\n\n@Component({\n selector: 'seam-menu-footer',\n templateUrl: './menu-footer.component.html',\n styleUrls: ['./menu-footer.component.scss'],\n host: {\n 'class': 'd-flex flex-column text-center bg-light border-top rounded-bottom py-2'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuFooterComponent implements OnInit, OnDestroy {\n\n constructor(\n @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) { }\n\n ngOnInit() {\n if (this._parentMenu && this._parentMenu.setFooter) {\n this._parentMenu.setFooter(this)\n }\n }\n\n ngOnDestroy() {\n if (this._parentMenu && this._parentMenu.setFooter) {\n this._parentMenu.setFooter(undefined)\n }\n }\n\n}\n","<ng-content select=\"a[seamMenuFooterAction],button[seamMenuFooterAction]\"></ng-content>\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core'\n\nimport { MenuItemComponent } from '../menu-item.component'\nimport type { ITheSeamMenuPanel } from '../menu-panel'\nimport { THESEAM_MENU_PANEL } from '../menu-panel-token'\n\n@Component({\n selector: 'seam-menu-header',\n templateUrl: './menu-header.component.html',\n styleUrls: ['./menu-header.component.scss'],\n host: {\n 'class': 'd-flex flex-column bg-light border-bottom rounded-top py-2 mb-2'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuHeaderComponent implements OnInit, OnDestroy {\n\n constructor(\n @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) { }\n\n ngOnInit() {\n if (this._parentMenu && this._parentMenu.setHeader) {\n this._parentMenu.setHeader(this)\n }\n }\n\n ngOnDestroy() {\n if (this._parentMenu && this._parentMenu.setHeader) {\n this._parentMenu.setHeader(undefined)\n }\n }\n\n}\n","<ng-content></ng-content>\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\n\nimport { MenuDividerComponent } from './menu-divider.component'\nimport { MenuFooterActionComponent } from './menu-footer-action/menu-footer-action.component'\nimport { MenuFooterComponent } from './menu-footer/menu-footer.component'\nimport { MenuHeaderComponent } from './menu-header/menu-header.component'\nimport { MenuItemComponent } from './menu-item.component'\nimport { MenuToggleDirective } from './menu-toggle.directive'\nimport { MenuComponent } from './menu.component'\n\n@NgModule({\n declarations: [\n MenuComponent,\n MenuToggleDirective,\n MenuItemComponent,\n MenuDividerComponent,\n MenuFooterComponent,\n MenuFooterActionComponent,\n MenuHeaderComponent,\n ],\n imports: [\n CommonModule,\n OverlayModule,\n TheSeamIconModule\n ],\n exports: [\n MenuComponent,\n MenuToggleDirective,\n MenuItemComponent,\n MenuDividerComponent,\n\n TheSeamIconModule,\n OverlayModule,\n MenuFooterComponent,\n MenuFooterActionComponent,\n MenuHeaderComponent\n ]\n})\nexport class TheSeamMenuModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-menu.mjs","sources":["../../../projects/ui-common/menu/menu-animations.ts","../../../projects/ui-common/menu/menu-divider.component.ts","../../../projects/ui-common/menu/menu-panel-token.ts","../../../projects/ui-common/menu/menu-item.component.ts","../../../projects/ui-common/menu/menu-item.component.html","../../../projects/ui-common/menu/menu.component.ts","../../../projects/ui-common/menu/menu.component.html","../../../projects/ui-common/menu/menu-toggle.directive.ts","../../../projects/ui-common/menu/menu-footer-action/menu-footer-action.component.ts","../../../projects/ui-common/menu/menu-footer-action/menu-footer-action.component.html","../../../projects/ui-common/menu/menu-footer/menu-footer.component.ts","../../../projects/ui-common/menu/menu-footer/menu-footer.component.html","../../../projects/ui-common/menu/menu-header/menu-header.component.ts","../../../projects/ui-common/menu/menu-header/menu-header.component.html","../../../projects/ui-common/menu/menu.module.ts","../../../projects/ui-common/menu/theseam-ui-common-menu.ts"],"sourcesContent":["import { animate, animation, group, query, style, useAnimation } from '@angular/animations'\n\nexport const menuDropdownPanelSlideIn = animation([\n style({\n opacity: 0,\n transform: 'translateY(-70%)'\n }),\n group([\n animate('170ms linear', style({ opacity: 1 })),\n animate('220ms ease', style({ transform: 'translateY(0)' })),\n ])\n])\n\nexport const menuDropdownPanelSlideOut = animation([\n style({\n opacity: 1,\n transform: 'translateY(0)'\n }),\n group([\n animate('170ms linear', style({ opacity: 0 })),\n animate('220ms ease', style({ transform: 'translateY(-70%)' })),\n ])\n])\n\nexport const menuDropdownPanelExpandIn = animation([\n style({\n opacity: 0,\n transform: 'scale(0.8)'\n }),\n group([\n animate('100ms linear', style({ opacity: 1 })),\n animate('120ms ease', style({ transform: 'scale(1)' })),\n ])\n])\n\nexport const menuDropdownPanelExpandOut = animation([\n style({\n opacity: 1,\n transform: 'scale(1)'\n }),\n group([\n animate('100ms linear', style({ opacity: 0 })),\n animate('120ms ease', style({ transform: 'scale(0.8)' })),\n ])\n])\n\nexport const menuDropdownPanelFadeIn = animation([\n style({ transform: 'translateY(-30px)', opacity: '0' }),\n animate('250ms', style({ transform: 'translateY(0)', opacity: '1' }))\n])\n\nexport const menuDropdownPanelFadeOut = animation([\n style({ transform: 'translateY(0)', opacity: '1' }),\n animate('250ms', style({ transform: 'translateY(-30px)', opacity: '0' }))\n])\n\nexport const menuDropdownPanelIn = animation([\n query('.seam-menu-container.seam-menu-anim--slide .dropdown-menu', useAnimation(menuDropdownPanelSlideIn), { optional: true }),\n query('.seam-menu-container.seam-menu-anim--fade .dropdown-menu', useAnimation(menuDropdownPanelFadeIn), { optional: true })\n])\n\nexport const menuDropdownPanelOut = animation([\n query('.seam-menu-container.seam-menu-anim--slide .dropdown-menu', useAnimation(menuDropdownPanelSlideOut), { optional: true }),\n query('.seam-menu-container.seam-menu-anim--fade .dropdown-menu', useAnimation(menuDropdownPanelFadeOut), { optional: true })\n])\n","import { ChangeDetectionStrategy, Component } from '@angular/core'\n\n@Component({\n selector: 'seam-menu-divider',\n template: ``,\n styles: [],\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'class': 'dropdown-divider d-block'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuDividerComponent { }\n","import { InjectionToken } from '@angular/core'\n\nimport { ITheSeamMenuPanel } from './menu-panel'\n\n/**\n * Injection token used to provide the parent menu to menu-specific components.\n */\nexport const THESEAM_MENU_PANEL = new InjectionToken<ITheSeamMenuPanel>('THESEAM_MENU_PANEL')\n","import { FocusableOption, FocusMonitor, FocusOrigin } from '@angular/cdk/a11y'\nimport { DOCUMENT } from '@angular/common'\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, Inject, Input, OnDestroy, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\n\nimport { faCaretRight } from '@fortawesome/free-solid-svg-icons'\nimport { CanDisableCtor, mixinDisabled } from '@theseam/ui-common/core'\nimport { SeamIcon } from '@theseam/ui-common/icon'\n\nimport type { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\n\nclass TheSeamMenuItemBase {}\n\nconst _seamMenuItemMixinBase: CanDisableCtor & typeof TheSeamMenuItemBase =\n mixinDisabled(TheSeamMenuItemBase)\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[seamMenuItem]',\n templateUrl: './menu-item.component.html',\n styleUrls: ['./menu-item.component.scss'],\n exportAs: 'seamMenuItem',\n inputs: [ 'disabled' ],\n host: {\n '[attr.role]': 'role',\n 'class': 'seam-menu-item dropdown-item',\n '[class.seam-menu-item-highlighted]': '_highlighted',\n '[class.seam-menu-item-submenu-trigger]': '_triggersSubmenu',\n '[attr.tabindex]': '_getTabIndex()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuItemComponent extends _seamMenuItemMixinBase implements OnDestroy, AfterViewInit, FocusableOption {\n\n /** ARIA role for the menu item. */\n @Input() role: 'menuitem' | 'menuitemradio' | 'menuitemcheckbox' | undefined | null = 'menuitem'\n\n @Input() icon: SeamIcon | string | undefined | null\n @Input() iconClass: string | undefined | null\n\n @Input() sublevelIcon: SeamIcon | string | undefined | null = faCaretRight\n @Input() subLevelIconClass: string | undefined | null\n\n @Input() badgeText: string | undefined | null\n @Input() badgeTheme: string | undefined | null = 'danger'\n\n /** Stream that emits when the menu item is hovered. */\n readonly _hovered = new Subject<MenuItemComponent>()\n\n /** Stream that emits when the menu item is focused. */\n readonly _focused = new Subject<MenuItemComponent>()\n\n /** Whether the menu item is highlighted. */\n _highlighted = false\n\n /** Whether the menu item acts as a trigger for a sub-menu. */\n _triggersSubmenu = false\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) public readonly _document: any,\n private readonly _focusMonitor: FocusMonitor,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n @Inject(THESEAM_MENU_PANEL) @Optional() private readonly _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) {\n super()\n\n // console.log(this._parentMenu)\n if (_parentMenu && _parentMenu.addItem) {\n _parentMenu.addItem(this)\n }\n }\n\n ngOnDestroy() {\n if (this._focusMonitor) {\n this._focusMonitor.stopMonitoring(this._elementRef)\n }\n\n if (this._parentMenu && this._parentMenu.removeItem) {\n this._parentMenu.removeItem(this)\n }\n\n this._hovered.complete()\n this._focused.complete()\n }\n\n ngAfterViewInit() {\n if (this._focusMonitor) {\n // Start monitoring the element, so it gets the appropriate focused classes. We want\n // to show the focus style for menu items only when the focus was not caused by a\n // mouse or touch interaction.\n this._focusMonitor.monitor(this._elementRef, false)\n }\n }\n\n /** Focuses the menu item. */\n focus(origin: FocusOrigin = 'program'): void {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._getHostElement(), origin)\n } else {\n this._getHostElement().focus()\n }\n this._focused.next(this)\n }\n\n /** Used to set the `tabindex`. */\n _getTabIndex(): string {\n return this.disabled ? '-1' : '0'\n }\n\n /** Returns the host DOM element. */\n _getHostElement(): HTMLElement {\n return this._elementRef.nativeElement\n }\n\n /** Prevents the default element actions if it is disabled. */\n @HostListener('click', ['$event'])\n _checkDisabled(event: Event): void {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n\n /** Emits to the hover stream. */\n @HostListener('mouseenter')\n _handleMouseEnter() {\n this._hovered.next(this)\n }\n\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel(): string {\n const element: HTMLElement = this._elementRef.nativeElement\n const textNodeType = this._document ? this._document.TEXT_NODE : 3\n let output = ''\n\n if (element.childNodes) {\n const length = element.childNodes.length\n\n // Go through all the top-level text nodes and extract their text.\n // We skip anything that's not a text node to prevent the text from\n // being thrown off by something like an icon.\n for (let i = 0; i < length; i++) {\n if (element.childNodes[i].nodeType === textNodeType) {\n output += element.childNodes[i].textContent\n }\n }\n }\n\n return output.trim()\n }\n\n _setHighlighted(isHighlighted: boolean) {\n this._highlighted = isHighlighted\n this._changeDetectorRef?.markForCheck()\n }\n\n _setTriggersSubmenu(triggersSubmenu: boolean) {\n this._triggersSubmenu = triggersSubmenu\n this._changeDetectorRef?.markForCheck()\n }\n\n _hasFocus(): boolean {\n return this._document && this._document.activeElement === this._getHostElement()\n }\n}\n","<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 <div class=\"flex-fill\">\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -8px\"\n >{{ badgeText }}</span>\n </div>\n </div>\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","import { animate, group, query, style, transition, trigger, useAnimation, AnimationEvent } from '@angular/animations'\nimport { FocusKeyManager, FocusOrigin } from '@angular/cdk/a11y'\nimport { coerceNumberProperty } from '@angular/cdk/coercion'\nimport { DOWN_ARROW, END, ESCAPE, hasModifierKey, HOME, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes'\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core'\nimport { BehaviorSubject, fromEvent, merge, Observable, of, Subject, Subscription } from 'rxjs'\n\nimport { distinctUntilChanged, map, startWith, switchMap, takeUntil } from 'rxjs/operators'\nimport { menuDropdownPanelIn, menuDropdownPanelOut, menuDropdownPanelSlideIn, menuDropdownPanelSlideOut } from './menu-animations'\nimport { MenuItemComponent } from './menu-item.component'\nimport { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\n\nimport { MenuFooterComponent } from './menu-footer/menu-footer.component'\nimport { MenuHeaderComponent } from './menu-header/menu-header.component'\nimport { Direction } from '@angular/cdk/bidi'\n\nlet menuPanelUid = 0\n\n/** Reason why the menu was closed. */\nexport type MenuCloseReason = void | 'click' | 'keydown' | 'tab'\n\nexport const LIB_MENU: any = {\n provide: THESEAM_MENU_PANEL,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => MenuComponent)\n}\n\n@Component({\n selector: 'seam-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n providers: [ LIB_MENU ],\n animations: [\n trigger('slideDown', [\n transition(':enter', useAnimation(menuDropdownPanelIn)),\n transition(':leave', useAnimation(menuDropdownPanelOut)),\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'seamMenu'\n})\nexport class MenuComponent implements OnDestroy, AfterContentInit, ITheSeamMenuPanel {\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n readonly panelId = `menu-panel-${menuPanelUid++}`\n\n private _footer = new BehaviorSubject<MenuFooterComponent | undefined | null>(undefined)\n public hasFooter$ = this._footer.pipe(map(v => v !== null && v !== undefined))\n\n private _header = new BehaviorSubject<MenuHeaderComponent | undefined | null>(undefined)\n public hasHeader$ = this._header.pipe(map(v => v !== null && v !== undefined))\n\n private _keyManager?: FocusKeyManager<MenuItemComponent>\n\n /** Menu items inside the current menu. */\n private _items: MenuItemComponent[] = []\n\n /** Emits whenever the amount of menu items changes. */\n private _itemChanges = new Subject<MenuItemComponent[]>()\n\n /** Subscription to tab events on the menu panel */\n private _tabSubscription = Subscription.EMPTY\n\n /** Parent menu of the current menu panel. */\n parentMenu: ITheSeamMenuPanel | undefined\n\n /** Layout direction of the menu. */\n direction: Direction | undefined\n\n /** Emits whenever an animation on the menu completes. */\n readonly _animationDone = new Subject<AnimationEvent>()\n\n /** Whether the menu is animating. */\n _isAnimating = false\n\n @ViewChild(TemplateRef) templateRef?: TemplateRef<any>\n\n @Output() readonly closed = new EventEmitter<MenuCloseReason>()\n\n @Input() menuClass: string | undefined | null\n\n /**\n * Defines a width for a menu that will scale down if the window innerWidth is\n * smaller than the value.\n */\n @Input()\n get baseWidth() { return this._baseWidth.value }\n set baseWidth(value: number | null) {\n const _val = coerceNumberProperty(value, null)\n if (_val !== this._baseWidth.value) {\n this._baseWidth.next(_val)\n }\n }\n private _baseWidth = new BehaviorSubject<number | null>(null)\n _menuWidth$: Observable<string | undefined>\n\n @Input() animationType: 'slide' | 'fade' = 'slide'\n\n constructor() {\n this._menuWidth$ = this._baseWidth.pipe(\n switchMap(baseWidth => {\n if (baseWidth) {\n return fromEvent(window, 'resize').pipe(\n startWith(undefined),\n map(() => window.innerWidth < baseWidth ? `${window.innerWidth}px` : `${baseWidth}px`)\n )\n }\n return of(undefined)\n }),\n distinctUntilChanged(),\n takeUntil(this._ngUnsubscribe)\n )\n }\n\n ngOnDestroy() {\n this._tabSubscription.unsubscribe()\n this.closed.complete()\n\n this._ngUnsubscribe.next(undefined)\n this._ngUnsubscribe.complete()\n }\n\n ngAfterContentInit() {\n this._keyManager = new FocusKeyManager<MenuItemComponent>(this._items).withWrap().withTypeAhead()\n this._tabSubscription = this._keyManager.tabOut.subscribe(() => this.closed.emit('tab'))\n }\n\n /** Stream that emits whenever the hovered menu item changes. */\n _hovered(): Observable<MenuItemComponent> {\n return this._itemChanges.pipe(\n startWith(this._items),\n switchMap(items => merge(...items.map(item => item._hovered)))\n )\n }\n\n /** Handle a keyboard event from the menu, delegating to the appropriate action. */\n _handleKeydown(event: KeyboardEvent) {\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode\n const manager = this._keyManager\n\n switch (keyCode) {\n case ESCAPE:\n if (!hasModifierKey(event)) {\n event.preventDefault()\n this.closed.emit('keydown')\n }\n break\n case LEFT_ARROW:\n if (this.parentMenu && this.direction === 'ltr') {\n this.closed.emit('keydown')\n }\n break\n case RIGHT_ARROW:\n if (this.parentMenu && this.direction === 'rtl') {\n this.closed.emit('keydown')\n }\n break\n case HOME:\n case END:\n if (!hasModifierKey(event)) {\n keyCode === HOME ? manager?.setFirstItemActive() : manager?.setLastItemActive()\n event.preventDefault()\n }\n break\n default:\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n manager?.setFocusOrigin('keyboard')\n }\n\n manager?.onKeydown(event)\n }\n }\n\n /**\n * Focus the first item in the menu.\n * @param origin Action from which the focus originated. Used to set the correct styling.\n */\n focusFirstItem(origin: FocusOrigin = 'program'): void {\n this._keyManager?.setFocusOrigin(origin).setFirstItemActive()\n }\n\n /**\n * Resets the active item in the menu. This is used when the menu is opened, allowing\n * the user to start from the first option when pressing the down arrow.\n */\n resetActiveItem() {\n this._keyManager?.setActiveItem(-1)\n }\n\n /** Registers a menu item with the menu. */\n addItem(item: MenuItemComponent) {\n // We register the items through this method, rather than picking them up through\n // `ContentChildren`, because we need the items to be picked up by their closest\n // `seam-menu` ancestor. If we used `@ContentChildren(MenuItemComponent, {descendants: true})`,\n // all descendant items will bleed into the top-level menu in the case where the consumer\n // has `seam-menu` instances nested inside each other.\n if (this._items.indexOf(item) === -1) {\n this._items.push(item)\n this._itemChanges.next(this._items)\n }\n }\n\n /** Removes an item from the menu. */\n removeItem(item: MenuItemComponent) {\n const index = this._items.indexOf(item)\n\n if (this._items.indexOf(item) > -1) {\n this._items.splice(index, 1)\n this._itemChanges.next(this._items)\n }\n }\n\n /** Sets the footer component. */\n setFooter(footer?: MenuFooterComponent) {\n this._footer.next(footer)\n }\n\n /** Sets the header component. */\n setHeader(header?: MenuHeaderComponent) {\n this._header.next(header)\n }\n\n _dropdownMenuClick(event: Event) {\n // This is needed, because some menu's will get stuck open if the component\n // managing the menu is destroyed before the menu finishes its cleanup. I\n // may look for a fix to that eventually.\n this.closed.emit('click')\n }\n\n /** Callback that is invoked when the panel animation completes. */\n _onAnimationDone(event: AnimationEvent) {\n this._animationDone.next(event)\n this._isAnimating = false\n }\n\n _onAnimationStart(event: AnimationEvent) {\n this._isAnimating = true\n\n // Scroll the content element to the top as soon as the animation starts. This is necessary,\n // because we move focus to the first item while it's still being animated, which can throw\n // the browser off when it determines the scroll position. Alternatively we can move focus\n // when the animation is done, however moving focus asynchronously will interrupt screen\n // readers which are in the process of reading out the menu already. We take the `element`\n // from the `event` since we can't use a `ViewChild` to access the pane.\n if (event.toState === 'enter' && this._keyManager?.activeItemIndex === 0) {\n event.element.scrollTop = 0\n }\n }\n\n}\n","<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","import { FocusMonitor, FocusOrigin, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y'\nimport { Direction, Directionality } from '@angular/cdk/bidi'\nimport { DOWN_ARROW, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW } from '@angular/cdk/keycodes'\nimport { ConnectionPositionPair, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay'\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform'\nimport { TemplatePortal } from '@angular/cdk/portal'\nimport { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostListener, inject, Inject, Input, OnDestroy, Optional, Output, Self, ViewContainerRef } from '@angular/core'\nimport { asapScheduler, delay, filter, merge, Observable, of, Subscription, take, takeUntil } from 'rxjs'\n\nimport { MenuItemComponent } from './menu-item.component'\nimport { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\nimport { MenuCloseReason, MenuComponent } from './menu.component'\n\ndeclare const ngDevMode: any\n\n/** Options for binding a passive event listener. */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true })\n\n@Directive({\n selector: '[seamMenuToggle]',\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'class': 'seam-menu-toggle',\n 'aria-haspopup': 'true',\n '[attr.aria-expanded]': 'menuOpen() || null',\n '[attr.aria-controls]': 'menuOpen() ? menu.panelId : null',\n },\n exportAs: 'seamMenuToggle'\n})\nexport class MenuToggleDirective implements OnDestroy, AfterContentInit {\n\n private _active = false\n private _overlayRef?: OverlayRef\n private _menuClosedSubscription = Subscription.EMPTY\n private _closingActionsSubscription = Subscription.EMPTY\n private _hoverSubscription = Subscription.EMPTY\n private readonly _changeDetectorRef = inject(ChangeDetectorRef)\n\n public restoreFocus = true\n\n // Tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the menu is opened via the keyboard\n _openedBy: 'mouse' | 'touch' | 'keyboard' | null = null\n\n @Input('seamMenuToggle')\n get menu() { return this._menu }\n set menu(menu: MenuComponent | undefined | null) {\n if (menu === this._menu) {\n return\n }\n\n this._menu = menu\n this._menuClosedSubscription.unsubscribe()\n\n if (menu) {\n if (menu === this._parentMenuComponent && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(\n `seamMenuToggle: menu cannot contain its own trigger. Assign a menu that is ` +\n `not a parent of the trigger or move the trigger outside of the menu.`,\n )\n }\n\n this._menuClosedSubscription = menu.closed.subscribe((reason: MenuCloseReason) => {\n // this._destroyMenu(reason)\n this.closeMenu()\n\n // If a click closed the menu, we should close the entire chain of nested menus.\n if ((reason === 'click' || reason === 'tab') && this._parentMenuComponent) {\n this._parentMenuComponent.closed.emit(reason)\n }\n })\n }\n\n this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu())\n }\n _menu: MenuComponent | undefined | null\n\n @Input()\n set positions(val: ConnectionPositionPair[]) {\n this._positions = val\n if (this.menuOpen()) {\n this._overlayRef?.updatePositionStrategy(this.getOverlayPosition(this._elementRef.nativeElement))\n }\n }\n get positions() {\n const positions = this._positions\n\n if (this.triggersSubmenu()) {\n return [\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: -11,\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: -11,\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n }\n\n return positions\n }\n private _positions: ConnectionPositionPair[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n\n /** Event emitted when the associated menu is opened. */\n @Output() readonly menuOpened = new EventEmitter<void>()\n\n /** Event emitted when the associated menu is opened. */\n @Output() readonly menuClosed = new EventEmitter<void>()\n\n @HostListener('mousedown', [ '$event' ])\n _onMouseDown(event: MouseEvent) {\n if (!isFakeMousedownFromScreenReader(event)) {\n // Since right or middle button clicks won't trigger the `click` event,\n // we shouldn't consider the menu as opened by mouse in those cases.\n this._openedBy = event.button === 0 ? 'mouse' : null\n\n // Since clicking on the trigger won't close the menu if it opens a sub-menu,\n // we should prevent focus from moving onto it via click to avoid the\n // highlight from lingering on the menu item.\n if (this.triggersSubmenu()) {\n event.preventDefault()\n }\n }\n }\n\n @HostListener('keydown', [ '$event' ])\n _onKeydown(event: any) {\n this._openedBy = null\n // console.log('keydown', event)\n\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode\n\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n if (this.menuOpen()) {\n this.menu?.focusFirstItem(this._openedBy || 'program')\n }\n } else if (keyCode === ESCAPE) {\n this.closeMenu()\n }\n\n // Pressing enter on the trigger will trigger the click handler later.\n if (keyCode === ENTER || keyCode === SPACE) {\n this._openedBy = 'keyboard'\n }\n\n if (\n this.triggersSubmenu() &&\n ((keyCode === RIGHT_ARROW && this.dir === 'ltr') ||\n (keyCode === LEFT_ARROW && this.dir === 'rtl'))\n ) {\n this._openedBy = 'keyboard'\n this.openMenu()\n }\n }\n\n @HostListener('click', [ '$event' ])\n _onClick(event: any) {\n if (this.triggersSubmenu()) {\n // Stop event propagation to avoid closing the parent menu.\n event.stopPropagation()\n this.openMenu()\n } else {\n this.toggle()\n }\n }\n\n @HostListener('document:keydown', [ '$event' ])\n _onDocumentKeydown(event: any) {\n if (event.keyCode === ESCAPE) {\n this.closeMenu()\n }\n }\n\n // @HostListener('document:mousedown', [ '$event' ])\n // _onDocumentMouseDown(event: any) {\n // console.log('outside click')\n // }\n\n private readonly _parentMenuComponent?: MenuComponent\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _overlay: Overlay,\n private readonly _focusMonitor: FocusMonitor,\n @Inject(THESEAM_MENU_PANEL) @Optional() private readonly _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>,\n @Optional() @Self() private readonly _menuItemInstance?: MenuItemComponent,\n @Optional() private readonly _dir?: Directionality,\n ) {\n this._parentMenuComponent = this._parentMenu instanceof MenuComponent ? this._parentMenu : undefined\n\n this._elementRef.nativeElement.addEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n }\n\n ngOnDestroy() {\n this.closeMenu()\n\n this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._menuClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n this._hoverSubscription.unsubscribe()\n }\n\n ngAfterContentInit() {\n this._handleHover()\n }\n\n /**\n * Handles touch start events on the trigger.\n * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.\n */\n private _handleTouchStart = () => this._openedBy = 'touch'\n\n public toggle(): void {\n if (this._active) {\n this.closeMenu()\n } else {\n this.openMenu()\n }\n }\n\n public openMenu(): void {\n if (this._active || !this.menu) { return }\n this._active = true\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: !this._parentMenuComponent,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy: this.getOverlayPosition(this._elementRef.nativeElement),\n })\n\n const tpl = this.menu.templateRef\n if (!tpl) {\n throw Error(`Menu template not found.`)\n }\n\n this._overlayRef.attach(new TemplatePortal(tpl, this._viewContainerRef))\n\n this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.closeMenu())\n this._initMenu(this.menu)\n\n this._menuClosedSubscription = this.menu.closed.subscribe(v => {\n // console.log('closed', v)\n this.closeMenu()\n })\n\n // this._overlayRef.backdropClick().subscribe(v => {\n // console.log('backdropClick', v)\n // })\n }\n\n /** The text direction of the containing app. */\n get dir(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr'\n }\n\n /** Whether the menu triggers a sub-menu or a top-level one. */\n triggersSubmenu(): boolean {\n return !!(this._menuItemInstance && this._parentMenuComponent && this.menu)\n }\n\n public closeMenu(): void {\n if (!this._active) { return }\n let emitCloseEvent = false\n if (this.menuOpen()) {\n emitCloseEvent = true\n }\n\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef?.detach()\n }\n\n this._resetMenu()\n\n this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._menuClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n\n if (emitCloseEvent) {\n this.menu?.closed.emit()\n }\n\n this._active = false\n }\n\n public menuOpen(): boolean {\n return (this._overlayRef && this._overlayRef.hasAttached()) ?? false\n }\n\n private getOverlayPosition(origin: HTMLElement): PositionStrategy {\n const positionStrategy = this._overlay.position()\n .flexibleConnectedTo(origin)\n .withPositions(this.positions)\n .withFlexibleDimensions(false)\n .withPush(true)\n\n return positionStrategy\n }\n\n /**\n * Focuses the menu trigger.\n * @param origin Source of the menu trigger's focus.\n */\n focus(origin: FocusOrigin = 'program') {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._elementRef, origin)\n } else {\n this._elementRef.nativeElement.focus()\n }\n }\n\n /**\n * This method sets the menu state to open and focuses the first item if\n * the menu was opened via the keyboard.\n */\n private _initMenu(menu: MenuComponent): void {\n menu.parentMenu = this.triggersSubmenu() ? this._parentMenu : undefined\n menu.direction = this.dir\n // this._setMenuElevation(menu)\n menu.focusFirstItem(this._openedBy || 'program')\n this._setIsMenuOpen(true)\n }\n\n /**\n * This method resets the menu when it's closed, most importantly restoring\n * focus to the menu trigger if the menu was opened via the keyboard.\n */\n private _resetMenu(): void {\n this._setIsMenuOpen(false)\n\n // We should reset focus if the user is navigating using a keyboard or\n // if we have a top-level trigger which might cause focus to be lost\n // when clicking on the backdrop.\n if (this.restoreFocus) {\n if (!this._openedBy) {\n // Note that the focus style will show up both for `program` and\n // `keyboard` so we don't have to specify which one it is.\n this.focus()\n } else if (!this.triggersSubmenu()) {\n this.focus(this._openedBy)\n }\n }\n\n this._openedBy = null\n }\n\n // set state rather than toggle to support triggers sharing a menu\n private _setIsMenuOpen(isOpen: boolean): void {\n if (isOpen !== this.menuOpen()) {\n // this._menuOpen = isOpen\n this.menuOpen() ? this.menuOpened.emit() : this.menuClosed.emit()\n\n if (this.triggersSubmenu()) {\n this._menuItemInstance?._setHighlighted(isOpen)\n }\n\n this._changeDetectorRef.markForCheck()\n }\n }\n\n /** Returns a stream that emits whenever an action that should close the menu occurs. */\n private _menuClosingActions() {\n const backdrop = this._overlayRef?.backdropClick() ?? of()\n const detachments = this._overlayRef?.detachments() ?? of()\n const parentClose = this._parentMenu ? this._parentMenu.closed : of()\n const hover = this._parentMenuComponent ? this._parentMenuComponent._hovered().pipe(\n filter(active => active !== this._menuItemInstance),\n filter(() => this.menuOpen())\n ) : of()\n\n return merge(backdrop, parentClose as Observable<MenuCloseReason>, hover, detachments)\n }\n\n /** Handles the cases where the user hovers over the trigger. */\n private _handleHover() {\n // Subscribe to changes in the hovered item in order to toggle the panel.\n if (!this.triggersSubmenu() || !this._parentMenuComponent) {\n return\n }\n\n this._hoverSubscription = this._parentMenuComponent\n ._hovered()\n // Since we might have multiple competing triggers for the same menu (e.g. a sub-menu\n // with different data and triggers), we have to delay it by a tick to ensure that\n // it won't be closed immediately after it is opened.\n .pipe(\n filter(active => active === this._menuItemInstance && !active.disabled),\n delay(0, asapScheduler),\n )\n .subscribe(() => {\n this._openedBy = 'mouse'\n\n // If the same menu is used between multiple triggers, it might still be animating\n // while the new trigger tries to re-open it. Wait for the animation to finish\n // before doing so. Also interrupt if the user moves to another item.\n if (this.menu instanceof MenuComponent && this.menu._isAnimating) {\n // We need the `delay(0)` here in order to avoid\n // 'changed after checked' errors in some cases. See #12194.\n this.menu._animationDone\n .pipe(take(1), delay(0, asapScheduler), takeUntil(this._parentMenuComponent!._hovered()))\n .subscribe(() => this.openMenu())\n } else {\n this.openMenu()\n }\n })\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input } from '@angular/core'\n\n// TODO: Split up the button and anchor classes.\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[seamMenuFooterAction],a[seamMenuFooterAction]',\n templateUrl: './menu-footer-action.component.html',\n styleUrls: ['./menu-footer-action.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuFooterActionComponent {\n\n @HostBinding('attr.type') get _attrType() { return this.type }\n\n /** ARIA type for the button. */\n @Input()\n get type() { return this._isButton() ? this._type || 'button' : undefined }\n set type(value: 'button' | 'submit' | 'reset' | undefined | null) {\n this._type = value\n }\n private _type: 'button' | 'submit' | 'reset' | undefined | null\n\n @HostBinding('class.btn') get _classBtn() { return this._isButton() }\n @HostBinding('class.btn-link') get _classBtnLink() { return this._isButton() }\n\n @HostBinding('style.padding.px') get _stylePadding() { return this._isButton() && 0 }\n @HostBinding('style.border.px') get _styleBorder() { return this._isButton() && 0 }\n @HostBinding('style.display.px') get _styleDisplay() { return this._isButton() && 'inline' }\n\n constructor(\n private _elementRef: ElementRef\n ) { }\n\n /** Determines if the component host is a button. */\n protected _isButton() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n\n /** Determines if the component host is an anchor. */\n protected _isAnchor() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a'\n }\n\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core'\n\nimport { MenuItemComponent } from '../menu-item.component'\nimport type { ITheSeamMenuPanel } from '../menu-panel'\nimport { THESEAM_MENU_PANEL } from '../menu-panel-token'\n\n@Component({\n selector: 'seam-menu-footer',\n templateUrl: './menu-footer.component.html',\n styleUrls: ['./menu-footer.component.scss'],\n host: {\n 'class': 'd-flex flex-column text-center bg-light border-top rounded-bottom py-2'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuFooterComponent implements OnInit, OnDestroy {\n\n constructor(\n @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) { }\n\n ngOnInit() {\n if (this._parentMenu && this._parentMenu.setFooter) {\n this._parentMenu.setFooter(this)\n }\n }\n\n ngOnDestroy() {\n if (this._parentMenu && this._parentMenu.setFooter) {\n this._parentMenu.setFooter(undefined)\n }\n }\n\n}\n","<ng-content select=\"a[seamMenuFooterAction],button[seamMenuFooterAction]\"></ng-content>\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core'\n\nimport { MenuItemComponent } from '../menu-item.component'\nimport type { ITheSeamMenuPanel } from '../menu-panel'\nimport { THESEAM_MENU_PANEL } from '../menu-panel-token'\n\n@Component({\n selector: 'seam-menu-header',\n templateUrl: './menu-header.component.html',\n styleUrls: ['./menu-header.component.scss'],\n host: {\n 'class': 'd-flex flex-column bg-light border-bottom rounded-top py-2 mb-2'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuHeaderComponent implements OnInit, OnDestroy {\n\n constructor(\n @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) { }\n\n ngOnInit() {\n if (this._parentMenu && this._parentMenu.setHeader) {\n this._parentMenu.setHeader(this)\n }\n }\n\n ngOnDestroy() {\n if (this._parentMenu && this._parentMenu.setHeader) {\n this._parentMenu.setHeader(undefined)\n }\n }\n\n}\n","<ng-content></ng-content>\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\n\nimport { MenuDividerComponent } from './menu-divider.component'\nimport { MenuFooterActionComponent } from './menu-footer-action/menu-footer-action.component'\nimport { MenuFooterComponent } from './menu-footer/menu-footer.component'\nimport { MenuHeaderComponent } from './menu-header/menu-header.component'\nimport { MenuItemComponent } from './menu-item.component'\nimport { MenuToggleDirective } from './menu-toggle.directive'\nimport { MenuComponent } from './menu.component'\n\n@NgModule({\n declarations: [\n MenuComponent,\n MenuToggleDirective,\n MenuItemComponent,\n MenuDividerComponent,\n MenuFooterComponent,\n MenuFooterActionComponent,\n MenuHeaderComponent,\n ],\n imports: [\n CommonModule,\n OverlayModule,\n TheSeamIconModule\n ],\n exports: [\n MenuComponent,\n MenuToggleDirective,\n MenuItemComponent,\n MenuDividerComponent,\n\n TheSeamIconModule,\n OverlayModule,\n MenuFooterComponent,\n MenuFooterActionComponent,\n MenuHeaderComponent\n ]\n})\nexport class TheSeamMenuModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","takeUntil","i3.MenuItemComponent"],"mappings":"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"}