@koobiq/components 17.0.0-rc.9 → 17.0.1

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 (652) hide show
  1. package/README.md +1 -2
  2. package/alert/_alert-theme.scss +0 -1
  3. package/alert/alert.component.d.ts +3 -1
  4. package/alert/alert.component.scss +14 -14
  5. package/alert/public-api.d.ts +1 -1
  6. package/autocomplete/_autocomplete-theme.scss +0 -1
  7. package/autocomplete/autocomplete.scss +3 -6
  8. package/autocomplete/public-api.d.ts +2 -2
  9. package/badge/_badge-theme.scss +1 -2
  10. package/badge/badge.component.scss +0 -1
  11. package/badge/public-api.d.ts +1 -1
  12. package/button/_button-base.scss +0 -1
  13. package/button/_button-theme.scss +5 -3
  14. package/button/button.component.d.ts +2 -2
  15. package/button/button.scss +0 -1
  16. package/button/public-api.d.ts +1 -1
  17. package/button-toggle/_button-toggle-theme.scss +2 -3
  18. package/button-toggle/button-toggle.scss +2 -9
  19. package/button-toggle/public-api.d.ts +1 -1
  20. package/card/_card-theme.scss +0 -1
  21. package/card/card.component.d.ts +1 -1
  22. package/card/card.component.scss +1 -2
  23. package/card/public-api.d.ts +1 -1
  24. package/checkbox/_checkbox-theme.scss +10 -11
  25. package/checkbox/checkbox.scss +13 -19
  26. package/code-block/README.md +17 -14
  27. package/code-block/_code-block-theme.scss +23 -16
  28. package/code-block/actionbar.component.d.ts +2 -1
  29. package/code-block/actionbar.component.scss +5 -13
  30. package/code-block/code-block.component.d.ts +4 -3
  31. package/code-block/code-block.scss +8 -14
  32. package/code-block/public-api.d.ts +1 -1
  33. package/core/animation/index.d.ts +1 -1
  34. package/core/common-behaviors/index.d.ts +3 -3
  35. package/core/datetime/index.d.ts +1 -1
  36. package/core/formatters/index.d.ts +1 -1
  37. package/core/forms/_forms-theme.scss +0 -1
  38. package/core/forms/_forms.scss +0 -1
  39. package/core/forms/index.d.ts +1 -1
  40. package/core/locales/index.d.ts +1 -1
  41. package/core/option/_optgroup-theme.scss +0 -1
  42. package/core/option/_option-action-theme.scss +0 -1
  43. package/core/option/_option-theme.scss +0 -1
  44. package/core/option/action.scss +4 -2
  45. package/core/option/index.d.ts +2 -2
  46. package/core/option/optgroup.scss +2 -3
  47. package/core/option/option.scss +0 -1
  48. package/core/pop-up/_pop-up.scss +0 -1
  49. package/core/pop-up/pop-up-trigger.d.ts +3 -3
  50. package/core/public-api.d.ts +3 -3
  51. package/core/select/constants.d.ts +1 -1
  52. package/core/select/index.d.ts +3 -3
  53. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +0 -2
  54. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +0 -1
  55. package/core/services/theme.service.d.ts +3 -2
  56. package/core/styles/_core.scss +0 -1
  57. package/core/styles/_koobiq-theme.scss +5 -3
  58. package/core/styles/common/_animation.scss +11 -10
  59. package/core/styles/common/_button.scss +0 -2
  60. package/core/styles/common/_clearfix.scss +1 -1
  61. package/core/styles/common/_groups.scss +0 -4
  62. package/core/styles/common/_list.scss +23 -61
  63. package/core/styles/common/_overlay.scss +4 -3
  64. package/core/styles/common/_popup.scss +0 -1
  65. package/core/styles/common/_rtl.scss +4 -4
  66. package/core/styles/common/_select.scss +37 -26
  67. package/core/styles/common/_tokens.scss +0 -2
  68. package/core/styles/functions/_number.scss +14 -19
  69. package/core/styles/functions/_string.scss +18 -19
  70. package/core/styles/functions/_timing.scss +24 -24
  71. package/core/styles/theming/_components-theming.scss +1120 -1208
  72. package/core/styles/theming/_scrollbar-theme.scss +8 -5
  73. package/core/styles/theming/_theming.scss +22 -20
  74. package/core/styles/typography/_typography-utils.scss +9 -3
  75. package/core/styles/typography/_typography.scss +114 -94
  76. package/core/styles/visual/_body.scss +0 -2
  77. package/core/styles/visual/_layout.scss +30 -22
  78. package/core/utils/data-size/index.d.ts +1 -1
  79. package/core/utils/public-api.d.ts +1 -1
  80. package/datepicker/_datepicker-theme.scss +21 -8
  81. package/datepicker/calendar-body.scss +0 -3
  82. package/datepicker/calendar-header.scss +0 -1
  83. package/datepicker/calendar.scss +1 -2
  84. package/datepicker/datepicker-content.scss +1 -3
  85. package/datepicker/datepicker-input.directive.d.ts +1 -0
  86. package/datepicker/datepicker-input.scss +0 -1
  87. package/datepicker/datepicker-toggle.scss +0 -1
  88. package/datepicker/datepicker.component.d.ts +2 -2
  89. package/datepicker/public-api.d.ts +4 -4
  90. package/divider/_divider-theme.scss +0 -1
  91. package/divider/divider.scss +0 -1
  92. package/dl/_dl-theme.scss +0 -2
  93. package/dl/dl.scss +0 -1
  94. package/dl/public-api.d.ts +1 -1
  95. package/dropdown/_dropdown-theme.scss +4 -2
  96. package/dropdown/dropdown-content.directive.d.ts +1 -1
  97. package/dropdown/dropdown-item.component.d.ts +1 -1
  98. package/dropdown/dropdown-item.scss +9 -7
  99. package/dropdown/dropdown.component.d.ts +1 -1
  100. package/dropdown/dropdown.scss +0 -1
  101. package/dropdown/public-api.d.ts +5 -5
  102. package/ellipsis-center/ellipsis-center.directive.d.ts +1 -1
  103. package/empty-state/README.md +0 -0
  104. package/empty-state/_empty-state-theme.scss +56 -0
  105. package/empty-state/empty-state.component.d.ts +31 -0
  106. package/empty-state/empty-state.module.d.ts +10 -0
  107. package/empty-state/empty-state.scss +81 -0
  108. package/empty-state/index.d.ts +1 -0
  109. package/empty-state/public-api.d.ts +2 -0
  110. package/esm2022/alert/alert.component.mjs +7 -3
  111. package/esm2022/alert/alert.module.mjs +1 -1
  112. package/esm2022/alert/public-api.mjs +2 -2
  113. package/esm2022/autocomplete/autocomplete-origin.directive.mjs +1 -1
  114. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +25 -42
  115. package/esm2022/autocomplete/autocomplete.component.mjs +14 -9
  116. package/esm2022/autocomplete/autocomplete.module.mjs +3 -3
  117. package/esm2022/autocomplete/public-api.mjs +3 -3
  118. package/esm2022/badge/badge.component.mjs +8 -6
  119. package/esm2022/badge/badge.module.mjs +1 -1
  120. package/esm2022/badge/public-api.mjs +2 -2
  121. package/esm2022/button/button.component.mjs +12 -9
  122. package/esm2022/button/button.module.mjs +1 -1
  123. package/esm2022/button/public-api.mjs +2 -2
  124. package/esm2022/button-toggle/button-toggle.component.mjs +26 -20
  125. package/esm2022/button-toggle/button-toggle.module.mjs +1 -1
  126. package/esm2022/button-toggle/public-api.mjs +2 -2
  127. package/esm2022/card/card.component.mjs +4 -5
  128. package/esm2022/card/card.module.mjs +1 -1
  129. package/esm2022/card/public-api.mjs +2 -2
  130. package/esm2022/checkbox/checkbox-config.mjs +1 -1
  131. package/esm2022/checkbox/checkbox-module.mjs +1 -1
  132. package/esm2022/checkbox/checkbox-required-validator.mjs +1 -1
  133. package/esm2022/checkbox/checkbox.mjs +6 -8
  134. package/esm2022/checkbox/public-api.mjs +1 -1
  135. package/esm2022/code-block/actionbar.component.mjs +6 -6
  136. package/esm2022/code-block/code-block.component.mjs +20 -19
  137. package/esm2022/code-block/code-block.module.mjs +9 -5
  138. package/esm2022/code-block/public-api.mjs +2 -2
  139. package/esm2022/core/animation/fade-animations.mjs +1 -1
  140. package/esm2022/core/animation/index.mjs +2 -2
  141. package/esm2022/core/animation/select-animations.mjs +2 -2
  142. package/esm2022/core/common-behaviors/color.mjs +4 -2
  143. package/esm2022/core/common-behaviors/common-module.mjs +2 -5
  144. package/esm2022/core/common-behaviors/constructor.mjs +1 -1
  145. package/esm2022/core/common-behaviors/disabled.mjs +2 -2
  146. package/esm2022/core/common-behaviors/error-state.mjs +1 -1
  147. package/esm2022/core/common-behaviors/index.mjs +4 -4
  148. package/esm2022/core/common-behaviors/tabindex.mjs +1 -1
  149. package/esm2022/core/datetime/date-adapter.mjs +1 -2
  150. package/esm2022/core/datetime/date-formats.mjs +1 -1
  151. package/esm2022/core/datetime/index.mjs +2 -2
  152. package/esm2022/core/error/error-options.mjs +1 -1
  153. package/esm2022/core/form-field/form-field-ref.mjs +1 -1
  154. package/esm2022/core/formatters/date/formatter.mjs +1 -1
  155. package/esm2022/core/formatters/date/formatter.pipe.mjs +1 -1
  156. package/esm2022/core/formatters/index.mjs +2 -2
  157. package/esm2022/core/formatters/number/formatter.mjs +19 -24
  158. package/esm2022/core/forms/forms-module.mjs +1 -1
  159. package/esm2022/core/forms/forms.directive.mjs +1 -1
  160. package/esm2022/core/forms/index.mjs +2 -2
  161. package/esm2022/core/highlight/highlight.pipe.mjs +1 -1
  162. package/esm2022/core/highlight/index.mjs +1 -1
  163. package/esm2022/core/label/label-options.mjs +1 -1
  164. package/esm2022/core/line/line.mjs +2 -2
  165. package/esm2022/core/locales/en-US.mjs +1 -1
  166. package/esm2022/core/locales/es-LA.mjs +1 -1
  167. package/esm2022/core/locales/fa-IR.mjs +1 -1
  168. package/esm2022/core/locales/formatters.mjs +1 -3
  169. package/esm2022/core/locales/index.mjs +2 -2
  170. package/esm2022/core/locales/locale-service.mjs +8 -5
  171. package/esm2022/core/locales/locale-service.module.mjs +1 -1
  172. package/esm2022/core/locales/pt-BR.mjs +1 -1
  173. package/esm2022/core/locales/ru-RU.mjs +3 -3
  174. package/esm2022/core/locales/zh-CN.mjs +1 -1
  175. package/esm2022/core/option/action.mjs +22 -14
  176. package/esm2022/core/option/index.mjs +3 -3
  177. package/esm2022/core/option/optgroup.mjs +4 -5
  178. package/esm2022/core/option/option-module.mjs +1 -1
  179. package/esm2022/core/option/option.mjs +13 -10
  180. package/esm2022/core/overlay/overlay-position-map.mjs +1 -1
  181. package/esm2022/core/pop-up/pop-up-trigger.mjs +14 -24
  182. package/esm2022/core/pop-up/pop-up.mjs +1 -2
  183. package/esm2022/core/public-api.mjs +4 -4
  184. package/esm2022/core/select/common.mjs +2 -5
  185. package/esm2022/core/select/constants.mjs +1 -2
  186. package/esm2022/core/select/index.mjs +4 -4
  187. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
  188. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +1 -1
  189. package/esm2022/core/services/measure-scrollbar.service.mjs +1 -2
  190. package/esm2022/core/services/theme.service.mjs +5 -4
  191. package/esm2022/core/title/title-text-ref.mjs +1 -1
  192. package/esm2022/core/utils/data-size/config.mjs +1 -1
  193. package/esm2022/core/utils/data-size/data-size.pipe.mjs +2 -3
  194. package/esm2022/core/utils/data-size/index.mjs +2 -2
  195. package/esm2022/core/utils/data-size/size.mjs +3 -6
  196. package/esm2022/core/utils/public-api.mjs +2 -2
  197. package/esm2022/core/utils/utils.mjs +4 -2
  198. package/esm2022/core/validation/validation.mjs +4 -2
  199. package/esm2022/core/version.mjs +2 -2
  200. package/esm2022/datepicker/calendar-body.component.mjs +3 -5
  201. package/esm2022/datepicker/calendar-header.component.mjs +8 -8
  202. package/esm2022/datepicker/calendar.component.mjs +6 -6
  203. package/esm2022/datepicker/datepicker-animations.mjs +1 -1
  204. package/esm2022/datepicker/datepicker-errors.mjs +1 -1
  205. package/esm2022/datepicker/datepicker-input.directive.mjs +47 -49
  206. package/esm2022/datepicker/datepicker-intl.mjs +1 -1
  207. package/esm2022/datepicker/datepicker-module.mjs +2 -2
  208. package/esm2022/datepicker/datepicker-toggle.component.mjs +11 -10
  209. package/esm2022/datepicker/datepicker.component.mjs +15 -18
  210. package/esm2022/datepicker/month-view.component.mjs +14 -14
  211. package/esm2022/datepicker/public-api.mjs +5 -5
  212. package/esm2022/divider/divider.component.mjs +1 -1
  213. package/esm2022/divider/divider.module.mjs +1 -1
  214. package/esm2022/dl/dl.component.mjs +7 -7
  215. package/esm2022/dl/dl.module.mjs +2 -2
  216. package/esm2022/dl/public-api.mjs +2 -2
  217. package/esm2022/dropdown/dropdown-animations.mjs +2 -2
  218. package/esm2022/dropdown/dropdown-content.directive.mjs +3 -3
  219. package/esm2022/dropdown/dropdown-item.component.mjs +5 -8
  220. package/esm2022/dropdown/dropdown-trigger.directive.mjs +24 -33
  221. package/esm2022/dropdown/dropdown.component.mjs +10 -19
  222. package/esm2022/dropdown/dropdown.module.mjs +1 -1
  223. package/esm2022/dropdown/dropdown.types.mjs +1 -2
  224. package/esm2022/dropdown/public-api.mjs +6 -6
  225. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +6 -5
  226. package/esm2022/empty-state/empty-state.component.mjs +104 -0
  227. package/esm2022/empty-state/empty-state.module.mjs +50 -0
  228. package/esm2022/empty-state/index.mjs +2 -0
  229. package/esm2022/empty-state/koobiq-components-empty-state.mjs +5 -0
  230. package/esm2022/empty-state/public-api.mjs +3 -0
  231. package/esm2022/file-upload/file-drop.mjs +3 -2
  232. package/esm2022/file-upload/file-upload.mjs +1 -1
  233. package/esm2022/file-upload/file-upload.module.mjs +2 -2
  234. package/esm2022/file-upload/index.mjs +1 -1
  235. package/esm2022/file-upload/multiple-file-upload.component.mjs +16 -14
  236. package/esm2022/file-upload/public-api.mjs +2 -2
  237. package/esm2022/file-upload/single-file-upload.component.mjs +14 -12
  238. package/esm2022/form-field/cleaner.mjs +13 -3
  239. package/esm2022/form-field/form-field-control.mjs +1 -2
  240. package/esm2022/form-field/form-field-errors.mjs +1 -1
  241. package/esm2022/form-field/form-field.mjs +8 -15
  242. package/esm2022/form-field/form-field.module.mjs +1 -1
  243. package/esm2022/form-field/hint.mjs +6 -6
  244. package/esm2022/form-field/password-hint.mjs +15 -15
  245. package/esm2022/form-field/password-toggle.mjs +4 -7
  246. package/esm2022/form-field/prefix.mjs +1 -1
  247. package/esm2022/form-field/public-api.mjs +4 -4
  248. package/esm2022/form-field/stepper.mjs +33 -29
  249. package/esm2022/form-field/suffix.mjs +1 -1
  250. package/esm2022/form-field/validate.directive.mjs +6 -7
  251. package/esm2022/icon/icon-button.component.mjs +4 -4
  252. package/esm2022/icon/icon-item.component.mjs +3 -3
  253. package/esm2022/icon/icon.component.mjs +5 -6
  254. package/esm2022/icon/icon.module.mjs +1 -1
  255. package/esm2022/icon/public-api.mjs +3 -3
  256. package/esm2022/input/input-number-validators.mjs +1 -1
  257. package/esm2022/input/input-number.mjs +29 -41
  258. package/esm2022/input/input-password.mjs +13 -8
  259. package/esm2022/input/input-value-accessor.mjs +1 -1
  260. package/esm2022/input/input.mjs +13 -10
  261. package/esm2022/input/input.module.mjs +1 -1
  262. package/esm2022/input/public-api.mjs +3 -3
  263. package/esm2022/link/link.component.mjs +2 -2
  264. package/esm2022/link/link.module.mjs +1 -1
  265. package/esm2022/link/public-api.mjs +2 -2
  266. package/esm2022/list/list-selection.component.mjs +36 -41
  267. package/esm2022/list/list.component.mjs +5 -6
  268. package/esm2022/list/list.module.mjs +2 -2
  269. package/esm2022/list/public-api.mjs +3 -3
  270. package/esm2022/loader-overlay/loader-overlay.component.mjs +3 -3
  271. package/esm2022/loader-overlay/loader-overlay.module.mjs +1 -1
  272. package/esm2022/loader-overlay/public-api.mjs +2 -2
  273. package/esm2022/markdown/markdown.component.mjs +20 -6
  274. package/esm2022/markdown/markdown.module.mjs +1 -1
  275. package/esm2022/markdown/markdown.service.mjs +1 -1
  276. package/esm2022/modal/css-unit.pipe.mjs +1 -1
  277. package/esm2022/modal/modal-control.service.mjs +6 -2
  278. package/esm2022/modal/modal-ref.class.mjs +1 -2
  279. package/esm2022/modal/modal-util.mjs +1 -1
  280. package/esm2022/modal/modal.component.mjs +60 -33
  281. package/esm2022/modal/modal.directive.mjs +27 -11
  282. package/esm2022/modal/modal.module.mjs +2 -2
  283. package/esm2022/modal/modal.service.mjs +3 -6
  284. package/esm2022/modal/modal.type.mjs +1 -1
  285. package/esm2022/modal/public-api.mjs +3 -3
  286. package/esm2022/navbar/index.mjs +1 -1
  287. package/esm2022/navbar/navbar-item.component.mjs +41 -33
  288. package/esm2022/navbar/navbar.component.mjs +19 -29
  289. package/esm2022/navbar/navbar.module.mjs +2 -2
  290. package/esm2022/navbar/public-api.mjs +3 -3
  291. package/esm2022/navbar/vertical-navbar.component.mjs +21 -23
  292. package/esm2022/popover/popover-animations.mjs +1 -1
  293. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  294. package/esm2022/popover/popover.component.mjs +5 -5
  295. package/esm2022/popover/popover.module.mjs +1 -1
  296. package/esm2022/popover/public-api.mjs +3 -3
  297. package/esm2022/progress-bar/progress-bar.component.mjs +4 -4
  298. package/esm2022/progress-bar/progress-bar.module.mjs +2 -2
  299. package/esm2022/progress-bar/public-api.mjs +2 -2
  300. package/esm2022/progress-spinner/progress-spinner.component.mjs +4 -4
  301. package/esm2022/progress-spinner/progress-spinner.module.mjs +1 -1
  302. package/esm2022/progress-spinner/public-api.mjs +2 -2
  303. package/esm2022/radio/public-api.mjs +2 -2
  304. package/esm2022/radio/radio.component.mjs +9 -14
  305. package/esm2022/radio/radio.module.mjs +1 -1
  306. package/esm2022/risk-level/public-api.mjs +2 -2
  307. package/esm2022/risk-level/risk-level.component.mjs +3 -3
  308. package/esm2022/risk-level/risk-level.module.mjs +1 -1
  309. package/esm2022/scrollbar/public-api.mjs +2 -2
  310. package/esm2022/scrollbar/scrollbar.component.mjs +19 -21
  311. package/esm2022/scrollbar/scrollbar.directive.mjs +4 -5
  312. package/esm2022/scrollbar/scrollbar.module.mjs +2 -2
  313. package/esm2022/scrollbar/scrollbar.types.mjs +3 -2
  314. package/esm2022/select/public-api.mjs +3 -3
  315. package/esm2022/select/select-option.directive.mjs +8 -5
  316. package/esm2022/select/select.component.mjs +45 -71
  317. package/esm2022/select/select.module.mjs +1 -1
  318. package/esm2022/sidebar/public-api.mjs +2 -2
  319. package/esm2022/sidebar/sidebar-animations.mjs +1 -1
  320. package/esm2022/sidebar/sidebar.component.mjs +5 -7
  321. package/esm2022/sidebar/sidebar.module.mjs +1 -1
  322. package/esm2022/sidepanel/public-api.mjs +4 -4
  323. package/esm2022/sidepanel/sidepanel-animations.mjs +7 -4
  324. package/esm2022/sidepanel/sidepanel-config.mjs +1 -1
  325. package/esm2022/sidepanel/sidepanel-container.component.mjs +4 -4
  326. package/esm2022/sidepanel/sidepanel-directives.mjs +33 -20
  327. package/esm2022/sidepanel/sidepanel-ref.mjs +10 -5
  328. package/esm2022/sidepanel/sidepanel.module.mjs +1 -1
  329. package/esm2022/sidepanel/sidepanel.service.mjs +11 -15
  330. package/esm2022/splitter/public-api.mjs +2 -2
  331. package/esm2022/splitter/splitter.component.mjs +13 -24
  332. package/esm2022/splitter/splitter.module.mjs +1 -1
  333. package/esm2022/table/public-api.mjs +2 -2
  334. package/esm2022/table/table.component.mjs +3 -3
  335. package/esm2022/table/table.module.mjs +1 -1
  336. package/esm2022/tabs/paginated-tab-header.mjs +9 -14
  337. package/esm2022/tabs/public-api.mjs +6 -6
  338. package/esm2022/tabs/tab-body.component.mjs +10 -11
  339. package/esm2022/tabs/tab-content.directive.mjs +1 -1
  340. package/esm2022/tabs/tab-group.component.mjs +11 -13
  341. package/esm2022/tabs/tab-header.component.mjs +4 -4
  342. package/esm2022/tabs/tab-label-wrapper.directive.mjs +1 -1
  343. package/esm2022/tabs/tab-label.directive.mjs +1 -1
  344. package/esm2022/tabs/tab-nav-bar/index.mjs +1 -1
  345. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +46 -49
  346. package/esm2022/tabs/tab.component.mjs +7 -10
  347. package/esm2022/tabs/tabs-animations.mjs +1 -1
  348. package/esm2022/tabs/tabs.module.mjs +2 -2
  349. package/esm2022/tags/public-api.mjs +5 -5
  350. package/esm2022/tags/tag-default-options.mjs +1 -1
  351. package/esm2022/tags/tag-input.mjs +12 -16
  352. package/esm2022/tags/tag-list.component.mjs +15 -27
  353. package/esm2022/tags/tag-text-control.mjs +1 -1
  354. package/esm2022/tags/tag.component.mjs +5 -8
  355. package/esm2022/tags/tag.module.mjs +9 -7
  356. package/esm2022/textarea/index.mjs +1 -1
  357. package/esm2022/textarea/textarea.component.mjs +4 -7
  358. package/esm2022/textarea/textarea.module.mjs +1 -1
  359. package/esm2022/timepicker/public-api.mjs +2 -2
  360. package/esm2022/timepicker/timepicker.constants.mjs +6 -2
  361. package/esm2022/timepicker/timepicker.directive.mjs +62 -31
  362. package/esm2022/timepicker/timepicker.module.mjs +1 -1
  363. package/esm2022/timezone/cities-by-filter.pipe.mjs +1 -1
  364. package/esm2022/timezone/timezone-option.component.mjs +12 -11
  365. package/esm2022/timezone/timezone-option.directive.mjs +3 -3
  366. package/esm2022/timezone/timezone-select.component.mjs +5 -5
  367. package/esm2022/timezone/timezone.models.mjs +1 -2
  368. package/esm2022/timezone/timezone.module.mjs +1 -1
  369. package/esm2022/timezone/timezone.utils.mjs +5 -9
  370. package/esm2022/timezone/utc-offset.pipe.mjs +1 -1
  371. package/esm2022/title/public-api.mjs +2 -2
  372. package/esm2022/title/title.directive.mjs +9 -5
  373. package/esm2022/title/title.module.mjs +1 -1
  374. package/esm2022/toast/public-api.mjs +4 -4
  375. package/esm2022/toast/toast-animations.mjs +2 -2
  376. package/esm2022/toast/toast-container.component.mjs +5 -6
  377. package/esm2022/toast/toast.component.mjs +6 -6
  378. package/esm2022/toast/toast.module.mjs +1 -1
  379. package/esm2022/toast/toast.service.mjs +18 -30
  380. package/esm2022/toast/toast.type.mjs +1 -1
  381. package/esm2022/toggle/public-api.mjs +2 -2
  382. package/esm2022/toggle/toggle.component.mjs +17 -11
  383. package/esm2022/toggle/toggle.module.mjs +1 -1
  384. package/esm2022/tooltip/public-api.mjs +2 -2
  385. package/esm2022/tooltip/tooltip.animations.mjs +1 -1
  386. package/esm2022/tooltip/tooltip.component.mjs +7 -7
  387. package/esm2022/tooltip/tooltip.module.mjs +2 -2
  388. package/esm2022/tree/control/base-tree-control.mjs +1 -2
  389. package/esm2022/tree/control/flat-tree-control.filters.mjs +4 -7
  390. package/esm2022/tree/control/flat-tree-control.mjs +4 -7
  391. package/esm2022/tree/control/nested-tree-control.mjs +1 -2
  392. package/esm2022/tree/control/tree-control.mjs +1 -1
  393. package/esm2022/tree/data-source/flat-data-source.mjs +3 -8
  394. package/esm2022/tree/data-source/nested-data-source.mjs +2 -4
  395. package/esm2022/tree/node.mjs +1 -1
  396. package/esm2022/tree/outlet.mjs +1 -1
  397. package/esm2022/tree/padding.directive.mjs +4 -5
  398. package/esm2022/tree/public-api.mjs +11 -11
  399. package/esm2022/tree/toggle.mjs +8 -5
  400. package/esm2022/tree/tree-base.mjs +3 -7
  401. package/esm2022/tree/tree-errors.mjs +1 -1
  402. package/esm2022/tree/tree-option.component.mjs +9 -13
  403. package/esm2022/tree/tree-selection.component.mjs +20 -36
  404. package/esm2022/tree/tree.mjs +7 -3
  405. package/esm2022/tree/tree.module.mjs +2 -3
  406. package/esm2022/tree-select/public-api.mjs +2 -2
  407. package/esm2022/tree-select/tree-select.component.mjs +59 -72
  408. package/esm2022/tree-select/tree-select.module.mjs +1 -1
  409. package/fesm2022/koobiq-components-alert.mjs +10 -6
  410. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  411. package/fesm2022/koobiq-components-autocomplete.mjs +60 -72
  412. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  413. package/fesm2022/koobiq-components-badge.mjs +10 -8
  414. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  415. package/fesm2022/koobiq-components-button-toggle.mjs +30 -24
  416. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  417. package/fesm2022/koobiq-components-button.mjs +14 -11
  418. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  419. package/fesm2022/koobiq-components-card.mjs +4 -5
  420. package/fesm2022/koobiq-components-card.mjs.map +1 -1
  421. package/fesm2022/koobiq-components-checkbox.mjs +3 -5
  422. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  423. package/fesm2022/koobiq-components-code-block.mjs +39 -34
  424. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  425. package/fesm2022/koobiq-components-core.mjs +325 -336
  426. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  427. package/fesm2022/koobiq-components-datepicker.mjs +105 -111
  428. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  429. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  430. package/fesm2022/koobiq-components-dl.mjs +9 -9
  431. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  432. package/fesm2022/koobiq-components-dropdown.mjs +125 -147
  433. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  434. package/fesm2022/koobiq-components-ellipsis-center.mjs +3 -2
  435. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  436. package/fesm2022/koobiq-components-empty-state.mjs +157 -0
  437. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -0
  438. package/fesm2022/koobiq-components-file-upload.mjs +46 -41
  439. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  440. package/fesm2022/koobiq-components-form-field.mjs +75 -73
  441. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  442. package/fesm2022/koobiq-components-icon.mjs +9 -10
  443. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  444. package/fesm2022/koobiq-components-input.mjs +56 -60
  445. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  446. package/fesm2022/koobiq-components-link.mjs +1 -1
  447. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  448. package/fesm2022/koobiq-components-list.mjs +43 -49
  449. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  450. package/fesm2022/koobiq-components-loader-overlay.mjs +6 -6
  451. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  452. package/fesm2022/koobiq-components-markdown.mjs +18 -4
  453. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  454. package/fesm2022/koobiq-components-modal.mjs +96 -54
  455. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  456. package/fesm2022/koobiq-components-navbar.mjs +82 -86
  457. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  458. package/fesm2022/koobiq-components-popover.mjs +12 -12
  459. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  460. package/fesm2022/koobiq-components-progress-bar.mjs +5 -5
  461. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  462. package/fesm2022/koobiq-components-progress-spinner.mjs +5 -5
  463. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  464. package/fesm2022/koobiq-components-radio.mjs +11 -16
  465. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  466. package/fesm2022/koobiq-components-risk-level.mjs +4 -4
  467. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  468. package/fesm2022/koobiq-components-scrollbar.mjs +22 -24
  469. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  470. package/fesm2022/koobiq-components-select.mjs +55 -78
  471. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  472. package/fesm2022/koobiq-components-sidebar.mjs +5 -7
  473. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  474. package/fesm2022/koobiq-components-sidepanel.mjs +110 -93
  475. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  476. package/fesm2022/koobiq-components-splitter.mjs +15 -26
  477. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  478. package/fesm2022/koobiq-components-table.mjs +5 -5
  479. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  480. package/fesm2022/koobiq-components-tabs.mjs +85 -98
  481. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  482. package/fesm2022/koobiq-components-tags.mjs +39 -56
  483. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  484. package/fesm2022/koobiq-components-textarea.mjs +2 -5
  485. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  486. package/fesm2022/koobiq-components-timepicker.mjs +69 -34
  487. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  488. package/fesm2022/koobiq-components-timezone.mjs +16 -21
  489. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  490. package/fesm2022/koobiq-components-title.mjs +11 -7
  491. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  492. package/fesm2022/koobiq-components-toast.mjs +74 -87
  493. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  494. package/fesm2022/koobiq-components-toggle.mjs +17 -11
  495. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  496. package/fesm2022/koobiq-components-tooltip.mjs +10 -10
  497. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  498. package/fesm2022/koobiq-components-tree-select.mjs +67 -80
  499. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  500. package/fesm2022/koobiq-components-tree.mjs +509 -541
  501. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  502. package/file-upload/_file-upload-theme.scss +28 -18
  503. package/file-upload/file-upload.scss +0 -1
  504. package/file-upload/multiple-file-upload.component.d.ts +2 -2
  505. package/file-upload/multiple-file-upload.component.scss +17 -27
  506. package/file-upload/public-api.d.ts +1 -1
  507. package/file-upload/single-file-upload.component.d.ts +2 -2
  508. package/file-upload/single-file-upload.component.scss +1 -7
  509. package/form-field/_form-field-theme.scss +24 -12
  510. package/form-field/_hint-theme.scss +0 -2
  511. package/form-field/cleaner.scss +0 -1
  512. package/form-field/form-field.scss +12 -14
  513. package/form-field/hint.scss +0 -1
  514. package/form-field/password-toggle.scss +0 -1
  515. package/form-field/public-api.d.ts +3 -3
  516. package/form-field/stepper.scss +0 -1
  517. package/icon/_icon-button-theme.scss +18 -7
  518. package/icon/_icon-theme.scss +0 -1
  519. package/icon/icon-button.scss +2 -5
  520. package/icon/icon-item.scss +2 -5
  521. package/icon/icon.scss +0 -1
  522. package/icon/public-api.d.ts +2 -2
  523. package/input/_input-theme.scss +0 -1
  524. package/input/input.scss +9 -9
  525. package/input/public-api.d.ts +2 -2
  526. package/link/_link-theme.scss +12 -18
  527. package/link/link.component.d.ts +1 -1
  528. package/link/public-api.d.ts +1 -1
  529. package/list/_list-theme.scss +0 -1
  530. package/list/list-selection.component.d.ts +3 -3
  531. package/list/list.scss +1 -3
  532. package/list/public-api.d.ts +2 -2
  533. package/loader-overlay/_loader-overlay-theme.scss +6 -4
  534. package/loader-overlay/loader-overlay.scss +0 -1
  535. package/loader-overlay/public-api.d.ts +1 -1
  536. package/markdown/_markdown-theme.scss +11 -8
  537. package/markdown/markdown.scss +3 -3
  538. package/modal/README.md +4 -3
  539. package/modal/_modal-animation.scss +0 -1
  540. package/modal/_modal-confirm.scss +0 -1
  541. package/modal/_modal-theme.scss +8 -9
  542. package/modal/modal.directive.d.ts +3 -3
  543. package/modal/modal.scss +9 -15
  544. package/modal/modal.type.d.ts +2 -2
  545. package/modal/public-api.d.ts +2 -2
  546. package/navbar/README.md +21 -20
  547. package/navbar/_navbar-item_horizontal.scss +31 -24
  548. package/navbar/_navbar-item_vertical.scss +0 -3
  549. package/navbar/_navbar-theme.scss +3 -6
  550. package/navbar/navbar-brand.scss +0 -1
  551. package/navbar/navbar-divider.scss +0 -1
  552. package/navbar/navbar-item.component.d.ts +1 -1
  553. package/navbar/navbar-item.scss +9 -2
  554. package/navbar/navbar.scss +0 -1
  555. package/navbar/public-api.d.ts +2 -2
  556. package/navbar/vertical-navbar.scss +0 -1
  557. package/package.json +12 -6
  558. package/popover/README.md +17 -14
  559. package/popover/_popover-theme.scss +0 -1
  560. package/popover/popover.component.d.ts +1 -1
  561. package/popover/popover.scss +5 -13
  562. package/popover/public-api.d.ts +2 -2
  563. package/prebuilt-themes/dark-theme.css +1 -1
  564. package/prebuilt-themes/light-theme.css +1 -1
  565. package/progress-bar/_progress-bar-theme.scss +0 -1
  566. package/progress-bar/progress-bar.scss +0 -1
  567. package/progress-bar/public-api.d.ts +1 -1
  568. package/progress-spinner/_progress-spinner-theme.scss +0 -1
  569. package/progress-spinner/progress-spinner.scss +0 -1
  570. package/progress-spinner/public-api.d.ts +1 -1
  571. package/radio/_radio-theme.scss +13 -5
  572. package/radio/public-api.d.ts +1 -1
  573. package/radio/radio.scss +20 -6
  574. package/risk-level/_risk-level-theme.scss +0 -1
  575. package/risk-level/public-api.d.ts +1 -1
  576. package/risk-level/risk-level.component.scss +1 -4
  577. package/schematics/ng-add/index.js +4 -4
  578. package/scrollbar/_scrollbar-component-theme.scss +2 -3
  579. package/scrollbar/public-api.d.ts +1 -1
  580. package/scrollbar/scrollbar.component.scss +56 -44
  581. package/scrollbar/scrollbar.directive.d.ts +1 -1
  582. package/scrollbar/scrollbar.types.d.ts +1 -1
  583. package/select/_select-theme.scss +0 -1
  584. package/select/public-api.d.ts +2 -2
  585. package/select/select.component.d.ts +4 -1
  586. package/select/select.scss +0 -1
  587. package/sidebar/public-api.d.ts +1 -1
  588. package/sidepanel/_sidepanel-theme.scss +0 -1
  589. package/sidepanel/public-api.d.ts +3 -3
  590. package/sidepanel/sidepanel.scss +6 -12
  591. package/splitter/_splitter-theme.scss +0 -1
  592. package/splitter/public-api.d.ts +1 -1
  593. package/splitter/splitter.component.d.ts +2 -2
  594. package/splitter/splitter.scss +0 -1
  595. package/table/_table-theme.scss +7 -7
  596. package/table/public-api.d.ts +1 -1
  597. package/table/table.scss +2 -2
  598. package/tabs/_tabs-common.scss +10 -8
  599. package/tabs/_tabs-theme.scss +0 -1
  600. package/tabs/paginated-tab-header.d.ts +1 -1
  601. package/tabs/public-api.d.ts +5 -5
  602. package/tabs/tab-body.component.d.ts +3 -3
  603. package/tabs/tab-group.component.d.ts +1 -1
  604. package/tabs/tab-group.scss +0 -1
  605. package/tabs/tab-header.scss +0 -6
  606. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +17 -17
  607. package/tabs/tab-nav-bar/tab-nav-bar.scss +0 -1
  608. package/tags/_tag-theme.scss +0 -2
  609. package/tags/public-api.d.ts +4 -4
  610. package/tags/tag-input.d.ts +1 -1
  611. package/tags/tag-list.scss +9 -7
  612. package/tags/tag.component.d.ts +2 -2
  613. package/tags/tag.scss +1 -4
  614. package/textarea/_textarea-theme.scss +0 -1
  615. package/textarea/textarea.component.d.ts +1 -1
  616. package/textarea/textarea.scss +1 -4
  617. package/timepicker/public-api.d.ts +1 -1
  618. package/timepicker/timepicker.constants.d.ts +2 -0
  619. package/timepicker/timepicker.directive.d.ts +10 -3
  620. package/timepicker/timepicker.scss +0 -1
  621. package/timezone/_timezone-option-theme.scss +0 -1
  622. package/timezone/timezone-option.component.scss +0 -1
  623. package/timezone/timezone-option.directive.d.ts +1 -1
  624. package/timezone/timezone-select.component.scss +0 -1
  625. package/timezone/timezone.utils.d.ts +1 -1
  626. package/title/public-api.d.ts +1 -1
  627. package/title/title.directive.d.ts +2 -2
  628. package/toast/_toast-theme.scss +0 -2
  629. package/toast/public-api.d.ts +3 -3
  630. package/toast/toast-container.component.scss +0 -1
  631. package/toast/toast.component.scss +4 -2
  632. package/toast/toast.service.d.ts +2 -2
  633. package/toast/toast.type.d.ts +1 -1
  634. package/toggle/_toggle-theme.scss +10 -9
  635. package/toggle/public-api.d.ts +1 -1
  636. package/toggle/toggle.component.d.ts +2 -2
  637. package/toggle/toggle.scss +0 -1
  638. package/tooltip/_tooltip-theme.scss +0 -1
  639. package/tooltip/public-api.d.ts +1 -1
  640. package/tooltip/tooltip.component.d.ts +2 -2
  641. package/tooltip/tooltip.scss +1 -5
  642. package/tree/_tree-theme.scss +2 -3
  643. package/tree/public-api.d.ts +10 -10
  644. package/tree/toggle.scss +0 -1
  645. package/tree/tree-base.d.ts +1 -1
  646. package/tree/tree-option.component.d.ts +1 -1
  647. package/tree/tree-option.scss +12 -8
  648. package/tree/tree-selection.component.d.ts +3 -2
  649. package/tree-select/_tree-select-theme.scss +0 -1
  650. package/tree-select/public-api.d.ts +1 -1
  651. package/tree-select/tree-select.component.d.ts +9 -4
  652. package/tree-select/tree-select.scss +0 -1
