@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,106 +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 { Component, Optional, ViewChild } from '@angular/core';
8
- import { ClrAbstractContainer } from '../common/abstract-container';
9
- import { IfControlStateService } from '../common/if-control-state/if-control-state.service';
10
- import { ControlClassService } from '../common/providers/control-class.service';
11
- import { ControlIdService } from '../common/providers/control-id.service';
12
- import { NgControlService } from '../common/providers/ng-control.service';
13
- import { ComboboxContainerService } from './providers/combobox-container.service';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "../common/if-control-state/if-control-state.service";
16
- import * as i2 from "../common/providers/layout.service";
17
- import * as i3 from "../common/providers/control-class.service";
18
- import * as i4 from "../common/providers/ng-control.service";
19
- import * as i5 from "./providers/combobox-container.service";
20
- import * as i6 from "@angular/common";
21
- import * as i7 from "../../icon/icon";
22
- import * as i8 from "../common/label";
23
- export class ClrComboboxContainer extends ClrAbstractContainer {
24
- constructor(ifControlStateService, layoutService, controlClassService, ngControlService, containerService, el) {
25
- super(ifControlStateService, layoutService, controlClassService, ngControlService);
26
- this.containerService = containerService;
27
- this.el = el;
28
- }
29
- ngAfterContentInit() {
30
- if (this.label) {
31
- this.containerService.labelText = this.label.labelText;
32
- }
33
- }
34
- ngAfterViewInit() {
35
- this.containerService.labelOffset =
36
- this.controlContainer.nativeElement.offsetHeight - this.el.nativeElement.offsetHeight;
37
- }
38
- }
39
- ClrComboboxContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClrComboboxContainer, deps: [{ token: i1.IfControlStateService }, { token: i2.LayoutService, optional: true }, { token: i3.ControlClassService }, { token: i4.NgControlService }, { token: i5.ComboboxContainerService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
40
- ClrComboboxContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ClrComboboxContainer, selector: "clr-combobox-container", host: { properties: { "class.clr-form-control": "true", "class.clr-combobox-form-control": "true", "class.clr-form-control-disabled": "control?.disabled", "class.clr-row": "addGrid()" } }, providers: [IfControlStateService, NgControlService, ControlIdService, ControlClassService, ComboboxContainerService], viewQueries: [{ propertyName: "controlContainer", first: true, predicate: ["controlContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
41
- <ng-content select="label"></ng-content>
42
- <label *ngIf="!label && addGrid()"></label>
43
- <div class="clr-control-container" [ngClass]="controlClass()" #controlContainer>
44
- <ng-content select="clr-combobox"></ng-content>
45
- <cds-icon
46
- *ngIf="showInvalid"
47
- class="clr-validate-icon"
48
- shape="exclamation-circle"
49
- status="danger"
50
- aria-hidden="true"
51
- ></cds-icon>
52
- <cds-icon
53
- *ngIf="showValid"
54
- class="clr-validate-icon"
55
- shape="check-circle"
56
- status="success"
57
- aria-hidden="true"
58
- ></cds-icon>
59
- <ng-content select="clr-control-helper" *ngIf="showHelper"></ng-content>
60
- <ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
61
- <ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
62
- </div>
63
- `, isInline: true, dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i8.ClrLabel, selector: "label", inputs: ["id", "for"] }] });
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClrComboboxContainer, decorators: [{
65
- type: Component,
66
- args: [{
67
- selector: 'clr-combobox-container',
68
- template: `
69
- <ng-content select="label"></ng-content>
70
- <label *ngIf="!label && addGrid()"></label>
71
- <div class="clr-control-container" [ngClass]="controlClass()" #controlContainer>
72
- <ng-content select="clr-combobox"></ng-content>
73
- <cds-icon
74
- *ngIf="showInvalid"
75
- class="clr-validate-icon"
76
- shape="exclamation-circle"
77
- status="danger"
78
- aria-hidden="true"
79
- ></cds-icon>
80
- <cds-icon
81
- *ngIf="showValid"
82
- class="clr-validate-icon"
83
- shape="check-circle"
84
- status="success"
85
- aria-hidden="true"
86
- ></cds-icon>
87
- <ng-content select="clr-control-helper" *ngIf="showHelper"></ng-content>
88
- <ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
89
- <ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
90
- </div>
91
- `,
92
- host: {
93
- '[class.clr-form-control]': 'true',
94
- '[class.clr-combobox-form-control]': 'true',
95
- '[class.clr-form-control-disabled]': 'control?.disabled',
96
- '[class.clr-row]': 'addGrid()',
97
- },
98
- providers: [IfControlStateService, NgControlService, ControlIdService, ControlClassService, ComboboxContainerService],
99
- }]
100
- }], ctorParameters: function () { return [{ type: i1.IfControlStateService }, { type: i2.LayoutService, decorators: [{
101
- type: Optional
102
- }] }, { type: i3.ControlClassService }, { type: i4.NgControlService }, { type: i5.ComboboxContainerService }, { type: i0.ElementRef }]; }, propDecorators: { controlContainer: [{
103
- type: ViewChild,
104
- args: ['controlContainer']
105
- }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvY29tYm9ib3gvY29tYm9ib3gtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFtQyxTQUFTLEVBQWMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7OztBQW9DbEYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG9CQUFvQjtJQUc1RCxZQUNFLHFCQUE0QyxFQUNoQyxhQUE0QixFQUN4QyxtQkFBd0MsRUFDeEMsZ0JBQWtDLEVBQzFCLGdCQUEwQyxFQUMxQyxFQUEyQjtRQUVuQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFIM0UscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEwQjtRQUMxQyxPQUFFLEdBQUYsRUFBRSxDQUF5QjtJQUdyQyxDQUFDO0lBRVEsa0JBQWtCO1FBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXO1lBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztJQUMxRixDQUFDOztrSEF2QlUsb0JBQW9CO3NHQUFwQixvQkFBb0IsOE9BRnBCLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLENBQUMsdUtBOUIzRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QlQ7NEZBU1Usb0JBQW9CO2tCQWxDaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJUO29CQUNELElBQUksRUFBRTt3QkFDSiwwQkFBMEIsRUFBRSxNQUFNO3dCQUNsQyxtQ0FBbUMsRUFBRSxNQUFNO3dCQUMzQyxtQ0FBbUMsRUFBRSxtQkFBbUI7d0JBQ3hELGlCQUFpQixFQUFFLFdBQVc7cUJBQy9CO29CQUNELFNBQVMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixDQUFDO2lCQUN0SDs7MEJBTUksUUFBUTs2S0FKb0IsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPcHRpb25hbCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENsckFic3RyYWN0Q29udGFpbmVyIH0gZnJvbSAnLi4vY29tbW9uL2Fic3RyYWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBJZkNvbnRyb2xTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vaWYtY29udHJvbC1zdGF0ZS9pZi1jb250cm9sLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udHJvbENsYXNzU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvY29udHJvbC1jbGFzcy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xJZFNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vcHJvdmlkZXJzL2NvbnRyb2wtaWQuc2VydmljZSc7XG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9uZy1jb250cm9sLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tYm9ib3hDb250YWluZXJTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvY29tYm9ib3gtY29udGFpbmVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItY29tYm9ib3gtY29udGFpbmVyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJsYWJlbFwiPjwvbmctY29udGVudD5cbiAgICA8bGFiZWwgKm5nSWY9XCIhbGFiZWwgJiYgYWRkR3JpZCgpXCI+PC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbnRyb2wtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiY29udHJvbENsYXNzKClcIiAjY29udHJvbENvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci1jb21ib2JveFwiPjwvbmctY29udGVudD5cbiAgICAgIDxjZHMtaWNvblxuICAgICAgICAqbmdJZj1cInNob3dJbnZhbGlkXCJcbiAgICAgICAgY2xhc3M9XCJjbHItdmFsaWRhdGUtaWNvblwiXG4gICAgICAgIHNoYXBlPVwiZXhjbGFtYXRpb24tY2lyY2xlXCJcbiAgICAgICAgc3RhdHVzPVwiZGFuZ2VyXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgID48L2Nkcy1pY29uPlxuICAgICAgPGNkcy1pY29uXG4gICAgICAgICpuZ0lmPVwic2hvd1ZhbGlkXCJcbiAgICAgICAgY2xhc3M9XCJjbHItdmFsaWRhdGUtaWNvblwiXG4gICAgICAgIHNoYXBlPVwiY2hlY2stY2lyY2xlXCJcbiAgICAgICAgc3RhdHVzPVwic3VjY2Vzc1wiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICA+PC9jZHMtaWNvbj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci1jb250cm9sLWhlbHBlclwiICpuZ0lmPVwic2hvd0hlbHBlclwiPjwvbmctY29udGVudD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci1jb250cm9sLWVycm9yXCIgKm5nSWY9XCJzaG93SW52YWxpZFwiPjwvbmctY29udGVudD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci1jb250cm9sLXN1Y2Nlc3NcIiAqbmdJZj1cInNob3dWYWxpZFwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuY2xyLWZvcm0tY29udHJvbF0nOiAndHJ1ZScsXG4gICAgJ1tjbGFzcy5jbHItY29tYm9ib3gtZm9ybS1jb250cm9sXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWRdJzogJ2NvbnRyb2w/LmRpc2FibGVkJyxcbiAgICAnW2NsYXNzLmNsci1yb3ddJzogJ2FkZEdyaWQoKScsXG4gIH0sXG4gIHByb3ZpZGVyczogW0lmQ29udHJvbFN0YXRlU2VydmljZSwgTmdDb250cm9sU2VydmljZSwgQ29udHJvbElkU2VydmljZSwgQ29udHJvbENsYXNzU2VydmljZSwgQ29tYm9ib3hDb250YWluZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyQ29tYm9ib3hDb250YWluZXIgZXh0ZW5kcyBDbHJBYnN0cmFjdENvbnRhaW5lciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCdjb250cm9sQ29udGFpbmVyJykgY29udHJvbENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaWZDb250cm9sU3RhdGVTZXJ2aWNlOiBJZkNvbnRyb2xTdGF0ZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcbiAgICBjb250cm9sQ2xhc3NTZXJ2aWNlOiBDb250cm9sQ2xhc3NTZXJ2aWNlLFxuICAgIG5nQ29udHJvbFNlcnZpY2U6IE5nQ29udHJvbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250YWluZXJTZXJ2aWNlOiBDb21ib2JveENvbnRhaW5lclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7XG4gICAgc3VwZXIoaWZDb250cm9sU3RhdGVTZXJ2aWNlLCBsYXlvdXRTZXJ2aWNlLCBjb250cm9sQ2xhc3NTZXJ2aWNlLCBuZ0NvbnRyb2xTZXJ2aWNlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAodGhpcy5sYWJlbCkge1xuICAgICAgdGhpcy5jb250YWluZXJTZXJ2aWNlLmxhYmVsVGV4dCA9IHRoaXMubGFiZWwubGFiZWxUZXh0O1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNvbnRhaW5lclNlcnZpY2UubGFiZWxPZmZzZXQgPVxuICAgICAgdGhpcy5jb250cm9sQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgfVxufVxuIl19
@@ -1,360 +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 { isPlatformBrowser } from '@angular/common';
8
- import { Component, ContentChild, EventEmitter, HostListener, Inject, Input, Optional, Output, PLATFORM_ID, Self, ViewChild, } from '@angular/core';
9
- import { IF_ACTIVE_ID_PROVIDER } from '../../utils/conditional/if-active.service';
10
- import { Keys } from '../../utils/enums/keys.enum';
11
- import { FOCUS_SERVICE_PROVIDER } from '../../utils/focus/focus.service';
12
- import { ClrLoadingState } from '../../utils/loading/loading';
13
- import { LoadingListener } from '../../utils/loading/loading-listener';
14
- import { ClrAlignment } from '../../utils/popover/enums/alignment.enum';
15
- import { ClrAxis } from '../../utils/popover/enums/axis.enum';
16
- import { ClrSide } from '../../utils/popover/enums/side.enum';
17
- import { ClrPopoverHostDirective } from '../../utils/popover/popover-host.directive';
18
- import { CONTROL_STATE } from '../common/if-control-state/if-control-state.service';
19
- import { WrappedFormControl } from '../common/wrapped-control';
20
- import { ClrComboboxContainer } from './combobox-container';
21
- import { MultiSelectComboboxModel } from './model/multi-select-combobox.model';
22
- import { SingleSelectComboboxModel } from './model/single-select-combobox.model';
23
- import { ClrOptionSelected } from './option-selected.directive';
24
- import { ClrOptions } from './options';
25
- import { COMBOBOX_FOCUS_HANDLER_PROVIDER } from './providers/combobox-focus-handler.service';
26
- import { OptionSelectionService } from './providers/option-selection.service';
27
- import * as i0 from "@angular/core";
28
- import * as i1 from "@angular/forms";
29
- import * as i2 from "./providers/option-selection.service";
30
- import * as i3 from "../../utils/i18n/common-strings.service";
31
- import * as i4 from "../../utils/popover/providers/popover-toggle.service";
32
- import * as i5 from "../../utils/popover/providers/popover-position.service";
33
- import * as i6 from "../common/if-control-state/if-control-state.service";
34
- import * as i7 from "./providers/combobox-container.service";
35
- import * as i8 from "./providers/combobox-focus-handler.service";
36
- import * as i9 from "../../utils/popover/popover-host.directive";
37
- import * as i10 from "@angular/common";
38
- import * as i11 from "../../icon/icon";
39
- import * as i12 from "../../utils/focus/key-focus/roving-tabindex";
40
- import * as i13 from "../../utils/focus/key-focus/key-focus-item";
41
- import * as i14 from "../../utils/popover/popover-anchor";
42
- import * as i15 from "../../utils/popover/popover-open-close-button";
43
- import * as i16 from "../../utils/popover/popover-content";
44
- export class ClrCombobox extends WrappedFormControl {
45
- constructor(vcr, injector, control, renderer, el, optionSelectionService, commonStrings, toggleService, positionService, controlStateService, containerService, platformId, focusHandler, cdr) {
46
- super(vcr, ClrComboboxContainer, injector, control, renderer, el);
47
- this.control = control;
48
- this.renderer = renderer;
49
- this.el = el;
50
- this.optionSelectionService = optionSelectionService;
51
- this.commonStrings = commonStrings;
52
- this.toggleService = toggleService;
53
- this.positionService = positionService;
54
- this.controlStateService = controlStateService;
55
- this.containerService = containerService;
56
- this.platformId = platformId;
57
- this.focusHandler = focusHandler;
58
- this.cdr = cdr;
59
- this.placeholder = '';
60
- this.clrInputChange = new EventEmitter(false);
61
- this.clrOpenChange = this.toggleService.openChange;
62
- /**
63
- * This output should be used to set up a live region using aria-live and populate it with updates that reflect each combobox change.
64
- */
65
- this.clrSelectionChange = this.optionSelectionService.selectionChanged;
66
- this.invalid = false;
67
- this.focused = false;
68
- this.smartPosition = {
69
- axis: ClrAxis.VERTICAL,
70
- side: ClrSide.AFTER,
71
- anchor: ClrAlignment.START,
72
- content: ClrAlignment.START,
73
- };
74
- this.index = 1;
75
- this._searchText = '';
76
- if (control) {
77
- control.valueAccessor = this;
78
- }
79
- // default to SingleSelectComboboxModel, in case the optional input [ClrMulti] isn't used
80
- optionSelectionService.selectionModel = new SingleSelectComboboxModel();
81
- this.updateControlValue();
82
- }
83
- get multiSelect() {
84
- return this.optionSelectionService.multiselectable;
85
- }
86
- set multiSelect(value) {
87
- if (value) {
88
- this.optionSelectionService.selectionModel = new MultiSelectComboboxModel();
89
- }
90
- else {
91
- // in theory, setting this again should not cause errors even though we already set it in constructor,
92
- // since the initial call to writeValue (caused by [ngModel] input) should happen after this
93
- this.optionSelectionService.selectionModel = new SingleSelectComboboxModel();
94
- }
95
- this.updateControlValue();
96
- }
97
- // Override the id of WrappedFormControl, as we want to move it to the embedded input.
98
- // Otherwise the label/component connection does not work and screen readers do not read the label.
99
- get id() {
100
- return this.controlIdService.id + '-combobox';
101
- }
102
- set id(id) {
103
- super.id = id;
104
- }
105
- get searchText() {
106
- return this._searchText;
107
- }
108
- set searchText(text) {
109
- // if input text has changed since last time, fire a change event so application can react to it
110
- if (text !== this._searchText) {
111
- if (this.toggleService.open) {
112
- this.optionSelectionService.showAllOptions = false;
113
- }
114
- this._searchText = text;
115
- this.clrInputChange.emit(this.searchText);
116
- }
117
- // We need to trigger this even if unchanged, so the option-items directive will update its list
118
- // based on the "showAllOptions" variable which may have changed in the openChange subscription below.
119
- // The option-items directive does not listen to openChange, but it listens to currentInput changes.
120
- this.optionSelectionService.currentInput = this.searchText;
121
- }
122
- get openState() {
123
- return this.toggleService.open;
124
- }
125
- get multiSelectModel() {
126
- if (!this.multiSelect) {
127
- throw Error('multiSelectModel is not available in single selection context');
128
- }
129
- return this.optionSelectionService.selectionModel.model;
130
- }
131
- get ariaControls() {
132
- return this.options?.optionsId;
133
- }
134
- get ariaOwns() {
135
- return this.options?.optionsId;
136
- }
137
- get ariaDescribedBySelection() {
138
- return 'selection-' + this.id;
139
- }
140
- get displayField() {
141
- return this.optionSelectionService.displayField;
142
- }
143
- get disabled() {
144
- return this.control?.disabled;
145
- }
146
- ngAfterContentInit() {
147
- this.initializeSubscriptions();
148
- // Initialize with preselected value
149
- if (!this.optionSelectionService.selectionModel.isEmpty()) {
150
- this.updateInputValue(this.optionSelectionService.selectionModel);
151
- }
152
- }
153
- ngAfterViewInit() {
154
- this.focusHandler.componentCdRef = this.cdr;
155
- this.focusHandler.textInput = this.textbox.nativeElement;
156
- this.focusHandler.trigger = this.trigger.nativeElement;
157
- // The text input is the actual element we are wrapping
158
- // This assignment is needed by the wrapper, so it can set
159
- // the aria properties on the input element, not on the component.
160
- this.el = this.textbox;
161
- }
162
- onKeyUp(event) {
163
- // if BACKSPACE in multiselect mode, delete the last pill if text is empty
164
- if (event.key === Keys.Backspace && this.multiSelect && this._searchText.length === 0) {
165
- const multiModel = this.optionSelectionService.selectionModel.model;
166
- if (multiModel && multiModel.length > 0) {
167
- const lastItem = multiModel[multiModel.length - 1];
168
- this.control?.control.markAsTouched();
169
- this.optionSelectionService.unselect(lastItem);
170
- }
171
- }
172
- }
173
- inputId() {
174
- return this.controlIdService.id;
175
- }
176
- loadingStateChange(state) {
177
- this.optionSelectionService.loading = state === ClrLoadingState.LOADING;
178
- this.positionService.realign();
179
- if (state !== ClrLoadingState.LOADING && isPlatformBrowser(this.platformId)) {
180
- this.focusFirstActive();
181
- }
182
- }
183
- unselect(item) {
184
- if (!this.disabled) {
185
- this.optionSelectionService.unselect(item);
186
- }
187
- }
188
- onBlur(event) {
189
- if (!event.relatedTarget || !this.options.el?.nativeElement.contains(event.relatedTarget)) {
190
- this.onTouchedCallback?.();
191
- this.triggerValidation();
192
- this.focused = false;
193
- }
194
- }
195
- onFocus() {
196
- this.focused = true;
197
- // fix for "expression changed" error when focus is returned to a combobox after a modal is closed
198
- // https://github.com/vmware-clarity/ng-clarity/issues/663
199
- this.cdr.detectChanges();
200
- }
201
- getSelectionAriaLabel() {
202
- if (this.containerService && this.containerService.labelText) {
203
- return `${this.containerService.labelText} ${this.commonStrings.keys.comboboxSelection}`;
204
- }
205
- return this.commonStrings.keys.comboboxSelection;
206
- }
207
- focusFirstActive() {
208
- setTimeout(() => {
209
- this.focusHandler.focusFirstActive();
210
- });
211
- }
212
- writeValue(value) {
213
- this.optionSelectionService.selectionModel.model = value;
214
- this.updateInputValue(this.optionSelectionService.selectionModel);
215
- }
216
- registerOnTouched(onTouched) {
217
- this.onTouchedCallback = onTouched;
218
- }
219
- registerOnChange(onChange) {
220
- this.onChangeCallback = onChange;
221
- }
222
- getActiveDescendant() {
223
- const model = this.focusHandler.pseudoFocus.model;
224
- return model ? model.id : this.options?.noResultsElementId;
225
- }
226
- setDisabledState() {
227
- // do nothing
228
- }
229
- focusInput() {
230
- this.focusHandler.focusInput();
231
- }
232
- initializeSubscriptions() {
233
- this.subscriptions.push(this.optionSelectionService.selectionChanged.subscribe((newSelection) => {
234
- this.updateInputValue(newSelection);
235
- if (this.multiSelect) {
236
- this.positionService.realign();
237
- }
238
- if (!this.multiSelect && newSelection && !newSelection.isEmpty()) {
239
- this.toggleService.open = false;
240
- }
241
- this.updateControlValue();
242
- }));
243
- this.subscriptions.push(this.toggleService.openChange.subscribe(open => {
244
- if (open) {
245
- this.focusFirstActive();
246
- }
247
- else {
248
- this.optionSelectionService.showAllOptions = true;
249
- }
250
- if (this.multiSelect) {
251
- this.searchText = '';
252
- }
253
- else {
254
- this.searchText = this.getDisplayNames(this.optionSelectionService.selectionModel.model)[0] || '';
255
- }
256
- }));
257
- this.subscriptions.push(this.toggleService.popoverAligned.subscribe(popoverNode => {
258
- // When used outside a combobox container
259
- if (!this.containerService) {
260
- return;
261
- }
262
- const popover = popoverNode;
263
- // Update position if popover hides the label
264
- if (popover.getBoundingClientRect().top < this.el.nativeElement.getBoundingClientRect().top) {
265
- this.renderer.setStyle(popoverNode, 'top', `${popover.offsetTop + this.containerService.labelOffset}px`);
266
- }
267
- }));
268
- if (this.controlStateService) {
269
- this.subscriptions.push(this.controlStateService.statusChanges.subscribe(invalid => {
270
- this.invalid = this.control?.control.touched && invalid === CONTROL_STATE.INVALID;
271
- }));
272
- }
273
- }
274
- updateInputValue(model) {
275
- if (!this.multiSelect) {
276
- this.searchText = model.model ? this.getDisplayNames(model.model)[0] : '';
277
- if (this.searchText) {
278
- this.optionSelectionService.currentInput = this.searchText;
279
- }
280
- }
281
- }
282
- updateControlValue() {
283
- if (this.onChangeCallback) {
284
- this.onChangeCallback(this.optionSelectionService.selectionModel.model);
285
- }
286
- }
287
- getDisplayNames(model) {
288
- if (this.displayField) {
289
- if (!Array.isArray(model)) {
290
- model = [model];
291
- }
292
- return model.map(item => (item ? item[this.displayField] : null));
293
- }
294
- return [this.optionSelectionService.selectionModel.model];
295
- }
296
- }
297
- ClrCombobox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClrCombobox, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i1.NgControl, optional: true, self: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.OptionSelectionService }, { token: i3.ClrCommonStringsService }, { token: i4.ClrPopoverToggleService }, { token: i5.ClrPopoverPositionService }, { token: i6.IfControlStateService, optional: true }, { token: i7.ComboboxContainerService, optional: true }, { token: PLATFORM_ID }, { token: i8.ComboboxFocusHandler }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
298
- ClrCombobox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ClrCombobox, selector: "clr-combobox", inputs: { placeholder: "placeholder", multiSelect: ["clrMulti", "multiSelect"] }, outputs: { clrInputChange: "clrInputChange", clrOpenChange: "clrOpenChange", clrSelectionChange: "clrSelectionChange" }, host: { listeners: { "keydown": "onKeyUp($event)" }, properties: { "class.aria-required": "true", "class.clr-combobox": "true", "class.clr-combobox-disabled": "control?.disabled" } }, providers: [
299
- OptionSelectionService,
300
- { provide: LoadingListener, useExisting: ClrCombobox },
301
- IF_ACTIVE_ID_PROVIDER,
302
- FOCUS_SERVICE_PROVIDER,
303
- COMBOBOX_FOCUS_HANDLER_PROVIDER,
304
- ], queries: [{ propertyName: "optionSelected", first: true, predicate: ClrOptionSelected, descendants: true }, { propertyName: "options", first: true, predicate: ClrOptions, descendants: true }], viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textboxInput"], descendants: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i9.ClrPopoverHostDirective }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2025 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n-->\n\n<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\n width of the component, after being wrapped to a new line -->\n<div\n class=\"clr-combobox-wrapper\"\n clrPopoverAnchor\n (click)=\"focusInput()\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"invalid\"\n [class.disabled]=\"control?.disabled? true: null\"\n>\n <span\n *ngIf=\"multiSelect && optionSelectionService.selectionModel.model && multiSelectModel.length > 0\"\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n class=\"clr-combobox-pills\"\n >\n <span *ngFor=\"let item of multiSelectModel; let i = index\" class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n <ng-container\n *ngIf=\"optionSelected\"\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: optionSelectionService.selectionModel.model[i]}\"\n ></ng-container>\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n </span>\n\n <input\n #textboxInput\n type=\"text\"\n role=\"combobox\"\n [id]=\"inputId()\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n />\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n clrPopoverOpenCloseButton\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually due to issues in Edge browser.\n Additionally 'outsideClickToClose' has complex handling that's necessary\n to be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState at smartPosition; outsideClickToClose: false; scrollToClose: false\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i11.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: i12.ClrRovingTabindex, selector: "[clrRovingTabindex]", inputs: ["clrRovingTabindex", "clrRovingTabindexDisabled"] }, { kind: "directive", type: i13.ClrKeyFocusItem, selector: "[clrKeyFocusItem]" }, { kind: "directive", type: i14.ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: i15.ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: i16.ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }] });
305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClrCombobox, decorators: [{
306
- type: Component,
307
- args: [{ selector: 'clr-combobox', providers: [
308
- OptionSelectionService,
309
- { provide: LoadingListener, useExisting: ClrCombobox },
310
- IF_ACTIVE_ID_PROVIDER,
311
- FOCUS_SERVICE_PROVIDER,
312
- COMBOBOX_FOCUS_HANDLER_PROVIDER,
313
- ], hostDirectives: [ClrPopoverHostDirective], host: {
314
- '[class.aria-required]': 'true',
315
- '[class.clr-combobox]': 'true',
316
- '[class.clr-combobox-disabled]': 'control?.disabled',
317
- }, template: "<!--\n ~ Copyright (c) 2016-2025 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n-->\n\n<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\n width of the component, after being wrapped to a new line -->\n<div\n class=\"clr-combobox-wrapper\"\n clrPopoverAnchor\n (click)=\"focusInput()\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"invalid\"\n [class.disabled]=\"control?.disabled? true: null\"\n>\n <span\n *ngIf=\"multiSelect && optionSelectionService.selectionModel.model && multiSelectModel.length > 0\"\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n class=\"clr-combobox-pills\"\n >\n <span *ngFor=\"let item of multiSelectModel; let i = index\" class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n <ng-container\n *ngIf=\"optionSelected\"\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: optionSelectionService.selectionModel.model[i]}\"\n ></ng-container>\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n </span>\n\n <input\n #textboxInput\n type=\"text\"\n role=\"combobox\"\n [id]=\"inputId()\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n />\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n clrPopoverOpenCloseButton\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually due to issues in Edge browser.\n Additionally 'outsideClickToClose' has complex handling that's necessary\n to be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState at smartPosition; outsideClickToClose: false; scrollToClose: false\">\n <ng-content></ng-content>\n</div>\n" }]
318
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
319
- type: Self
320
- }, {
321
- type: Optional
322
- }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.OptionSelectionService }, { type: i3.ClrCommonStringsService }, { type: i4.ClrPopoverToggleService }, { type: i5.ClrPopoverPositionService }, { type: i6.IfControlStateService, decorators: [{
323
- type: Optional
324
- }] }, { type: i7.ComboboxContainerService, decorators: [{
325
- type: Optional
326
- }] }, { type: undefined, decorators: [{
327
- type: Inject,
328
- args: [PLATFORM_ID]
329
- }] }, { type: i8.ComboboxFocusHandler }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { placeholder: [{
330
- type: Input,
331
- args: ['placeholder']
332
- }], clrInputChange: [{
333
- type: Output,
334
- args: ['clrInputChange']
335
- }], clrOpenChange: [{
336
- type: Output,
337
- args: ['clrOpenChange']
338
- }], clrSelectionChange: [{
339
- type: Output,
340
- args: ['clrSelectionChange']
341
- }], textbox: [{
342
- type: ViewChild,
343
- args: ['textboxInput']
344
- }], trigger: [{
345
- type: ViewChild,
346
- args: ['trigger']
347
- }], optionSelected: [{
348
- type: ContentChild,
349
- args: [ClrOptionSelected]
350
- }], options: [{
351
- type: ContentChild,
352
- args: [ClrOptions]
353
- }], multiSelect: [{
354
- type: Input,
355
- args: ['clrMulti']
356
- }], onKeyUp: [{
357
- type: HostListener,
358
- args: ['keydown', ['$event']]
359
- }] } });
360
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9jb21ib2JveC9jb21ib2JveC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2NvbWJvYm94L2NvbWJvYm94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBRVgsSUFBSSxFQUNKLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUdyRixPQUFPLEVBQUUsYUFBYSxFQUF5QixNQUFNLHFEQUFxRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FB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LE9BQU87c0JBRE4sWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBQTEFURk9STV9JRCxcbiAgUmVuZGVyZXIyLFxuICBTZWxmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgSUZfQUNUSVZFX0lEX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29uZGl0aW9uYWwvaWYtYWN0aXZlLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5cyB9IGZyb20gJy4uLy4uL3V0aWxzL2VudW1zL2tleXMuZW51bSc7XG5pbXBvcnQgeyBGT0NVU19TRVJWSUNFX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9jdXMvZm9jdXMuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDbHJMb2FkaW5nU3RhdGUgfSBmcm9tICcuLi8uLi91dGlscy9sb2FkaW5nL2xvYWRpbmcnO1xuaW1wb3J0IHsgTG9hZGluZ0xpc3RlbmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9hZGluZy9sb2FkaW5nLWxpc3RlbmVyJztcbmltcG9ydCB7IENsckFsaWdubWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvZW51bXMvYWxpZ25tZW50LmVudW0nO1xuaW1wb3J0IHsgQ2xyQXhpcyB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvZW51bXMvYXhpcy5lbnVtJztcbmltcG9ydCB7IENsclNpZGUgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2VudW1zL3NpZGUuZW51bSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyUG9zaXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2ludGVyZmFjZXMvcG9wb3Zlci1wb3NpdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xyUG9wb3Zlckhvc3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL3BvcG92ZXItaG9zdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlclBvc2l0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItcG9zaXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItdG9nZ2xlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ09OVFJPTF9TVEFURSwgSWZDb250cm9sU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL2lmLWNvbnRyb2wtc3RhdGUvaWYtY29udHJvbC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFdyYXBwZWRGb3JtQ29udHJvbCB9IGZyb20gJy4uL2NvbW1vbi93cmFwcGVkLWNvbnRyb2wnO1xuaW1wb3J0IHsgQ2xyQ29tYm9ib3hDb250YWluZXIgfSBmcm9tICcuL2NvbWJvYm94LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBDb21ib2JveE1vZGVsIH0gZnJvbSAnLi9tb2RlbC9jb21ib2JveC5tb2RlbCc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdENvbWJvYm94TW9kZWwgfSBmcm9tICcuL21vZGVsL211bHRpLXNlbGVjdC1jb21ib2JveC5tb2RlbCc7XG5pbXBvcnQgeyBTaW5nbGVTZWxlY3RDb21ib2JveE1vZGVsIH0gZnJvbSAnLi9tb2RlbC9zaW5nbGUtc2VsZWN0LWNvbWJvYm94Lm1vZGVsJztcbmltcG9ydCB7IENsck9wdGlvblNlbGVjdGVkIH0gZnJvbSAnLi9vcHRpb24tc2VsZWN0ZWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IENsck9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgQ29tYm9ib3hDb250YWluZXJTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvY29tYm9ib3gtY29udGFpbmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ09NQk9CT1hfRk9DVVNfSEFORExFUl9QUk9WSURFUiwgQ29tYm9ib3hGb2N1c0hhbmRsZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9jb21ib2JveC1mb2N1cy1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3B0aW9uU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL29wdGlvbi1zZWxlY3Rpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1jb21ib2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21ib2JveC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgT3B0aW9uU2VsZWN0aW9uU2VydmljZSxcbiAgICB7IHByb3ZpZGU6IExvYWRpbmdMaXN0ZW5lciwgdXNlRXhpc3Rpbmc6IENsckNvbWJvYm94IH0sXG4gICAgSUZfQUNUSVZFX0lEX1BST1ZJREVSLFxuICAgIEZPQ1VTX1NFUlZJQ0VfUFJPVklERVIsXG4gICAgQ09NQk9CT1hfRk9DVVNfSEFORExFUl9QUk9WSURFUixcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtDbHJQb3BvdmVySG9zdERpcmVjdGl2ZV0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmFyaWEtcmVxdWlyZWRdJzogJ3RydWUnLFxuICAgICdbY2xhc3MuY2xyLWNvbWJvYm94XSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmNsci1jb21ib2JveC1kaXNhYmxlZF0nOiAnY29udHJvbD8uZGlzYWJsZWQnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDbHJDb21ib2JveDxUPlxuICBleHRlbmRzIFdyYXBwZWRGb3JtQ29udHJvbDxDbHJDb21ib2JveENvbnRhaW5lcj5cbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTG9hZGluZ0xpc3RlbmVyLCBBZnRlckNvbnRlbnRJbml0XG57XG4gIEBJbnB1dCgncGxhY2Vob2xkZXInKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIEBPdXRwdXQoJ2NscklucHV0Q2hhbmdlJykgY2xySW5wdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oZmFsc2UpO1xuICBAT3V0cHV0KCdjbHJPcGVuQ2hhbmdlJykgY2xyT3BlbkNoYW5nZSA9IHRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlO1xuXG4gIC8qKlxuICAgKiBUaGlzIG91dHB1dCBzaG91bGQgYmUgdXNlZCB0byBzZXQgdXAgYSBsaXZlIHJlZ2lvbiB1c2luZyBhcmlhLWxpdmUgYW5kIHBvcHVsYXRlIGl0IHdpdGggdXBkYXRlcyB0aGF0IHJlZmxlY3QgZWFjaCBjb21ib2JveCBjaGFuZ2UuXG4gICAqL1xuICBAT3V0cHV0KCdjbHJTZWxlY3Rpb25DaGFuZ2UnKSBjbHJTZWxlY3Rpb25DaGFuZ2UgPSB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uQ2hhbmdlZDtcblxuICBAVmlld0NoaWxkKCd0ZXh0Ym94SW5wdXQnKSB0ZXh0Ym94OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCd0cmlnZ2VyJykgdHJpZ2dlcjogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBDb250ZW50Q2hpbGQoQ2xyT3B0aW9uU2VsZWN0ZWQpIG9wdGlvblNlbGVjdGVkOiBDbHJPcHRpb25TZWxlY3RlZDxUPjtcblxuICBpbnZhbGlkID0gZmFsc2U7XG4gIGZvY3VzZWQgPSBmYWxzZTtcbiAgZm9jdXNlZFBpbGw6IGFueTtcblxuICBzbWFydFBvc2l0aW9uOiBDbHJQb3BvdmVyUG9zaXRpb24gPSB7XG4gICAgYXhpczogQ2xyQXhpcy5WRVJUSUNBTCxcbiAgICBzaWRlOiBDbHJTaWRlLkFGVEVSLFxuICAgIGFuY2hvcjogQ2xyQWxpZ25tZW50LlNUQVJULFxuICAgIGNvbnRlbnQ6IENsckFsaWdubWVudC5TVEFSVCxcbiAgfTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaW5kZXggPSAxO1xuXG4gIEBDb250ZW50Q2hpbGQoQ2xyT3B0aW9ucykgcHJpdmF0ZSBvcHRpb25zOiBDbHJPcHRpb25zPFQ+O1xuXG4gIHByaXZhdGUgX3NlYXJjaFRleHQgPSAnJztcbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gYW55O1xuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChtb2RlbDogVCB8IFRbXSkgPT4gYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQFNlbGYoKVxuICAgIEBPcHRpb25hbCgpXG4gICAgcHVibGljIGNvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHB1YmxpYyBvcHRpb25TZWxlY3Rpb25TZXJ2aWNlOiBPcHRpb25TZWxlY3Rpb25TZXJ2aWNlPFQ+LFxuICAgIHB1YmxpYyBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHRvZ2dsZVNlcnZpY2U6IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9zaXRpb25TZXJ2aWNlOiBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbFN0YXRlU2VydmljZTogSWZDb250cm9sU3RhdGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29udGFpbmVyU2VydmljZTogQ29tYm9ib3hDb250YWluZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55LFxuICAgIHByaXZhdGUgZm9jdXNIYW5kbGVyOiBDb21ib2JveEZvY3VzSGFuZGxlcjxUPixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIodmNyLCBDbHJDb21ib2JveENvbnRhaW5lciwgaW5qZWN0b3IsIGNvbnRyb2wsIHJlbmRlcmVyLCBlbCk7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIGNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICAgIC8vIGRlZmF1bHQgdG8gU2luZ2xlU2VsZWN0Q29tYm9ib3hNb2RlbCwgaW4gY2FzZSB0aGUgb3B0aW9uYWwgaW5wdXQgW0Nsck11bHRpXSBpc24ndCB1c2VkXG4gICAgb3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbCA9IG5ldyBTaW5nbGVTZWxlY3RDb21ib2JveE1vZGVsPFQ+KCk7XG4gICAgdGhpcy51cGRhdGVDb250cm9sVmFsdWUoKTtcbiAgfVxuXG4gIEBJbnB1dCgnY2xyTXVsdGknKVxuICBnZXQgbXVsdGlTZWxlY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5tdWx0aXNlbGVjdGFibGU7XG4gIH1cbiAgc2V0IG11bHRpU2VsZWN0KHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwgPSBuZXcgTXVsdGlTZWxlY3RDb21ib2JveE1vZGVsPFQ+KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGluIHRoZW9yeSwgc2V0dGluZyB0aGlzIGFnYWluIHNob3VsZCBub3QgY2F1c2UgZXJyb3JzIGV2ZW4gdGhvdWdoIHdlIGFscmVhZHkgc2V0IGl0IGluIGNvbnN0cnVjdG9yLFxuICAgICAgLy8gc2luY2UgdGhlIGluaXRpYWwgY2FsbCB0byB3cml0ZVZhbHVlIChjYXVzZWQgYnkgW25nTW9kZWxdIGlucHV0KSBzaG91bGQgaGFwcGVuIGFmdGVyIHRoaXNcbiAgICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbCA9IG5ldyBTaW5nbGVTZWxlY3RDb21ib2JveE1vZGVsPFQ+KCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlQ29udHJvbFZhbHVlKCk7XG4gIH1cblxuICAvLyBPdmVycmlkZSB0aGUgaWQgb2YgV3JhcHBlZEZvcm1Db250cm9sLCBhcyB3ZSB3YW50IHRvIG1vdmUgaXQgdG8gdGhlIGVtYmVkZGVkIGlucHV0LlxuICAvLyBPdGhlcndpc2UgdGhlIGxhYmVsL2NvbXBvbmVudCBjb25uZWN0aW9uIGRvZXMgbm90IHdvcmsgYW5kIHNjcmVlbiByZWFkZXJzIGRvIG5vdCByZWFkIHRoZSBsYWJlbC5cbiAgb3ZlcnJpZGUgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWQgKyAnLWNvbWJvYm94JztcbiAgfVxuICBvdmVycmlkZSBzZXQgaWQoaWQ6IHN0cmluZykge1xuICAgIHN1cGVyLmlkID0gaWQ7XG4gIH1cblxuICBnZXQgc2VhcmNoVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hUZXh0O1xuICB9XG4gIHNldCBzZWFyY2hUZXh0KHRleHQ6IHN0cmluZykge1xuICAgIC8vIGlmIGlucHV0IHRleHQgaGFzIGNoYW5nZWQgc2luY2UgbGFzdCB0aW1lLCBmaXJlIGEgY2hhbmdlIGV2ZW50IHNvIGFwcGxpY2F0aW9uIGNhbiByZWFjdCB0byBpdFxuICAgIGlmICh0ZXh0ICE9PSB0aGlzLl9zZWFyY2hUZXh0KSB7XG4gICAgICBpZiAodGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4pIHtcbiAgICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNob3dBbGxPcHRpb25zID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLl9zZWFyY2hUZXh0ID0gdGV4dDtcbiAgICAgIHRoaXMuY2xySW5wdXRDaGFuZ2UuZW1pdCh0aGlzLnNlYXJjaFRleHQpO1xuICAgIH1cbiAgICAvLyBXZSBuZWVkIHRvIHRyaWdnZXIgdGhpcyBldmVuIGlmIHVuY2hhbmdlZCwgc28gdGhlIG9wdGlvbi1pdGVtcyBkaXJlY3RpdmUgd2lsbCB1cGRhdGUgaXRzIGxpc3RcbiAgICAvLyBiYXNlZCBvbiB0aGUgXCJzaG93QWxsT3B0aW9uc1wiIHZhcmlhYmxlIHdoaWNoIG1heSBoYXZlIGNoYW5nZWQgaW4gdGhlIG9wZW5DaGFuZ2Ugc3Vic2NyaXB0aW9uIGJlbG93LlxuICAgIC8vIFRoZSBvcHRpb24taXRlbXMgZGlyZWN0aXZlIGRvZXMgbm90IGxpc3RlbiB0byBvcGVuQ2hhbmdlLCBidXQgaXQgbGlzdGVucyB0byBjdXJyZW50SW5wdXQgY2hhbmdlcy5cbiAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2UuY3VycmVudElucHV0ID0gdGhpcy5zZWFyY2hUZXh0O1xuICB9XG5cbiAgZ2V0IG9wZW5TdGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW47XG4gIH1cblxuICBnZXQgbXVsdGlTZWxlY3RNb2RlbCgpOiBUW10ge1xuICAgIGlmICghdGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ211bHRpU2VsZWN0TW9kZWwgaXMgbm90IGF2YWlsYWJsZSBpbiBzaW5nbGUgc2VsZWN0aW9uIGNvbnRleHQnKTtcbiAgICB9XG4gICAgcmV0dXJuICh0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwgYXMgTXVsdGlTZWxlY3RDb21ib2JveE1vZGVsPFQ+KS5tb2RlbDtcbiAgfVxuXG4gIGdldCBhcmlhQ29udHJvbHMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zPy5vcHRpb25zSWQ7XG4gIH1cblxuICBnZXQgYXJpYU93bnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zPy5vcHRpb25zSWQ7XG4gIH1cblxuICBnZXQgYXJpYURlc2NyaWJlZEJ5U2VsZWN0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdzZWxlY3Rpb24tJyArIHRoaXMuaWQ7XG4gIH1cblxuICBnZXQgZGlzcGxheUZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5kaXNwbGF5RmllbGQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5kaXNhYmxlZDtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVTdWJzY3JpcHRpb25zKCk7XG5cbiAgICAvLyBJbml0aWFsaXplIHdpdGggcHJlc2VsZWN0ZWQgdmFsdWVcbiAgICBpZiAoIXRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KCkpIHtcbiAgICAgIHRoaXMudXBkYXRlSW5wdXRWYWx1ZSh0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmZvY3VzSGFuZGxlci5jb21wb25lbnRDZFJlZiA9IHRoaXMuY2RyO1xuICAgIHRoaXMuZm9jdXNIYW5kbGVyLnRleHRJbnB1dCA9IHRoaXMudGV4dGJveC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuZm9jdXNIYW5kbGVyLnRyaWdnZXIgPSB0aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudDtcbiAgICAvLyBUaGUgdGV4dCBpbnB1dCBpcyB0aGUgYWN0dWFsIGVsZW1lbnQgd2UgYXJlIHdyYXBwaW5nXG4gICAgLy8gVGhpcyBhc3NpZ25tZW50IGlzIG5lZWRlZCBieSB0aGUgd3JhcHBlciwgc28gaXQgY2FuIHNldFxuICAgIC8vIHRoZSBhcmlhIHByb3BlcnRpZXMgb24gdGhlIGlucHV0IGVsZW1lbnQsIG5vdCBvbiB0aGUgY29tcG9uZW50LlxuICAgIHRoaXMuZWwgPSB0aGlzLnRleHRib3g7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIC8vIGlmIEJBQ0tTUEFDRSBpbiBtdWx0aXNlbGVjdCBtb2RlLCBkZWxldGUgdGhlIGxhc3QgcGlsbCBpZiB0ZXh0IGlzIGVtcHR5XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gS2V5cy5CYWNrc3BhY2UgJiYgdGhpcy5tdWx0aVNlbGVjdCAmJiB0aGlzLl9zZWFyY2hUZXh0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgbXVsdGlNb2RlbDogVFtdID0gdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsIGFzIFRbXTtcbiAgICAgIGlmIChtdWx0aU1vZGVsICYmIG11bHRpTW9kZWwubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBsYXN0SXRlbTogVCA9IG11bHRpTW9kZWxbbXVsdGlNb2RlbC5sZW5ndGggLSAxXTtcbiAgICAgICAgdGhpcy5jb250cm9sPy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnVuc2VsZWN0KGxhc3RJdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbElkU2VydmljZS5pZDtcbiAgfVxuXG4gIGxvYWRpbmdTdGF0ZUNoYW5nZShzdGF0ZTogQ2xyTG9hZGluZ1N0YXRlKTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLmxvYWRpbmcgPSBzdGF0ZSA9PT0gQ2xyTG9hZGluZ1N0YXRlLkxPQURJTkc7XG4gICAgdGhpcy5wb3NpdGlvblNlcnZpY2UucmVhbGlnbigpO1xuICAgIGlmIChzdGF0ZSAhPT0gQ2xyTG9hZGluZ1N0YXRlLkxPQURJTkcgJiYgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5mb2N1c0ZpcnN0QWN0aXZlKCk7XG4gICAgfVxuICB9XG5cbiAgdW5zZWxlY3QoaXRlbTogVCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnVuc2VsZWN0KGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIG9uQmx1cihldmVudCkge1xuICAgIGlmICghZXZlbnQucmVsYXRlZFRhcmdldCB8fCAhdGhpcy5vcHRpb25zLmVsPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrPy4oKTtcbiAgICAgIHRoaXMudHJpZ2dlclZhbGlkYXRpb24oKTtcbiAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uRm9jdXMoKSB7XG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcblxuICAgIC8vIGZpeCBmb3IgXCJleHByZXNzaW9uIGNoYW5nZWRcIiBlcnJvciB3aGVuIGZvY3VzIGlzIHJldHVybmVkIHRvIGEgY29tYm9ib3ggYWZ0ZXIgYSBtb2RhbCBpcyBjbG9zZWRcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdm13YXJlLWNsYXJpdHkvbmctY2xhcml0eS9pc3N1ZXMvNjYzXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0U2VsZWN0aW9uQXJpYUxhYmVsKCkge1xuICAgIGlmICh0aGlzLmNvbnRhaW5lclNlcnZpY2UgJiYgdGhpcy5jb250YWluZXJTZXJ2aWNlLmxhYmVsVGV4dCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMuY29udGFpbmVyU2VydmljZS5sYWJlbFRleHR9ICR7dGhpcy5jb21tb25TdHJpbmdzLmtleXMuY29tYm9ib3hTZWxlY3Rpb259YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmNvbWJvYm94U2VsZWN0aW9uO1xuICB9XG5cbiAgZm9jdXNGaXJzdEFjdGl2ZSgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9jdXNIYW5kbGVyLmZvY3VzRmlyc3RBY3RpdmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFQgfCBUW10pOiB2b2lkIHtcbiAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWwgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUodGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IG9uVG91Y2hlZDtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IG9uQ2hhbmdlO1xuICB9XG5cbiAgZ2V0QWN0aXZlRGVzY2VuZGFudCgpIHtcbiAgICBjb25zdCBtb2RlbCA9IHRoaXMuZm9jdXNIYW5kbGVyLnBzZXVkb0ZvY3VzLm1vZGVsO1xuICAgIHJldHVybiBtb2RlbCA/IG1vZGVsLmlkIDogdGhpcy5vcHRpb25zPy5ub1Jlc3VsdHNFbGVtZW50SWQ7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgIC8vIGRvIG5vdGhpbmdcbiAgfVxuXG4gIGZvY3VzSW5wdXQoKSB7XG4gICAgdGhpcy5mb2N1c0hhbmRsZXIuZm9jdXNJbnB1dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25DaGFuZ2VkLnN1YnNjcmliZSgobmV3U2VsZWN0aW9uOiBDb21ib2JveE1vZGVsPFQ+KSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlSW5wdXRWYWx1ZShuZXdTZWxlY3Rpb24pO1xuICAgICAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgICAgIHRoaXMucG9zaXRpb25TZXJ2aWNlLnJlYWxpZ24oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMubXVsdGlTZWxlY3QgJiYgbmV3U2VsZWN0aW9uICYmICFuZXdTZWxlY3Rpb24uaXNFbXB0eSgpKSB7XG4gICAgICAgICAgdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUNvbnRyb2xWYWx1ZSgpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUob3BlbiA9PiB7XG4gICAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgICAgdGhpcy5mb2N1c0ZpcnN0QWN0aXZlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNob3dBbGxPcHRpb25zID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgICAgIHRoaXMuc2VhcmNoVGV4dCA9ICcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VhcmNoVGV4dCA9IHRoaXMuZ2V0RGlzcGxheU5hbWVzKHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbClbMF0gfHwgJyc7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy50b2dnbGVTZXJ2aWNlLnBvcG92ZXJBbGlnbmVkLnN1YnNjcmliZShwb3BvdmVyTm9kZSA9PiB7XG4gICAgICAgIC8vIFdoZW4gdXNlZCBvdXRzaWRlIGEgY29tYm9ib3ggY29udGFpbmVyXG4gICAgICAgIGlmICghdGhpcy5jb250YWluZXJTZXJ2aWNlKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvcG92ZXI6IEhUTUxFbGVtZW50ID0gcG9wb3Zlck5vZGUgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIC8vIFVwZGF0ZSBwb3NpdGlvbiBpZiBwb3BvdmVyIGhpZGVzIHRoZSBsYWJlbFxuICAgICAgICBpZiAocG9wb3Zlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgPCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShwb3BvdmVyTm9kZSwgJ3RvcCcsIGAke3BvcG92ZXIub2Zmc2V0VG9wICsgdGhpcy5jb250YWluZXJTZXJ2aWNlLmxhYmVsT2Zmc2V0fXB4YCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmNvbnRyb2xTdGF0ZVNlcnZpY2UpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICB0aGlzLmNvbnRyb2xTdGF0ZVNlcnZpY2Uuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoaW52YWxpZCA9PiB7XG4gICAgICAgICAgdGhpcy5pbnZhbGlkID0gdGhpcy5jb250cm9sPy5jb250cm9sLnRvdWNoZWQgJiYgaW52YWxpZCA9PT0gQ09OVFJPTF9TVEFURS5JTlZBTElEO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUlucHV0VmFsdWUobW9kZWw6IENvbWJvYm94TW9kZWw8VD4pIHtcbiAgICBpZiAoIXRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgIHRoaXMuc2VhcmNoVGV4dCA9IG1vZGVsLm1vZGVsID8gdGhpcy5nZXREaXNwbGF5TmFtZXMobW9kZWwubW9kZWwpWzBdIDogJyc7XG4gICAgICBpZiAodGhpcy5zZWFyY2hUZXh0KSB7XG4gICAgICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5jdXJyZW50SW5wdXQgPSB0aGlzLnNlYXJjaFRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250cm9sVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMub25DaGFuZ2VDYWxsYmFjaykge1xuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXREaXNwbGF5TmFtZXMobW9kZWw6IFQgfCBUW10pIHtcbiAgICBpZiAodGhpcy5kaXNwbGF5RmllbGQpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShtb2RlbCkpIHtcbiAgICAgICAgbW9kZWwgPSBbbW9kZWxdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1vZGVsLm1hcChpdGVtID0+IChpdGVtID8gKGl0ZW0gYXMgYW55KVt0aGlzLmRpc3BsYXlGaWVsZF0gOiBudWxsKSk7XG4gICAgfVxuICAgIHJldHVybiBbdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsXTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAoYykgMjAxNi0yMDI1IEJyb2FkY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICB+IFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAgfiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICB+IFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbi0tPlxuXG48IS0tIFRoZSAoY2xpY2spIGhhbmRsZXIgaXMgbmVlZGVkIHRvIGF1dG8tZm9jdXMgb24gaW5wdXQgZmllbGQgd2hpY2ggY2FuIG5vdCBjdXJyZW50bHkgb2NjdXB5IHRoZSB3aG9sZVxuICAgICB3aWR0aCBvZiB0aGUgY29tcG9uZW50LCBhZnRlciBiZWluZyB3cmFwcGVkIHRvIGEgbmV3IGxpbmUgLS0+XG48ZGl2XG4gIGNsYXNzPVwiY2xyLWNvbWJvYm94LXdyYXBwZXJcIlxuICBjbHJQb3BvdmVyQW5jaG9yXG4gIChjbGljayk9XCJmb2N1c0lucHV0KClcIlxuICBbY2xhc3MubXVsdGldPVwibXVsdGlTZWxlY3RcIlxuICBbY2xhc3MuaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgW2NsYXNzLmRpc2FibGVkXT1cImNvbnRyb2w/LmRpc2FibGVkPyB0cnVlOiBudWxsXCJcbj5cbiAgPHNwYW5cbiAgICAqbmdJZj1cIm11bHRpU2VsZWN0ICYmIG9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWwgJiYgbXVsdGlTZWxlY3RNb2RlbC5sZW5ndGggPiAwXCJcbiAgICByb2xlPVwiZ3JpZFwiXG4gICAgY2xyUm92aW5nVGFiaW5kZXhcbiAgICBbY2xyUm92aW5nVGFiaW5kZXhEaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZFwiXG4gICAgY2xyRGlyZWN0aW9uPVwiYm90aFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRTZWxlY3Rpb25BcmlhTGFiZWwoKVwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZD8gdHJ1ZTogbnVsbFwiXG4gICAgY2xhc3M9XCJjbHItY29tYm9ib3gtcGlsbHNcIlxuICA+XG4gICAgPHNwYW4gKm5nRm9yPVwibGV0IGl0ZW0gb2YgbXVsdGlTZWxlY3RNb2RlbDsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwibGFiZWwgbGFiZWwtY29tYm9ib3gtcGlsbFwiIHJvbGU9XCJyb3dcIj5cbiAgICAgIDxzcGFuIHJvbGU9XCJncmlkY2VsbFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNsci1jb21ib2JveC1waWxsLWNvbnRlbnRcIiBjbHJLZXlGb2N1c0l0ZW0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCJvcHRpb25TZWxlY3RlZFwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25TZWxlY3RlZC50ZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogb3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbFtpXX1cIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gcm9sZT1cImdyaWRjZWxsXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbHJLZXlGb2N1c0l0ZW1cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImNsci1jb21ib2JveC1yZW1vdmUtYnRuXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiY29udHJvbD8uZGlzYWJsZWQ/IHRydWU6IG51bGxcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29tbW9uU3RyaW5ncy5rZXlzLmNvbWJvYm94RGVsZXRlICsgJyAnICsgb3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC50b1N0cmluZyhkaXNwbGF5RmllbGQsIGkpXCJcbiAgICAgICAgICAoY2xpY2spPVwidW5zZWxlY3QoaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPGNkcy1pY29uIHNoYXBlPVwid2luZG93LWNsb3NlXCIgc2l6ZT1cIjEyXCI+PC9jZHMtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L3NwYW4+XG5cbiAgPGlucHV0XG4gICAgI3RleHRib3hJbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICByb2xlPVwiY29tYm9ib3hcIlxuICAgIFtpZF09XCJpbnB1dElkKClcIlxuICAgIGNsYXNzPVwiY2xyLWlucHV0IGNsci1jb21ib2JveC1pbnB1dFwiXG4gICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcbiAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuU3RhdGVcIlxuICAgIFthdHRyLmFyaWEtb3duc109XCJhcmlhT3duc1wiXG4gICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgIGFyaWEtYXV0b2NvbXBsZXRlPVwibGlzdFwiXG4gICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiY29udHJvbD8uaW52YWxpZD8gdHJ1ZTogbnVsbFwiXG4gICAgW2Rpc2FibGVkXT1cImNvbnRyb2w/LmRpc2FibGVkPyB0cnVlOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiZ2V0QWN0aXZlRGVzY2VuZGFudCgpXCJcbiAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIC8+XG5cbiAgPCEtLSBObyBjbGljayBoYW5kbGVyLCBhcyBpdCB1c2VzIHRoZSBoYW5kbGVyIG9uIHRoZSAuY2xyLWNvbWJvYm94LXdyYXBwZXIgLS0+XG4gIDxidXR0b25cbiAgICBjbHJQb3BvdmVyT3BlbkNsb3NlQnV0dG9uXG4gICAgI3RyaWdnZXJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cImNsci1jb21ib2JveC10cmlnZ2VyXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICBbZGlzYWJsZWRdPVwiY29udHJvbD8uZGlzYWJsZWQgfHwgbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb21tb25TdHJpbmdzLmtleXMuY29tYm9ib3hPcGVuXCJcbiAgPlxuICAgIDxjZHMtaWNvbiBzaGFwZT1cImFuZ2xlXCIgZGlyZWN0aW9uPVwiZG93blwiPjwvY2RzLWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDxkaXYgY2xhc3M9XCJjbHItZm9jdXMtaW5kaWNhdG9yXCIgW2NsYXNzLmNsci1mb2N1c109XCJmb2N1c2VkXCI+PC9kaXY+XG48L2Rpdj5cblxuPCEtLSBCb3RoIGNsb3NlIGhhbmRsZXJzIGFyZSBoYW5kbGVkIG1hbnVhbGx5IGR1ZSB0byBpc3N1ZXMgaW4gRWRnZSBicm93c2VyLlxuICAgICBBZGRpdGlvbmFsbHkgJ291dHNpZGVDbGlja1RvQ2xvc2UnIGhhcyBjb21wbGV4IGhhbmRsaW5nIHRoYXQncyBuZWNlc3NhcnlcbiAgICAgdG8gYmUgbWFudWFsIGR1ZSB0byB0aGUgY29tcG9uZW50IGFyY2hpdGVjdHVyZSAtLT5cbjxkaXYgcm9sZT1cImRpYWxvZ1wiICpjbHJQb3BvdmVyQ29udGVudD1cIm9wZW5TdGF0ZSBhdCBzbWFydFBvc2l0aW9uOyBvdXRzaWRlQ2xpY2tUb0Nsb3NlOiBmYWxzZTsgc2Nyb2xsVG9DbG9zZTogZmFsc2VcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=