@clr/angular 17.12.2 → 18.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1157) hide show
  1. package/README.md +1 -5
  2. package/fesm2022/clr-angular-accordion.mjs +355 -0
  3. package/fesm2022/clr-angular-accordion.mjs.map +1 -0
  4. package/fesm2022/clr-angular-button.mjs +713 -0
  5. package/fesm2022/clr-angular-button.mjs.map +1 -0
  6. package/fesm2022/clr-angular-collapsible-panel.mjs +201 -0
  7. package/fesm2022/clr-angular-collapsible-panel.mjs.map +1 -0
  8. package/fesm2022/clr-angular-data-datagrid.mjs +7587 -0
  9. package/fesm2022/clr-angular-data-datagrid.mjs.map +1 -0
  10. package/fesm2022/clr-angular-data-stack-view.mjs +442 -0
  11. package/fesm2022/clr-angular-data-stack-view.mjs.map +1 -0
  12. package/fesm2022/clr-angular-data-tree-view.mjs +1106 -0
  13. package/fesm2022/clr-angular-data-tree-view.mjs.map +1 -0
  14. package/fesm2022/clr-angular-data.mjs +9131 -0
  15. package/fesm2022/clr-angular-data.mjs.map +1 -0
  16. package/fesm2022/clr-angular-emphasis-alert.mjs +624 -0
  17. package/fesm2022/clr-angular-emphasis-alert.mjs.map +1 -0
  18. package/fesm2022/clr-angular-emphasis-badge.mjs +69 -0
  19. package/fesm2022/clr-angular-emphasis-badge.mjs.map +1 -0
  20. package/fesm2022/clr-angular-emphasis-common.mjs +25 -0
  21. package/fesm2022/clr-angular-emphasis-common.mjs.map +1 -0
  22. package/fesm2022/clr-angular-emphasis-label.mjs +105 -0
  23. package/fesm2022/clr-angular-emphasis-label.mjs.map +1 -0
  24. package/fesm2022/clr-angular-emphasis.mjs +807 -0
  25. package/fesm2022/clr-angular-emphasis.mjs.map +1 -0
  26. package/fesm2022/clr-angular-forms-checkbox.mjs +270 -0
  27. package/fesm2022/clr-angular-forms-checkbox.mjs.map +1 -0
  28. package/fesm2022/clr-angular-forms-combobox.mjs +1478 -0
  29. package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -0
  30. package/fesm2022/clr-angular-forms-common.mjs +1238 -0
  31. package/fesm2022/clr-angular-forms-common.mjs.map +1 -0
  32. package/fesm2022/clr-angular-forms-datalist.mjs +263 -0
  33. package/fesm2022/clr-angular-forms-datalist.mjs.map +1 -0
  34. package/fesm2022/clr-angular-forms-datepicker.mjs +3222 -0
  35. package/fesm2022/clr-angular-forms-datepicker.mjs.map +1 -0
  36. package/fesm2022/clr-angular-forms-file-input.mjs +827 -0
  37. package/fesm2022/clr-angular-forms-file-input.mjs.map +1 -0
  38. package/fesm2022/clr-angular-forms-input.mjs +153 -0
  39. package/fesm2022/clr-angular-forms-input.mjs.map +1 -0
  40. package/fesm2022/clr-angular-forms-number-input.mjs +237 -0
  41. package/fesm2022/clr-angular-forms-number-input.mjs.map +1 -0
  42. package/fesm2022/clr-angular-forms-password.mjs +233 -0
  43. package/fesm2022/clr-angular-forms-password.mjs.map +1 -0
  44. package/fesm2022/clr-angular-forms-radio.mjs +231 -0
  45. package/fesm2022/clr-angular-forms-radio.mjs.map +1 -0
  46. package/fesm2022/clr-angular-forms-range.mjs +186 -0
  47. package/fesm2022/clr-angular-forms-range.mjs.map +1 -0
  48. package/fesm2022/clr-angular-forms-select.mjs +153 -0
  49. package/fesm2022/clr-angular-forms-select.mjs.map +1 -0
  50. package/fesm2022/clr-angular-forms-textarea.mjs +136 -0
  51. package/fesm2022/clr-angular-forms-textarea.mjs.map +1 -0
  52. package/fesm2022/clr-angular-forms.mjs +8492 -0
  53. package/fesm2022/clr-angular-forms.mjs.map +1 -0
  54. package/fesm2022/clr-angular-icon.mjs +7387 -0
  55. package/fesm2022/clr-angular-icon.mjs.map +1 -0
  56. package/fesm2022/clr-angular-layout-breadcrumbs.mjs +120 -0
  57. package/fesm2022/clr-angular-layout-breadcrumbs.mjs.map +1 -0
  58. package/fesm2022/clr-angular-layout-main-container.mjs +100 -0
  59. package/fesm2022/clr-angular-layout-main-container.mjs.map +1 -0
  60. package/fesm2022/clr-angular-layout-nav.mjs +580 -0
  61. package/fesm2022/clr-angular-layout-nav.mjs.map +1 -0
  62. package/fesm2022/clr-angular-layout-tabs.mjs +807 -0
  63. package/fesm2022/clr-angular-layout-tabs.mjs.map +1 -0
  64. package/fesm2022/clr-angular-layout-vertical-nav.mjs +507 -0
  65. package/fesm2022/clr-angular-layout-vertical-nav.mjs.map +1 -0
  66. package/fesm2022/clr-angular-layout.mjs +2086 -0
  67. package/fesm2022/clr-angular-layout.mjs.map +1 -0
  68. package/fesm2022/clr-angular-modal.mjs +618 -0
  69. package/fesm2022/clr-angular-modal.mjs.map +1 -0
  70. package/fesm2022/clr-angular-popover-common.mjs +1093 -0
  71. package/fesm2022/clr-angular-popover-common.mjs.map +1 -0
  72. package/fesm2022/clr-angular-popover-dropdown.mjs +492 -0
  73. package/fesm2022/clr-angular-popover-dropdown.mjs.map +1 -0
  74. package/fesm2022/clr-angular-popover-signpost.mjs +493 -0
  75. package/fesm2022/clr-angular-popover-signpost.mjs.map +1 -0
  76. package/fesm2022/clr-angular-popover-tooltip.mjs +293 -0
  77. package/fesm2022/clr-angular-popover-tooltip.mjs.map +1 -0
  78. package/fesm2022/clr-angular-popover.mjs +2355 -0
  79. package/fesm2022/clr-angular-popover.mjs.map +1 -0
  80. package/fesm2022/clr-angular-progress-progress-bars.mjs +217 -0
  81. package/fesm2022/clr-angular-progress-progress-bars.mjs.map +1 -0
  82. package/fesm2022/clr-angular-progress-spinner.mjs +132 -0
  83. package/fesm2022/clr-angular-progress-spinner.mjs.map +1 -0
  84. package/fesm2022/clr-angular-stepper.mjs +688 -0
  85. package/fesm2022/clr-angular-stepper.mjs.map +1 -0
  86. package/fesm2022/clr-angular-timeline.mjs +316 -0
  87. package/fesm2022/clr-angular-timeline.mjs.map +1 -0
  88. package/fesm2022/clr-angular-utils-conditional.mjs +351 -0
  89. package/fesm2022/clr-angular-utils-conditional.mjs.map +1 -0
  90. package/fesm2022/clr-angular-utils-loading.mjs +107 -0
  91. package/fesm2022/clr-angular-utils-loading.mjs.map +1 -0
  92. package/fesm2022/clr-angular-utils.mjs +2509 -0
  93. package/fesm2022/clr-angular-utils.mjs.map +1 -0
  94. package/fesm2022/clr-angular-wizard.mjs +2871 -0
  95. package/fesm2022/clr-angular-wizard.mjs.map +1 -0
  96. package/fesm2022/clr-angular.mjs +38714 -0
  97. package/fesm2022/clr-angular.mjs.map +1 -0
  98. package/package.json +197 -18
  99. package/popover/common/README.md +112 -0
  100. package/types/clr-angular-accordion.d.ts +100 -0
  101. package/types/clr-angular-button.d.ts +169 -0
  102. package/types/clr-angular-collapsible-panel.d.ts +73 -0
  103. package/types/clr-angular-data-datagrid.d.ts +1840 -0
  104. package/types/clr-angular-data-stack-view.d.ts +87 -0
  105. package/types/clr-angular-data-tree-view.d.ts +220 -0
  106. package/types/clr-angular-data.d.ts +2137 -0
  107. package/types/clr-angular-emphasis-alert.d.ts +175 -0
  108. package/types/clr-angular-emphasis-badge.d.ts +25 -0
  109. package/types/clr-angular-emphasis-common.d.ts +6 -0
  110. package/types/clr-angular-emphasis-label.d.ts +29 -0
  111. package/types/clr-angular-emphasis.d.ts +231 -0
  112. package/types/clr-angular-forms-checkbox.d.ts +69 -0
  113. package/types/clr-angular-forms-combobox.d.ts +307 -0
  114. package/types/clr-angular-forms-common.d.ts +336 -0
  115. package/types/clr-angular-forms-datalist.d.ts +59 -0
  116. package/types/clr-angular-forms-datepicker.d.ts +958 -0
  117. package/types/clr-angular-forms-file-input.d.ts +193 -0
  118. package/types/clr-angular-forms-input.d.ts +29 -0
  119. package/types/clr-angular-forms-number-input.d.ts +43 -0
  120. package/types/clr-angular-forms-password.d.ts +52 -0
  121. package/types/clr-angular-forms-radio.d.ts +50 -0
  122. package/types/clr-angular-forms-range.d.ts +37 -0
  123. package/types/clr-angular-forms-select.d.ts +36 -0
  124. package/types/clr-angular-forms-textarea.d.ts +29 -0
  125. package/types/clr-angular-forms.d.ts +2088 -0
  126. package/types/clr-angular-icon.d.ts +1498 -0
  127. package/types/clr-angular-layout-breadcrumbs.d.ts +45 -0
  128. package/types/clr-angular-layout-main-container.d.ts +28 -0
  129. package/types/clr-angular-layout-nav.d.ts +138 -0
  130. package/types/clr-angular-layout-tabs.d.ts +158 -0
  131. package/types/clr-angular-layout-vertical-nav.d.ts +128 -0
  132. package/types/clr-angular-layout.d.ts +476 -0
  133. package/types/clr-angular-modal.d.ts +160 -0
  134. package/types/clr-angular-popover-common.d.ts +255 -0
  135. package/types/clr-angular-popover-dropdown.d.ts +123 -0
  136. package/types/clr-angular-popover-signpost.d.ts +157 -0
  137. package/types/clr-angular-popover-tooltip.d.ts +83 -0
  138. package/types/clr-angular-popover.d.ts +602 -0
  139. package/{progress/progress-bars/progress-bar.d.ts → types/clr-angular-progress-progress-bars.d.ts} +15 -3
  140. package/{progress/spinner/spinner.d.ts → types/clr-angular-progress-spinner.d.ts} +15 -3
  141. package/types/clr-angular-stepper.d.ts +179 -0
  142. package/types/clr-angular-timeline.d.ts +86 -0
  143. package/types/clr-angular-utils-conditional.d.ts +132 -0
  144. package/types/clr-angular-utils-loading.d.ts +38 -0
  145. package/types/clr-angular-utils.d.ts +1065 -0
  146. package/types/clr-angular-wizard.d.ts +1454 -0
  147. package/types/clr-angular.d.ts +10289 -0
  148. package/accordion/accordion-content.d.ts +0 -5
  149. package/accordion/accordion-description.d.ts +0 -5
  150. package/accordion/accordion-panel.d.ts +0 -45
  151. package/accordion/accordion-title.d.ts +0 -5
  152. package/accordion/accordion.d.ts +0 -20
  153. package/accordion/accordion.module.d.ts +0 -16
  154. package/accordion/chocolate/accordion-oompa-loompa.d.ts +0 -12
  155. package/accordion/chocolate/accordion-willy-wonka.d.ts +0 -6
  156. package/accordion/enums/accordion-status.enum.d.ts +0 -5
  157. package/accordion/enums/accordion-strategy.enum.d.ts +0 -4
  158. package/accordion/index.d.ts +0 -10
  159. package/accordion/models/accordion.model.d.ts +0 -27
  160. package/accordion/providers/accordion.service.d.ts +0 -17
  161. package/accordion/stepper/chocolate/stepper-oompa-loompa.d.ts +0 -12
  162. package/accordion/stepper/chocolate/stepper-willy-wonka.d.ts +0 -6
  163. package/accordion/stepper/index.d.ts +0 -4
  164. package/accordion/stepper/models/stepper.model.d.ts +0 -29
  165. package/accordion/stepper/providers/stepper.service.d.ts +0 -23
  166. package/accordion/stepper/step-button.d.ts +0 -21
  167. package/accordion/stepper/stepper-panel.d.ts +0 -28
  168. package/accordion/stepper/stepper.d.ts +0 -26
  169. package/accordion/stepper/stepper.module.d.ts +0 -14
  170. package/accordion/utils/animation.d.ts +0 -2
  171. package/button/button-group/button-group.d.ts +0 -60
  172. package/button/button-group/button-group.module.d.ts +0 -13
  173. package/button/button-group/button.d.ts +0 -40
  174. package/button/button-group/index.d.ts +0 -3
  175. package/button/button-loading/index.d.ts +0 -2
  176. package/button/button-loading/loading-button.d.ts +0 -17
  177. package/button/button-loading/loading-button.module.d.ts +0 -10
  178. package/button/button.module.d.ts +0 -9
  179. package/button/index.d.ts +0 -3
  180. package/button/providers/button-group-focus-handler.service.d.ts +0 -32
  181. package/button/providers/button-group-focus.enum.d.ts +0 -4
  182. package/button/providers/button-in-group.service.d.ts +0 -10
  183. package/clr-angular.module.d.ts +0 -25
  184. package/data/data.module.d.ts +0 -9
  185. package/data/datagrid/built-in/comparators/datagrid-property-comparator.d.ts +0 -7
  186. package/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.d.ts +0 -37
  187. package/data/datagrid/built-in/filters/datagrid-numeric-filter.d.ts +0 -58
  188. package/data/datagrid/built-in/filters/datagrid-property-numeric-filter.d.ts +0 -8
  189. package/data/datagrid/built-in/filters/datagrid-property-string-filter.d.ts +0 -8
  190. package/data/datagrid/built-in/filters/datagrid-string-filter-impl.d.ts +0 -39
  191. package/data/datagrid/built-in/filters/datagrid-string-filter.d.ts +0 -60
  192. package/data/datagrid/built-in/nested-property.d.ts +0 -10
  193. package/data/datagrid/chocolate/actionable-oompa-loompa.d.ts +0 -12
  194. package/data/datagrid/chocolate/datagrid-willy-wonka.d.ts +0 -6
  195. package/data/datagrid/chocolate/expandable-oompa-loompa.d.ts +0 -12
  196. package/data/datagrid/datagrid-action-bar.d.ts +0 -5
  197. package/data/datagrid/datagrid-action-overflow.d.ts +0 -28
  198. package/data/datagrid/datagrid-cell.d.ts +0 -21
  199. package/data/datagrid/datagrid-column-separator.d.ts +0 -36
  200. package/data/datagrid/datagrid-column-toggle-button.d.ts +0 -16
  201. package/data/datagrid/datagrid-column-toggle-trackby.d.ts +0 -6
  202. package/data/datagrid/datagrid-column-toggle.d.ts +0 -30
  203. package/data/datagrid/datagrid-column.d.ts +0 -92
  204. package/data/datagrid/datagrid-detail-body.d.ts +0 -5
  205. package/data/datagrid/datagrid-detail-header.d.ts +0 -14
  206. package/data/datagrid/datagrid-detail-registerer.d.ts +0 -9
  207. package/data/datagrid/datagrid-detail.d.ts +0 -17
  208. package/data/datagrid/datagrid-filter.d.ts +0 -40
  209. package/data/datagrid/datagrid-footer.d.ts +0 -17
  210. package/data/datagrid/datagrid-hideable-column.d.ts +0 -41
  211. package/data/datagrid/datagrid-if-detail.d.ts +0 -28
  212. package/data/datagrid/datagrid-if-expanded.service.d.ts +0 -18
  213. package/data/datagrid/datagrid-items.d.ts +0 -28
  214. package/data/datagrid/datagrid-page-size.d.ts +0 -13
  215. package/data/datagrid/datagrid-pagination.d.ts +0 -73
  216. package/data/datagrid/datagrid-placeholder.d.ts +0 -12
  217. package/data/datagrid/datagrid-row-detail.d.ts +0 -34
  218. package/data/datagrid/datagrid-row.d.ts +0 -109
  219. package/data/datagrid/datagrid-selection-cell.directive.d.ts +0 -9
  220. package/data/datagrid/datagrid-single-selection.directive.d.ts +0 -21
  221. package/data/datagrid/datagrid-virtual-scroll.directive.d.ts +0 -80
  222. package/data/datagrid/datagrid.d.ts +0 -149
  223. package/data/datagrid/datagrid.module.d.ts +0 -60
  224. package/data/datagrid/enums/column-changes.enum.d.ts +0 -6
  225. package/data/datagrid/enums/display-mode.enum.d.ts +0 -4
  226. package/data/datagrid/enums/render-step.enum.d.ts +0 -7
  227. package/data/datagrid/enums/selection-type.d.ts +0 -5
  228. package/data/datagrid/enums/sort-order.enum.d.ts +0 -12
  229. package/data/datagrid/index.d.ts +0 -50
  230. package/data/datagrid/interfaces/column-state.interface.d.ts +0 -14
  231. package/data/datagrid/interfaces/comparator.interface.d.ts +0 -3
  232. package/data/datagrid/interfaces/filter.interface.d.ts +0 -8
  233. package/data/datagrid/interfaces/key-nav-grid-strategy.interface.d.ts +0 -11
  234. package/data/datagrid/interfaces/numeric-filter.interface.d.ts +0 -3
  235. package/data/datagrid/interfaces/state.interface.d.ts +0 -14
  236. package/data/datagrid/interfaces/string-filter.interface.d.ts +0 -3
  237. package/data/datagrid/interfaces/virtual-scroll-data-range.interface.d.ts +0 -5
  238. package/data/datagrid/providers/column-resizer.service.d.ts +0 -22
  239. package/data/datagrid/providers/column-state.provider.d.ts +0 -9
  240. package/data/datagrid/providers/columns.service.d.ts +0 -18
  241. package/data/datagrid/providers/custom-filter.d.ts +0 -2
  242. package/data/datagrid/providers/detail.service.d.ts +0 -28
  243. package/data/datagrid/providers/display-mode.service.d.ts +0 -14
  244. package/data/datagrid/providers/filters.d.ts +0 -44
  245. package/data/datagrid/providers/global-expandable-rows.d.ts +0 -16
  246. package/data/datagrid/providers/items.d.ts +0 -84
  247. package/data/datagrid/providers/page.d.ts +0 -62
  248. package/data/datagrid/providers/row-action-service.d.ts +0 -12
  249. package/data/datagrid/providers/selection.d.ts +0 -105
  250. package/data/datagrid/providers/sort.d.ts +0 -44
  251. package/data/datagrid/providers/state-debouncer.provider.d.ts +0 -14
  252. package/data/datagrid/providers/state.provider.d.ts +0 -24
  253. package/data/datagrid/providers/table-size.service.d.ts +0 -17
  254. package/data/datagrid/render/cell-renderer.d.ts +0 -18
  255. package/data/datagrid/render/constants.d.ts +0 -4
  256. package/data/datagrid/render/header-renderer.d.ts +0 -34
  257. package/data/datagrid/render/main-renderer.d.ts +0 -71
  258. package/data/datagrid/render/noop-dom-adapter.d.ts +0 -13
  259. package/data/datagrid/render/render-organizer.d.ts +0 -12
  260. package/data/datagrid/render/row-detail-renderer.d.ts +0 -11
  261. package/data/datagrid/render/row-renderer.d.ts +0 -17
  262. package/data/datagrid/utils/datagrid-filter-registrar.d.ts +0 -18
  263. package/data/datagrid/utils/key-navigation-grid.controller.d.ts +0 -32
  264. package/data/datagrid/utils/key-navigation-strategies/default.d.ts +0 -15
  265. package/data/datagrid/utils/key-navigation-strategies/expanded-columns-row.d.ts +0 -12
  266. package/data/datagrid/utils/key-navigation-strategies/expanded-row.d.ts +0 -12
  267. package/data/datagrid/utils/key-navigation-utils.d.ts +0 -24
  268. package/data/datagrid/wrapped-cell.d.ts +0 -10
  269. package/data/datagrid/wrapped-column.d.ts +0 -10
  270. package/data/datagrid/wrapped-row.d.ts +0 -10
  271. package/data/index.d.ts +0 -4
  272. package/data/stack-view/index.d.ts +0 -6
  273. package/data/stack-view/stack-block.d.ts +0 -37
  274. package/data/stack-view/stack-content-input.d.ts +0 -6
  275. package/data/stack-view/stack-header.d.ts +0 -8
  276. package/data/stack-view/stack-view-custom-tags.d.ts +0 -15
  277. package/data/stack-view/stack-view.d.ts +0 -5
  278. package/data/stack-view/stack-view.module.d.ts +0 -18
  279. package/data/tree-view/index.d.ts +0 -6
  280. package/data/tree-view/models/async-array.d.ts +0 -3
  281. package/data/tree-view/models/declarative-tree-node.model.d.ts +0 -9
  282. package/data/tree-view/models/recursive-tree-node.model.d.ts +0 -18
  283. package/data/tree-view/models/selected-state.enum.d.ts +0 -5
  284. package/data/tree-view/models/tree-node.model.d.ts +0 -23
  285. package/data/tree-view/recursive-children.d.ts +0 -22
  286. package/data/tree-view/recursive-for-of.d.ts +0 -22
  287. package/data/tree-view/tree-features.service.d.ts +0 -22
  288. package/data/tree-view/tree-focus-manager.service.d.ts +0 -32
  289. package/data/tree-view/tree-node-link.d.ts +0 -10
  290. package/data/tree-view/tree-node.d.ts +0 -59
  291. package/data/tree-view/tree-view.module.d.ts +0 -17
  292. package/data/tree-view/tree.d.ts +0 -22
  293. package/emphasis/alert/alert-item.d.ts +0 -8
  294. package/emphasis/alert/alert-text.d.ts +0 -9
  295. package/emphasis/alert/alert.d.ts +0 -40
  296. package/emphasis/alert/alert.module.d.ts +0 -18
  297. package/emphasis/alert/alerts-pager.d.ts +0 -31
  298. package/emphasis/alert/alerts.d.ts +0 -32
  299. package/emphasis/alert/index.d.ts +0 -6
  300. package/emphasis/alert/providers/icon-and-types.service.d.ts +0 -18
  301. package/emphasis/alert/providers/multi-alert.service.d.ts +0 -28
  302. package/emphasis/alert/utils/alert-info-object.d.ts +0 -5
  303. package/emphasis/alert/utils/alert-types.d.ts +0 -1
  304. package/emphasis/emphasis.module.d.ts +0 -7
  305. package/emphasis/index.d.ts +0 -2
  306. package/esm2020/accordion/accordion-content.mjs +0 -21
  307. package/esm2020/accordion/accordion-description.mjs +0 -22
  308. package/esm2020/accordion/accordion-panel.mjs +0 -141
  309. package/esm2020/accordion/accordion-title.mjs +0 -22
  310. package/esm2020/accordion/accordion.mjs +0 -62
  311. package/esm2020/accordion/accordion.module.mjs +0 -56
  312. package/esm2020/accordion/chocolate/accordion-oompa-loompa.mjs +0 -34
  313. package/esm2020/accordion/chocolate/accordion-willy-wonka.mjs +0 -20
  314. package/esm2020/accordion/enums/accordion-status.enum.mjs +0 -13
  315. package/esm2020/accordion/enums/accordion-strategy.enum.mjs +0 -12
  316. package/esm2020/accordion/index.mjs +0 -17
  317. package/esm2020/accordion/models/accordion.model.mjs +0 -61
  318. package/esm2020/accordion/providers/accordion.service.mjs +0 -48
  319. package/esm2020/accordion/stepper/chocolate/stepper-oompa-loompa.mjs +0 -34
  320. package/esm2020/accordion/stepper/chocolate/stepper-willy-wonka.mjs +0 -20
  321. package/esm2020/accordion/stepper/index.mjs +0 -11
  322. package/esm2020/accordion/stepper/models/stepper.model.mjs +0 -146
  323. package/esm2020/accordion/stepper/providers/stepper.service.mjs +0 -75
  324. package/esm2020/accordion/stepper/step-button.mjs +0 -62
  325. package/esm2020/accordion/stepper/stepper-panel.mjs +0 -96
  326. package/esm2020/accordion/stepper/stepper.mjs +0 -105
  327. package/esm2020/accordion/stepper/stepper.module.mjs +0 -31
  328. package/esm2020/accordion/utils/animation.mjs +0 -31
  329. package/esm2020/button/button-group/button-group.mjs +0 -164
  330. package/esm2020/button/button-group/button-group.module.mjs +0 -28
  331. package/esm2020/button/button-group/button.mjs +0 -175
  332. package/esm2020/button/button-group/index.mjs +0 -10
  333. package/esm2020/button/button-loading/index.mjs +0 -9
  334. package/esm2020/button/button-loading/loading-button.mjs +0 -164
  335. package/esm2020/button/button-loading/loading-button.module.mjs +0 -25
  336. package/esm2020/button/button.module.mjs +0 -26
  337. package/esm2020/button/index.mjs +0 -10
  338. package/esm2020/button/providers/button-group-focus-handler.service.mjs +0 -97
  339. package/esm2020/button/providers/button-group-focus.enum.mjs +0 -12
  340. package/esm2020/button/providers/button-in-group.service.mjs +0 -26
  341. package/esm2020/clr-angular.mjs +0 -5
  342. package/esm2020/clr-angular.module.mjs +0 -93
  343. package/esm2020/data/data.module.mjs +0 -23
  344. package/esm2020/data/datagrid/built-in/comparators/datagrid-property-comparator.mjs +0 -46
  345. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.mjs +0 -93
  346. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +0 -259
  347. package/esm2020/data/datagrid/built-in/filters/datagrid-property-numeric-filter.mjs +0 -28
  348. package/esm2020/data/datagrid/built-in/filters/datagrid-property-string-filter.mjs +0 -27
  349. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter-impl.mjs +0 -82
  350. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +0 -185
  351. package/esm2020/data/datagrid/built-in/nested-property.mjs +0 -38
  352. package/esm2020/data/datagrid/chocolate/actionable-oompa-loompa.mjs +0 -34
  353. package/esm2020/data/datagrid/chocolate/datagrid-willy-wonka.mjs +0 -20
  354. package/esm2020/data/datagrid/chocolate/expandable-oompa-loompa.mjs +0 -34
  355. package/esm2020/data/datagrid/datagrid-action-bar.mjs +0 -21
  356. package/esm2020/data/datagrid/datagrid-action-overflow.mjs +0 -166
  357. package/esm2020/data/datagrid/datagrid-cell.mjs +0 -40
  358. package/esm2020/data/datagrid/datagrid-column-separator.mjs +0 -171
  359. package/esm2020/data/datagrid/datagrid-column-toggle-button.mjs +0 -65
  360. package/esm2020/data/datagrid/datagrid-column-toggle-trackby.mjs +0 -8
  361. package/esm2020/data/datagrid/datagrid-column-toggle.mjs +0 -204
  362. package/esm2020/data/datagrid/datagrid-column.mjs +0 -420
  363. package/esm2020/data/datagrid/datagrid-detail-body.mjs +0 -31
  364. package/esm2020/data/datagrid/datagrid-detail-header.mjs +0 -67
  365. package/esm2020/data/datagrid/datagrid-detail-registerer.mjs +0 -37
  366. package/esm2020/data/datagrid/datagrid-detail.mjs +0 -98
  367. package/esm2020/data/datagrid/datagrid-filter.mjs +0 -186
  368. package/esm2020/data/datagrid/datagrid-footer.mjs +0 -78
  369. package/esm2020/data/datagrid/datagrid-hideable-column.mjs +0 -106
  370. package/esm2020/data/datagrid/datagrid-if-detail.mjs +0 -96
  371. package/esm2020/data/datagrid/datagrid-if-expanded.service.mjs +0 -55
  372. package/esm2020/data/datagrid/datagrid-items.mjs +0 -72
  373. package/esm2020/data/datagrid/datagrid-page-size.mjs +0 -63
  374. package/esm2020/data/datagrid/datagrid-pagination.mjs +0 -388
  375. package/esm2020/data/datagrid/datagrid-placeholder.mjs +0 -42
  376. package/esm2020/data/datagrid/datagrid-row-detail.mjs +0 -116
  377. package/esm2020/data/datagrid/datagrid-row.mjs +0 -372
  378. package/esm2020/data/datagrid/datagrid-selection-cell.directive.mjs +0 -37
  379. package/esm2020/data/datagrid/datagrid-single-selection.directive.mjs +0 -74
  380. package/esm2020/data/datagrid/datagrid-virtual-scroll.directive.mjs +0 -340
  381. package/esm2020/data/datagrid/datagrid.mjs +0 -556
  382. package/esm2020/data/datagrid/datagrid.module.mjs +0 -238
  383. package/esm2020/data/datagrid/enums/column-changes.enum.mjs +0 -16
  384. package/esm2020/data/datagrid/enums/display-mode.enum.mjs +0 -12
  385. package/esm2020/data/datagrid/enums/render-step.enum.mjs +0 -15
  386. package/esm2020/data/datagrid/enums/selection-type.mjs +0 -13
  387. package/esm2020/data/datagrid/enums/sort-order.enum.mjs +0 -20
  388. package/esm2020/data/datagrid/index.mjs +0 -56
  389. package/esm2020/data/datagrid/interfaces/column-state.interface.mjs +0 -8
  390. package/esm2020/data/datagrid/interfaces/comparator.interface.mjs +0 -8
  391. package/esm2020/data/datagrid/interfaces/filter.interface.mjs +0 -8
  392. package/esm2020/data/datagrid/interfaces/key-nav-grid-strategy.interface.mjs +0 -8
  393. package/esm2020/data/datagrid/interfaces/numeric-filter.interface.mjs +0 -8
  394. package/esm2020/data/datagrid/interfaces/state.interface.mjs +0 -8
  395. package/esm2020/data/datagrid/interfaces/string-filter.interface.mjs +0 -8
  396. package/esm2020/data/datagrid/interfaces/virtual-scroll-data-range.interface.mjs +0 -8
  397. package/esm2020/data/datagrid/providers/column-resizer.service.mjs +0 -58
  398. package/esm2020/data/datagrid/providers/column-state.provider.mjs +0 -19
  399. package/esm2020/data/datagrid/providers/columns.service.mjs +0 -63
  400. package/esm2020/data/datagrid/providers/custom-filter.mjs +0 -9
  401. package/esm2020/data/datagrid/providers/detail.service.mjs +0 -76
  402. package/esm2020/data/datagrid/providers/display-mode.service.mjs +0 -36
  403. package/esm2020/data/datagrid/providers/filters.mjs +0 -112
  404. package/esm2020/data/datagrid/providers/global-expandable-rows.mjs +0 -34
  405. package/esm2020/data/datagrid/providers/items.mjs +0 -177
  406. package/esm2020/data/datagrid/providers/page.mjs +0 -156
  407. package/esm2020/data/datagrid/providers/row-action-service.mjs +0 -31
  408. package/esm2020/data/datagrid/providers/selection.mjs +0 -365
  409. package/esm2020/data/datagrid/providers/sort.mjs +0 -86
  410. package/esm2020/data/datagrid/providers/state-debouncer.provider.mjs +0 -43
  411. package/esm2020/data/datagrid/providers/state.provider.mjs +0 -75
  412. package/esm2020/data/datagrid/providers/table-size.service.mjs +0 -45
  413. package/esm2020/data/datagrid/render/cell-renderer.mjs +0 -59
  414. package/esm2020/data/datagrid/render/constants.mjs +0 -13
  415. package/esm2020/data/datagrid/render/header-renderer.mjs +0 -117
  416. package/esm2020/data/datagrid/render/main-renderer.mjs +0 -285
  417. package/esm2020/data/datagrid/render/noop-dom-adapter.mjs +0 -48
  418. package/esm2020/data/datagrid/render/render-organizer.mjs +0 -39
  419. package/esm2020/data/datagrid/render/row-detail-renderer.mjs +0 -31
  420. package/esm2020/data/datagrid/render/row-renderer.mjs +0 -62
  421. package/esm2020/data/datagrid/utils/datagrid-filter-registrar.mjs +0 -43
  422. package/esm2020/data/datagrid/utils/key-navigation-grid.controller.mjs +0 -155
  423. package/esm2020/data/datagrid/utils/key-navigation-strategies/default.mjs +0 -132
  424. package/esm2020/data/datagrid/utils/key-navigation-strategies/expanded-columns-row.mjs +0 -129
  425. package/esm2020/data/datagrid/utils/key-navigation-strategies/expanded-row.mjs +0 -165
  426. package/esm2020/data/datagrid/utils/key-navigation-utils.mjs +0 -121
  427. package/esm2020/data/datagrid/wrapped-cell.mjs +0 -37
  428. package/esm2020/data/datagrid/wrapped-column.mjs +0 -38
  429. package/esm2020/data/datagrid/wrapped-row.mjs +0 -38
  430. package/esm2020/data/index.mjs +0 -11
  431. package/esm2020/data/stack-view/index.mjs +0 -13
  432. package/esm2020/data/stack-view/stack-block.mjs +0 -236
  433. package/esm2020/data/stack-view/stack-content-input.mjs +0 -27
  434. package/esm2020/data/stack-view/stack-header.mjs +0 -37
  435. package/esm2020/data/stack-view/stack-view-custom-tags.mjs +0 -57
  436. package/esm2020/data/stack-view/stack-view.mjs +0 -23
  437. package/esm2020/data/stack-view/stack-view.module.mjs +0 -53
  438. package/esm2020/data/tree-view/index.mjs +0 -13
  439. package/esm2020/data/tree-view/models/async-array.mjs +0 -11
  440. package/esm2020/data/tree-view/models/declarative-tree-node.model.mjs +0 -37
  441. package/esm2020/data/tree-view/models/recursive-tree-node.model.mjs +0 -77
  442. package/esm2020/data/tree-view/models/selected-state.enum.mjs +0 -17
  443. package/esm2020/data/tree-view/models/tree-node.model.mjs +0 -116
  444. package/esm2020/data/tree-view/recursive-children.mjs +0 -88
  445. package/esm2020/data/tree-view/recursive-for-of.mjs +0 -57
  446. package/esm2020/data/tree-view/tree-features.service.mjs +0 -38
  447. package/esm2020/data/tree-view/tree-focus-manager.service.mjs +0 -190
  448. package/esm2020/data/tree-view/tree-node-link.mjs +0 -30
  449. package/esm2020/data/tree-view/tree-node.mjs +0 -348
  450. package/esm2020/data/tree-view/tree-view.module.mjs +0 -35
  451. package/esm2020/data/tree-view/tree.mjs +0 -102
  452. package/esm2020/emphasis/alert/alert-item.mjs +0 -52
  453. package/esm2020/emphasis/alert/alert-text.mjs +0 -23
  454. package/esm2020/emphasis/alert/alert.mjs +0 -142
  455. package/esm2020/emphasis/alert/alert.module.mjs +0 -36
  456. package/esm2020/emphasis/alert/alerts-pager.mjs +0 -87
  457. package/esm2020/emphasis/alert/alerts.mjs +0 -102
  458. package/esm2020/emphasis/alert/index.mjs +0 -13
  459. package/esm2020/emphasis/alert/providers/icon-and-types.service.mjs +0 -90
  460. package/esm2020/emphasis/alert/providers/multi-alert.service.mjs +0 -97
  461. package/esm2020/emphasis/alert/utils/alert-info-object.mjs +0 -8
  462. package/esm2020/emphasis/alert/utils/alert-types.mjs +0 -9
  463. package/esm2020/emphasis/emphasis.module.mjs +0 -21
  464. package/esm2020/emphasis/index.mjs +0 -9
  465. package/esm2020/forms/checkbox/checkbox-container.mjs +0 -136
  466. package/esm2020/forms/checkbox/checkbox-wrapper.mjs +0 -70
  467. package/esm2020/forms/checkbox/checkbox.mjs +0 -53
  468. package/esm2020/forms/checkbox/checkbox.module.mjs +0 -33
  469. package/esm2020/forms/checkbox/index.mjs +0 -11
  470. package/esm2020/forms/combobox/combobox-container.mjs +0 -106
  471. package/esm2020/forms/combobox/combobox.mjs +0 -360
  472. package/esm2020/forms/combobox/combobox.module.mjs +0 -97
  473. package/esm2020/forms/combobox/index.mjs +0 -15
  474. package/esm2020/forms/combobox/model/combobox.model.mjs +0 -9
  475. package/esm2020/forms/combobox/model/multi-select-combobox.model.mjs +0 -82
  476. package/esm2020/forms/combobox/model/pseudo-focus.model.mjs +0 -24
  477. package/esm2020/forms/combobox/model/single-select-combobox.model.mjs +0 -39
  478. package/esm2020/forms/combobox/option-group.mjs +0 -42
  479. package/esm2020/forms/combobox/option-items.directive.mjs +0 -110
  480. package/esm2020/forms/combobox/option-selected.directive.mjs +0 -25
  481. package/esm2020/forms/combobox/option.mjs +0 -103
  482. package/esm2020/forms/combobox/options.mjs +0 -156
  483. package/esm2020/forms/combobox/providers/combobox-container.service.mjs +0 -19
  484. package/esm2020/forms/combobox/providers/combobox-focus-handler.service.mjs +0 -222
  485. package/esm2020/forms/combobox/providers/option-selection.service.mjs +0 -85
  486. package/esm2020/forms/common/abstract-container.mjs +0 -135
  487. package/esm2020/forms/common/abstract-control.mjs +0 -51
  488. package/esm2020/forms/common/common.module.mjs +0 -78
  489. package/esm2020/forms/common/control-container.mjs +0 -84
  490. package/esm2020/forms/common/control.mjs +0 -31
  491. package/esm2020/forms/common/error.mjs +0 -38
  492. package/esm2020/forms/common/form.mjs +0 -54
  493. package/esm2020/forms/common/helper.mjs +0 -37
  494. package/esm2020/forms/common/if-control-state/abstract-if-state.mjs +0 -46
  495. package/esm2020/forms/common/if-control-state/if-control-state.service.mjs +0 -57
  496. package/esm2020/forms/common/if-control-state/if-error.mjs +0 -75
  497. package/esm2020/forms/common/if-control-state/if-success.mjs +0 -48
  498. package/esm2020/forms/common/index.mjs +0 -21
  499. package/esm2020/forms/common/label.mjs +0 -102
  500. package/esm2020/forms/common/layout.mjs +0 -32
  501. package/esm2020/forms/common/providers/container-id.service.mjs +0 -39
  502. package/esm2020/forms/common/providers/control-class.service.mjs +0 -53
  503. package/esm2020/forms/common/providers/control-id.service.mjs +0 -32
  504. package/esm2020/forms/common/providers/focus.service.mjs +0 -26
  505. package/esm2020/forms/common/providers/layout.service.mjs +0 -58
  506. package/esm2020/forms/common/providers/mark-control.service.mjs +0 -26
  507. package/esm2020/forms/common/providers/ng-control.service.mjs +0 -53
  508. package/esm2020/forms/common/success.mjs +0 -38
  509. package/esm2020/forms/common/wrapped-control.mjs +0 -191
  510. package/esm2020/forms/datalist/datalist-container.mjs +0 -121
  511. package/esm2020/forms/datalist/datalist-input.mjs +0 -63
  512. package/esm2020/forms/datalist/datalist.mjs +0 -49
  513. package/esm2020/forms/datalist/datalist.module.mjs +0 -32
  514. package/esm2020/forms/datalist/index.mjs +0 -11
  515. package/esm2020/forms/datalist/providers/datalist-id.service.mjs +0 -32
  516. package/esm2020/forms/datepicker/calendar.mjs +0 -175
  517. package/esm2020/forms/datepicker/date-container.mjs +0 -365
  518. package/esm2020/forms/datepicker/date-end-input.mjs +0 -60
  519. package/esm2020/forms/datepicker/date-input.mjs +0 -294
  520. package/esm2020/forms/datepicker/date-input.validator.mjs +0 -100
  521. package/esm2020/forms/datepicker/date-single-input.mjs +0 -63
  522. package/esm2020/forms/datepicker/date-start-input.mjs +0 -61
  523. package/esm2020/forms/datepicker/datepicker-action-buttons.mjs +0 -59
  524. package/esm2020/forms/datepicker/datepicker-view-manager.mjs +0 -74
  525. package/esm2020/forms/datepicker/datepicker.module.mjs +0 -111
  526. package/esm2020/forms/datepicker/day.mjs +0 -145
  527. package/esm2020/forms/datepicker/daypicker.mjs +0 -81
  528. package/esm2020/forms/datepicker/index.mjs +0 -21
  529. package/esm2020/forms/datepicker/interfaces/date-range.interface.mjs +0 -8
  530. package/esm2020/forms/datepicker/interfaces/day-of-week.interface.mjs +0 -8
  531. package/esm2020/forms/datepicker/model/calendar-view.model.mjs +0 -182
  532. package/esm2020/forms/datepicker/model/calendar.model.mjs +0 -79
  533. package/esm2020/forms/datepicker/model/day-view.model.mjs +0 -25
  534. package/esm2020/forms/datepicker/model/day.model.mjs +0 -72
  535. package/esm2020/forms/datepicker/model/year-range.model.mjs +0 -61
  536. package/esm2020/forms/datepicker/monthpicker.mjs +0 -325
  537. package/esm2020/forms/datepicker/providers/date-form-control.service.mjs +0 -37
  538. package/esm2020/forms/datepicker/providers/date-io.service.mjs +0 -195
  539. package/esm2020/forms/datepicker/providers/date-navigation.service.mjs +0 -195
  540. package/esm2020/forms/datepicker/providers/datepicker-enabled.service.mjs +0 -47
  541. package/esm2020/forms/datepicker/providers/datepicker-focus.service.mjs +0 -48
  542. package/esm2020/forms/datepicker/providers/locale-helper.service.mjs +0 -102
  543. package/esm2020/forms/datepicker/providers/view-manager.service.mjs +0 -42
  544. package/esm2020/forms/datepicker/utils/constants.mjs +0 -38
  545. package/esm2020/forms/datepicker/utils/date-utils.mjs +0 -50
  546. package/esm2020/forms/datepicker/yearpicker.mjs +0 -304
  547. package/esm2020/forms/file-input/file-input-container.mjs +0 -245
  548. package/esm2020/forms/file-input/file-input-validator-errors.mjs +0 -8
  549. package/esm2020/forms/file-input/file-input-validator.mjs +0 -101
  550. package/esm2020/forms/file-input/file-input-value-accessor.mjs +0 -53
  551. package/esm2020/forms/file-input/file-input.helpers.mjs +0 -22
  552. package/esm2020/forms/file-input/file-input.mjs +0 -77
  553. package/esm2020/forms/file-input/file-input.module.mjs +0 -74
  554. package/esm2020/forms/file-input/file-list.mjs +0 -160
  555. package/esm2020/forms/file-input/file-messages-template.mjs +0 -26
  556. package/esm2020/forms/file-input/file-messages.mjs +0 -61
  557. package/esm2020/forms/file-input/index.mjs +0 -16
  558. package/esm2020/forms/forms.module.mjs +0 -73
  559. package/esm2020/forms/index.mjs +0 -21
  560. package/esm2020/forms/input/index.mjs +0 -10
  561. package/esm2020/forms/input/input-container.mjs +0 -92
  562. package/esm2020/forms/input/input.mjs +0 -40
  563. package/esm2020/forms/input/input.module.mjs +0 -33
  564. package/esm2020/forms/number-input/index.mjs +0 -10
  565. package/esm2020/forms/number-input/number-input-container.mjs +0 -148
  566. package/esm2020/forms/number-input/number-input.mjs +0 -79
  567. package/esm2020/forms/number-input/number-input.module.mjs +0 -32
  568. package/esm2020/forms/password/index.mjs +0 -10
  569. package/esm2020/forms/password/password-container.mjs +0 -180
  570. package/esm2020/forms/password/password.mjs +0 -64
  571. package/esm2020/forms/password/password.module.mjs +0 -32
  572. package/esm2020/forms/radio/index.mjs +0 -11
  573. package/esm2020/forms/radio/radio-container.mjs +0 -150
  574. package/esm2020/forms/radio/radio-wrapper.mjs +0 -44
  575. package/esm2020/forms/radio/radio.mjs +0 -29
  576. package/esm2020/forms/radio/radio.module.mjs +0 -33
  577. package/esm2020/forms/range/index.mjs +0 -10
  578. package/esm2020/forms/range/range-container.mjs +0 -137
  579. package/esm2020/forms/range/range.mjs +0 -30
  580. package/esm2020/forms/range/range.module.mjs +0 -32
  581. package/esm2020/forms/select/index.mjs +0 -10
  582. package/esm2020/forms/select/select-container.mjs +0 -114
  583. package/esm2020/forms/select/select.mjs +0 -31
  584. package/esm2020/forms/select/select.module.mjs +0 -32
  585. package/esm2020/forms/textarea/index.mjs +0 -10
  586. package/esm2020/forms/textarea/textarea-container.mjs +0 -84
  587. package/esm2020/forms/textarea/textarea.mjs +0 -31
  588. package/esm2020/forms/textarea/textarea.module.mjs +0 -32
  589. package/esm2020/icon/icon.mjs +0 -29
  590. package/esm2020/icon/icon.module.mjs +0 -25
  591. package/esm2020/icon/index.mjs +0 -9
  592. package/esm2020/index.mjs +0 -23
  593. package/esm2020/layout/breadcrumbs/breadcrumb-item.mjs +0 -24
  594. package/esm2020/layout/breadcrumbs/breadcrumbs.constants.mjs +0 -8
  595. package/esm2020/layout/breadcrumbs/breadcrumbs.mjs +0 -46
  596. package/esm2020/layout/breadcrumbs/breadcrumbs.module.mjs +0 -28
  597. package/esm2020/layout/breadcrumbs/index.mjs +0 -11
  598. package/esm2020/layout/breadcrumbs/model/breadcrumbs.model.mjs +0 -8
  599. package/esm2020/layout/index.mjs +0 -13
  600. package/esm2020/layout/layout.module.mjs +0 -25
  601. package/esm2020/layout/main-container/index.mjs +0 -9
  602. package/esm2020/layout/main-container/main-container.mjs +0 -62
  603. package/esm2020/layout/main-container/main-container.module.mjs +0 -26
  604. package/esm2020/layout/nav/aria-current-link.mjs +0 -32
  605. package/esm2020/layout/nav/chocolate/index.mjs +0 -9
  606. package/esm2020/layout/nav/chocolate/main-container-willy-wonka.mjs +0 -20
  607. package/esm2020/layout/nav/chocolate/nav-detection-oompa-loompa.mjs +0 -36
  608. package/esm2020/layout/nav/header.mjs +0 -154
  609. package/esm2020/layout/nav/index.mjs +0 -12
  610. package/esm2020/layout/nav/nav-level.mjs +0 -197
  611. package/esm2020/layout/nav/navigation.module.mjs +0 -45
  612. package/esm2020/layout/nav/providers/responsive-navigation.service.mjs +0 -61
  613. package/esm2020/layout/nav/responsive-nav-codes.mjs +0 -21
  614. package/esm2020/layout/nav/responsive-nav-control-message.mjs +0 -19
  615. package/esm2020/layout/tabs/chocolate/active-oompa-loompa.mjs +0 -39
  616. package/esm2020/layout/tabs/chocolate/tabs-willy-wonka.mjs +0 -20
  617. package/esm2020/layout/tabs/enums/tabs-layout.enum.mjs +0 -12
  618. package/esm2020/layout/tabs/index.mjs +0 -17
  619. package/esm2020/layout/tabs/providers/tabs.service.mjs +0 -46
  620. package/esm2020/layout/tabs/tab-action.directive.mjs +0 -22
  621. package/esm2020/layout/tabs/tab-content.mjs +0 -87
  622. package/esm2020/layout/tabs/tab-link.directive.mjs +0 -105
  623. package/esm2020/layout/tabs/tab-overflow-content.mjs +0 -23
  624. package/esm2020/layout/tabs/tab.mjs +0 -47
  625. package/esm2020/layout/tabs/tabs-actions.mjs +0 -39
  626. package/esm2020/layout/tabs/tabs-id.provider.mjs +0 -17
  627. package/esm2020/layout/tabs/tabs.mjs +0 -327
  628. package/esm2020/layout/tabs/tabs.module.mjs +0 -67
  629. package/esm2020/layout/vertical-nav/index.mjs +0 -13
  630. package/esm2020/layout/vertical-nav/providers/vertical-nav-group-registration.service.mjs +0 -25
  631. package/esm2020/layout/vertical-nav/providers/vertical-nav-group.service.mjs +0 -26
  632. package/esm2020/layout/vertical-nav/providers/vertical-nav-icon.service.mjs +0 -28
  633. package/esm2020/layout/vertical-nav/providers/vertical-nav.service.mjs +0 -55
  634. package/esm2020/layout/vertical-nav/vertical-nav-group-children.mjs +0 -20
  635. package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +0 -162
  636. package/esm2020/layout/vertical-nav/vertical-nav-icon.mjs +0 -28
  637. package/esm2020/layout/vertical-nav/vertical-nav-link.mjs +0 -57
  638. package/esm2020/layout/vertical-nav/vertical-nav.mjs +0 -85
  639. package/esm2020/layout/vertical-nav/vertical-nav.module.mjs +0 -50
  640. package/esm2020/modal/index.mjs +0 -14
  641. package/esm2020/modal/modal-body.mjs +0 -65
  642. package/esm2020/modal/modal-configuration.service.mjs +0 -21
  643. package/esm2020/modal/modal-host.component.mjs +0 -29
  644. package/esm2020/modal/modal-stack.service.mjs +0 -53
  645. package/esm2020/modal/modal.mjs +0 -185
  646. package/esm2020/modal/modal.module.mjs +0 -33
  647. package/esm2020/modal/side-panel.mjs +0 -227
  648. package/esm2020/modal/side-panel.module.mjs +0 -28
  649. package/esm2020/popover/common/abstract-popover.mjs +0 -138
  650. package/esm2020/popover/common/popover-host-anchor.token.mjs +0 -9
  651. package/esm2020/popover/common/popover-options.interface.mjs +0 -8
  652. package/esm2020/popover/common/popover.mjs +0 -267
  653. package/esm2020/popover/dropdown/dropdown-item.mjs +0 -105
  654. package/esm2020/popover/dropdown/dropdown-menu.mjs +0 -115
  655. package/esm2020/popover/dropdown/dropdown-trigger.mjs +0 -51
  656. package/esm2020/popover/dropdown/dropdown.mjs +0 -53
  657. package/esm2020/popover/dropdown/dropdown.module.mjs +0 -30
  658. package/esm2020/popover/dropdown/index.mjs +0 -13
  659. package/esm2020/popover/dropdown/menu-positions.mjs +0 -17
  660. package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +0 -186
  661. package/esm2020/popover/dropdown/providers/dropdown.service.mjs +0 -34
  662. package/esm2020/popover/index.mjs +0 -11
  663. package/esm2020/popover/popover.module.mjs +0 -23
  664. package/esm2020/popover/signpost/index.mjs +0 -12
  665. package/esm2020/popover/signpost/providers/signpost-focus-manager.service.mjs +0 -24
  666. package/esm2020/popover/signpost/providers/signpost-id.service.mjs +0 -26
  667. package/esm2020/popover/signpost/signpost-content.mjs +0 -179
  668. package/esm2020/popover/signpost/signpost-positions.mjs +0 -23
  669. package/esm2020/popover/signpost/signpost-title.mjs +0 -21
  670. package/esm2020/popover/signpost/signpost-trigger.mjs +0 -90
  671. package/esm2020/popover/signpost/signpost.mjs +0 -94
  672. package/esm2020/popover/signpost/signpost.module.mjs +0 -46
  673. package/esm2020/popover/tooltip/index.mjs +0 -11
  674. package/esm2020/popover/tooltip/providers/tooltip-id.service.mjs +0 -26
  675. package/esm2020/popover/tooltip/providers/tooltip-mouse.service.mjs +0 -44
  676. package/esm2020/popover/tooltip/tooltip-content.mjs +0 -135
  677. package/esm2020/popover/tooltip/tooltip-trigger.mjs +0 -62
  678. package/esm2020/popover/tooltip/tooltip.mjs +0 -29
  679. package/esm2020/popover/tooltip/tooltip.module.mjs +0 -29
  680. package/esm2020/progress/progress-bars/index.mjs +0 -9
  681. package/esm2020/progress/progress-bars/progress-bar.mjs +0 -177
  682. package/esm2020/progress/progress-bars/progress-bar.module.mjs +0 -25
  683. package/esm2020/progress/spinner/index.mjs +0 -9
  684. package/esm2020/progress/spinner/spinner.mjs +0 -95
  685. package/esm2020/progress/spinner/spinner.module.mjs +0 -25
  686. package/esm2020/timeline/enums/timeline-layout.enum.mjs +0 -12
  687. package/esm2020/timeline/enums/timeline-step-state.enum.mjs +0 -15
  688. package/esm2020/timeline/index.mjs +0 -15
  689. package/esm2020/timeline/interface/icon-attribute.interface.mjs +0 -8
  690. package/esm2020/timeline/providers/timeline-icon-attribute.service.mjs +0 -55
  691. package/esm2020/timeline/timeline-step-description.mjs +0 -21
  692. package/esm2020/timeline/timeline-step-header.mjs +0 -21
  693. package/esm2020/timeline/timeline-step-title.mjs +0 -31
  694. package/esm2020/timeline/timeline-step.mjs +0 -97
  695. package/esm2020/timeline/timeline.mjs +0 -36
  696. package/esm2020/timeline/timeline.module.mjs +0 -49
  697. package/esm2020/utils/animations/collapse/collapse.mjs +0 -17
  698. package/esm2020/utils/animations/collapse/index.mjs +0 -8
  699. package/esm2020/utils/animations/constants.mjs +0 -14
  700. package/esm2020/utils/animations/expandable-animation/base-expandable-animation.mjs +0 -46
  701. package/esm2020/utils/animations/expandable-animation/expandable-animation.directive.mjs +0 -56
  702. package/esm2020/utils/animations/expandable-animation/expandable-animation.mjs +0 -49
  703. package/esm2020/utils/animations/expandable-animation/expandable-animation.module.mjs +0 -26
  704. package/esm2020/utils/animations/expandable-animation/index.mjs +0 -12
  705. package/esm2020/utils/animations/fade/fade.mjs +0 -15
  706. package/esm2020/utils/animations/fade/index.mjs +0 -8
  707. package/esm2020/utils/animations/fade-slide/fade-slide.mjs +0 -31
  708. package/esm2020/utils/animations/fade-slide/index.mjs +0 -8
  709. package/esm2020/utils/animations/index.mjs +0 -12
  710. package/esm2020/utils/animations/slide/index.mjs +0 -8
  711. package/esm2020/utils/animations/slide/slide.mjs +0 -31
  712. package/esm2020/utils/assert/assert.helpers.mjs +0 -10
  713. package/esm2020/utils/breakpoints/breakpoints.mjs +0 -24
  714. package/esm2020/utils/cdk/cdk-drag.module.mjs +0 -58
  715. package/esm2020/utils/cdk/cdk-trap-focus.module.mjs +0 -53
  716. package/esm2020/utils/chocolate/oompa-loompa.mjs +0 -33
  717. package/esm2020/utils/chocolate/willy-wonka.mjs +0 -37
  718. package/esm2020/utils/component/is-boolean-attribute-set.mjs +0 -19
  719. package/esm2020/utils/conditional/conditional.module.mjs +0 -27
  720. package/esm2020/utils/conditional/if-active.directive.mjs +0 -98
  721. package/esm2020/utils/conditional/if-active.service.mjs +0 -71
  722. package/esm2020/utils/conditional/if-expanded.directive.mjs +0 -96
  723. package/esm2020/utils/conditional/if-expanded.service.mjs +0 -60
  724. package/esm2020/utils/conditional/if-open.directive.mjs +0 -81
  725. package/esm2020/utils/conditional/index.mjs +0 -11
  726. package/esm2020/utils/destroy/destroy.service.mjs +0 -45
  727. package/esm2020/utils/destroy/index.mjs +0 -8
  728. package/esm2020/utils/dom-adapter/dom-adapter.mjs +0 -62
  729. package/esm2020/utils/enums/keys.enum.mjs +0 -33
  730. package/esm2020/utils/focus/arrow-key-direction.enum.mjs +0 -14
  731. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.mjs +0 -90
  732. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.module.mjs +0 -27
  733. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.provider.mjs +0 -15
  734. package/esm2020/utils/focus/focus-on-view-init/index.mjs +0 -10
  735. package/esm2020/utils/focus/focus-trap/index.mjs +0 -8
  736. package/esm2020/utils/focus/focus-trap/standalone-cdk-trap-focus.directive.mjs +0 -35
  737. package/esm2020/utils/focus/focus.service.mjs +0 -95
  738. package/esm2020/utils/focus/focusable-item/basic-focusable-item.service.mjs +0 -55
  739. package/esm2020/utils/focus/focusable-item/custom-focusable-item-provider.mjs +0 -17
  740. package/esm2020/utils/focus/focusable-item/focusable-item.mjs +0 -9
  741. package/esm2020/utils/focus/focusable-item/linkers.mjs +0 -35
  742. package/esm2020/utils/focus/key-focus/enums/focus-direction.enum.mjs +0 -13
  743. package/esm2020/utils/focus/key-focus/index.mjs +0 -9
  744. package/esm2020/utils/focus/key-focus/interfaces.mjs +0 -8
  745. package/esm2020/utils/focus/key-focus/key-focus-item.mjs +0 -35
  746. package/esm2020/utils/focus/key-focus/key-focus.mjs +0 -199
  747. package/esm2020/utils/focus/key-focus/key-focus.module.mjs +0 -27
  748. package/esm2020/utils/focus/key-focus/roving-tabindex.mjs +0 -103
  749. package/esm2020/utils/focus/key-focus/util.mjs +0 -45
  750. package/esm2020/utils/focus/wrap-observable.mjs +0 -20
  751. package/esm2020/utils/forms/validation.mjs +0 -21
  752. package/esm2020/utils/host-wrapping/empty-anchor.mjs +0 -19
  753. package/esm2020/utils/host-wrapping/host-wrapper.mjs +0 -42
  754. package/esm2020/utils/host-wrapping/host-wrapping.module.mjs +0 -25
  755. package/esm2020/utils/i18n/common-strings.default.mjs +0 -137
  756. package/esm2020/utils/i18n/common-strings.interface.mjs +0 -8
  757. package/esm2020/utils/i18n/common-strings.service.mjs +0 -48
  758. package/esm2020/utils/i18n/index.mjs +0 -10
  759. package/esm2020/utils/id-generator/id-generator.service.mjs +0 -11
  760. package/esm2020/utils/index.mjs +0 -15
  761. package/esm2020/utils/loading/index.mjs +0 -10
  762. package/esm2020/utils/loading/loading-listener.mjs +0 -13
  763. package/esm2020/utils/loading/loading.mjs +0 -58
  764. package/esm2020/utils/loading/loading.module.mjs +0 -25
  765. package/esm2020/utils/outside-click/index.mjs +0 -10
  766. package/esm2020/utils/outside-click/outside-click.mjs +0 -49
  767. package/esm2020/utils/outside-click/outside-click.module.mjs +0 -25
  768. package/esm2020/utils/popover/enums/alignment.enum.mjs +0 -13
  769. package/esm2020/utils/popover/enums/axis.enum.mjs +0 -12
  770. package/esm2020/utils/popover/enums/positions.enum.mjs +0 -60
  771. package/esm2020/utils/popover/enums/side.enum.mjs +0 -12
  772. package/esm2020/utils/popover/enums/viewport-violation.enum.mjs +0 -14
  773. package/esm2020/utils/popover/index.mjs +0 -21
  774. package/esm2020/utils/popover/interfaces/popover-content-offset.interface.mjs +0 -8
  775. package/esm2020/utils/popover/interfaces/popover-position.interface.mjs +0 -8
  776. package/esm2020/utils/popover/interfaces/visibility-coords.interface.mjs +0 -8
  777. package/esm2020/utils/popover/popover-anchor.mjs +0 -26
  778. package/esm2020/utils/popover/popover-close-button.mjs +0 -52
  779. package/esm2020/utils/popover/popover-content.mjs +0 -161
  780. package/esm2020/utils/popover/popover-host.directive.mjs +0 -37
  781. package/esm2020/utils/popover/popover-open-close-button.mjs +0 -43
  782. package/esm2020/utils/popover/popover.module.mjs +0 -26
  783. package/esm2020/utils/popover/position-operators.mjs +0 -180
  784. package/esm2020/utils/popover/providers/popover-events.service.mjs +0 -142
  785. package/esm2020/utils/popover/providers/popover-position.service.mjs +0 -230
  786. package/esm2020/utils/popover/providers/popover-toggle.service.mjs +0 -75
  787. package/esm2020/utils/popover/stop-escape-propagation.directive.mjs +0 -43
  788. package/esm2020/utils/scrolling/scrolling-service.mjs +0 -31
  789. package/esm2020/utils/template-ref/index.mjs +0 -10
  790. package/esm2020/utils/template-ref/template-ref-container.mjs +0 -30
  791. package/esm2020/utils/template-ref/template-ref.module.mjs +0 -25
  792. package/esm2020/wizard/heading-level.mjs +0 -8
  793. package/esm2020/wizard/index.mjs +0 -20
  794. package/esm2020/wizard/providers/button-hub.service.mjs +0 -64
  795. package/esm2020/wizard/providers/header-actions.service.mjs +0 -36
  796. package/esm2020/wizard/providers/page-collection.service.mjs +0 -360
  797. package/esm2020/wizard/providers/wizard-navigation.service.mjs +0 -575
  798. package/esm2020/wizard/wizard-button.mjs +0 -188
  799. package/esm2020/wizard/wizard-header-action.mjs +0 -77
  800. package/esm2020/wizard/wizard-page-buttons.mjs +0 -22
  801. package/esm2020/wizard/wizard-page-header-actions.mjs +0 -22
  802. package/esm2020/wizard/wizard-page-navtitle.mjs +0 -22
  803. package/esm2020/wizard/wizard-page-title.mjs +0 -25
  804. package/esm2020/wizard/wizard-page.mjs +0 -652
  805. package/esm2020/wizard/wizard-stepnav-item.mjs +0 -204
  806. package/esm2020/wizard/wizard-stepnav.mjs +0 -55
  807. package/esm2020/wizard/wizard-title.mjs +0 -22
  808. package/esm2020/wizard/wizard.mjs +0 -525
  809. package/esm2020/wizard/wizard.module.mjs +0 -73
  810. package/fesm2015/clr-angular.mjs +0 -31527
  811. package/fesm2015/clr-angular.mjs.map +0 -1
  812. package/fesm2020/clr-angular.mjs +0 -31343
  813. package/fesm2020/clr-angular.mjs.map +0 -1
  814. package/forms/checkbox/checkbox-container.d.ts +0 -25
  815. package/forms/checkbox/checkbox-wrapper.d.ts +0 -22
  816. package/forms/checkbox/checkbox.d.ts +0 -20
  817. package/forms/checkbox/checkbox.module.d.ts +0 -14
  818. package/forms/checkbox/index.d.ts +0 -4
  819. package/forms/combobox/combobox-container.d.ts +0 -18
  820. package/forms/combobox/combobox.d.ts +0 -87
  821. package/forms/combobox/combobox.module.d.ts +0 -22
  822. package/forms/combobox/index.d.ts +0 -8
  823. package/forms/combobox/model/combobox.model.d.ts +0 -9
  824. package/forms/combobox/model/multi-select-combobox.model.d.ts +0 -12
  825. package/forms/combobox/model/pseudo-focus.model.d.ts +0 -7
  826. package/forms/combobox/model/single-select-combobox.model.d.ts +0 -10
  827. package/forms/combobox/option-group.d.ts +0 -9
  828. package/forms/combobox/option-items.directive.d.ts +0 -28
  829. package/forms/combobox/option-selected.directive.d.ts +0 -13
  830. package/forms/combobox/option.d.ts +0 -25
  831. package/forms/combobox/options.d.ts +0 -36
  832. package/forms/combobox/providers/combobox-container.service.d.ts +0 -7
  833. package/forms/combobox/providers/combobox-focus-handler.service.d.ts +0 -48
  834. package/forms/combobox/providers/option-selection.service.d.ts +0 -24
  835. package/forms/common/abstract-container.d.ts +0 -47
  836. package/forms/common/abstract-control.d.ts +0 -18
  837. package/forms/common/common.module.d.ts +0 -19
  838. package/forms/common/control-container.d.ts +0 -6
  839. package/forms/common/control.d.ts +0 -11
  840. package/forms/common/error.d.ts +0 -12
  841. package/forms/common/form.d.ts +0 -16
  842. package/forms/common/helper.d.ts +0 -12
  843. package/forms/common/if-control-state/abstract-if-state.d.ts +0 -18
  844. package/forms/common/if-control-state/if-control-state.service.d.ts +0 -17
  845. package/forms/common/if-control-state/if-error.d.ts +0 -19
  846. package/forms/common/if-control-state/if-success.d.ts +0 -16
  847. package/forms/common/index.d.ts +0 -14
  848. package/forms/common/label.d.ts +0 -32
  849. package/forms/common/layout.d.ts +0 -11
  850. package/forms/common/providers/container-id.service.d.ts +0 -18
  851. package/forms/common/providers/control-class.service.d.ts +0 -13
  852. package/forms/common/providers/control-id.service.d.ts +0 -11
  853. package/forms/common/providers/focus.service.d.ts +0 -9
  854. package/forms/common/providers/layout.service.d.ts +0 -23
  855. package/forms/common/providers/mark-control.service.d.ts +0 -9
  856. package/forms/common/providers/ng-control.service.d.ts +0 -27
  857. package/forms/common/success.d.ts +0 -12
  858. package/forms/common/wrapped-control.d.ts +0 -46
  859. package/forms/datalist/datalist-container.d.ts +0 -14
  860. package/forms/datalist/datalist-input.d.ts +0 -18
  861. package/forms/datalist/datalist.d.ts +0 -14
  862. package/forms/datalist/datalist.module.d.ts +0 -13
  863. package/forms/datalist/index.d.ts +0 -4
  864. package/forms/datalist/providers/datalist-id.service.d.ts +0 -11
  865. package/forms/datepicker/calendar.d.ts +0 -65
  866. package/forms/datepicker/date-container.d.ts +0 -72
  867. package/forms/datepicker/date-end-input.d.ts +0 -15
  868. package/forms/datepicker/date-input.d.ts +0 -67
  869. package/forms/datepicker/date-input.validator.d.ts +0 -27
  870. package/forms/datepicker/date-single-input.d.ts +0 -15
  871. package/forms/datepicker/date-start-input.d.ts +0 -15
  872. package/forms/datepicker/datepicker-action-buttons.d.ts +0 -16
  873. package/forms/datepicker/datepicker-view-manager.d.ts +0 -30
  874. package/forms/datepicker/datepicker.module.d.ts +0 -29
  875. package/forms/datepicker/day.d.ts +0 -40
  876. package/forms/datepicker/daypicker.d.ts +0 -44
  877. package/forms/datepicker/index.d.ts +0 -14
  878. package/forms/datepicker/interfaces/date-range.interface.d.ts +0 -13
  879. package/forms/datepicker/interfaces/day-of-week.interface.d.ts +0 -4
  880. package/forms/datepicker/model/calendar-view.model.d.ts +0 -74
  881. package/forms/datepicker/model/calendar.model.d.ts +0 -35
  882. package/forms/datepicker/model/day-view.model.d.ts +0 -16
  883. package/forms/datepicker/model/day.model.d.ts +0 -30
  884. package/forms/datepicker/model/year-range.model.d.ts +0 -34
  885. package/forms/datepicker/monthpicker.d.ts +0 -87
  886. package/forms/datepicker/providers/date-form-control.service.d.ts +0 -14
  887. package/forms/datepicker/providers/date-io.service.d.ts +0 -39
  888. package/forms/datepicker/providers/date-navigation.service.d.ts +0 -94
  889. package/forms/datepicker/providers/datepicker-enabled.service.d.ts +0 -15
  890. package/forms/datepicker/providers/datepicker-focus.service.d.ts +0 -16
  891. package/forms/datepicker/providers/locale-helper.service.d.ts +0 -46
  892. package/forms/datepicker/providers/view-manager.service.d.ts +0 -17
  893. package/forms/datepicker/utils/constants.d.ts +0 -24
  894. package/forms/datepicker/utils/date-utils.d.ts +0 -16
  895. package/forms/datepicker/yearpicker.d.ts +0 -78
  896. package/forms/file-input/file-input-container.d.ts +0 -27
  897. package/forms/file-input/file-input-validator-errors.d.ts +0 -52
  898. package/forms/file-input/file-input-validator.d.ts +0 -14
  899. package/forms/file-input/file-input-value-accessor.d.ts +0 -15
  900. package/forms/file-input/file-input.d.ts +0 -23
  901. package/forms/file-input/file-input.helpers.d.ts +0 -3
  902. package/forms/file-input/file-input.module.d.ts +0 -17
  903. package/forms/file-input/file-list.d.ts +0 -18
  904. package/forms/file-input/file-messages-template.d.ts +0 -19
  905. package/forms/file-input/file-messages.d.ts +0 -17
  906. package/forms/file-input/index.d.ts +0 -9
  907. package/forms/forms.module.d.ts +0 -20
  908. package/forms/index.d.ts +0 -14
  909. package/forms/input/index.d.ts +0 -3
  910. package/forms/input/input-container.d.ts +0 -6
  911. package/forms/input/input.d.ts +0 -11
  912. package/forms/input/input.module.d.ts +0 -13
  913. package/forms/number-input/index.d.ts +0 -3
  914. package/forms/number-input/number-input-container.d.ts +0 -17
  915. package/forms/number-input/number-input.d.ts +0 -22
  916. package/forms/number-input/number-input.module.d.ts +0 -13
  917. package/forms/password/index.d.ts +0 -3
  918. package/forms/password/password-container.d.ts +0 -32
  919. package/forms/password/password.d.ts +0 -16
  920. package/forms/password/password.module.d.ts +0 -13
  921. package/forms/radio/index.d.ts +0 -4
  922. package/forms/radio/radio-container.d.ts +0 -28
  923. package/forms/radio/radio-wrapper.d.ts +0 -9
  924. package/forms/radio/radio.d.ts +0 -10
  925. package/forms/radio/radio.module.d.ts +0 -14
  926. package/forms/range/index.d.ts +0 -3
  927. package/forms/range/range-container.d.ts +0 -22
  928. package/forms/range/range.d.ts +0 -10
  929. package/forms/range/range.module.d.ts +0 -13
  930. package/forms/select/index.d.ts +0 -3
  931. package/forms/select/select-container.d.ts +0 -20
  932. package/forms/select/select.d.ts +0 -11
  933. package/forms/select/select.module.d.ts +0 -13
  934. package/forms/textarea/index.d.ts +0 -3
  935. package/forms/textarea/textarea-container.d.ts +0 -6
  936. package/forms/textarea/textarea.d.ts +0 -11
  937. package/forms/textarea/textarea.module.d.ts +0 -13
  938. package/icon/icon.d.ts +0 -9
  939. package/icon/icon.module.d.ts +0 -10
  940. package/icon/index.d.ts +0 -2
  941. package/index.d.ts +0 -16
  942. package/layout/breadcrumbs/breadcrumb-item.d.ts +0 -5
  943. package/layout/breadcrumbs/breadcrumbs.constants.d.ts +0 -1
  944. package/layout/breadcrumbs/breadcrumbs.d.ts +0 -17
  945. package/layout/breadcrumbs/breadcrumbs.module.d.ts +0 -12
  946. package/layout/breadcrumbs/index.d.ts +0 -4
  947. package/layout/breadcrumbs/model/breadcrumbs.model.d.ts +0 -9
  948. package/layout/index.d.ts +0 -6
  949. package/layout/layout.module.d.ts +0 -11
  950. package/layout/main-container/index.d.ts +0 -2
  951. package/layout/main-container/main-container.d.ts +0 -17
  952. package/layout/main-container/main-container.module.d.ts +0 -11
  953. package/layout/nav/aria-current-link.d.ts +0 -13
  954. package/layout/nav/chocolate/index.d.ts +0 -2
  955. package/layout/nav/chocolate/main-container-willy-wonka.d.ts +0 -6
  956. package/layout/nav/chocolate/nav-detection-oompa-loompa.d.ts +0 -12
  957. package/layout/nav/header.d.ts +0 -31
  958. package/layout/nav/index.d.ts +0 -5
  959. package/layout/nav/nav-level.d.ts +0 -35
  960. package/layout/nav/navigation.module.d.ts +0 -16
  961. package/layout/nav/providers/responsive-navigation.service.d.ts +0 -18
  962. package/layout/nav/responsive-nav-codes.d.ts +0 -14
  963. package/layout/nav/responsive-nav-control-message.d.ts +0 -7
  964. package/layout/tabs/chocolate/active-oompa-loompa.d.ts +0 -13
  965. package/layout/tabs/chocolate/tabs-willy-wonka.d.ts +0 -6
  966. package/layout/tabs/enums/tabs-layout.enum.d.ts +0 -4
  967. package/layout/tabs/index.d.ts +0 -11
  968. package/layout/tabs/providers/tabs.service.d.ts +0 -16
  969. package/layout/tabs/tab-action.directive.d.ts +0 -5
  970. package/layout/tabs/tab-content.d.ts +0 -18
  971. package/layout/tabs/tab-link.directive.d.ts +0 -25
  972. package/layout/tabs/tab-overflow-content.d.ts +0 -5
  973. package/layout/tabs/tab.d.ts +0 -17
  974. package/layout/tabs/tabs-actions.d.ts +0 -7
  975. package/layout/tabs/tabs-id.provider.d.ts +0 -7
  976. package/layout/tabs/tabs.d.ts +0 -50
  977. package/layout/tabs/tabs.module.d.ts +0 -23
  978. package/layout/vertical-nav/index.d.ts +0 -6
  979. package/layout/vertical-nav/providers/vertical-nav-group-registration.service.d.ts +0 -8
  980. package/layout/vertical-nav/providers/vertical-nav-group.service.d.ts +0 -9
  981. package/layout/vertical-nav/providers/vertical-nav-icon.service.d.ts +0 -9
  982. package/layout/vertical-nav/providers/vertical-nav.service.d.ts +0 -17
  983. package/layout/vertical-nav/vertical-nav-group-children.d.ts +0 -5
  984. package/layout/vertical-nav/vertical-nav-group.d.ts +0 -32
  985. package/layout/vertical-nav/vertical-nav-icon.d.ts +0 -10
  986. package/layout/vertical-nav/vertical-nav-link.d.ts +0 -10
  987. package/layout/vertical-nav/vertical-nav.d.ts +0 -28
  988. package/layout/vertical-nav/vertical-nav.module.d.ts +0 -18
  989. package/modal/index.d.ts +0 -7
  990. package/modal/modal-body.d.ts +0 -22
  991. package/modal/modal-configuration.service.d.ts +0 -7
  992. package/modal/modal-host.component.d.ts +0 -5
  993. package/modal/modal-stack.service.d.ts +0 -15
  994. package/modal/modal.d.ts +0 -43
  995. package/modal/modal.module.d.ts +0 -15
  996. package/modal/side-panel.d.ts +0 -53
  997. package/modal/side-panel.module.d.ts +0 -13
  998. package/popover/common/abstract-popover.d.ts +0 -35
  999. package/popover/common/popover-host-anchor.token.d.ts +0 -2
  1000. package/popover/common/popover-options.interface.d.ts +0 -7
  1001. package/popover/common/popover.d.ts +0 -30
  1002. package/popover/dropdown/dropdown-item.d.ts +0 -27
  1003. package/popover/dropdown/dropdown-menu.d.ts +0 -15
  1004. package/popover/dropdown/dropdown-trigger.d.ts +0 -16
  1005. package/popover/dropdown/dropdown.d.ts +0 -17
  1006. package/popover/dropdown/dropdown.module.d.ts +0 -15
  1007. package/popover/dropdown/index.d.ts +0 -6
  1008. package/popover/dropdown/menu-positions.d.ts +0 -1
  1009. package/popover/dropdown/providers/dropdown-focus-handler.service.d.ts +0 -49
  1010. package/popover/dropdown/providers/dropdown.service.d.ts +0 -16
  1011. package/popover/index.d.ts +0 -4
  1012. package/popover/popover.module.d.ts +0 -9
  1013. package/popover/signpost/index.d.ts +0 -5
  1014. package/popover/signpost/providers/signpost-focus-manager.service.d.ts +0 -8
  1015. package/popover/signpost/providers/signpost-id.service.d.ts +0 -9
  1016. package/popover/signpost/signpost-content.d.ts +0 -57
  1017. package/popover/signpost/signpost-positions.d.ts +0 -10
  1018. package/popover/signpost/signpost-title.d.ts +0 -5
  1019. package/popover/signpost/signpost-trigger.d.ts +0 -29
  1020. package/popover/signpost/signpost.d.ts +0 -27
  1021. package/popover/signpost/signpost.module.d.ts +0 -17
  1022. package/popover/tooltip/index.d.ts +0 -4
  1023. package/popover/tooltip/providers/tooltip-id.service.d.ts +0 -9
  1024. package/popover/tooltip/providers/tooltip-mouse.service.d.ts +0 -15
  1025. package/popover/tooltip/tooltip-content.d.ts +0 -25
  1026. package/popover/tooltip/tooltip-trigger.d.ts +0 -18
  1027. package/popover/tooltip/tooltip.d.ts +0 -6
  1028. package/popover/tooltip/tooltip.module.d.ts +0 -14
  1029. package/progress/progress-bars/index.d.ts +0 -2
  1030. package/progress/progress-bars/progress-bar.module.d.ts +0 -10
  1031. package/progress/spinner/index.d.ts +0 -2
  1032. package/progress/spinner/spinner.module.d.ts +0 -10
  1033. package/src/utils/popover/README.md +0 -139
  1034. package/timeline/enums/timeline-layout.enum.d.ts +0 -4
  1035. package/timeline/enums/timeline-step-state.enum.d.ts +0 -7
  1036. package/timeline/index.d.ts +0 -8
  1037. package/timeline/interface/icon-attribute.interface.d.ts +0 -6
  1038. package/timeline/providers/timeline-icon-attribute.service.d.ts +0 -12
  1039. package/timeline/timeline-step-description.d.ts +0 -5
  1040. package/timeline/timeline-step-header.d.ts +0 -5
  1041. package/timeline/timeline-step-title.d.ts +0 -15
  1042. package/timeline/timeline-step.d.ts +0 -19
  1043. package/timeline/timeline.d.ts +0 -8
  1044. package/timeline/timeline.module.d.ts +0 -15
  1045. package/utils/animations/collapse/collapse.d.ts +0 -2
  1046. package/utils/animations/collapse/index.d.ts +0 -1
  1047. package/utils/animations/constants.d.ts +0 -2
  1048. package/utils/animations/expandable-animation/base-expandable-animation.d.ts +0 -16
  1049. package/utils/animations/expandable-animation/expandable-animation.d.ts +0 -16
  1050. package/utils/animations/expandable-animation/expandable-animation.directive.d.ts +0 -16
  1051. package/utils/animations/expandable-animation/expandable-animation.module.d.ts +0 -9
  1052. package/utils/animations/expandable-animation/index.d.ts +0 -4
  1053. package/utils/animations/fade/fade.d.ts +0 -2
  1054. package/utils/animations/fade/index.d.ts +0 -1
  1055. package/utils/animations/fade-slide/fade-slide.d.ts +0 -2
  1056. package/utils/animations/fade-slide/index.d.ts +0 -1
  1057. package/utils/animations/index.d.ts +0 -5
  1058. package/utils/animations/slide/index.d.ts +0 -1
  1059. package/utils/animations/slide/slide.d.ts +0 -2
  1060. package/utils/assert/assert.helpers.d.ts +0 -1
  1061. package/utils/breakpoints/breakpoints.d.ts +0 -15
  1062. package/utils/cdk/cdk-drag.module.d.ts +0 -25
  1063. package/utils/cdk/cdk-trap-focus.module.d.ts +0 -24
  1064. package/utils/chocolate/oompa-loompa.d.ts +0 -13
  1065. package/utils/chocolate/willy-wonka.d.ts +0 -11
  1066. package/utils/component/is-boolean-attribute-set.d.ts +0 -1
  1067. package/utils/conditional/conditional.module.d.ts +0 -12
  1068. package/utils/conditional/if-active.directive.d.ts +0 -38
  1069. package/utils/conditional/if-active.service.d.ts +0 -45
  1070. package/utils/conditional/if-expanded.directive.d.ts +0 -24
  1071. package/utils/conditional/if-expanded.service.d.ts +0 -20
  1072. package/utils/conditional/if-open.directive.d.ts +0 -36
  1073. package/utils/conditional/index.d.ts +0 -4
  1074. package/utils/destroy/destroy.service.d.ts +0 -32
  1075. package/utils/destroy/index.d.ts +0 -1
  1076. package/utils/dom-adapter/dom-adapter.d.ts +0 -12
  1077. package/utils/enums/keys.enum.d.ts +0 -24
  1078. package/utils/focus/arrow-key-direction.enum.d.ts +0 -6
  1079. package/utils/focus/focus-on-view-init/focus-on-view-init.d.ts +0 -19
  1080. package/utils/focus/focus-on-view-init/focus-on-view-init.module.d.ts +0 -10
  1081. package/utils/focus/focus-on-view-init/focus-on-view-init.provider.d.ts +0 -6
  1082. package/utils/focus/focus-on-view-init/index.d.ts +0 -3
  1083. package/utils/focus/focus-trap/index.d.ts +0 -1
  1084. package/utils/focus/focus-trap/standalone-cdk-trap-focus.directive.d.ts +0 -13
  1085. package/utils/focus/focus.service.d.ts +0 -26
  1086. package/utils/focus/focusable-item/basic-focusable-item.service.d.ts +0 -20
  1087. package/utils/focus/focusable-item/custom-focusable-item-provider.d.ts +0 -6
  1088. package/utils/focus/focusable-item/focusable-item.d.ts +0 -12
  1089. package/utils/focus/focusable-item/linkers.d.ts +0 -13
  1090. package/utils/focus/key-focus/enums/focus-direction.enum.d.ts +0 -5
  1091. package/utils/focus/key-focus/index.d.ts +0 -2
  1092. package/utils/focus/key-focus/interfaces.d.ts +0 -5
  1093. package/utils/focus/key-focus/key-focus-item.d.ts +0 -11
  1094. package/utils/focus/key-focus/key-focus.d.ts +0 -44
  1095. package/utils/focus/key-focus/key-focus.module.d.ts +0 -10
  1096. package/utils/focus/key-focus/roving-tabindex.d.ts +0 -19
  1097. package/utils/focus/key-focus/util.d.ts +0 -3
  1098. package/utils/focus/wrap-observable.d.ts +0 -2
  1099. package/utils/forms/validation.d.ts +0 -2
  1100. package/utils/host-wrapping/empty-anchor.d.ts +0 -5
  1101. package/utils/host-wrapping/host-wrapper.d.ts +0 -11
  1102. package/utils/host-wrapping/host-wrapping.module.d.ts +0 -10
  1103. package/utils/i18n/common-strings.default.d.ts +0 -2
  1104. package/utils/i18n/common-strings.interface.d.ts +0 -309
  1105. package/utils/i18n/common-strings.service.d.ts +0 -21
  1106. package/utils/i18n/index.d.ts +0 -3
  1107. package/utils/id-generator/id-generator.service.d.ts +0 -1
  1108. package/utils/index.d.ts +0 -8
  1109. package/utils/loading/index.d.ts +0 -3
  1110. package/utils/loading/loading-listener.d.ts +0 -8
  1111. package/utils/loading/loading.d.ts +0 -20
  1112. package/utils/loading/loading.module.d.ts +0 -10
  1113. package/utils/outside-click/index.d.ts +0 -3
  1114. package/utils/outside-click/outside-click.d.ts +0 -11
  1115. package/utils/outside-click/outside-click.module.d.ts +0 -8
  1116. package/utils/popover/enums/alignment.enum.d.ts +0 -5
  1117. package/utils/popover/enums/axis.enum.d.ts +0 -4
  1118. package/utils/popover/enums/positions.enum.d.ts +0 -23
  1119. package/utils/popover/enums/side.enum.d.ts +0 -4
  1120. package/utils/popover/enums/viewport-violation.enum.d.ts +0 -6
  1121. package/utils/popover/index.d.ts +0 -14
  1122. package/utils/popover/interfaces/popover-content-offset.interface.d.ts +0 -4
  1123. package/utils/popover/interfaces/popover-position.interface.d.ts +0 -16
  1124. package/utils/popover/interfaces/visibility-coords.interface.d.ts +0 -6
  1125. package/utils/popover/popover-anchor.d.ts +0 -8
  1126. package/utils/popover/popover-close-button.d.ts +0 -17
  1127. package/utils/popover/popover-content.d.ts +0 -42
  1128. package/utils/popover/popover-host.directive.d.ts +0 -6
  1129. package/utils/popover/popover-open-close-button.d.ts +0 -13
  1130. package/utils/popover/popover.module.d.ts +0 -10
  1131. package/utils/popover/position-operators.d.ts +0 -10
  1132. package/utils/popover/providers/popover-events.service.d.ts +0 -34
  1133. package/utils/popover/providers/popover-position.service.d.ts +0 -24
  1134. package/utils/popover/providers/popover-toggle.service.d.ts +0 -28
  1135. package/utils/popover/stop-escape-propagation.directive.d.ts +0 -14
  1136. package/utils/scrolling/scrolling-service.d.ts +0 -9
  1137. package/utils/template-ref/index.d.ts +0 -3
  1138. package/utils/template-ref/template-ref-container.d.ts +0 -7
  1139. package/utils/template-ref/template-ref.module.d.ts +0 -8
  1140. package/wizard/heading-level.d.ts +0 -1
  1141. package/wizard/index.d.ts +0 -13
  1142. package/wizard/providers/button-hub.service.d.ts +0 -20
  1143. package/wizard/providers/header-actions.service.d.ts +0 -15
  1144. package/wizard/providers/page-collection.service.d.ts +0 -196
  1145. package/wizard/providers/wizard-navigation.service.d.ts +0 -366
  1146. package/wizard/wizard-button.d.ts +0 -28
  1147. package/wizard/wizard-header-action.d.ts +0 -12
  1148. package/wizard/wizard-page-buttons.d.ts +0 -8
  1149. package/wizard/wizard-page-header-actions.d.ts +0 -8
  1150. package/wizard/wizard-page-navtitle.d.ts +0 -8
  1151. package/wizard/wizard-page-title.d.ts +0 -10
  1152. package/wizard/wizard-page.d.ts +0 -494
  1153. package/wizard/wizard-stepnav-item.d.ts +0 -42
  1154. package/wizard/wizard-stepnav.d.ts +0 -9
  1155. package/wizard/wizard-title.d.ts +0 -7
  1156. package/wizard/wizard.d.ts +0 -256
  1157. package/wizard/wizard.module.d.ts +0 -22
