@clr/angular 17.13.0 → 18.0.0-beta.10

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 (1195) 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 +7593 -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 +40 -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 +41 -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 +1775 -0
  29. package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -0
  30. package/fesm2022/clr-angular-forms-common.mjs +1240 -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 +826 -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 +100 -0
  53. package/fesm2022/clr-angular-forms.mjs.map +1 -0
  54. package/fesm2022/clr-angular-icon.mjs +7397 -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 +582 -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 +44 -0
  67. package/fesm2022/clr-angular-layout.mjs.map +1 -0
  68. package/fesm2022/clr-angular-modal.mjs +617 -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 +41 -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 +2079 -0
  93. package/fesm2022/clr-angular-utils.mjs.map +1 -0
  94. package/fesm2022/clr-angular-wizard.mjs +3074 -0
  95. package/fesm2022/clr-angular-wizard.mjs.map +1 -0
  96. package/fesm2022/clr-angular.mjs +125 -0
  97. package/fesm2022/clr-angular.mjs.map +1 -0
  98. package/package.json +202 -18
  99. package/popover/common/README.md +112 -0
  100. package/schematics/collection.json +14 -0
  101. package/schematics/ng-update/index.d.ts +2 -0
  102. package/schematics/ng-update/index.js +69 -0
  103. package/schematics/ng-update/index.js.map +1 -0
  104. package/schematics/ng-update/migrations/css-migration.d.ts +6 -0
  105. package/schematics/ng-update/migrations/css-migration.js +177 -0
  106. package/schematics/ng-update/migrations/css-migration.js.map +1 -0
  107. package/schematics/ng-update/migrations/import-migration.d.ts +4 -0
  108. package/schematics/ng-update/migrations/import-migration.js +187 -0
  109. package/schematics/ng-update/migrations/import-migration.js.map +1 -0
  110. package/schematics/ng-update/migrations/template-migration.d.ts +6 -0
  111. package/schematics/ng-update/migrations/template-migration.js +261 -0
  112. package/schematics/ng-update/migrations/template-migration.js.map +1 -0
  113. package/schematics/ng-update/replacements/css-replacements.d.ts +17 -0
  114. package/schematics/ng-update/replacements/css-replacements.js +74 -0
  115. package/schematics/ng-update/replacements/css-replacements.js.map +1 -0
  116. package/schematics/ng-update/replacements/import-replacements.d.ts +13 -0
  117. package/schematics/ng-update/replacements/import-replacements.js +108 -0
  118. package/schematics/ng-update/replacements/import-replacements.js.map +1 -0
  119. package/schematics/ng-update/replacements/symbol-replacements.d.ts +12 -0
  120. package/schematics/ng-update/replacements/symbol-replacements.js +67 -0
  121. package/schematics/ng-update/replacements/symbol-replacements.js.map +1 -0
  122. package/schematics/ng-update/replacements/template-replacements.d.ts +19 -0
  123. package/schematics/ng-update/replacements/template-replacements.js +57 -0
  124. package/schematics/ng-update/replacements/template-replacements.js.map +1 -0
  125. package/schematics/ng-update/tests/test-helpers.d.ts +6 -0
  126. package/schematics/ng-update/tests/test-helpers.js +34 -0
  127. package/schematics/ng-update/tests/test-helpers.js.map +1 -0
  128. package/schematics/ng-update/utils/file-visitor.d.ts +8 -0
  129. package/schematics/ng-update/utils/file-visitor.js +44 -0
  130. package/schematics/ng-update/utils/file-visitor.js.map +1 -0
  131. package/schematics/ng-update/utils/regexp-utils.d.ts +16 -0
  132. package/schematics/ng-update/utils/regexp-utils.js +34 -0
  133. package/schematics/ng-update/utils/regexp-utils.js.map +1 -0
  134. package/schematics/vitest.config.d.ts +2 -0
  135. package/schematics/vitest.config.js +17 -0
  136. package/schematics/vitest.config.js.map +1 -0
  137. package/types/clr-angular-accordion.d.ts +100 -0
  138. package/types/clr-angular-button.d.ts +169 -0
  139. package/types/clr-angular-collapsible-panel.d.ts +73 -0
  140. package/types/clr-angular-data-datagrid.d.ts +1840 -0
  141. package/types/clr-angular-data-stack-view.d.ts +87 -0
  142. package/types/clr-angular-data-tree-view.d.ts +229 -0
  143. package/types/clr-angular-data.d.ts +15 -0
  144. package/types/clr-angular-emphasis-alert.d.ts +175 -0
  145. package/types/clr-angular-emphasis-badge.d.ts +25 -0
  146. package/types/clr-angular-emphasis-common.d.ts +6 -0
  147. package/types/clr-angular-emphasis-label.d.ts +29 -0
  148. package/types/clr-angular-emphasis.d.ts +15 -0
  149. package/types/clr-angular-forms-checkbox.d.ts +69 -0
  150. package/types/clr-angular-forms-combobox.d.ts +353 -0
  151. package/types/clr-angular-forms-common.d.ts +336 -0
  152. package/types/clr-angular-forms-datalist.d.ts +59 -0
  153. package/types/clr-angular-forms-datepicker.d.ts +958 -0
  154. package/types/clr-angular-forms-file-input.d.ts +193 -0
  155. package/types/clr-angular-forms-input.d.ts +29 -0
  156. package/types/clr-angular-forms-number-input.d.ts +43 -0
  157. package/types/clr-angular-forms-password.d.ts +52 -0
  158. package/types/clr-angular-forms-radio.d.ts +50 -0
  159. package/types/clr-angular-forms-range.d.ts +37 -0
  160. package/types/clr-angular-forms-select.d.ts +36 -0
  161. package/types/clr-angular-forms-textarea.d.ts +29 -0
  162. package/types/clr-angular-forms.d.ts +36 -0
  163. package/types/clr-angular-icon.d.ts +1498 -0
  164. package/types/clr-angular-layout-breadcrumbs.d.ts +45 -0
  165. package/types/clr-angular-layout-main-container.d.ts +28 -0
  166. package/types/clr-angular-layout-nav.d.ts +142 -0
  167. package/types/clr-angular-layout-tabs.d.ts +158 -0
  168. package/types/clr-angular-layout-vertical-nav.d.ts +128 -0
  169. package/types/clr-angular-layout.d.ts +19 -0
  170. package/types/clr-angular-modal.d.ts +160 -0
  171. package/types/clr-angular-popover-common.d.ts +255 -0
  172. package/types/clr-angular-popover-dropdown.d.ts +123 -0
  173. package/types/clr-angular-popover-signpost.d.ts +157 -0
  174. package/types/clr-angular-popover-tooltip.d.ts +83 -0
  175. package/types/clr-angular-popover.d.ts +16 -0
  176. package/types/clr-angular-progress-progress-bars.d.ts +57 -0
  177. package/types/clr-angular-progress-spinner.d.ts +44 -0
  178. package/types/clr-angular-stepper.d.ts +179 -0
  179. package/types/clr-angular-timeline.d.ts +86 -0
  180. package/types/clr-angular-utils-conditional.d.ts +132 -0
  181. package/types/clr-angular-utils-loading.d.ts +38 -0
  182. package/types/clr-angular-utils.d.ts +913 -0
  183. package/types/clr-angular-wizard.d.ts +1508 -0
  184. package/types/clr-angular.d.ts +41 -0
  185. package/accordion/accordion-content.d.ts +0 -5
  186. package/accordion/accordion-description.d.ts +0 -5
  187. package/accordion/accordion-panel.d.ts +0 -45
  188. package/accordion/accordion-title.d.ts +0 -5
  189. package/accordion/accordion.d.ts +0 -20
  190. package/accordion/accordion.module.d.ts +0 -16
  191. package/accordion/chocolate/accordion-oompa-loompa.d.ts +0 -12
  192. package/accordion/chocolate/accordion-willy-wonka.d.ts +0 -6
  193. package/accordion/enums/accordion-status.enum.d.ts +0 -5
  194. package/accordion/enums/accordion-strategy.enum.d.ts +0 -4
  195. package/accordion/index.d.ts +0 -10
  196. package/accordion/models/accordion.model.d.ts +0 -27
  197. package/accordion/providers/accordion.service.d.ts +0 -17
  198. package/accordion/stepper/chocolate/stepper-oompa-loompa.d.ts +0 -12
  199. package/accordion/stepper/chocolate/stepper-willy-wonka.d.ts +0 -6
  200. package/accordion/stepper/index.d.ts +0 -4
  201. package/accordion/stepper/models/stepper.model.d.ts +0 -29
  202. package/accordion/stepper/providers/stepper.service.d.ts +0 -23
  203. package/accordion/stepper/step-button.d.ts +0 -21
  204. package/accordion/stepper/stepper-panel.d.ts +0 -28
  205. package/accordion/stepper/stepper.d.ts +0 -26
  206. package/accordion/stepper/stepper.module.d.ts +0 -14
  207. package/accordion/utils/animation.d.ts +0 -2
  208. package/button/button-group/button-group.d.ts +0 -60
  209. package/button/button-group/button-group.module.d.ts +0 -13
  210. package/button/button-group/button.d.ts +0 -40
  211. package/button/button-group/index.d.ts +0 -3
  212. package/button/button-loading/index.d.ts +0 -2
  213. package/button/button-loading/loading-button.d.ts +0 -17
  214. package/button/button-loading/loading-button.module.d.ts +0 -10
  215. package/button/button.module.d.ts +0 -9
  216. package/button/index.d.ts +0 -3
  217. package/button/providers/button-group-focus-handler.service.d.ts +0 -32
  218. package/button/providers/button-group-focus.enum.d.ts +0 -4
  219. package/button/providers/button-in-group.service.d.ts +0 -10
  220. package/clr-angular.module.d.ts +0 -25
  221. package/data/data.module.d.ts +0 -9
  222. package/data/datagrid/built-in/comparators/datagrid-property-comparator.d.ts +0 -7
  223. package/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.d.ts +0 -37
  224. package/data/datagrid/built-in/filters/datagrid-numeric-filter.d.ts +0 -58
  225. package/data/datagrid/built-in/filters/datagrid-property-numeric-filter.d.ts +0 -8
  226. package/data/datagrid/built-in/filters/datagrid-property-string-filter.d.ts +0 -8
  227. package/data/datagrid/built-in/filters/datagrid-string-filter-impl.d.ts +0 -39
  228. package/data/datagrid/built-in/filters/datagrid-string-filter.d.ts +0 -60
  229. package/data/datagrid/built-in/nested-property.d.ts +0 -10
  230. package/data/datagrid/chocolate/actionable-oompa-loompa.d.ts +0 -12
  231. package/data/datagrid/chocolate/datagrid-willy-wonka.d.ts +0 -6
  232. package/data/datagrid/chocolate/expandable-oompa-loompa.d.ts +0 -12
  233. package/data/datagrid/datagrid-action-bar.d.ts +0 -5
  234. package/data/datagrid/datagrid-action-overflow.d.ts +0 -28
  235. package/data/datagrid/datagrid-cell.d.ts +0 -21
  236. package/data/datagrid/datagrid-column-separator.d.ts +0 -36
  237. package/data/datagrid/datagrid-column-toggle-button.d.ts +0 -16
  238. package/data/datagrid/datagrid-column-toggle-trackby.d.ts +0 -6
  239. package/data/datagrid/datagrid-column-toggle.d.ts +0 -30
  240. package/data/datagrid/datagrid-column.d.ts +0 -92
  241. package/data/datagrid/datagrid-detail-body.d.ts +0 -5
  242. package/data/datagrid/datagrid-detail-header.d.ts +0 -14
  243. package/data/datagrid/datagrid-detail-registerer.d.ts +0 -9
  244. package/data/datagrid/datagrid-detail.d.ts +0 -17
  245. package/data/datagrid/datagrid-filter.d.ts +0 -40
  246. package/data/datagrid/datagrid-footer.d.ts +0 -17
  247. package/data/datagrid/datagrid-hideable-column.d.ts +0 -41
  248. package/data/datagrid/datagrid-if-detail.d.ts +0 -28
  249. package/data/datagrid/datagrid-if-expanded.service.d.ts +0 -18
  250. package/data/datagrid/datagrid-items.d.ts +0 -28
  251. package/data/datagrid/datagrid-page-size.d.ts +0 -13
  252. package/data/datagrid/datagrid-pagination.d.ts +0 -73
  253. package/data/datagrid/datagrid-placeholder.d.ts +0 -12
  254. package/data/datagrid/datagrid-row-detail.d.ts +0 -34
  255. package/data/datagrid/datagrid-row.d.ts +0 -109
  256. package/data/datagrid/datagrid-selection-cell.directive.d.ts +0 -9
  257. package/data/datagrid/datagrid-single-selection.directive.d.ts +0 -21
  258. package/data/datagrid/datagrid-virtual-scroll.directive.d.ts +0 -80
  259. package/data/datagrid/datagrid.d.ts +0 -149
  260. package/data/datagrid/datagrid.module.d.ts +0 -60
  261. package/data/datagrid/enums/column-changes.enum.d.ts +0 -6
  262. package/data/datagrid/enums/display-mode.enum.d.ts +0 -4
  263. package/data/datagrid/enums/render-step.enum.d.ts +0 -7
  264. package/data/datagrid/enums/selection-type.d.ts +0 -5
  265. package/data/datagrid/enums/sort-order.enum.d.ts +0 -12
  266. package/data/datagrid/index.d.ts +0 -50
  267. package/data/datagrid/interfaces/column-state.interface.d.ts +0 -14
  268. package/data/datagrid/interfaces/comparator.interface.d.ts +0 -3
  269. package/data/datagrid/interfaces/filter.interface.d.ts +0 -8
  270. package/data/datagrid/interfaces/key-nav-grid-strategy.interface.d.ts +0 -11
  271. package/data/datagrid/interfaces/numeric-filter.interface.d.ts +0 -3
  272. package/data/datagrid/interfaces/state.interface.d.ts +0 -14
  273. package/data/datagrid/interfaces/string-filter.interface.d.ts +0 -3
  274. package/data/datagrid/interfaces/virtual-scroll-data-range.interface.d.ts +0 -5
  275. package/data/datagrid/providers/column-resizer.service.d.ts +0 -22
  276. package/data/datagrid/providers/column-state.provider.d.ts +0 -9
  277. package/data/datagrid/providers/columns.service.d.ts +0 -18
  278. package/data/datagrid/providers/custom-filter.d.ts +0 -2
  279. package/data/datagrid/providers/detail.service.d.ts +0 -28
  280. package/data/datagrid/providers/display-mode.service.d.ts +0 -14
  281. package/data/datagrid/providers/filters.d.ts +0 -44
  282. package/data/datagrid/providers/global-expandable-rows.d.ts +0 -16
  283. package/data/datagrid/providers/items.d.ts +0 -84
  284. package/data/datagrid/providers/page.d.ts +0 -62
  285. package/data/datagrid/providers/row-action-service.d.ts +0 -12
  286. package/data/datagrid/providers/selection.d.ts +0 -105
  287. package/data/datagrid/providers/sort.d.ts +0 -44
  288. package/data/datagrid/providers/state-debouncer.provider.d.ts +0 -14
  289. package/data/datagrid/providers/state.provider.d.ts +0 -24
  290. package/data/datagrid/providers/table-size.service.d.ts +0 -17
  291. package/data/datagrid/render/cell-renderer.d.ts +0 -18
  292. package/data/datagrid/render/constants.d.ts +0 -4
  293. package/data/datagrid/render/header-renderer.d.ts +0 -34
  294. package/data/datagrid/render/main-renderer.d.ts +0 -71
  295. package/data/datagrid/render/noop-dom-adapter.d.ts +0 -13
  296. package/data/datagrid/render/render-organizer.d.ts +0 -12
  297. package/data/datagrid/render/row-detail-renderer.d.ts +0 -11
  298. package/data/datagrid/render/row-renderer.d.ts +0 -17
  299. package/data/datagrid/utils/datagrid-filter-registrar.d.ts +0 -18
  300. package/data/datagrid/utils/key-navigation-grid.controller.d.ts +0 -32
  301. package/data/datagrid/utils/key-navigation-strategies/default.d.ts +0 -15
  302. package/data/datagrid/utils/key-navigation-strategies/expanded-columns-row.d.ts +0 -12
  303. package/data/datagrid/utils/key-navigation-strategies/expanded-row.d.ts +0 -12
  304. package/data/datagrid/utils/key-navigation-utils.d.ts +0 -24
  305. package/data/datagrid/wrapped-cell.d.ts +0 -10
  306. package/data/datagrid/wrapped-column.d.ts +0 -10
  307. package/data/datagrid/wrapped-row.d.ts +0 -10
  308. package/data/index.d.ts +0 -4
  309. package/data/stack-view/index.d.ts +0 -6
  310. package/data/stack-view/stack-block.d.ts +0 -37
  311. package/data/stack-view/stack-content-input.d.ts +0 -6
  312. package/data/stack-view/stack-header.d.ts +0 -8
  313. package/data/stack-view/stack-view-custom-tags.d.ts +0 -15
  314. package/data/stack-view/stack-view.d.ts +0 -5
  315. package/data/stack-view/stack-view.module.d.ts +0 -18
  316. package/data/tree-view/index.d.ts +0 -6
  317. package/data/tree-view/models/async-array.d.ts +0 -3
  318. package/data/tree-view/models/declarative-tree-node.model.d.ts +0 -9
  319. package/data/tree-view/models/recursive-tree-node.model.d.ts +0 -18
  320. package/data/tree-view/models/selected-state.enum.d.ts +0 -5
  321. package/data/tree-view/models/tree-node.model.d.ts +0 -23
  322. package/data/tree-view/recursive-children.d.ts +0 -22
  323. package/data/tree-view/recursive-for-of.d.ts +0 -22
  324. package/data/tree-view/tree-features.service.d.ts +0 -22
  325. package/data/tree-view/tree-focus-manager.service.d.ts +0 -32
  326. package/data/tree-view/tree-node-link.d.ts +0 -10
  327. package/data/tree-view/tree-node.d.ts +0 -59
  328. package/data/tree-view/tree-view.module.d.ts +0 -17
  329. package/data/tree-view/tree.d.ts +0 -22
  330. package/emphasis/alert/alert-item.d.ts +0 -8
  331. package/emphasis/alert/alert-text.d.ts +0 -9
  332. package/emphasis/alert/alert.d.ts +0 -40
  333. package/emphasis/alert/alert.module.d.ts +0 -18
  334. package/emphasis/alert/alerts-pager.d.ts +0 -31
  335. package/emphasis/alert/alerts.d.ts +0 -32
  336. package/emphasis/alert/index.d.ts +0 -6
  337. package/emphasis/alert/providers/icon-and-types.service.d.ts +0 -18
  338. package/emphasis/alert/providers/multi-alert.service.d.ts +0 -28
  339. package/emphasis/alert/utils/alert-info-object.d.ts +0 -5
  340. package/emphasis/alert/utils/alert-types.d.ts +0 -1
  341. package/emphasis/emphasis.module.d.ts +0 -7
  342. package/emphasis/index.d.ts +0 -2
  343. package/esm2020/accordion/accordion-content.mjs +0 -21
  344. package/esm2020/accordion/accordion-description.mjs +0 -22
  345. package/esm2020/accordion/accordion-panel.mjs +0 -141
  346. package/esm2020/accordion/accordion-title.mjs +0 -22
  347. package/esm2020/accordion/accordion.mjs +0 -62
  348. package/esm2020/accordion/accordion.module.mjs +0 -56
  349. package/esm2020/accordion/chocolate/accordion-oompa-loompa.mjs +0 -34
  350. package/esm2020/accordion/chocolate/accordion-willy-wonka.mjs +0 -20
  351. package/esm2020/accordion/enums/accordion-status.enum.mjs +0 -13
  352. package/esm2020/accordion/enums/accordion-strategy.enum.mjs +0 -12
  353. package/esm2020/accordion/index.mjs +0 -17
  354. package/esm2020/accordion/models/accordion.model.mjs +0 -61
  355. package/esm2020/accordion/providers/accordion.service.mjs +0 -48
  356. package/esm2020/accordion/stepper/chocolate/stepper-oompa-loompa.mjs +0 -34
  357. package/esm2020/accordion/stepper/chocolate/stepper-willy-wonka.mjs +0 -20
  358. package/esm2020/accordion/stepper/index.mjs +0 -11
  359. package/esm2020/accordion/stepper/models/stepper.model.mjs +0 -146
  360. package/esm2020/accordion/stepper/providers/stepper.service.mjs +0 -75
  361. package/esm2020/accordion/stepper/step-button.mjs +0 -62
  362. package/esm2020/accordion/stepper/stepper-panel.mjs +0 -96
  363. package/esm2020/accordion/stepper/stepper.mjs +0 -105
  364. package/esm2020/accordion/stepper/stepper.module.mjs +0 -31
  365. package/esm2020/accordion/utils/animation.mjs +0 -31
  366. package/esm2020/button/button-group/button-group.mjs +0 -164
  367. package/esm2020/button/button-group/button-group.module.mjs +0 -28
  368. package/esm2020/button/button-group/button.mjs +0 -175
  369. package/esm2020/button/button-group/index.mjs +0 -10
  370. package/esm2020/button/button-loading/index.mjs +0 -9
  371. package/esm2020/button/button-loading/loading-button.mjs +0 -164
  372. package/esm2020/button/button-loading/loading-button.module.mjs +0 -25
  373. package/esm2020/button/button.module.mjs +0 -26
  374. package/esm2020/button/index.mjs +0 -10
  375. package/esm2020/button/providers/button-group-focus-handler.service.mjs +0 -97
  376. package/esm2020/button/providers/button-group-focus.enum.mjs +0 -12
  377. package/esm2020/button/providers/button-in-group.service.mjs +0 -26
  378. package/esm2020/clr-angular.mjs +0 -5
  379. package/esm2020/clr-angular.module.mjs +0 -93
  380. package/esm2020/data/data.module.mjs +0 -23
  381. package/esm2020/data/datagrid/built-in/comparators/datagrid-property-comparator.mjs +0 -46
  382. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.mjs +0 -93
  383. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +0 -259
  384. package/esm2020/data/datagrid/built-in/filters/datagrid-property-numeric-filter.mjs +0 -28
  385. package/esm2020/data/datagrid/built-in/filters/datagrid-property-string-filter.mjs +0 -27
  386. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter-impl.mjs +0 -82
  387. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +0 -185
  388. package/esm2020/data/datagrid/built-in/nested-property.mjs +0 -38
  389. package/esm2020/data/datagrid/chocolate/actionable-oompa-loompa.mjs +0 -34
  390. package/esm2020/data/datagrid/chocolate/datagrid-willy-wonka.mjs +0 -20
  391. package/esm2020/data/datagrid/chocolate/expandable-oompa-loompa.mjs +0 -34
  392. package/esm2020/data/datagrid/datagrid-action-bar.mjs +0 -21
  393. package/esm2020/data/datagrid/datagrid-action-overflow.mjs +0 -166
  394. package/esm2020/data/datagrid/datagrid-cell.mjs +0 -40
  395. package/esm2020/data/datagrid/datagrid-column-separator.mjs +0 -171
  396. package/esm2020/data/datagrid/datagrid-column-toggle-button.mjs +0 -65
  397. package/esm2020/data/datagrid/datagrid-column-toggle-trackby.mjs +0 -8
  398. package/esm2020/data/datagrid/datagrid-column-toggle.mjs +0 -204
  399. package/esm2020/data/datagrid/datagrid-column.mjs +0 -420
  400. package/esm2020/data/datagrid/datagrid-detail-body.mjs +0 -31
  401. package/esm2020/data/datagrid/datagrid-detail-header.mjs +0 -67
  402. package/esm2020/data/datagrid/datagrid-detail-registerer.mjs +0 -37
  403. package/esm2020/data/datagrid/datagrid-detail.mjs +0 -98
  404. package/esm2020/data/datagrid/datagrid-filter.mjs +0 -186
  405. package/esm2020/data/datagrid/datagrid-footer.mjs +0 -78
  406. package/esm2020/data/datagrid/datagrid-hideable-column.mjs +0 -106
  407. package/esm2020/data/datagrid/datagrid-if-detail.mjs +0 -96
  408. package/esm2020/data/datagrid/datagrid-if-expanded.service.mjs +0 -55
  409. package/esm2020/data/datagrid/datagrid-items.mjs +0 -72
  410. package/esm2020/data/datagrid/datagrid-page-size.mjs +0 -63
  411. package/esm2020/data/datagrid/datagrid-pagination.mjs +0 -388
  412. package/esm2020/data/datagrid/datagrid-placeholder.mjs +0 -42
  413. package/esm2020/data/datagrid/datagrid-row-detail.mjs +0 -116
  414. package/esm2020/data/datagrid/datagrid-row.mjs +0 -372
  415. package/esm2020/data/datagrid/datagrid-selection-cell.directive.mjs +0 -37
  416. package/esm2020/data/datagrid/datagrid-single-selection.directive.mjs +0 -74
  417. package/esm2020/data/datagrid/datagrid-virtual-scroll.directive.mjs +0 -340
  418. package/esm2020/data/datagrid/datagrid.mjs +0 -556
  419. package/esm2020/data/datagrid/datagrid.module.mjs +0 -238
  420. package/esm2020/data/datagrid/enums/column-changes.enum.mjs +0 -16
  421. package/esm2020/data/datagrid/enums/display-mode.enum.mjs +0 -12
  422. package/esm2020/data/datagrid/enums/render-step.enum.mjs +0 -15
  423. package/esm2020/data/datagrid/enums/selection-type.mjs +0 -13
  424. package/esm2020/data/datagrid/enums/sort-order.enum.mjs +0 -20
  425. package/esm2020/data/datagrid/index.mjs +0 -56
  426. package/esm2020/data/datagrid/interfaces/column-state.interface.mjs +0 -8
  427. package/esm2020/data/datagrid/interfaces/comparator.interface.mjs +0 -8
  428. package/esm2020/data/datagrid/interfaces/filter.interface.mjs +0 -8
  429. package/esm2020/data/datagrid/interfaces/key-nav-grid-strategy.interface.mjs +0 -8
  430. package/esm2020/data/datagrid/interfaces/numeric-filter.interface.mjs +0 -8
  431. package/esm2020/data/datagrid/interfaces/state.interface.mjs +0 -8
  432. package/esm2020/data/datagrid/interfaces/string-filter.interface.mjs +0 -8
  433. package/esm2020/data/datagrid/interfaces/virtual-scroll-data-range.interface.mjs +0 -8
  434. package/esm2020/data/datagrid/providers/column-resizer.service.mjs +0 -58
  435. package/esm2020/data/datagrid/providers/column-state.provider.mjs +0 -19
  436. package/esm2020/data/datagrid/providers/columns.service.mjs +0 -63
  437. package/esm2020/data/datagrid/providers/custom-filter.mjs +0 -9
  438. package/esm2020/data/datagrid/providers/detail.service.mjs +0 -76
  439. package/esm2020/data/datagrid/providers/display-mode.service.mjs +0 -36
  440. package/esm2020/data/datagrid/providers/filters.mjs +0 -112
  441. package/esm2020/data/datagrid/providers/global-expandable-rows.mjs +0 -34
  442. package/esm2020/data/datagrid/providers/items.mjs +0 -177
  443. package/esm2020/data/datagrid/providers/page.mjs +0 -156
  444. package/esm2020/data/datagrid/providers/row-action-service.mjs +0 -31
  445. package/esm2020/data/datagrid/providers/selection.mjs +0 -365
  446. package/esm2020/data/datagrid/providers/sort.mjs +0 -86
  447. package/esm2020/data/datagrid/providers/state-debouncer.provider.mjs +0 -43
  448. package/esm2020/data/datagrid/providers/state.provider.mjs +0 -75
  449. package/esm2020/data/datagrid/providers/table-size.service.mjs +0 -45
  450. package/esm2020/data/datagrid/render/cell-renderer.mjs +0 -59
  451. package/esm2020/data/datagrid/render/constants.mjs +0 -13
  452. package/esm2020/data/datagrid/render/header-renderer.mjs +0 -117
  453. package/esm2020/data/datagrid/render/main-renderer.mjs +0 -285
  454. package/esm2020/data/datagrid/render/noop-dom-adapter.mjs +0 -48
  455. package/esm2020/data/datagrid/render/render-organizer.mjs +0 -39
  456. package/esm2020/data/datagrid/render/row-detail-renderer.mjs +0 -31
  457. package/esm2020/data/datagrid/render/row-renderer.mjs +0 -62
  458. package/esm2020/data/datagrid/utils/datagrid-filter-registrar.mjs +0 -43
  459. package/esm2020/data/datagrid/utils/key-navigation-grid.controller.mjs +0 -155
  460. package/esm2020/data/datagrid/utils/key-navigation-strategies/default.mjs +0 -132
  461. package/esm2020/data/datagrid/utils/key-navigation-strategies/expanded-columns-row.mjs +0 -129
  462. package/esm2020/data/datagrid/utils/key-navigation-strategies/expanded-row.mjs +0 -165
  463. package/esm2020/data/datagrid/utils/key-navigation-utils.mjs +0 -121
  464. package/esm2020/data/datagrid/wrapped-cell.mjs +0 -37
  465. package/esm2020/data/datagrid/wrapped-column.mjs +0 -38
  466. package/esm2020/data/datagrid/wrapped-row.mjs +0 -38
  467. package/esm2020/data/index.mjs +0 -11
  468. package/esm2020/data/stack-view/index.mjs +0 -13
  469. package/esm2020/data/stack-view/stack-block.mjs +0 -236
  470. package/esm2020/data/stack-view/stack-content-input.mjs +0 -27
  471. package/esm2020/data/stack-view/stack-header.mjs +0 -37
  472. package/esm2020/data/stack-view/stack-view-custom-tags.mjs +0 -57
  473. package/esm2020/data/stack-view/stack-view.mjs +0 -23
  474. package/esm2020/data/stack-view/stack-view.module.mjs +0 -53
  475. package/esm2020/data/tree-view/index.mjs +0 -13
  476. package/esm2020/data/tree-view/models/async-array.mjs +0 -11
  477. package/esm2020/data/tree-view/models/declarative-tree-node.model.mjs +0 -37
  478. package/esm2020/data/tree-view/models/recursive-tree-node.model.mjs +0 -77
  479. package/esm2020/data/tree-view/models/selected-state.enum.mjs +0 -17
  480. package/esm2020/data/tree-view/models/tree-node.model.mjs +0 -116
  481. package/esm2020/data/tree-view/recursive-children.mjs +0 -88
  482. package/esm2020/data/tree-view/recursive-for-of.mjs +0 -57
  483. package/esm2020/data/tree-view/tree-features.service.mjs +0 -38
  484. package/esm2020/data/tree-view/tree-focus-manager.service.mjs +0 -190
  485. package/esm2020/data/tree-view/tree-node-link.mjs +0 -30
  486. package/esm2020/data/tree-view/tree-node.mjs +0 -348
  487. package/esm2020/data/tree-view/tree-view.module.mjs +0 -35
  488. package/esm2020/data/tree-view/tree.mjs +0 -102
  489. package/esm2020/emphasis/alert/alert-item.mjs +0 -52
  490. package/esm2020/emphasis/alert/alert-text.mjs +0 -23
  491. package/esm2020/emphasis/alert/alert.mjs +0 -142
  492. package/esm2020/emphasis/alert/alert.module.mjs +0 -36
  493. package/esm2020/emphasis/alert/alerts-pager.mjs +0 -87
  494. package/esm2020/emphasis/alert/alerts.mjs +0 -102
  495. package/esm2020/emphasis/alert/index.mjs +0 -13
  496. package/esm2020/emphasis/alert/providers/icon-and-types.service.mjs +0 -90
  497. package/esm2020/emphasis/alert/providers/multi-alert.service.mjs +0 -97
  498. package/esm2020/emphasis/alert/utils/alert-info-object.mjs +0 -8
  499. package/esm2020/emphasis/alert/utils/alert-types.mjs +0 -9
  500. package/esm2020/emphasis/emphasis.module.mjs +0 -21
  501. package/esm2020/emphasis/index.mjs +0 -9
  502. package/esm2020/forms/checkbox/checkbox-container.mjs +0 -136
  503. package/esm2020/forms/checkbox/checkbox-wrapper.mjs +0 -70
  504. package/esm2020/forms/checkbox/checkbox.mjs +0 -53
  505. package/esm2020/forms/checkbox/checkbox.module.mjs +0 -33
  506. package/esm2020/forms/checkbox/index.mjs +0 -11
  507. package/esm2020/forms/combobox/combobox-container.mjs +0 -106
  508. package/esm2020/forms/combobox/combobox.mjs +0 -360
  509. package/esm2020/forms/combobox/combobox.module.mjs +0 -97
  510. package/esm2020/forms/combobox/index.mjs +0 -15
  511. package/esm2020/forms/combobox/model/combobox.model.mjs +0 -9
  512. package/esm2020/forms/combobox/model/multi-select-combobox.model.mjs +0 -82
  513. package/esm2020/forms/combobox/model/pseudo-focus.model.mjs +0 -24
  514. package/esm2020/forms/combobox/model/single-select-combobox.model.mjs +0 -39
  515. package/esm2020/forms/combobox/option-group.mjs +0 -42
  516. package/esm2020/forms/combobox/option-items.directive.mjs +0 -110
  517. package/esm2020/forms/combobox/option-selected.directive.mjs +0 -25
  518. package/esm2020/forms/combobox/option.mjs +0 -103
  519. package/esm2020/forms/combobox/options.mjs +0 -156
  520. package/esm2020/forms/combobox/providers/combobox-container.service.mjs +0 -19
  521. package/esm2020/forms/combobox/providers/combobox-focus-handler.service.mjs +0 -222
  522. package/esm2020/forms/combobox/providers/option-selection.service.mjs +0 -85
  523. package/esm2020/forms/common/abstract-container.mjs +0 -135
  524. package/esm2020/forms/common/abstract-control.mjs +0 -51
  525. package/esm2020/forms/common/common.module.mjs +0 -78
  526. package/esm2020/forms/common/control-container.mjs +0 -84
  527. package/esm2020/forms/common/control.mjs +0 -31
  528. package/esm2020/forms/common/error.mjs +0 -38
  529. package/esm2020/forms/common/form.mjs +0 -54
  530. package/esm2020/forms/common/helper.mjs +0 -37
  531. package/esm2020/forms/common/if-control-state/abstract-if-state.mjs +0 -46
  532. package/esm2020/forms/common/if-control-state/if-control-state.service.mjs +0 -57
  533. package/esm2020/forms/common/if-control-state/if-error.mjs +0 -75
  534. package/esm2020/forms/common/if-control-state/if-success.mjs +0 -48
  535. package/esm2020/forms/common/index.mjs +0 -21
  536. package/esm2020/forms/common/label.mjs +0 -102
  537. package/esm2020/forms/common/layout.mjs +0 -32
  538. package/esm2020/forms/common/providers/container-id.service.mjs +0 -39
  539. package/esm2020/forms/common/providers/control-class.service.mjs +0 -53
  540. package/esm2020/forms/common/providers/control-id.service.mjs +0 -32
  541. package/esm2020/forms/common/providers/focus.service.mjs +0 -26
  542. package/esm2020/forms/common/providers/layout.service.mjs +0 -58
  543. package/esm2020/forms/common/providers/mark-control.service.mjs +0 -26
  544. package/esm2020/forms/common/providers/ng-control.service.mjs +0 -53
  545. package/esm2020/forms/common/success.mjs +0 -38
  546. package/esm2020/forms/common/wrapped-control.mjs +0 -191
  547. package/esm2020/forms/datalist/datalist-container.mjs +0 -121
  548. package/esm2020/forms/datalist/datalist-input.mjs +0 -63
  549. package/esm2020/forms/datalist/datalist.mjs +0 -49
  550. package/esm2020/forms/datalist/datalist.module.mjs +0 -32
  551. package/esm2020/forms/datalist/index.mjs +0 -11
  552. package/esm2020/forms/datalist/providers/datalist-id.service.mjs +0 -32
  553. package/esm2020/forms/datepicker/calendar.mjs +0 -175
  554. package/esm2020/forms/datepicker/date-container.mjs +0 -365
  555. package/esm2020/forms/datepicker/date-end-input.mjs +0 -60
  556. package/esm2020/forms/datepicker/date-input.mjs +0 -294
  557. package/esm2020/forms/datepicker/date-input.validator.mjs +0 -100
  558. package/esm2020/forms/datepicker/date-single-input.mjs +0 -63
  559. package/esm2020/forms/datepicker/date-start-input.mjs +0 -61
  560. package/esm2020/forms/datepicker/datepicker-action-buttons.mjs +0 -59
  561. package/esm2020/forms/datepicker/datepicker-view-manager.mjs +0 -74
  562. package/esm2020/forms/datepicker/datepicker.module.mjs +0 -111
  563. package/esm2020/forms/datepicker/day.mjs +0 -145
  564. package/esm2020/forms/datepicker/daypicker.mjs +0 -81
  565. package/esm2020/forms/datepicker/index.mjs +0 -21
  566. package/esm2020/forms/datepicker/interfaces/date-range.interface.mjs +0 -8
  567. package/esm2020/forms/datepicker/interfaces/day-of-week.interface.mjs +0 -8
  568. package/esm2020/forms/datepicker/model/calendar-view.model.mjs +0 -182
  569. package/esm2020/forms/datepicker/model/calendar.model.mjs +0 -79
  570. package/esm2020/forms/datepicker/model/day-view.model.mjs +0 -25
  571. package/esm2020/forms/datepicker/model/day.model.mjs +0 -72
  572. package/esm2020/forms/datepicker/model/year-range.model.mjs +0 -61
  573. package/esm2020/forms/datepicker/monthpicker.mjs +0 -325
  574. package/esm2020/forms/datepicker/providers/date-form-control.service.mjs +0 -37
  575. package/esm2020/forms/datepicker/providers/date-io.service.mjs +0 -195
  576. package/esm2020/forms/datepicker/providers/date-navigation.service.mjs +0 -195
  577. package/esm2020/forms/datepicker/providers/datepicker-enabled.service.mjs +0 -47
  578. package/esm2020/forms/datepicker/providers/datepicker-focus.service.mjs +0 -48
  579. package/esm2020/forms/datepicker/providers/locale-helper.service.mjs +0 -102
  580. package/esm2020/forms/datepicker/providers/view-manager.service.mjs +0 -42
  581. package/esm2020/forms/datepicker/utils/constants.mjs +0 -38
  582. package/esm2020/forms/datepicker/utils/date-utils.mjs +0 -50
  583. package/esm2020/forms/datepicker/yearpicker.mjs +0 -304
  584. package/esm2020/forms/file-input/file-input-container.mjs +0 -245
  585. package/esm2020/forms/file-input/file-input-validator-errors.mjs +0 -8
  586. package/esm2020/forms/file-input/file-input-validator.mjs +0 -101
  587. package/esm2020/forms/file-input/file-input-value-accessor.mjs +0 -56
  588. package/esm2020/forms/file-input/file-input.helpers.mjs +0 -22
  589. package/esm2020/forms/file-input/file-input.mjs +0 -71
  590. package/esm2020/forms/file-input/file-input.module.mjs +0 -74
  591. package/esm2020/forms/file-input/file-list.mjs +0 -160
  592. package/esm2020/forms/file-input/file-messages-template.mjs +0 -26
  593. package/esm2020/forms/file-input/file-messages.mjs +0 -61
  594. package/esm2020/forms/file-input/index.mjs +0 -16
  595. package/esm2020/forms/forms.module.mjs +0 -73
  596. package/esm2020/forms/index.mjs +0 -21
  597. package/esm2020/forms/input/index.mjs +0 -10
  598. package/esm2020/forms/input/input-container.mjs +0 -92
  599. package/esm2020/forms/input/input.mjs +0 -40
  600. package/esm2020/forms/input/input.module.mjs +0 -33
  601. package/esm2020/forms/number-input/index.mjs +0 -10
  602. package/esm2020/forms/number-input/number-input-container.mjs +0 -148
  603. package/esm2020/forms/number-input/number-input.mjs +0 -79
  604. package/esm2020/forms/number-input/number-input.module.mjs +0 -32
  605. package/esm2020/forms/password/index.mjs +0 -10
  606. package/esm2020/forms/password/password-container.mjs +0 -180
  607. package/esm2020/forms/password/password.mjs +0 -64
  608. package/esm2020/forms/password/password.module.mjs +0 -32
  609. package/esm2020/forms/radio/index.mjs +0 -11
  610. package/esm2020/forms/radio/radio-container.mjs +0 -150
  611. package/esm2020/forms/radio/radio-wrapper.mjs +0 -44
  612. package/esm2020/forms/radio/radio.mjs +0 -29
  613. package/esm2020/forms/radio/radio.module.mjs +0 -33
  614. package/esm2020/forms/range/index.mjs +0 -10
  615. package/esm2020/forms/range/range-container.mjs +0 -137
  616. package/esm2020/forms/range/range.mjs +0 -30
  617. package/esm2020/forms/range/range.module.mjs +0 -32
  618. package/esm2020/forms/select/index.mjs +0 -10
  619. package/esm2020/forms/select/select-container.mjs +0 -114
  620. package/esm2020/forms/select/select.mjs +0 -31
  621. package/esm2020/forms/select/select.module.mjs +0 -32
  622. package/esm2020/forms/textarea/index.mjs +0 -10
  623. package/esm2020/forms/textarea/textarea-container.mjs +0 -84
  624. package/esm2020/forms/textarea/textarea.mjs +0 -31
  625. package/esm2020/forms/textarea/textarea.module.mjs +0 -32
  626. package/esm2020/icon/icon.mjs +0 -29
  627. package/esm2020/icon/icon.module.mjs +0 -25
  628. package/esm2020/icon/index.mjs +0 -9
  629. package/esm2020/index.mjs +0 -23
  630. package/esm2020/layout/breadcrumbs/breadcrumb-item.mjs +0 -24
  631. package/esm2020/layout/breadcrumbs/breadcrumbs.constants.mjs +0 -8
  632. package/esm2020/layout/breadcrumbs/breadcrumbs.mjs +0 -46
  633. package/esm2020/layout/breadcrumbs/breadcrumbs.module.mjs +0 -28
  634. package/esm2020/layout/breadcrumbs/index.mjs +0 -11
  635. package/esm2020/layout/breadcrumbs/model/breadcrumbs.model.mjs +0 -8
  636. package/esm2020/layout/index.mjs +0 -13
  637. package/esm2020/layout/layout.module.mjs +0 -25
  638. package/esm2020/layout/main-container/index.mjs +0 -9
  639. package/esm2020/layout/main-container/main-container.mjs +0 -62
  640. package/esm2020/layout/main-container/main-container.module.mjs +0 -26
  641. package/esm2020/layout/nav/aria-current-link.mjs +0 -32
  642. package/esm2020/layout/nav/chocolate/index.mjs +0 -9
  643. package/esm2020/layout/nav/chocolate/main-container-willy-wonka.mjs +0 -20
  644. package/esm2020/layout/nav/chocolate/nav-detection-oompa-loompa.mjs +0 -36
  645. package/esm2020/layout/nav/header.mjs +0 -154
  646. package/esm2020/layout/nav/index.mjs +0 -12
  647. package/esm2020/layout/nav/nav-level.mjs +0 -197
  648. package/esm2020/layout/nav/navigation.module.mjs +0 -45
  649. package/esm2020/layout/nav/providers/responsive-navigation.service.mjs +0 -61
  650. package/esm2020/layout/nav/responsive-nav-codes.mjs +0 -21
  651. package/esm2020/layout/nav/responsive-nav-control-message.mjs +0 -19
  652. package/esm2020/layout/tabs/chocolate/active-oompa-loompa.mjs +0 -39
  653. package/esm2020/layout/tabs/chocolate/tabs-willy-wonka.mjs +0 -20
  654. package/esm2020/layout/tabs/enums/tabs-layout.enum.mjs +0 -12
  655. package/esm2020/layout/tabs/index.mjs +0 -17
  656. package/esm2020/layout/tabs/providers/tabs.service.mjs +0 -46
  657. package/esm2020/layout/tabs/tab-action.directive.mjs +0 -22
  658. package/esm2020/layout/tabs/tab-content.mjs +0 -87
  659. package/esm2020/layout/tabs/tab-link.directive.mjs +0 -105
  660. package/esm2020/layout/tabs/tab-overflow-content.mjs +0 -23
  661. package/esm2020/layout/tabs/tab.mjs +0 -47
  662. package/esm2020/layout/tabs/tabs-actions.mjs +0 -39
  663. package/esm2020/layout/tabs/tabs-id.provider.mjs +0 -17
  664. package/esm2020/layout/tabs/tabs.mjs +0 -327
  665. package/esm2020/layout/tabs/tabs.module.mjs +0 -67
  666. package/esm2020/layout/vertical-nav/index.mjs +0 -13
  667. package/esm2020/layout/vertical-nav/providers/vertical-nav-group-registration.service.mjs +0 -25
  668. package/esm2020/layout/vertical-nav/providers/vertical-nav-group.service.mjs +0 -26
  669. package/esm2020/layout/vertical-nav/providers/vertical-nav-icon.service.mjs +0 -28
  670. package/esm2020/layout/vertical-nav/providers/vertical-nav.service.mjs +0 -55
  671. package/esm2020/layout/vertical-nav/vertical-nav-group-children.mjs +0 -20
  672. package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +0 -162
  673. package/esm2020/layout/vertical-nav/vertical-nav-icon.mjs +0 -28
  674. package/esm2020/layout/vertical-nav/vertical-nav-link.mjs +0 -57
  675. package/esm2020/layout/vertical-nav/vertical-nav.mjs +0 -85
  676. package/esm2020/layout/vertical-nav/vertical-nav.module.mjs +0 -50
  677. package/esm2020/modal/index.mjs +0 -14
  678. package/esm2020/modal/modal-body.mjs +0 -65
  679. package/esm2020/modal/modal-configuration.service.mjs +0 -21
  680. package/esm2020/modal/modal-host.component.mjs +0 -29
  681. package/esm2020/modal/modal-stack.service.mjs +0 -53
  682. package/esm2020/modal/modal.mjs +0 -185
  683. package/esm2020/modal/modal.module.mjs +0 -33
  684. package/esm2020/modal/side-panel.mjs +0 -227
  685. package/esm2020/modal/side-panel.module.mjs +0 -28
  686. package/esm2020/popover/common/abstract-popover.mjs +0 -138
  687. package/esm2020/popover/common/popover-host-anchor.token.mjs +0 -9
  688. package/esm2020/popover/common/popover-options.interface.mjs +0 -8
  689. package/esm2020/popover/common/popover.mjs +0 -267
  690. package/esm2020/popover/dropdown/dropdown-item.mjs +0 -105
  691. package/esm2020/popover/dropdown/dropdown-menu.mjs +0 -115
  692. package/esm2020/popover/dropdown/dropdown-trigger.mjs +0 -51
  693. package/esm2020/popover/dropdown/dropdown.mjs +0 -53
  694. package/esm2020/popover/dropdown/dropdown.module.mjs +0 -30
  695. package/esm2020/popover/dropdown/index.mjs +0 -13
  696. package/esm2020/popover/dropdown/menu-positions.mjs +0 -17
  697. package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +0 -186
  698. package/esm2020/popover/dropdown/providers/dropdown.service.mjs +0 -34
  699. package/esm2020/popover/index.mjs +0 -11
  700. package/esm2020/popover/popover.module.mjs +0 -23
  701. package/esm2020/popover/signpost/index.mjs +0 -12
  702. package/esm2020/popover/signpost/providers/signpost-focus-manager.service.mjs +0 -24
  703. package/esm2020/popover/signpost/providers/signpost-id.service.mjs +0 -26
  704. package/esm2020/popover/signpost/signpost-content.mjs +0 -179
  705. package/esm2020/popover/signpost/signpost-positions.mjs +0 -23
  706. package/esm2020/popover/signpost/signpost-title.mjs +0 -21
  707. package/esm2020/popover/signpost/signpost-trigger.mjs +0 -90
  708. package/esm2020/popover/signpost/signpost.mjs +0 -94
  709. package/esm2020/popover/signpost/signpost.module.mjs +0 -46
  710. package/esm2020/popover/tooltip/index.mjs +0 -11
  711. package/esm2020/popover/tooltip/providers/tooltip-id.service.mjs +0 -26
  712. package/esm2020/popover/tooltip/providers/tooltip-mouse.service.mjs +0 -44
  713. package/esm2020/popover/tooltip/tooltip-content.mjs +0 -135
  714. package/esm2020/popover/tooltip/tooltip-trigger.mjs +0 -62
  715. package/esm2020/popover/tooltip/tooltip.mjs +0 -29
  716. package/esm2020/popover/tooltip/tooltip.module.mjs +0 -29
  717. package/esm2020/progress/progress-bars/index.mjs +0 -9
  718. package/esm2020/progress/progress-bars/progress-bar.mjs +0 -177
  719. package/esm2020/progress/progress-bars/progress-bar.module.mjs +0 -25
  720. package/esm2020/progress/spinner/index.mjs +0 -9
  721. package/esm2020/progress/spinner/spinner.mjs +0 -95
  722. package/esm2020/progress/spinner/spinner.module.mjs +0 -25
  723. package/esm2020/timeline/enums/timeline-layout.enum.mjs +0 -12
  724. package/esm2020/timeline/enums/timeline-step-state.enum.mjs +0 -15
  725. package/esm2020/timeline/index.mjs +0 -15
  726. package/esm2020/timeline/interface/icon-attribute.interface.mjs +0 -8
  727. package/esm2020/timeline/providers/timeline-icon-attribute.service.mjs +0 -55
  728. package/esm2020/timeline/timeline-step-description.mjs +0 -21
  729. package/esm2020/timeline/timeline-step-header.mjs +0 -21
  730. package/esm2020/timeline/timeline-step-title.mjs +0 -31
  731. package/esm2020/timeline/timeline-step.mjs +0 -97
  732. package/esm2020/timeline/timeline.mjs +0 -36
  733. package/esm2020/timeline/timeline.module.mjs +0 -49
  734. package/esm2020/utils/animations/collapse/collapse.mjs +0 -17
  735. package/esm2020/utils/animations/collapse/index.mjs +0 -8
  736. package/esm2020/utils/animations/constants.mjs +0 -14
  737. package/esm2020/utils/animations/expandable-animation/base-expandable-animation.mjs +0 -46
  738. package/esm2020/utils/animations/expandable-animation/expandable-animation.directive.mjs +0 -56
  739. package/esm2020/utils/animations/expandable-animation/expandable-animation.mjs +0 -49
  740. package/esm2020/utils/animations/expandable-animation/expandable-animation.module.mjs +0 -26
  741. package/esm2020/utils/animations/expandable-animation/index.mjs +0 -12
  742. package/esm2020/utils/animations/fade/fade.mjs +0 -15
  743. package/esm2020/utils/animations/fade/index.mjs +0 -8
  744. package/esm2020/utils/animations/fade-slide/fade-slide.mjs +0 -31
  745. package/esm2020/utils/animations/fade-slide/index.mjs +0 -8
  746. package/esm2020/utils/animations/index.mjs +0 -12
  747. package/esm2020/utils/animations/slide/index.mjs +0 -8
  748. package/esm2020/utils/animations/slide/slide.mjs +0 -31
  749. package/esm2020/utils/assert/assert.helpers.mjs +0 -10
  750. package/esm2020/utils/breakpoints/breakpoints.mjs +0 -24
  751. package/esm2020/utils/cdk/cdk-drag.module.mjs +0 -58
  752. package/esm2020/utils/cdk/cdk-trap-focus.module.mjs +0 -53
  753. package/esm2020/utils/chocolate/oompa-loompa.mjs +0 -33
  754. package/esm2020/utils/chocolate/willy-wonka.mjs +0 -37
  755. package/esm2020/utils/component/is-boolean-attribute-set.mjs +0 -19
  756. package/esm2020/utils/conditional/conditional.module.mjs +0 -27
  757. package/esm2020/utils/conditional/if-active.directive.mjs +0 -98
  758. package/esm2020/utils/conditional/if-active.service.mjs +0 -71
  759. package/esm2020/utils/conditional/if-expanded.directive.mjs +0 -96
  760. package/esm2020/utils/conditional/if-expanded.service.mjs +0 -60
  761. package/esm2020/utils/conditional/if-open.directive.mjs +0 -81
  762. package/esm2020/utils/conditional/index.mjs +0 -11
  763. package/esm2020/utils/destroy/destroy.service.mjs +0 -45
  764. package/esm2020/utils/destroy/index.mjs +0 -8
  765. package/esm2020/utils/dom-adapter/dom-adapter.mjs +0 -62
  766. package/esm2020/utils/enums/keys.enum.mjs +0 -33
  767. package/esm2020/utils/focus/arrow-key-direction.enum.mjs +0 -14
  768. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.mjs +0 -90
  769. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.module.mjs +0 -27
  770. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.provider.mjs +0 -15
  771. package/esm2020/utils/focus/focus-on-view-init/index.mjs +0 -10
  772. package/esm2020/utils/focus/focus-trap/index.mjs +0 -8
  773. package/esm2020/utils/focus/focus-trap/standalone-cdk-trap-focus.directive.mjs +0 -35
  774. package/esm2020/utils/focus/focus.service.mjs +0 -95
  775. package/esm2020/utils/focus/focusable-item/basic-focusable-item.service.mjs +0 -55
  776. package/esm2020/utils/focus/focusable-item/custom-focusable-item-provider.mjs +0 -17
  777. package/esm2020/utils/focus/focusable-item/focusable-item.mjs +0 -9
  778. package/esm2020/utils/focus/focusable-item/linkers.mjs +0 -35
  779. package/esm2020/utils/focus/key-focus/enums/focus-direction.enum.mjs +0 -13
  780. package/esm2020/utils/focus/key-focus/index.mjs +0 -9
  781. package/esm2020/utils/focus/key-focus/interfaces.mjs +0 -8
  782. package/esm2020/utils/focus/key-focus/key-focus-item.mjs +0 -35
  783. package/esm2020/utils/focus/key-focus/key-focus.mjs +0 -199
  784. package/esm2020/utils/focus/key-focus/key-focus.module.mjs +0 -27
  785. package/esm2020/utils/focus/key-focus/roving-tabindex.mjs +0 -103
  786. package/esm2020/utils/focus/key-focus/util.mjs +0 -45
  787. package/esm2020/utils/focus/wrap-observable.mjs +0 -20
  788. package/esm2020/utils/forms/validation.mjs +0 -21
  789. package/esm2020/utils/host-wrapping/empty-anchor.mjs +0 -19
  790. package/esm2020/utils/host-wrapping/host-wrapper.mjs +0 -42
  791. package/esm2020/utils/host-wrapping/host-wrapping.module.mjs +0 -25
  792. package/esm2020/utils/i18n/common-strings.default.mjs +0 -137
  793. package/esm2020/utils/i18n/common-strings.interface.mjs +0 -8
  794. package/esm2020/utils/i18n/common-strings.service.mjs +0 -48
  795. package/esm2020/utils/i18n/index.mjs +0 -10
  796. package/esm2020/utils/id-generator/id-generator.service.mjs +0 -11
  797. package/esm2020/utils/index.mjs +0 -15
  798. package/esm2020/utils/loading/index.mjs +0 -10
  799. package/esm2020/utils/loading/loading-listener.mjs +0 -13
  800. package/esm2020/utils/loading/loading.mjs +0 -58
  801. package/esm2020/utils/loading/loading.module.mjs +0 -25
  802. package/esm2020/utils/outside-click/index.mjs +0 -10
  803. package/esm2020/utils/outside-click/outside-click.mjs +0 -49
  804. package/esm2020/utils/outside-click/outside-click.module.mjs +0 -25
  805. package/esm2020/utils/popover/enums/alignment.enum.mjs +0 -13
  806. package/esm2020/utils/popover/enums/axis.enum.mjs +0 -12
  807. package/esm2020/utils/popover/enums/positions.enum.mjs +0 -60
  808. package/esm2020/utils/popover/enums/side.enum.mjs +0 -12
  809. package/esm2020/utils/popover/enums/viewport-violation.enum.mjs +0 -14
  810. package/esm2020/utils/popover/index.mjs +0 -21
  811. package/esm2020/utils/popover/interfaces/popover-content-offset.interface.mjs +0 -8
  812. package/esm2020/utils/popover/interfaces/popover-position.interface.mjs +0 -8
  813. package/esm2020/utils/popover/interfaces/visibility-coords.interface.mjs +0 -8
  814. package/esm2020/utils/popover/popover-anchor.mjs +0 -26
  815. package/esm2020/utils/popover/popover-close-button.mjs +0 -52
  816. package/esm2020/utils/popover/popover-content.mjs +0 -161
  817. package/esm2020/utils/popover/popover-host.directive.mjs +0 -37
  818. package/esm2020/utils/popover/popover-open-close-button.mjs +0 -43
  819. package/esm2020/utils/popover/popover.module.mjs +0 -26
  820. package/esm2020/utils/popover/position-operators.mjs +0 -180
  821. package/esm2020/utils/popover/providers/popover-events.service.mjs +0 -142
  822. package/esm2020/utils/popover/providers/popover-position.service.mjs +0 -230
  823. package/esm2020/utils/popover/providers/popover-toggle.service.mjs +0 -75
  824. package/esm2020/utils/popover/stop-escape-propagation.directive.mjs +0 -43
  825. package/esm2020/utils/scrolling/scrolling-service.mjs +0 -31
  826. package/esm2020/utils/template-ref/index.mjs +0 -10
  827. package/esm2020/utils/template-ref/template-ref-container.mjs +0 -30
  828. package/esm2020/utils/template-ref/template-ref.module.mjs +0 -25
  829. package/esm2020/wizard/heading-level.mjs +0 -8
  830. package/esm2020/wizard/index.mjs +0 -20
  831. package/esm2020/wizard/providers/button-hub.service.mjs +0 -64
  832. package/esm2020/wizard/providers/header-actions.service.mjs +0 -36
  833. package/esm2020/wizard/providers/page-collection.service.mjs +0 -360
  834. package/esm2020/wizard/providers/wizard-navigation.service.mjs +0 -575
  835. package/esm2020/wizard/wizard-button.mjs +0 -188
  836. package/esm2020/wizard/wizard-header-action.mjs +0 -77
  837. package/esm2020/wizard/wizard-page-buttons.mjs +0 -22
  838. package/esm2020/wizard/wizard-page-header-actions.mjs +0 -22
  839. package/esm2020/wizard/wizard-page-navtitle.mjs +0 -22
  840. package/esm2020/wizard/wizard-page-title.mjs +0 -25
  841. package/esm2020/wizard/wizard-page.mjs +0 -652
  842. package/esm2020/wizard/wizard-stepnav-item.mjs +0 -204
  843. package/esm2020/wizard/wizard-stepnav.mjs +0 -55
  844. package/esm2020/wizard/wizard-title.mjs +0 -22
  845. package/esm2020/wizard/wizard.mjs +0 -535
  846. package/esm2020/wizard/wizard.module.mjs +0 -73
  847. package/fesm2015/clr-angular.mjs +0 -31534
  848. package/fesm2015/clr-angular.mjs.map +0 -1
  849. package/fesm2020/clr-angular.mjs +0 -31350
  850. package/fesm2020/clr-angular.mjs.map +0 -1
  851. package/forms/checkbox/checkbox-container.d.ts +0 -25
  852. package/forms/checkbox/checkbox-wrapper.d.ts +0 -22
  853. package/forms/checkbox/checkbox.d.ts +0 -20
  854. package/forms/checkbox/checkbox.module.d.ts +0 -14
  855. package/forms/checkbox/index.d.ts +0 -4
  856. package/forms/combobox/combobox-container.d.ts +0 -18
  857. package/forms/combobox/combobox.d.ts +0 -87
  858. package/forms/combobox/combobox.module.d.ts +0 -22
  859. package/forms/combobox/index.d.ts +0 -8
  860. package/forms/combobox/model/combobox.model.d.ts +0 -9
  861. package/forms/combobox/model/multi-select-combobox.model.d.ts +0 -12
  862. package/forms/combobox/model/pseudo-focus.model.d.ts +0 -7
  863. package/forms/combobox/model/single-select-combobox.model.d.ts +0 -10
  864. package/forms/combobox/option-group.d.ts +0 -9
  865. package/forms/combobox/option-items.directive.d.ts +0 -28
  866. package/forms/combobox/option-selected.directive.d.ts +0 -13
  867. package/forms/combobox/option.d.ts +0 -25
  868. package/forms/combobox/options.d.ts +0 -36
  869. package/forms/combobox/providers/combobox-container.service.d.ts +0 -7
  870. package/forms/combobox/providers/combobox-focus-handler.service.d.ts +0 -48
  871. package/forms/combobox/providers/option-selection.service.d.ts +0 -24
  872. package/forms/common/abstract-container.d.ts +0 -47
  873. package/forms/common/abstract-control.d.ts +0 -18
  874. package/forms/common/common.module.d.ts +0 -19
  875. package/forms/common/control-container.d.ts +0 -6
  876. package/forms/common/control.d.ts +0 -11
  877. package/forms/common/error.d.ts +0 -12
  878. package/forms/common/form.d.ts +0 -16
  879. package/forms/common/helper.d.ts +0 -12
  880. package/forms/common/if-control-state/abstract-if-state.d.ts +0 -18
  881. package/forms/common/if-control-state/if-control-state.service.d.ts +0 -17
  882. package/forms/common/if-control-state/if-error.d.ts +0 -19
  883. package/forms/common/if-control-state/if-success.d.ts +0 -16
  884. package/forms/common/index.d.ts +0 -14
  885. package/forms/common/label.d.ts +0 -32
  886. package/forms/common/layout.d.ts +0 -11
  887. package/forms/common/providers/container-id.service.d.ts +0 -18
  888. package/forms/common/providers/control-class.service.d.ts +0 -13
  889. package/forms/common/providers/control-id.service.d.ts +0 -11
  890. package/forms/common/providers/focus.service.d.ts +0 -9
  891. package/forms/common/providers/layout.service.d.ts +0 -23
  892. package/forms/common/providers/mark-control.service.d.ts +0 -9
  893. package/forms/common/providers/ng-control.service.d.ts +0 -27
  894. package/forms/common/success.d.ts +0 -12
  895. package/forms/common/wrapped-control.d.ts +0 -46
  896. package/forms/datalist/datalist-container.d.ts +0 -14
  897. package/forms/datalist/datalist-input.d.ts +0 -18
  898. package/forms/datalist/datalist.d.ts +0 -14
  899. package/forms/datalist/datalist.module.d.ts +0 -13
  900. package/forms/datalist/index.d.ts +0 -4
  901. package/forms/datalist/providers/datalist-id.service.d.ts +0 -11
  902. package/forms/datepicker/calendar.d.ts +0 -65
  903. package/forms/datepicker/date-container.d.ts +0 -72
  904. package/forms/datepicker/date-end-input.d.ts +0 -15
  905. package/forms/datepicker/date-input.d.ts +0 -67
  906. package/forms/datepicker/date-input.validator.d.ts +0 -27
  907. package/forms/datepicker/date-single-input.d.ts +0 -15
  908. package/forms/datepicker/date-start-input.d.ts +0 -15
  909. package/forms/datepicker/datepicker-action-buttons.d.ts +0 -16
  910. package/forms/datepicker/datepicker-view-manager.d.ts +0 -30
  911. package/forms/datepicker/datepicker.module.d.ts +0 -29
  912. package/forms/datepicker/day.d.ts +0 -40
  913. package/forms/datepicker/daypicker.d.ts +0 -44
  914. package/forms/datepicker/index.d.ts +0 -14
  915. package/forms/datepicker/interfaces/date-range.interface.d.ts +0 -13
  916. package/forms/datepicker/interfaces/day-of-week.interface.d.ts +0 -4
  917. package/forms/datepicker/model/calendar-view.model.d.ts +0 -74
  918. package/forms/datepicker/model/calendar.model.d.ts +0 -35
  919. package/forms/datepicker/model/day-view.model.d.ts +0 -16
  920. package/forms/datepicker/model/day.model.d.ts +0 -30
  921. package/forms/datepicker/model/year-range.model.d.ts +0 -34
  922. package/forms/datepicker/monthpicker.d.ts +0 -87
  923. package/forms/datepicker/providers/date-form-control.service.d.ts +0 -14
  924. package/forms/datepicker/providers/date-io.service.d.ts +0 -39
  925. package/forms/datepicker/providers/date-navigation.service.d.ts +0 -94
  926. package/forms/datepicker/providers/datepicker-enabled.service.d.ts +0 -15
  927. package/forms/datepicker/providers/datepicker-focus.service.d.ts +0 -16
  928. package/forms/datepicker/providers/locale-helper.service.d.ts +0 -46
  929. package/forms/datepicker/providers/view-manager.service.d.ts +0 -17
  930. package/forms/datepicker/utils/constants.d.ts +0 -24
  931. package/forms/datepicker/utils/date-utils.d.ts +0 -16
  932. package/forms/datepicker/yearpicker.d.ts +0 -78
  933. package/forms/file-input/file-input-container.d.ts +0 -27
  934. package/forms/file-input/file-input-validator-errors.d.ts +0 -52
  935. package/forms/file-input/file-input-validator.d.ts +0 -14
  936. package/forms/file-input/file-input-value-accessor.d.ts +0 -16
  937. package/forms/file-input/file-input.d.ts +0 -22
  938. package/forms/file-input/file-input.helpers.d.ts +0 -3
  939. package/forms/file-input/file-input.module.d.ts +0 -17
  940. package/forms/file-input/file-list.d.ts +0 -18
  941. package/forms/file-input/file-messages-template.d.ts +0 -19
  942. package/forms/file-input/file-messages.d.ts +0 -17
  943. package/forms/file-input/index.d.ts +0 -9
  944. package/forms/forms.module.d.ts +0 -20
  945. package/forms/index.d.ts +0 -14
  946. package/forms/input/index.d.ts +0 -3
  947. package/forms/input/input-container.d.ts +0 -6
  948. package/forms/input/input.d.ts +0 -11
  949. package/forms/input/input.module.d.ts +0 -13
  950. package/forms/number-input/index.d.ts +0 -3
  951. package/forms/number-input/number-input-container.d.ts +0 -17
  952. package/forms/number-input/number-input.d.ts +0 -22
  953. package/forms/number-input/number-input.module.d.ts +0 -13
  954. package/forms/password/index.d.ts +0 -3
  955. package/forms/password/password-container.d.ts +0 -32
  956. package/forms/password/password.d.ts +0 -16
  957. package/forms/password/password.module.d.ts +0 -13
  958. package/forms/radio/index.d.ts +0 -4
  959. package/forms/radio/radio-container.d.ts +0 -28
  960. package/forms/radio/radio-wrapper.d.ts +0 -9
  961. package/forms/radio/radio.d.ts +0 -10
  962. package/forms/radio/radio.module.d.ts +0 -14
  963. package/forms/range/index.d.ts +0 -3
  964. package/forms/range/range-container.d.ts +0 -22
  965. package/forms/range/range.d.ts +0 -10
  966. package/forms/range/range.module.d.ts +0 -13
  967. package/forms/select/index.d.ts +0 -3
  968. package/forms/select/select-container.d.ts +0 -20
  969. package/forms/select/select.d.ts +0 -11
  970. package/forms/select/select.module.d.ts +0 -13
  971. package/forms/textarea/index.d.ts +0 -3
  972. package/forms/textarea/textarea-container.d.ts +0 -6
  973. package/forms/textarea/textarea.d.ts +0 -11
  974. package/forms/textarea/textarea.module.d.ts +0 -13
  975. package/icon/icon.d.ts +0 -9
  976. package/icon/icon.module.d.ts +0 -10
  977. package/icon/index.d.ts +0 -2
  978. package/index.d.ts +0 -16
  979. package/layout/breadcrumbs/breadcrumb-item.d.ts +0 -5
  980. package/layout/breadcrumbs/breadcrumbs.constants.d.ts +0 -1
  981. package/layout/breadcrumbs/breadcrumbs.d.ts +0 -17
  982. package/layout/breadcrumbs/breadcrumbs.module.d.ts +0 -12
  983. package/layout/breadcrumbs/index.d.ts +0 -4
  984. package/layout/breadcrumbs/model/breadcrumbs.model.d.ts +0 -9
  985. package/layout/index.d.ts +0 -6
  986. package/layout/layout.module.d.ts +0 -11
  987. package/layout/main-container/index.d.ts +0 -2
  988. package/layout/main-container/main-container.d.ts +0 -17
  989. package/layout/main-container/main-container.module.d.ts +0 -11
  990. package/layout/nav/aria-current-link.d.ts +0 -13
  991. package/layout/nav/chocolate/index.d.ts +0 -2
  992. package/layout/nav/chocolate/main-container-willy-wonka.d.ts +0 -6
  993. package/layout/nav/chocolate/nav-detection-oompa-loompa.d.ts +0 -12
  994. package/layout/nav/header.d.ts +0 -31
  995. package/layout/nav/index.d.ts +0 -5
  996. package/layout/nav/nav-level.d.ts +0 -35
  997. package/layout/nav/navigation.module.d.ts +0 -16
  998. package/layout/nav/providers/responsive-navigation.service.d.ts +0 -18
  999. package/layout/nav/responsive-nav-codes.d.ts +0 -14
  1000. package/layout/nav/responsive-nav-control-message.d.ts +0 -7
  1001. package/layout/tabs/chocolate/active-oompa-loompa.d.ts +0 -13
  1002. package/layout/tabs/chocolate/tabs-willy-wonka.d.ts +0 -6
  1003. package/layout/tabs/enums/tabs-layout.enum.d.ts +0 -4
  1004. package/layout/tabs/index.d.ts +0 -11
  1005. package/layout/tabs/providers/tabs.service.d.ts +0 -16
  1006. package/layout/tabs/tab-action.directive.d.ts +0 -5
  1007. package/layout/tabs/tab-content.d.ts +0 -18
  1008. package/layout/tabs/tab-link.directive.d.ts +0 -25
  1009. package/layout/tabs/tab-overflow-content.d.ts +0 -5
  1010. package/layout/tabs/tab.d.ts +0 -17
  1011. package/layout/tabs/tabs-actions.d.ts +0 -7
  1012. package/layout/tabs/tabs-id.provider.d.ts +0 -7
  1013. package/layout/tabs/tabs.d.ts +0 -50
  1014. package/layout/tabs/tabs.module.d.ts +0 -23
  1015. package/layout/vertical-nav/index.d.ts +0 -6
  1016. package/layout/vertical-nav/providers/vertical-nav-group-registration.service.d.ts +0 -8
  1017. package/layout/vertical-nav/providers/vertical-nav-group.service.d.ts +0 -9
  1018. package/layout/vertical-nav/providers/vertical-nav-icon.service.d.ts +0 -9
  1019. package/layout/vertical-nav/providers/vertical-nav.service.d.ts +0 -17
  1020. package/layout/vertical-nav/vertical-nav-group-children.d.ts +0 -5
  1021. package/layout/vertical-nav/vertical-nav-group.d.ts +0 -32
  1022. package/layout/vertical-nav/vertical-nav-icon.d.ts +0 -10
  1023. package/layout/vertical-nav/vertical-nav-link.d.ts +0 -10
  1024. package/layout/vertical-nav/vertical-nav.d.ts +0 -28
  1025. package/layout/vertical-nav/vertical-nav.module.d.ts +0 -18
  1026. package/modal/index.d.ts +0 -7
  1027. package/modal/modal-body.d.ts +0 -22
  1028. package/modal/modal-configuration.service.d.ts +0 -7
  1029. package/modal/modal-host.component.d.ts +0 -5
  1030. package/modal/modal-stack.service.d.ts +0 -15
  1031. package/modal/modal.d.ts +0 -43
  1032. package/modal/modal.module.d.ts +0 -15
  1033. package/modal/side-panel.d.ts +0 -53
  1034. package/modal/side-panel.module.d.ts +0 -13
  1035. package/popover/common/abstract-popover.d.ts +0 -35
  1036. package/popover/common/popover-host-anchor.token.d.ts +0 -2
  1037. package/popover/common/popover-options.interface.d.ts +0 -7
  1038. package/popover/common/popover.d.ts +0 -30
  1039. package/popover/dropdown/dropdown-item.d.ts +0 -27
  1040. package/popover/dropdown/dropdown-menu.d.ts +0 -15
  1041. package/popover/dropdown/dropdown-trigger.d.ts +0 -16
  1042. package/popover/dropdown/dropdown.d.ts +0 -17
  1043. package/popover/dropdown/dropdown.module.d.ts +0 -15
  1044. package/popover/dropdown/index.d.ts +0 -6
  1045. package/popover/dropdown/menu-positions.d.ts +0 -1
  1046. package/popover/dropdown/providers/dropdown-focus-handler.service.d.ts +0 -49
  1047. package/popover/dropdown/providers/dropdown.service.d.ts +0 -16
  1048. package/popover/index.d.ts +0 -4
  1049. package/popover/popover.module.d.ts +0 -9
  1050. package/popover/signpost/index.d.ts +0 -5
  1051. package/popover/signpost/providers/signpost-focus-manager.service.d.ts +0 -8
  1052. package/popover/signpost/providers/signpost-id.service.d.ts +0 -9
  1053. package/popover/signpost/signpost-content.d.ts +0 -57
  1054. package/popover/signpost/signpost-positions.d.ts +0 -10
  1055. package/popover/signpost/signpost-title.d.ts +0 -5
  1056. package/popover/signpost/signpost-trigger.d.ts +0 -29
  1057. package/popover/signpost/signpost.d.ts +0 -27
  1058. package/popover/signpost/signpost.module.d.ts +0 -17
  1059. package/popover/tooltip/index.d.ts +0 -4
  1060. package/popover/tooltip/providers/tooltip-id.service.d.ts +0 -9
  1061. package/popover/tooltip/providers/tooltip-mouse.service.d.ts +0 -15
  1062. package/popover/tooltip/tooltip-content.d.ts +0 -25
  1063. package/popover/tooltip/tooltip-trigger.d.ts +0 -18
  1064. package/popover/tooltip/tooltip.d.ts +0 -6
  1065. package/popover/tooltip/tooltip.module.d.ts +0 -14
  1066. package/progress/progress-bars/index.d.ts +0 -2
  1067. package/progress/progress-bars/progress-bar.d.ts +0 -45
  1068. package/progress/progress-bars/progress-bar.module.d.ts +0 -10
  1069. package/progress/spinner/index.d.ts +0 -2
  1070. package/progress/spinner/spinner.d.ts +0 -32
  1071. package/progress/spinner/spinner.module.d.ts +0 -10
  1072. package/timeline/enums/timeline-layout.enum.d.ts +0 -4
  1073. package/timeline/enums/timeline-step-state.enum.d.ts +0 -7
  1074. package/timeline/index.d.ts +0 -8
  1075. package/timeline/interface/icon-attribute.interface.d.ts +0 -6
  1076. package/timeline/providers/timeline-icon-attribute.service.d.ts +0 -12
  1077. package/timeline/timeline-step-description.d.ts +0 -5
  1078. package/timeline/timeline-step-header.d.ts +0 -5
  1079. package/timeline/timeline-step-title.d.ts +0 -15
  1080. package/timeline/timeline-step.d.ts +0 -19
  1081. package/timeline/timeline.d.ts +0 -8
  1082. package/timeline/timeline.module.d.ts +0 -15
  1083. package/utils/animations/collapse/collapse.d.ts +0 -2
  1084. package/utils/animations/collapse/index.d.ts +0 -1
  1085. package/utils/animations/constants.d.ts +0 -2
  1086. package/utils/animations/expandable-animation/base-expandable-animation.d.ts +0 -16
  1087. package/utils/animations/expandable-animation/expandable-animation.d.ts +0 -16
  1088. package/utils/animations/expandable-animation/expandable-animation.directive.d.ts +0 -16
  1089. package/utils/animations/expandable-animation/expandable-animation.module.d.ts +0 -9
  1090. package/utils/animations/expandable-animation/index.d.ts +0 -4
  1091. package/utils/animations/fade/fade.d.ts +0 -2
  1092. package/utils/animations/fade/index.d.ts +0 -1
  1093. package/utils/animations/fade-slide/fade-slide.d.ts +0 -2
  1094. package/utils/animations/fade-slide/index.d.ts +0 -1
  1095. package/utils/animations/index.d.ts +0 -5
  1096. package/utils/animations/slide/index.d.ts +0 -1
  1097. package/utils/animations/slide/slide.d.ts +0 -2
  1098. package/utils/assert/assert.helpers.d.ts +0 -1
  1099. package/utils/breakpoints/breakpoints.d.ts +0 -15
  1100. package/utils/cdk/cdk-drag.module.d.ts +0 -25
  1101. package/utils/cdk/cdk-trap-focus.module.d.ts +0 -24
  1102. package/utils/chocolate/oompa-loompa.d.ts +0 -13
  1103. package/utils/chocolate/willy-wonka.d.ts +0 -11
  1104. package/utils/component/is-boolean-attribute-set.d.ts +0 -1
  1105. package/utils/conditional/conditional.module.d.ts +0 -12
  1106. package/utils/conditional/if-active.directive.d.ts +0 -38
  1107. package/utils/conditional/if-active.service.d.ts +0 -45
  1108. package/utils/conditional/if-expanded.directive.d.ts +0 -24
  1109. package/utils/conditional/if-expanded.service.d.ts +0 -20
  1110. package/utils/conditional/if-open.directive.d.ts +0 -36
  1111. package/utils/conditional/index.d.ts +0 -4
  1112. package/utils/destroy/destroy.service.d.ts +0 -32
  1113. package/utils/destroy/index.d.ts +0 -1
  1114. package/utils/dom-adapter/dom-adapter.d.ts +0 -12
  1115. package/utils/enums/keys.enum.d.ts +0 -24
  1116. package/utils/focus/arrow-key-direction.enum.d.ts +0 -6
  1117. package/utils/focus/focus-on-view-init/focus-on-view-init.d.ts +0 -19
  1118. package/utils/focus/focus-on-view-init/focus-on-view-init.module.d.ts +0 -10
  1119. package/utils/focus/focus-on-view-init/focus-on-view-init.provider.d.ts +0 -6
  1120. package/utils/focus/focus-on-view-init/index.d.ts +0 -3
  1121. package/utils/focus/focus-trap/index.d.ts +0 -1
  1122. package/utils/focus/focus-trap/standalone-cdk-trap-focus.directive.d.ts +0 -13
  1123. package/utils/focus/focus.service.d.ts +0 -26
  1124. package/utils/focus/focusable-item/basic-focusable-item.service.d.ts +0 -20
  1125. package/utils/focus/focusable-item/custom-focusable-item-provider.d.ts +0 -6
  1126. package/utils/focus/focusable-item/focusable-item.d.ts +0 -12
  1127. package/utils/focus/focusable-item/linkers.d.ts +0 -13
  1128. package/utils/focus/key-focus/enums/focus-direction.enum.d.ts +0 -5
  1129. package/utils/focus/key-focus/index.d.ts +0 -2
  1130. package/utils/focus/key-focus/interfaces.d.ts +0 -5
  1131. package/utils/focus/key-focus/key-focus-item.d.ts +0 -11
  1132. package/utils/focus/key-focus/key-focus.d.ts +0 -44
  1133. package/utils/focus/key-focus/key-focus.module.d.ts +0 -10
  1134. package/utils/focus/key-focus/roving-tabindex.d.ts +0 -19
  1135. package/utils/focus/key-focus/util.d.ts +0 -3
  1136. package/utils/focus/wrap-observable.d.ts +0 -2
  1137. package/utils/forms/validation.d.ts +0 -2
  1138. package/utils/host-wrapping/empty-anchor.d.ts +0 -5
  1139. package/utils/host-wrapping/host-wrapper.d.ts +0 -11
  1140. package/utils/host-wrapping/host-wrapping.module.d.ts +0 -10
  1141. package/utils/i18n/common-strings.default.d.ts +0 -2
  1142. package/utils/i18n/common-strings.interface.d.ts +0 -309
  1143. package/utils/i18n/common-strings.service.d.ts +0 -21
  1144. package/utils/i18n/index.d.ts +0 -3
  1145. package/utils/id-generator/id-generator.service.d.ts +0 -1
  1146. package/utils/index.d.ts +0 -8
  1147. package/utils/loading/index.d.ts +0 -3
  1148. package/utils/loading/loading-listener.d.ts +0 -8
  1149. package/utils/loading/loading.d.ts +0 -20
  1150. package/utils/loading/loading.module.d.ts +0 -10
  1151. package/utils/outside-click/index.d.ts +0 -3
  1152. package/utils/outside-click/outside-click.d.ts +0 -11
  1153. package/utils/outside-click/outside-click.module.d.ts +0 -8
  1154. package/utils/popover/enums/alignment.enum.d.ts +0 -5
  1155. package/utils/popover/enums/axis.enum.d.ts +0 -4
  1156. package/utils/popover/enums/positions.enum.d.ts +0 -23
  1157. package/utils/popover/enums/side.enum.d.ts +0 -4
  1158. package/utils/popover/enums/viewport-violation.enum.d.ts +0 -6
  1159. package/utils/popover/index.d.ts +0 -14
  1160. package/utils/popover/interfaces/popover-content-offset.interface.d.ts +0 -4
  1161. package/utils/popover/interfaces/popover-position.interface.d.ts +0 -16
  1162. package/utils/popover/interfaces/visibility-coords.interface.d.ts +0 -6
  1163. package/utils/popover/popover-anchor.d.ts +0 -8
  1164. package/utils/popover/popover-close-button.d.ts +0 -17
  1165. package/utils/popover/popover-content.d.ts +0 -42
  1166. package/utils/popover/popover-host.directive.d.ts +0 -6
  1167. package/utils/popover/popover-open-close-button.d.ts +0 -13
  1168. package/utils/popover/popover.module.d.ts +0 -10
  1169. package/utils/popover/position-operators.d.ts +0 -10
  1170. package/utils/popover/providers/popover-events.service.d.ts +0 -34
  1171. package/utils/popover/providers/popover-position.service.d.ts +0 -24
  1172. package/utils/popover/providers/popover-toggle.service.d.ts +0 -28
  1173. package/utils/popover/stop-escape-propagation.directive.d.ts +0 -14
  1174. package/utils/scrolling/scrolling-service.d.ts +0 -9
  1175. package/utils/template-ref/index.d.ts +0 -3
  1176. package/utils/template-ref/template-ref-container.d.ts +0 -7
  1177. package/utils/template-ref/template-ref.module.d.ts +0 -8
  1178. package/wizard/heading-level.d.ts +0 -1
  1179. package/wizard/index.d.ts +0 -13
  1180. package/wizard/providers/button-hub.service.d.ts +0 -20
  1181. package/wizard/providers/header-actions.service.d.ts +0 -15
  1182. package/wizard/providers/page-collection.service.d.ts +0 -196
  1183. package/wizard/providers/wizard-navigation.service.d.ts +0 -366
  1184. package/wizard/wizard-button.d.ts +0 -28
  1185. package/wizard/wizard-header-action.d.ts +0 -12
  1186. package/wizard/wizard-page-buttons.d.ts +0 -8
  1187. package/wizard/wizard-page-header-actions.d.ts +0 -8
  1188. package/wizard/wizard-page-navtitle.d.ts +0 -8
  1189. package/wizard/wizard-page-title.d.ts +0 -10
  1190. package/wizard/wizard-page.d.ts +0 -494
  1191. package/wizard/wizard-stepnav-item.d.ts +0 -42
  1192. package/wizard/wizard-stepnav.d.ts +0 -9
  1193. package/wizard/wizard-title.d.ts +0 -7
  1194. package/wizard/wizard.d.ts +0 -259
  1195. package/wizard/wizard.module.d.ts +0 -22