@@ -1,46 +1,63 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, Directive, Inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, ViewChild, ContentChild, HostListener, EventEmitter, QueryList, TemplateRef, Input, ContentChildren, Output, Self, NgModule } from '@angular/core';
3
- import * as i1$1 from '@angular/cdk/overlay';
4
- import { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
1
+ import { trigger, state, style, transition, group, query, animate } from '@angular/animations';
2
+ import { TemplatePortal, DomPortalOutlet } from '@angular/cdk/portal';
5
3
  import * as i2 from '@angular/common';
6
4
  import { DOCUMENT, CommonModule } from '@angular/common';
7
- import * as i3 from '@koobiq/components/icon';
8
- import { KbqIcon, KbqIconModule } from '@koobiq/components/icon';
9
- import { TemplatePortal, DomPortalOutlet } from '@angular/cdk/portal';
5
+ import * as i0 from '@angular/core';
6
+ import { Directive, Inject, InjectionToken, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, ViewChild, ContentChild, HostListener, EventEmitter, QueryList, TemplateRef, Input, ContentChildren, Output, Self, NgModule } from '@angular/core';
10
7
  import { Subject, Subscription, merge, of, asapScheduler } from 'rxjs';
11
8
  import * as i1 from '@angular/cdk/a11y';
12
9
  import { mixinDisabled, KBQ_TITLE_TEXT_REF } from '@koobiq/components/core';
10
+ import * as i3 from '@koobiq/components/icon';
11
+ import { KbqIcon, KbqIconModule } from '@koobiq/components/icon';
13
12
  import * as i4 from '@angular/cdk/bidi';
13
+ import * as i1$1 from '@angular/cdk/overlay';
14
+ import { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
14
15
  import { normalizePassiveListenerOptions } from '@angular/cdk/platform';
15
16
  import { RIGHT_ARROW, LEFT_ARROW, ESCAPE, ENTER, SPACE, DOWN_ARROW as DOWN_ARROW$1 } from '@koobiq/cdk/keycodes';
16
17
  import { startWith, switchMap, take, filter, takeUntil, delay } from 'rxjs/operators';
17
18
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
18
19
  import { UP_ARROW, DOWN_ARROW } from '@angular/cdk/keycodes';
19
20
  import { FocusKeyManager } from '@koobiq/cdk/a11y';
20
- import { trigger, state, style, transition, group, query, animate } from '@angular/animations';
21
21
 
22
22
  /**
23
- * Injection token used to provide the parent dropdown to dropdown-specific components.
23
+ * Animations used by the kbq-dropdown component.
24
24
  * @docs-private
25
25
  */
26
- const KBQ_DROPDOWN_PANEL = new InjectionToken('KBQ_DROPDOWN_PANEL');
27
- /** Injection token to be used to override the default options for `kbq-dropdown`. */
28
- const KBQ_DROPDOWN_DEFAULT_OPTIONS = new InjectionToken('kbq-dropdown-default-options', {
29
- providedIn: 'root',
30
- factory: KBQ_DROPDOWN_DEFAULT_OPTIONS_FACTORY
31
- });
32
- /** @docs-private */
33
- // tslint:disable-next-line:naming-convention
34
- function KBQ_DROPDOWN_DEFAULT_OPTIONS_FACTORY() {
35
- return {
36
- overlapTriggerX: true,
37
- overlapTriggerY: false,
38
- xPosition: 'after',
39
- yPosition: 'below',
40
- backdropClass: 'cdk-overlay-transparent-backdrop',
41
- hasBackdrop: false
42
- };
43
- }
26
+ const kbqDropdownAnimations = {
27
+ /**
28
+ * This animation controls the dropdown panel's entry and exit from the page.
29
+ *
30
+ * When the dropdown panel is added to the DOM, it scales in and fades in its border.
31
+ *
32
+ * When the dropdown panel is removed from the DOM, it simply fades out after a brief
33
+ * delay to display the ripple.
34
+ */
35
+ transformDropdown: trigger('transformDropdown', [
36
+ state('void', style({
37
+ opacity: 0,
38
+ transform: 'scale(0.8)'
39
+ })),
40
+ transition('void => enter', group([
41
+ query('.kbq-dropdown__content', animate('0ms linear', style({ opacity: 1 }))),
42
+ animate('0ms cubic-bezier(0, 0, 0.2, 1)', style({ transform: 'scale(1)' }))
43
+ ])),
44
+ transition('* => void', animate('50ms 25ms linear', style({ opacity: 0 })))
45
+ ]),
46
+ /**
47
+ * This animation fades in the background color and content of the dropdown panel
48
+ * after its containing element is scaled in.
49
+ */
50
+ fadeInItems: trigger('fadeInItems', [
51
+ // now. Remove next time we do breaking changes.
52
+ state('showing', style({ opacity: 1 })),
53
+ transition('void => *', [
54
+ style({ opacity: 0 }),
55
+ animate('0ms 0ms cubic-bezier(0.55, 0, 0.55, 0.2)')
56
+ ])
57
+ ])
58
+ };
59
+ const fadeInItems = kbqDropdownAnimations.fadeInItems;
60
+ const transformDropdown = kbqDropdownAnimations.transformDropdown;
44
61
 
45
62
  /**
46
63
  * Dropdown content that will be rendered lazily once the dropdown is opened.
@@ -101,6 +118,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
101
118
  args: [DOCUMENT]
102
119
  }] }] });
103
120
 
121
+ /**
122
+ * Throws an exception for the case when dropdown trigger doesn't have a valid kbq-dropdown instance
123
+ * @docs-private
124
+ */
125
+ function throwKbqDropdownMissingError() {
126
+ throw Error(`kbqDropdownTriggerFor: must pass in an kbq-dropdown instance.
127
+ Example:
128
+ <kbq-dropdown #dropdown="kbqDropdown"></kbq-dropdown>
129
+ <button [kbqDropdownTriggerFor]="dropdown"></button>`);
130
+ }
131
+ /**
132
+ * Throws an exception for the case when dropdown's x-position value isn't valid.
133
+ * In other words, it doesn't match 'before' or 'after'.
134
+ * @docs-private
135
+ */
136
+ function throwKbqDropdownInvalidPositionX() {
137
+ throw Error(`xPosition value must be either 'before' or after'.
138
+ Example: <kbq-dropdown [xPosition]="'before'" #dropdown="kbqDropdown"></kbq-dropdown>`);
139
+ }
140
+ /**
141
+ * Throws an exception for the case when dropdown's y-position value isn't valid.
142
+ * In other words, it doesn't match 'above' or 'below'.
143
+ * @docs-private
144
+ */
145
+ function throwKbqDropdownInvalidPositionY() {
146
+ throw Error(`yPosition value must be either 'above' or below'.
147
+ Example: <kbq-dropdown [yPosition]="'above'" #dropdown="kbqDropdown"></kbq-dropdown>`);
148
+ }
149
+
150
+ /**
151
+ * Injection token used to provide the parent dropdown to dropdown-specific components.
152
+ * @docs-private
153
+ */
154
+ const KBQ_DROPDOWN_PANEL = new InjectionToken('KBQ_DROPDOWN_PANEL');
155
+ /** Injection token to be used to override the default options for `kbq-dropdown`. */
156
+ const KBQ_DROPDOWN_DEFAULT_OPTIONS = new InjectionToken('kbq-dropdown-default-options', {
157
+ providedIn: 'root',
158
+ factory: KBQ_DROPDOWN_DEFAULT_OPTIONS_FACTORY
159
+ });
160
+ /** @docs-private */
161
+ function KBQ_DROPDOWN_DEFAULT_OPTIONS_FACTORY() {
162
+ return {
163
+ overlapTriggerX: true,
164
+ overlapTriggerY: false,
165
+ xPosition: 'after',
166
+ yPosition: 'below',
167
+ backdropClass: 'cdk-overlay-transparent-backdrop',
168
+ hasBackdrop: false
169
+ };
170
+ }
171
+
104
172
  // Boilerplate for applying mixins to KbqDropdownItem.
105
173
  /** @docs-private */
106
174
  class KbqDropdownItemBase {
@@ -167,7 +235,6 @@ class KbqDropdownItem extends KbqDropdownItemMixinBase {
167
235
  // In Ivy the `host` bindings will be merged when this class is extended, whereas in
168
236
  // ViewEngine they're overwritten.
169
237
  // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.
170
- // tslint:disable-next-line:no-host-decorator-in-concrete
171
238
  checkDisabled(event) {
172
239
  if (this.disabled) {
173
240
  event.preventDefault();
@@ -179,7 +246,6 @@ class KbqDropdownItem extends KbqDropdownItemMixinBase {
179
246
  // In Ivy the `host` bindings will be merged when this class is extended, whereas in
180
247
  // ViewEngine they're overwritten.
181
248
  // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.
182
- // tslint:disable-next-line:no-host-decorator-in-concrete
183
249
  handleMouseEnter() {
184
250
  this.hovered.next(this);
185
251
  }
@@ -188,7 +254,6 @@ class KbqDropdownItem extends KbqDropdownItemMixinBase {
188
254
  const clone = this.getHostElement().cloneNode(true);
189
255
  const icons = clone.querySelectorAll('[kbq-icon], .kbq-icon');
190
256
  // Strip away icons so they don't show up in the text.
191
- // tslint:disable-next-line:prefer-for-of
192
257
  for (let i = 0; i < icons.length; i++) {
193
258
  const icon = icons[i];
194
259
  icon.parentNode?.removeChild(icon);
@@ -205,7 +270,7 @@ class KbqDropdownItem extends KbqDropdownItemMixinBase {
205
270
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqDropdownItem, deps: [{ token: i0.ElementRef }, { token: i1.FocusMonitor }, { token: KBQ_DROPDOWN_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
206
271
  /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqDropdownItem, selector: "kbq-dropdown-item, [kbq-dropdown-item]", inputs: { disabled: "disabled" }, host: { listeners: { "click": "checkDisabled($event)", "mouseenter": "handleMouseEnter()" }, properties: { "class.kbq-dropdown-item_with-icon": "icon", "class.kbq-dropdown-item_highlighted": "highlighted", "class.kbq-disabled": "disabled", "attr.disabled": "disabled || null", "attr.tabindex": "getTabIndex()" }, classAttribute: "kbq-dropdown-item" }, providers: [
207
272
  { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqDropdownItem }
208
- ], queries: [{ propertyName: "icon", first: true, predicate: KbqIcon, descendants: true }], viewQueries: [{ propertyName: "textElement", first: true, predicate: ["kbqTitleText"], descendants: true, static: true }], exportAs: ["kbqDropdownItem"], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[kbq-icon]\"></ng-content>\n\n<div class=\"kbq-dropdown-item__text\" #kbqTitleText>\n <ng-content></ng-content>\n</div>\n\n<i *ngIf=\"isNested\"\n class=\"kbq-dropdown-trigger__icon\"\n kbq-icon=\"mc-angle-right-S_16\">\n</i>\n\n<div class=\"kbq-dropdown-item-overlay\" (click)=\"haltDisabledEvents($event)\"></div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 10px,#ffffff0a 10px 20px,#0000000a 20px 30px,#ffffff0a 31px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-dropdown-item{width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-list-size-container-content-gap-horizontal, 8px);border-width:var(--kbq-list-size-container-focus-outline-width, 2px);border-style:solid;border-color:transparent;padding:calc(var(--kbq-list-size-container-padding-vertical, 6px) - var(--kbq-list-size-container-focus-outline-width, 2px)) calc(var(--kbq-list-size-container-padding-right, 12px) - var(--kbq-list-size-container-focus-outline-width, 2px)) calc(var(--kbq-list-size-container-padding-vertical, 6px) - var(--kbq-list-size-container-focus-outline-width, 2px)) calc(var(--kbq-list-size-container-padding-left, 12px) - var(--kbq-list-size-container-focus-outline-width, 2px));text-align:left}.kbq-dropdown-item .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:var(--kbq-list-size-text-padding-vertical, 0);padding-bottom:var(--kbq-list-size-text-padding-vertical, 0)}.kbq-dropdown-item .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown-item .kbq-list-text:empty{display:none}.kbq-dropdown-item .kbq-list-option-caption{padding-top:var(--kbq-list-size-container-content-gap-vertical, 2px)}.kbq-dropdown-item:not(.kbq-disabled){cursor:pointer}.kbq-dropdown-item>.kbq-icon:first-child{align-self:flex-start;margin-top:var(--kbq-list-size-container-padding-vertical, 6px)}.kbq-dropdown-item .kbq-dropdown-item__caption{padding-top:var(--kbq-list-size-container-content-gap-vertical, 2px)}.kbq-dropdown-item__text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:var(--kbq-list-size-text-padding-vertical, 0);padding-bottom:var(--kbq-list-size-text-padding-vertical, 0)}.kbq-dropdown-item__text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown-item__text:empty{display:none}.kbq-dropdown-item-overlay{position:absolute;inset:-1px;border-radius:inherit}.kbq-dropdown__group-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:32px;padding:var(--kbq-list-size-header-padding-top, 8px) var(--kbq-list-size-header-padding-horizontal, 12px) var(--kbq-list-size-header-padding-bottom, 4px) var(--kbq-list-size-header-padding-horizontal, 12px)}.kbq-dropdown__group-header .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:var(--kbq-list-size-text-padding-vertical, 0);padding-bottom:var(--kbq-list-size-text-padding-vertical, 0)}.kbq-dropdown__group-header .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown__group-header .kbq-list-text:empty{display:none}.kbq-dropdown__group-header.kbq-dropdown__group-header_small{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:32px;padding:var(--kbq-list-size-subheading-padding-top, 12px) var(--kbq-list-size-subheading-padding-horizontal, 12px) var(--kbq-list-size-subheading-padding-bottom, 4px) var(--kbq-list-size-subheading-padding-horizontal, 12px)}.kbq-dropdown__group-header.kbq-dropdown__group-header_small .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:var(--kbq-list-size-text-padding-vertical, 0);padding-bottom:var(--kbq-list-size-text-padding-vertical, 0)}.kbq-dropdown__group-header.kbq-dropdown__group-header_small .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown__group-header.kbq-dropdown__group-header_small .kbq-list-text:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
273
+ ], queries: [{ propertyName: "icon", first: true, predicate: KbqIcon, descendants: true }], viewQueries: [{ propertyName: "textElement", first: true, predicate: ["kbqTitleText"], descendants: true, static: true }], exportAs: ["kbqDropdownItem"], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[kbq-icon]\" />\n\n<div\n #kbqTitleText\n class=\"kbq-dropdown-item__text\"\n>\n <ng-content />\n</div>\n\n<i\n *ngIf=\"isNested\"\n kbq-icon=\"mc-angle-right-S_16\"\n class=\"kbq-dropdown-trigger__icon\"\n></i>\n\n<div\n class=\"kbq-dropdown-item-overlay\"\n (click)=\"haltDisabledEvents($event)\"\n></div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-button-size-border-width, 1px))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-button-size-border-width, 1px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-dropdown-item{width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s, 8px);border:var(--kbq-size-3xs, 2px) solid transparent;padding-top:var(--kbq-size-xxs, 4px);padding-left:var(--kbq-size-m, 12px);padding-right:var(--kbq-size-m, 12px);padding-bottom:var(--kbq-size-xxs, 4px);text-align:left;align-items:flex-start}.kbq-dropdown-item .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-dropdown-item .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown-item .kbq-list-text:empty{display:none}.kbq-dropdown-item .kbq-list-option-caption{padding-top:var(--kbq-size-3xs, 2px)}.kbq-dropdown-item:not(.kbq-disabled){cursor:pointer}.kbq-dropdown-item>.kbq-icon:first-child:before{align-self:center;display:flex;height:var(--kbq-size-xl, 20px);width:16px;align-items:center}.kbq-dropdown-item .kbq-dropdown-item__caption{padding-top:var(--kbq-size-3xs, 2px)}.kbq-dropdown-item__text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-dropdown-item__text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown-item__text:empty{display:none}.kbq-dropdown-item-overlay{position:absolute;inset:-1px;border-radius:inherit}.kbq-dropdown__group-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:32px;border-left:var(--kbq-size-3xs, 2px) solid transparent;border-right:var(--kbq-size-3xs, 2px) solid transparent;padding-top:var(--kbq-size-xs, 6px);padding-left:var(--kbq-size-m, 12px);padding-right:var(--kbq-size-m, 12px);padding-bottom:var(--kbq-size-3xs, 2px)}.kbq-dropdown__group-header .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-dropdown__group-header .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown__group-header .kbq-list-text:empty{display:none}.kbq-dropdown__group-header.kbq-dropdown__group-header_small{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:32px;border-left:var(--kbq-size-3xs, 2px) solid transparent;border-right:var(--kbq-size-3xs, 2px) solid transparent;padding-top:var(--kbq-size-m, 12px);padding-left:var(--kbq-size-m, 12px);padding-right:var(--kbq-size-m, 12px);padding-bottom:var(--kbq-size-xxs, 4px)}.kbq-dropdown__group-header.kbq-dropdown__group-header_small .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-dropdown__group-header.kbq-dropdown__group-header_small .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown__group-header.kbq-dropdown__group-header_small .kbq-list-text:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
209
274
  }
210
275
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqDropdownItem, decorators: [{
211
276
  type: Component,
@@ -218,7 +283,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
218
283
  '[attr.tabindex]': 'getTabIndex()'
219
284
  }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
220
285
  { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqDropdownItem }
221
- ], template: "<ng-content select=\"[kbq-icon]\"></ng-content>\n\n<div class=\"kbq-dropdown-item__text\" #kbqTitleText>\n <ng-content></ng-content>\n</div>\n\n<i *ngIf=\"isNested\"\n class=\"kbq-dropdown-trigger__icon\"\n kbq-icon=\"mc-angle-right-S_16\">\n</i>\n\n<div class=\"kbq-dropdown-item-overlay\" (click)=\"haltDisabledEvents($event)\"></div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 10px,#ffffff0a 10px 20px,#0000000a 20px 30px,#ffffff0a 31px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-dropdown-item{width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-list-size-container-content-gap-horizontal, 8px);border-width:var(--kbq-list-size-container-focus-outline-width, 2px);border-style:solid;border-color:transparent;padding:calc(var(--kbq-list-size-container-padding-vertical, 6px) - var(--kbq-list-size-container-focus-outline-width, 2px)) calc(var(--kbq-list-size-container-padding-right, 12px) - var(--kbq-list-size-container-focus-outline-width, 2px)) calc(var(--kbq-list-size-container-padding-vertical, 6px) - var(--kbq-list-size-container-focus-outline-width, 2px)) calc(var(--kbq-list-size-container-padding-left, 12px) - var(--kbq-list-size-container-focus-outline-width, 2px));text-align:left}.kbq-dropdown-item .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:var(--kbq-list-size-text-padding-vertical, 0);padding-bottom:var(--kbq-list-size-text-padding-vertical, 0)}.kbq-dropdown-item .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown-item .kbq-list-text:empty{display:none}.kbq-dropdown-item .kbq-list-option-caption{padding-top:var(--kbq-list-size-container-content-gap-vertical, 2px)}.kbq-dropdown-item:not(.kbq-disabled){cursor:pointer}.kbq-dropdown-item>.kbq-icon:first-child{align-self:flex-start;margin-top:var(--kbq-list-size-container-padding-vertical, 6px)}.kbq-dropdown-item .kbq-dropdown-item__caption{padding-top:var(--kbq-list-size-container-content-gap-vertical, 2px)}.kbq-dropdown-item__text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:var(--kbq-list-size-text-padding-vertical, 0);padding-bottom:var(--kbq-list-size-text-padding-vertical, 0)}.kbq-dropdown-item__text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown-item__text:empty{display:none}.kbq-dropdown-item-overlay{position:absolute;inset:-1px;border-radius:inherit}.kbq-dropdown__group-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:32px;padding:var(--kbq-list-size-header-padding-top, 8px) var(--kbq-list-size-header-padding-horizontal, 12px) var(--kbq-list-size-header-padding-bottom, 4px) var(--kbq-list-size-header-padding-horizontal, 12px)}.kbq-dropdown__group-header .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:var(--kbq-list-size-text-padding-vertical, 0);padding-bottom:var(--kbq-list-size-text-padding-vertical, 0)}.kbq-dropdown__group-header .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown__group-header .kbq-list-text:empty{display:none}.kbq-dropdown__group-header.kbq-dropdown__group-header_small{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:32px;padding:var(--kbq-list-size-subheading-padding-top, 12px) var(--kbq-list-size-subheading-padding-horizontal, 12px) var(--kbq-list-size-subheading-padding-bottom, 4px) var(--kbq-list-size-subheading-padding-horizontal, 12px)}.kbq-dropdown__group-header.kbq-dropdown__group-header_small .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:var(--kbq-list-size-text-padding-vertical, 0);padding-bottom:var(--kbq-list-size-text-padding-vertical, 0)}.kbq-dropdown__group-header.kbq-dropdown__group-header_small .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown__group-header.kbq-dropdown__group-header_small .kbq-list-text:empty{display:none}\n"] }]
286
+ ], template: "<ng-content select=\"[kbq-icon]\" />\n\n<div\n #kbqTitleText\n class=\"kbq-dropdown-item__text\"\n>\n <ng-content />\n</div>\n\n<i\n *ngIf=\"isNested\"\n kbq-icon=\"mc-angle-right-S_16\"\n class=\"kbq-dropdown-trigger__icon\"\n></i>\n\n<div\n class=\"kbq-dropdown-item-overlay\"\n (click)=\"haltDisabledEvents($event)\"\n></div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-button-size-border-width, 1px))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-button-size-border-width, 1px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-dropdown-item{width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s, 8px);border:var(--kbq-size-3xs, 2px) solid transparent;padding-top:var(--kbq-size-xxs, 4px);padding-left:var(--kbq-size-m, 12px);padding-right:var(--kbq-size-m, 12px);padding-bottom:var(--kbq-size-xxs, 4px);text-align:left;align-items:flex-start}.kbq-dropdown-item .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-dropdown-item .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown-item .kbq-list-text:empty{display:none}.kbq-dropdown-item .kbq-list-option-caption{padding-top:var(--kbq-size-3xs, 2px)}.kbq-dropdown-item:not(.kbq-disabled){cursor:pointer}.kbq-dropdown-item>.kbq-icon:first-child:before{align-self:center;display:flex;height:var(--kbq-size-xl, 20px);width:16px;align-items:center}.kbq-dropdown-item .kbq-dropdown-item__caption{padding-top:var(--kbq-size-3xs, 2px)}.kbq-dropdown-item__text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-dropdown-item__text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown-item__text:empty{display:none}.kbq-dropdown-item-overlay{position:absolute;inset:-1px;border-radius:inherit}.kbq-dropdown__group-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:32px;border-left:var(--kbq-size-3xs, 2px) solid transparent;border-right:var(--kbq-size-3xs, 2px) solid transparent;padding-top:var(--kbq-size-xs, 6px);padding-left:var(--kbq-size-m, 12px);padding-right:var(--kbq-size-m, 12px);padding-bottom:var(--kbq-size-3xs, 2px)}.kbq-dropdown__group-header .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-dropdown__group-header .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown__group-header .kbq-list-text:empty{display:none}.kbq-dropdown__group-header.kbq-dropdown__group-header_small{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:32px;border-left:var(--kbq-size-3xs, 2px) solid transparent;border-right:var(--kbq-size-3xs, 2px) solid transparent;padding-top:var(--kbq-size-m, 12px);padding-left:var(--kbq-size-m, 12px);padding-right:var(--kbq-size-m, 12px);padding-bottom:var(--kbq-size-xxs, 4px)}.kbq-dropdown__group-header.kbq-dropdown__group-header_small .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-dropdown__group-header.kbq-dropdown__group-header_small .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-dropdown__group-header.kbq-dropdown__group-header_small .kbq-list-text:empty{display:none}\n"] }]
222
287
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FocusMonitor }, { type: undefined, decorators: [{
223
288
  type: Inject,
224
289
  args: [KBQ_DROPDOWN_PANEL]
@@ -238,75 +303,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
238
303
  args: ['mouseenter']
239
304
  }] } });
