@theseam/ui-common 0.4.0-beta.2 → 0.4.0-beta.3

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 (546) hide show
  1. package/breadcrumbs/breadcrumb.d.ts +1 -1
  2. package/breadcrumbs/breadcrumbs-resolver.d.ts +1 -1
  3. package/core/common-behaviors/active.d.ts +1 -1
  4. package/core/common-behaviors/constructor.d.ts +1 -1
  5. package/core/common-behaviors/disabled.d.ts +1 -1
  6. package/core/common-behaviors/initialized.d.ts +1 -1
  7. package/core/common-behaviors/size.d.ts +1 -1
  8. package/core/common-behaviors/tabindex.d.ts +1 -1
  9. package/core/common-behaviors/theme.d.ts +1 -1
  10. package/data-exporter/data-exporter.d.ts +1 -1
  11. package/data-filters/data-filter.d.ts +3 -3
  12. package/data-filters/filters/data-filter-search/search-filter-options.d.ts +1 -1
  13. package/datatable/datatable-column/datatable-column.component.d.ts +1 -1
  14. package/datatable/models/preferences.d.ts +1 -1
  15. package/datatable/models/table-column.d.ts +1 -1
  16. package/datatable/services/columns-manager.service.d.ts +1 -1
  17. package/datatable-dynamic/datatable-dynamic-def.d.ts +3 -3
  18. package/datatable-dynamic/models/dynamic-datatable-action-menu-record.d.ts +1 -1
  19. package/dynamic/models/dynamic-value-base-type.d.ts +1 -1
  20. package/dynamic/models/dynamic-value-evaluatable-type.d.ts +1 -1
  21. package/dynamic/models/dynamic-value-primitive.d.ts +1 -1
  22. package/dynamic/models/dynamic-value.d.ts +1 -1
  23. package/dynamic/tokens/api-config.d.ts +1 -1
  24. package/esm2020/asset-reader/asset-reader-helper.service.mjs +3 -3
  25. package/esm2020/asset-reader/asset-reader.module.mjs +4 -4
  26. package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +12 -12
  27. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +3 -3
  28. package/esm2020/breadcrumbs/breadcrumbs.module.mjs +4 -4
  29. package/esm2020/breadcrumbs/breadcrumbs.service.mjs +3 -3
  30. package/esm2020/buttons/badge-button/badge-button.component.mjs +6 -6
  31. package/esm2020/buttons/button/button.component.mjs +9 -9
  32. package/esm2020/buttons/buttons.module.mjs +4 -4
  33. package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +3 -3
  34. package/esm2020/buttons/toggle-button/toggle-button.component.mjs +5 -5
  35. package/esm2020/card/card-action/card-action.component.mjs +3 -3
  36. package/esm2020/card/card-body/card-body.component.mjs +3 -3
  37. package/esm2020/card/card-footer/card-footer.component.mjs +3 -3
  38. package/esm2020/card/card-header/card-header.component.mjs +3 -3
  39. package/esm2020/card/card.component.mjs +3 -3
  40. package/esm2020/card/card.module.mjs +4 -4
  41. package/esm2020/checkbox/checkbox.component.mjs +43 -43
  42. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  43. package/esm2020/checkbox/testing/checkbox.harness.mjs +1 -1
  44. package/esm2020/checkbox/testing/index.mjs +1 -1
  45. package/esm2020/confirm-dialog/confirm-click.directive.mjs +9 -9
  46. package/esm2020/confirm-dialog/confirm-dialog.component.mjs +3 -3
  47. package/esm2020/confirm-dialog/confirm-dialog.module.mjs +4 -4
  48. package/esm2020/confirm-dialog/confirm-dialog.service.mjs +3 -3
  49. package/esm2020/core/common-behaviors/active.mjs +3 -3
  50. package/esm2020/core/common-behaviors/disabled.mjs +3 -3
  51. package/esm2020/core/common-behaviors/size.mjs +6 -6
  52. package/esm2020/core/common-behaviors/tabindex.mjs +5 -5
  53. package/esm2020/core/common-behaviors/theme.mjs +6 -6
  54. package/esm2020/data-exporter/data-exporter.module.mjs +4 -4
  55. package/esm2020/data-exporter/exporters/csv-exporter.mjs +3 -3
  56. package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +3 -3
  57. package/esm2020/data-filters/data-filters.module.mjs +4 -4
  58. package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +10 -10
  59. package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +10 -10
  60. package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +11 -11
  61. package/esm2020/datatable/datatable/datatable.component.mjs +108 -108
  62. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +3 -3
  63. package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +3 -3
  64. package/esm2020/datatable/datatable-column/datatable-column.component.mjs +7 -7
  65. package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +3 -3
  66. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +3 -3
  67. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +7 -7
  68. package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +3 -3
  69. package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +3 -3
  70. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +8 -8
  71. package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +3 -3
  72. package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +3 -3
  73. package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +3 -3
  74. package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +3 -3
  75. package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +3 -3
  76. package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +3 -3
  77. package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +3 -3
  78. package/esm2020/datatable/datatable.module.mjs +4 -4
  79. package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +3 -3
  80. package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +11 -11
  81. package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +3 -3
  82. package/esm2020/datatable/directives/datatable-filter.directive.mjs +3 -3
  83. package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +3 -3
  84. package/esm2020/datatable/services/columns-alterations-manager.service.mjs +3 -3
  85. package/esm2020/datatable/services/columns-manager.service.mjs +3 -3
  86. package/esm2020/datatable/services/datatable-column-changes.service.mjs +3 -3
  87. package/esm2020/datatable/services/datatable-preferences.service.mjs +6 -6
  88. package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +3 -3
  89. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +12 -12
  90. package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +8 -8
  91. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +6 -6
  92. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +8 -8
  93. package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +4 -4
  94. package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +7 -7
  95. package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +3 -3
  96. package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +3 -3
  97. package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +3 -3
  98. package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +3 -3
  99. package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +3 -3
  100. package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +3 -3
  101. package/esm2020/dynamic/dynamic-value-helper.service.mjs +3 -3
  102. package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +3 -3
  103. package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +3 -3
  104. package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +4 -4
  105. package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +3 -3
  106. package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +3 -3
  107. package/esm2020/footer-bar/footer-bar.module.mjs +4 -4
  108. package/esm2020/form-field/form-field-error.directive.mjs +6 -6
  109. package/esm2020/form-field/form-field-help-text.directive.mjs +3 -3
  110. package/esm2020/form-field/form-field-label-tpl.directive.mjs +3 -3
  111. package/esm2020/form-field/form-field-required-indicator.component.mjs +3 -3
  112. package/esm2020/form-field/form-field-tokens.mjs +1 -1
  113. package/esm2020/form-field/form-field.component.mjs +48 -48
  114. package/esm2020/form-field/form-field.module.mjs +4 -4
  115. package/esm2020/form-field/input.directive.mjs +43 -43
  116. package/esm2020/form-field/testing/form-field-required-indicator.harness.mjs +1 -1
  117. package/esm2020/form-field/testing/index.mjs +1 -1
  118. package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +3 -3
  119. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +3 -3
  120. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +3 -3
  121. package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +92 -92
  122. package/esm2020/form-field-error/form-field-error.module.mjs +4 -4
  123. package/esm2020/framework/base-layout/base-layout.component.mjs +6 -6
  124. package/esm2020/framework/base-layout/base-layout.module.mjs +4 -4
  125. package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +3 -3
  126. package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +3 -3
  127. package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +3 -3
  128. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +10 -10
  129. package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +3 -3
  130. package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +3 -3
  131. package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +3 -3
  132. package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +3 -3
  133. package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +3 -3
  134. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +3 -3
  135. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +3 -3
  136. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +18 -18
  137. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +12 -12
  138. package/esm2020/framework/dashboard/dashboard-widgets-tokens.mjs +1 -1
  139. package/esm2020/framework/dashboard/dashboard.component.mjs +3 -3
  140. package/esm2020/framework/dashboard/dashboard.module.mjs +4 -4
  141. package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +4 -4
  142. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +3 -3
  143. package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +3 -3
  144. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +3 -3
  145. package/esm2020/framework/schema-form/schema-form-framework.mjs +3 -3
  146. package/esm2020/framework/schema-form/schema-form.module.mjs +4 -4
  147. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +3 -3
  148. package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +4 -4
  149. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +3 -3
  150. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +3 -3
  151. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +3 -3
  152. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +3 -3
  153. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +3 -3
  154. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +24 -24
  155. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +3 -3
  156. package/esm2020/framework/side-nav/side-nav-tokens.mjs +1 -1
  157. package/esm2020/framework/side-nav/side-nav.component.mjs +17 -17
  158. package/esm2020/framework/side-nav/side-nav.module.mjs +4 -4
  159. package/esm2020/framework/side-nav/side-nav.service.mjs +3 -3
  160. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +3 -3
  161. package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +3 -3
  162. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +3 -3
  163. package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +3 -3
  164. package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +3 -3
  165. package/esm2020/framework/top-bar/top-bar.component.mjs +3 -3
  166. package/esm2020/framework/top-bar/top-bar.module.mjs +4 -4
  167. package/esm2020/google-maps/google-maps/google-maps.component.mjs +17 -17
  168. package/esm2020/google-maps/google-maps-controls.service.mjs +3 -3
  169. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +20 -20
  170. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +7 -7
  171. package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +7 -7
  172. package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +7 -7
  173. package/esm2020/google-maps/google-maps.module.mjs +4 -4
  174. package/esm2020/google-maps/google-maps.service.mjs +5 -5
  175. package/esm2020/google-maps/map-control.component.mjs +9 -9
  176. package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +3 -3
  177. package/esm2020/google-maps/map-value-manager.service.mjs +3 -3
  178. package/esm2020/graphql/datatable/datatable-graphql-query-ref.mjs +5 -5
  179. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +3 -3
  180. package/esm2020/icon/icon/icon.component.mjs +3 -3
  181. package/esm2020/icon/icon-btn/icon-btn.component.mjs +24 -24
  182. package/esm2020/icon/icon-notification/icon-notification.component.mjs +3 -3
  183. package/esm2020/icon/icon.module.mjs +4 -4
  184. package/esm2020/layout/layout.module.mjs +4 -4
  185. package/esm2020/layout/layout.service.mjs +3 -3
  186. package/esm2020/loading/loading/loading.component.mjs +7 -7
  187. package/esm2020/loading/loading-overlay.service.mjs +3 -3
  188. package/esm2020/loading/loading.module.mjs +4 -4
  189. package/esm2020/menu/menu-divider.component.mjs +3 -3
  190. package/esm2020/menu/menu-footer/menu-footer.component.mjs +3 -3
  191. package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +7 -7
  192. package/esm2020/menu/menu-header/menu-header.component.mjs +3 -3
  193. package/esm2020/menu/menu-item.component.mjs +3 -3
  194. package/esm2020/menu/menu-toggle.directive.mjs +42 -42
  195. package/esm2020/menu/menu.component.mjs +15 -15
  196. package/esm2020/menu/menu.module.mjs +4 -4
  197. package/esm2020/modal/directives/modal-close.directive.mjs +11 -11
  198. package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +3 -3
  199. package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +3 -3
  200. package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +3 -3
  201. package/esm2020/modal/directives/modal-title.directive.mjs +3 -3
  202. package/esm2020/modal/directives/modal.directive.mjs +3 -3
  203. package/esm2020/modal/modal/modal.component.mjs +19 -19
  204. package/esm2020/modal/modal-body/modal-body.component.mjs +3 -3
  205. package/esm2020/modal/modal-container/modal-container.component.mjs +12 -12
  206. package/esm2020/modal/modal-footer/modal-footer.component.mjs +3 -3
  207. package/esm2020/modal/modal-header/modal-header.component.mjs +3 -3
  208. package/esm2020/modal/modal.module.mjs +4 -4
  209. package/esm2020/modal/modal.service.mjs +16 -16
  210. package/esm2020/modal/route-modal/route-modal.component.mjs +3 -3
  211. package/esm2020/popover/popover/popover.component.mjs +18 -18
  212. package/esm2020/popover/popover.directive.mjs +32 -32
  213. package/esm2020/popover/popover.module.mjs +4 -4
  214. package/esm2020/progress/progress-circle/progress-circle.component.mjs +9 -9
  215. package/esm2020/progress/progress.module.mjs +4 -4
  216. package/esm2020/public_api.mjs +1 -42
  217. package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +10 -10
  218. package/esm2020/scrollbar/overlay-scrollbars.service.mjs +3 -3
  219. package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
  220. package/esm2020/services/asset-loader.service.mjs +3 -3
  221. package/esm2020/services/font-loader.service.mjs +3 -3
  222. package/esm2020/services/router-helpers.service.mjs +3 -3
  223. package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +3 -3
  224. package/esm2020/shared/directives/auto-focus.directive.mjs +3 -3
  225. package/esm2020/shared/directives/click-outside.directive.mjs +9 -9
  226. package/esm2020/shared/directives/disable-control.directive.mjs +7 -7
  227. package/esm2020/shared/directives/elem-resized.directive.mjs +3 -3
  228. package/esm2020/shared/directives/hover-class-toggle.directive.mjs +10 -10
  229. package/esm2020/shared/directives/hover-class.directive.mjs +9 -9
  230. package/esm2020/shared/directives/ng-select-extra.directive.mjs +26 -26
  231. package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +10 -10
  232. package/esm2020/shared/pipes/mask-chars.pipe.mjs +3 -3
  233. package/esm2020/shared/pipes/truncate.pipe.mjs +3 -3
  234. package/esm2020/shared/shared.module.mjs +4 -4
  235. package/esm2020/storage/local-storage.service.mjs +3 -3
  236. package/esm2020/story-helpers/initial-route.service.mjs +3 -3
  237. package/esm2020/story-helpers/story-empty-with-route.component.mjs +3 -3
  238. package/esm2020/story-helpers/story-empty.component.mjs +3 -3
  239. package/esm2020/story-helpers/story-helper-components.module.mjs +4 -4
  240. package/esm2020/story-helpers/story-initial-route.mjs +4 -4
  241. package/esm2020/story-helpers/story-modal-container.component.mjs +6 -6
  242. package/esm2020/story-helpers/story-toastr.service.mjs +3 -3
  243. package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +3 -3
  244. package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +3 -3
  245. package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +3 -3
  246. package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +3 -3
  247. package/esm2020/tabbed/tabbed-models.mjs +1 -1
  248. package/esm2020/tabbed/tabbed.component.mjs +13 -13
  249. package/esm2020/tabbed/tabbed.module.mjs +4 -4
  250. package/esm2020/tabbed/tabbed.service.mjs +3 -3
  251. package/esm2020/table/table/table.component.mjs +11 -11
  252. package/esm2020/table/table.module.mjs +4 -4
  253. package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +3 -3
  254. package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +3 -3
  255. package/esm2020/table-cell-type/table-cell-type.module.mjs +4 -4
  256. package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +3 -3
  257. package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +3 -3
  258. package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +3 -3
  259. package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +31 -31
  260. package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +3 -3
  261. package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +6 -6
  262. package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +3 -3
  263. package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +3 -3
  264. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +23 -23
  265. package/esm2020/table-cell-types/table-cell-types.module.mjs +4 -4
  266. package/esm2020/tel-input/phone-number.pipe.mjs +3 -3
  267. package/esm2020/tel-input/tel-input/tel-input.component.mjs +34 -34
  268. package/esm2020/tel-input/tel-input.directive.mjs +18 -18
  269. package/esm2020/tel-input/tel-input.module.mjs +4 -4
  270. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +20 -20
  271. package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +6 -6
  272. package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +10 -10
  273. package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +3 -3
  274. package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +3 -3
  275. package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +3 -3
  276. package/esm2020/tiled-select/tiled-select.module.mjs +4 -4
  277. package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +3 -3
  278. package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +3 -3
  279. package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +3 -3
  280. package/esm2020/toggle-edit/toggle-edit.component.mjs +16 -16
  281. package/esm2020/toggle-edit/toggle-edit.module.mjs +4 -4
  282. package/esm2020/toggle-group/toggle-group-option.directive.mjs +12 -12
  283. package/esm2020/toggle-group/toggle-group.directive.mjs +3 -3
  284. package/esm2020/toggle-group/toggle-group.module.mjs +4 -4
  285. package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +3 -3
  286. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +3 -3
  287. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +3 -3
  288. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +4 -4
  289. package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
  290. package/esm2020/utils/geo-json/geo-json-to-area.mjs +1 -1
  291. package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
  292. package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
  293. package/esm2020/utils/geo-json/is-only-geometry-types.validator.mjs +1 -1
  294. package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
  295. package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
  296. package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
  297. package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +37 -37
  298. package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +4 -4
  299. package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +10 -10
  300. package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +3 -3
  301. package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +38 -38
  302. package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +4 -4
  303. package/esm2020/widget/directives/widget-drag-handle.directive.mjs +12 -12
  304. package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +3 -3
  305. package/esm2020/widget/directives/widget-title-tpl.directive.mjs +3 -3
  306. package/esm2020/widget/widget/widget.component.mjs +23 -23
  307. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +3 -3
  308. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +4 -4
  309. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +3 -3
  310. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +4 -4
  311. package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +3 -3
  312. package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +4 -4
  313. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +7 -7
  314. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +4 -4
  315. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +3 -3
  316. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +4 -4
  317. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +3 -3
  318. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +4 -4
  319. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +3 -3
  320. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +4 -4
  321. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +3 -3
  322. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +15 -15
  323. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +3 -3
  324. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +4 -4
  325. package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +3 -3
  326. package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +4 -4
  327. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +3 -3
  328. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +8 -8
  329. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +3 -3
  330. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +3 -3
  331. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +16 -16
  332. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +4 -4
  333. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +3 -3
  334. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +4 -4
  335. package/esm2020/widget/widget-footer/widget-footer.component.mjs +3 -3
  336. package/esm2020/widget/widget-registry.service.mjs +3 -3
  337. package/esm2020/widget/widget.module.mjs +4 -4
  338. package/fesm2015/theseam-ui-common-asset-reader.mjs +18 -18
  339. package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
  340. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +10 -10
  341. package/fesm2015/theseam-ui-common-buttons.mjs +26 -26
  342. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  343. package/fesm2015/theseam-ui-common-card.mjs +19 -19
  344. package/fesm2015/theseam-ui-common-checkbox.mjs +46 -46
  345. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  346. package/fesm2015/theseam-ui-common-confirm-dialog.mjs +18 -18
  347. package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  348. package/fesm2015/theseam-ui-common-core.mjs +18 -18
  349. package/fesm2015/theseam-ui-common-core.mjs.map +1 -1
  350. package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
  351. package/fesm2015/theseam-ui-common-data-filters.mjs +32 -32
  352. package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
  353. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +46 -46
  354. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  355. package/fesm2015/theseam-ui-common-datatable.mjs +208 -208
  356. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  357. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  358. package/fesm2015/theseam-ui-common-dynamic.mjs +21 -21
  359. package/fesm2015/theseam-ui-common-footer-bar.mjs +7 -7
  360. package/fesm2015/theseam-ui-common-form-field-error.mjs +104 -104
  361. package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
  362. package/fesm2015/theseam-ui-common-form-field.mjs +107 -107
  363. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  364. package/fesm2015/theseam-ui-common-framework.mjs +196 -196
  365. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  366. package/fesm2015/theseam-ui-common-google-maps.mjs +78 -78
  367. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  368. package/fesm2015/theseam-ui-common-graphql.mjs +7 -7
  369. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  370. package/fesm2015/theseam-ui-common-icon.mjs +33 -33
  371. package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
  372. package/fesm2015/theseam-ui-common-layout.mjs +7 -7
  373. package/fesm2015/theseam-ui-common-loading.mjs +13 -13
  374. package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
  375. package/fesm2015/theseam-ui-common-menu.mjs +79 -79
  376. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  377. package/fesm2015/theseam-ui-common-modal.mjs +85 -85
  378. package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
  379. package/fesm2015/theseam-ui-common-popover.mjs +52 -52
  380. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  381. package/fesm2015/theseam-ui-common-progress.mjs +12 -12
  382. package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
  383. package/fesm2015/theseam-ui-common-scrollbar.mjs +16 -16
  384. package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
  385. package/fesm2015/theseam-ui-common-services.mjs +9 -9
  386. package/fesm2015/theseam-ui-common-shared.mjs +84 -84
  387. package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
  388. package/fesm2015/theseam-ui-common-storage.mjs +3 -3
  389. package/fesm2015/theseam-ui-common-story-helpers.mjs +25 -25
  390. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  391. package/fesm2015/theseam-ui-common-tabbed.mjs +31 -31
  392. package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
  393. package/fesm2015/theseam-ui-common-table-cell-type.mjs +10 -10
  394. package/fesm2015/theseam-ui-common-table-cell-types.mjs +80 -80
  395. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  396. package/fesm2015/theseam-ui-common-table.mjs +14 -14
  397. package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
  398. package/fesm2015/theseam-ui-common-tel-input.mjs +59 -59
  399. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  400. package/fesm2015/theseam-ui-common-tiled-select.mjs +46 -46
  401. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  402. package/fesm2015/theseam-ui-common-toggle-edit.mjs +28 -28
  403. package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
  404. package/fesm2015/theseam-ui-common-toggle-group.mjs +18 -18
  405. package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
  406. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  407. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  408. package/fesm2015/theseam-ui-common-viewers.mjs +93 -93
  409. package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
  410. package/fesm2015/theseam-ui-common-widget.mjs +175 -175
  411. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  412. package/fesm2015/theseam-ui-common.mjs +0 -41
  413. package/fesm2015/theseam-ui-common.mjs.map +1 -1
  414. package/fesm2020/theseam-ui-common-asset-reader.mjs +18 -18
  415. package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
  416. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +10 -10
  417. package/fesm2020/theseam-ui-common-buttons.mjs +26 -26
  418. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  419. package/fesm2020/theseam-ui-common-card.mjs +19 -19
  420. package/fesm2020/theseam-ui-common-checkbox.mjs +46 -46
  421. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  422. package/fesm2020/theseam-ui-common-confirm-dialog.mjs +18 -18
  423. package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  424. package/fesm2020/theseam-ui-common-core.mjs +18 -18
  425. package/fesm2020/theseam-ui-common-core.mjs.map +1 -1
  426. package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
  427. package/fesm2020/theseam-ui-common-data-filters.mjs +32 -32
  428. package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
  429. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +46 -46
  430. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  431. package/fesm2020/theseam-ui-common-datatable.mjs +208 -208
  432. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  433. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  434. package/fesm2020/theseam-ui-common-dynamic.mjs +21 -21
  435. package/fesm2020/theseam-ui-common-footer-bar.mjs +7 -7
  436. package/fesm2020/theseam-ui-common-form-field-error.mjs +104 -104
  437. package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
  438. package/fesm2020/theseam-ui-common-form-field.mjs +107 -107
  439. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  440. package/fesm2020/theseam-ui-common-framework.mjs +196 -196
  441. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  442. package/fesm2020/theseam-ui-common-google-maps.mjs +78 -78
  443. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  444. package/fesm2020/theseam-ui-common-graphql.mjs +7 -7
  445. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  446. package/fesm2020/theseam-ui-common-icon.mjs +33 -33
  447. package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
  448. package/fesm2020/theseam-ui-common-layout.mjs +7 -7
  449. package/fesm2020/theseam-ui-common-loading.mjs +13 -13
  450. package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
  451. package/fesm2020/theseam-ui-common-menu.mjs +77 -77
  452. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  453. package/fesm2020/theseam-ui-common-modal.mjs +85 -85
  454. package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
  455. package/fesm2020/theseam-ui-common-popover.mjs +52 -52
  456. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  457. package/fesm2020/theseam-ui-common-progress.mjs +12 -12
  458. package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
  459. package/fesm2020/theseam-ui-common-scrollbar.mjs +16 -16
  460. package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
  461. package/fesm2020/theseam-ui-common-services.mjs +9 -9
  462. package/fesm2020/theseam-ui-common-shared.mjs +84 -84
  463. package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
  464. package/fesm2020/theseam-ui-common-storage.mjs +3 -3
  465. package/fesm2020/theseam-ui-common-story-helpers.mjs +25 -25
  466. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  467. package/fesm2020/theseam-ui-common-tabbed.mjs +31 -31
  468. package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
  469. package/fesm2020/theseam-ui-common-table-cell-type.mjs +10 -10
  470. package/fesm2020/theseam-ui-common-table-cell-types.mjs +80 -80
  471. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  472. package/fesm2020/theseam-ui-common-table.mjs +14 -14
  473. package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
  474. package/fesm2020/theseam-ui-common-tel-input.mjs +57 -57
  475. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  476. package/fesm2020/theseam-ui-common-tiled-select.mjs +46 -46
  477. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  478. package/fesm2020/theseam-ui-common-toggle-edit.mjs +28 -28
  479. package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
  480. package/fesm2020/theseam-ui-common-toggle-group.mjs +18 -18
  481. package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
  482. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  483. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  484. package/fesm2020/theseam-ui-common-viewers.mjs +93 -93
  485. package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
  486. package/fesm2020/theseam-ui-common-widget.mjs +175 -175
  487. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  488. package/fesm2020/theseam-ui-common.mjs +0 -41
  489. package/fesm2020/theseam-ui-common.mjs.map +1 -1
  490. package/framework/base-layout/base-layout-action.d.ts +1 -1
  491. package/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.d.ts +1 -1
  492. package/framework/side-nav/side-nav.models.d.ts +1 -1
  493. package/google-maps/google-maps/google-maps.component.d.ts +0 -1
  494. package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.d.ts +0 -4
  495. package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.d.ts +0 -4
  496. package/google-maps/google-maps.service.d.ts +0 -2
  497. package/google-maps/map-controls-service.d.ts +0 -1
  498. package/google-maps/map-value-manager.service.d.ts +1 -1
  499. package/graphql/datatable/datatable-graphql-query-ref.d.ts +2 -2
  500. package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
  501. package/graphql/datatable/datatable-helpers.d.ts +2 -2
  502. package/graphql/datatable/map-filter-states.d.ts +2 -2
  503. package/graphql/datatable/map-page-info.d.ts +1 -1
  504. package/graphql/datatable/mapper-context.d.ts +1 -1
  505. package/graphql/models/gql-datatable-accessor.d.ts +1 -1
  506. package/graphql/models/hint-transformer.d.ts +1 -1
  507. package/icon/icon/icon.component.d.ts +1 -1
  508. package/icon/icon.d.ts +1 -1
  509. package/layout/breakpoint-aliases.d.ts +1 -1
  510. package/loading/loading.models.d.ts +1 -1
  511. package/modal/modal-config.d.ts +1 -1
  512. package/models/component-type.d.ts +1 -1
  513. package/models/size-prefixes.d.ts +1 -1
  514. package/models/size-types.d.ts +1 -1
  515. package/models/theme-prefixes.d.ts +1 -1
  516. package/models/theme-types.d.ts +2 -2
  517. package/package.json +1 -1
  518. package/scrollbar/overlay-scrollbars-config-model.d.ts +1 -1
  519. package/services/font-loader.service.d.ts +1 -1
  520. package/styles/bootstrap/_bootstrap.scss +34 -34
  521. package/styles/bootstrap/_bs-utilities.scss +3 -3
  522. package/styles/theme.scss +3 -3
  523. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +1 -1
  524. package/styles/vendor/quill/_quill.scss +3 -3
  525. package/table/table/table.component.d.ts +1 -1
  526. package/table-cell-type/table-cell-type-models.d.ts +3 -3
  527. package/table-cell-type/table-cell-type-name.d.ts +1 -1
  528. package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +1 -1
  529. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.d.ts +1 -1
  530. package/table-cell-types/table-cell-type-date/table-cell-type-date.d.ts +1 -1
  531. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +1 -1
  532. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.d.ts +1 -1
  533. package/table-cell-types/table-cell-type-icon/table-cell-type-icon-config.d.ts +1 -1
  534. package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +1 -1
  535. package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +1 -1
  536. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.d.ts +1 -1
  537. package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle-config.d.ts +1 -1
  538. package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config.d.ts +1 -1
  539. package/table-cell-types/table-cell-type-string/table-cell-type-string-config.d.ts +1 -1
  540. package/table-cell-types/table-cell-type-string/table-cell-type-string.component.d.ts +1 -1
  541. package/tel-input/utils/coerce-phone-number-format.d.ts +1 -1
  542. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +1 -1
  543. package/tiled-select/tiled-select.models.d.ts +2 -2
  544. package/utils/polling-ticker.d.ts +1 -1
  545. package/utils/subscriber-count.d.ts +1 -1
  546. package/widget/directives/widget-drag-handle.directive.d.ts +1 -1