@@ -1,138 +0,0 @@
1
- /*
2
- * Copyright (c) 2016-2025 Broadcom. All Rights Reserved.
3
- * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
- * This software is released under MIT license.
5
- * The full license information can be found in LICENSE in the root directory of this project.
6
- */
7
- import { ChangeDetectorRef, Directive, ElementRef, NgZone, Renderer2, SkipSelf, } from '@angular/core';
8
- import { startWith } from 'rxjs/operators';
9
- import { Keys } from '../../utils/enums/keys.enum';
10
- import { normalizeKey } from '../../utils/focus/key-focus/util';
11
- import { ClrPopoverToggleService } from '../../utils/popover/providers/popover-toggle.service';
12
- import { Popover } from './popover';
13
- import * as i0 from "@angular/core";
14
- /**
15
- * Fallback to hide when *clrIfOpen is not being used
16
- */
17
- const isOffScreenClassName = 'is-off-screen';
18
- export class AbstractPopover {
19
- constructor(injector, parentHost) {
20
- this.parentHost = parentHost;
21
- /*
22
- * Until https://github.com/angular/angular/issues/8785 is supported, we don't have any way to instantiate
23
- * a separate directive on the host. So let's do dirty but performant for now.
24
- */
25
- this.closeOnOutsideClick = false;
26
- this.popoverOptions = {};
27
- this.updateAnchor = false;
28
- this.documentESCListener = null;
29
- this.closeOnOutsideClickCallback = event => {
30
- // The anchor element containing the click event origin means, the click wasn't triggered outside.
31
- if (event.target.shadowRoot) {
32
- const containsNode = event.composedPath().some((element) => element === this.anchorElem);
33
- if (containsNode) {
34
- return;
35
- }
36
- }
37
- else if (this.anchorElem.contains(event.target)) {
38
- return;
39
- }
40
- this.toggleService.open = false;
41
- };
42
- this.el = injector.get(ElementRef);
43
- this.toggleService = injector.get(ClrPopoverToggleService);
44
- this.renderer = injector.get(Renderer2);
45
- this.ngZone = injector.get(NgZone);
46
- this.ref = injector.get(ChangeDetectorRef);
47
- // Default anchor is the parent host
48
- this.anchorElem = parentHost.nativeElement;
49
- this.popoverInstance = new Popover(this.el.nativeElement);
50
- this.subscription = this.toggleService.openChange.pipe(startWith(this.toggleService.open)).subscribe(open => {
51
- if (open) {
52
- this.anchor();
53
- this.attachESCListener();
54
- this.renderer.removeClass(this.el.nativeElement, isOffScreenClassName);
55
- }
56
- else {
57
- this.release();
58
- this.detachESCListener();
59
- this.renderer.addClass(this.el.nativeElement, isOffScreenClassName);
60
- }
61
- });
62
- if (this.toggleService.open) {
63
- this.anchor();
64
- this.attachESCListener();
65
- }
66
- }
67
- ngAfterViewChecked() {
68
- if (this.updateAnchor) {
69
- this.updateAnchor = false;
70
- this.popoverInstance
71
- .anchor(this.anchorElem, this.anchorPoint, this.popoverPoint, this.popoverOptions)
72
- .subscribe(() => {
73
- // if a scroll event is detected, close the popover
74
- this.toggleService.open = false;
75
- });
76
- this.attachOutsideClickListener();
77
- }
78
- }
79
- ngOnDestroy() {
80
- this.release();
81
- this.detachESCListener();
82
- this.subscription.unsubscribe();
83
- }
84
- anchor() {
85
- this.updateAnchor = true;
86
- }
87
- release() {
88
- this.detachOutsideClickListener();
89
- this.popoverInstance.release();
90
- }
91
- attachESCListener() {
92
- if (this.popoverOptions.ignoreGlobalESCListener) {
93
- return;
94
- }
95
- this.ngZone.runOutsideAngular(() => {
96
- this.documentESCListener = this.renderer.listen('document', 'keydown', event => {
97
- if (event && event.key) {
98
- if (normalizeKey(event.key) === Keys.Escape) {
99
- this.ngZone.run(() => {
100
- this.toggleService.open = false;
101
- this.ref.markForCheck();
102
- });
103
- }
104
- }
105
- });
106
- });
107
- }
108
- detachESCListener() {
109
- if (this.documentESCListener) {
110
- this.documentESCListener();
111
- this.documentESCListener = null;
112
- }
113
- }
114
- attachOutsideClickListener() {
115
- if (this.closeOnOutsideClick && this.toggleService.open) {
116
- if (document && document.addEventListener) {
117
- // To listen outside click, the listener should catch the event during the capturing phase.
118
- // We have to do this ugly document check as Renderer2.listen doesn't allow passive/useCapture listen.
119
- document.addEventListener('click', this.closeOnOutsideClickCallback, true);
120
- }
121
- }
122
- }
123
- detachOutsideClickListener() {
124
- if (this.closeOnOutsideClick) {
125
- if (document && document.removeEventListener) {
126
- document.removeEventListener('click', this.closeOnOutsideClickCallback, true);
127
- }
128
- }
129
- }
130
- }
131
- AbstractPopover.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AbstractPopover, deps: [{ token: i0.Injector }, { token: i0.ElementRef, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
132
- AbstractPopover.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: AbstractPopover, ngImport: i0 });
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AbstractPopover, decorators: [{
134
- type: Directive
135
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef, decorators: [{
136
- type: SkipSelf
137
- }] }]; } });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcG9wb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3BvcG92ZXIvY29tbW9uL2Fic3RyYWN0LXBvcG92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBRVYsTUFBTSxFQUVOLFNBQVMsRUFDVCxRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDL0YsT0FBTyxFQUFTLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFHM0M7O0dBRUc7QUFDSCxNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQztBQUc3QyxNQUFNLE9BQWdCLGVBQWU7SUF1Qm5DLFlBQXNCLFFBQWtCLEVBQXdCLFVBQW1DO1FBQW5DLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBdEJuRzs7O1dBR0c7UUFDSCx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFVbEIsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBR3RDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR3JCLHdCQUFtQixHQUF3QixJQUFJLENBQUM7UUFtRmhELGdDQUEyQixHQUFHLEtBQUssQ0FBQyxFQUFFO1lBQzVDLGtHQUFrRztZQUNsRyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUMzQixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBb0IsRUFBRSxF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QUFnQixFQUFFO2dCQUN6QywyRkFBMkY7Z0JBQzNGLHNHQUFzRztnQkFDdEcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDNUU7U0FDRjtJQUNILENBQUM7SUFFTywwQkFBMEI7UUFDaEMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLG1CQUFtQixFQUFFO2dCQUM1QyxRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUMvRTtTQUNGO0lBQ0gsQ0FBQzs7NkdBdEltQixlQUFlO2lHQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFEcEMsU0FBUzs7MEJBd0JtQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDI1IEJyb2FkY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhlIHRlcm0gXCJCcm9hZGNvbVwiIHJlZmVycyB0byBCcm9hZGNvbSBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbmplY3RvcixcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgU2tpcFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEtleXMgfSBmcm9tICcuLi8uLi91dGlscy9lbnVtcy9rZXlzLmVudW0nO1xuaW1wb3J0IHsgbm9ybWFsaXplS2V5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9jdXMva2V5LWZvY3VzL3V0aWwnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL3Byb3ZpZGVycy9wb3BvdmVyLXRvZ2dsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvaW50LCBQb3BvdmVyIH0gZnJvbSAnLi9wb3BvdmVyJztcbmltcG9ydCB7IFBvcG92ZXJPcHRpb25zIH0gZnJvbSAnLi9wb3BvdmVyLW9wdGlvbnMuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBGYWxsYmFjayB0byBoaWRlIHdoZW4gKmNscklmT3BlbiBpcyBub3QgYmVpbmcgdXNlZFxuICovXG5jb25zdCBpc09mZlNjcmVlbkNsYXNzTmFtZSA9ICdpcy1vZmYtc2NyZWVuJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RQb3BvdmVyIGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgLypcbiAgICogVW50aWwgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvODc4NSBpcyBzdXBwb3J0ZWQsIHdlIGRvbid0IGhhdmUgYW55IHdheSB0byBpbnN0YW50aWF0ZVxuICAgKiBhIHNlcGFyYXRlIGRpcmVjdGl2ZSBvbiB0aGUgaG9zdC4gU28gbGV0J3MgZG8gZGlydHkgYnV0IHBlcmZvcm1hbnQgZm9yIG5vdy5cbiAgICovXG4gIGNsb3NlT25PdXRzaWRlQ2xpY2sgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBwcm90ZWN0ZWQgdG9nZ2xlU2VydmljZTogQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2U7XG4gIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyO1xuICBwcm90ZWN0ZWQgbmdab25lOiBOZ1pvbmU7XG4gIHByb3RlY3RlZCByZWY6IENoYW5nZURldGVjdG9yUmVmO1xuICBwcm90ZWN0ZWQgYW5jaG9yRWxlbTogYW55O1xuICBwcm90ZWN0ZWQgYW5jaG9yUG9pbnQ6IFBvaW50O1xuICBwcm90ZWN0ZWQgcG9wb3ZlclBvaW50OiBQb2ludDtcbiAgcHJvdGVjdGVkIHBvcG92ZXJPcHRpb25zOiBQb3BvdmVyT3B0aW9ucyA9IHt9O1xuICBwcm90ZWN0ZWQgaWdub3JlZEVsZW1lbnQ6IGFueTtcblxuICBwcml2YXRlIHVwZGF0ZUFuY2hvciA9IGZhbHNlO1xuICBwcml2YXRlIHBvcG92ZXJJbnN0YW5jZTogUG9wb3ZlcjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBkb2N1bWVudEVTQ0xpc3RlbmVyOiBWb2lkRnVuY3Rpb24gfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBAU2tpcFNlbGYoKSBwcm90ZWN0ZWQgcGFyZW50SG9zdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICB0aGlzLmVsID0gaW5qZWN0b3IuZ2V0KEVsZW1lbnRSZWYpO1xuICAgIHRoaXMudG9nZ2xlU2VydmljZSA9IGluamVjdG9yLmdldChDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSk7XG4gICAgdGhpcy5yZW5kZXJlciA9IGluamVjdG9yLmdldChSZW5kZXJlcjIpO1xuICAgIHRoaXMubmdab25lID0gaW5qZWN0b3IuZ2V0KE5nWm9uZSk7XG4gICAgdGhpcy5yZWYgPSBpbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIC8vIERlZmF1bHQgYW5jaG9yIGlzIHRoZSBwYXJlbnQgaG9zdFxuICAgIHRoaXMuYW5jaG9yRWxlbSA9IHBhcmVudEhvc3QubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMucG9wb3Zlckluc3RhbmNlID0gbmV3IFBvcG92ZXIodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnBpcGUoc3RhcnRXaXRoKHRoaXMudG9nZ2xlU2VydmljZS5vcGVuKSkuc3Vic2NyaWJlKG9wZW4gPT4ge1xuICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgdGhpcy5hbmNob3IoKTtcbiAgICAgICAgdGhpcy5hdHRhY2hFU0NMaXN0ZW5lcigpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgaXNPZmZTY3JlZW5DbGFzc05hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZWxlYXNlKCk7XG4gICAgICAgIHRoaXMuZGV0YWNoRVNDTGlzdGVuZXIoKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGlzT2ZmU2NyZWVuQ2xhc3NOYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAodGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4pIHtcbiAgICAgIHRoaXMuYW5jaG9yKCk7XG4gICAgICB0aGlzLmF0dGFjaEVTQ0xpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIGlmICh0aGlzLnVwZGF0ZUFuY2hvcikge1xuICAgICAgdGhpcy51cGRhdGVBbmNob3IgPSBmYWxzZTtcbiAgICAgIHRoaXMucG9wb3Zlckluc3RhbmNlXG4gICAgICAgIC5hbmNob3IodGhpcy5hbmNob3JFbGVtLCB0aGlzLmFuY2hvclBvaW50LCB0aGlzLnBvcG92ZXJQb2ludCwgdGhpcy5wb3BvdmVyT3B0aW9ucylcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgLy8gaWYgYSBzY3JvbGwgZXZlbnQgaXMgZGV0ZWN0ZWQsIGNsb3NlIHRoZSBwb3BvdmVyXG4gICAgICAgICAgdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmF0dGFjaE91dHNpZGVDbGlja0xpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZWxlYXNlKCk7XG4gICAgdGhpcy5kZXRhY2hFU0NMaXN0ZW5lcigpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYW5jaG9yKCkge1xuICAgIHRoaXMudXBkYXRlQW5jaG9yID0gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWxlYXNlKCkge1xuICAgIHRoaXMuZGV0YWNoT3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcbiAgICB0aGlzLnBvcG92ZXJJbnN0YW5jZS5yZWxlYXNlKCk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaEVTQ0xpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBvcG92ZXJPcHRpb25zLmlnbm9yZUdsb2JhbEVTQ0xpc3RlbmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2tleWRvd24nLCBldmVudCA9PiB7XG4gICAgICAgIGlmIChldmVudCAmJiBldmVudC5rZXkpIHtcbiAgICAgICAgICBpZiAobm9ybWFsaXplS2V5KGV2ZW50LmtleSkgPT09IEtleXMuRXNjYXBlKSB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRldGFjaEVTQ0xpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRvY3VtZW50RVNDTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRFU0NMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsb3NlT25PdXRzaWRlQ2xpY2tDYWxsYmFjayA9IGV2ZW50ID0+IHtcbiAgICAvLyBUaGUgYW5jaG9yIGVsZW1lbnQgY29udGFpbmluZyB0aGUgY2xpY2sgZXZlbnQgb3JpZ2luIG1lYW5zLCB0aGUgY2xpY2sgd2Fzbid0IHRyaWdnZXJlZCBvdXRzaWRlLlxuICAgIGlmIChldmVudC50YXJnZXQuc2hhZG93Um9vdCkge1xuICAgICAgY29uc3QgY29udGFpbnNOb2RlID0gZXZlbnQuY29tcG9zZWRQYXRoKCkuc29tZSgoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IGVsZW1lbnQgPT09IHRoaXMuYW5jaG9yRWxlbSk7XG5cbiAgICAgIGlmIChjb250YWluc05vZGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5hbmNob3JFbGVtLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4gPSBmYWxzZTtcbiAgfTtcblxuICBwcml2YXRlIGF0dGFjaE91dHNpZGVDbGlja0xpc3RlbmVyKCkge1xuICAgIGlmICh0aGlzLmNsb3NlT25PdXRzaWRlQ2xpY2sgJiYgdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4pIHtcbiAgICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIC8vIFRvIGxpc3RlbiBvdXRzaWRlIGNsaWNrLCB0aGUgbGlzdGVuZXIgc2hvdWxkIGNhdGNoIHRoZSBldmVudCBkdXJpbmcgdGhlIGNhcHR1cmluZyBwaGFzZS5cbiAgICAgICAgLy8gV2UgaGF2ZSB0byBkbyB0aGlzIHVnbHkgZG9jdW1lbnQgY2hlY2sgYXMgUmVuZGVyZXIyLmxpc3RlbiBkb2Vzbid0IGFsbG93IHBhc3NpdmUvdXNlQ2FwdHVyZSBsaXN0ZW4uXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrQ2FsbGJhY2ssIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGV0YWNoT3V0c2lkZUNsaWNrTGlzdGVuZXIoKSB7XG4gICAgaWYgKHRoaXMuY2xvc2VPbk91dHNpZGVDbGljaykge1xuICAgICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsb3NlT25PdXRzaWRlQ2xpY2tDYWxsYmFjaywgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,9 +0,0 @@
1
- /*
2
- * Copyright (c) 2016-2025 Broadcom. All Rights Reserved.
3
- * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
- * This software is released under MIT license.
5
- * The full license information can be found in LICENSE in the root directory of this project.
6
- */
7
- import { InjectionToken } from '@angular/core';
8
- export const POPOVER_HOST_ANCHOR = new InjectionToken('POPOVER_HOST_ANCHOR');
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1ob3N0LWFuY2hvci50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3BvcG92ZXIvY29tbW9uL3BvcG92ZXItaG9zdC1hbmNob3IudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFhLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBQT1BPVkVSX0hPU1RfQU5DSE9SID0gbmV3IEluamVjdGlvblRva2VuPEVsZW1lbnRSZWY+KCdQT1BPVkVSX0hPU1RfQU5DSE9SJyk7XG4iXX0=
@@ -1,8 +0,0 @@
1
- /*
2
- * Copyright (c) 2016-2025 Broadcom. All Rights Reserved.
3
- * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
- * This software is released under MIT license.
5
- * The full license information can be found in LICENSE in the root directory of this project.
6
- */
7
- export {};
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1vcHRpb25zLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3BvcG92ZXIvY29tbW9uL3BvcG92ZXItb3B0aW9ucy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9wb3Zlck9wdGlvbnMge1xuICBvZmZzZXRYPzogbnVtYmVyO1xuICBvZmZzZXRZPzogbnVtYmVyO1xuICB1c2VBbmNob3JQYXJlbnQ/OiBib29sZWFuO1xuICBhbGxvd011bHRpcGxlT3Blbj86IGJvb2xlYW47XG4gIGlnbm9yZUdsb2JhbEVTQ0xpc3RlbmVyPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -1,267 +0,0 @@
1
- /*
2
- * Copyright (c) 2016-2025 Broadcom. All Rights Reserved.
3
- * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
- * This software is released under MIT license.
5
- * The full license information can be found in LICENSE in the root directory of this project.
6
- */
7
- import { Subject } from 'rxjs';
8
- export var Point;
9
- (function (Point) {
10
- Point[Point["RIGHT_CENTER"] = 0] = "RIGHT_CENTER";
11
- Point[Point["RIGHT_TOP"] = 1] = "RIGHT_TOP";
12
- Point[Point["RIGHT_BOTTOM"] = 2] = "RIGHT_BOTTOM";
13
- Point[Point["TOP_CENTER"] = 3] = "TOP_CENTER";
14
- Point[Point["TOP_RIGHT"] = 4] = "TOP_RIGHT";
15
- Point[Point["TOP_LEFT"] = 5] = "TOP_LEFT";
16
- Point[Point["BOTTOM_CENTER"] = 6] = "BOTTOM_CENTER";
17
- Point[Point["BOTTOM_RIGHT"] = 7] = "BOTTOM_RIGHT";
18
- Point[Point["BOTTOM_LEFT"] = 8] = "BOTTOM_LEFT";
19
- Point[Point["LEFT_CENTER"] = 9] = "LEFT_CENTER";
20
- Point[Point["LEFT_TOP"] = 10] = "LEFT_TOP";
21
- Point[Point["LEFT_BOTTOM"] = 11] = "LEFT_BOTTOM";
22
- })(Point || (Point = {}));
23
- const POSITION_RELATIVE = 'relative';
24
- const POSITION_ABSOLUTE = 'absolute';
25
- const POSITION_FIXED = 'fixed';
26
- const OVERFLOW_SCROLL = 'scroll';
27
- const OVERFLOW_AUTO = 'auto';
28
- export class Popover {
29
- constructor(element) {
30
- this.element = element;
31
- this.boundOnScrollListener = this.emitScrollEvent.bind(this);
32
- /*
33
- * Containers up to the first positioned one will have an event on scroll
34
- */
35
- this.scrollableElements = [];
36
- // Browsers don't agree with what to do if some of these are not specified, so we set them all to be safe.
37
- element.style.position = POSITION_ABSOLUTE;
38
- element.style.top = 0;
39
- element.style.bottom = 'auto';
40
- element.style.left = 0;
41
- element.style.right = 'auto';
42
- }
43
- // TODO: need a way to account for parameters that change dynamically (positioning).
44
- anchor(anchor, anchorAlign, popoverAlign, { offsetX = 0, offsetY = 0, useAnchorParent = false } = {}) {
45
- // TODO: we are assuming here that the popover is inside or next to the anchor.
46
- // We'd need to go up the popover tree too otherwise
47
- this.addScrollEventListeners(anchor);
48
- if (useAnchorParent) {
49
- anchor = anchor.parentNode;
50
- }
51
- // explicitly override anchor's style to static
52
- anchor.style.position = 'static';
53
- const anchorRect = anchor.getBoundingClientRect();
54
- const popoverRect = this.element.getBoundingClientRect();
55
- // position of left top corner of anchor + the offset
56
- let leftDiff = anchorRect.left - popoverRect.left + offsetX;
57
- let topDiff = anchorRect.top - popoverRect.top + offsetY;
58
- // first, adjust positioning based on anchor's align point
59
- switch (anchorAlign) {
60
- case Point.LEFT_TOP:
61
- case Point.TOP_LEFT:
62
- break;
63
- case Point.TOP_CENTER:
64
- leftDiff += anchorRect.width / 2;
65
- break;
66
- case Point.TOP_RIGHT:
67
- leftDiff += anchorRect.width;
68
- break;
69
- case Point.RIGHT_TOP:
70
- leftDiff += anchorRect.width;
71
- break;
72
- case Point.LEFT_BOTTOM:
73
- topDiff += anchorRect.height;
74
- break;
75
- case Point.BOTTOM_LEFT:
76
- topDiff += anchorRect.height;
77
- break;
78
- case Point.BOTTOM_CENTER:
79
- topDiff += anchorRect.height;
80
- leftDiff += anchorRect.width / 2;
81
- break;
82
- case Point.BOTTOM_RIGHT:
83
- topDiff += anchorRect.height;
84
- leftDiff += anchorRect.width;
85
- break;
86
- case Point.RIGHT_BOTTOM:
87
- topDiff += anchorRect.height;
88
- leftDiff += anchorRect.width;
89
- break;
90
- case Point.LEFT_CENTER:
91
- topDiff += anchorRect.height / 2;
92
- break;
93
- case Point.RIGHT_CENTER:
94
- topDiff += anchorRect.height / 2;
95
- leftDiff += anchorRect.width;
96
- break;
97
- default:
98
- }
99
- // second, adjust positioning based on popover's align point
100
- switch (popoverAlign) {
101
- case Point.LEFT_TOP:
102
- case Point.TOP_LEFT:
103
- break;
104
- case Point.TOP_CENTER:
105
- leftDiff -= popoverRect.width / 2;
106
- break;
107
- case Point.TOP_RIGHT:
108
- leftDiff -= popoverRect.width;
109
- break;
110
- case Point.RIGHT_TOP:
111
- leftDiff -= popoverRect.width;
112
- break;
113
- case Point.LEFT_BOTTOM:
114
- topDiff -= popoverRect.height;
115
- break;
116
- case Point.BOTTOM_LEFT:
117
- topDiff -= popoverRect.height;
118
- break;
119
- case Point.BOTTOM_CENTER:
120
- topDiff -= popoverRect.height;
121
- leftDiff -= popoverRect.width / 2;
122
- break;
123
- case Point.BOTTOM_RIGHT:
124
- topDiff -= popoverRect.height;
125
- leftDiff -= popoverRect.width;
126
- break;
127
- case Point.RIGHT_BOTTOM:
128
- topDiff -= popoverRect.height;
129
- leftDiff -= popoverRect.width;
130
- break;
131
- case Point.LEFT_CENTER:
132
- topDiff -= popoverRect.height / 2;
133
- break;
134
- case Point.RIGHT_CENTER:
135
- topDiff -= popoverRect.height / 2;
136
- leftDiff -= popoverRect.width;
137
- break;
138
- default:
139
- }
140
- // Third, adjust with popover's margins based on the two align points.
141
- // Here, we make an assumption that popover is primarily positioned outside the
142
- // anchor with minor offset. Without this assumption, it's impossible to apply
143
- // the popover's margins in a predictable way. For example, assume that a popover
144
- // and its anchor are exactly the same size. if a popover is positioned inside the
145
- // anchor (which is technically possible), then it becomes impossible to know what to do
146
- // if the popover has a non-zero margin value all around (because applying the margin in
147
- // all four directions will result in no margin visually, which isn't what we want).
148
- // Therefore, our logic makes assumptions about margins of interest given the points,
149
- // and only covers the cases where popover is outside the anchor.
150
- const popoverComputedStyle = getComputedStyle(this.element);
151
- const marginLeft = parseInt(popoverComputedStyle.marginLeft, 10);
152
- const marginRight = parseInt(popoverComputedStyle.marginRight, 10);
153
- const marginTop = parseInt(popoverComputedStyle.marginTop, 10);
154
- const marginBottom = parseInt(popoverComputedStyle.marginBottom, 10);
155
- switch (anchorAlign) {
156
- case Point.LEFT_TOP:
157
- case Point.TOP_LEFT:
158
- case Point.TOP_RIGHT:
159
- case Point.RIGHT_TOP:
160
- if (popoverAlign === Point.BOTTOM_RIGHT || popoverAlign === Point.RIGHT_BOTTOM) {
161
- topDiff -= marginBottom;
162
- leftDiff -= marginRight;
163
- }
164
- if (popoverAlign === Point.BOTTOM_LEFT || popoverAlign === Point.LEFT_BOTTOM) {
165
- topDiff -= marginTop;
166
- leftDiff += marginLeft;
167
- }
168
- if (popoverAlign === Point.TOP_LEFT || popoverAlign === Point.LEFT_TOP) {
169
- topDiff += marginTop;
170
- leftDiff += marginLeft;
171
- }
172
- if (popoverAlign === Point.TOP_RIGHT || popoverAlign === Point.RIGHT_TOP) {
173
- topDiff += marginTop;
174
- leftDiff -= marginRight;
175
- }
176
- break;
177
- case Point.LEFT_BOTTOM:
178
- case Point.BOTTOM_LEFT:
179
- case Point.BOTTOM_RIGHT:
180
- case Point.RIGHT_BOTTOM:
181
- if (popoverAlign === Point.BOTTOM_LEFT || popoverAlign === Point.LEFT_BOTTOM) {
182
- topDiff -= marginBottom;
183
- leftDiff += marginLeft;
184
- }
185
- if (popoverAlign === Point.BOTTOM_RIGHT || popoverAlign === Point.RIGHT_BOTTOM) {
186
- topDiff -= marginBottom;
187
- leftDiff -= marginRight;
188
- }
189
- if (popoverAlign === Point.TOP_LEFT || popoverAlign === Point.LEFT_TOP) {
190
- topDiff += marginTop;
191
- leftDiff += marginLeft;
192
- }
193
- if (popoverAlign === Point.TOP_RIGHT || popoverAlign === Point.RIGHT_TOP) {
194
- topDiff += marginTop;
195
- leftDiff -= marginRight;
196
- }
197
- break;
198
- case Point.TOP_CENTER:
199
- topDiff -= marginBottom;
200
- leftDiff += marginLeft;
201
- leftDiff -= marginRight;
202
- break;
203
- case Point.BOTTOM_CENTER:
204
- topDiff += marginTop;
205
- leftDiff += marginLeft;
206
- leftDiff -= marginRight;
207
- break;
208
- case Point.LEFT_CENTER:
209
- topDiff += marginTop;
210
- topDiff -= marginBottom;
211
- leftDiff -= marginRight;
212
- break;
213
- case Point.RIGHT_CENTER:
214
- topDiff += marginTop;
215
- topDiff -= marginBottom;
216
- leftDiff += marginLeft;
217
- break;
218
- default:
219
- }
220
- this.element.style.transform = `translateX(${Math.round(leftDiff)}px) translateY(${Math.round(topDiff)}px)`;
221
- return this._scroll.asObservable();
222
- }
223
- release() {
224
- this.element.style.transform = '';
225
- this.removeScrollEventListeners();
226
- }
227
- isPositioned(container) {
228
- const position = getComputedStyle(container).position;
229
- return position === POSITION_RELATIVE || position === POSITION_ABSOLUTE || position === POSITION_FIXED;
230
- }
231
- emitScrollEvent() {
232
- this._scroll.next();
233
- }
234
- addScrollEventListeners(e) {
235
- this._scroll = new Subject();
236
- const anchor = e;
237
- let current = e;
238
- while (current && current !== document && current.nodeType === Node.ELEMENT_NODE) {
239
- if (this.scrolls(current)) {
240
- current.addEventListener('scroll', this.boundOnScrollListener);
241
- this.scrollableElements.push(current);
242
- }
243
- if (current !== anchor && this.isPositioned(current)) {
244
- break;
245
- }
246
- current = current.parentNode;
247
- }
248
- }
249
- removeScrollEventListeners() {
250
- for (const elem of this.scrollableElements) {
251
- elem.removeEventListener('scroll', this.boundOnScrollListener);
252
- }
253
- this.scrollableElements.length = 0;
254
- if (this._scroll) {
255
- this._scroll.complete();
256
- delete this._scroll;
257
- }
258
- }
259
- scrolls(container) {
260
- const computedStyles = getComputedStyle(container);
261
- return (computedStyles.overflowX === OVERFLOW_SCROLL ||
262
- computedStyles.overflowX === OVERFLOW_AUTO ||
263
- computedStyles.overflowY === OVERFLOW_SCROLL ||
264
- computedStyles.overflowY === OVERFLOW_AUTO);
265
- }
266
- }
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3BvcG92ZXIvY29tbW9uL3BvcG92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFRSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE1BQU0sQ0FBTixJQUFZLEtBYVg7QUFiRCxXQUFZLEtBQUs7SUFDZixpREFBWSxDQUFBO0lBQ1osMkNBQVMsQ0FBQTtJQUNULGlEQUFZLENBQUE7SUFDWiw2Q0FBVSxDQUFBO0lBQ1YsMkNBQVMsQ0FBQTtJQUNULHlDQUFRLENBQUE7SUFDUixtREFBYSxDQUFBO0lBQ2IsaURBQVksQ0FBQTtJQUNaLCtDQUFXLENBQUE7SUFDWCwrQ0FBVyxDQUFBO0lBQ1gsMENBQVEsQ0FBQTtJQUNSLGdEQUFXLENBQUE7QUFDYixDQUFDLEVBYlcsS0FBSyxLQUFMLEtBQUssUUFhaEI7QUFFRCxNQUFNLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztBQUNyQyxNQUFNLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztBQUNyQyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUM7QUFFL0IsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ2pDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztBQUU3QixNQUFNLE9BQU8sT0FBTztJQVNsQixZQUFvQixPQUFZO1FBQVosWUFBTyxHQUFQLE9BQU8sQ0FBSztRQVB4QiwwQkFBcUIsR0FBUSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyRTs7V0FFRztRQUNLLHVCQUFrQixHQUFrQixFQUFFLENBQUM7UUFHN0MsMEdBQTBHO1FBQzFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLGlCQUFpQixDQUFDO1FBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FB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LENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRU8sT0FBTyxDQUFDLFNBQWtCO1FBQ2hDLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sQ0FDTCxjQUFjLENBQUMsU0FBUyxLQUFLLGVBQWU7WUFDNUMsY0FBYyxDQUFDLFNBQVMsS0FBSyxhQUFhO1lBQzFDLGNBQWMsQ0FBQyxTQUFTLEtBQUssZUFBZTtZQUM1QyxjQUFjLENBQUMsU0FBUyxLQUFLLGFBQWEsQ0FDM0MsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuLypcbiAqIERvIE5PVCBBbmd1bGFyIHRoaXMgdXAuIEl0IGFzc3VtZXMgd2UncmUgaW4gdGhlIERPTSwgcGxheXMgd2l0aCBuYXRpdmUgZWxlbWVudHMsIC4uLlxuICogSXQgY291bGQgcG90ZW50aWFsbHkgYmUgdXNlZCBhcyBwYXJ0IG9mIEBjbHIvdWkgYXMgYSB2YW5pbGxhIEphdmFzY3JpcHQgaGVscGVyLlxuICovXG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUG9wb3Zlck9wdGlvbnMgfSBmcm9tICcuL3BvcG92ZXItb3B0aW9ucy5pbnRlcmZhY2UnO1xuZXhwb3J0IGVudW0gUG9pbnQge1xuICBSSUdIVF9DRU5URVIsXG4gIFJJR0hUX1RPUCxcbiAgUklHSFRfQk9UVE9NLFxuICBUT1BfQ0VOVEVSLFxuICBUT1BfUklHSFQsXG4gIFRPUF9MRUZULFxuICBCT1RUT01fQ0VOVEVSLFxuICBCT1RUT01fUklHSFQsXG4gIEJPVFRPTV9MRUZULFxuICBMRUZUX0NFTlRFUixcbiAgTEVGVF9UT1AsXG4gIExFRlRfQk9UVE9NLFxufVxuXG5jb25zdCBQT1NJVElPTl9SRUxBVElWRSA9ICdyZWxhdGl2ZSc7XG5jb25zdCBQT1NJVElPTl9BQlNPTFVURSA9ICdhYnNvbHV0ZSc7XG5jb25zdCBQT1NJVElPTl9GSVhFRCA9ICdmaXhlZCc7XG5cbmNvbnN0IE9WRVJGTE9XX1NDUk9MTCA9ICdzY3JvbGwnO1xuY29uc3QgT1ZFUkZMT1dfQVVUTyA9ICdhdXRvJztcblxuZXhwb3J0IGNsYXNzIFBvcG92ZXIge1xuICBwcml2YXRlIF9zY3JvbGw6IFN1YmplY3Q8dm9pZD47XG4gIHByaXZhdGUgYm91bmRPblNjcm9sbExpc3RlbmVyOiBhbnkgPSB0aGlzLmVtaXRTY3JvbGxFdmVudC5iaW5kKHRoaXMpO1xuXG4gIC8qXG4gICAqIENvbnRhaW5lcnMgdXAgdG8gdGhlIGZpcnN0IHBvc2l0aW9uZWQgb25lIHdpbGwgaGF2ZSBhbiBldmVudCBvbiBzY3JvbGxcbiAgICovXG4gIHByaXZhdGUgc2Nyb2xsYWJsZUVsZW1lbnRzOiBIVE1MRWxlbWVudFtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBhbnkpIHtcbiAgICAvLyBCcm93c2VycyBkb24ndCBhZ3JlZSB3aXRoIHdoYXQgdG8gZG8gaWYgc29tZSBvZiB0aGVzZSBhcmUgbm90IHNwZWNpZmllZCwgc28gd2Ugc2V0IHRoZW0gYWxsIHRvIGJlIHNhZmUuXG4gICAgZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9IFBPU0lUSU9OX0FCU09MVVRFO1xuICAgIGVsZW1lbnQuc3R5bGUudG9wID0gMDtcbiAgICBlbGVtZW50LnN0eWxlLmJvdHRvbSA9ICdhdXRvJztcbiAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSAwO1xuICAgIGVsZW1lbnQuc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gIH1cblxuICAvLyBUT0RPOiBuZWVkIGEgd2F5IHRvIGFjY291bnQgZm9yIHBhcmFtZXRlcnMgdGhhdCBjaGFuZ2UgZHluYW1pY2FsbHkgKHBvc2l0aW9uaW5nKS5cbiAgYW5jaG9yKFxuICAgIGFuY2hvcjogYW55LFxuICAgIGFuY2hvckFsaWduOiBQb2ludCxcbiAgICBwb3BvdmVyQWxpZ246IFBvaW50LFxuICAgIHsgb2Zmc2V0WCA9IDAsIG9mZnNldFkgPSAwLCB1c2VBbmNob3JQYXJlbnQgPSBmYWxzZSB9OiBQb3BvdmVyT3B0aW9ucyA9IHt9XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgLy8gVE9ETzogd2UgYXJlIGFzc3VtaW5nIGhlcmUgdGhhdCB0aGUgcG9wb3ZlciBpcyBpbnNpZGUgb3IgbmV4dCB0byB0aGUgYW5jaG9yLlxuICAgIC8vIFdlJ2QgbmVlZCB0byBnbyB1cCB0aGUgcG9wb3ZlciB0cmVlIHRvbyBvdGhlcndpc2VcblxuICAgIHRoaXMuYWRkU2Nyb2xsRXZlbnRMaXN0ZW5lcnMoYW5jaG9yKTtcbiAgICBpZiAodXNlQW5jaG9yUGFyZW50KSB7XG4gICAgICBhbmNob3IgPSBhbmNob3IucGFyZW50Tm9kZTtcbiAgICB9XG4gICAgLy8gZXhwbGljaXRseSBvdmVycmlkZSBhbmNob3IncyBzdHlsZSB0byBzdGF0aWNcbiAgICBhbmNob3Iuc3R5bGUucG9zaXRpb24gPSAnc3RhdGljJztcblxuICAgIGNvbnN0IGFuY2hvclJlY3QgPSBhbmNob3IuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcG9wb3ZlclJlY3QgPSB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAvLyBwb3NpdGlvbiBvZiBsZWZ0IHRvcCBjb3JuZXIgb2YgYW5jaG9yICsgdGhlIG9mZnNldFxuICAgIGxldCBsZWZ0RGlmZjogbnVtYmVyID0gYW5jaG9yUmVjdC5sZWZ0IC0gcG9wb3ZlclJlY3QubGVmdCArIG9mZnNldFg7XG4gICAgbGV0IHRvcERpZmY6IG51bWJlciA9IGFuY2hvclJlY3QudG9wIC0gcG9wb3ZlclJlY3QudG9wICsgb2Zmc2V0WTtcblxuICAgIC8vIGZpcnN0LCBhZGp1c3QgcG9zaXRpb25pbmcgYmFzZWQgb24gYW5jaG9yJ3MgYWxpZ24gcG9pbnRcbiAgICBzd2l0Y2ggKGFuY2hvckFsaWduKSB7XG4gICAgICBjYXNlIFBvaW50LkxFRlRfVE9QOlxuICAgICAgY2FzZSBQb2ludC5UT1BfTEVGVDpcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBvaW50LlRPUF9DRU5URVI6XG4gICAgICAgIGxlZnREaWZmICs9IGFuY2hvclJlY3Qud2lkdGggLyAyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuVE9QX1JJR0hUOlxuICAgICAgICBsZWZ0RGlmZiArPSBhbmNob3JSZWN0LndpZHRoO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuUklHSFRfVE9QOlxuICAgICAgICBsZWZ0RGlmZiArPSBhbmNob3JSZWN0LndpZHRoO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuTEVGVF9CT1RUT006XG4gICAgICAgIHRvcERpZmYgKz0gYW5jaG9yUmVjdC5oZWlnaHQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQb2ludC5CT1RUT01fTEVGVDpcbiAgICAgICAgdG9wRGlmZiArPSBhbmNob3JSZWN0LmhlaWdodDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBvaW50LkJPVFRPTV9DRU5URVI6XG4gICAgICAgIHRvcERpZmYgKz0gYW5jaG9yUmVjdC5oZWlnaHQ7XG4gICAgICAgIGxlZnREaWZmICs9IGFuY2hvclJlY3Qud2lkdGggLyAyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuQk9UVE9NX1JJR0hUOlxuICAgICAgICB0b3BEaWZmICs9IGFuY2hvclJlY3QuaGVpZ2h0O1xuICAgICAgICBsZWZ0RGlmZiArPSBhbmNob3JSZWN0LndpZHRoO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuUklHSFRfQk9UVE9NOlxuICAgICAgICB0b3BEaWZmICs9IGFuY2hvclJlY3QuaGVpZ2h0O1xuICAgICAgICBsZWZ0RGlmZiArPSBhbmNob3JSZWN0LndpZHRoO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuTEVGVF9DRU5URVI6XG4gICAgICAgIHRvcERpZmYgKz0gYW5jaG9yUmVjdC5oZWlnaHQgLyAyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuUklHSFRfQ0VOVEVSOlxuICAgICAgICB0b3BEaWZmICs9IGFuY2hvclJlY3QuaGVpZ2h0IC8gMjtcbiAgICAgICAgbGVmdERpZmYgKz0gYW5jaG9yUmVjdC53aWR0aDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgIH1cblxuICAgIC8vIHNlY29uZCwgYWRqdXN0IHBvc2l0aW9uaW5nIGJhc2VkIG9uIHBvcG92ZXIncyBhbGlnbiBwb2ludFxuICAgIHN3aXRjaCAocG9wb3ZlckFsaWduKSB7XG4gICAgICBjYXNlIFBvaW50LkxFRlRfVE9QOlxuICAgICAgY2FzZSBQb2ludC5UT1BfTEVGVDpcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBvaW50LlRPUF9DRU5URVI6XG4gICAgICAgIGxlZnREaWZmIC09IHBvcG92ZXJSZWN0LndpZHRoIC8gMjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBvaW50LlRPUF9SSUdIVDpcbiAgICAgICAgbGVmdERpZmYgLT0gcG9wb3ZlclJlY3Qud2lkdGg7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQb2ludC5SSUdIVF9UT1A6XG4gICAgICAgIGxlZnREaWZmIC09IHBvcG92ZXJSZWN0LndpZHRoO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuTEVGVF9CT1RUT006XG4gICAgICAgIHRvcERpZmYgLT0gcG9wb3ZlclJlY3QuaGVpZ2h0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuQk9UVE9NX0xFRlQ6XG4gICAgICAgIHRvcERpZmYgLT0gcG9wb3ZlclJlY3QuaGVpZ2h0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuQk9UVE9NX0NFTlRFUjpcbiAgICAgICAgdG9wRGlmZiAtPSBwb3BvdmVyUmVjdC5oZWlnaHQ7XG4gICAgICAgIGxlZnREaWZmIC09IHBvcG92ZXJSZWN0LndpZHRoIC8gMjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBvaW50LkJPVFRPTV9SSUdIVDpcbiAgICAgICAgdG9wRGlmZiAtPSBwb3BvdmVyUmVjdC5oZWlnaHQ7XG4gICAgICAgIGxlZnREaWZmIC09IHBvcG92ZXJSZWN0LndpZHRoO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuUklHSFRfQk9UVE9NOlxuICAgICAgICB0b3BEaWZmIC09IHBvcG92ZXJSZWN0LmhlaWdodDtcbiAgICAgICAgbGVmdERpZmYgLT0gcG9wb3ZlclJlY3Qud2lkdGg7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQb2ludC5MRUZUX0NFTlRFUjpcbiAgICAgICAgdG9wRGlmZiAtPSBwb3BvdmVyUmVjdC5oZWlnaHQgLyAyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuUklHSFRfQ0VOVEVSOlxuICAgICAgICB0b3BEaWZmIC09IHBvcG92ZXJSZWN0LmhlaWdodCAvIDI7XG4gICAgICAgIGxlZnREaWZmIC09IHBvcG92ZXJSZWN0LndpZHRoO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgfVxuXG4gICAgLy8gVGhpcmQsIGFkanVzdCB3aXRoIHBvcG92ZXIncyBtYXJnaW5zIGJhc2VkIG9uIHRoZSB0d28gYWxpZ24gcG9pbnRzLlxuICAgIC8vIEhlcmUsIHdlIG1ha2UgYW4gYXNzdW1wdGlvbiB0aGF0IHBvcG92ZXIgaXMgcHJpbWFyaWx5IHBvc2l0aW9uZWQgb3V0c2lkZSB0aGVcbiAgICAvLyBhbmNob3Igd2l0aCBtaW5vciBvZmZzZXQuIFdpdGhvdXQgdGhpcyBhc3N1bXB0aW9uLCBpdCdzIGltcG9zc2libGUgdG8gYXBwbHlcbiAgICAvLyB0aGUgcG9wb3ZlcidzIG1hcmdpbnMgaW4gYSBwcmVkaWN0YWJsZSB3YXkuIEZvciBleGFtcGxlLCBhc3N1bWUgdGhhdCBhIHBvcG92ZXJcbiAgICAvLyBhbmQgaXRzIGFuY2hvciBhcmUgZXhhY3RseSB0aGUgc2FtZSBzaXplLiBpZiBhIHBvcG92ZXIgaXMgcG9zaXRpb25lZCBpbnNpZGUgdGhlXG4gICAgLy8gYW5jaG9yICh3aGljaCBpcyB0ZWNobmljYWxseSBwb3NzaWJsZSksIHRoZW4gaXQgYmVjb21lcyBpbXBvc3NpYmxlIHRvIGtub3cgd2hhdCB0byBkb1xuICAgIC8vIGlmIHRoZSBwb3BvdmVyIGhhcyBhIG5vbi16ZXJvIG1hcmdpbiB2YWx1ZSBhbGwgYXJvdW5kIChiZWNhdXNlIGFwcGx5aW5nIHRoZSBtYXJnaW4gaW5cbiAgICAvLyBhbGwgZm91ciBkaXJlY3Rpb25zIHdpbGwgcmVzdWx0IGluIG5vIG1hcmdpbiB2aXN1YWxseSwgd2hpY2ggaXNuJ3Qgd2hhdCB3ZSB3YW50KS5cbiAgICAvLyBUaGVyZWZvcmUsIG91ciBsb2dpYyBtYWtlcyBhc3N1bXB0aW9ucyBhYm91dCBtYXJnaW5zIG9mIGludGVyZXN0IGdpdmVuIHRoZSBwb2ludHMsXG4gICAgLy8gYW5kIG9ubHkgY292ZXJzIHRoZSBjYXNlcyB3aGVyZSBwb3BvdmVyIGlzIG91dHNpZGUgdGhlIGFuY2hvci5cblxuICAgIGNvbnN0IHBvcG92ZXJDb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1lbnQpO1xuICAgIGNvbnN0IG1hcmdpbkxlZnQgPSBwYXJzZUludChwb3BvdmVyQ29tcHV0ZWRTdHlsZS5tYXJnaW5MZWZ0LCAxMCk7XG4gICAgY29uc3QgbWFyZ2luUmlnaHQgPSBwYXJzZUludChwb3BvdmVyQ29tcHV0ZWRTdHlsZS5tYXJnaW5SaWdodCwgMTApO1xuICAgIGNvbnN0IG1hcmdpblRvcCA9IHBhcnNlSW50KHBvcG92ZXJDb21wdXRlZFN0eWxlLm1hcmdpblRvcCwgMTApO1xuICAgIGNvbnN0IG1hcmdpbkJvdHRvbSA9IHBhcnNlSW50KHBvcG92ZXJDb21wdXRlZFN0eWxlLm1hcmdpbkJvdHRvbSwgMTApO1xuXG4gICAgc3dpdGNoIChhbmNob3JBbGlnbikge1xuICAgICAgY2FzZSBQb2ludC5MRUZUX1RPUDpcbiAgICAgIGNhc2UgUG9pbnQuVE9QX0xFRlQ6XG4gICAgICBjYXNlIFBvaW50LlRPUF9SSUdIVDpcbiAgICAgIGNhc2UgUG9pbnQuUklHSFRfVE9QOlxuICAgICAgICBpZiAocG9wb3ZlckFsaWduID09PSBQb2ludC5CT1RUT01fUklHSFQgfHwgcG9wb3ZlckFsaWduID09PSBQb2ludC5SSUdIVF9CT1RUT00pIHtcbiAgICAgICAgICB0b3BEaWZmIC09IG1hcmdpbkJvdHRvbTtcbiAgICAgICAgICBsZWZ0RGlmZiAtPSBtYXJnaW5SaWdodDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9wb3ZlckFsaWduID09PSBQb2ludC5CT1RUT01fTEVGVCB8fCBwb3BvdmVyQWxpZ24gPT09IFBvaW50LkxFRlRfQk9UVE9NKSB7XG4gICAgICAgICAgdG9wRGlmZiAtPSBtYXJnaW5Ub3A7XG4gICAgICAgICAgbGVmdERpZmYgKz0gbWFyZ2luTGVmdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9wb3ZlckFsaWduID09PSBQb2ludC5UT1BfTEVGVCB8fCBwb3BvdmVyQWxpZ24gPT09IFBvaW50LkxFRlRfVE9QKSB7XG4gICAgICAgICAgdG9wRGlmZiArPSBtYXJnaW5Ub3A7XG4gICAgICAgICAgbGVmdERpZmYgKz0gbWFyZ2luTGVmdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9wb3ZlckFsaWduID09PSBQb2ludC5UT1BfUklHSFQgfHwgcG9wb3ZlckFsaWduID09PSBQb2ludC5SSUdIVF9UT1ApIHtcbiAgICAgICAgICB0b3BEaWZmICs9IG1hcmdpblRvcDtcbiAgICAgICAgICBsZWZ0RGlmZiAtPSBtYXJnaW5SaWdodDtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuTEVGVF9CT1RUT006XG4gICAgICBjYXNlIFBvaW50LkJPVFRPTV9MRUZUOlxuICAgICAgY2FzZSBQb2ludC5CT1RUT01fUklHSFQ6XG4gICAgICBjYXNlIFBvaW50LlJJR0hUX0JPVFRPTTpcbiAgICAgICAgaWYgKHBvcG92ZXJBbGlnbiA9PT0gUG9pbnQuQk9UVE9NX0xFRlQgfHwgcG9wb3ZlckFsaWduID09PSBQb2ludC5MRUZUX0JPVFRPTSkge1xuICAgICAgICAgIHRvcERpZmYgLT0gbWFyZ2luQm90dG9tO1xuICAgICAgICAgIGxlZnREaWZmICs9IG1hcmdpbkxlZnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvcG92ZXJBbGlnbiA9PT0gUG9pbnQuQk9UVE9NX1JJR0hUIHx8IHBvcG92ZXJBbGlnbiA9PT0gUG9pbnQuUklHSFRfQk9UVE9NKSB7XG4gICAgICAgICAgdG9wRGlmZiAtPSBtYXJnaW5Cb3R0b207XG4gICAgICAgICAgbGVmdERpZmYgLT0gbWFyZ2luUmlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvcG92ZXJBbGlnbiA9PT0gUG9pbnQuVE9QX0xFRlQgfHwgcG9wb3ZlckFsaWduID09PSBQb2ludC5MRUZUX1RPUCkge1xuICAgICAgICAgIHRvcERpZmYgKz0gbWFyZ2luVG9wO1xuICAgICAgICAgIGxlZnREaWZmICs9IG1hcmdpbkxlZnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvcG92ZXJBbGlnbiA9PT0gUG9pbnQuVE9QX1JJR0hUIHx8IHBvcG92ZXJBbGlnbiA9PT0gUG9pbnQuUklHSFRfVE9QKSB7XG4gICAgICAgICAgdG9wRGlmZiArPSBtYXJnaW5Ub3A7XG4gICAgICAgICAgbGVmdERpZmYgLT0gbWFyZ2luUmlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBvaW50LlRPUF9DRU5URVI6XG4gICAgICAgIHRvcERpZmYgLT0gbWFyZ2luQm90dG9tO1xuICAgICAgICBsZWZ0RGlmZiArPSBtYXJnaW5MZWZ0O1xuICAgICAgICBsZWZ0RGlmZiAtPSBtYXJnaW5SaWdodDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBvaW50LkJPVFRPTV9DRU5URVI6XG4gICAgICAgIHRvcERpZmYgKz0gbWFyZ2luVG9wO1xuICAgICAgICBsZWZ0RGlmZiArPSBtYXJnaW5MZWZ0O1xuICAgICAgICBsZWZ0RGlmZiAtPSBtYXJnaW5SaWdodDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBvaW50LkxFRlRfQ0VOVEVSOlxuICAgICAgICB0b3BEaWZmICs9IG1hcmdpblRvcDtcbiAgICAgICAgdG9wRGlmZiAtPSBtYXJnaW5Cb3R0b207XG4gICAgICAgIGxlZnREaWZmIC09IG1hcmdpblJpZ2h0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUG9pbnQuUklHSFRfQ0VOVEVSOlxuICAgICAgICB0b3BEaWZmICs9IG1hcmdpblRvcDtcbiAgICAgICAgdG9wRGlmZiAtPSBtYXJnaW5Cb3R0b207XG4gICAgICAgIGxlZnREaWZmICs9IG1hcmdpbkxlZnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICB9XG5cbiAgICB0aGlzLmVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHtNYXRoLnJvdW5kKGxlZnREaWZmKX1weCkgdHJhbnNsYXRlWSgke01hdGgucm91bmQodG9wRGlmZil9cHgpYDtcbiAgICByZXR1cm4gdGhpcy5fc2Nyb2xsLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcmVsZWFzZSgpIHtcbiAgICB0aGlzLmVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gJyc7XG4gICAgdGhpcy5yZW1vdmVTY3JvbGxFdmVudExpc3RlbmVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Bvc2l0aW9uZWQoY29udGFpbmVyOiBFbGVtZW50KSB7XG4gICAgY29uc3QgcG9zaXRpb24gPSBnZXRDb21wdXRlZFN0eWxlKGNvbnRhaW5lcikucG9zaXRpb247XG4gICAgcmV0dXJuIHBvc2l0aW9uID09PSBQT1NJVElPTl9SRUxBVElWRSB8fCBwb3NpdGlvbiA9PT0gUE9TSVRJT05fQUJTT0xVVEUgfHwgcG9zaXRpb24gPT09IFBPU0lUSU9OX0ZJWEVEO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U2Nyb2xsRXZlbnQoKSB7XG4gICAgdGhpcy5fc2Nyb2xsLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkU2Nyb2xsRXZlbnRMaXN0ZW5lcnMoZTogYW55KSB7XG4gICAgdGhpcy5fc2Nyb2xsID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBjb25zdCBhbmNob3I6IGFueSA9IGU7XG4gICAgbGV0IGN1cnJlbnQ6IGFueSA9IGU7XG4gICAgd2hpbGUgKGN1cnJlbnQgJiYgY3VycmVudCAhPT0gZG9jdW1lbnQgJiYgY3VycmVudC5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgIGlmICh0aGlzLnNjcm9sbHMoY3VycmVudCkpIHtcbiAgICAgICAgY3VycmVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmJvdW5kT25TY3JvbGxMaXN0ZW5lcik7XG4gICAgICAgIHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnRzLnB1c2goY3VycmVudCk7XG4gICAgICB9XG4gICAgICBpZiAoY3VycmVudCAhPT0gYW5jaG9yICYmIHRoaXMuaXNQb3NpdGlvbmVkKGN1cnJlbnQpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50Tm9kZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVNjcm9sbEV2ZW50TGlzdGVuZXJzKCkge1xuICAgIGZvciAoY29uc3QgZWxlbSBvZiB0aGlzLnNjcm9sbGFibGVFbGVtZW50cykge1xuICAgICAgZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmJvdW5kT25TY3JvbGxMaXN0ZW5lcik7XG4gICAgfVxuICAgIHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnRzLmxlbmd0aCA9IDA7XG4gICAgaWYgKHRoaXMuX3Njcm9sbCkge1xuICAgICAgdGhpcy5fc2Nyb2xsLmNvbXBsZXRlKCk7XG4gICAgICBkZWxldGUgdGhpcy5fc2Nyb2xsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xscyhjb250YWluZXI6IEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlcyA9IGdldENvbXB1dGVkU3R5bGUoY29udGFpbmVyKTtcbiAgICByZXR1cm4gKFxuICAgICAgY29tcHV0ZWRTdHlsZXMub3ZlcmZsb3dYID09PSBPVkVSRkxPV19TQ1JPTEwgfHxcbiAgICAgIGNvbXB1dGVkU3R5bGVzLm92ZXJmbG93WCA9PT0gT1ZFUkZMT1dfQVVUTyB8fFxuICAgICAgY29tcHV0ZWRTdHlsZXMub3ZlcmZsb3dZID09PSBPVkVSRkxPV19TQ1JPTEwgfHxcbiAgICAgIGNvbXB1dGVkU3R5bGVzLm92ZXJmbG93WSA9PT0gT1ZFUkZMT1dfQVVUT1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,105 +0,0 @@
1
- /*
2
- * Copyright (c) 2016-2025 Broadcom. All Rights Reserved.
3
- * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
- * This software is released under MIT license.
5
- * The full license information can be found in LICENSE in the root directory of this project.
6
- */
7
- import { Directive, HostListener, Input } from '@angular/core';
8
- import { BASIC_FOCUSABLE_ITEM_PROVIDER } from '../../utils/focus/focusable-item/basic-focusable-item.service';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "./dropdown";
11
- import * as i2 from "./providers/dropdown.service";
12
- import * as i3 from "../../utils/focus/focusable-item/focusable-item";
13
- export class ClrDropdownItem {
14
- constructor(dropdown, _dropdownService, focusableItem, el, renderer) {
15
- this.dropdown = dropdown;
16
- this._dropdownService = _dropdownService;
17
- this.focusableItem = focusableItem;
18
- this.el = el;
19
- this.renderer = renderer;
20
- }
21
- get disabled() {
22
- return this.focusableItem.disabled;
23
- }
24
- set disabled(value) {
25
- // Empty string attribute evaluates to false but should disable the item, so we need to add a special case for it.
26
- this.focusableItem.disabled = !!value || value === '';
27
- }
28
- /**
29
- * Let you overwrite the focusable auto increment id.
30
- */
31
- get dropdownItemId() {
32
- return this.focusableItem.id;
33
- }
34
- set dropdownItemId(value) {
35
- this.focusableItem.id = value;
36
- }
37
- onDropdownItemClick() {
38
- // Move focus back to the root dropdown trigger.
39
- // This is done BEFORE the dropdown is closed so that focus gets moved properly if a modal is opened.
40
- if (this.dropdown.isMenuClosable && !this.disabled && this.dropdown.toggleService.open) {
41
- const rootDropdown = this.findRootDropdown();
42
- rootDropdown.focusHandler.focus();
43
- // Prevent moving focus back to the trigger when the dropdown menu is closed.
44
- // Without this line, focus could be "stolen" from a modal that was opened from a dropdown item.
45
- rootDropdown.focusHandler.focusBackOnTriggerWhenClosed = false;
46
- }
47
- // Ensure that the dropdown is closed after custom dropdown item click event handlers have run.
48
- setTimeout(() => {
49
- if (this.dropdown.isMenuClosable && !this.disabled) {
50
- this._dropdownService.closeMenus();
51
- }
52
- });
53
- }
54
- onSpaceKeydown($event) {
55
- this.stopImmediatePropagationIfDisabled($event);
56
- }
57
- onEnterKeydown($event) {
58
- this.stopImmediatePropagationIfDisabled($event);
59
- }
60
- stopImmediatePropagationIfDisabled($event) {
61
- if (this.disabled) {
62
- $event.preventDefault(); // prevent click event
63
- $event.stopImmediatePropagation();
64
- }
65
- }
66
- findRootDropdown() {
67
- let rootDropdown = this.dropdown;
68
- while (rootDropdown.parent) {
69
- rootDropdown = rootDropdown.parent;
70
- }
71
- return rootDropdown;
72
- }
73
- }
74
- ClrDropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClrDropdownItem, deps: [{ token: i1.ClrDropdown }, { token: i2.RootDropdownService }, { token: i3.FocusableItem }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
75
- ClrDropdownItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ClrDropdownItem, 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 });
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClrDropdownItem, decorators: [{
77
- type: Directive,
78
- args: [{
79
- selector: '[clrDropdownItem]',
80
- host: {
81
- '[class.disabled]': 'disabled',
82
- '[class.dropdown-item]': 'true',
83
- '[attr.role]': '"menuitem"',
84
- '[attr.aria-disabled]': 'disabled',
85
- '[attr.id]': 'dropdownItemId',
86
- },
87
- providers: [BASIC_FOCUSABLE_ITEM_PROVIDER],
88
- }]
89
- }], ctorParameters: function () { return [{ type: i1.ClrDropdown }, { type: i2.RootDropdownService }, { type: i3.FocusableItem }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { disabled: [{
90
- type: Input,
91
- args: ['clrDisabled']
92
- }], dropdownItemId: [{
93
- type: Input,
94
- args: ['id']
95
- }], onDropdownItemClick: [{
96
- type: HostListener,
97
- args: ['click']
98
- }], onSpaceKeydown: [{
99
- type: HostListener,
100
- args: ['keydown.space', ['$event']]
101
- }], onEnterKeydown: [{
102
- type: HostListener,
103
- args: ['keydown.enter', ['$event']]
104
- }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3BvcG92ZXIvZHJvcGRvd24vZHJvcGRvd24taXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7Ozs7QUFnQjlHLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQ1UsUUFBcUIsRUFDckIsZ0JBQXFDLEVBQ3JDLGFBQTRCLEVBQzVCLEVBQWMsRUFDZCxRQUFtQjtRQUpuQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBcUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7SUFDMUIsQ0FBQztJQUVKLElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQXVCO1FBQ2xDLGtIQUFrSDtRQUNsSCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFHTyxtQkFBbUI7UUFDekIsZ0RBQWdEO1FBQ2hELHFHQUFxRztRQUNyRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7WUFDdEYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFFN0MsWUFBWSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQyw2RUFBNkU7WUFDN0UsZ0dBQWdHO1lBQ2hHLFlBQVksQ0FBQyxZQUFZLENBQUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFDO1NBQ2hFO1FBRUQsK0ZBQStGO1FBQy9GLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ3BDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR08sY0FBYyxDQUFDLE1BQXFCO1FBQzFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBR08sY0FBYyxDQUFDLE1BQXFCO1FBQzFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sa0NBQWtDLENBQUMsTUFBYTtRQUN0RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsc0JBQXNCO1lBQy9DLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRWpDLE9BQU8sWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUMxQixZQUFZLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztTQUNwQztRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7OzZHQTNFVSxlQUFlO2lHQUFmLGVBQWUsbWNBRmYsQ0FBQyw2QkFBNkIsQ0FBQzs0RkFFL0IsZUFBZTtrQkFYM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixJQUFJLEVBQUU7d0JBQ0osa0JBQWtCLEVBQUUsVUFBVTt3QkFDOUIsdUJBQXVCLEVBQUUsTUFBTTt3QkFDL0IsYUFBYSxFQUFFLFlBQVk7d0JBQzNCLHNCQUFzQixFQUFFLFVBQVU7d0JBQ2xDLFdBQVcsRUFBRSxnQkFBZ0I7cUJBQzlCO29CQUNELFNBQVMsRUFBRSxDQUFDLDZCQUE2QixDQUFDO2lCQUMzQztpTkFXSyxRQUFRO3NCQURYLEtBQUs7dUJBQUMsYUFBYTtnQkFhaEIsY0FBYztzQkFEakIsS0FBSzt1QkFBQyxJQUFJO2dCQVNILG1CQUFtQjtzQkFEMUIsWUFBWTt1QkFBQyxPQUFPO2dCQXNCYixjQUFjO3NCQURyQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNakMsY0FBYztzQkFEckIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJBU0lDX0ZPQ1VTQUJMRV9JVEVNX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9jdXMvZm9jdXNhYmxlLWl0ZW0vYmFzaWMtZm9jdXNhYmxlLWl0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtIH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9jdXMvZm9jdXNhYmxlLWl0ZW0vZm9jdXNhYmxlLWl0ZW0nO1xuaW1wb3J0IHsgQ2xyRHJvcGRvd24gfSBmcm9tICcuL2Ryb3Bkb3duJztcbmltcG9ydCB7IFJvb3REcm9wZG93blNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9kcm9wZG93bi5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NsckRyb3Bkb3duSXRlbV0nLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICdbY2xhc3MuZHJvcGRvd24taXRlbV0nOiAndHJ1ZScsXG4gICAgJ1thdHRyLnJvbGVdJzogJ1wibWVudWl0ZW1cIicsXG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAnW2F0dHIuaWRdJzogJ2Ryb3Bkb3duSXRlbUlkJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbQkFTSUNfRk9DVVNBQkxFX0lURU1fUFJPVklERVJdLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJEcm9wZG93bkl0ZW0ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRyb3Bkb3duOiBDbHJEcm9wZG93bixcbiAgICBwcml2YXRlIF9kcm9wZG93blNlcnZpY2U6IFJvb3REcm9wZG93blNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb2N1c2FibGVJdGVtOiBGb2N1c2FibGVJdGVtLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge31cblxuICBASW5wdXQoJ2NsckRpc2FibGVkJylcbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW0uZGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgLy8gRW1wdHkgc3RyaW5nIGF0dHJpYnV0ZSBldmFsdWF0ZXMgdG8gZmFsc2UgYnV0IHNob3VsZCBkaXNhYmxlIHRoZSBpdGVtLCBzbyB3ZSBuZWVkIHRvIGFkZCBhIHNwZWNpYWwgY2FzZSBmb3IgaXQuXG4gICAgdGhpcy5mb2N1c2FibGVJdGVtLmRpc2FibGVkID0gISF2YWx1ZSB8fCB2YWx1ZSA9PT0gJyc7XG4gIH1cblxuICAvKipcbiAgICogTGV0IHlvdSBvdmVyd3JpdGUgdGhlIGZvY3VzYWJsZSBhdXRvIGluY3JlbWVudCBpZC5cbiAgICovXG4gIEBJbnB1dCgnaWQnKVxuICBnZXQgZHJvcGRvd25JdGVtSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9jdXNhYmxlSXRlbS5pZDtcbiAgfVxuICBzZXQgZHJvcGRvd25JdGVtSWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZm9jdXNhYmxlSXRlbS5pZCA9IHZhbHVlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBwcml2YXRlIG9uRHJvcGRvd25JdGVtQ2xpY2soKTogdm9pZCB7XG4gICAgLy8gTW92ZSBmb2N1cyBiYWNrIHRvIHRoZSByb290IGRyb3Bkb3duIHRyaWdnZXIuXG4gICAgLy8gVGhpcyBpcyBkb25lIEJFRk9SRSB0aGUgZHJvcGRvd24gaXMgY2xvc2VkIHNvIHRoYXQgZm9jdXMgZ2V0cyBtb3ZlZCBwcm9wZXJseSBpZiBhIG1vZGFsIGlzIG9wZW5lZC5cbiAgICBpZiAodGhpcy5kcm9wZG93bi5pc01lbnVDbG9zYWJsZSAmJiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmRyb3Bkb3duLnRvZ2dsZVNlcnZpY2Uub3Blbikge1xuICAgICAgY29uc3Qgcm9vdERyb3Bkb3duID0gdGhpcy5maW5kUm9vdERyb3Bkb3duKCk7XG5cbiAgICAgIHJvb3REcm9wZG93bi5mb2N1c0hhbmRsZXIuZm9jdXMoKTtcbiAgICAgIC8vIFByZXZlbnQgbW92aW5nIGZvY3VzIGJhY2sgdG8gdGhlIHRyaWdnZXIgd2hlbiB0aGUgZHJvcGRvd24gbWVudSBpcyBjbG9zZWQuXG4gICAgICAvLyBXaXRob3V0IHRoaXMgbGluZSwgZm9jdXMgY291bGQgYmUgXCJzdG9sZW5cIiBmcm9tIGEgbW9kYWwgdGhhdCB3YXMgb3BlbmVkIGZyb20gYSBkcm9wZG93biBpdGVtLlxuICAgICAgcm9vdERyb3Bkb3duLmZvY3VzSGFuZGxlci5mb2N1c0JhY2tPblRyaWdnZXJXaGVuQ2xvc2VkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIHRoYXQgdGhlIGRyb3Bkb3duIGlzIGNsb3NlZCBhZnRlciBjdXN0b20gZHJvcGRvd24gaXRlbSBjbGljayBldmVudCBoYW5kbGVycyBoYXZlIHJ1bi5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmRyb3Bkb3duLmlzTWVudUNsb3NhYmxlICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuX2Ryb3Bkb3duU2VydmljZS5jbG9zZU1lbnVzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLnNwYWNlJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBvblNwYWNlS2V5ZG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbklmRGlzYWJsZWQoJGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICBwcml2YXRlIG9uRW50ZXJLZXlkb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uSWZEaXNhYmxlZCgkZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb25JZkRpc2FibGVkKCRldmVudDogRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIHByZXZlbnQgY2xpY2sgZXZlbnRcbiAgICAgICRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbmRSb290RHJvcGRvd24oKSB7XG4gICAgbGV0IHJvb3REcm9wZG93biA9IHRoaXMuZHJvcGRvd247XG5cbiAgICB3aGlsZSAocm9vdERyb3Bkb3duLnBhcmVudCkge1xuICAgICAgcm9vdERyb3Bkb3duID0gcm9vdERyb3Bkb3duLnBhcmVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gcm9vdERyb3Bkb3duO1xuICB9XG59XG4iXX0=