@ethlete/cdk 4.4.0 → 4.6.0

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 (338) hide show
  1. package/CHANGELOG.md +18 -2
  2. package/esm2022/lib/components/accordion/components/accordion/accordion.component.mjs +3 -3
  3. package/esm2022/lib/components/accordion/components/accordion-group/accordion-group.component.mjs +3 -3
  4. package/esm2022/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.mjs +3 -3
  5. package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.mjs +3 -3
  6. package/esm2022/lib/components/accordion/partials/accordion-label/accordion-label.directive.mjs +3 -3
  7. package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.mjs +3 -3
  8. package/esm2022/lib/components/bracket/components/bracket/bracket.component.mjs +3 -3
  9. package/esm2022/lib/components/bracket/directives/bracket-match/bracket-match.directive.mjs +3 -3
  10. package/esm2022/lib/components/bracket/directives/bracket-round/bracket-round.directive.mjs +3 -3
  11. package/esm2022/lib/components/bracket/partials/bracket-match/bracket-match.component.mjs +3 -3
  12. package/esm2022/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.mjs +3 -3
  13. package/esm2022/lib/components/button/components/button/button.component.mjs +3 -3
  14. package/esm2022/lib/components/button/components/query-button/query-button.component.mjs +3 -3
  15. package/esm2022/lib/components/button/directives/button/button.directive.mjs +3 -3
  16. package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +3 -3
  17. package/esm2022/lib/components/filter/filter-overlay/components/filter-overlay-page-outlet/filter-overlay-page-outlet.component.mjs +3 -3
  18. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-back-or-close/filter-overlay-back-or-close.directive.mjs +3 -3
  19. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-link/filter-overlay-link.directive.mjs +3 -3
  20. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-reset/filter-overlay-reset.directive.mjs +3 -3
  21. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-submit/filter-overlay-submit.directive.mjs +3 -3
  22. package/esm2022/lib/components/filter/filter-overlay/services/filter-overlay.service.mjs +3 -3
  23. package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.mjs +3 -3
  24. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.mjs +3 -3
  25. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.mjs +3 -3
  26. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.mjs +3 -3
  27. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.mjs +3 -3
  28. package/esm2022/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.mjs +3 -3
  29. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.mjs +3 -3
  30. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.mjs +3 -3
  31. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +3 -3
  32. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +6 -6
  33. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.mjs +3 -3
  34. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +3 -3
  35. package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +3 -3
  36. package/esm2022/lib/components/forms/components/input/components/date-input/date-input.component.mjs +5 -5
  37. package/esm2022/lib/components/forms/components/input/components/date-time-input/date-time-input.component.mjs +23 -0
  38. package/esm2022/lib/components/forms/components/input/components/date-time-input/public-api.mjs +2 -0
  39. package/esm2022/lib/components/forms/components/input/components/email-input/email-input.component.mjs +3 -3
  40. package/esm2022/lib/components/forms/components/input/components/input-field/input-field.component.mjs +3 -3
  41. package/esm2022/lib/components/forms/components/input/components/number-input/number-input.component.mjs +3 -3
  42. package/esm2022/lib/components/forms/components/input/components/password-input/password-input.component.mjs +3 -3
  43. package/esm2022/lib/components/forms/components/input/components/public-api.mjs +2 -1
  44. package/esm2022/lib/components/forms/components/input/components/search-input/search-input.component.mjs +3 -3
  45. package/esm2022/lib/components/forms/components/input/components/text-input/text-input.component.mjs +3 -3
  46. package/esm2022/lib/components/forms/components/input/components/textarea-input/textarea-input.component.mjs +5 -5
  47. package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.mjs +3 -3
  48. package/esm2022/lib/components/forms/components/input/directives/date-input/date-input.directive.mjs +10 -10
  49. package/esm2022/lib/components/forms/components/input/directives/date-time-input/date-time-input.directive.mjs +61 -0
  50. package/esm2022/lib/components/forms/components/input/directives/date-time-input/public-api.mjs +2 -0
  51. package/esm2022/lib/components/forms/components/input/directives/email-input/email-input.directive.mjs +3 -3
  52. package/esm2022/lib/components/forms/components/input/directives/number-input/number-input.directive.mjs +3 -3
  53. package/esm2022/lib/components/forms/components/input/directives/password-input/password-input.directive.mjs +3 -3
  54. package/esm2022/lib/components/forms/components/input/directives/public-api.mjs +3 -1
  55. package/esm2022/lib/components/forms/components/input/directives/search-input/search-input.directive.mjs +3 -3
  56. package/esm2022/lib/components/forms/components/input/directives/show-picker-trigger/public-api.mjs +2 -0
  57. package/esm2022/lib/components/forms/components/input/directives/show-picker-trigger/show-picker-trigger.directive.mjs +42 -0
  58. package/esm2022/lib/components/forms/components/input/directives/text-input/text-input.directive.mjs +3 -3
  59. package/esm2022/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.mjs +3 -3
  60. package/esm2022/lib/components/forms/components/input/input.imports.mjs +5 -2
  61. package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.mjs +3 -3
  62. package/esm2022/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.mjs +3 -3
  63. package/esm2022/lib/components/forms/components/label/components/label/label.component.mjs +3 -3
  64. package/esm2022/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.mjs +3 -3
  65. package/esm2022/lib/components/forms/components/radio/components/radio/radio.component.mjs +3 -3
  66. package/esm2022/lib/components/forms/components/radio/components/radio-field/radio-field.component.mjs +3 -3
  67. package/esm2022/lib/components/forms/components/radio/components/radio-group/radio-group.component.mjs +3 -3
  68. package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +3 -3
  69. package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +3 -3
  70. package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +3 -3
  71. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.mjs +3 -3
  72. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.mjs +3 -3
  73. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.mjs +3 -3
  74. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +3 -3
  75. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +3 -3
  76. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +5 -5
  77. package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +3 -3
  78. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +3 -3
  79. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/combobox-body-empty-template.directive.mjs +3 -3
  80. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/combobox-body-error-template.directive.mjs +3 -3
  81. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/combobox-body-loading-template.directive.mjs +3 -3
  82. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/combobox-body-more-items-hint-template.directive.mjs +3 -3
  83. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/combobox-option-template.directive.mjs +3 -3
  84. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/combobox-selected-option-template.directive.mjs +3 -3
  85. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +3 -3
  86. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +3 -3
  87. package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.mjs +3 -3
  88. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.mjs +3 -3
  89. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.mjs +3 -3
  90. package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.mjs +3 -3
  91. package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +3 -3
  92. package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +3 -3
  93. package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +3 -3
  94. package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +3 -3
  95. package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +3 -3
  96. package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.mjs +3 -3
  97. package/esm2022/lib/components/forms/components/select/components/select-field/select-field.component.mjs +3 -3
  98. package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +3 -3
  99. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-field/selection-list-field.component.mjs +3 -3
  100. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-option/selection-list-option.component.mjs +3 -3
  101. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-field/selection-list-field.directive.mjs +3 -3
  102. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.mjs +3 -3
  103. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.mjs +3 -3
  104. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.mjs +3 -3
  105. package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +3 -3
  106. package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +3 -3
  107. package/esm2022/lib/components/forms/components/slider/components/slider-field/slider-field.component.mjs +3 -3
  108. package/esm2022/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.mjs +3 -3
  109. package/esm2022/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.mjs +3 -3
  110. package/esm2022/lib/components/forms/directives/expose-input-vars/expose-input-vars.directive.mjs +3 -3
  111. package/esm2022/lib/components/forms/directives/if-input-empty/if-input-empty.directive.mjs +3 -3
  112. package/esm2022/lib/components/forms/directives/if-input-filled/if-input-filled.directive.mjs +3 -3
  113. package/esm2022/lib/components/forms/directives/input/input.directive.mjs +3 -3
  114. package/esm2022/lib/components/forms/directives/input-prefix/input-prefix.directive.mjs +3 -3
  115. package/esm2022/lib/components/forms/directives/input-suffix/input-suffix.directive.mjs +3 -3
  116. package/esm2022/lib/components/forms/directives/native-input-ref/native-input-ref.directive.mjs +3 -3
  117. package/esm2022/lib/components/forms/directives/static-form-field/static-form-field.directive.mjs +3 -3
  118. package/esm2022/lib/components/forms/directives/static-form-group/static-form-group.directive.mjs +3 -3
  119. package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +3 -3
  120. package/esm2022/lib/components/forms/index.mjs +2 -0
  121. package/esm2022/lib/components/forms/services/default-validator-errors.service.mjs +3 -3
  122. package/esm2022/lib/components/forms/services/form-field-state.service.mjs +3 -3
  123. package/esm2022/lib/components/forms/services/form-group-state.service.mjs +3 -3
  124. package/esm2022/lib/components/forms/services/input-state.service.mjs +3 -3
  125. package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +3 -3
  126. package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +3 -3
  127. package/esm2022/lib/components/forms/utils/input.base.mjs +3 -3
  128. package/esm2022/lib/components/icons/chevron-icon/chevron-icon.component.mjs +3 -3
  129. package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +3 -3
  130. package/esm2022/lib/components/masonry/partials/masonry-item/masonry-item.component.mjs +3 -3
  131. package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.mjs +3 -3
  132. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +3 -3
  133. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.mjs +3 -3
  134. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.mjs +3 -3
  135. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +3 -3
  136. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.mjs +3 -3
  137. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.mjs +3 -3
  138. package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.mjs +3 -3
  139. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.mjs +3 -3
  140. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +3 -3
  141. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.mjs +3 -3
  142. package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +3 -3
  143. package/esm2022/lib/components/overlay/components/dialog/services/dialog.service.mjs +3 -3
  144. package/esm2022/lib/components/overlay/components/menu/components/index.mjs +2 -0
  145. package/esm2022/lib/components/overlay/components/menu/components/menu/menu.component.mjs +168 -0
  146. package/esm2022/lib/components/overlay/components/menu/components/menu/public-api.mjs +2 -0
  147. package/esm2022/lib/components/overlay/components/menu/components/menu-checkbox-item/menu-checkbox-item.component.mjs +68 -0
  148. package/esm2022/lib/components/overlay/components/menu/components/menu-checkbox-item/public-api.mjs +2 -0
  149. package/esm2022/lib/components/overlay/components/menu/components/menu-container/menu-container.component.mjs +47 -0
  150. package/esm2022/lib/components/overlay/components/menu/components/menu-container/public-api.mjs +2 -0
  151. package/esm2022/lib/components/overlay/components/menu/components/menu-radio-item/menu-radio-item.component.mjs +61 -0
  152. package/esm2022/lib/components/overlay/components/menu/components/menu-radio-item/public-api.mjs +2 -0
  153. package/esm2022/lib/components/overlay/components/menu/components/public-api.mjs +5 -0
  154. package/esm2022/lib/components/overlay/components/menu/directives/index.mjs +2 -0
  155. package/esm2022/lib/components/overlay/components/menu/directives/menu-checkbox-group/menu-checkbox-group.directive.mjs +31 -0
  156. package/esm2022/lib/components/overlay/components/menu/directives/menu-checkbox-group/public-api.mjs +2 -0
  157. package/esm2022/lib/components/overlay/components/menu/directives/menu-group/index.mjs +2 -0
  158. package/esm2022/lib/components/overlay/components/menu/directives/menu-group/menu-group.directive.mjs +43 -0
  159. package/esm2022/lib/components/overlay/components/menu/directives/menu-group/public-api.mjs +2 -0
  160. package/esm2022/lib/components/overlay/components/menu/directives/menu-group-title/index.mjs +2 -0
  161. package/esm2022/lib/components/overlay/components/menu/directives/menu-group-title/menu-group-title.directive.mjs +41 -0
  162. package/esm2022/lib/components/overlay/components/menu/directives/menu-group-title/public-api.mjs +2 -0
  163. package/esm2022/lib/components/overlay/components/menu/directives/menu-item/menu-item.directive.mjs +97 -0
  164. package/esm2022/lib/components/overlay/components/menu/directives/menu-item/public-api.mjs +2 -0
  165. package/esm2022/lib/components/overlay/components/menu/directives/menu-radio-group/menu-radio-group.directive.mjs +42 -0
  166. package/esm2022/lib/components/overlay/components/menu/directives/menu-radio-group/public-api.mjs +2 -0
  167. package/esm2022/lib/components/overlay/components/menu/directives/menu-trigger/index.mjs +2 -0
  168. package/esm2022/lib/components/overlay/components/menu/directives/menu-trigger/menu-trigger.directive.mjs +145 -0
  169. package/esm2022/lib/components/overlay/components/menu/directives/menu-trigger/public-api.mjs +2 -0
  170. package/esm2022/lib/components/overlay/components/menu/directives/public-api.mjs +7 -0
  171. package/esm2022/lib/components/overlay/components/menu/menu.imports.mjs +14 -0
  172. package/esm2022/lib/components/overlay/components/menu/public-api.mjs +4 -17
  173. package/esm2022/lib/components/overlay/components/menu-deprecated/context-menu-trigger.mjs +166 -0
  174. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-aim.mjs +140 -0
  175. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-bar.mjs +116 -0
  176. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-base.mjs +176 -0
  177. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-errors.mjs +7 -0
  178. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-group.mjs +29 -0
  179. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-interface.mjs +3 -0
  180. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-checkbox.mjs +42 -0
  181. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-radio.mjs +59 -0
  182. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-selectable.mjs +38 -0
  183. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item.mjs +216 -0
  184. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-module.mjs +58 -0
  185. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-stack.mjs +104 -0
  186. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-trigger-base.mjs +80 -0
  187. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-trigger.mjs +243 -0
  188. package/esm2022/lib/components/overlay/components/menu-deprecated/menu.mjs +119 -0
  189. package/esm2022/lib/components/overlay/components/menu-deprecated/pointer-focus-tracker.mjs +29 -0
  190. package/esm2022/lib/components/overlay/components/menu-deprecated/public-api.mjs +17 -0
  191. package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.mjs +3 -3
  192. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-body/overlay-body.component.mjs +3 -3
  193. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-close/overlay-close.directive.mjs +3 -3
  194. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-footer/overlay-footer.directive.mjs +3 -3
  195. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-header/overlay-header.directive.mjs +3 -3
  196. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-title/overlay-title.directive.mjs +3 -3
  197. package/esm2022/lib/components/overlay/components/overlay/services/overlay.service.mjs +3 -3
  198. package/esm2022/lib/components/overlay/components/public-api.mjs +2 -1
  199. package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +3 -3
  200. package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +3 -3
  201. package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +3 -3
  202. package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +3 -3
  203. package/esm2022/lib/components/overlay/directives/dynamic-overlay-title/dynamic-overlay-title.directive.mjs +3 -3
  204. package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.mjs +3 -3
  205. package/esm2022/lib/components/overlay/services/dynamic-overlay.service.mjs +3 -3
  206. package/esm2022/lib/components/pagination/components/pagination/pagination.component.mjs +3 -3
  207. package/esm2022/lib/components/pagination/partials/pagination-link/pagination-link.directive.mjs +3 -3
  208. package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +3 -3
  209. package/esm2022/lib/components/picture/picture-data.directive.mjs +3 -3
  210. package/esm2022/lib/components/picture/picture.component.mjs +3 -3
  211. package/esm2022/lib/components/picture/pipes/normalize-source/normalize-source.pipe.mjs +3 -3
  212. package/esm2022/lib/components/progress-spinner/progress-spinner.component.mjs +3 -3
  213. package/esm2022/lib/components/query-error/components/query-error/query-error.component.mjs +3 -3
  214. package/esm2022/lib/components/query-error/directives/query-error/query-error.directive.mjs +93 -5
  215. package/esm2022/lib/components/scrollable/components/scrollable/scrollable.component.mjs +3 -3
  216. package/esm2022/lib/components/scrollable/directives/scrollable-ignore-child/scrollable-ignore-child.directive.mjs +3 -3
  217. package/esm2022/lib/components/scrollable/directives/scrollable-is-active-child/scrollable-is-active-child.directive.mjs +3 -3
  218. package/esm2022/lib/components/skeleton/components/skeleton/skeleton.component.mjs +3 -3
  219. package/esm2022/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.mjs +3 -3
  220. package/esm2022/lib/components/sort/components/sort-header/sort-header.component.mjs +3 -3
  221. package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +3 -3
  222. package/esm2022/lib/components/sort/services/sort-header-intl.mjs +3 -3
  223. package/esm2022/lib/components/table/components/table/table.component.mjs +3 -3
  224. package/esm2022/lib/components/table/partials/cells/cell/cell.directive.mjs +3 -3
  225. package/esm2022/lib/components/table/partials/cells/cell-def/cell-def.directive.mjs +3 -3
  226. package/esm2022/lib/components/table/partials/cells/column-def/column-def.directive.mjs +3 -3
  227. package/esm2022/lib/components/table/partials/cells/footer-cell/footer-cell.directive.mjs +3 -3
  228. package/esm2022/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.mjs +3 -3
  229. package/esm2022/lib/components/table/partials/cells/header-cell/header-cell.directive.mjs +3 -3
  230. package/esm2022/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.mjs +3 -3
  231. package/esm2022/lib/components/table/partials/cells/text-column/text-column.component.mjs +3 -3
  232. package/esm2022/lib/components/table/partials/rows/footer-row/footer-row.component.mjs +3 -3
  233. package/esm2022/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.mjs +3 -3
  234. package/esm2022/lib/components/table/partials/rows/header-row/header-row.component.mjs +3 -3
  235. package/esm2022/lib/components/table/partials/rows/header-row-def/header-row-def.directive.mjs +3 -3
  236. package/esm2022/lib/components/table/partials/rows/no-data-row/no-data-row.directive.mjs +3 -3
  237. package/esm2022/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.mjs +3 -3
  238. package/esm2022/lib/components/table/partials/rows/row/row.component.mjs +3 -3
  239. package/esm2022/lib/components/table/partials/rows/row-def/row-def.directive.mjs +3 -3
  240. package/esm2022/lib/components/table/partials/table-busy/table-busy.directive.mjs +3 -3
  241. package/esm2022/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.mjs +3 -3
  242. package/esm2022/lib/components/tabs/components/inline-tabs/inline-tabs.component.mjs +3 -3
  243. package/esm2022/lib/components/tabs/components/nav-tabs/nav-tabs.component.mjs +3 -3
  244. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.mjs +3 -3
  245. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.mjs +3 -3
  246. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.mjs +3 -3
  247. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.mjs +3 -3
  248. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.mjs +3 -3
  249. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.mjs +3 -3
  250. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.mjs +3 -3
  251. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.mjs +3 -3
  252. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.mjs +3 -3
  253. package/esm2022/lib/components/tabs/utils/active-tab-underline.util.mjs +3 -3
  254. package/esm2022/lib/components/tabs/utils/paginated-tab-header.directive.mjs +3 -3
  255. package/esm2022/lib/services/swipe-handler.service.mjs +3 -3
  256. package/fesm2022/ethlete-cdk.mjs +8877 -7960
  257. package/fesm2022/ethlete-cdk.mjs.map +1 -1
  258. package/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.d.ts +2 -2
  259. package/lib/components/forms/components/input/components/date-input/date-input.component.d.ts +1 -1
  260. package/lib/components/forms/components/input/components/date-time-input/date-time-input.component.d.ts +10 -0
  261. package/lib/components/forms/components/input/components/date-time-input/public-api.d.ts +1 -0
  262. package/lib/components/forms/components/input/components/public-api.d.ts +1 -0
  263. package/lib/components/forms/components/input/components/textarea-input/textarea-input.component.d.ts +1 -1
  264. package/lib/components/forms/components/input/directives/date-input/date-input.directive.d.ts +1 -2
  265. package/lib/components/forms/components/input/directives/date-time-input/date-time-input.directive.d.ts +20 -0
  266. package/lib/components/forms/components/input/directives/date-time-input/public-api.d.ts +1 -0
  267. package/lib/components/forms/components/input/directives/public-api.d.ts +2 -0
  268. package/lib/components/forms/components/input/directives/show-picker-trigger/public-api.d.ts +1 -0
  269. package/lib/components/forms/components/input/directives/show-picker-trigger/show-picker-trigger.directive.d.ts +10 -0
  270. package/lib/components/forms/components/input/input.imports.d.ts +3 -2
  271. package/lib/components/forms/index.d.ts +1 -0
  272. package/lib/components/overlay/components/menu/components/index.d.ts +1 -0
  273. package/lib/components/overlay/components/menu/components/menu/menu.component.d.ts +35 -0
  274. package/lib/components/overlay/components/menu/components/menu/public-api.d.ts +1 -0
  275. package/lib/components/overlay/components/menu/components/menu-checkbox-item/menu-checkbox-item.component.d.ts +23 -0
  276. package/lib/components/overlay/components/menu/components/menu-checkbox-item/public-api.d.ts +1 -0
  277. package/lib/components/overlay/components/menu/components/menu-container/menu-container.component.d.ts +20 -0
  278. package/lib/components/overlay/components/menu/components/menu-container/public-api.d.ts +1 -0
  279. package/lib/components/overlay/components/menu/components/menu-radio-item/menu-radio-item.component.d.ts +21 -0
  280. package/lib/components/overlay/components/menu/components/menu-radio-item/public-api.d.ts +1 -0
  281. package/lib/components/overlay/components/menu/components/public-api.d.ts +4 -0
  282. package/lib/components/overlay/components/menu/directives/index.d.ts +1 -0
  283. package/lib/components/overlay/components/menu/directives/menu-checkbox-group/menu-checkbox-group.directive.d.ts +9 -0
  284. package/lib/components/overlay/components/menu/directives/menu-checkbox-group/public-api.d.ts +1 -0
  285. package/lib/components/overlay/components/menu/directives/menu-group/index.d.ts +1 -0
  286. package/lib/components/overlay/components/menu/directives/menu-group/menu-group.directive.d.ts +15 -0
  287. package/lib/components/overlay/components/menu/directives/menu-group/public-api.d.ts +1 -0
  288. package/lib/components/overlay/components/menu/directives/menu-group-title/index.d.ts +1 -0
  289. package/lib/components/overlay/components/menu/directives/menu-group-title/menu-group-title.directive.d.ts +11 -0
  290. package/lib/components/overlay/components/menu/directives/menu-group-title/public-api.d.ts +1 -0
  291. package/lib/components/overlay/components/menu/directives/menu-item/menu-item.directive.d.ts +32 -0
  292. package/lib/components/overlay/components/menu/directives/menu-item/public-api.d.ts +1 -0
  293. package/lib/components/overlay/components/menu/directives/menu-radio-group/menu-radio-group.directive.d.ts +12 -0
  294. package/lib/components/overlay/components/menu/directives/menu-radio-group/public-api.d.ts +1 -0
  295. package/lib/components/overlay/components/menu/directives/menu-trigger/index.d.ts +1 -0
  296. package/lib/components/overlay/components/menu/directives/menu-trigger/menu-trigger.directive.d.ts +39 -0
  297. package/lib/components/overlay/components/menu/directives/menu-trigger/public-api.d.ts +1 -0
  298. package/lib/components/overlay/components/menu/directives/public-api.d.ts +6 -0
  299. package/lib/components/overlay/components/menu/menu.imports.d.ts +3 -0
  300. package/lib/components/overlay/components/menu/public-api.d.ts +3 -16
  301. package/lib/components/overlay/components/{menu → menu-deprecated}/context-menu-trigger.d.ts +3 -0
  302. package/lib/components/overlay/components/{menu → menu-deprecated}/menu-bar.d.ts +3 -0
  303. package/lib/components/overlay/components/{menu → menu-deprecated}/menu-base.d.ts +3 -0
  304. package/lib/components/overlay/components/{menu → menu-deprecated}/menu-group.d.ts +3 -0
  305. package/lib/components/overlay/components/{menu → menu-deprecated}/menu-item-checkbox.d.ts +3 -0
  306. package/lib/components/overlay/components/{menu → menu-deprecated}/menu-item-radio.d.ts +3 -0
  307. package/lib/components/overlay/components/{menu → menu-deprecated}/menu-item-selectable.d.ts +3 -0
  308. package/lib/components/overlay/components/{menu → menu-deprecated}/menu-item.d.ts +3 -0
  309. package/lib/components/overlay/components/{menu → menu-deprecated}/menu-module.d.ts +3 -0
  310. package/lib/components/overlay/components/{menu → menu-deprecated}/menu-stack.d.ts +3 -0
  311. package/lib/components/overlay/components/{menu → menu-deprecated}/menu-trigger-base.d.ts +3 -0
  312. package/lib/components/overlay/components/{menu → menu-deprecated}/menu-trigger.d.ts +3 -0
  313. package/lib/components/overlay/components/{menu → menu-deprecated}/menu.d.ts +3 -0
  314. package/lib/components/overlay/components/{menu → menu-deprecated}/pointer-focus-tracker.d.ts +3 -0
  315. package/lib/components/overlay/components/menu-deprecated/public-api.d.ts +16 -0
  316. package/lib/components/overlay/components/public-api.d.ts +1 -0
  317. package/lib/components/query-error/directives/query-error/query-error.directive.d.ts +1 -0
  318. package/package.json +8 -8
  319. package/esm2022/lib/components/overlay/components/menu/context-menu-trigger.mjs +0 -163
  320. package/esm2022/lib/components/overlay/components/menu/menu-aim.mjs +0 -140
  321. package/esm2022/lib/components/overlay/components/menu/menu-bar.mjs +0 -113
  322. package/esm2022/lib/components/overlay/components/menu/menu-base.mjs +0 -173
  323. package/esm2022/lib/components/overlay/components/menu/menu-errors.mjs +0 -7
  324. package/esm2022/lib/components/overlay/components/menu/menu-group.mjs +0 -26
  325. package/esm2022/lib/components/overlay/components/menu/menu-interface.mjs +0 -3
  326. package/esm2022/lib/components/overlay/components/menu/menu-item-checkbox.mjs +0 -39
  327. package/esm2022/lib/components/overlay/components/menu/menu-item-radio.mjs +0 -56
  328. package/esm2022/lib/components/overlay/components/menu/menu-item-selectable.mjs +0 -35
  329. package/esm2022/lib/components/overlay/components/menu/menu-item.mjs +0 -213
  330. package/esm2022/lib/components/overlay/components/menu/menu-module.mjs +0 -52
  331. package/esm2022/lib/components/overlay/components/menu/menu-stack.mjs +0 -101
  332. package/esm2022/lib/components/overlay/components/menu/menu-trigger-base.mjs +0 -77
  333. package/esm2022/lib/components/overlay/components/menu/menu-trigger.mjs +0 -240
  334. package/esm2022/lib/components/overlay/components/menu/menu.mjs +0 -116
  335. package/esm2022/lib/components/overlay/components/menu/pointer-focus-tracker.mjs +0 -26
  336. /package/lib/components/overlay/components/{menu → menu-deprecated}/menu-aim.d.ts +0 -0
  337. /package/lib/components/overlay/components/{menu → menu-deprecated}/menu-errors.d.ts +0 -0
  338. /package/lib/components/overlay/components/{menu → menu-deprecated}/menu-interface.d.ts +0 -0