@@ -0,0 +1,2355 @@
1
+ import * as i0 from '@angular/core';
2
+ import { PLATFORM_ID, SkipSelf, Optional, Inject, Injectable, Input, Component, HostBinding, ContentChildren, HostListener, Directive, NgModule, ElementRef, InjectionToken, EventEmitter, Output, DOCUMENT, ContentChild, ViewChild } from '@angular/core';
3
+ import * as i2 from '@clr/angular/popover/common';
4
+ import { ClrPopoverHostDirective as ClrPopoverHostDirective$1, ClrPopoverType as ClrPopoverType$1, ClrPopoverPosition as ClrPopoverPosition$1, DROPDOWN_POSITIONS as DROPDOWN_POSITIONS$1, POPOVER_HOST_ORIGIN as POPOVER_HOST_ORIGIN$1, ClrPopoverContent as ClrPopoverContent$1, ClrIfOpen as ClrIfOpen$1, SIGNPOST_POSITIONS as SIGNPOST_POSITIONS$1, ÇlrClrPopoverModuleNext as _lrClrPopoverModuleNext, TOOLTIP_POSITIONS as TOOLTIP_POSITIONS$1 } from '@clr/angular/popover/common';
5
+ import * as i1 from '@clr/angular/utils';
6
+ import { uniqueIdFactory, ArrowKeyDirection, Linkers, wrapObservable, customFocusableItemProvider, FOCUS_SERVICE_PROVIDER, FocusableItem, BASIC_FOCUSABLE_ITEM_PROVIDER, preventArrowKeyScroll, ClrPosition, Keys, ClrFocusOnViewInitModule } from '@clr/angular/utils';
7
+ import { isPlatformBrowser, CommonModule } from '@angular/common';
8
+ import { ReplaySubject, of, Subject, merge, timer, switchMap, fromEvent } from 'rxjs';
9
+ import { map, filter } from 'rxjs/operators';
10
+ import * as i3 from '@clr/angular/icon';
11
+ import { ClrIcon, ClarityIcons, windowCloseIcon, infoCircleIcon } from '@clr/angular/icon';
12
+ import { hasModifierKey } from '@angular/cdk/keycodes';
13
+ import * as i1$1 from '@angular/cdk/overlay';
14
+ import { OverlayConfig } from '@angular/cdk/overlay';
15
+ import { DomPortal } from '@angular/cdk/portal';
16
+ import { ClrDropdownModule as ClrDropdownModule$1 } from '@clr/angular/popover/dropdown';
17
+ import { ClrSignpostModule as ClrSignpostModule$1 } from '@clr/angular/popover/signpost';
18
+ import { ClrTooltipModule as ClrTooltipModule$1 } from '@clr/angular/popover/tooltip';
19
+
20
+ /*
21
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
22
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
23
+ * This software is released under MIT license.
24
+ * The full license information can be found in LICENSE in the root directory of this project.
25
+ */
26
+ class DropdownFocusHandler {
27
+ constructor(renderer, parent, popoverService, focusService, platformId) {
28
+ this.renderer = renderer;
29
+ this.parent = parent;
30
+ this.popoverService = popoverService;
31
+ this.focusService = focusService;
32
+ this.platformId = platformId;
33
+ this.id = uniqueIdFactory();
34
+ this._unlistenFuncs = [];
35
+ this.resetChildren();
36
+ this.moveToFirstItemWhenOpen();
37
+ }
38
+ get trigger() {
39
+ return this._trigger;
40
+ }
41
+ set trigger(el) {
42
+ this._trigger = el;
43
+ if (this.parent) {
44
+ this._unlistenFuncs.push(this.renderer.listen(el, 'keydown.arrowright', event => this.popoverService.toggleWithEvent(event)));
45
+ }
46
+ else {
47
+ this._unlistenFuncs.push(this.renderer.listen(el, 'keydown.arrowup', event => this.popoverService.toggleWithEvent(event)));
48
+ this._unlistenFuncs.push(this.renderer.listen(el, 'keydown.arrowdown', event => this.popoverService.toggleWithEvent(event)));
49
+ }
50
+ }
51
+ get container() {
52
+ return this._container;
53
+ }
54
+ set container(el) {
55
+ this._container = el;
56
+ // whether root container or not, tab key should always toggle (i.e. close) the container
57
+ this._unlistenFuncs.push(this.renderer.listen(el, 'keydown.tab', event => this.popoverService.toggleWithEvent(event)), this.renderer.listen(el, 'keydown.shift.tab', event => this.popoverService.toggleWithEvent(event)));
58
+ // All containers are registered to the focus service.
59
+ this.focusService.registerContainer(el);
60
+ if (this.parent) {
61
+ // if it's a nested container, pressing escape has the same effect as pressing left key, which closes the current
62
+ // popup and moves up to its parent. Here, we stop propagation so that the parent container
63
+ // doesn't receive the escape keydown
64
+ this._unlistenFuncs.push(this.renderer.listen(el, 'keydown.escape', event => {
65
+ this.focusService.move(ArrowKeyDirection.LEFT);
66
+ event.stopPropagation();
67
+ }));
68
+ }
69
+ }
70
+ ngOnDestroy() {
71
+ this._unlistenFuncs.forEach((unlisten) => unlisten());
72
+ this.focusService.detachListeners(this.container);
73
+ }
74
+ /**
75
+ * If the dropdown was opened by clicking on the trigger, we automatically move to the first item
76
+ */
77
+ moveToFirstItemWhenOpen() {
78
+ const subscription = this.popoverService.openChange.subscribe(open => {
79
+ if (open && this.popoverService.openEvent) {
80
+ // Even if we properly waited for ngAfterViewInit, the container still wouldn't be attached to the DOM.
81
+ // So setTimeout is the only way to wait for the container to be ready to move focus to first item.
82
+ setTimeout(() => {
83
+ this.focusService.moveTo(this);
84
+ if (this.parent) {
85
+ this.focusService.move(ArrowKeyDirection.RIGHT);
86
+ }
87
+ else {
88
+ this.focusService.move(ArrowKeyDirection.DOWN);
89
+ }
90
+ });
91
+ }
92
+ });
93
+ this._unlistenFuncs.push(() => subscription.unsubscribe());
94
+ }
95
+ focus() {
96
+ if (this.trigger && isPlatformBrowser(this.platformId)) {
97
+ this.trigger.focus();
98
+ }
99
+ }
100
+ blur() {
101
+ if (this.trigger && isPlatformBrowser(this.platformId)) {
102
+ this.trigger.blur();
103
+ }
104
+ }
105
+ activate() {
106
+ if (isPlatformBrowser(this.platformId)) {
107
+ this.trigger.click();
108
+ }
109
+ }
110
+ resetChildren() {
111
+ this.children = new ReplaySubject(1);
112
+ if (this.parent) {
113
+ this.right = this.openAndGetChildren().pipe(map(all => all[0]));
114
+ }
115
+ else {
116
+ this.down = this.openAndGetChildren().pipe(map(all => all[0]));
117
+ this.up = this.openAndGetChildren().pipe(map(all => all[all.length - 1]));
118
+ }
119
+ }
120
+ addChildren(children) {
121
+ Linkers.linkVertical(children);
122
+ if (this.parent) {
123
+ Linkers.linkParent(children, this.closeAndGetThis(), ArrowKeyDirection.LEFT);
124
+ }
125
+ this.children.next(children);
126
+ }
127
+ openAndGetChildren() {
128
+ return wrapObservable(this.children, () => (this.popoverService.open = true));
129
+ }
130
+ closeAndGetThis() {
131
+ return wrapObservable(of(this), () => (this.popoverService.open = false));
132
+ }
133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DropdownFocusHandler, deps: [{ token: i0.Renderer2 }, { token: DropdownFocusHandler, optional: true, skipSelf: true }, { token: i2.ClrPopoverService }, { token: i1.FocusService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
134
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DropdownFocusHandler }); }
135
+ }
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DropdownFocusHandler, decorators: [{
137
+ type: Injectable
138
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: DropdownFocusHandler, decorators: [{
139
+ type: SkipSelf
140
+ }, {
141
+ type: Optional
142
+ }] }, { type: i2.ClrPopoverService }, { type: i1.FocusService }, { type: undefined, decorators: [{
143
+ type: Inject,
144
+ args: [PLATFORM_ID]
145
+ }] }] });
146
+ const DROPDOWN_FOCUS_HANDLER_PROVIDER = customFocusableItemProvider(DropdownFocusHandler);
147
+
148
+ /*
149
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
150
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
151
+ * This software is released under MIT license.
152
+ * The full license information can be found in LICENSE in the root directory of this project.
153
+ */
154
+ class RootDropdownService {
155
+ constructor() {
156
+ this._changes = new Subject();
157
+ }
158
+ get changes() {
159
+ return this._changes.asObservable();
160
+ }
161
+ closeMenus() {
162
+ this._changes.next(false);
163
+ }
164
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: RootDropdownService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
165
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: RootDropdownService }); }
166
+ }
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: RootDropdownService, decorators: [{
168
+ type: Injectable
169
+ }] });
170
+ function clrRootDropdownFactory(existing) {
171
+ return existing || new RootDropdownService();
172
+ }
173
+ const ROOT_DROPDOWN_PROVIDER = {
174
+ provide: RootDropdownService,
175
+ useFactory: clrRootDropdownFactory,
176
+ deps: [[new Optional(), new SkipSelf(), RootDropdownService]],
177
+ };
178
+
179
+ /*
180
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
181
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
182
+ * This software is released under MIT license.
183
+ * The full license information can be found in LICENSE in the root directory of this project.
184
+ */
185
+ class ClrDropdown {
186
+ constructor(parent, popoverService, focusHandler, cdr, dropdownService) {
187
+ this.parent = parent;
188
+ this.popoverService = popoverService;
189
+ this.focusHandler = focusHandler;
190
+ this.isMenuClosable = true;
191
+ this.subscriptions = [];
192
+ this.subscriptions.push(dropdownService.changes.subscribe(value => (popoverService.open = value)));
193
+ this.subscriptions.push(popoverService.openChange.subscribe(() => cdr.markForCheck()));
194
+ }
195
+ openAtPoint(point) {
196
+ this.popoverService.openAtPoint(point);
197
+ }
198
+ ngOnDestroy() {
199
+ this.subscriptions.forEach(sub => sub.unsubscribe());
200
+ }
201
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDropdown, deps: [{ token: ClrDropdown, optional: true, skipSelf: true }, { token: i2.ClrPopoverService }, { token: DropdownFocusHandler }, { token: i0.ChangeDetectorRef }, { token: RootDropdownService }], target: i0.ɵɵFactoryTarget.Component }); }
202
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ClrDropdown, isStandalone: false, selector: "clr-dropdown", inputs: { isMenuClosable: ["clrCloseMenuOnItemClick", "isMenuClosable"] }, host: { properties: { "class.dropdown": "true", "class.open": "popoverService.open" } }, providers: [ROOT_DROPDOWN_PROVIDER, FOCUS_SERVICE_PROVIDER, DROPDOWN_FOCUS_HANDLER_PROVIDER], hostDirectives: [{ directive: i2.ClrPopoverHostDirective }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
203
+ }
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDropdown, decorators: [{
205
+ type: Component,
206
+ args: [{
207
+ selector: 'clr-dropdown',
208
+ template: `<ng-content></ng-content>`,
209
+ host: {
210
+ '[class.dropdown]': 'true',
211
+ '[class.open]': 'popoverService.open',
212
+ },
213
+ providers: [ROOT_DROPDOWN_PROVIDER, FOCUS_SERVICE_PROVIDER, DROPDOWN_FOCUS_HANDLER_PROVIDER],
214
+ hostDirectives: [ClrPopoverHostDirective$1],
215
+ standalone: false,
216
+ }]
217
+ }], ctorParameters: () => [{ type: ClrDropdown, decorators: [{
218
+ type: SkipSelf
219
+ }, {
220
+ type: Optional
221
+ }] }, { type: i2.ClrPopoverService }, { type: DropdownFocusHandler }, { type: i0.ChangeDetectorRef }, { type: RootDropdownService }], propDecorators: { isMenuClosable: [{
222
+ type: Input,
223
+ args: ['clrCloseMenuOnItemClick']
224
+ }] } });
225
+
226
+ /*
227
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
228
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
229
+ * This software is released under MIT license.
230
+ * The full license information can be found in LICENSE in the root directory of this project.
231
+ */
232
+ class ClrDropdownMenu {
233
+ constructor(parentHost, nested, focusHandler, elementRef, popoverService, popoverContent) {
234
+ this.focusHandler = focusHandler;
235
+ this.elementRef = elementRef;
236
+ this.popoverService = popoverService;
237
+ this.popoverContent = popoverContent;
238
+ if (!parentHost) {
239
+ throw new Error('clr-dropdown-menu should only be used inside of a clr-dropdown');
240
+ }
241
+ popoverContent.scrollToClose = true;
242
+ popoverContent.contentType = ClrPopoverType$1.DROPDOWN;
243
+ popoverContent.contentAt = nested ? ClrPopoverPosition$1.RIGHT_TOP : ClrPopoverPosition$1.BOTTOM_LEFT;
244
+ popoverService.panelClass.push('clr-dropdown-container');
245
+ }
246
+ /*
247
+ * Fallback to hide when *clrIfOpen is not being used
248
+ */
249
+ get isOffScreen() {
250
+ return !this.popoverService.open;
251
+ }
252
+ set position(position) {
253
+ if (!position) {
254
+ return;
255
+ }
256
+ const posIndex = DROPDOWN_POSITIONS$1.indexOf(position);
257
+ if (posIndex === -1) {
258
+ return;
259
+ }
260
+ // set the popover values based on menu position
261
+ this.popoverContent.contentAt = DROPDOWN_POSITIONS$1[posIndex];
262
+ }
263
+ ngAfterContentInit() {
264
+ this.focusHandler.container = this.elementRef.nativeElement;
265
+ this.items.changes.subscribe(() => this.focusHandler.addChildren(this.items.toArray()));
266
+ // I saw this on GitHub as a solution to avoid code duplication because of missed QueryList changes
267
+ this.items.notifyOnChanges();
268
+ }
269
+ ngOnDestroy() {
270
+ this.focusHandler.resetChildren();
271
+ }
272
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDropdownMenu, deps: [{ token: POPOVER_HOST_ORIGIN$1, optional: true }, { token: ClrDropdownMenu, optional: true, skipSelf: true }, { token: DropdownFocusHandler }, { token: i0.ElementRef }, { token: i2.ClrPopoverService }, { token: i2.ClrPopoverContent }], target: i0.ɵɵFactoryTarget.Component }); }
273
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ClrDropdownMenu, isStandalone: false, selector: "clr-dropdown-menu", inputs: { position: ["clrPosition", "position"] }, host: { properties: { "class.dropdown-menu": "true", "attr.role": "\"menu\"", "class.is-off-screen": "this.isOffScreen" } }, queries: [{ propertyName: "items", predicate: FocusableItem }], hostDirectives: [{ directive: i2.ClrPopoverContent }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
274
+ }
275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDropdownMenu, decorators: [{
276
+ type: Component,
277
+ args: [{
278
+ selector: 'clr-dropdown-menu',
279
+ template: `<ng-content></ng-content>`,
280
+ host: {
281
+ '[class.dropdown-menu]': 'true',
282
+ '[attr.role]': '"menu"',
283
+ },
284
+ standalone: false,
285
+ hostDirectives: [ClrPopoverContent$1],
286
+ }]
287
+ }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
288
+ type: Optional
289
+ }, {
290
+ type: Inject,
291
+ args: [POPOVER_HOST_ORIGIN$1]
292
+ }] }, { type: ClrDropdownMenu, decorators: [{
293
+ type: Optional
294
+ }, {
295
+ type: SkipSelf
296
+ }] }, { type: DropdownFocusHandler }, { type: i0.ElementRef }, { type: i2.ClrPopoverService }, { type: i2.ClrPopoverContent }], propDecorators: { items: [{
297
+ type: ContentChildren,
298
+ args: [FocusableItem]
299
+ }], isOffScreen: [{
300
+ type: HostBinding,
301
+ args: ['class.is-off-screen']
302
+ }], position: [{
303
+ type: Input,
304
+ args: ['clrPosition']
305
+ }] } });
306
+
307
+ /*
308
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
309
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
310
+ * This software is released under MIT license.
311
+ * The full license information can be found in LICENSE in the root directory of this project.
312
+ */
313
+ class ClrDropdownTrigger {
314
+ constructor(dropdown, popoverService, el, focusHandler) {
315
+ this.popoverService = popoverService;
316
+ this.isRootLevelToggle = true;
317
+ // if the containing dropdown has a parent, then this is not the root level one
318
+ if (dropdown.parent) {
319
+ this.isRootLevelToggle = false;
320
+ }
321
+ focusHandler.trigger = el.nativeElement;
322
+ popoverService.origin = el;
323
+ }
324
+ get active() {
325
+ return this.popoverService.open;
326
+ }
327
+ onDropdownTriggerClick(event) {
328
+ this.popoverService.toggleWithEvent(event);
329
+ }
330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDropdownTrigger, deps: [{ token: ClrDropdown }, { token: i2.ClrPopoverService }, { token: i0.ElementRef }, { token: DropdownFocusHandler }], target: i0.ɵɵFactoryTarget.Directive }); }
331
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrDropdownTrigger, isStandalone: false, selector: "[clrDropdownTrigger],[clrDropdownToggle]", host: { listeners: { "click": "onDropdownTriggerClick($event)" }, properties: { "class.dropdown-toggle": "isRootLevelToggle", "class.dropdown-item": "!isRootLevelToggle", "class.expandable": "!isRootLevelToggle", "class.active": "active", "attr.aria-haspopup": "\"menu\"", "attr.aria-expanded": "active" } }, ngImport: i0 }); }
332
+ }
333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDropdownTrigger, decorators: [{
334
+ type: Directive,
335
+ args: [{
336
+ // We support both selectors for legacy reasons
337
+ selector: '[clrDropdownTrigger],[clrDropdownToggle]',
338
+ host: {
339
+ '[class.dropdown-toggle]': 'isRootLevelToggle',
340
+ '[class.dropdown-item]': '!isRootLevelToggle',
341
+ '[class.expandable]': '!isRootLevelToggle',
342
+ '[class.active]': 'active',
343
+ '[attr.aria-haspopup]': '"menu"',
344
+ '[attr.aria-expanded]': 'active',
345
+ },
346
+ standalone: false,
347
+ }]
348
+ }], ctorParameters: () => [{ type: ClrDropdown }, { type: i2.ClrPopoverService }, { type: i0.ElementRef }, { type: DropdownFocusHandler }], propDecorators: { onDropdownTriggerClick: [{
349
+ type: HostListener,
350
+ args: ['click', ['$event']]
351
+ }] } });
352
+
353
+ /*
354
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
355
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
356
+ * This software is released under MIT license.
357
+ * The full license information can be found in LICENSE in the root directory of this project.
358
+ */
359
+ class ClrDropdownItem {
360
+ constructor(dropdown, _dropdownService, focusableItem, el, renderer) {
361
+ this.dropdown = dropdown;
362
+ this._dropdownService = _dropdownService;
363
+ this.focusableItem = focusableItem;
364
+ this.el = el;
365
+ this.renderer = renderer;
366
+ }
367
+ get disabled() {
368
+ return this.focusableItem.disabled;
369
+ }
370
+ set disabled(value) {
371
+ // Empty string attribute evaluates to false but should disable the item, so we need to add a special case for it.
372
+ this.focusableItem.disabled = !!value || value === '';
373
+ }
374
+ /**
375
+ * Let you overwrite the focusable auto increment id.
376
+ */
377
+ get dropdownItemId() {
378
+ return this.focusableItem.id;
379
+ }
380
+ set dropdownItemId(value) {
381
+ this.focusableItem.id = value;
382
+ }
383
+ onDropdownItemClick() {
384
+ // Move focus back to the root dropdown trigger.
385
+ // This is done BEFORE the dropdown is closed so that focus gets moved properly if a modal is opened.
386
+ if (this.dropdown.isMenuClosable && !this.disabled && this.dropdown.popoverService.open) {
387
+ const rootDropdown = this.findRootDropdown();
388
+ rootDropdown.focusHandler.focus();
389
+ }
390
+ // Ensure that the dropdown is closed after custom dropdown item click event handlers have run.
391
+ setTimeout(() => {
392
+ if (this.dropdown.isMenuClosable && !this.disabled) {
393
+ this._dropdownService.closeMenus();
394
+ }
395
+ });
396
+ }
397
+ onSpaceKeydown($event) {
398
+ this.stopImmediatePropagationIfDisabled($event);
399
+ }
400
+ onEnterKeydown($event) {
401
+ this.stopImmediatePropagationIfDisabled($event);
402
+ }
403
+ stopImmediatePropagationIfDisabled($event) {
404
+ if (this.disabled) {
405
+ $event.preventDefault(); // prevent click event
406
+ $event.stopImmediatePropagation();
407
+ }
408
+ }
409
+ findRootDropdown() {
410
+ let rootDropdown = this.dropdown;
411
+ while (rootDropdown.parent) {
412
+ rootDropdown = rootDropdown.parent;
413
+ }
414
+ return rootDropdown;
415
+ }
416
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDropdownItem, deps: [{ token: ClrDropdown }, { token: RootDropdownService }, { token: i1.FocusableItem }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
417
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrDropdownItem, isStandalone: false, selector: "[clrDropdownItem]", inputs: { disabled: ["clrDisabled", "disabled"], dropdownItemId: ["id", "dropdownItemId"] }, host: { listeners: { "click": "onDropdownItemClick()", "keydown.space": "onSpaceKeydown($event)", "keydown.enter": "onEnterKeydown($event)" }, properties: { "class.disabled": "disabled", "class.dropdown-item": "true", "attr.role": "\"menuitem\"", "attr.aria-disabled": "disabled", "attr.id": "dropdownItemId" } }, providers: [BASIC_FOCUSABLE_ITEM_PROVIDER], ngImport: i0 }); }
418
+ }
419
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDropdownItem, decorators: [{
420
+ type: Directive,
421
+ args: [{
422
+ selector: '[clrDropdownItem]',
423
+ host: {
424
+ '[class.disabled]': 'disabled',
425
+ '[class.dropdown-item]': 'true',
426
+ '[attr.role]': '"menuitem"',
427
+ '[attr.aria-disabled]': 'disabled',
428
+ '[attr.id]': 'dropdownItemId',
429
+ },
430
+ providers: [BASIC_FOCUSABLE_ITEM_PROVIDER],
431
+ standalone: false,
432
+ }]
433
+ }], ctorParameters: () => [{ type: ClrDropdown }, { type: RootDropdownService }, { type: i1.FocusableItem }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { disabled: [{
434
+ type: Input,
435
+ args: ['clrDisabled']
436
+ }], dropdownItemId: [{
437
+ type: Input,
438
+ args: ['id']
439
+ }], onDropdownItemClick: [{
440
+ type: HostListener,
441
+ args: ['click']
442
+ }], onSpaceKeydown: [{
443
+ type: HostListener,
444
+ args: ['keydown.space', ['$event']]
445
+ }], onEnterKeydown: [{
446
+ type: HostListener,
447
+ args: ['keydown.enter', ['$event']]
448
+ }] } });
449
+
450
+ /*
451
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
452
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
453
+ * This software is released under MIT license.
454
+ * The full license information can be found in LICENSE in the root directory of this project.
455
+ */
456
+ const CLR_MENU_POSITIONS = [
457
+ 'bottom-left',
458
+ 'bottom-right',
459
+ 'left-bottom',
460
+ 'left-top',
461
+ 'right-bottom',
462
+ 'right-top',
463
+ 'top-left',
464
+ 'top-right',
465
+ ];
466
+
467
+ /*
468
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
469
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
470
+ * This software is released under MIT license.
471
+ * The full license information can be found in LICENSE in the root directory of this project.
472
+ */
473
+ const CLR_DROPDOWN_DIRECTIVES = [ClrDropdown, ClrDropdownMenu, ClrDropdownTrigger, ClrDropdownItem];
474
+ class ClrDropdownModule {
475
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
476
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: ClrDropdownModule, declarations: [ClrDropdown, ClrDropdownMenu, ClrDropdownTrigger, ClrDropdownItem], imports: [CommonModule, ClrIcon, ClrIfOpen$1], exports: [ClrDropdown, ClrDropdownMenu, ClrDropdownTrigger, ClrDropdownItem, ClrIfOpen$1, ClrIcon] }); }
477
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDropdownModule, imports: [CommonModule, ClrIcon] }); }
478
+ }
479
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDropdownModule, decorators: [{
480
+ type: NgModule,
481
+ args: [{
482
+ imports: [CommonModule, ClrIcon, ClrIfOpen$1],
483
+ declarations: [CLR_DROPDOWN_DIRECTIVES],
484
+ exports: [CLR_DROPDOWN_DIRECTIVES, ClrIfOpen$1, ClrIcon],
485
+ }]
486
+ }] });
487
+
488
+ /*
489
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
490
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
491
+ * This software is released under MIT license.
492
+ * The full license information can be found in LICENSE in the root directory of this project.
493
+ */
494
+
495
+ class ClrPopoverService {
496
+ constructor() {
497
+ this.panelClass = [];
498
+ this._open = false;
499
+ this._openChange = new Subject();
500
+ this._openEventChange = new Subject();
501
+ this._positionChange = new Subject();
502
+ this._resetPositions = new Subject();
503
+ this._updatePosition = new Subject();
504
+ this._popoverVisible = new Subject();
505
+ }
506
+ get originElement() {
507
+ return this.origin instanceof ElementRef ? this.origin : null;
508
+ }
509
+ get originPoint() {
510
+ return this.origin && 'x' in this.origin && 'y' in this.origin ? this.origin : null;
511
+ }
512
+ get openChange() {
513
+ return this._openChange.asObservable();
514
+ }
515
+ get popoverVisible() {
516
+ return this._popoverVisible.asObservable();
517
+ }
518
+ get openEvent() {
519
+ return this._openEvent;
520
+ }
521
+ set openEvent(event) {
522
+ this._openEvent = event;
523
+ this._openEventChange.next(event);
524
+ }
525
+ get open() {
526
+ return this._open;
527
+ }
528
+ set open(value) {
529
+ value = !!value;
530
+ if (this._open !== value) {
531
+ this._open = value;
532
+ this._openChange.next(value);
533
+ }
534
+ }
535
+ get resetPositionsChange() {
536
+ return this._resetPositions.asObservable();
537
+ }
538
+ positionChange(position) {
539
+ this._positionChange.next(position);
540
+ }
541
+ updatePositionChange() {
542
+ return this._updatePosition.asObservable();
543
+ }
544
+ getPositionChange() {
545
+ return this._positionChange.asObservable();
546
+ }
547
+ getEventChange() {
548
+ return this._openEventChange.asObservable();
549
+ }
550
+ /**
551
+ * Sometimes, we need to remember the event that triggered the toggling to avoid loops.
552
+ * This is for instance the case of components that open on a click, but close on a click outside.
553
+ */
554
+ toggleWithEvent(event) {
555
+ preventArrowKeyScroll(event);
556
+ this.openEvent = event;
557
+ this.open = !this.open;
558
+ }
559
+ /**
560
+ * Opens the popover at a specific screen coordinate.
561
+ * Useful for context menus where the popover should appear at the cursor position.
562
+ */
563
+ openAtPoint(point) {
564
+ if (this._open) {
565
+ this._open = false;
566
+ this._openChange.next(false);
567
+ }
568
+ this.origin = point;
569
+ this.open = true;
570
+ }
571
+ popoverVisibleEmit(visible) {
572
+ this._popoverVisible.next(visible);
573
+ }
574
+ resetPositions() {
575
+ this._resetPositions.next();
576
+ }
577
+ updatePosition() {
578
+ this._updatePosition.next();
579
+ }
580
+ focusCloseButton() {
581
+ this.closeButtonRef.nativeElement?.focus();
582
+ }
583
+ focusOrigin() {
584
+ this.originElement?.nativeElement?.focus({ preventScroll: true });
585
+ }
586
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
587
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverService }); }
588
+ }
589
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverService, decorators: [{
590
+ type: Injectable
591
+ }] });
592
+
593
+ /*
594
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
595
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
596
+ * This software is released under MIT license.
597
+ * The full license information can be found in LICENSE in the root directory of this project.
598
+ */
599
+ var ClrPopoverType;
600
+ (function (ClrPopoverType) {
601
+ ClrPopoverType[ClrPopoverType["SIGNPOST"] = 0] = "SIGNPOST";
602
+ ClrPopoverType[ClrPopoverType["TOOLTIP"] = 1] = "TOOLTIP";
603
+ ClrPopoverType[ClrPopoverType["DROPDOWN"] = 2] = "DROPDOWN";
604
+ ClrPopoverType[ClrPopoverType["DEFAULT"] = 3] = "DEFAULT";
605
+ })(ClrPopoverType || (ClrPopoverType = {}));
606
+ var ClrPopoverPosition;
607
+ (function (ClrPopoverPosition) {
608
+ ClrPopoverPosition["TOP_RIGHT"] = "top-right";
609
+ ClrPopoverPosition["TOP_MIDDLE"] = "top-middle";
610
+ ClrPopoverPosition["TOP_LEFT"] = "top-left";
611
+ ClrPopoverPosition["RIGHT"] = "right";
612
+ ClrPopoverPosition["RIGHT_TOP"] = "right-top";
613
+ ClrPopoverPosition["RIGHT_MIDDLE"] = "right-middle";
614
+ ClrPopoverPosition["RIGHT_BOTTOM"] = "right-bottom";
615
+ ClrPopoverPosition["LEFT"] = "left";
616
+ ClrPopoverPosition["LEFT_TOP"] = "left-top";
617
+ ClrPopoverPosition["LEFT_MIDDLE"] = "left-middle";
618
+ ClrPopoverPosition["LEFT_BOTTOM"] = "left-bottom";
619
+ ClrPopoverPosition["BOTTOM_RIGHT"] = "bottom-right";
620
+ ClrPopoverPosition["BOTTOM_MIDDLE"] = "bottom-middle";
621
+ ClrPopoverPosition["BOTTOM_LEFT"] = "bottom-left";
622
+ })(ClrPopoverPosition || (ClrPopoverPosition = {}));
623
+ const TOOLTIP_POSITIONS = [
624
+ ClrPopoverPosition.RIGHT, // default. must be at index 0
625
+ ClrPopoverPosition.LEFT,
626
+ ClrPopoverPosition.BOTTOM_RIGHT,
627
+ ClrPopoverPosition.BOTTOM_LEFT,
628
+ ClrPopoverPosition.TOP_RIGHT,
629
+ ClrPopoverPosition.TOP_LEFT,
630
+ ];
631
+ const DROPDOWN_POSITIONS = [
632
+ ClrPopoverPosition.BOTTOM_LEFT, // default. must be at index 0
633
+ ClrPopoverPosition.BOTTOM_RIGHT,
634
+ ClrPopoverPosition.TOP_LEFT,
635
+ ClrPopoverPosition.TOP_RIGHT,
636
+ ClrPopoverPosition.RIGHT_TOP,
637
+ ClrPopoverPosition.RIGHT_BOTTOM,
638
+ ClrPopoverPosition.LEFT_TOP,
639
+ ClrPopoverPosition.LEFT_BOTTOM,
640
+ ];
641
+ const SIGNPOST_POSITIONS = [
642
+ ClrPopoverPosition.RIGHT_MIDDLE, // default. must be at index 0
643
+ ClrPopoverPosition.RIGHT_TOP,
644
+ ClrPopoverPosition.RIGHT_BOTTOM,
645
+ ClrPopoverPosition.TOP_RIGHT,
646
+ ClrPopoverPosition.TOP_LEFT,
647
+ ClrPopoverPosition.TOP_MIDDLE,
648
+ ClrPopoverPosition.BOTTOM_RIGHT,
649
+ ClrPopoverPosition.BOTTOM_MIDDLE,
650
+ ClrPopoverPosition.BOTTOM_LEFT,
651
+ ClrPopoverPosition.LEFT_BOTTOM,
652
+ ClrPopoverPosition.LEFT_MIDDLE,
653
+ ClrPopoverPosition.LEFT_TOP,
654
+ ];
655
+ function getPositionsArray(type) {
656
+ switch (type) {
657
+ case ClrPopoverType.TOOLTIP:
658
+ return TOOLTIP_POSITIONS;
659
+ case ClrPopoverType.DROPDOWN:
660
+ return DROPDOWN_POSITIONS;
661
+ case ClrPopoverType.SIGNPOST:
662
+ case ClrPopoverType.DEFAULT:
663
+ default:
664
+ return SIGNPOST_POSITIONS;
665
+ }
666
+ }
667
+ function getConnectedPositions(type) {
668
+ const result = [];
669
+ getPositionsArray(type).forEach(position => {
670
+ result.push(mapPopoverKeyToPosition(position, type));
671
+ });
672
+ return result;
673
+ }
674
+ const POPOVER_OFFSETS = {
675
+ [ClrPopoverType.SIGNPOST]: 16,
676
+ [ClrPopoverType.TOOLTIP]: 21,
677
+ [ClrPopoverType.DROPDOWN]: 2,
678
+ [ClrPopoverType.DEFAULT]: 0,
679
+ };
680
+ function getOffset(key, type) {
681
+ const offset = POPOVER_OFFSETS[type] || 0;
682
+ switch (key) {
683
+ // TOP
684
+ case ClrPopoverPosition.TOP_LEFT:
685
+ case ClrPopoverPosition.TOP_MIDDLE:
686
+ case ClrPopoverPosition.TOP_RIGHT:
687
+ return {
688
+ offsetY: -offset,
689
+ offsetX: 0,
690
+ };
691
+ // LEFT
692
+ case ClrPopoverPosition.LEFT_TOP:
693
+ case ClrPopoverPosition.LEFT_MIDDLE:
694
+ case ClrPopoverPosition.LEFT:
695
+ case ClrPopoverPosition.LEFT_BOTTOM:
696
+ return {
697
+ offsetY: 0,
698
+ offsetX: -offset,
699
+ };
700
+ // RIGHT
701
+ case ClrPopoverPosition.RIGHT_TOP:
702
+ case ClrPopoverPosition.RIGHT_MIDDLE:
703
+ case ClrPopoverPosition.RIGHT:
704
+ case ClrPopoverPosition.RIGHT_BOTTOM:
705
+ return {
706
+ offsetY: 0,
707
+ offsetX: offset,
708
+ };
709
+ // BOTTOM and DEFAULT
710
+ case ClrPopoverPosition.BOTTOM_RIGHT:
711
+ case ClrPopoverPosition.BOTTOM_MIDDLE:
712
+ case ClrPopoverPosition.BOTTOM_LEFT:
713
+ default:
714
+ return {
715
+ offsetY: offset,
716
+ offsetX: 0,
717
+ };
718
+ }
719
+ }
720
+ const STANDARD_ORIGINS = {
721
+ // TOP
722
+ [ClrPopoverPosition.TOP_RIGHT]: { origin: ClrPosition.TOP_CENTER, content: ClrPosition.BOTTOM_LEFT },
723
+ [ClrPopoverPosition.TOP_MIDDLE]: { origin: ClrPosition.TOP_CENTER, content: ClrPosition.BOTTOM_CENTER },
724
+ [ClrPopoverPosition.TOP_LEFT]: { origin: ClrPosition.TOP_CENTER, content: ClrPosition.BOTTOM_RIGHT },
725
+ // LEFT
726
+ [ClrPopoverPosition.LEFT]: { origin: ClrPosition.LEFT_CENTER, content: ClrPosition.RIGHT_TOP },
727
+ [ClrPopoverPosition.LEFT_TOP]: { origin: ClrPosition.LEFT_CENTER, content: ClrPosition.RIGHT_BOTTOM },
728
+ [ClrPopoverPosition.LEFT_MIDDLE]: { origin: ClrPosition.LEFT_CENTER, content: ClrPosition.RIGHT_CENTER },
729
+ [ClrPopoverPosition.LEFT_BOTTOM]: { origin: ClrPosition.LEFT_CENTER, content: ClrPosition.RIGHT_TOP },
730
+ // RIGHT
731
+ [ClrPopoverPosition.RIGHT]: { origin: ClrPosition.RIGHT_CENTER, content: ClrPosition.LEFT_TOP },
732
+ [ClrPopoverPosition.RIGHT_TOP]: { origin: ClrPosition.RIGHT_CENTER, content: ClrPosition.LEFT_BOTTOM },
733
+ [ClrPopoverPosition.RIGHT_MIDDLE]: { origin: ClrPosition.RIGHT_CENTER, content: ClrPosition.LEFT_CENTER },
734
+ [ClrPopoverPosition.RIGHT_BOTTOM]: { origin: ClrPosition.RIGHT_CENTER, content: ClrPosition.LEFT_TOP },
735
+ // BOTTOM
736
+ [ClrPopoverPosition.BOTTOM_RIGHT]: { origin: ClrPosition.BOTTOM_CENTER, content: ClrPosition.TOP_LEFT },
737
+ [ClrPopoverPosition.BOTTOM_MIDDLE]: { origin: ClrPosition.BOTTOM_CENTER, content: ClrPosition.TOP_CENTER },
738
+ [ClrPopoverPosition.BOTTOM_LEFT]: { origin: ClrPosition.BOTTOM_CENTER, content: ClrPosition.TOP_RIGHT },
739
+ };
740
+ const DROPDOWN_ORIGINS = {
741
+ // TOP
742
+ [ClrPopoverPosition.TOP_RIGHT]: { origin: ClrPosition.TOP_RIGHT, content: ClrPosition.BOTTOM_RIGHT },
743
+ [ClrPopoverPosition.TOP_LEFT]: { origin: ClrPosition.TOP_LEFT, content: ClrPosition.BOTTOM_LEFT },
744
+ // LEFT
745
+ [ClrPopoverPosition.LEFT_TOP]: { origin: ClrPosition.LEFT_TOP, content: ClrPosition.TOP_RIGHT },
746
+ [ClrPopoverPosition.LEFT_BOTTOM]: { origin: ClrPosition.LEFT_BOTTOM, content: ClrPosition.BOTTOM_RIGHT },
747
+ // RIGHT
748
+ [ClrPopoverPosition.RIGHT_TOP]: { origin: ClrPosition.RIGHT_TOP, content: ClrPosition.LEFT_TOP },
749
+ [ClrPopoverPosition.RIGHT_BOTTOM]: { origin: ClrPosition.RIGHT_BOTTOM, content: ClrPosition.LEFT_BOTTOM },
750
+ // BOTTOM
751
+ [ClrPopoverPosition.BOTTOM_RIGHT]: { origin: ClrPosition.BOTTOM_LEFT, content: ClrPosition.TOP_RIGHT },
752
+ [ClrPopoverPosition.BOTTOM_LEFT]: { origin: ClrPosition.BOTTOM_RIGHT, content: ClrPosition.TOP_LEFT },
753
+ };
754
+ function mapPopoverKeyToPosition(key, type) {
755
+ let offset = getOffset(key, type);
756
+ const defaultPosition = { origin: ClrPosition.BOTTOM_LEFT, content: ClrPosition.TOP_LEFT };
757
+ const { origin, content } = (type === ClrPopoverType.DROPDOWN ? DROPDOWN_ORIGINS[key] : STANDARD_ORIGINS[key]) ?? defaultPosition;
758
+ return {
759
+ ...getOriginPosition(origin),
760
+ ...getContentPosition(content),
761
+ ...offset,
762
+ panelClass: key,
763
+ };
764
+ }
765
+ function getOriginPosition(key) {
766
+ switch (key) {
767
+ // TOP Positions
768
+ case ClrPosition.TOP_LEFT:
769
+ return {
770
+ originX: 'start',
771
+ originY: 'top',
772
+ };
773
+ case ClrPosition.TOP_CENTER:
774
+ return {
775
+ originX: 'center',
776
+ originY: 'top',
777
+ };
778
+ case ClrPosition.TOP_RIGHT:
779
+ return {
780
+ originX: 'end',
781
+ originY: 'top',
782
+ };
783
+ // LEFT Positions
784
+ case ClrPosition.LEFT_TOP:
785
+ return {
786
+ originX: 'start',
787
+ originY: 'top',
788
+ };
789
+ case ClrPosition.LEFT_CENTER:
790
+ return {
791
+ originX: 'start',
792
+ originY: 'center',
793
+ };
794
+ case ClrPosition.LEFT_BOTTOM:
795
+ return {
796
+ originX: 'start',
797
+ originY: 'bottom',
798
+ };
799
+ // RIGHT Positions
800
+ case ClrPosition.RIGHT_TOP:
801
+ return {
802
+ originX: 'end',
803
+ originY: 'top',
804
+ };
805
+ case ClrPosition.RIGHT_CENTER:
806
+ return {
807
+ originX: 'end',
808
+ originY: 'center',
809
+ };
810
+ case ClrPosition.RIGHT_BOTTOM:
811
+ return {
812
+ originX: 'end',
813
+ originY: 'bottom',
814
+ };
815
+ // BOTTOM positions and default
816
+ case ClrPosition.BOTTOM_LEFT:
817
+ return {
818
+ originX: 'end',
819
+ originY: 'bottom',
820
+ };
821
+ case ClrPosition.BOTTOM_CENTER:
822
+ return {
823
+ originX: 'center',
824
+ originY: 'bottom',
825
+ };
826
+ case ClrPosition.BOTTOM_RIGHT:
827
+ default:
828
+ return {
829
+ originX: 'start',
830
+ originY: 'bottom',
831
+ };
832
+ }
833
+ }
834
+ function getContentPosition(key) {
835
+ switch (key) {
836
+ // TOP Positions
837
+ case ClrPosition.TOP_LEFT:
838
+ return {
839
+ overlayX: 'start',
840
+ overlayY: 'top',
841
+ };
842
+ case ClrPosition.TOP_CENTER:
843
+ return {
844
+ overlayX: 'center',
845
+ overlayY: 'top',
846
+ };
847
+ case ClrPosition.TOP_RIGHT:
848
+ return {
849
+ overlayX: 'end',
850
+ overlayY: 'top',
851
+ };
852
+ // LEFT Positions
853
+ case ClrPosition.LEFT_TOP:
854
+ return {
855
+ overlayX: 'start',
856
+ overlayY: 'top',
857
+ };
858
+ case ClrPosition.LEFT_CENTER:
859
+ return {
860
+ overlayX: 'start',
861
+ overlayY: 'center',
862
+ };
863
+ case ClrPosition.LEFT_BOTTOM:
864
+ return {
865
+ overlayX: 'start',
866
+ overlayY: 'bottom',
867
+ };
868
+ // RIGHT Positions
869
+ case ClrPosition.RIGHT_TOP:
870
+ return {
871
+ overlayX: 'end',
872
+ overlayY: 'top',
873
+ };
874
+ case ClrPosition.RIGHT_CENTER:
875
+ return {
876
+ overlayX: 'end',
877
+ overlayY: 'center',
878
+ };
879
+ case ClrPosition.RIGHT_BOTTOM:
880
+ return {
881
+ overlayX: 'end',
882
+ overlayY: 'bottom',
883
+ };
884
+ // BOTTOM positions and default
885
+ case ClrPosition.BOTTOM_LEFT:
886
+ return {
887
+ overlayX: 'start',
888
+ overlayY: 'bottom',
889
+ };
890
+ case ClrPosition.BOTTOM_CENTER:
891
+ return {
892
+ overlayX: 'center',
893
+ overlayY: 'bottom',
894
+ };
895
+ case ClrPosition.BOTTOM_RIGHT:
896
+ default:
897
+ return {
898
+ overlayX: 'end',
899
+ overlayY: 'bottom',
900
+ };
901
+ }
902
+ }
903
+
904
+ /*
905
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
906
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
907
+ * This software is released under MIT license.
908
+ * The full license information can be found in LICENSE in the root directory of this project.
909
+ */
910
+ /** @dynamic */
911
+ class ClrPopoverContent {
912
+ constructor(element, container, template, overlayContainer, parent, overlay, popoverService, zone, platformId) {
913
+ this.container = container;
914
+ this.template = template;
915
+ this.parent = parent;
916
+ this.overlay = overlay;
917
+ this.popoverService = popoverService;
918
+ this.zone = zone;
919
+ this.platformId = platformId;
920
+ this._outsideClickClose = true;
921
+ this._scrollToClose = false;
922
+ this.popoverType = ClrPopoverType.DEFAULT;
923
+ this._availablePositions = [];
924
+ this._position = ClrPopoverPosition.BOTTOM_LEFT;
925
+ this.scrollableParents = [];
926
+ this.subscriptions = [];
927
+ this.preferredPositionIsSet = false;
928
+ this.availablePositionsAreSet = false;
929
+ this._preferredPosition = {
930
+ originX: 'start',
931
+ originY: 'top',
932
+ overlayX: 'end',
933
+ overlayY: 'top',
934
+ panelClass: ClrPopoverPosition.LEFT_TOP,
935
+ };
936
+ popoverService.panelClass.push('clr-popover-content');
937
+ overlayContainer.getContainerElement().classList.add('clr-overlay-container');
938
+ if (!template) {
939
+ this.elementRef = element;
940
+ }
941
+ }
942
+ set open(value) {
943
+ this.popoverService.open = !!value;
944
+ }
945
+ get contentAt() {
946
+ return this.preferredPositionIsSet ? this._preferredPosition : this._position;
947
+ }
948
+ set contentAt(position) {
949
+ if (typeof position === 'string') {
950
+ if (!position || Object.values(ClrPopoverPosition).indexOf(position) === -1) {
951
+ return;
952
+ }
953
+ // set the popover values based on menu position
954
+ this._position = position;
955
+ this.popoverService.positionChange(this._position);
956
+ }
957
+ else {
958
+ this.preferredPositionIsSet = true;
959
+ this._preferredPosition = position;
960
+ }
961
+ }
962
+ set availablePositions(positions) {
963
+ this.availablePositionsAreSet = true;
964
+ this._availablePositions = positions;
965
+ }
966
+ set contentType(type) {
967
+ this.popoverType = type;
968
+ if (!this.availablePositionsAreSet) {
969
+ this._availablePositions = getConnectedPositions(type);
970
+ }
971
+ }
972
+ get outsideClickClose() {
973
+ return this._outsideClickClose;
974
+ }
975
+ set outsideClickClose(clickToClose) {
976
+ this._outsideClickClose = !!clickToClose;
977
+ }
978
+ get scrollToClose() {
979
+ return this._scrollToClose;
980
+ }
981
+ set scrollToClose(scrollToClose) {
982
+ this._scrollToClose = !!scrollToClose;
983
+ }
984
+ set contentOrigin(origin) {
985
+ if (origin instanceof Element) {
986
+ this.popoverService.origin = new ElementRef(origin);
987
+ }
988
+ else {
989
+ this.popoverService.origin = origin;
990
+ }
991
+ }
992
+ get positionStrategy() {
993
+ return this.overlay
994
+ .position()
995
+ .flexibleConnectedTo(this.popoverService.origin)
996
+ .setOrigin(this.popoverService.origin)
997
+ .withPush(true)
998
+ .withPositions([this.preferredPosition, ...this._availablePositions])
999
+ .withFlexibleDimensions(true);
1000
+ }
1001
+ get preferredPosition() {
1002
+ if (this.preferredPositionIsSet) {
1003
+ return this._preferredPosition;
1004
+ }
1005
+ // Default position is "bottom-left"
1006
+ return mapPopoverKeyToPosition(this._position, this.popoverType);
1007
+ }
1008
+ ngAfterViewInit() {
1009
+ if (this.popoverService.open) {
1010
+ this.showOverlay();
1011
+ }
1012
+ this.openCloseSubscription = this.popoverService.openChange.subscribe(change => {
1013
+ if (change) {
1014
+ this.showOverlay();
1015
+ }
1016
+ else {
1017
+ this.closePopover();
1018
+ }
1019
+ });
1020
+ }
1021
+ ngOnDestroy() {
1022
+ this.removeOverlay();
1023
+ this.openCloseSubscription?.unsubscribe();
1024
+ }
1025
+ _createOverlayRef() {
1026
+ this.overlayRef = this.overlay.create(new OverlayConfig({
1027
+ // This is where we can pass externally facing inputs into the angular overlay API, and essentially proxy behaviors our users want directly to the CDK if they have them.
1028
+ positionStrategy: this.positionStrategy,
1029
+ // the scrolling behaviour is controlled by this popover content directive
1030
+ scrollStrategy: this.overlay.scrollStrategies.noop(),
1031
+ panelClass: this.popoverService.panelClass,
1032
+ hasBackdrop: false,
1033
+ }));
1034
+ this.subscriptions.push(merge(this.popoverService.resetPositionsChange, this.popoverService.getPositionChange()).subscribe(() => {
1035
+ this.resetPosition();
1036
+ }), this.popoverService.updatePositionChange().subscribe(() => {
1037
+ this.overlayRef?.updatePosition();
1038
+ }), this.overlayRef.keydownEvents().subscribe(event => {
1039
+ if (event && event.key && event.key === Keys.Escape && !hasModifierKey(event)) {
1040
+ event.preventDefault();
1041
+ this.closePopover();
1042
+ }
1043
+ }), this.popoverService.originPoint
1044
+ ? this.createPointBasedOutsideClickSubscription()
1045
+ : this.createElementBasedOutsideClickSubscription());
1046
+ }
1047
+ /**
1048
+ * Point-based origins (context menus) delay the subscription to avoid the
1049
+ * mouseup from the same right-click that opened the popover.
1050
+ */
1051
+ createPointBasedOutsideClickSubscription() {
1052
+ return timer(500)
1053
+ .pipe(switchMap(() => this.overlayRef.outsidePointerEvents()))
1054
+ .subscribe(event => {
1055
+ if (this.elementRef?.nativeElement?.contains(event.target)) {
1056
+ return;
1057
+ }
1058
+ if (this._outsideClickClose) {
1059
+ this.closePopover();
1060
+ }
1061
+ });
1062
+ }
1063
+ /**
1064
+ * Element-based origins close on outside clicks and suppress toggle-button
1065
+ * re-clicks so the popover doesn't immediately reopen.
1066
+ */
1067
+ createElementBasedOutsideClickSubscription() {
1068
+ return this.overlayRef.outsidePointerEvents().subscribe(event => {
1069
+ // web components (cds-icon) register as outside pointer events, so if the event target is inside the content panel return early
1070
+ if (this.elementRef?.nativeElement?.contains(event.target)) {
1071
+ return;
1072
+ }
1073
+ // Check if the same element that opened the popover is the same element triggering the outside pointer events (toggle button)
1074
+ const isToggleButton = this.popoverService.openEvent &&
1075
+ (this.popoverService.openEvent.target.contains(event.target) ||
1076
+ this.popoverService.openEvent.target.parentElement.contains(event.target) ||
1077
+ this.popoverService.openEvent.target === event.target);
1078
+ if (isToggleButton) {
1079
+ event.stopPropagation();
1080
+ }
1081
+ if (this._outsideClickClose || isToggleButton) {
1082
+ this.closePopover();
1083
+ }
1084
+ });
1085
+ }
1086
+ resetPosition() {
1087
+ if (this.overlayRef) {
1088
+ this.overlayRef.updatePositionStrategy(this.positionStrategy);
1089
+ this.overlayRef.updatePosition();
1090
+ }
1091
+ }
1092
+ closePopover() {
1093
+ if (!this.overlayRef) {
1094
+ return;
1095
+ }
1096
+ this.removeOverlay();
1097
+ this.popoverService.open = false;
1098
+ if (this.popoverService.originElement) {
1099
+ const shouldFocusTrigger = this.popoverType !== ClrPopoverType.TOOLTIP &&
1100
+ (document.activeElement === document.body ||
1101
+ document.activeElement === this.popoverService.originElement.nativeElement);
1102
+ if (shouldFocusTrigger) {
1103
+ this.popoverService.focusOrigin();
1104
+ }
1105
+ }
1106
+ }
1107
+ showOverlay() {
1108
+ if (!this.overlayRef) {
1109
+ this._createOverlayRef();
1110
+ }
1111
+ if (!this.view && this.template) {
1112
+ this.view = this.container.createEmbeddedView(this.template);
1113
+ if (!this.elementRef) {
1114
+ const [rootNode] = this.view.rootNodes;
1115
+ this.elementRef = new ElementRef(rootNode); // So we know where/what to set close focus on
1116
+ }
1117
+ }
1118
+ if (!this.domPortal) {
1119
+ this.domPortal = new DomPortal(this.elementRef);
1120
+ this.overlayRef.attach(this.domPortal);
1121
+ }
1122
+ if (this.popoverService.originElement) {
1123
+ this.popoverService.originElement.nativeElement.scrollIntoView({
1124
+ behavior: 'instant',
1125
+ block: 'nearest',
1126
+ inline: 'nearest',
1127
+ });
1128
+ this.setupIntersectionObserver();
1129
+ }
1130
+ setTimeout(() => {
1131
+ // Get Scrollable Parents
1132
+ this.listenToScrollEvents();
1133
+ this.popoverService.popoverVisibleEmit(true);
1134
+ if (this.elementRef?.nativeElement?.focus) {
1135
+ this.elementRef.nativeElement.focus();
1136
+ }
1137
+ });
1138
+ }
1139
+ removeOverlay() {
1140
+ this.subscriptions.forEach(s => s.unsubscribe());
1141
+ this.subscriptions = [];
1142
+ if (this.overlayRef?.hasAttached()) {
1143
+ this.overlayRef.detach();
1144
+ this.overlayRef.dispose();
1145
+ }
1146
+ if (this.domPortal?.isAttached) {
1147
+ this.domPortal.detach();
1148
+ }
1149
+ if (this.view) {
1150
+ this.view.destroy();
1151
+ }
1152
+ this.overlayRef = null;
1153
+ this.domPortal = null;
1154
+ if (this.template) {
1155
+ this.elementRef = null;
1156
+ }
1157
+ this.view = null;
1158
+ this.intersectionObserver?.disconnect();
1159
+ this.intersectionObserver = null;
1160
+ this.popoverService.popoverVisibleEmit(false);
1161
+ }
1162
+ getScrollableParents(node) {
1163
+ let parent = node;
1164
+ const overflowScrollKeys = ['auto', 'scroll', 'clip'];
1165
+ const scrollableParents = [window.document];
1166
+ while (parent && !(parent instanceof HTMLHtmlElement)) {
1167
+ if (parent instanceof ShadowRoot) {
1168
+ parent = parent.host;
1169
+ }
1170
+ const { overflowY, overflowX } = window.getComputedStyle(parent);
1171
+ if (overflowScrollKeys.includes(overflowY) || overflowScrollKeys.includes(overflowX)) {
1172
+ scrollableParents.push(parent);
1173
+ }
1174
+ parent = parent.parentNode;
1175
+ }
1176
+ return scrollableParents;
1177
+ }
1178
+ /**
1179
+ * Uses IntersectionObserver to detect when the origin element leaves the screen.
1180
+ * This handles the "Close on Scroll" logic much cheaper than getBoundingClientRect.
1181
+ */
1182
+ setupIntersectionObserver() {
1183
+ if (!this.popoverService.originElement || this.intersectionObserver) {
1184
+ return;
1185
+ }
1186
+ this.intersectionObserver = new IntersectionObserver(entries => {
1187
+ entries.forEach(entry => {
1188
+ // If the origin is no longer visible (scrolled out of view)
1189
+ if (!entry.isIntersecting && this.popoverService.open) {
1190
+ this.zone.run(() => this.closePopover());
1191
+ }
1192
+ });
1193
+ }, { root: null, threshold: 0.8 });
1194
+ this.intersectionObserver.observe(this.popoverService.originElement.nativeElement);
1195
+ }
1196
+ listenToScrollEvents() {
1197
+ if (!isPlatformBrowser(this.platformId)) {
1198
+ return;
1199
+ }
1200
+ if (this.popoverService.originPoint) {
1201
+ this.listenToScrollForPointOrigin();
1202
+ }
1203
+ else {
1204
+ this.listenToScrollForElementOrigin();
1205
+ }
1206
+ }
1207
+ // Point origins have no scrollable parent chain — close on any scroll.
1208
+ listenToScrollForPointOrigin() {
1209
+ this.zone.runOutsideAngular(() => {
1210
+ this.subscriptions.push(fromEvent(window, 'scroll', { passive: true, capture: true }).subscribe(() => {
1211
+ this.zone.run(() => this.closePopover());
1212
+ }));
1213
+ });
1214
+ }
1215
+ // Element origins track ancestor scroll containers to reposition or close.
1216
+ listenToScrollForElementOrigin() {
1217
+ const originEl = this.getRootPopover(this)?.popoverService?.originElement?.nativeElement;
1218
+ const scrollableParents = this.getScrollableParents(originEl);
1219
+ this.zone.runOutsideAngular(() => {
1220
+ this.subscriptions.push(merge(...scrollableParents.map(parent => fromEvent(parent, 'scroll', { passive: true }))).subscribe(() => {
1221
+ if (this._scrollToClose) {
1222
+ this.zone.run(() => this.closePopover());
1223
+ return;
1224
+ }
1225
+ this.overlayRef?.updatePosition();
1226
+ }));
1227
+ });
1228
+ }
1229
+ getRootPopover(popover) {
1230
+ if (popover && popover.parent) {
1231
+ return this.getRootPopover(popover.parent);
1232
+ }
1233
+ return popover;
1234
+ }
1235
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverContent, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef, optional: true }, { token: i1$1.OverlayContainer }, { token: ClrPopoverContent, optional: true, skipSelf: true }, { token: i1$1.Overlay }, { token: ClrPopoverService }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
1236
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrPopoverContent, isStandalone: true, selector: "[clrPopoverContent]", inputs: { open: ["clrPopoverContent", "open"], contentAt: ["clrPopoverContentAt", "contentAt"], availablePositions: ["clrPopoverContentAvailablePositions", "availablePositions"], contentType: ["clrPopoverContentType", "contentType"], outsideClickClose: ["clrPopoverContentOutsideClickToClose", "outsideClickClose"], scrollToClose: ["clrPopoverContentScrollToClose", "scrollToClose"], contentOrigin: ["clrPopoverContentOrigin", "contentOrigin"] }, ngImport: i0 }); }
1237
+ }
1238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverContent, decorators: [{
1239
+ type: Directive,
1240
+ args: [{
1241
+ selector: '[clrPopoverContent]',
1242
+ }]
1243
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef, decorators: [{
1244
+ type: Optional
1245
+ }] }, { type: i1$1.OverlayContainer }, { type: ClrPopoverContent, decorators: [{
1246
+ type: Optional
1247
+ }, {
1248
+ type: SkipSelf
1249
+ }] }, { type: i1$1.Overlay }, { type: ClrPopoverService, decorators: [{
1250
+ type: Inject,
1251
+ args: [ClrPopoverService]
1252
+ }] }, { type: i0.NgZone }, { type: undefined, decorators: [{
1253
+ type: Inject,
1254
+ args: [PLATFORM_ID]
1255
+ }] }], propDecorators: { open: [{
1256
+ type: Input,
1257
+ args: ['clrPopoverContent']
1258
+ }], contentAt: [{
1259
+ type: Input,
1260
+ args: ['clrPopoverContentAt']
1261
+ }], availablePositions: [{
1262
+ type: Input,
1263
+ args: ['clrPopoverContentAvailablePositions']
1264
+ }], contentType: [{
1265
+ type: Input,
1266
+ args: ['clrPopoverContentType']
1267
+ }], outsideClickClose: [{
1268
+ type: Input,
1269
+ args: ['clrPopoverContentOutsideClickToClose']
1270
+ }], scrollToClose: [{
1271
+ type: Input,
1272
+ args: ['clrPopoverContentScrollToClose']
1273
+ }], contentOrigin: [{
1274
+ type: Input,
1275
+ args: ['clrPopoverContentOrigin']
1276
+ }] } });
1277
+
1278
+ /*
1279
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1280
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1281
+ * This software is released under MIT license.
1282
+ * The full license information can be found in LICENSE in the root directory of this project.
1283
+ */
1284
+ class ClrPopoverOrigin {
1285
+ constructor(popoverService, element) {
1286
+ popoverService.origin = element;
1287
+ }
1288
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverOrigin, deps: [{ token: ClrPopoverService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1289
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrPopoverOrigin, isStandalone: false, selector: "[clrPopoverOrigin]", host: { properties: { "class.clr-popover-origin": "true" } }, ngImport: i0 }); }
1290
+ }
1291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverOrigin, decorators: [{
1292
+ type: Directive,
1293
+ args: [{
1294
+ selector: '[clrPopoverOrigin]',
1295
+ host: {
1296
+ '[class.clr-popover-origin]': 'true',
1297
+ },
1298
+ standalone: false,
1299
+ }]
1300
+ }], ctorParameters: () => [{ type: ClrPopoverService }, { type: i0.ElementRef }] });
1301
+
1302
+ /*
1303
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1304
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1305
+ * This software is released under MIT license.
1306
+ * The full license information can be found in LICENSE in the root directory of this project.
1307
+ */
1308
+ const POPOVER_HOST_ORIGIN = new InjectionToken('POPOVER_HOST_ORIGIN');
1309
+
1310
+ /*
1311
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1312
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1313
+ * This software is released under MIT license.
1314
+ * The full license information can be found in LICENSE in the root directory of this project.
1315
+ */
1316
+ class ClrStopEscapePropagationDirective {
1317
+ constructor(popoverService) {
1318
+ this.popoverService = popoverService;
1319
+ this.lastOpenChange = null;
1320
+ }
1321
+ ngOnInit() {
1322
+ this.subscription = this.popoverService.openChange.subscribe(open => {
1323
+ this.lastOpenChange = open;
1324
+ });
1325
+ }
1326
+ ngOnDestroy() {
1327
+ this.subscription?.unsubscribe();
1328
+ }
1329
+ onEscapeKey(event) {
1330
+ if (this.lastOpenChange !== null) {
1331
+ if (this.lastOpenChange === false) {
1332
+ event.stopPropagation();
1333
+ }
1334
+ this.lastOpenChange = null;
1335
+ }
1336
+ }
1337
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrStopEscapePropagationDirective, deps: [{ token: ClrPopoverService }], target: i0.ɵɵFactoryTarget.Directive }); }
1338
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrStopEscapePropagationDirective, isStandalone: true, host: { listeners: { "keyup.escape": "onEscapeKey($event)" } }, ngImport: i0 }); }
1339
+ }
1340
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrStopEscapePropagationDirective, decorators: [{
1341
+ type: Directive,
1342
+ args: [{
1343
+ standalone: true,
1344
+ }]
1345
+ }], ctorParameters: () => [{ type: ClrPopoverService }], propDecorators: { onEscapeKey: [{
1346
+ type: HostListener,
1347
+ args: ['keyup.escape', ['$event']]
1348
+ }] } });
1349
+
1350
+ /*
1351
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1352
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1353
+ * This software is released under MIT license.
1354
+ * The full license information can be found in LICENSE in the root directory of this project.
1355
+ */
1356
+ class ClrPopoverHostDirective {
1357
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverHostDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1358
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrPopoverHostDirective, isStandalone: true, providers: [ClrPopoverService, { provide: POPOVER_HOST_ORIGIN, useExisting: ElementRef }], hostDirectives: [{ directive: ClrStopEscapePropagationDirective }], ngImport: i0 }); }
1359
+ }
1360
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverHostDirective, decorators: [{
1361
+ type: Directive,
1362
+ args: [{
1363
+ standalone: true,
1364
+ providers: [ClrPopoverService, { provide: POPOVER_HOST_ORIGIN, useExisting: ElementRef }],
1365
+ hostDirectives: [ClrStopEscapePropagationDirective],
1366
+ }]
1367
+ }] });
1368
+
1369
+ /*
1370
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1371
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1372
+ * This software is released under MIT license.
1373
+ * The full license information can be found in LICENSE in the root directory of this project.
1374
+ */
1375
+ /**********
1376
+ *
1377
+ * @class ClrIfOpen
1378
+ *
1379
+ * @description
1380
+ * A structural directive that controls whether or not the associated TemplateRef is instantiated or not.
1381
+ * It makes use of a Component instance level service: ClrPopoverService to maintain state between itself and the component
1382
+ * using it in the component template.
1383
+ *
1384
+ */
1385
+ class ClrIfOpen {
1386
+ constructor(popoverService, template, container) {
1387
+ this.popoverService = popoverService;
1388
+ this.template = template;
1389
+ this.container = container;
1390
+ /**********
1391
+ * @property openChange
1392
+ *
1393
+ * @description
1394
+ * An event emitter that emits when the open property is set to allow for 2way binding when the directive is
1395
+ * used with de-structured / de-sugared syntax.
1396
+ */
1397
+ this.openChange = new EventEmitter(false);
1398
+ this.subscriptions = [];
1399
+ this.subscriptions.push(popoverService.openChange.subscribe(change => {
1400
+ // OPEN before overlay is built
1401
+ if (change) {
1402
+ container.createEmbeddedView(template);
1403
+ this.openChange.emit(change);
1404
+ }
1405
+ }), popoverService.popoverVisible.subscribe(change => {
1406
+ // CLOSE after overlay is destroyed
1407
+ if (!change) {
1408
+ container.clear();
1409
+ this.openChange.emit(change);
1410
+ }
1411
+ }));
1412
+ }
1413
+ /**
1414
+ * @description
1415
+ * A property that gets/sets ClrPopoverService.open with value.
1416
+ */
1417
+ get open() {
1418
+ return this.popoverService.open;
1419
+ }
1420
+ set open(value) {
1421
+ this.popoverService.open = value;
1422
+ }
1423
+ ngOnDestroy() {
1424
+ this.subscriptions.forEach(sub => sub.unsubscribe());
1425
+ }
1426
+ /**
1427
+ * @description
1428
+ * Function that takes a boolean value and either created an embedded view for the associated ViewContainerRef or,
1429
+ * Clears all views from the ViewContainerRef
1430
+ *
1431
+ * @param value
1432
+ */
1433
+ updateView(value) {
1434
+ if (value) {
1435
+ this.container.createEmbeddedView(this.template);
1436
+ }
1437
+ else {
1438
+ this.container.clear();
1439
+ }
1440
+ }
1441
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrIfOpen, deps: [{ token: ClrPopoverService }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1442
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrIfOpen, isStandalone: true, selector: "[clrIfOpen]", inputs: { open: ["clrIfOpen", "open"] }, outputs: { openChange: "clrIfOpenChange" }, ngImport: i0 }); }
1443
+ }
1444
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrIfOpen, decorators: [{
1445
+ type: Directive,
1446
+ args: [{
1447
+ selector: '[clrIfOpen]',
1448
+ }]
1449
+ }], ctorParameters: () => [{ type: ClrPopoverService }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { openChange: [{
1450
+ type: Output,
1451
+ args: ['clrIfOpenChange']
1452
+ }], open: [{
1453
+ type: Input,
1454
+ args: ['clrIfOpen']
1455
+ }] } });
1456
+
1457
+ /*
1458
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1459
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1460
+ * This software is released under MIT license.
1461
+ * The full license information can be found in LICENSE in the root directory of this project.
1462
+ */
1463
+ class ClrPopoverCloseButton {
1464
+ constructor(elementRef, popoverService) {
1465
+ this.elementRef = elementRef;
1466
+ this.popoverService = popoverService;
1467
+ this.closeChange = new EventEmitter();
1468
+ this.subscriptions = [];
1469
+ this.subscriptions.push(popoverService.openChange.pipe(filter(value => !value)).subscribe(() => {
1470
+ this.closeChange.emit();
1471
+ }));
1472
+ }
1473
+ handleClick(event) {
1474
+ this.popoverService.toggleWithEvent(event);
1475
+ this.popoverService.focusOrigin();
1476
+ }
1477
+ ngAfterViewInit() {
1478
+ this.popoverService.closeButtonRef = this.elementRef;
1479
+ }
1480
+ ngOnDestroy() {
1481
+ this.subscriptions.forEach(sub => sub.unsubscribe());
1482
+ }
1483
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverCloseButton, deps: [{ token: i0.ElementRef }, { token: ClrPopoverService }], target: i0.ɵɵFactoryTarget.Directive }); }
1484
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrPopoverCloseButton, isStandalone: false, selector: "[clrPopoverCloseButton]", outputs: { closeChange: "clrPopoverOnCloseChange" }, host: { listeners: { "click": "handleClick($event)" }, properties: { "class.clr-smart-close-button": "true" } }, ngImport: i0 }); }
1485
+ }
1486
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverCloseButton, decorators: [{
1487
+ type: Directive,
1488
+ args: [{
1489
+ selector: '[clrPopoverCloseButton]',
1490
+ host: {
1491
+ '[class.clr-smart-close-button]': 'true',
1492
+ },
1493
+ standalone: false,
1494
+ }]
1495
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: ClrPopoverService }], propDecorators: { closeChange: [{
1496
+ type: Output,
1497
+ args: ['clrPopoverOnCloseChange']
1498
+ }], handleClick: [{
1499
+ type: HostListener,
1500
+ args: ['click', ['$event']]
1501
+ }] } });
1502
+
1503
+ /*
1504
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1505
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1506
+ * This software is released under MIT license.
1507
+ * The full license information can be found in LICENSE in the root directory of this project.
1508
+ */
1509
+ class ClrPopoverOpenCloseButton {
1510
+ constructor(popoverService) {
1511
+ this.popoverService = popoverService;
1512
+ this.openCloseChange = new EventEmitter();
1513
+ this.subscriptions = [];
1514
+ this.subscriptions.push(popoverService.openChange.subscribe(change => {
1515
+ this.openCloseChange.emit(change);
1516
+ }));
1517
+ }
1518
+ handleClick(event) {
1519
+ this.popoverService.toggleWithEvent(event);
1520
+ }
1521
+ ngOnDestroy() {
1522
+ this.subscriptions.forEach(sub => sub.unsubscribe());
1523
+ }
1524
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverOpenCloseButton, deps: [{ token: ClrPopoverService }], target: i0.ɵɵFactoryTarget.Directive }); }
1525
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrPopoverOpenCloseButton, isStandalone: false, selector: "[clrPopoverOpenCloseButton]", outputs: { openCloseChange: "clrPopoverOpenCloseChange" }, host: { listeners: { "click": "handleClick($event)" }, properties: { "class.clr-smart-open-close": "true" } }, ngImport: i0 }); }
1526
+ }
1527
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverOpenCloseButton, decorators: [{
1528
+ type: Directive,
1529
+ args: [{
1530
+ selector: '[clrPopoverOpenCloseButton]',
1531
+ host: {
1532
+ '[class.clr-smart-open-close]': 'true',
1533
+ },
1534
+ standalone: false,
1535
+ }]
1536
+ }], ctorParameters: () => [{ type: ClrPopoverService }], propDecorators: { openCloseChange: [{
1537
+ type: Output,
1538
+ args: ['clrPopoverOpenCloseChange']
1539
+ }], handleClick: [{
1540
+ type: HostListener,
1541
+ args: ['click', ['$event']]
1542
+ }] } });
1543
+
1544
+ /*
1545
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1546
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1547
+ * This software is released under MIT license.
1548
+ * The full license information can be found in LICENSE in the root directory of this project.
1549
+ */
1550
+ class ClrPopoverModuleNext {
1551
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverModuleNext, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1552
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverModuleNext, declarations: [ClrPopoverOrigin, ClrPopoverCloseButton, ClrPopoverOpenCloseButton], imports: [ClrPopoverContent, ClrIfOpen], exports: [ClrPopoverOrigin, ClrPopoverCloseButton, ClrPopoverOpenCloseButton, ClrPopoverContent, ClrIfOpen] }); }
1553
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverModuleNext }); }
1554
+ }
1555
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverModuleNext, decorators: [{
1556
+ type: NgModule,
1557
+ args: [{
1558
+ imports: [ClrPopoverContent, ClrIfOpen],
1559
+ declarations: [ClrPopoverOrigin, ClrPopoverCloseButton, ClrPopoverOpenCloseButton],
1560
+ exports: [ClrPopoverOrigin, ClrPopoverCloseButton, ClrPopoverOpenCloseButton, ClrPopoverContent, ClrIfOpen],
1561
+ }]
1562
+ }] });
1563
+
1564
+ /*
1565
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1566
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1567
+ * This software is released under MIT license.
1568
+ * The full license information can be found in LICENSE in the root directory of this project.
1569
+ */
1570
+
1571
+ /*
1572
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1573
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1574
+ * This software is released under MIT license.
1575
+ * The full license information can be found in LICENSE in the root directory of this project.
1576
+ */
1577
+ class ClrPopoverModule {
1578
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1579
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverModule, exports: [ClrDropdownModule$1, ClrSignpostModule$1, ClrTooltipModule$1] }); }
1580
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverModule, imports: [ClrDropdownModule$1, ClrSignpostModule$1, ClrTooltipModule$1] }); }
1581
+ }
1582
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrPopoverModule, decorators: [{
1583
+ type: NgModule,
1584
+ args: [{
1585
+ exports: [ClrDropdownModule$1, ClrSignpostModule$1, ClrTooltipModule$1],
1586
+ }]
1587
+ }] });
1588
+
1589
+ /*
1590
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1591
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1592
+ * This software is released under MIT license.
1593
+ * The full license information can be found in LICENSE in the root directory of this project.
1594
+ */
1595
+ class SignpostFocusManager {
1596
+ set triggerEl(value) {
1597
+ this._triggerEl = value;
1598
+ }
1599
+ focusTrigger() {
1600
+ if (this._triggerEl) {
1601
+ this._triggerEl.focus();
1602
+ }
1603
+ }
1604
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SignpostFocusManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1605
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SignpostFocusManager }); }
1606
+ }
1607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SignpostFocusManager, decorators: [{
1608
+ type: Injectable
1609
+ }] });
1610
+
1611
+ /*
1612
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1613
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1614
+ * This software is released under MIT license.
1615
+ * The full license information can be found in LICENSE in the root directory of this project.
1616
+ */
1617
+ class SignpostIdService {
1618
+ constructor() {
1619
+ this._id = new Subject();
1620
+ }
1621
+ get id() {
1622
+ return this._id.asObservable();
1623
+ }
1624
+ setId(id) {
1625
+ this._id.next(id);
1626
+ }
1627
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SignpostIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1628
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SignpostIdService }); }
1629
+ }
1630
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SignpostIdService, decorators: [{
1631
+ type: Injectable
1632
+ }] });
1633
+
1634
+ /*
1635
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1636
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1637
+ * This software is released under MIT license.
1638
+ * The full license information can be found in LICENSE in the root directory of this project.
1639
+ */
1640
+ /*********
1641
+ *
1642
+ * @description
1643
+ * A Directive added to the ClrSignpost Trigger button that will call the ClrSignpost.toggle() function to hide/show the
1644
+ * ClrSignpostContent.
1645
+ *
1646
+ */
1647
+ class ClrSignpostTrigger {
1648
+ constructor(popoverService, el, signpostIdService, signpostFocusManager, document, platformId) {
1649
+ this.popoverService = popoverService;
1650
+ this.el = el;
1651
+ this.signpostIdService = signpostIdService;
1652
+ this.signpostFocusManager = signpostFocusManager;
1653
+ this.platformId = platformId;
1654
+ this.ariaExpanded = false;
1655
+ this.subscriptions = [];
1656
+ this.document = document;
1657
+ }
1658
+ ngOnInit() {
1659
+ this.popoverService.origin = this.el;
1660
+ this.signpostFocusManager.triggerEl = this.el.nativeElement;
1661
+ this.subscriptions.push(this.popoverService.openChange.subscribe((isOpen) => {
1662
+ this.ariaExpanded = isOpen;
1663
+ const prevIsOpen = this.isOpen;
1664
+ this.isOpen = isOpen;
1665
+ // openChange fires false on initialization because signpost starts as closed by default
1666
+ // but we shouldn't focus on that initial false value
1667
+ // we should focus back only if it's closed after being opened
1668
+ if (!this.isOpen && prevIsOpen) {
1669
+ this.focusOnClose();
1670
+ }
1671
+ }), this.signpostIdService.id.subscribe(idChange => (this.ariaControl = idChange)));
1672
+ }
1673
+ ngOnDestroy() {
1674
+ this.subscriptions.forEach((sub) => sub.unsubscribe());
1675
+ }
1676
+ /**********
1677
+ *
1678
+ * @description
1679
+ * click handler for the ClrSignpost trigger button used to hide/show ClrSignpostContent.
1680
+ */
1681
+ onSignpostTriggerClick(event) {
1682
+ this.popoverService.toggleWithEvent(event);
1683
+ }
1684
+ focusOnClose() {
1685
+ if (!isPlatformBrowser(this.platformId)) {
1686
+ return;
1687
+ }
1688
+ // we have to set the focus back on the trigger only if the focus is reset back to the body element
1689
+ // if the focus is on another element, we are not allowed to move that focus back to this trigger again.
1690
+ if (!this.isOpen && this.document.activeElement === this.document.body) {
1691
+ this.signpostFocusManager.focusTrigger();
1692
+ }
1693
+ }
1694
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrSignpostTrigger, deps: [{ token: i2.ClrPopoverService }, { token: i0.ElementRef }, { token: SignpostIdService }, { token: SignpostFocusManager }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
1695
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrSignpostTrigger, isStandalone: false, selector: "[clrSignpostTrigger]", host: { listeners: { "click": "onSignpostTriggerClick($event)" }, properties: { "attr.aria-expanded": "ariaExpanded", "attr.aria-controls": "ariaControl", "class.active": "isOpen" }, classAttribute: "signpost-trigger" }, ngImport: i0 }); }
1696
+ }
1697
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrSignpostTrigger, decorators: [{
1698
+ type: Directive,
1699
+ args: [{
1700
+ selector: '[clrSignpostTrigger]',
1701
+ host: {
1702
+ class: 'signpost-trigger',
1703
+ '[attr.aria-expanded]': 'ariaExpanded',
1704
+ '[attr.aria-controls]': 'ariaControl',
1705
+ '[class.active]': 'isOpen',
1706
+ },
1707
+ standalone: false,
1708
+ }]
1709
+ }], ctorParameters: () => [{ type: i2.ClrPopoverService }, { type: i0.ElementRef }, { type: SignpostIdService }, { type: SignpostFocusManager }, { type: undefined, decorators: [{
1710
+ type: Inject,
1711
+ args: [DOCUMENT]
1712
+ }] }, { type: undefined, decorators: [{
1713
+ type: Inject,
1714
+ args: [PLATFORM_ID]
1715
+ }] }], propDecorators: { onSignpostTriggerClick: [{
1716
+ type: HostListener,
1717
+ args: ['click', ['$event']]
1718
+ }] } });
1719
+
1720
+ /*
1721
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1722
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1723
+ * This software is released under MIT license.
1724
+ * The full license information can be found in LICENSE in the root directory of this project.
1725
+ */
1726
+ /*********
1727
+ *
1728
+ * @class ClrSignpost
1729
+ *
1730
+ * @description
1731
+ * Class used to configure and control the state of a ClrSignpost and its associated ClrSignpostContent.
1732
+ * It supports the clrPosition with a 'right-middle' default.
1733
+ *
1734
+ */
1735
+ class ClrSignpost {
1736
+ constructor(commonStrings, popoverService) {
1737
+ this.commonStrings = commonStrings;
1738
+ this.popoverService = popoverService;
1739
+ /**********
1740
+ * @property useCustomTrigger
1741
+ *
1742
+ * @description
1743
+ * Flag used to determine if we need to use the default trigger or a user supplied trigger element.
1744
+ *
1745
+ */
1746
+ this.useCustomTrigger = false;
1747
+ /**
1748
+ * Hides the default trigger button. Use when the signpost is opened
1749
+ * programmatically via `openAtPoint()` and no trigger icon is needed.
1750
+ */
1751
+ this.hideTrigger = false;
1752
+ }
1753
+ /**********
1754
+ * @property signPostTrigger
1755
+ *
1756
+ * @description
1757
+ * Uses ContentChild to check for a user supplied element with the ClrSignpostTrigger on it.
1758
+ *
1759
+ */
1760
+ set customTrigger(trigger) {
1761
+ this.useCustomTrigger = !!trigger;
1762
+ }
1763
+ get showDefaultTrigger() {
1764
+ return !this.useCustomTrigger && !this.hideTrigger;
1765
+ }
1766
+ openAtPoint(point) {
1767
+ this.popoverService.openAtPoint(point);
1768
+ }
1769
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrSignpost, deps: [{ token: i1.ClrCommonStringsService }, { token: i2.ClrPopoverService }], target: i0.ɵɵFactoryTarget.Component }); }
1770
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: ClrSignpost, isStandalone: false, selector: "clr-signpost", inputs: { signpostTriggerAriaLabel: ["clrSignpostTriggerAriaLabel", "signpostTriggerAriaLabel"], hideTrigger: ["clrSignpostHideTrigger", "hideTrigger"] }, host: { properties: { "class.signpost": "true" } }, providers: [SignpostFocusManager, SignpostIdService], queries: [{ propertyName: "customTrigger", first: true, predicate: ClrSignpostTrigger, descendants: true }], hostDirectives: [{ directive: i2.ClrPopoverHostDirective }], ngImport: i0, template: `
1771
+ @if (showDefaultTrigger) {
1772
+ <button
1773
+ type="button"
1774
+ class="signpost-action btn btn-sm btn-icon btn-link"
1775
+ clrSignpostTrigger
1776
+ [attr.aria-label]="signpostTriggerAriaLabel || commonStrings.keys.signpostToggle"
1777
+ >
1778
+ <cds-icon shape="info-circle" [attr.title]="commonStrings.keys.info"></cds-icon>
1779
+ </button>
1780
+ }
1781
+
1782
+ <ng-content></ng-content>
1783
+ `, isInline: true, dependencies: [{ kind: "component", type: i3.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: ClrSignpostTrigger, selector: "[clrSignpostTrigger]" }] }); }
1784
+ }
1785
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrSignpost, decorators: [{
1786
+ type: Component,
1787
+ args: [{
1788
+ selector: 'clr-signpost',
1789
+ template: `
1790
+ @if (showDefaultTrigger) {
1791
+ <button
1792
+ type="button"
1793
+ class="signpost-action btn btn-sm btn-icon btn-link"
1794
+ clrSignpostTrigger
1795
+ [attr.aria-label]="signpostTriggerAriaLabel || commonStrings.keys.signpostToggle"
1796
+ >
1797
+ <cds-icon shape="info-circle" [attr.title]="commonStrings.keys.info"></cds-icon>
1798
+ </button>
1799
+ }
1800
+
1801
+ <ng-content></ng-content>
1802
+ `,
1803
+ host: { '[class.signpost]': 'true' },
1804
+ providers: [SignpostFocusManager, SignpostIdService],
1805
+ hostDirectives: [ClrPopoverHostDirective$1],
1806
+ standalone: false,
1807
+ }]
1808
+ }], ctorParameters: () => [{ type: i1.ClrCommonStringsService }, { type: i2.ClrPopoverService }], propDecorators: { signpostTriggerAriaLabel: [{
1809
+ type: Input,
1810
+ args: ['clrSignpostTriggerAriaLabel']
1811
+ }], hideTrigger: [{
1812
+ type: Input,
1813
+ args: ['clrSignpostHideTrigger']
1814
+ }], customTrigger: [{
1815
+ type: ContentChild,
1816
+ args: [ClrSignpostTrigger]
1817
+ }] } });
1818
+
1819
+ /*
1820
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1821
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1822
+ * This software is released under MIT license.
1823
+ * The full license information can be found in LICENSE in the root directory of this project.
1824
+ */
1825
+ class ClrSignpostContent {
1826
+ constructor(parentHost, element, commonStrings, signpostIdService, signpostFocusManager, platformId, document, popoverService, popoverContent) {
1827
+ this.element = element;
1828
+ this.commonStrings = commonStrings;
1829
+ this.signpostFocusManager = signpostFocusManager;
1830
+ this.platformId = platformId;
1831
+ this.document = document;
1832
+ this.popoverService = popoverService;
1833
+ this.popoverContent = popoverContent;
1834
+ this.signpostContentId = uniqueIdFactory();
1835
+ this._position = ClrPopoverPosition$1.RIGHT_MIDDLE;
1836
+ if (!parentHost) {
1837
+ throw new Error('clr-signpost-content should only be used inside of a clr-signpost');
1838
+ }
1839
+ // Defaults
1840
+ signpostIdService.setId(this.signpostContentId);
1841
+ popoverService.panelClass.push('clr-signpost-container');
1842
+ popoverContent.contentType = ClrPopoverType$1.SIGNPOST;
1843
+ }
1844
+ /*********
1845
+ *
1846
+ * @description
1847
+ * A setter for the position of the ClrSignpostContent popover. This is a combination of the following:
1848
+ * - originPoint - where on the trigger to position the content
1849
+ * - popoverPoint - where on the content container to align with the origin
1850
+ * - offsetY - where on the Y axis to align the ClrSignpostContent so it meets specs
1851
+ * - offsetX - where on the X axis to align the ClrSignpostContent so it meets specs
1852
+ * There are 12 possible positions to place a ClrSignpostContent container:
1853
+ * - top-left
1854
+ * - top-middle
1855
+ * - top-right
1856
+ * - right-top
1857
+ * - right-middle
1858
+ * - right-bottom
1859
+ * - bottom-right
1860
+ * - bottom-middle
1861
+ * - bottom-left
1862
+ * - left-bottom
1863
+ * - left-middle
1864
+ * - left-top
1865
+ *
1866
+ * I think of it as follows for 'top-left' -> CONTAINER_SIDE-SIDE_POSITION. In this case CONTAINER_SIDE is 'top'
1867
+ * meaning the top of the trigger icon (above the icon that hides/shows) the ClrSignpostContent. And, SIDE_POSITION
1868
+ * is 'left' meaning two things: 1) the ClrSignpostContent container extends to the left and 2) the 'arrow/pointer'
1869
+ * linking the SignpostContent to the trigger points down at the horizontal center of the trigger icon.
1870
+ *
1871
+ * @param newPosition
1872
+ */
1873
+ get position() {
1874
+ return this._position;
1875
+ }
1876
+ set position(position) {
1877
+ const posIndex = SIGNPOST_POSITIONS$1.indexOf(position);
1878
+ this._position = position && posIndex > -1 ? SIGNPOST_POSITIONS$1[posIndex] : ClrPopoverPosition$1.RIGHT_MIDDLE;
1879
+ this.popoverContent.contentAt = this._position;
1880
+ }
1881
+ /*
1882
+ * Fallback to hide when *clrIfOpen is not being used
1883
+ */
1884
+ get isOffScreen() {
1885
+ return !this.popoverService.open;
1886
+ }
1887
+ /**********
1888
+ *
1889
+ * @description
1890
+ * Close function that uses the signpost instance to toggle the state of the content popover.
1891
+ *
1892
+ */
1893
+ close() {
1894
+ this.popoverService.open = false;
1895
+ }
1896
+ ngAfterViewInit() {
1897
+ this.popoverService.closeButtonRef = this.closeButton;
1898
+ this.closeButton.nativeElement.focus();
1899
+ }
1900
+ onKeyDown(event) {
1901
+ if (event.key === 'Tab') {
1902
+ const focusableElements = this.getFocusableElements(this.element.nativeElement);
1903
+ // take the first element when SHIFT+TAB or last when only TAB
1904
+ const focusableElementIndex = event.shiftKey ? 0 : focusableElements.length - 1;
1905
+ if (document.activeElement === focusableElements[focusableElementIndex]) {
1906
+ event.preventDefault();
1907
+ this.popoverService.open = false;
1908
+ }
1909
+ }
1910
+ }
1911
+ ngOnDestroy() {
1912
+ if (isPlatformBrowser(this.platformId) && this.element.nativeElement.contains(this.document.activeElement)) {
1913
+ this.signpostFocusManager.focusTrigger();
1914
+ }
1915
+ }
1916
+ getFocusableElements(element) {
1917
+ return Array.from(element.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'));
1918
+ }
1919
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrSignpostContent, deps: [{ token: POPOVER_HOST_ORIGIN$1, optional: true }, { token: i0.ElementRef }, { token: i1.ClrCommonStringsService }, { token: SignpostIdService }, { token: SignpostFocusManager }, { token: PLATFORM_ID }, { token: DOCUMENT }, { token: i2.ClrPopoverService }, { token: i2.ClrPopoverContent }], target: i0.ɵɵFactoryTarget.Component }); }
1920
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ClrSignpostContent, isStandalone: false, selector: "clr-signpost-content", inputs: { signpostCloseAriaLabel: ["clrSignpostCloseAriaLabel", "signpostCloseAriaLabel"], position: ["clrPosition", "position"] }, host: { attributes: { "role": "dialog" }, listeners: { "keydown": "onKeyDown($event)" }, properties: { "class.signpost-content": "true", "id": "signpostContentId", "class.is-off-screen": "this.isOffScreen" } }, viewQueries: [{ propertyName: "closeButton", first: true, predicate: ["closeButton"], descendants: true, read: ElementRef }], hostDirectives: [{ directive: i2.ClrPopoverContent }], ngImport: i0, template: `
1921
+ <div class="signpost-wrap">
1922
+ <div class="popover-pointer"></div>
1923
+ <div class="signpost-content-header">
1924
+ <ng-content select="clr-signpost-title"></ng-content>
1925
+ <button
1926
+ #closeButton
1927
+ type="button"
1928
+ [attr.aria-label]="signpostCloseAriaLabel || commonStrings.keys.signpostClose"
1929
+ class="signpost-action close"
1930
+ (click)="close()"
1931
+ [attr.aria-controls]="signpostContentId"
1932
+ >
1933
+ <cds-icon shape="window-close" [attr.title]="commonStrings.keys.close"></cds-icon>
1934
+ </button>
1935
+ </div>
1936
+ <div class="signpost-content-body" tabindex="0">
1937
+ <ng-content></ng-content>
1938
+ </div>
1939
+ </div>
1940
+ `, isInline: true, dependencies: [{ kind: "component", type: i3.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }] }); }
1941
+ }
1942
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrSignpostContent, decorators: [{
1943
+ type: Component,
1944
+ args: [{
1945
+ selector: 'clr-signpost-content',
1946
+ template: `
1947
+ <div class="signpost-wrap">
1948
+ <div class="popover-pointer"></div>
1949
+ <div class="signpost-content-header">
1950
+ <ng-content select="clr-signpost-title"></ng-content>
1951
+ <button
1952
+ #closeButton
1953
+ type="button"
1954
+ [attr.aria-label]="signpostCloseAriaLabel || commonStrings.keys.signpostClose"
1955
+ class="signpost-action close"
1956
+ (click)="close()"
1957
+ [attr.aria-controls]="signpostContentId"
1958
+ >
1959
+ <cds-icon shape="window-close" [attr.title]="commonStrings.keys.close"></cds-icon>
1960
+ </button>
1961
+ </div>
1962
+ <div class="signpost-content-body" tabindex="0">
1963
+ <ng-content></ng-content>
1964
+ </div>
1965
+ </div>
1966
+ `,
1967
+ host: {
1968
+ '[class.signpost-content]': 'true',
1969
+ '[id]': 'signpostContentId',
1970
+ role: 'dialog',
1971
+ },
1972
+ standalone: false,
1973
+ hostDirectives: [ClrPopoverContent$1],
1974
+ }]
1975
+ }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
1976
+ type: Optional
1977
+ }, {
1978
+ type: Inject,
1979
+ args: [POPOVER_HOST_ORIGIN$1]
1980
+ }] }, { type: i0.ElementRef }, { type: i1.ClrCommonStringsService }, { type: SignpostIdService }, { type: SignpostFocusManager }, { type: undefined, decorators: [{
1981
+ type: Inject,
1982
+ args: [PLATFORM_ID]
1983
+ }] }, { type: Document, decorators: [{
1984
+ type: Inject,
1985
+ args: [DOCUMENT]
1986
+ }] }, { type: i2.ClrPopoverService }, { type: i2.ClrPopoverContent }], propDecorators: { signpostCloseAriaLabel: [{
1987
+ type: Input,
1988
+ args: ['clrSignpostCloseAriaLabel']
1989
+ }], closeButton: [{
1990
+ type: ViewChild,
1991
+ args: ['closeButton', { read: ElementRef }]
1992
+ }], position: [{
1993
+ type: Input,
1994
+ args: ['clrPosition']
1995
+ }], isOffScreen: [{
1996
+ type: HostBinding,
1997
+ args: ['class.is-off-screen']
1998
+ }], onKeyDown: [{
1999
+ type: HostListener,
2000
+ args: ['keydown', ['$event']]
2001
+ }] } });
2002
+
2003
+ /*
2004
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2005
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2006
+ * This software is released under MIT license.
2007
+ * The full license information can be found in LICENSE in the root directory of this project.
2008
+ */
2009
+ class ClrSignpostTitle {
2010
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrSignpostTitle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2011
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ClrSignpostTitle, isStandalone: false, selector: "clr-signpost-title", host: { properties: { "class.signpost-title": "true" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
2012
+ }
2013
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrSignpostTitle, decorators: [{
2014
+ type: Component,
2015
+ args: [{
2016
+ selector: 'clr-signpost-title',
2017
+ template: `<ng-content></ng-content>`,
2018
+ host: { '[class.signpost-title]': 'true' },
2019
+ standalone: false,
2020
+ }]
2021
+ }] });
2022
+
2023
+ /*
2024
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2025
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2026
+ * This software is released under MIT license.
2027
+ * The full license information can be found in LICENSE in the root directory of this project.
2028
+ */
2029
+ const CLR_SIGNPOST_DIRECTIVES = [
2030
+ ClrSignpost,
2031
+ ClrSignpostContent,
2032
+ ClrSignpostTrigger,
2033
+ ClrSignpostTitle,
2034
+ ];
2035
+ class ClrSignpostModule {
2036
+ constructor() {
2037
+ ClarityIcons.addIcons(windowCloseIcon, infoCircleIcon);
2038
+ }
2039
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrSignpostModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2040
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: ClrSignpostModule, declarations: [ClrSignpost,
2041
+ ClrSignpostContent,
2042
+ ClrSignpostTrigger,
2043
+ ClrSignpostTitle], imports: [CommonModule, ClrIcon, ClrFocusOnViewInitModule, _lrClrPopoverModuleNext, ClrIfOpen$1], exports: [ClrSignpost,
2044
+ ClrSignpostContent,
2045
+ ClrSignpostTrigger,
2046
+ ClrSignpostTitle, ClrIfOpen$1] }); }
2047
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrSignpostModule, imports: [CommonModule, ClrIcon, ClrFocusOnViewInitModule, _lrClrPopoverModuleNext] }); }
2048
+ }
2049
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrSignpostModule, decorators: [{
2050
+ type: NgModule,
2051
+ args: [{
2052
+ imports: [CommonModule, ClrIcon, ClrFocusOnViewInitModule, _lrClrPopoverModuleNext, ClrIfOpen$1],
2053
+ declarations: [CLR_SIGNPOST_DIRECTIVES],
2054
+ exports: [CLR_SIGNPOST_DIRECTIVES, ClrIfOpen$1],
2055
+ }]
2056
+ }], ctorParameters: () => [] });
2057
+
2058
+ /*
2059
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2060
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2061
+ * This software is released under MIT license.
2062
+ * The full license information can be found in LICENSE in the root directory of this project.
2063
+ */
2064
+
2065
+ /*
2066
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2067
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2068
+ * This software is released under MIT license.
2069
+ * The full license information can be found in LICENSE in the root directory of this project.
2070
+ */
2071
+ class TooltipIdService {
2072
+ constructor() {
2073
+ this._id = new Subject();
2074
+ }
2075
+ get id() {
2076
+ return this._id.asObservable();
2077
+ }
2078
+ updateId(id) {
2079
+ this._id.next(id);
2080
+ }
2081
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TooltipIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2082
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TooltipIdService }); }
2083
+ }
2084
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TooltipIdService, decorators: [{
2085
+ type: Injectable
2086
+ }] });
2087
+
2088
+ /*
2089
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2090
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2091
+ * This software is released under MIT license.
2092
+ * The full license information can be found in LICENSE in the root directory of this project.
2093
+ */
2094
+ class TooltipMouseService {
2095
+ constructor(popoverService) {
2096
+ this.popoverService = popoverService;
2097
+ this.mouseOutDelay = 100;
2098
+ }
2099
+ onMouseEnterTrigger() {
2100
+ this.mouseOverTrigger = true;
2101
+ this.popoverService.open = true;
2102
+ }
2103
+ onMouseLeaveTrigger() {
2104
+ this.mouseOverTrigger = false;
2105
+ this.hideIfMouseOut();
2106
+ }
2107
+ onMouseEnterContent() {
2108
+ this.mouseOverContent = true;
2109
+ }
2110
+ onMouseLeaveContent() {
2111
+ this.mouseOverContent = false;
2112
+ this.hideIfMouseOut();
2113
+ }
2114
+ hideIfMouseOut() {
2115
+ // A zero timeout is used so that the code has a chance to update
2116
+ // the `mouseOverContent` property after the user moves the mouse from the trigger to the content.
2117
+ setTimeout(() => {
2118
+ if (!this.mouseOverTrigger && !this.mouseOverContent) {
2119
+ this.popoverService.open = false;
2120
+ }
2121
+ }, this.mouseOutDelay);
2122
+ }
2123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TooltipMouseService, deps: [{ token: i2.ClrPopoverService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2124
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TooltipMouseService }); }
2125
+ }
2126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TooltipMouseService, decorators: [{
2127
+ type: Injectable
2128
+ }], ctorParameters: () => [{ type: i2.ClrPopoverService }] });
2129
+
2130
+ /*
2131
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2132
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2133
+ * This software is released under MIT license.
2134
+ * The full license information can be found in LICENSE in the root directory of this project.
2135
+ */
2136
+ class ClrTooltip {
2137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTooltip, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ClrTooltip, isStandalone: false, selector: "clr-tooltip", host: { properties: { "class.clr-tooltip-container": "true" } }, providers: [TooltipIdService, TooltipMouseService], hostDirectives: [{ directive: i2.ClrPopoverHostDirective }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
2139
+ }
2140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTooltip, decorators: [{
2141
+ type: Component,
2142
+ args: [{
2143
+ selector: 'clr-tooltip',
2144
+ template: `<ng-content></ng-content>`,
2145
+ host: {
2146
+ '[class.clr-tooltip-container]': 'true',
2147
+ },
2148
+ providers: [TooltipIdService, TooltipMouseService],
2149
+ hostDirectives: [ClrPopoverHostDirective$1],
2150
+ standalone: false,
2151
+ }]
2152
+ }] });
2153
+
2154
+ /*
2155
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2156
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2157
+ * This software is released under MIT license.
2158
+ * The full license information can be found in LICENSE in the root directory of this project.
2159
+ */
2160
+ class ClrTooltipTrigger {
2161
+ constructor(popoverService, tooltipIdService, tooltipMouseService, element) {
2162
+ this.popoverService = popoverService;
2163
+ this.tooltipMouseService = tooltipMouseService;
2164
+ this.subs = [];
2165
+ // The aria-described by comes from the id of content. It
2166
+ this.subs.push(tooltipIdService.id.subscribe(tooltipId => (this.ariaDescribedBy = tooltipId)));
2167
+ popoverService.origin = element;
2168
+ }
2169
+ ngOnDestroy() {
2170
+ this.subs.forEach(sub => sub.unsubscribe());
2171
+ }
2172
+ showTooltip() {
2173
+ this.popoverService.open = true;
2174
+ }
2175
+ hideTooltip() {
2176
+ this.popoverService.open = false;
2177
+ }
2178
+ onMouseEnter() {
2179
+ this.tooltipMouseService.onMouseEnterTrigger();
2180
+ }
2181
+ onMouseLeave() {
2182
+ this.tooltipMouseService.onMouseLeaveTrigger();
2183
+ }
2184
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTooltipTrigger, deps: [{ token: i2.ClrPopoverService }, { token: TooltipIdService }, { token: TooltipMouseService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
2185
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrTooltipTrigger, isStandalone: false, selector: "[clrTooltipTrigger]", host: { attributes: { "tabindex": "0" }, listeners: { "focus": "showTooltip()", "blur": "hideTooltip()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "class.tooltip-trigger": "true", "attr.aria-describedby": "ariaDescribedBy", "attr.role": "\"button\"" } }, ngImport: i0 }); }
2186
+ }
2187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTooltipTrigger, decorators: [{
2188
+ type: Directive,
2189
+ args: [{
2190
+ selector: '[clrTooltipTrigger]',
2191
+ host: {
2192
+ tabindex: '0',
2193
+ '[class.tooltip-trigger]': 'true',
2194
+ '[attr.aria-describedby]': 'ariaDescribedBy',
2195
+ '[attr.role]': '"button"',
2196
+ },
2197
+ standalone: false,
2198
+ }]
2199
+ }], ctorParameters: () => [{ type: i2.ClrPopoverService }, { type: TooltipIdService }, { type: TooltipMouseService }, { type: i0.ElementRef }], propDecorators: { showTooltip: [{
2200
+ type: HostListener,
2201
+ args: ['focus']
2202
+ }], hideTooltip: [{
2203
+ type: HostListener,
2204
+ args: ['blur']
2205
+ }], onMouseEnter: [{
2206
+ type: HostListener,
2207
+ args: ['mouseenter']
2208
+ }], onMouseLeave: [{
2209
+ type: HostListener,
2210
+ args: ['mouseleave']
2211
+ }] } });
2212
+
2213
+ /*
2214
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2215
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2216
+ * This software is released under MIT license.
2217
+ * The full license information can be found in LICENSE in the root directory of this project.
2218
+ */
2219
+ const SIZES = ['xs', 'sm', 'md', 'lg'];
2220
+ const defaultPosition = ClrPopoverPosition$1.RIGHT;
2221
+ const defaultSize = 'sm';
2222
+ class ClrTooltipContent {
2223
+ constructor(parentHost, tooltipIdService, el, renderer, popoverService, tooltipMouseService, popoverContent) {
2224
+ this.tooltipIdService = tooltipIdService;
2225
+ this.el = el;
2226
+ this.renderer = renderer;
2227
+ this.tooltipMouseService = tooltipMouseService;
2228
+ this.popoverContent = popoverContent;
2229
+ popoverService.panelClass.push('clr-tooltip-container');
2230
+ popoverContent.contentType = ClrPopoverType$1.TOOLTIP;
2231
+ popoverContent.scrollToClose = true;
2232
+ if (!parentHost) {
2233
+ throw new Error('clr-tooltip-content should only be used inside of a clr-tooltip');
2234
+ }
2235
+ // Set the default id in case consumer does not supply a custom id.
2236
+ this.id = uniqueIdFactory();
2237
+ }
2238
+ get id() {
2239
+ return this._id;
2240
+ }
2241
+ set id(value) {
2242
+ const id = value || '';
2243
+ this._id = id;
2244
+ this.tooltipIdService.updateId(id);
2245
+ }
2246
+ get position() {
2247
+ return this._position;
2248
+ }
2249
+ set position(value) {
2250
+ const posIndex = TOOLTIP_POSITIONS$1.indexOf(value);
2251
+ this._position = value && posIndex > -1 ? TOOLTIP_POSITIONS$1[posIndex] : defaultPosition;
2252
+ this.popoverContent.contentAt = this._position;
2253
+ }
2254
+ get size() {
2255
+ return this._size;
2256
+ }
2257
+ set size(value) {
2258
+ const oldSize = this._size;
2259
+ const newSize = SIZES.includes(value) ? value : defaultSize;
2260
+ this._size = newSize;
2261
+ this.updateCssClass({ oldClass: `tooltip-${oldSize}`, newClass: `tooltip-${newSize}` });
2262
+ }
2263
+ ngOnInit() {
2264
+ this.size = this.size || defaultSize;
2265
+ this.position = this.position || defaultPosition;
2266
+ }
2267
+ onMouseEnter() {
2268
+ this.tooltipMouseService.onMouseEnterContent();
2269
+ }
2270
+ onMouseLeave() {
2271
+ this.tooltipMouseService.onMouseLeaveContent();
2272
+ }
2273
+ updateCssClass({ oldClass, newClass }) {
2274
+ this.renderer.removeClass(this.el.nativeElement, oldClass);
2275
+ this.renderer.addClass(this.el.nativeElement, newClass);
2276
+ }
2277
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTooltipContent, deps: [{ token: POPOVER_HOST_ORIGIN$1, optional: true }, { token: TooltipIdService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.ClrPopoverService }, { token: TooltipMouseService }, { token: i2.ClrPopoverContent }], target: i0.ɵɵFactoryTarget.Component }); }
2278
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ClrTooltipContent, isStandalone: false, selector: "clr-tooltip-content", inputs: { id: "id", position: ["clrPosition", "position"], size: ["clrSize", "size"] }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "class.tooltip-content": "true", "style.opacity": "1", "attr.role": "\"tooltip\"", "id": "id" } }, hostDirectives: [{ directive: i2.ClrPopoverContent }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
2279
+ }
2280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTooltipContent, decorators: [{
2281
+ type: Component,
2282
+ args: [{
2283
+ selector: 'clr-tooltip-content',
2284
+ template: `<ng-content></ng-content>`,
2285
+ host: {
2286
+ '[class.tooltip-content]': 'true',
2287
+ '[style.opacity]': '1',
2288
+ '[attr.role]': '"tooltip"',
2289
+ '[id]': 'id',
2290
+ },
2291
+ standalone: false,
2292
+ hostDirectives: [ClrPopoverContent$1],
2293
+ }]
2294
+ }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
2295
+ type: Optional
2296
+ }, {
2297
+ type: Inject,
2298
+ args: [POPOVER_HOST_ORIGIN$1]
2299
+ }] }, { type: TooltipIdService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i2.ClrPopoverService }, { type: TooltipMouseService }, { type: i2.ClrPopoverContent }], propDecorators: { id: [{
2300
+ type: Input
2301
+ }], position: [{
2302
+ type: Input,
2303
+ args: ['clrPosition']
2304
+ }], size: [{
2305
+ type: Input,
2306
+ args: ['clrSize']
2307
+ }], onMouseEnter: [{
2308
+ type: HostListener,
2309
+ args: ['mouseenter']
2310
+ }], onMouseLeave: [{
2311
+ type: HostListener,
2312
+ args: ['mouseleave']
2313
+ }] } });
2314
+
2315
+ /*
2316
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2317
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2318
+ * This software is released under MIT license.
2319
+ * The full license information can be found in LICENSE in the root directory of this project.
2320
+ */
2321
+ const CLR_TOOLTIP_DIRECTIVES = [ClrTooltip, ClrTooltipTrigger, ClrTooltipContent];
2322
+ class ClrTooltipModule {
2323
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2324
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: ClrTooltipModule, declarations: [ClrTooltip, ClrTooltipTrigger, ClrTooltipContent], imports: [CommonModule, ClrIcon, _lrClrPopoverModuleNext], exports: [ClrTooltip, ClrTooltipTrigger, ClrTooltipContent, ClrIfOpen$1, ClrIcon] }); }
2325
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTooltipModule, imports: [CommonModule, ClrIcon, _lrClrPopoverModuleNext] }); }
2326
+ }
2327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrTooltipModule, decorators: [{
2328
+ type: NgModule,
2329
+ args: [{
2330
+ imports: [CommonModule, ClrIcon, _lrClrPopoverModuleNext],
2331
+ declarations: [CLR_TOOLTIP_DIRECTIVES],
2332
+ exports: [CLR_TOOLTIP_DIRECTIVES, ClrIfOpen$1, ClrIcon],
2333
+ }]
2334
+ }] });
2335
+
2336
+ /*
2337
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2338
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2339
+ * This software is released under MIT license.
2340
+ * The full license information can be found in LICENSE in the root directory of this project.
2341
+ */
2342
+
2343
+ /*
2344
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2345
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2346
+ * This software is released under MIT license.
2347
+ * The full license information can be found in LICENSE in the root directory of this project.
2348
+ */
2349
+
2350
+ /**
2351
+ * Generated bundle index. Do not edit.
2352
+ */
2353
+
2354
+ export { CLR_DROPDOWN_DIRECTIVES, CLR_MENU_POSITIONS, CLR_SIGNPOST_DIRECTIVES, CLR_TOOLTIP_DIRECTIVES, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrIfOpen, ClrPopoverContent, ClrPopoverHostDirective, ClrPopoverModule, ClrPopoverOrigin, ClrPopoverPosition, ClrPopoverService, ClrPopoverType, ClrSignpost, ClrSignpostContent, ClrSignpostModule, ClrSignpostTitle, ClrSignpostTrigger, ClrStopEscapePropagationDirective, ClrTooltip, ClrTooltipContent, ClrTooltipModule, ClrTooltipTrigger, DROPDOWN_POSITIONS, POPOVER_HOST_ORIGIN, SIGNPOST_POSITIONS, TOOLTIP_POSITIONS, getConnectedPositions, getContentPosition, getOriginPosition, getPositionsArray, mapPopoverKeyToPosition, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton };
2355
+ //# sourceMappingURL=clr-angular-popover.mjs.map