240
305
 
241
- /**
242
- * Throws an exception for the case when dropdown trigger doesn't have a valid kbq-dropdown instance
243
- * @docs-private
244
- */
245
- function throwKbqDropdownMissingError() {
246
- throw Error(`kbqDropdownTriggerFor: must pass in an kbq-dropdown instance.
247
- Example:
248
- <kbq-dropdown #dropdown="kbqDropdown"></kbq-dropdown>
249
- <button [kbqDropdownTriggerFor]="dropdown"></button>`);
250
- }
251
- /**
252
- * Throws an exception for the case when dropdown's x-position value isn't valid.
253
- * In other words, it doesn't match 'before' or 'after'.
254
- * @docs-private
255
- */
256
- function throwKbqDropdownInvalidPositionX() {
257
- throw Error(`xPosition value must be either 'before' or after'.
258
- Example: <kbq-dropdown [xPosition]="'before'" #dropdown="kbqDropdown"></kbq-dropdown>`);
259
- }
260
- /**
261
- * Throws an exception for the case when dropdown's y-position value isn't valid.
262
- * In other words, it doesn't match 'above' or 'below'.
263
- * @docs-private
264
- */
265
- function throwKbqDropdownInvalidPositionY() {
266
- throw Error(`yPosition value must be either 'above' or below'.
267
- Example: <kbq-dropdown [yPosition]="'above'" #dropdown="kbqDropdown"></kbq-dropdown>`);
268
- }
269
-
270
- /**
271
- * Animations used by the kbq-dropdown component.
272
- * @docs-private
273
- */
274
- const kbqDropdownAnimations = {
275
- /**
276
- * This animation controls the dropdown panel's entry and exit from the page.
277
- *
278
- * When the dropdown panel is added to the DOM, it scales in and fades in its border.
279
- *
280
- * When the dropdown panel is removed from the DOM, it simply fades out after a brief
281
- * delay to display the ripple.
282
- */
283
- transformDropdown: trigger('transformDropdown', [
284
- state('void', style({
285
- opacity: 0,
286
- transform: 'scale(0.8)'
287
- })),
288
- transition('void => enter', group([
289
- query('.kbq-dropdown__content', animate('0ms linear', style({ opacity: 1 }))),
290
- animate('0ms cubic-bezier(0, 0, 0.2, 1)', style({ transform: 'scale(1)' }))
291
- ])),
292
- transition('* => void', animate('50ms 25ms linear', style({ opacity: 0 })))
293
- ]),
294
- /**
295
- * This animation fades in the background color and content of the dropdown panel
296
- * after its containing element is scaled in.
297
- */
298
- fadeInItems: trigger('fadeInItems', [
299
- // now. Remove next time we do breaking changes.
300
- state('showing', style({ opacity: 1 })),
301
- transition('void => *', [
302
- style({ opacity: 0 }),
303
- animate('0ms 0ms cubic-bezier(0.55, 0, 0.55, 0.2)')
304
- ])
305
- ])
306
- };
307
- const fadeInItems = kbqDropdownAnimations.fadeInItems;
308
- const transformDropdown = kbqDropdownAnimations.transformDropdown;
309
-
310
306
  class KbqDropdown {
311
307
  /** Position of the dropdown in the X axis. */
312
308
  get xPosition() {
@@ -360,15 +356,11 @@ class KbqDropdown {
360
356
  set panelClass(classes) {
361
357
  const previousPanelClass = this.previousPanelClass;
362
358
  if (previousPanelClass && previousPanelClass.length) {
363
- previousPanelClass
364
- .split(' ')
365
- .forEach((className) => this.classList[className] = false);
359
+ previousPanelClass.split(' ').forEach((className) => (this.classList[className] = false));
366
360
  }
367
361
  this.previousPanelClass = classes;
368
362
  if (classes?.length) {
369
- classes
370
- .split(' ')
371
- .forEach((className) => this.classList[className] = true);
363
+ classes.split(' ').forEach((className) => (this.classList[className] = true));
372
364
  this.elementRef.nativeElement.className = '';
373
365
  }
374
366
  }
@@ -403,13 +395,11 @@ class KbqDropdown {
403
395
  }
404
396
  ngAfterContentInit() {
405
397
  this.updateDirectDescendants();
406
- this.keyManager = new FocusKeyManager(this.directDescendantItems)
407
- .withTypeAhead();
398
+ this.keyManager = new FocusKeyManager(this.directDescendantItems).withTypeAhead();
408
399
  if (this.navigationWithWrap) {
409
400
  this.keyManager.withWrap();
410
401
  }
411
- this.tabSubscription = this.keyManager.tabOut
412
- .subscribe(() => this.closed.emit('tab'));
402
+ this.tabSubscription = this.keyManager.tabOut.subscribe(() => this.closed.emit('tab'));
413
403
  // If a user manually (programmatically) focuses a menu item, we need to reflect that focus
414
404
  // change back to the key manager. Note that we don't need to unsubscribe here because focused
415
405
  // is internal and we know that it gets completed on destroy.
@@ -429,7 +419,6 @@ class KbqDropdown {
429
419
  }
430
420
  /** Handle a keyboard event from the dropdown, delegating to the appropriate action. */
431
421
  handleKeydown(event) {
432
- // tslint:disable-next-line:deprecation
433
422
  const keyCode = event.keyCode;
434
423
  switch (keyCode) {
435
424
  case ESCAPE:
@@ -529,9 +518,7 @@ class KbqDropdown {
529
518
  * when it comes to maintaining the item order.
530
519
  */
531
520
  updateDirectDescendants() {
532
- this.items.changes
533
- .pipe(startWith(this.items))
534
- .subscribe((items) => {
521
+ this.items.changes.pipe(startWith(this.items)).subscribe((items) => {
535
522
  this.directDescendantItems.reset(items.filter((item) => item.parentDropdownPanel === this));
536
523
  this.directDescendantItems.notifyOnChanges();
537
524
  });
@@ -539,7 +526,7 @@ class KbqDropdown {
539
526
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqDropdown, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: KBQ_DROPDOWN_DEFAULT_OPTIONS }], target: i0.ɵɵFactoryTarget.Component }); }
540
527
  /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqDropdown, selector: "kbq-dropdown", inputs: { navigationWithWrap: "navigationWithWrap", xPosition: "xPosition", yPosition: "yPosition", overlapTriggerY: "overlapTriggerY", overlapTriggerX: "overlapTriggerX", hasBackdrop: "hasBackdrop", panelClass: ["class", "panelClass"], backdropClass: "backdropClass" }, outputs: { closed: "closed" }, providers: [
541
528
  { provide: KBQ_DROPDOWN_PANEL, useExisting: KbqDropdown }
542
- ], queries: [{ propertyName: "lazyContent", first: true, predicate: KbqDropdownContent, descendants: true }, { propertyName: "items", predicate: KbqDropdownItem, descendants: true }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], exportAs: ["kbqDropdown"], ngImport: i0, template: "<ng-template>\n <div class=\"kbq-dropdown__panel\"\n [ngClass]=\"classList\"\n [class.kbq-dropdown__panel_nested]=\"parent\"\n [style.min-width]=\"triggerWidth\"\n (keydown)=\"handleKeydown($event)\"\n (click)=\"close()\"\n [@transformDropdown]=\"panelAnimationState\"\n (@transformDropdown.start)=\"onAnimationStart($event)\"\n (@transformDropdown.done)=\"onAnimationDone($event)\"\n tabindex=\"-1\">\n\n <div class=\"kbq-dropdown__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".kbq-dropdown-trigger.kbq-button-icon_right.kbq-button-icon_left .kbq-icon_left{margin-right:2px}.kbq-dropdown-trigger.kbq-button-icon_right.kbq-button-icon_left .kbq-icon_right{margin-left:2px}.kbq-dropdown-trigger__icon{margin-left:auto}.kbq-dropdown__panel{margin-top:2px;min-width:var(--kbq-dropdown-size-container-width-min, 64px);max-width:var(--kbq-dropdown-size-container-width-max, 640px);border-radius:var(--kbq-dropdown-size-container-border-radius, 8px);padding-top:var(--kbq-dropdown-size-container-padding-vertical, 4px);padding-bottom:var(--kbq-dropdown-size-container-padding-vertical, 4px)}.kbq-dropdown__panel.ng-animating{pointer-events:none}.kbq-dropdown__content{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
529
+ ], queries: [{ propertyName: "lazyContent", first: true, predicate: KbqDropdownContent, descendants: true }, { propertyName: "items", predicate: KbqDropdownItem, descendants: true }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], exportAs: ["kbqDropdown"], ngImport: i0, template: "<ng-template>\n <div\n tabindex=\"-1\"\n class=\"kbq-dropdown__panel\"\n [class.kbq-dropdown__panel_nested]=\"parent\"\n [ngClass]=\"classList\"\n [style.min-width]=\"triggerWidth\"\n (@transformDropdown.done)=\"onAnimationDone($event)\"\n (@transformDropdown.start)=\"onAnimationStart($event)\"\n (click)=\"close()\"\n (keydown)=\"handleKeydown($event)\"\n [@transformDropdown]=\"panelAnimationState\"\n >\n <div class=\"kbq-dropdown__content\">\n <ng-content />\n </div>\n </div>\n</ng-template>\n", styles: [".kbq-dropdown-trigger.kbq-button-icon_right.kbq-button-icon_left .kbq-icon_left{margin-right:2px}.kbq-dropdown-trigger.kbq-button-icon_right.kbq-button-icon_left .kbq-icon_right{margin-left:2px}.kbq-dropdown-trigger__icon{margin-left:auto}.kbq-dropdown__panel{margin-top:2px;min-width:var(--kbq-dropdown-size-container-width-min, 64px);max-width:var(--kbq-dropdown-size-container-width-max, 640px);border-radius:var(--kbq-dropdown-size-container-border-radius, 8px);padding-top:var(--kbq-dropdown-size-container-padding-vertical, 4px);padding-bottom:var(--kbq-dropdown-size-container-padding-vertical, 4px)}.kbq-dropdown__panel.ng-animating{pointer-events:none}.kbq-dropdown__content{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
543
530
  kbqDropdownAnimations.transformDropdown,
544
531
  kbqDropdownAnimations.fadeInItems
545
532
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
@@ -551,7 +538,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
551
538
  kbqDropdownAnimations.fadeInItems
552
539
  ], providers: [
553
540
  { provide: KBQ_DROPDOWN_PANEL, useExisting: KbqDropdown }
554
- ], template: "<ng-template>\n <div class=\"kbq-dropdown__panel\"\n [ngClass]=\"classList\"\n [class.kbq-dropdown__panel_nested]=\"parent\"\n [style.min-width]=\"triggerWidth\"\n (keydown)=\"handleKeydown($event)\"\n (click)=\"close()\"\n [@transformDropdown]=\"panelAnimationState\"\n (@transformDropdown.start)=\"onAnimationStart($event)\"\n (@transformDropdown.done)=\"onAnimationDone($event)\"\n tabindex=\"-1\">\n\n <div class=\"kbq-dropdown__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".kbq-dropdown-trigger.kbq-button-icon_right.kbq-button-icon_left .kbq-icon_left{margin-right:2px}.kbq-dropdown-trigger.kbq-button-icon_right.kbq-button-icon_left .kbq-icon_right{margin-left:2px}.kbq-dropdown-trigger__icon{margin-left:auto}.kbq-dropdown__panel{margin-top:2px;min-width:var(--kbq-dropdown-size-container-width-min, 64px);max-width:var(--kbq-dropdown-size-container-width-max, 640px);border-radius:var(--kbq-dropdown-size-container-border-radius, 8px);padding-top:var(--kbq-dropdown-size-container-padding-vertical, 4px);padding-bottom:var(--kbq-dropdown-size-container-padding-vertical, 4px)}.kbq-dropdown__panel.ng-animating{pointer-events:none}.kbq-dropdown__content{display:flex;flex-direction:column}\n"] }]
541
+ ], template: "<ng-template>\n <div\n tabindex=\"-1\"\n class=\"kbq-dropdown__panel\"\n [class.kbq-dropdown__panel_nested]=\"parent\"\n [ngClass]=\"classList\"\n [style.min-width]=\"triggerWidth\"\n (@transformDropdown.done)=\"onAnimationDone($event)\"\n (@transformDropdown.start)=\"onAnimationStart($event)\"\n (click)=\"close()\"\n (keydown)=\"handleKeydown($event)\"\n [@transformDropdown]=\"panelAnimationState\"\n >\n <div class=\"kbq-dropdown__content\">\n <ng-content />\n </div>\n </div>\n</ng-template>\n", styles: [".kbq-dropdown-trigger.kbq-button-icon_right.kbq-button-icon_left .kbq-icon_left{margin-right:2px}.kbq-dropdown-trigger.kbq-button-icon_right.kbq-button-icon_left .kbq-icon_right{margin-left:2px}.kbq-dropdown-trigger__icon{margin-left:auto}.kbq-dropdown__panel{margin-top:2px;min-width:var(--kbq-dropdown-size-container-width-min, 64px);max-width:var(--kbq-dropdown-size-container-width-max, 640px);border-radius:var(--kbq-dropdown-size-container-border-radius, 8px);padding-top:var(--kbq-dropdown-size-container-padding-vertical, 4px);padding-bottom:var(--kbq-dropdown-size-container-padding-vertical, 4px)}.kbq-dropdown__panel.ng-animating{pointer-events:none}.kbq-dropdown__content{display:flex;flex-direction:column}\n"] }]
555
542
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
556
543
  type: Inject,
557
544
  args: [KBQ_DROPDOWN_DEFAULT_OPTIONS]
@@ -588,7 +575,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
588
575
  /** Injection token that determines the scroll handling while the dropdown is open. */
589
576
  const KBQ_DROPDOWN_SCROLL_STRATEGY = new InjectionToken('kbq-dropdown-scroll-strategy');
590
577
  /** @docs-private */
591
- // tslint:disable-next-line:naming-convention
592
578
  function KBQ_DROPDOWN_SCROLL_STRATEGY_FACTORY(overlay) {
593
579
  return () => overlay.scrollStrategies.reposition();
594
580
  }
@@ -619,9 +605,7 @@ class KbqDropdownTrigger {
619
605
  this._dropdown = dropdown;
620
606
  this.closeSubscription.unsubscribe();
621
607
  if (dropdown) {
622
- this.closeSubscription = dropdown.closed
623
- .asObservable()
624
- .subscribe((reason) => {
608
+ this.closeSubscription = dropdown.closed.asObservable().subscribe((reason) => {
625
609
  this.destroy(reason);
626
610
  // If a click closed the dropdown, we should close the entire chain of nested dropdowns.
627
611
  if (['click', 'tab'].includes(reason) && this.parent) {
@@ -667,7 +651,7 @@ class KbqDropdownTrigger {
667
651
  * Handles touch start events on the trigger.
668
652
  * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.
669
653
  */
670
- this.handleTouchStart = () => this.openedBy = 'touch';
654
+ this.handleTouchStart = () => (this.openedBy = 'touch');
671
655
  elementRef.nativeElement.addEventListener('touchstart', this.handleTouchStart, passiveEventListenerOptions);
672
656
  if (dropdownItemInstance) {
673
657
  dropdownItemInstance.isNested = this.isNested();
@@ -691,7 +675,6 @@ class KbqDropdownTrigger {
691
675
  }
692
676
  /** Toggles the dropdown between the open and closed states. */
693
677
  toggle() {
694
- // tslint:disable-next-line:no-void-expression
695
678
  return this._opened ? this.close() : this.open();
696
679
  }
697
680
  /** Opens the dropdown. */
@@ -709,8 +692,7 @@ class KbqDropdownTrigger {
709
692
  this.dropdown.lazyContent.detach();
710
693
  this.dropdown.lazyContent.attach(this.data);
711
694
  }
712
- this.closeSubscription = this.closingActions()
713
- .subscribe(() => this.close());
695
+ this.closeSubscription = this.closingActions().subscribe(() => this.close());
714
696
  this.init();
715
697
  if (this.dropdown instanceof KbqDropdown) {
716
698
  this.dropdown.startAnimation();
@@ -745,7 +727,6 @@ class KbqDropdownTrigger {
745
727
  }
746
728
  /** Handles key presses on the trigger. */
747
729
  handleKeydown(event) {
748
- // tslint:disable-next-line:deprecation
749
730
  const keyCode = event.keyCode;
750
731
  if (keyCode === ENTER || keyCode === SPACE) {
751
732
  this.openedBy = 'keyboard';
@@ -761,7 +742,7 @@ class KbqDropdownTrigger {
761
742
  }
762
743
  if ((this.isNested() &&
763
744
  ((keyCode === RIGHT_ARROW && this.dir === 'ltr') || (keyCode === LEFT_ARROW && this.dir === 'rtl'))) ||
764
- (!this.isNested() && (keyCode === DOWN_ARROW$1 && this.openByArrowDown))) {
745
+ (!this.isNested() && keyCode === DOWN_ARROW$1 && this.openByArrowDown)) {
765
746
  event.preventDefault();
766
747
  this.openedBy = 'keyboard';
767
748
  this.open();
@@ -793,8 +774,7 @@ class KbqDropdownTrigger {
793
774
  this.openedBy = undefined;
794
775
  if (this.dropdown instanceof KbqDropdown) {
795
776
  this.dropdown.resetAnimation();
796
- const animationSubscription = this.dropdown.animationDone
797
- .pipe(filter((event) => event.toState === 'void'), take(1));
777
+ const animationSubscription = this.dropdown.animationDone.pipe(filter((event) => event.toState === 'void'), take(1));
798
778
  if (this.dropdown.lazyContent) {
799
779
  // Wait for the exit animation to finish before detaching the content.
800
780
  animationSubscription
@@ -808,8 +788,7 @@ class KbqDropdownTrigger {
808
788
  });
809
789
  }
810
790
  else {
811
- animationSubscription
812
- .subscribe(() => this.setIsOpened(false));
791
+ animationSubscription.subscribe(() => this.setIsOpened(false));
813
792
  }
814
793
  }
815
794
  else {
@@ -839,7 +818,6 @@ class KbqDropdownTrigger {
839
818
  this.changeDetectorRef.markForCheck();
840
819
  }
841
820
  this._opened = isOpen;
842
- // tslint:disable-next-line:no-void-expression
843
821
  this._opened ? this.dropdownOpened.emit() : this.dropdownClosed.emit();
844
822
  if (this.isNested()) {
845
823
  this.dropdownItemInstance.highlighted = isOpen;
@@ -866,8 +844,7 @@ class KbqDropdownTrigger {
866
844
  // Consume the `keydownEvents` in order to prevent them from going to another overlay.
867
845
  // Ideally we'd also have our keyboard event logic in here, however doing so will
868
846
  // break anybody that may have implemented the `KbqDropdownPanel` themselves.
869
- this.overlayRef.keydownEvents()
870
- .subscribe();
847
+ this.overlayRef.keydownEvents().subscribe();
871
848
  }
872
849
  return this.overlayRef;
873
850
  }
@@ -877,7 +854,8 @@ class KbqDropdownTrigger {
877
854
  */
878
855
  getOverlayConfig() {
879
856
  return new OverlayConfig({
880
- positionStrategy: this.overlay.position()
857
+ positionStrategy: this.overlay
858
+ .position()
881
859
  .flexibleConnectedTo(this.elementRef)
882
860
  .withLockedPosition()
883
861
  .withTransformOriginOn('.kbq-dropdown__panel'),
@@ -893,8 +871,7 @@ class KbqDropdownTrigger {
893
871
  */
894
872
  subscribeToPositions(position) {
895
873
  if (this.dropdown.setPositionClasses) {
896
- position.positionChanges
897
- .subscribe((change) => {
874
+ position.positionChanges.subscribe((change) => {
898
875
  const posX = change.connectionPair.overlayX === 'start' ? 'after' : 'before';
899
876
  const posY = change.connectionPair.overlayY === 'top' ? 'below' : 'above';
900
877
  this.dropdown.setPositionClasses(posX, posY);
@@ -907,13 +884,11 @@ class KbqDropdownTrigger {
907
884
  * @param positionStrategy Strategy whose position to update.
908
885
  */
909
886
  setPosition(positionStrategy) {
910
- let [originX, originFallbackX, overlayX, overlayFallbackX] = this.dropdown.xPosition === 'before' ?
911
- ['end', 'start', 'end', 'start'] :
912
- ['start', 'end', 'start', 'end'];
913
- // tslint:disable-next-line:prefer-const
914
- let [overlayY, overlayFallbackY, originY, originFallbackY] = this.dropdown.yPosition === 'above' ?
915
- ['bottom', 'top', 'bottom', 'top'] :
916
- ['top', 'bottom', 'top', 'bottom'];
887
+ let [originX, originFallbackX, overlayX, overlayFallbackX] = this.dropdown.xPosition === 'before' ? ['end', 'start', 'end', 'start'] : ['start', 'end', 'start', 'end'];
888
+ // eslint-disable-next-line prefer-const
889
+ let [overlayY, overlayFallbackY, originY, originFallbackY] = this.dropdown.yPosition === 'above'
890
+ ? ['bottom', 'top', 'bottom', 'top']
891
+ : ['top', 'bottom', 'top', 'bottom'];
917
892
  let offsetY = 0;
918
893
  let offsetX = 0;
919
894
  if (this.isNested()) {
@@ -966,8 +941,9 @@ class KbqDropdownTrigger {
966
941
  const outsidePointerEvents = this.overlayRef.outsidePointerEvents();
967
942
  const detachments = this.overlayRef.detachments();
968
943
  const parentClose = this.parent ? this.parent.closed : of();
969
- const hover = this.parent ? this.parent.hovered()
970
- .pipe(filter((active) => active !== this.dropdownItemInstance), filter(() => this._opened)) : of();
944
+ const hover = this.parent
945
+ ? this.parent.hovered().pipe(filter((active) => active !== this.dropdownItemInstance), filter(() => this._opened))
946
+ : of();
971
947
  return merge(backdrop, outsidePointerEvents, parentClose, hover, detachments);
972
948
  }
973
949
  /** Handles the cases where the user hovers over the trigger. */
@@ -976,7 +952,8 @@ class KbqDropdownTrigger {
976
952
  if (!this.isNested()) {
977
953
  return;
978
954
  }
979
- this.hoverSubscription = this.parent.hovered()
955
+ this.hoverSubscription = this.parent
956
+ .hovered()
980
957
  // Since we might have multiple competing triggers for the same dropdown (e.g. a nested dropdown
981
958
  // with different data and triggers), we have to delay it by a tick to ensure that
982
959
  // it won't be closed immediately after it is opened.
@@ -991,6 +968,7 @@ class KbqDropdownTrigger {
991
968
  // 'changed after checked' errors in some cases. See #12194.
992
969
  this.dropdown.animationDone
993
970
  .pipe(take(1), delay(0, asapScheduler), takeUntil(this.parent.hovered()))
971
+ // eslint-disable-next-line rxjs/no-nested-subscribe
994
972
  .subscribe(() => this.open());
995
973
  }
996
974
  else {