@@ -76,9 +76,9 @@ const menuDropdownPanelOut = animation([
76
76
 
77
77
  class MenuDividerComponent {
78
78
  }
79
- MenuDividerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
80
- MenuDividerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: MenuDividerComponent, selector: "seam-menu-divider", host: { classAttribute: "dropdown-divider d-block" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuDividerComponent, decorators: [{
79
+ MenuDividerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
80
+ MenuDividerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: MenuDividerComponent, selector: "seam-menu-divider", host: { classAttribute: "dropdown-divider d-block" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuDividerComponent, decorators: [{
82
82
  type: Component,
83
83
  args: [{ selector: 'seam-menu-divider', template: ``, host: {
84
84
  'class': 'dropdown-divider d-block'
@@ -175,9 +175,9 @@ class MenuItemComponent extends _seamMenuItemMixinBase {
175
175
  return output.trim();
176
176
  }
177
177
  }
178
- MenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuItemComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.FocusMonitor }, { token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
179
- MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: MenuItemComponent, selector: "[seamMenuItem]", inputs: { disabled: "disabled", role: "role", icon: "icon", iconClass: "iconClass", badgeText: "badgeText", badgeTheme: "badgeTheme" }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" }, classAttribute: "dropdown-item" }, exportAs: ["seamMenuItem"], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n <!-- <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", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuItemComponent, decorators: [{
178
+ MenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuItemComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.FocusMonitor }, { token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
179
+ MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: MenuItemComponent, selector: "[seamMenuItem]", inputs: { disabled: "disabled", role: "role", icon: "icon", iconClass: "iconClass", badgeText: "badgeText", badgeTheme: "badgeTheme" }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" }, classAttribute: "dropdown-item" }, exportAs: ["seamMenuItem"], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n <!-- <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", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuItemComponent, decorators: [{
181
181
  type: Component,
182
182
  args: [{ selector: '[seamMenuItem]', exportAs: 'seamMenuItem', inputs: ['disabled'], host: {
183
183
  '[attr.role]': 'role',
@@ -215,6 +215,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
215
215
  /** Options for binding a passive event listener. */
216
216
  const passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });
217
217
  class MenuToggleDirective {
218
+ set positions(val) {
219
+ this._positions = val;
220
+ if (this.menuOpen()) {
221
+ this._overlayRef?.updatePositionStrategy(this.getOverlayPosition(this._elementRef.nativeElement));
222
+ }
223
+ }
224
+ get positions() { return this._positions; }
225
+ _onMouseDown(event) {
226
+ if (!isFakeMousedownFromScreenReader(event)) {
227
+ // Since right or middle button clicks won't trigger the `click` event,
228
+ // we shouldn't consider the menu as opened by mouse in those cases.
229
+ this._openedBy = event.button === 0 ? 'mouse' : null;
230
+ // Since clicking on the trigger won't close the menu if it opens a sub-menu,
231
+ // we should prevent focus from moving onto it via click to avoid the
232
+ // highlight from lingering on the menu item.
233
+ // if (this.triggersSubmenu()) {
234
+ // event.preventDefault();
235
+ // }
236
+ }
237
+ }
238
+ _onKeydown(event) {
239
+ this._openedBy = null;
240
+ // tslint:disable-next-line:deprecation
241
+ const keyCode = event.keyCode;
242
+ if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {
243
+ if (this.menuOpen()) {
244
+ this.seamMenuToggle?.focusFirstItem(this._openedBy || 'program');
245
+ }
246
+ }
247
+ }
248
+ _onClick(event) {
249
+ this.toggle();
250
+ }
251
+ _onDocumentKeydown(event) {
252
+ if (event.keyCode === ESCAPE) {
253
+ this.closeMenu();
254
+ }
255
+ }
218
256
  // @HostListener('document:mousedown', [ '$event' ])
219
257
  // _onDocumentMouseDown(event: any) {
220
258
  // console.log('outside click')
@@ -264,44 +302,6 @@ class MenuToggleDirective {
264
302
  this._handleTouchStart = () => this._openedBy = 'touch';
265
303
  this._elementRef.nativeElement.addEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);
266
304
  }
267
- set positions(val) {
268
- this._positions = val;
269
- if (this.menuOpen()) {
270
- this._overlayRef?.updatePositionStrategy(this.getOverlayPosition(this._elementRef.nativeElement));
271
- }
272
- }
273
- get positions() { return this._positions; }
274
- _onMouseDown(event) {
275
- if (!isFakeMousedownFromScreenReader(event)) {
276
- // Since right or middle button clicks won't trigger the `click` event,
277
- // we shouldn't consider the menu as opened by mouse in those cases.
278
- this._openedBy = event.button === 0 ? 'mouse' : null;
279
- // Since clicking on the trigger won't close the menu if it opens a sub-menu,
280
- // we should prevent focus from moving onto it via click to avoid the
281
- // highlight from lingering on the menu item.
282
- // if (this.triggersSubmenu()) {
283
- // event.preventDefault();
284
- // }
285
- }
286
- }
287
- _onKeydown(event) {
288
- this._openedBy = null;
289
- // tslint:disable-next-line:deprecation
290
- const keyCode = event.keyCode;
291
- if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {
292
- if (this.menuOpen()) {
293
- this.seamMenuToggle?.focusFirstItem(this._openedBy || 'program');
294
- }
295
- }
296
- }
297
- _onClick(event) {
298
- this.toggle();
299
- }
300
- _onDocumentKeydown(event) {
301
- if (event.keyCode === ESCAPE) {
302
- this.closeMenu();
303
- }
304
- }
305
305
  ngOnDestroy() {
306
306
  this.closeMenu();
307
307
  this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);
@@ -423,9 +423,9 @@ class MenuToggleDirective {
423
423
  return merge(backdrop, parentClose, hover, detachments);
424
424
  }
425
425
  }
426
- MenuToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuToggleDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$1.Overlay }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive });
427
- MenuToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.4", type: MenuToggleDirective, selector: "[seamMenuToggle]", inputs: { seamMenuToggle: "seamMenuToggle", positions: "positions" }, host: { attributes: { "aria-haspopup": "true" }, listeners: { "mousedown": "_onMouseDown($event)", "keydown": "_onKeydown($event)", "click": "_onClick($event)", "document:keydown": "_onDocumentKeydown($event)" }, properties: { "attr.aria-expanded": "menuOpen() || null" } }, exportAs: ["seamMenuToggle"], ngImport: i0 });
428
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuToggleDirective, decorators: [{
426
+ MenuToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuToggleDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$1.Overlay }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive });
427
+ MenuToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.6", type: MenuToggleDirective, selector: "[seamMenuToggle]", inputs: { seamMenuToggle: "seamMenuToggle", positions: "positions" }, host: { attributes: { "aria-haspopup": "true" }, listeners: { "mousedown": "_onMouseDown($event)", "keydown": "_onKeydown($event)", "click": "_onClick($event)", "document:keydown": "_onDocumentKeydown($event)" }, properties: { "attr.aria-expanded": "menuOpen() || null" } }, exportAs: ["seamMenuToggle"], ngImport: i0 });
428
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuToggleDirective, decorators: [{
429
429
  type: Directive,
430
430
  args: [{
431
431
  selector: '[seamMenuToggle]',
@@ -460,6 +460,17 @@ const LIB_MENU = {
460
460
  useExisting: forwardRef(() => MenuComponent)
461
461
  };
462
462
  class MenuComponent {
463
+ /**
464
+ * Defines a width for a menu that will scale down if the window innerWidth is
465
+ * smaller than the value.
466
+ */
467
+ get baseWidth() { return this._baseWidth.value; }
468
+ set baseWidth(value) {
469
+ const _val = coerceNumberProperty(value, null);
470
+ if (_val !== this._baseWidth.value) {
471
+ this._baseWidth.next(_val);
472
+ }
473
+ }
463
474
  constructor() {
464
475
  this._ngUnsubscribe = new Subject();
465
476
  this._footer = new BehaviorSubject(undefined);
@@ -482,17 +493,6 @@ class MenuComponent {
482
493
  return of(undefined);
483
494
  }), distinctUntilChanged(), takeUntil(this._ngUnsubscribe));
484
495
  }
485
- /**
486
- * Defines a width for a menu that will scale down if the window innerWidth is
487
- * smaller than the value.
488
- */
489
- get baseWidth() { return this._baseWidth.value; }
490
- set baseWidth(value) {
491
- const _val = coerceNumberProperty(value, null);
492
- if (_val !== this._baseWidth.value) {
493
- this._baseWidth.next(_val);
494
- }
495
- }
496
496
  ngOnDestroy() {
497
497
  this._tabSubscription.unsubscribe();
498
498
  this.closed.complete();
@@ -592,14 +592,14 @@ class MenuComponent {
592
592
  this.closed.emit('click');
593
593
  }
594
594
  }
595
- MenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
596
- MenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: MenuComponent, selector: "seam-menu", inputs: { menuClass: "menuClass", baseWidth: "baseWidth", animationType: "animationType" }, outputs: { closed: "closed" }, providers: [LIB_MENU], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], exportAs: ["seamMenu"], ngImport: i0, template: "<ng-template>\n <div class=\"seam-menu-container\" @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", styles: [".seam-menu-container.seam-menu-anim--slide{overflow:hidden}.seam-menu-container.ng-animating,.dropdown-menu.ng-animating{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}\n"], dependencies: [{ kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [
595
+ MenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
596
+ MenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: MenuComponent, selector: "seam-menu", inputs: { menuClass: "menuClass", baseWidth: "baseWidth", animationType: "animationType" }, outputs: { closed: "closed" }, providers: [LIB_MENU], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], exportAs: ["seamMenu"], ngImport: i0, template: "<ng-template>\n <div class=\"seam-menu-container\" @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", styles: [".seam-menu-container.seam-menu-anim--slide{overflow:hidden}.seam-menu-container.ng-animating,.dropdown-menu.ng-animating{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}\n"], dependencies: [{ kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [
597
597
  trigger('slideDown', [
598
598
  transition(':enter', useAnimation(menuDropdownPanelIn)),
599
599
  transition(':leave', useAnimation(menuDropdownPanelOut)),
600
600
  ])
601
601
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
602
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuComponent, decorators: [{
602
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuComponent, decorators: [{
603
603
  type: Component,
604
604
  args: [{ selector: 'seam-menu', providers: [LIB_MENU], animations: [
605
605
  trigger('slideDown', [
@@ -622,9 +622,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
622
622
 
623
623
  // TODO: Split up the button and anchor classes.
624
624
  class MenuFooterActionComponent {
625
- constructor(_elementRef) {
626
- this._elementRef = _elementRef;
627
- }
628
625
  get _attrType() { return this.type; }
629
626
  /** ARIA type for the button. */
630
627
  get type() { return this._isButton() ? this._type || 'button' : undefined; }
@@ -636,6 +633,9 @@ class MenuFooterActionComponent {
636
633
  get _stylePadding() { return this._isButton() && 0; }
637
634
  get _styleBorder() { return this._isButton() && 0; }
638
635
  get _styleDisplay() { return this._isButton() && 'inline'; }
636
+ constructor(_elementRef) {
637
+ this._elementRef = _elementRef;
638
+ }
639
639
  /** Determines if the component host is a button. */
640
640
  _isButton() {
641
641
  return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button';
@@ -645,9 +645,9 @@ class MenuFooterActionComponent {
645
645
  return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a';
646
646
  }
647
647
  }
648
- MenuFooterActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuFooterActionComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
649
- MenuFooterActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: MenuFooterActionComponent, selector: "button[seamMenuFooterAction],a[seamMenuFooterAction]", inputs: { type: "type" }, host: { properties: { "attr.type": "this._attrType", "class.btn": "this._classBtn", "class.btn-link": "this._classBtnLink", "style.padding.px": "this._stylePadding", "style.border.px": "this._styleBorder", "style.display.px": "this._styleDisplay" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
650
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuFooterActionComponent, decorators: [{
648
+ MenuFooterActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuFooterActionComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
649
+ MenuFooterActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: MenuFooterActionComponent, selector: "button[seamMenuFooterAction],a[seamMenuFooterAction]", inputs: { type: "type" }, host: { properties: { "attr.type": "this._attrType", "class.btn": "this._classBtn", "class.btn-link": "this._classBtnLink", "style.padding.px": "this._stylePadding", "style.border.px": "this._styleBorder", "style.display.px": "this._styleDisplay" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
650
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuFooterActionComponent, decorators: [{
651
651
  type: Component,
652
652
  args: [{ selector: 'button[seamMenuFooterAction],a[seamMenuFooterAction]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
653
653
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _attrType: [{
@@ -687,9 +687,9 @@ class MenuFooterComponent {
687
687
  }
688
688
  }
689
689
  }
690
- MenuFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuFooterComponent, deps: [{ token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
691
- MenuFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: MenuFooterComponent, selector: "seam-menu-footer", host: { classAttribute: "d-flex flex-column text-center bg-light border-top rounded-bottom py-2" }, ngImport: i0, template: "<ng-content select=\"a[seamMenuFooterAction],button[seamMenuFooterAction]\"></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
692
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuFooterComponent, decorators: [{
690
+ MenuFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuFooterComponent, deps: [{ token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
691
+ MenuFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: MenuFooterComponent, selector: "seam-menu-footer", host: { classAttribute: "d-flex flex-column text-center bg-light border-top rounded-bottom py-2" }, ngImport: i0, template: "<ng-content select=\"a[seamMenuFooterAction],button[seamMenuFooterAction]\"></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
692
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuFooterComponent, decorators: [{
693
693
  type: Component,
694
694
  args: [{ selector: 'seam-menu-footer', host: {
695
695
  'class': 'd-flex flex-column text-center bg-light border-top rounded-bottom py-2'
@@ -716,9 +716,9 @@ class MenuHeaderComponent {
716
716
  }
717
717
  }
718
718
  }
719
- MenuHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuHeaderComponent, deps: [{ token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
720
- MenuHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: MenuHeaderComponent, selector: "seam-menu-header", host: { classAttribute: "d-flex flex-column bg-light border-bottom rounded-top py-2 mb-2" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
721
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: MenuHeaderComponent, decorators: [{
719
+ MenuHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuHeaderComponent, deps: [{ token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
720
+ MenuHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: MenuHeaderComponent, selector: "seam-menu-header", host: { classAttribute: "d-flex flex-column bg-light border-bottom rounded-top py-2 mb-2" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
721
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuHeaderComponent, decorators: [{
722
722
  type: Component,
723
723
  args: [{ selector: 'seam-menu-header', host: {
724
724
  'class': 'd-flex flex-column bg-light border-bottom rounded-top py-2 mb-2'
@@ -732,8 +732,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
732
732
 
733
733
  class TheSeamMenuModule {
734
734
  }
735
- TheSeamMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
736
- TheSeamMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: TheSeamMenuModule, declarations: [MenuComponent,
735
+ TheSeamMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
736
+ TheSeamMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: TheSeamMenuModule, declarations: [MenuComponent,
737
737
  MenuToggleDirective,
738
738
  MenuItemComponent,
739
739
  MenuDividerComponent,
@@ -750,11 +750,11 @@ TheSeamMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
750
750
  MenuFooterComponent,
751
751
  MenuFooterActionComponent,
752
752
  MenuHeaderComponent] });
753
- TheSeamMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamMenuModule, imports: [CommonModule,
753
+ TheSeamMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamMenuModule, imports: [CommonModule,
754
754
  OverlayModule,
755
755
  TheSeamIconModule, TheSeamIconModule,
756
756
  OverlayModule] });
757
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamMenuModule, decorators: [{
757
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamMenuModule, decorators: [{
758
758
  type: NgModule,
759
759
  args: [{
760
760
  declarations: [
@@ -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-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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"}