@@ -0,0 +1,166 @@
1
+ /* eslint-disable @angular-eslint/directive-class-suffix */
2
+ /* eslint-disable @angular-eslint/no-output-rename */
3
+ /* eslint-disable @angular-eslint/no-outputs-metadata-property */
4
+ /* eslint-disable @angular-eslint/no-input-rename */
5
+ /* eslint-disable @angular-eslint/no-inputs-metadata-property */
6
+ import { Directionality } from '@angular/cdk/bidi';
7
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
8
+ import { Overlay, OverlayConfig, STANDARD_DROPDOWN_BELOW_POSITIONS, } from '@angular/cdk/overlay';
9
+ import { _getEventTarget } from '@angular/cdk/platform';
10
+ import { Directive, Injectable, Input, inject } from '@angular/core';
11
+ import { merge, partition } from 'rxjs';
12
+ import { skip, takeUntil } from 'rxjs/operators';
13
+ import { MENU_STACK, MenuStack } from './menu-stack';
14
+ import { CdkMenuTriggerBase, MENU_TRIGGER } from './menu-trigger-base';
15
+ import * as i0 from "@angular/core";
16
+ const CONTEXT_MENU_POSITIONS = STANDARD_DROPDOWN_BELOW_POSITIONS.map((position) => {
17
+ const offsetX = position.overlayX === 'start' ? 2 : -2;
18
+ const offsetY = position.overlayY === 'top' ? 2 : -2;
19
+ return { ...position, offsetX, offsetY };
20
+ });
21
+ export class ContextMenuTracker {
22
+ update(trigger) {
23
+ if (ContextMenuTracker._openContextMenuTrigger !== trigger) {
24
+ ContextMenuTracker._openContextMenuTrigger?.close();
25
+ ContextMenuTracker._openContextMenuTrigger = trigger;
26
+ }
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ContextMenuTracker, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ContextMenuTracker, providedIn: 'root' }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ContextMenuTracker, decorators: [{
32
+ type: Injectable,
33
+ args: [{ providedIn: 'root' }]
34
+ }] });
35
+ /**
36
+ * @deprecated Use the new menu instead
37
+ */
38
+ export class CdkContextMenuTrigger extends CdkMenuTriggerBase {
39
+ get disabled() {
40
+ return this._disabled;
41
+ }
42
+ set disabled(value) {
43
+ this._disabled = coerceBooleanProperty(value);
44
+ }
45
+ constructor() {
46
+ super();
47
+ this._overlay = inject(Overlay);
48
+ this._directionality = inject(Directionality, { optional: true });
49
+ this._contextMenuTracker = inject(ContextMenuTracker);
50
+ this._disabled = false;
51
+ this._setMenuStackCloseListener();
52
+ }
53
+ open(coordinates) {
54
+ this._open(coordinates, false);
55
+ }
56
+ close() {
57
+ this.menuStack.closeAll();
58
+ }
59
+ _openOnContextMenu(event) {
60
+ if (!this.disabled) {
61
+ event.preventDefault();
62
+ event.stopPropagation();
63
+ this._contextMenuTracker.update(this);
64
+ this._open({ x: event.clientX, y: event.clientY }, true);
65
+ if (event.button === 2) {
66
+ this.childMenu?.focusFirstItem('mouse');
67
+ }
68
+ else if (event.button === 0) {
69
+ this.childMenu?.focusFirstItem('keyboard');
70
+ }
71
+ else {
72
+ this.childMenu?.focusFirstItem('program');
73
+ }
74
+ }
75
+ }
76
+ _getOverlayConfig(coordinates) {
77
+ return new OverlayConfig({
78
+ positionStrategy: this._getOverlayPositionStrategy(coordinates),
79
+ scrollStrategy: this._overlay.scrollStrategies.reposition(),
80
+ direction: this._directionality || undefined,
81
+ });
82
+ }
83
+ _getOverlayPositionStrategy(coordinates) {
84
+ return this._overlay
85
+ .position()
86
+ .flexibleConnectedTo(coordinates)
87
+ .withLockedPosition()
88
+ .withGrowAfterOpen()
89
+ .withPositions(this.menuPosition ?? CONTEXT_MENU_POSITIONS);
90
+ }
91
+ _setMenuStackCloseListener() {
92
+ this.menuStack.closed.pipe(takeUntil(this.destroyed)).subscribe(({ item }) => {
93
+ if (item === this.childMenu && this.isOpen()) {
94
+ this.closed.next();
95
+ this.overlayRef.detach();
96
+ }
97
+ });
98
+ }
99
+ _subscribeToOutsideClicks(ignoreFirstAuxClick) {
100
+ if (this.overlayRef) {
101
+ let outsideClicks = this.overlayRef.outsidePointerEvents();
102
+ if (ignoreFirstAuxClick) {
103
+ const [auxClicks, nonAuxClicks] = partition(outsideClicks, ({ type }) => type === 'auxclick');
104
+ outsideClicks = merge(nonAuxClicks, auxClicks.pipe(skip(1)));
105
+ }
106
+ outsideClicks.pipe(takeUntil(this.stopOutsideClicksListener)).subscribe((event) => {
107
+ if (!this.isElementInsideMenuStack(_getEventTarget(event))) {
108
+ this.menuStack.closeAll();
109
+ }
110
+ });
111
+ }
112
+ }
113
+ _open(coordinates, ignoreFirstOutsideAuxClick) {
114
+ if (this.disabled) {
115
+ return;
116
+ }
117
+ if (this.isOpen()) {
118
+ this.menuStack.closeSubMenuOf(this.childMenu);
119
+ this.overlayRef.getConfig().positionStrategy.setOrigin(coordinates);
120
+ this.overlayRef.updatePosition();
121
+ }
122
+ else {
123
+ this.opened.next();
124
+ if (this.overlayRef) {
125
+ this.overlayRef.getConfig().positionStrategy.setOrigin(coordinates);
126
+ this.overlayRef.updatePosition();
127
+ }
128
+ else {
129
+ this.overlayRef = this._overlay.create(this._getOverlayConfig(coordinates));
130
+ }
131
+ this.overlayRef.attach(this.getMenuContentPortal());
132
+ this._subscribeToOutsideClicks(ignoreFirstOutsideAuxClick);
133
+ }
134
+ }
135
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CdkContextMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
136
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: CdkContextMenuTrigger, isStandalone: true, selector: "[cdkContextMenuTriggerFor]", inputs: { menuTemplateRef: ["cdkContextMenuTriggerFor", "menuTemplateRef"], menuPosition: ["cdkContextMenuPosition", "menuPosition"], menuData: ["cdkContextMenuTriggerData", "menuData"], disabled: ["cdkContextMenuDisabled", "disabled"] }, outputs: { opened: "cdkContextMenuOpened", closed: "cdkContextMenuClosed" }, host: { listeners: { "contextmenu": "_openOnContextMenu($event)" }, properties: { "attr.data-cdk-menu-stack-id": "null" } }, providers: [
137
+ { provide: MENU_TRIGGER, useExisting: CdkContextMenuTrigger },
138
+ { provide: MENU_STACK, useClass: MenuStack },
139
+ ], exportAs: ["cdkContextMenuTriggerFor"], usesInheritance: true, ngImport: i0 }); }
140
+ }
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CdkContextMenuTrigger, decorators: [{
142
+ type: Directive,
143
+ args: [{
144
+ selector: '[cdkContextMenuTriggerFor]',
145
+ exportAs: 'cdkContextMenuTriggerFor',
146
+ standalone: true,
147
+ host: {
148
+ '[attr.data-cdk-menu-stack-id]': 'null',
149
+ '(contextmenu)': '_openOnContextMenu($event)',
150
+ },
151
+ inputs: [
152
+ 'menuTemplateRef: cdkContextMenuTriggerFor',
153
+ 'menuPosition: cdkContextMenuPosition',
154
+ 'menuData: cdkContextMenuTriggerData',
155
+ ],
156
+ outputs: ['opened: cdkContextMenuOpened', 'closed: cdkContextMenuClosed'],
157
+ providers: [
158
+ { provide: MENU_TRIGGER, useExisting: CdkContextMenuTrigger },
159
+ { provide: MENU_STACK, useClass: MenuStack },
160
+ ],
161
+ }]
162
+ }], ctorParameters: () => [], propDecorators: { disabled: [{
163
+ type: Input,
164
+ args: ['cdkContextMenuDisabled']
165
+ }] } });
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LXRyaWdnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL21lbnUtZGVwcmVjYXRlZC9jb250ZXh0LW1lbnUtdHJpZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyREFBMkQ7QUFDM0QscURBQXFEO0FBQ3JELGlFQUFpRTtBQUNqRSxvREFBb0Q7QUFDcEQsZ0VBQWdFO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUVMLE9BQU8sRUFDUCxhQUFhLEVBQ2IsaUNBQWlDLEdBQ2xDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRXZFLE1BQU0sc0JBQXNCLEdBQUcsaUNBQWlDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7SUFDaEYsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENB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QUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMseUJBQXlCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7OEdBaEhVLHFCQUFxQjtrR0FBckIscUJBQXFCLGtnQkFMckI7WUFDVCxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFO1lBQzdELEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFO1NBQzdDOzsyRkFFVSxxQkFBcUI7a0JBbkJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0osK0JBQStCLEVBQUUsTUFBTTt3QkFDdkMsZUFBZSxFQUFFLDRCQUE0QjtxQkFDOUM7b0JBQ0QsTUFBTSxFQUFFO3dCQUNOLDJDQUEyQzt3QkFDM0Msc0NBQXNDO3dCQUN0QyxxQ0FBcUM7cUJBQ3RDO29CQUNELE9BQU8sRUFBRSxDQUFDLDhCQUE4QixFQUFFLDhCQUE4QixDQUFDO29CQUN6RSxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsdUJBQXVCLEVBQUU7d0JBQzdELEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFO3FCQUM3QztpQkFDRjt3REFTSyxRQUFRO3NCQURYLEtBQUs7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXggKi9cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtcmVuYW1lICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0cy1tZXRhZGF0YS1wcm9wZXJ0eSAqL1xuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZSAqL1xuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eSAqL1xuXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSxcbiAgT3ZlcmxheSxcbiAgT3ZlcmxheUNvbmZpZyxcbiAgU1RBTkRBUkRfRFJPUERPV05fQkVMT1dfUE9TSVRJT05TLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBfZ2V0RXZlbnRUYXJnZXQgfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RhYmxlLCBJbnB1dCwgT25EZXN0cm95LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lcmdlLCBwYXJ0aXRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNraXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1FTlVfU1RBQ0ssIE1lbnVTdGFjayB9IGZyb20gJy4vbWVudS1zdGFjayc7XG5pbXBvcnQgeyBDZGtNZW51VHJpZ2dlckJhc2UsIE1FTlVfVFJJR0dFUiB9IGZyb20gJy4vbWVudS10cmlnZ2VyLWJhc2UnO1xuXG5jb25zdCBDT05URVhUX01FTlVfUE9TSVRJT05TID0gU1RBTkRBUkRfRFJPUERPV05fQkVMT1dfUE9TSVRJT05TLm1hcCgocG9zaXRpb24pID0+IHtcbiAgY29uc3Qgb2Zmc2V0WCA9IHBvc2l0aW9uLm92ZXJsYXlYID09PSAnc3RhcnQnID8gMiA6IC0yO1xuICBjb25zdCBvZmZzZXRZID0gcG9zaXRpb24ub3ZlcmxheVkgPT09ICd0b3AnID8gMiA6IC0yO1xuICByZXR1cm4geyAuLi5wb3NpdGlvbiwgb2Zmc2V0WCwgb2Zmc2V0WSB9O1xufSk7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29udGV4dE1lbnVUcmFja2VyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgX29wZW5Db250ZXh0TWVudVRyaWdnZXI/OiBDZGtDb250ZXh0TWVudVRyaWdnZXI7XG5cbiAgdXBkYXRlKHRyaWdnZXI6IENka0NvbnRleHRNZW51VHJpZ2dlcikge1xuICAgIGlmIChDb250ZXh0TWVudVRyYWNrZXIuX29wZW5Db250ZXh0TWVudVRyaWdnZXIgIT09IHRyaWdnZXIpIHtcbiAgICAgIENvbnRleHRNZW51VHJhY2tlci5fb3BlbkNvbnRleHRNZW51VHJpZ2dlcj8uY2xvc2UoKTtcbiAgICAgIENvbnRleHRNZW51VHJhY2tlci5fb3BlbkNvbnRleHRNZW51VHJpZ2dlciA9IHRyaWdnZXI7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB0eXBlIENvbnRleHRNZW51Q29vcmRpbmF0ZXMgPSB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBuZXcgbWVudSBpbnN0ZWFkXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjZGtDb250ZXh0TWVudVRyaWdnZXJGb3JdJyxcbiAgZXhwb3J0QXM6ICdjZGtDb250ZXh0TWVudVRyaWdnZXJGb3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmRhdGEtY2RrLW1lbnUtc3RhY2staWRdJzogJ251bGwnLFxuICAgICcoY29udGV4dG1lbnUpJzogJ19vcGVuT25Db250ZXh0TWVudSgkZXZlbnQpJyxcbiAgfSxcbiAgaW5wdXRzOiBbXG4gICAgJ21lbnVUZW1wbGF0ZVJlZjogY2RrQ29udGV4dE1lbnVUcmlnZ2VyRm9yJyxcbiAgICAnbWVudVBvc2l0aW9uOiBjZGtDb250ZXh0TWVudVBvc2l0aW9uJyxcbiAgICAnbWVudURhdGE6IGNka0NvbnRleHRNZW51VHJpZ2dlckRhdGEnLFxuICBdLFxuICBvdXRwdXRzOiBbJ29wZW5lZDogY2RrQ29udGV4dE1lbnVPcGVuZWQnLCAnY2xvc2VkOiBjZGtDb250ZXh0TWVudUNsb3NlZCddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE1FTlVfVFJJR0dFUiwgdXNlRXhpc3Rpbmc6IENka0NvbnRleHRNZW51VHJpZ2dlciB9LFxuICAgIHsgcHJvdmlkZTogTUVOVV9TVEFDSywgdXNlQ2xhc3M6IE1lbnVTdGFjayB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDZGtDb250ZXh0TWVudVRyaWdnZXIgZXh0ZW5kcyBDZGtNZW51VHJpZ2dlckJhc2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9vdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RpcmVjdGlvbmFsaXR5ID0gaW5qZWN0KERpcmVjdGlvbmFsaXR5LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbnRleHRNZW51VHJhY2tlciA9IGluamVjdChDb250ZXh0TWVudVRyYWNrZXIpO1xuXG4gIEBJbnB1dCgnY2RrQ29udGV4dE1lbnVEaXNhYmxlZCcpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX3NldE1lbnVTdGFja0Nsb3NlTGlzdGVuZXIoKTtcbiAgfVxuXG4gIG9wZW4oY29vcmRpbmF0ZXM6IENvbnRleHRNZW51Q29vcmRpbmF0ZXMpIHtcbiAgICB0aGlzLl9vcGVuKGNvb3JkaW5hdGVzLCBmYWxzZSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLm1lbnVTdGFjay5jbG9zZUFsbCgpO1xuICB9XG5cbiAgX29wZW5PbkNvbnRleHRNZW51KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgdGhpcy5fY29udGV4dE1lbnVUcmFja2VyLnVwZGF0ZSh0aGlzKTtcbiAgICAgIHRoaXMuX29wZW4oeyB4OiBldmVudC5jbGllbnRYLCB5OiBldmVudC5jbGllbnRZIH0sIHRydWUpO1xuXG4gICAgICBpZiAoZXZlbnQuYnV0dG9uID09PSAyKSB7XG4gICAgICAgIHRoaXMuY2hpbGRNZW51Py5mb2N1c0ZpcnN0SXRlbSgnbW91c2UnKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQuYnV0dG9uID09PSAwKSB7XG4gICAgICAgIHRoaXMuY2hpbGRNZW51Py5mb2N1c0ZpcnN0SXRlbSgna2V5Ym9hcmQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2hpbGRNZW51Py5mb2N1c0ZpcnN0SXRlbSgncHJvZ3JhbScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldE92ZXJsYXlDb25maWcoY29vcmRpbmF0ZXM6IENvbnRleHRNZW51Q29vcmRpbmF0ZXMpIHtcbiAgICByZXR1cm4gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fZ2V0T3ZlcmxheVBvc2l0aW9uU3RyYXRlZ3koY29vcmRpbmF0ZXMpLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBkaXJlY3Rpb246IHRoaXMuX2RpcmVjdGlvbmFsaXR5IHx8IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE92ZXJsYXlQb3NpdGlvblN0cmF0ZWd5KGNvb3JkaW5hdGVzOiBDb250ZXh0TWVudUNvb3JkaW5hdGVzKTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKGNvb3JkaW5hdGVzKVxuICAgICAgLndpdGhMb2NrZWRQb3NpdGlvbigpXG4gICAgICAud2l0aEdyb3dBZnRlck9wZW4oKVxuICAgICAgLndpdGhQb3NpdGlvbnModGhpcy5tZW51UG9zaXRpb24gPz8gQ09OVEVYVF9NRU5VX1BPU0lUSU9OUyk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRNZW51U3RhY2tDbG9zZUxpc3RlbmVyKCkge1xuICAgIHRoaXMubWVudVN0YWNrLmNsb3NlZC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpLnN1YnNjcmliZSgoeyBpdGVtIH0pID0+IHtcbiAgICAgIGlmIChpdGVtID09PSB0aGlzLmNoaWxkTWVudSAmJiB0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgIHRoaXMuY2xvc2VkLm5leHQoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmIS5kZXRhY2goKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3N1YnNjcmliZVRvT3V0c2lkZUNsaWNrcyhpZ25vcmVGaXJzdEF1eENsaWNrOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgbGV0IG91dHNpZGVDbGlja3MgPSB0aGlzLm92ZXJsYXlSZWYub3V0c2lkZVBvaW50ZXJFdmVudHMoKTtcblxuICAgICAgaWYgKGlnbm9yZUZpcnN0QXV4Q2xpY2spIHtcbiAgICAgICAgY29uc3QgW2F1eENsaWNrcywgbm9uQXV4Q2xpY2tzXSA9IHBhcnRpdGlvbihvdXRzaWRlQ2xpY2tzLCAoeyB0eXBlIH0pID0+IHR5cGUgPT09ICdhdXhjbGljaycpO1xuICAgICAgICBvdXRzaWRlQ2xpY2tzID0gbWVyZ2Uobm9uQXV4Q2xpY2tzLCBhdXhDbGlja3MucGlwZShza2lwKDEpKSk7XG4gICAgICB9XG4gICAgICBvdXRzaWRlQ2xpY2tzLnBpcGUodGFrZVVudGlsKHRoaXMuc3RvcE91dHNpZGVDbGlja3NMaXN0ZW5lcikpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRWxlbWVudEluc2lkZU1lbnVTdGFjayhfZ2V0RXZlbnRUYXJnZXQoZXZlbnQpISkpIHtcbiAgICAgICAgICB0aGlzLm1lbnVTdGFjay5jbG9zZUFsbCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vcGVuKGNvb3JkaW5hdGVzOiBDb250ZXh0TWVudUNvb3JkaW5hdGVzLCBpZ25vcmVGaXJzdE91dHNpZGVBdXhDbGljazogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICB0aGlzLm1lbnVTdGFjay5jbG9zZVN1Yk1lbnVPZih0aGlzLmNoaWxkTWVudSEpO1xuXG4gICAgICAodGhpcy5vdmVybGF5UmVmIS5nZXRDb25maWcoKS5wb3NpdGlvblN0cmF0ZWd5IGFzIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSkuc2V0T3JpZ2luKGNvb3JkaW5hdGVzKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiEudXBkYXRlUG9zaXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuZWQubmV4dCgpO1xuXG4gICAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgICh0aGlzLm92ZXJsYXlSZWYuZ2V0Q29uZmlnKCkucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kpLnNldE9yaWdpbihjb29yZGluYXRlcyk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUodGhpcy5fZ2V0T3ZlcmxheUNvbmZpZyhjb29yZGluYXRlcykpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRoaXMuZ2V0TWVudUNvbnRlbnRQb3J0YWwoKSk7XG4gICAgICB0aGlzLl9zdWJzY3JpYmVUb091dHNpZGVDbGlja3MoaWdub3JlRmlyc3RPdXRzaWRlQXV4Q2xpY2spO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,140 @@
1
+ /* eslint-disable @angular-eslint/directive-class-suffix */
2
+ /* eslint-disable @angular-eslint/no-output-rename */
3
+ /* eslint-disable @angular-eslint/no-outputs-metadata-property */
4
+ /* eslint-disable @angular-eslint/no-input-rename */
5
+ /* eslint-disable @angular-eslint/no-inputs-metadata-property */
6
+ import { Directive, inject, Injectable, InjectionToken, isDevMode, NgZone } from '@angular/core';
7
+ import { fromEvent, Subject } from 'rxjs';
8
+ import { filter, takeUntil } from 'rxjs/operators';
9
+ import { throwMissingMenuReference, throwMissingPointerFocusTracker } from './menu-errors';
10
+ import * as i0 from "@angular/core";
11
+ export const MENU_AIM = new InjectionToken('cdk-menu-aim');
12
+ const MOUSE_MOVE_SAMPLE_FREQUENCY = 3;
13
+ const NUM_POINTS = 5;
14
+ const CLOSE_DELAY = 300;
15
+ function getSlope(a, b) {
16
+ return (b.y - a.y) / (b.x - a.x);
17
+ }
18
+ function getYIntercept(point, slope) {
19
+ return point.y - slope * point.x;
20
+ }
21
+ function isWithinSubmenu(submenuPoints, m, b) {
22
+ const { left, right, top, bottom } = submenuPoints;
23
+ return ((m * left + b >= top && m * left + b <= bottom) ||
24
+ (m * right + b >= top && m * right + b <= bottom) ||
25
+ ((top - b) / m >= left && (top - b) / m <= right) ||
26
+ ((bottom - b) / m >= left && (bottom - b) / m <= right));
27
+ }
28
+ export class TargetMenuAim {
29
+ constructor() {
30
+ this._ngZone = inject(NgZone);
31
+ this._points = [];
32
+ this._menu = null;
33
+ this._pointerTracker = null;
34
+ this._timeoutId = null;
35
+ this._destroyed = new Subject();
36
+ }
37
+ ngOnDestroy() {
38
+ this._destroyed.next();
39
+ this._destroyed.complete();
40
+ }
41
+ initialize(menu, pointerTracker) {
42
+ this._menu = menu;
43
+ this._pointerTracker = pointerTracker;
44
+ this._subscribeToMouseMoves();
45
+ }
46
+ toggle(doToggle) {
47
+ if (!this._menu)
48
+ return;
49
+ if (this._menu.orientation === 'horizontal') {
50
+ doToggle();
51
+ }
52
+ this._checkConfigured();
53
+ const siblingItemIsWaiting = !!this._timeoutId;
54
+ const hasPoints = this._points.length > 1;
55
+ if (hasPoints && !siblingItemIsWaiting) {
56
+ if (this._isMovingToSubmenu()) {
57
+ this._startTimeout(doToggle);
58
+ }
59
+ else {
60
+ doToggle();
61
+ }
62
+ }
63
+ else if (!siblingItemIsWaiting) {
64
+ doToggle();
65
+ }
66
+ }
67
+ _startTimeout(doToggle) {
68
+ const timeoutId = window.setTimeout(() => {
69
+ if (!this._pointerTracker)
70
+ return;
71
+ if (this._pointerTracker.activeElement && timeoutId === this._timeoutId) {
72
+ doToggle();
73
+ }
74
+ this._timeoutId = null;
75
+ }, CLOSE_DELAY);
76
+ this._timeoutId = timeoutId;
77
+ }
78
+ _isMovingToSubmenu() {
79
+ const submenuPoints = this._getSubmenuBounds();
80
+ if (!submenuPoints) {
81
+ return false;
82
+ }
83
+ let numMoving = 0;
84
+ const currPoint = this._points[this._points.length - 1];
85
+ for (let i = this._points.length - 2; i >= 0; i--) {
86
+ const previous = this._points[i];
87
+ const slope = getSlope(currPoint, previous);
88
+ if (isWithinSubmenu(submenuPoints, slope, getYIntercept(currPoint, slope))) {
89
+ numMoving++;
90
+ }
91
+ }
92
+ return numMoving >= Math.floor(NUM_POINTS / 2);
93
+ }
94
+ _getSubmenuBounds() {
95
+ return this._pointerTracker?.previousElement?.getMenu()?.nativeElement.getBoundingClientRect();
96
+ }
97
+ _checkConfigured() {
98
+ if (isDevMode()) {
99
+ if (!this._pointerTracker) {
100
+ throwMissingPointerFocusTracker();
101
+ }
102
+ if (!this._menu) {
103
+ throwMissingMenuReference();
104
+ }
105
+ }
106
+ }
107
+ _subscribeToMouseMoves() {
108
+ this._ngZone.runOutsideAngular(() => {
109
+ if (!this._menu)
110
+ return;
111
+ fromEvent(this._menu.nativeElement, 'mousemove')
112
+ .pipe(filter((_, index) => index % MOUSE_MOVE_SAMPLE_FREQUENCY === 0), takeUntil(this._destroyed))
113
+ .subscribe((event) => {
114
+ this._points.push({ x: event.clientX, y: event.clientY });
115
+ if (this._points.length > NUM_POINTS) {
116
+ this._points.shift();
117
+ }
118
+ });
119
+ });
120
+ }
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: TargetMenuAim, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
122
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: TargetMenuAim }); }
123
+ }
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: TargetMenuAim, decorators: [{
125
+ type: Injectable
126
+ }] });
127
+ export class CdkTargetMenuAim {
128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CdkTargetMenuAim, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
129
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: CdkTargetMenuAim, isStandalone: true, selector: "[cdkTargetMenuAim]", providers: [{ provide: MENU_AIM, useClass: TargetMenuAim }], exportAs: ["cdkTargetMenuAim"], ngImport: i0 }); }
130
+ }
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CdkTargetMenuAim, decorators: [{
132
+ type: Directive,
133
+ args: [{
134
+ selector: '[cdkTargetMenuAim]',
135
+ exportAs: 'cdkTargetMenuAim',
136
+ standalone: true,
137
+ providers: [{ provide: MENU_AIM, useClass: TargetMenuAim }],
138
+ }]
139
+ }] });
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1haW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL21lbnUtZGVwcmVjYXRlZC9tZW51LWFpbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyREFBMkQ7QUFDM0QscURBQXFEO0FBQ3JELGlFQUFpRTtBQUNqRSxvREFBb0Q7QUFDcEQsZ0VBQWdFO0FBRWhFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVM0YsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFVLGNBQWMsQ0FBQyxDQUFDO0FBRXBFLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxDQUFDO0FBRXRDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQztBQUVyQixNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFNeEIsU0FBUyxRQUFRLENBQUMsQ0FBUSxFQUFFLENBQVE7SUFDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLEtBQVksRUFBRSxLQUFhO0lBQ2hELE9BQU8sS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsS0FBSyxD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RSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDO2lCQUM1RCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LXJlbmFtZSAqL1xuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dHMtbWV0YWRhdGEtcHJvcGVydHkgKi9cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHkgKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBpc0Rldk1vZGUsIE5nWm9uZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdGhyb3dNaXNzaW5nTWVudVJlZmVyZW5jZSwgdGhyb3dNaXNzaW5nUG9pbnRlckZvY3VzVHJhY2tlciB9IGZyb20gJy4vbWVudS1lcnJvcnMnO1xuaW1wb3J0IHsgTWVudSB9IGZyb20gJy4vbWVudS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRm9jdXNhYmxlRWxlbWVudCwgUG9pbnRlckZvY3VzVHJhY2tlciB9IGZyb20gJy4vcG9pbnRlci1mb2N1cy10cmFja2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBNZW51QWltIHtcbiAgaW5pdGlhbGl6ZShtZW51OiBNZW51LCBwb2ludGVyVHJhY2tlcjogUG9pbnRlckZvY3VzVHJhY2tlcjxGb2N1c2FibGVFbGVtZW50ICYgVG9nZ2xlcj4pOiB2b2lkO1xuXG4gIHRvZ2dsZShkb1RvZ2dsZTogKCkgPT4gdm9pZCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBNRU5VX0FJTSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNZW51QWltPignY2RrLW1lbnUtYWltJyk7XG5cbmNvbnN0IE1PVVNFX01PVkVfU0FNUExFX0ZSRVFVRU5DWSA9IDM7XG5cbmNvbnN0IE5VTV9QT0lOVFMgPSA1O1xuXG5jb25zdCBDTE9TRV9ERUxBWSA9IDMwMDtcblxuZXhwb3J0IGludGVyZmFjZSBUb2dnbGVyIHtcbiAgZ2V0TWVudSgpOiBNZW51IHwgdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBnZXRTbG9wZShhOiBQb2ludCwgYjogUG9pbnQpIHtcbiAgcmV0dXJuIChiLnkgLSBhLnkpIC8gKGIueCAtIGEueCk7XG59XG5cbmZ1bmN0aW9uIGdldFlJbnRlcmNlcHQocG9pbnQ6IFBvaW50LCBzbG9wZTogbnVtYmVyKSB7XG4gIHJldHVybiBwb2ludC55IC0gc2xvcGUgKiBwb2ludC54O1xufVxuXG50eXBlIFBvaW50ID0geyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuXG5mdW5jdGlvbiBpc1dpdGhpblN1Ym1lbnUoc3VibWVudVBvaW50czogRE9NUmVjdCwgbTogbnVtYmVyLCBiOiBudW1iZXIpIHtcbiAgY29uc3QgeyBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20gfSA9IHN1Ym1lbnVQb2ludHM7XG5cbiAgcmV0dXJuIChcbiAgICAobSAqIGxlZnQgKyBiID49IHRvcCAmJiBtICogbGVmdCArIGIgPD0gYm90dG9tKSB8fFxuICAgIChtICogcmlnaHQgKyBiID49IHRvcCAmJiBtICogcmlnaHQgKyBiIDw9IGJvdHRvbSkgfHxcbiAgICAoKHRvcCAtIGIpIC8gbSA+PSBsZWZ0ICYmICh0b3AgLSBiKSAvIG0gPD0gcmlnaHQpIHx8XG4gICAgKChib3R0b20gLSBiKSAvIG0gPj0gbGVmdCAmJiAoYm90dG9tIC0gYikgLyBtIDw9IHJpZ2h0KVxuICApO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGFyZ2V0TWVudUFpbSBpbXBsZW1lbnRzIE1lbnVBaW0sIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX25nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BvaW50czogUG9pbnRbXSA9IFtdO1xuXG4gIHByaXZhdGUgX21lbnU6IE1lbnUgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9wb2ludGVyVHJhY2tlcjogUG9pbnRlckZvY3VzVHJhY2tlcjxUb2dnbGVyICYgRm9jdXNhYmxlRWxlbWVudD4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF90aW1lb3V0SWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3llZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGluaXRpYWxpemUobWVudTogTWVudSwgcG9pbnRlclRyYWNrZXI6IFBvaW50ZXJGb2N1c1RyYWNrZXI8Rm9jdXNhYmxlRWxlbWVudCAmIFRvZ2dsZXI+KSB7XG4gICAgdGhpcy5fbWVudSA9IG1lbnU7XG4gICAgdGhpcy5fcG9pbnRlclRyYWNrZXIgPSBwb2ludGVyVHJhY2tlcjtcbiAgICB0aGlzLl9zdWJzY3JpYmVUb01vdXNlTW92ZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZShkb1RvZ2dsZTogKCkgPT4gdm9pZCkge1xuICAgIGlmICghdGhpcy5fbWVudSkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuX21lbnUub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgICAgZG9Ub2dnbGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9jaGVja0NvbmZpZ3VyZWQoKTtcblxuICAgIGNvbnN0IHNpYmxpbmdJdGVtSXNXYWl0aW5nID0gISF0aGlzLl90aW1lb3V0SWQ7XG4gICAgY29uc3QgaGFzUG9pbnRzID0gdGhpcy5fcG9pbnRzLmxlbmd0aCA+IDE7XG5cbiAgICBpZiAoaGFzUG9pbnRzICYmICFzaWJsaW5nSXRlbUlzV2FpdGluZykge1xuICAgICAgaWYgKHRoaXMuX2lzTW92aW5nVG9TdWJtZW51KCkpIHtcbiAgICAgICAgdGhpcy5fc3RhcnRUaW1lb3V0KGRvVG9nZ2xlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvVG9nZ2xlKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghc2libGluZ0l0ZW1Jc1dhaXRpbmcpIHtcbiAgICAgIGRvVG9nZ2xlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3RhcnRUaW1lb3V0KGRvVG9nZ2xlOiAoKSA9PiB2b2lkKSB7XG4gICAgY29uc3QgdGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9wb2ludGVyVHJhY2tlcikgcmV0dXJuO1xuXG4gICAgICBpZiAodGhpcy5fcG9pbnRlclRyYWNrZXIuYWN0aXZlRWxlbWVudCAmJiB0aW1lb3V0SWQgPT09IHRoaXMuX3RpbWVvdXRJZCkge1xuICAgICAgICBkb1RvZ2dsZSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5fdGltZW91dElkID0gbnVsbDtcbiAgICB9LCBDTE9TRV9ERUxBWSk7XG5cbiAgICB0aGlzLl90aW1lb3V0SWQgPSB0aW1lb3V0SWQ7XG4gIH1cblxuICBwcml2YXRlIF9pc01vdmluZ1RvU3VibWVudSgpIHtcbiAgICBjb25zdCBzdWJtZW51UG9pbnRzID0gdGhpcy5fZ2V0U3VibWVudUJvdW5kcygpO1xuICAgIGlmICghc3VibWVudVBvaW50cykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGxldCBudW1Nb3ZpbmcgPSAwO1xuICAgIGNvbnN0IGN1cnJQb2ludCA9IHRoaXMuX3BvaW50c1t0aGlzLl9wb2ludHMubGVuZ3RoIC0gMV07XG5cbiAgICBmb3IgKGxldCBpID0gdGhpcy5fcG9pbnRzLmxlbmd0aCAtIDI7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMuX3BvaW50c1tpXTtcbiAgICAgIGNvbnN0IHNsb3BlID0gZ2V0U2xvcGUoY3VyclBvaW50ISwgcHJldmlvdXMhKTtcbiAgICAgIGlmIChpc1dpdGhpblN1Ym1lbnUoc3VibWVudVBvaW50cywgc2xvcGUsIGdldFlJbnRlcmNlcHQoY3VyclBvaW50ISwgc2xvcGUpKSkge1xuICAgICAgICBudW1Nb3ZpbmcrKztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bU1vdmluZyA+PSBNYXRoLmZsb29yKE5VTV9QT0lOVFMgLyAyKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFN1Ym1lbnVCb3VuZHMoKTogRE9NUmVjdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3BvaW50ZXJUcmFja2VyPy5wcmV2aW91c0VsZW1lbnQ/LmdldE1lbnUoKT8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQ29uZmlndXJlZCgpIHtcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgIGlmICghdGhpcy5fcG9pbnRlclRyYWNrZXIpIHtcbiAgICAgICAgdGhyb3dNaXNzaW5nUG9pbnRlckZvY3VzVHJhY2tlcigpO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLl9tZW51KSB7XG4gICAgICAgIHRocm93TWlzc2luZ01lbnVSZWZlcmVuY2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmVUb01vdXNlTW92ZXMoKSB7XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5fbWVudSkgcmV0dXJuO1xuXG4gICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5fbWVudS5uYXRpdmVFbGVtZW50LCAnbW91c2Vtb3ZlJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChfOiBNb3VzZUV2ZW50LCBpbmRleDogbnVtYmVyKSA9PiBpbmRleCAlIE1PVVNFX01PVkVfU0FNUExFX0ZSRVFVRU5DWSA9PT0gMCksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLl9wb2ludHMucHVzaCh7IHg6IGV2ZW50LmNsaWVudFgsIHk6IGV2ZW50LmNsaWVudFkgfSk7XG4gICAgICAgICAgaWYgKHRoaXMuX3BvaW50cy5sZW5ndGggPiBOVU1fUE9JTlRTKSB7XG4gICAgICAgICAgICB0aGlzLl9wb2ludHMuc2hpZnQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjZGtUYXJnZXRNZW51QWltXScsXG4gIGV4cG9ydEFzOiAnY2RrVGFyZ2V0TWVudUFpbScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTUVOVV9BSU0sIHVzZUNsYXNzOiBUYXJnZXRNZW51QWltIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBDZGtUYXJnZXRNZW51QWltIHt9XG4iXX0=
@@ -0,0 +1,116 @@
1
+ /* eslint-disable @angular-eslint/directive-class-suffix */
2
+ /* eslint-disable @angular-eslint/no-output-rename */
3
+ /* eslint-disable @angular-eslint/no-outputs-metadata-property */
4
+ /* eslint-disable @angular-eslint/no-input-rename */
5
+ /* eslint-disable @angular-eslint/no-inputs-metadata-property */
6
+ import { DOWN_ARROW, ESCAPE, LEFT_ARROW, RIGHT_ARROW, TAB, UP_ARROW, hasModifierKey } from '@angular/cdk/keycodes';
7
+ import { Directive } from '@angular/core';
8
+ import { takeUntil } from 'rxjs/operators';
9
+ import { CdkMenuBase } from './menu-base';
10
+ import { CdkMenuGroup } from './menu-group';
11
+ import { CDK_MENU } from './menu-interface';
12
+ import { MENU_STACK, MenuStack } from './menu-stack';
13
+ import * as i0 from "@angular/core";
14
+ /**
15
+ * @deprecated Use the new menu instead
16
+ */
17
+ export class CdkMenuBar extends CdkMenuBase {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.orientation = 'horizontal';
21
+ this.isInline = true;
22
+ }
23
+ ngAfterContentInit() {
24
+ super.ngAfterContentInit();
25
+ this._subscribeToMenuStackEmptied();
26
+ }
27
+ _handleKeyEvent(event) {
28
+ const keyManager = this.keyManager;
29
+ if (!keyManager)
30
+ return;
31
+ switch (event.keyCode) {
32
+ case UP_ARROW:
33
+ case DOWN_ARROW:
34
+ case LEFT_ARROW:
35
+ case RIGHT_ARROW:
36
+ if (!hasModifierKey(event)) {
37
+ const horizontalArrows = event.keyCode === LEFT_ARROW || event.keyCode === RIGHT_ARROW;
38
+ if (horizontalArrows) {
39
+ event.preventDefault();
40
+ const prevIsOpen = keyManager.activeItem?.isMenuOpen();
41
+ keyManager.activeItem?.getMenuTrigger()?.close();
42
+ keyManager.setFocusOrigin('keyboard');
43
+ keyManager.onKeydown(event);
44
+ if (prevIsOpen) {
45
+ keyManager.activeItem?.getMenuTrigger()?.open();
46
+ }
47
+ }
48
+ }
49
+ break;
50
+ case ESCAPE:
51
+ if (!hasModifierKey(event)) {
52
+ event.preventDefault();
53
+ keyManager.activeItem?.getMenuTrigger()?.close();
54
+ }
55
+ break;
56
+ case TAB:
57
+ if (!hasModifierKey(event, 'altKey', 'metaKey', 'ctrlKey')) {
58
+ keyManager.activeItem?.getMenuTrigger()?.close();
59
+ }
60
+ break;
61
+ default:
62
+ keyManager.onKeydown(event);
63
+ }
64
+ }
65
+ _toggleOpenMenu(focusNext) {
66
+ const keyManager = this.keyManager;
67
+ if (!keyManager)
68
+ return;
69
+ switch (focusNext) {
70
+ case 0 /* FocusNext.nextItem */:
71
+ keyManager.setFocusOrigin('keyboard');
72
+ keyManager.setNextItemActive();
73
+ keyManager.activeItem?.getMenuTrigger()?.open();
74
+ break;
75
+ case 1 /* FocusNext.previousItem */:
76
+ keyManager.setFocusOrigin('keyboard');
77
+ keyManager.setPreviousItemActive();
78
+ keyManager.activeItem?.getMenuTrigger()?.open();
79
+ break;
80
+ case 2 /* FocusNext.currentItem */:
81
+ if (keyManager.activeItem) {
82
+ keyManager.setFocusOrigin('keyboard');
83
+ keyManager.setActiveItem(keyManager.activeItem);
84
+ }
85
+ break;
86
+ }
87
+ }
88
+ _subscribeToMenuStackEmptied() {
89
+ this.menuStack?.emptied.pipe(takeUntil(this.destroyed)).subscribe((event) => this._toggleOpenMenu(event));
90
+ }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CdkMenuBar, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
92
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: CdkMenuBar, isStandalone: true, selector: "[cdkMenuBar]", host: { attributes: { "role": "menubar" }, listeners: { "keydown": "_handleKeyEvent($event)" }, classAttribute: "cdk-menu-bar" }, providers: [
93
+ { provide: CdkMenuGroup, useExisting: CdkMenuBar },
94
+ { provide: CDK_MENU, useExisting: CdkMenuBar },
95
+ { provide: MENU_STACK, useFactory: () => MenuStack.inline('horizontal') },
96
+ ], exportAs: ["cdkMenuBar"], usesInheritance: true, ngImport: i0 }); }
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CdkMenuBar, decorators: [{
99
+ type: Directive,
100
+ args: [{
101
+ selector: '[cdkMenuBar]',
102
+ exportAs: 'cdkMenuBar',
103
+ standalone: true,
104
+ host: {
105
+ role: 'menubar',
106
+ class: 'cdk-menu-bar',
107
+ '(keydown)': '_handleKeyEvent($event)',
108
+ },
109
+ providers: [
110
+ { provide: CdkMenuGroup, useExisting: CdkMenuBar },
111
+ { provide: CDK_MENU, useExisting: CdkMenuBar },
112
+ { provide: MENU_STACK, useFactory: () => MenuStack.inline('horizontal') },
113
+ ],
114
+ }]
115
+ }] });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1iYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL21lbnUtZGVwcmVjYXRlZC9tZW51LWJhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyREFBMkQ7QUFDM0QscURBQXFEO0FBQ3JELGlFQUFpRTtBQUNqRSxvREFBb0Q7QUFDcEQsZ0VBQWdFO0FBRWhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuSCxPQUFPLEVBQW9CLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQWEsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFaEU7O0dBRUc7QUFnQkgsTUFBTSxPQUFPLFVBQVcsU0FBUSxXQUFXO0lBZjNDOztRQWdCb0IsZ0JBQVcsR0FBRyxZQUFZLENBQUM7UUFFM0IsYUFBUSxHQUFHLElBQUksQ0FBQztLQW1GbkM7SUFqRlUsa0JBQWtCO1FBQ3pCLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBb0I7UUFDbEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUVuQyxJQUFJLENBQUMsVUFB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QUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUU7WUFDbEQsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUU7WUFDOUMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFO1NBQzFFOzsyRkFFVSxVQUFVO2tCQWZ0QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixJQUFJLEVBQUUsU0FBUzt3QkFDZixLQUFLLEVBQUUsY0FBYzt3QkFDckIsV0FBVyxFQUFFLHlCQUF5QjtxQkFDdkM7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLFlBQVksRUFBRTt3QkFDbEQsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsWUFBWSxFQUFFO3dCQUM5QyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUU7cUJBQzFFO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXggKi9cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtcmVuYW1lICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0cy1tZXRhZGF0YS1wcm9wZXJ0eSAqL1xuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZSAqL1xuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eSAqL1xuXG5pbXBvcnQgeyBET1dOX0FSUk9XLCBFU0NBUEUsIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBUQUIsIFVQX0FSUk9XLCBoYXNNb2RpZmllcktleSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENka01lbnVCYXNlIH0gZnJvbSAnLi9tZW51LWJhc2UnO1xuaW1wb3J0IHsgQ2RrTWVudUdyb3VwIH0gZnJvbSAnLi9tZW51LWdyb3VwJztcbmltcG9ydCB7IENES19NRU5VIH0gZnJvbSAnLi9tZW51LWludGVyZmFjZSc7XG5pbXBvcnQgeyBGb2N1c05leHQsIE1FTlVfU1RBQ0ssIE1lbnVTdGFjayB9IGZyb20gJy4vbWVudS1zdGFjayc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBuZXcgbWVudSBpbnN0ZWFkXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjZGtNZW51QmFyXScsXG4gIGV4cG9ydEFzOiAnY2RrTWVudUJhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICByb2xlOiAnbWVudWJhcicsXG4gICAgY2xhc3M6ICdjZGstbWVudS1iYXInLFxuICAgICcoa2V5ZG93biknOiAnX2hhbmRsZUtleUV2ZW50KCRldmVudCknLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IENka01lbnVHcm91cCwgdXNlRXhpc3Rpbmc6IENka01lbnVCYXIgfSxcbiAgICB7IHByb3ZpZGU6IENES19NRU5VLCB1c2VFeGlzdGluZzogQ2RrTWVudUJhciB9LFxuICAgIHsgcHJvdmlkZTogTUVOVV9TVEFDSywgdXNlRmFjdG9yeTogKCkgPT4gTWVudVN0YWNrLmlubGluZSgnaG9yaXpvbnRhbCcpIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENka01lbnVCYXIgZXh0ZW5kcyBDZGtNZW51QmFzZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBvdmVycmlkZSByZWFkb25seSBvcmllbnRhdGlvbiA9ICdob3Jpem9udGFsJztcblxuICBvdmVycmlkZSByZWFkb25seSBpc0lubGluZSA9IHRydWU7XG5cbiAgb3ZlcnJpZGUgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgIHRoaXMuX3N1YnNjcmliZVRvTWVudVN0YWNrRW1wdGllZCgpO1xuICB9XG5cbiAgX2hhbmRsZUtleUV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qga2V5TWFuYWdlciA9IHRoaXMua2V5TWFuYWdlcjtcblxuICAgIGlmICgha2V5TWFuYWdlcikgcmV0dXJuO1xuXG4gICAgc3dpdGNoIChldmVudC5rZXlDb2RlKSB7XG4gICAgICBjYXNlIFVQX0FSUk9XOlxuICAgICAgY2FzZSBET1dOX0FSUk9XOlxuICAgICAgY2FzZSBMRUZUX0FSUk9XOlxuICAgICAgY2FzZSBSSUdIVF9BUlJPVzpcbiAgICAgICAgaWYgKCFoYXNNb2RpZmllcktleShldmVudCkpIHtcbiAgICAgICAgICBjb25zdCBob3Jpem9udGFsQXJyb3dzID0gZXZlbnQua2V5Q29kZSA9PT0gTEVGVF9BUlJPVyB8fCBldmVudC5rZXlDb2RlID09PSBSSUdIVF9BUlJPVztcblxuICAgICAgICAgIGlmIChob3Jpem9udGFsQXJyb3dzKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICBjb25zdCBwcmV2SXNPcGVuID0ga2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pc01lbnVPcGVuKCk7XG4gICAgICAgICAgICBrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LmdldE1lbnVUcmlnZ2VyKCk/LmNsb3NlKCk7XG5cbiAgICAgICAgICAgIGtleU1hbmFnZXIuc2V0Rm9jdXNPcmlnaW4oJ2tleWJvYXJkJyk7XG4gICAgICAgICAgICBrZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICBpZiAocHJldklzT3Blbikge1xuICAgICAgICAgICAgICBrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LmdldE1lbnVUcmlnZ2VyKCk/Lm9wZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRVNDQVBFOlxuICAgICAgICBpZiAoIWhhc01vZGlmaWVyS2V5KGV2ZW50KSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAga2V5TWFuYWdlci5hY3RpdmVJdGVtPy5nZXRNZW51VHJpZ2dlcigpPy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRBQjpcbiAgICAgICAgaWYgKCFoYXNNb2RpZmllcktleShldmVudCwgJ2FsdEtleScsICdtZXRhS2V5JywgJ2N0cmxLZXknKSkge1xuICAgICAgICAgIGtleU1hbmFnZXIuYWN0aXZlSXRlbT8uZ2V0TWVudVRyaWdnZXIoKT8uY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAga2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3RvZ2dsZU9wZW5NZW51KGZvY3VzTmV4dDogRm9jdXNOZXh0IHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3Qga2V5TWFuYWdlciA9IHRoaXMua2V5TWFuYWdlcjtcblxuICAgIGlmICgha2V5TWFuYWdlcikgcmV0dXJuO1xuXG4gICAgc3dpdGNoIChmb2N1c05leHQpIHtcbiAgICAgIGNhc2UgRm9jdXNOZXh0Lm5leHRJdGVtOlxuICAgICAgICBrZXlNYW5hZ2VyLnNldEZvY3VzT3JpZ2luKCdrZXlib2FyZCcpO1xuICAgICAgICBrZXlNYW5hZ2VyLnNldE5leHRJdGVtQWN0aXZlKCk7XG4gICAgICAgIGtleU1hbmFnZXIuYWN0aXZlSXRlbT8uZ2V0TWVudVRyaWdnZXIoKT8ub3BlbigpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBGb2N1c05leHQucHJldmlvdXNJdGVtOlxuICAgICAgICBrZXlNYW5hZ2VyLnNldEZvY3VzT3JpZ2luKCdrZXlib2FyZCcpO1xuICAgICAgICBrZXlNYW5hZ2VyLnNldFByZXZpb3VzSXRlbUFjdGl2ZSgpO1xuICAgICAgICBrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LmdldE1lbnVUcmlnZ2VyKCk/Lm9wZW4oKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRm9jdXNOZXh0LmN1cnJlbnRJdGVtOlxuICAgICAgICBpZiAoa2V5TWFuYWdlci5hY3RpdmVJdGVtKSB7XG4gICAgICAgICAga2V5TWFuYWdlci5zZXRGb2N1c09yaWdpbigna2V5Ym9hcmQnKTtcbiAgICAgICAgICBrZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oa2V5TWFuYWdlci5hY3RpdmVJdGVtKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmVUb01lbnVTdGFja0VtcHRpZWQoKSB7XG4gICAgdGhpcy5tZW51U3RhY2s/LmVtcHRpZWQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB0aGlzLl90b2dnbGVPcGVuTWVudShldmVudCkpO1xuICB9XG59XG4iXX0=