@koobiq/components 18.1.0 → 18.2.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 (328) hide show
  1. package/accordion/README.md +0 -0
  2. package/accordion/_accordion-theme.scss +62 -0
  3. package/accordion/accordion-content.d.ts +6 -0
  4. package/accordion/accordion-header.d.ts +6 -0
  5. package/accordion/accordion-item.d.ts +6 -0
  6. package/accordion/accordion-tokens.scss +45 -0
  7. package/accordion/accordion-trigger.component.d.ts +11 -0
  8. package/accordion/accordion-trigger.component.scss +79 -0
  9. package/accordion/accordion.component.d.ts +20 -0
  10. package/accordion/accordion.component.scss +66 -0
  11. package/accordion/accordion.module.d.ts +12 -0
  12. package/accordion/index.d.ts +1 -0
  13. package/accordion/public-api.d.ts +6 -0
  14. package/alert/_alert-theme.scss +3 -3
  15. package/alert/alert-tokens.scss +3 -3
  16. package/alert/alert.component.scss +40 -39
  17. package/autocomplete/_autocomplete-theme.scss +2 -2
  18. package/autocomplete/autocomplete.scss +6 -6
  19. package/badge/_badge-theme.scss +5 -5
  20. package/badge/badge.component.scss +16 -16
  21. package/button/_button-base.scss +6 -6
  22. package/button/_button-theme.scss +11 -11
  23. package/button/button.dropdown-trigger.directive.d.ts +14 -0
  24. package/button/button.module.d.ts +2 -1
  25. package/button/button.scss +8 -8
  26. package/button/public-api.d.ts +1 -0
  27. package/button-toggle/_button-toggle-theme.scss +5 -5
  28. package/button-toggle/button-toggle.scss +11 -11
  29. package/checkbox/_checkbox-theme.scss +22 -22
  30. package/checkbox/checkbox-tokens.scss +2 -2
  31. package/checkbox/checkbox.scss +16 -16
  32. package/code-block/_code-block-theme.scss +15 -15
  33. package/code-block/actionbar.component.scss +4 -4
  34. package/code-block/code-block.scss +18 -19
  35. package/core/forms/_forms-theme.scss +2 -2
  36. package/core/forms/_forms.scss +12 -12
  37. package/core/option/_optgroup-theme.scss +2 -2
  38. package/core/option/_option-action-theme.scss +6 -6
  39. package/core/option/_option-theme.scss +5 -5
  40. package/core/option/action.d.ts +1 -1
  41. package/core/option/action.scss +2 -2
  42. package/core/option/optgroup.scss +1 -1
  43. package/core/pop-up/pop-up-trigger.d.ts +3 -3
  44. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +8 -8
  45. package/core/selection/pseudo-checkbox/pseudo-checkbox-tokens.scss +2 -2
  46. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +8 -8
  47. package/core/styles/common/_groups.scss +4 -4
  48. package/core/styles/common/_list.scss +19 -19
  49. package/core/styles/common/_popup.scss +3 -3
  50. package/core/styles/common/_select.scss +13 -13
  51. package/core/styles/common/_tokens.scss +8 -19
  52. package/core/styles/theming/_scrollbar-theme.scss +11 -11
  53. package/core/styles/visual/_layout.scss +13 -13
  54. package/datepicker/_datepicker-theme.scss +15 -15
  55. package/datepicker/calendar-body.scss +2 -2
  56. package/datepicker/calendar-header.scss +3 -3
  57. package/datepicker/calendar.scss +6 -6
  58. package/datepicker/datepicker-content.scss +4 -4
  59. package/datepicker/datepicker-toggle.scss +2 -2
  60. package/divider/_divider-theme.scss +1 -1
  61. package/divider/divider.scss +6 -6
  62. package/dl/_dl-theme.scss +2 -2
  63. package/dl/dl.scss +4 -4
  64. package/dropdown/_dropdown-theme.scss +7 -7
  65. package/dropdown/dropdown-item.scss +2 -2
  66. package/dropdown/dropdown.scss +5 -5
  67. package/empty-state/_empty-state-theme.scss +4 -4
  68. package/empty-state/empty-state.scss +18 -20
  69. package/esm2022/accordion/accordion-content.mjs +19 -0
  70. package/esm2022/accordion/accordion-header.mjs +19 -0
  71. package/esm2022/accordion/accordion-item.mjs +25 -0
  72. package/esm2022/accordion/accordion-trigger.component.mjs +60 -0
  73. package/esm2022/accordion/accordion.component.mjs +40 -0
  74. package/esm2022/accordion/accordion.module.mjs +44 -0
  75. package/esm2022/accordion/index.mjs +2 -0
  76. package/esm2022/accordion/koobiq-components-accordion.mjs +5 -0
  77. package/esm2022/accordion/public-api.mjs +7 -0
  78. package/esm2022/alert/alert.component.mjs +2 -2
  79. package/esm2022/autocomplete/autocomplete.component.mjs +2 -2
  80. package/esm2022/badge/badge.component.mjs +2 -2
  81. package/esm2022/button/button.component.mjs +2 -2
  82. package/esm2022/button/button.dropdown-trigger.directive.mjs +28 -0
  83. package/esm2022/button/button.module.mjs +10 -5
  84. package/esm2022/button/public-api.mjs +2 -1
  85. package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
  86. package/esm2022/checkbox/checkbox.mjs +2 -2
  87. package/esm2022/code-block/actionbar.component.mjs +2 -2
  88. package/esm2022/code-block/code-block.component.mjs +2 -2
  89. package/esm2022/core/option/action.mjs +7 -10
  90. package/esm2022/core/option/optgroup.mjs +2 -2
  91. package/esm2022/core/option/option.mjs +2 -2
  92. package/esm2022/core/pop-up/pop-up-trigger.mjs +12 -12
  93. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +2 -2
  94. package/esm2022/core/version.mjs +2 -2
  95. package/esm2022/datepicker/calendar-body.component.mjs +2 -2
  96. package/esm2022/datepicker/calendar-header.component.mjs +2 -2
  97. package/esm2022/datepicker/calendar.component.mjs +2 -2
  98. package/esm2022/datepicker/datepicker-toggle.component.mjs +2 -2
  99. package/esm2022/datepicker/datepicker.component.mjs +3 -3
  100. package/esm2022/divider/divider.component.mjs +2 -2
  101. package/esm2022/dl/dl.component.mjs +2 -2
  102. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  103. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  104. package/esm2022/empty-state/empty-state.component.mjs +2 -2
  105. package/esm2022/file-upload/multiple-file-upload.component.mjs +2 -2
  106. package/esm2022/file-upload/single-file-upload.component.mjs +2 -2
  107. package/esm2022/form-field/cleaner.mjs +2 -2
  108. package/esm2022/form-field/form-field.mjs +9 -10
  109. package/esm2022/form-field/hint.mjs +2 -2
  110. package/esm2022/form-field/password-hint.mjs +2 -2
  111. package/esm2022/form-field/password-toggle.mjs +2 -2
  112. package/esm2022/form-field/stepper.mjs +2 -2
  113. package/esm2022/icon/icon-button.component.mjs +2 -2
  114. package/esm2022/icon/icon-item.component.mjs +2 -2
  115. package/esm2022/icon/icon.component.mjs +2 -2
  116. package/esm2022/list/list-selection.component.mjs +10 -14
  117. package/esm2022/list/list.component.mjs +2 -2
  118. package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
  119. package/esm2022/markdown/markdown.component.mjs +2 -2
  120. package/esm2022/modal/modal.component.mjs +5 -7
  121. package/esm2022/navbar/navbar-item.component.mjs +8 -11
  122. package/esm2022/navbar/navbar.component.mjs +14 -15
  123. package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
  124. package/esm2022/popover/popover-confirm.component.mjs +5 -5
  125. package/esm2022/popover/popover.component.mjs +3 -3
  126. package/esm2022/progress-bar/progress-bar.component.mjs +2 -2
  127. package/esm2022/progress-spinner/progress-spinner.component.mjs +2 -2
  128. package/esm2022/radio/radio.component.mjs +2 -2
  129. package/esm2022/risk-level/risk-level.component.mjs +2 -2
  130. package/esm2022/scrollbar/scrollbar.component.mjs +3 -3
  131. package/esm2022/select/select.component.mjs +17 -16
  132. package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
  133. package/esm2022/splitter/splitter.component.mjs +3 -3
  134. package/esm2022/table/table.component.mjs +2 -2
  135. package/esm2022/tabs/paginated-tab-header.mjs +10 -12
  136. package/esm2022/tabs/tab-group.component.mjs +2 -2
  137. package/esm2022/tabs/tab-header.component.mjs +2 -2
  138. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +2 -2
  139. package/esm2022/tags/tag-list.component.mjs +11 -13
  140. package/esm2022/tags/tag.component.mjs +2 -2
  141. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  142. package/esm2022/timezone/timezone-select.component.mjs +2 -2
  143. package/esm2022/toast/toast-container.component.mjs +2 -2
  144. package/esm2022/toast/toast.component.mjs +7 -8
  145. package/esm2022/toggle/toggle.component.mjs +3 -3
  146. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  147. package/esm2022/tree/padding.directive.mjs +3 -9
  148. package/esm2022/tree/toggle.mjs +2 -2
  149. package/esm2022/tree/tree-base.mjs +5 -8
  150. package/esm2022/tree/tree-option.component.mjs +2 -2
  151. package/esm2022/tree/tree-selection.component.mjs +12 -15
  152. package/esm2022/tree/tree.mjs +2 -2
  153. package/esm2022/tree-select/tree-select.component.mjs +15 -15
  154. package/fesm2022/koobiq-components-accordion.mjs +189 -0
  155. package/fesm2022/koobiq-components-accordion.mjs.map +1 -0
  156. package/fesm2022/koobiq-components-alert.mjs +2 -2
  157. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-autocomplete.mjs +2 -2
  159. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-badge.mjs +2 -2
  161. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-button-toggle.mjs +2 -2
  163. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-button.mjs +38 -8
  165. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  167. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-code-block.mjs +4 -4
  169. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  170. package/fesm2022/koobiq-components-core.mjs +22 -23
  171. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-datepicker.mjs +10 -10
  173. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-divider.mjs +2 -2
  175. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-dl.mjs +2 -2
  177. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-dropdown.mjs +4 -4
  179. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-empty-state.mjs +2 -2
  181. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-file-upload.mjs +4 -4
  183. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-form-field.mjs +18 -19
  185. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-icon.mjs +6 -6
  187. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-list.mjs +11 -15
  189. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  191. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-markdown.mjs +2 -2
  193. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-modal.mjs +4 -6
  195. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-navbar.mjs +19 -24
  197. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-popover.mjs +7 -7
  199. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
  201. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  202. package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
  203. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  204. package/fesm2022/koobiq-components-radio.mjs +2 -2
  205. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  206. package/fesm2022/koobiq-components-risk-level.mjs +2 -2
  207. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  208. package/fesm2022/koobiq-components-scrollbar.mjs +2 -2
  209. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  210. package/fesm2022/koobiq-components-select.mjs +17 -16
  211. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  212. package/fesm2022/koobiq-components-sidepanel.mjs +2 -2
  213. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  214. package/fesm2022/koobiq-components-splitter.mjs +2 -2
  215. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  216. package/fesm2022/koobiq-components-table.mjs +2 -2
  217. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  218. package/fesm2022/koobiq-components-tabs.mjs +15 -17
  219. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  220. package/fesm2022/koobiq-components-tags.mjs +11 -13
  221. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  222. package/fesm2022/koobiq-components-timezone.mjs +4 -4
  223. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  224. package/fesm2022/koobiq-components-toast.mjs +8 -9
  225. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  226. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  227. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  228. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  229. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  230. package/fesm2022/koobiq-components-tree-select.mjs +14 -14
  231. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  232. package/fesm2022/koobiq-components-tree.mjs +21 -32
  233. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  234. package/file-upload/_file-upload-theme.scss +27 -29
  235. package/file-upload/multiple-file-upload.component.scss +26 -26
  236. package/file-upload/single-file-upload.component.scss +8 -8
  237. package/form-field/_form-field-theme.scss +14 -14
  238. package/form-field/_hint-theme.scss +2 -2
  239. package/form-field/cleaner.scss +2 -2
  240. package/form-field/form-field.d.ts +1 -1
  241. package/form-field/form-field.scss +10 -10
  242. package/form-field/hint.scss +4 -4
  243. package/form-field/password-toggle.scss +2 -2
  244. package/form-field/stepper.scss +3 -3
  245. package/icon/_icon-button-theme.scss +26 -26
  246. package/icon/_icon-item-theme.scss +2 -2
  247. package/icon/_icon-theme.scss +6 -6
  248. package/icon/icon-button.scss +2 -4
  249. package/icon/icon-item.scss +2 -4
  250. package/input/input.scss +2 -2
  251. package/link/_link-theme.scss +11 -11
  252. package/list/_list-theme.scss +6 -6
  253. package/list/list-selection.component.d.ts +2 -4
  254. package/list/list.scss +1 -1
  255. package/loader-overlay/_loader-overlay-theme.scss +6 -6
  256. package/loader-overlay/loader-overlay.scss +8 -8
  257. package/markdown/_markdown-theme.scss +27 -27
  258. package/markdown/markdown-tokens.scss +17 -17
  259. package/markdown/markdown.scss +29 -29
  260. package/modal/_modal-confirm.scss +1 -1
  261. package/modal/_modal-theme.scss +9 -12
  262. package/modal/modal.scss +12 -13
  263. package/navbar/_navbar-item_horizontal.scss +20 -20
  264. package/navbar/_navbar-item_vertical.scss +28 -28
  265. package/navbar/_navbar-theme.scss +8 -8
  266. package/navbar/navbar-brand.scss +23 -23
  267. package/navbar/navbar-divider.scss +3 -3
  268. package/navbar/navbar-item.component.d.ts +2 -3
  269. package/navbar/navbar-item.scss +6 -6
  270. package/navbar/navbar.component.d.ts +7 -5
  271. package/navbar/navbar.scss +1 -1
  272. package/navbar/vertical-navbar.scss +2 -2
  273. package/package.json +14 -7
  274. package/popover/_popover-theme.scss +7 -7
  275. package/popover/popover.scss +17 -18
  276. package/prebuilt-themes/dark-theme.css +1 -1
  277. package/prebuilt-themes/light-theme.css +1 -1
  278. package/prebuilt-themes/theme.css +1 -1
  279. package/progress-bar/_progress-bar-theme.scss +4 -4
  280. package/progress-bar/progress-bar.scss +5 -5
  281. package/progress-spinner/_progress-spinner-theme.scss +3 -3
  282. package/progress-spinner/progress-spinner.scss +7 -7
  283. package/radio/_radio-theme.scss +9 -9
  284. package/radio/radio.scss +14 -14
  285. package/risk-level/_risk-level-theme.scss +5 -5
  286. package/risk-level/risk-level.component.scss +3 -3
  287. package/schematics/ng-add/index.js +23 -6
  288. package/scrollbar/_scrollbar-component-theme.scss +12 -12
  289. package/scrollbar/scrollbar.component.scss +6 -6
  290. package/select/_select-theme.scss +9 -9
  291. package/select/select.component.d.ts +1 -2
  292. package/select/select.scss +2 -2
  293. package/sidepanel/_sidepanel-theme.scss +4 -4
  294. package/sidepanel/sidepanel.scss +14 -16
  295. package/splitter/_splitter-theme.scss +1 -1
  296. package/table/_table-theme.scss +5 -5
  297. package/table/table.scss +12 -12
  298. package/tabs/_tabs-common.scss +3 -3
  299. package/tabs/_tabs-theme.scss +13 -13
  300. package/tabs/paginated-tab-header.d.ts +1 -3
  301. package/tabs/tab-group.scss +1 -1
  302. package/tabs/tab-header.scss +3 -2
  303. package/tabs/tab-nav-bar/tab-nav-bar.scss +1 -1
  304. package/tags/_tag-theme.scss +5 -5
  305. package/tags/tag-list.component.d.ts +1 -2
  306. package/tags/tag-list.scss +5 -5
  307. package/tags/tag.scss +4 -4
  308. package/textarea/textarea.scss +2 -2
  309. package/timepicker/timepicker.scss +1 -1
  310. package/timezone/_timezone-option-theme.scss +3 -3
  311. package/timezone/timezone-option.component.scss +4 -4
  312. package/timezone/timezone-select.component.scss +1 -1
  313. package/toast/_toast-theme.scss +4 -4
  314. package/toast/toast-container.component.scss +3 -3
  315. package/toast/toast.component.d.ts +0 -1
  316. package/toast/toast.component.scss +21 -21
  317. package/toggle/_toggle-theme.scss +8 -8
  318. package/toggle/toggle.scss +8 -8
  319. package/tooltip/_tooltip-theme.scss +5 -5
  320. package/tooltip/tooltip.scss +7 -7
  321. package/tree/_tree-theme.scss +6 -6
  322. package/tree/padding.directive.d.ts +2 -4
  323. package/tree/toggle.scss +2 -2
  324. package/tree/tree-base.d.ts +2 -3
  325. package/tree/tree-option.scss +4 -4
  326. package/tree/tree-selection.component.d.ts +2 -4
  327. package/tree-select/_tree-select-theme.scss +7 -7
  328. package/tree-select/tree-select.component.d.ts +1 -2
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, EventEmitter, isDevMode, ElementRef, TemplateRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Self, Inject, ViewChild, ContentChild, ViewChildren, ContentChildren, Input, Output, NgModule } from '@angular/core';
2
+ import { Directive, EventEmitter, inject, DestroyRef, isDevMode, ElementRef, TemplateRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Self, Inject, ViewChild, ContentChild, ViewChildren, ContentChildren, Input, Output, NgModule } from '@angular/core';
3
3
  import * as i1 from '@koobiq/components/core';
4
4
  import { mixinTabIndex, mixinDisabled, mixinErrorState, getKbqSelectDynamicMultipleError, getKbqSelectNonFunctionValueError, getKbqSelectNonArrayValueError, KbqVirtualOption, SELECT_PANEL_PADDING_X, SELECT_PANEL_INDENT_PADDING_X, SELECT_PANEL_VIEWPORT_PADDING, KBQ_SELECT_SCROLL_STRATEGY, KBQ_LOCALE_SERVICE, KBQ_OPTION_PARENT_COMPONENT, KbqSelectFooter, KbqSelectTrigger, KbqSelectMatcher, KbqSelectSearch, KbqOption, KbqOptgroup, kbqSelectAnimations, KbqOptionModule, KbqSelectSearchEmptyResult, KBQ_SELECT_SCROLL_STRATEGY_PROVIDER } from '@koobiq/components/core';
5
5
  import { KbqTooltipTrigger, KbqToolTipModule } from '@koobiq/components/tooltip';
@@ -9,6 +9,7 @@ import { SelectionModel } from '@angular/cdk/collections';
9
9
  import * as i2 from '@angular/cdk/overlay';
10
10
  import { CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
11
11
  import { CdkVirtualForOf } from '@angular/cdk/scrolling';
12
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
12
13
  import * as i4 from '@angular/forms';
13
14
  import { ActiveDescendantKeyManager } from '@koobiq/cdk/a11y';
14
15
  import { DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE, ESCAPE, TAB, HOME, END, PAGE_UP, PAGE_DOWN, A, BACKSPACE, DELETE } from '@koobiq/cdk/keycodes';
@@ -18,7 +19,7 @@ import * as i7 from '@koobiq/components/tags';
18
19
  import { KbqTag, KbqTagsModule } from '@koobiq/components/tags';
19
20
  import { SelectSizeMultipleContentGap } from '@koobiq/design-tokens';
20
21
  import { Subject, defer, merge, Subscription, BehaviorSubject } from 'rxjs';
21
- import { switchMap, take, filter, map, distinctUntilChanged, takeUntil, startWith, delay } from 'rxjs/operators';
22
+ import { switchMap, take, filter, map, distinctUntilChanged, startWith, delay, takeUntil } from 'rxjs/operators';
22
23
  import * as i6 from '@koobiq/components/icon';
23
24
  import { KbqIconModule } from '@koobiq/components/icon';
24
25
  import * as i8 from '@angular/common';
@@ -314,8 +315,7 @@ class KbqSelect extends KbqSelectMixinBase {
314
315
  /** Unique id for this input. */
315
316
  this.uid = `kbq-select-${nextUniqueId++}`;
316
317
  this.visibleChanges = new BehaviorSubject(false);
317
- /** Emits whenever the component is destroyed. */
318
- this.destroy = new Subject();
318
+ this.destroyRef = inject(DestroyRef);
319
319
  /** `View -> model callback called when value changes` */
320
320
  this.onChange = () => { };
321
321
  /** `View -> model callback called when select has been touched` */
@@ -341,7 +341,9 @@ class KbqSelect extends KbqSelectMixinBase {
341
341
  // We need `distinctUntilChanged` here, because some browsers will
342
342
  // fire the animation end event twice for the same animation. See:
343
343
  // https://github.com/angular/angular/issues/24084
344
- this.panelDoneAnimatingStream.pipe(distinctUntilChanged(), takeUntil(this.destroy)).subscribe(() => {
344
+ this.panelDoneAnimatingStream
345
+ .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))
346
+ .subscribe(() => {
345
347
  if (this.panelOpen) {
346
348
  this.scrollTop = 0;
347
349
  if (this.search) {
@@ -355,17 +357,17 @@ class KbqSelect extends KbqSelectMixinBase {
355
357
  }
356
358
  });
357
359
  merge(this.optionSelectionChanges, this.visibleChanges)
358
- .pipe(distinctUntilChanged(), takeUntil(this.destroy))
360
+ .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))
359
361
  .subscribe(() => setTimeout(() => this.calculateHiddenItems(), 0));
360
362
  }
361
363
  ngAfterContentInit() {
362
364
  this.withVirtualScroll = !!this.cdkVirtualForOf;
363
365
  this.initKeyManager();
364
- this.selectionModel.changed.pipe(takeUntil(this.destroy)).subscribe((event) => {
366
+ this.selectionModel.changed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {
365
367
  event.added.forEach((option) => option.select());
366
368
  event.removed.forEach((option) => option.deselect());
367
369
  });
368
- this.options.changes.pipe(startWith(null), takeUntil(this.destroy)).subscribe(() => {
370
+ this.options.changes.pipe(startWith(null), takeUntilDestroyed(this.destroyRef)).subscribe(() => {
369
371
  this.resetOptions();
370
372
  this.initializeSelection();
371
373
  });
@@ -389,8 +391,6 @@ class KbqSelect extends KbqSelectMixinBase {
389
391
  }
390
392
  }
391
393
  ngOnDestroy() {
392
- this.destroy.next();
393
- this.destroy.complete();
394
394
  this.stateChanges.complete();
395
395
  this.closeSubscription.unsubscribe();
396
396
  }
@@ -814,7 +814,7 @@ class KbqSelect extends KbqSelectMixinBase {
814
814
  .withTypeAhead(typeAheadDebounce, this.search ? -1 : 0)
815
815
  .withVerticalOrientation()
816
816
  .withHorizontalOrientation(this.isRtl() ? 'rtl' : 'ltr');
817
- this.keyManager.change.pipe(takeUntil(this.destroy)).subscribe(() => {
817
+ this.keyManager.change.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
818
818
  if (this.panelOpen && this.panel) {
819
819
  this.scrollActiveOptionIntoView();
820
820
  }
@@ -825,8 +825,9 @@ class KbqSelect extends KbqSelectMixinBase {
825
825
  }
826
826
  /** Drops current option subscriptions and IDs and resets from scratch. */
827
827
  resetOptions() {
828
- const changedOrDestroyed = merge(this.options.changes, this.destroy);
829
- this.optionSelectionChanges.pipe(takeUntil(changedOrDestroyed)).subscribe((event) => {
828
+ this.optionSelectionChanges
829
+ .pipe(takeUntilDestroyed(this.destroyRef), takeUntil(this.options.changes))
830
+ .subscribe((event) => {
830
831
  this.onSelect(event.source, event.isUserInput);
831
832
  if (this.search && this.search.isSearchChanged) {
832
833
  Promise.resolve().then(() => this.keyManager.updateActiveItem(0));
@@ -840,7 +841,7 @@ class KbqSelect extends KbqSelectMixinBase {
840
841
  // Listen to changes in the internal state of the options and react accordingly.
841
842
  // Handles cases like the labels of the selected options changing.
842
843
  merge(...this.options.map((option) => option.stateChanges))
843
- .pipe(takeUntil(changedOrDestroyed))
844
+ .pipe(takeUntilDestroyed(this.destroyRef), takeUntil(this.options.changes))
844
845
  .subscribe(() => {
845
846
  this._changeDetectorRef.markForCheck();
846
847
  this.stateChanges.next();
@@ -1028,7 +1029,7 @@ class KbqSelect extends KbqSelectMixinBase {
1028
1029
  /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqSelect, selector: "kbq-select", inputs: { disabled: "disabled", tabIndex: "tabIndex", hiddenItemsText: "hiddenItemsText", panelClass: "panelClass", backdropClass: "backdropClass", errorStateMatcher: "errorStateMatcher", sortComparator: "sortComparator", hasBackdrop: "hasBackdrop", placeholder: "placeholder", required: "required", multiple: "multiple", compareWith: "compareWith", value: "value", id: "id", hiddenItemsTextFormatter: "hiddenItemsTextFormatter" }, outputs: { openedChange: "openedChange", openedStream: "opened", closedStream: "closed", selectionChange: "selectionChange", valueChange: "valueChange" }, host: { listeners: { "click": "toggle()", "keydown": "handleKeydown($event)", "focus": "onFocus()", "blur": "onBlur()", "window:resize": "calculateHiddenItems()" }, properties: { "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null", "class.kbq-disabled": "disabled", "class.kbq-invalid": "errorState" }, classAttribute: "kbq-select" }, providers: [
1029
1030
  { provide: KbqFormFieldControl, useExisting: KbqSelect },
1030
1031
  { provide: KBQ_OPTION_PARENT_COMPONENT, useExisting: KbqSelect }
1031
- ], queries: [{ propertyName: "footer", first: true, predicate: KbqSelectFooter, descendants: true, read: ElementRef }, { propertyName: "cdkVirtualForOf", first: true, predicate: CdkVirtualForOf, descendants: true }, { propertyName: "customTrigger", first: true, predicate: KbqSelectTrigger, descendants: true }, { propertyName: "customMatcher", first: true, predicate: KbqSelectMatcher, descendants: true }, { propertyName: "customTagTemplateRef", first: true, predicate: ["kbqSelectTagContent"], descendants: true, read: TemplateRef }, { propertyName: "cleaner", first: true, predicate: ["kbqSelectCleaner"], descendants: true, static: true }, { propertyName: "search", first: true, predicate: KbqSelectSearch, descendants: true }, { propertyName: "options", predicate: KbqOption, descendants: true }, { propertyName: "optionGroups", predicate: KbqOptgroup }], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "optionsContainer", first: true, predicate: ["optionsContainer"], descendants: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "tags", predicate: KbqTag, descendants: true }], exportAs: ["kbqSelect"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n #origin=\"cdkOverlayOrigin\"\n #trigger\n cdk-overlay-origin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n <select\n class=\"cdk-visually-hidden\"\n [id]=\"id\"\n ></select>\n\n @if (!!customMatcher) {\n <ng-content select=\"kbq-select-matcher, [kbq-select-matcher]\" />\n } @else {\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n }\n @if (!empty) {\n <span>\n @if (!!customTrigger) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiple) {\n <div class=\"kbq-select__match-list\">\n @if (!customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [class.kbq-error]=\"errorState\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n >\n {{ option.viewValue }}\n @if (!option.disabled && !disabled) {\n <i\n kbq-icon=\"kbq-xmark-s_16\"\n kbqTagRemove\n (click)=\"onRemoveMatcherItem(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n }\n @if (customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"$any(customTagTemplateRef)\"\n [ngTemplateOutletContext]=\"{ $implicit: option, select: this }\"\n />\n }\n }\n </div>\n } @else {\n <span class=\"kbq-select__matcher-text\">\n {{ triggerValue }}\n </span>\n }\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n }\n </span>\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i\n kbq-icon=\"kbq-chevron-down-s_16\"\n class=\"kbq-select__arrow\"\n [color]=\"'contrast-fade'\"\n ></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayPanelClass]=\"'kbq-select-overlay'\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n class=\"kbq-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content kbq-scrollbar\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n [@fadeInContent]=\"'showing'\"\n >\n @if (isEmptySearchResult) {\n <div class=\"kbq-select__no-options-message\">\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n </div>\n }\n <ng-content />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-select-footer]\" />\n </div>\n</ng-template>\n", styles: [".kbq-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.kbq-select .kbq-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;white-space:nowrap}.kbq-select .kbq-select__matcher>span{flex:1;overflow:hidden}.kbq-select .kbq-select__trigger{display:flex;box-sizing:border-box;position:relative;cursor:pointer;height:calc(var(--kbq-form-field-size-height, 32px) - var(--kbq-form-field-size-border-width, 1px) * 2)}.kbq-select .kbq-select__trigger.kbq-select__trigger_single .kbq-select__matcher,.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple.kbq-select__trigger_empty .kbq-select__matcher{padding:calc(var(--kbq-select-size-single-padding-vertical, 6px) - var(--kbq-form-field-size-border-width, 1px)) calc(var(--kbq-select-size-single-padding-right, 4px) - var(--kbq-form-field-size-border-width, 1px)) calc(var(--kbq-select-size-single-padding-vertical, 6px) - var(--kbq-form-field-size-border-width, 1px)) calc(var(--kbq-select-size-single-padding-left, 12px) - var(--kbq-form-field-size-border-width, 1px))}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher{padding:calc(var(--kbq-select-size-multiple-padding-vertical, 4px) - var(--kbq-form-field-size-border-width, 1px)) calc(var(--kbq-select-size-multiple-padding-right, 4px) - var(--kbq-form-field-size-border-width, 1px)) calc(var(--kbq-select-size-multiple-padding-vertical, 4px) - var(--kbq-form-field-size-border-width, 1px)) calc(var(--kbq-select-size-multiple-padding-left, 4px) - var(--kbq-form-field-size-border-width, 1px))}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-container{display:flex}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;height:calc(var(--kbq-form-field-size-height, 32px) - var(--kbq-select-size-multiple-padding-vertical, 4px) * 2);max-height:calc(var(--kbq-form-field-size-height, 32px) - var(--kbq-select-size-multiple-padding-vertical, 4px) * 2);gap:var(--kbq-select-size-multiple-content-gap, 4px);margin-right:var(--kbq-select-size-multiple-content-gap, 4px)}.kbq-select .kbq-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.kbq-select .kbq-select__match-container .kbq-select__match-hidden-text{flex:0 0 70px;align-self:center;padding-left:4px;padding-right:var(--kbq-select-size-multiple-content-gap, 4px);text-align:right}.kbq-select .kbq-select__arrow-wrapper{display:flex;align-self:center;padding:4px}.kbq-form-field-appearance-fill .kbq-select .kbq-select__arrow-wrapper,.kbq-form-field-appearance-standard .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-50%)}.kbq-form-field-appearance-outline .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-25%)}.kbq-disabled.kbq-select .kbq-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-select__panel{min-width:100%;overflow:hidden;border-radius:var(--kbq-select-panel-size-border-radius, 8px)}.kbq-select__panel .kbq-optgroup-label,.kbq-select__panel .kbq-option{font-size:inherit}.kbq-select__panel .kbq-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--kbq-option-size-height, 32px);cursor:default;outline:none;padding-left:var(--kbq-option-size-horizontal-padding, 12px);padding-right:var(--kbq-option-size-horizontal-padding, 12px);border:var(--kbq-option-size-border-width, 2px) solid transparent}.kbq-select__panel .kbq-select__search-container{border-bottom-width:1px;border-bottom-style:solid}.kbq-select__content{max-height:var(--kbq-select-panel-size-max-height, 256px);padding:4px 0;overflow:hidden auto}.kbq-select__panel .kbq-select__footer{display:flex;align-items:center;box-sizing:border-box;min-height:40px;border-top-width:1px;border-top-style:solid;padding:var(--kbq-size-xxs, 4px) var(--kbq-size-m, 12px)}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport{min-height:var(--kbq-select-panel-size-max-height, 256px);max-height:var(--kbq-select-panel-size-max-height, 256px)}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{max-width:100%}.kbq-form-field-type-select:not(.kbq-disabled) .kbq-form-field-flex{cursor:pointer}.kbq-select{color:var(--kbq-foreground-contrast, )}.kbq-select.ng-invalid{color:var(--kbq-error-default, )}.kbq-select.kbq-disabled{color:var(--kbq-foreground-text-disabled, )}.kbq-select__placeholder{text-overflow:ellipsis;color:var(--kbq-foreground-text-disabled, )}.kbq-select__panel{box-shadow:var(--kbq-select-panel-dropdown-shadow, );background:var(--kbq-select-panel-dropdown-background, )}.kbq-select__panel .kbq-select__footer{border-color:var(--kbq-divider-color, )}.kbq-select__search-container{border-bottom-color:var(--kbq-divider-color, )}.kbq-select__no-options-message{color:var(--kbq-foreground-text-less-contrast, )}.kbq-select{font-size:var(--kbq-select-font-default-font-size, 14px);font-weight:var(--kbq-select-font-default-font-weight, normal);line-height:var(--kbq-select-font-default-line-height, 20px);font-family:var(--kbq-select-font-default-font-family, Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif);text-transform:var(--kbq-select-font-default-text-transform, );font-feature-settings:var(--kbq-select-font-default-font-feature-settings, \"calt\", \"kern\", \"liga\", \"ss01\", \"ss04\");letter-spacing:var(--kbq-select-font-default-letter-spacing, -.006em)}.kbq-select__panel{font-size:var(--kbq-select-panel-font-default-font-size, 14px);font-weight:var(--kbq-select-panel-font-default-font-weight, normal);line-height:var(--kbq-select-panel-font-default-line-height, 20px);font-family:var(--kbq-select-panel-font-default-font-family, Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif);text-transform:var(--kbq-select-panel-font-default-text-transform, );font-feature-settings:var(--kbq-select-panel-font-default-font-feature-settings, \"calt\", \"kern\", \"liga\", \"ss01\", \"ss04\");letter-spacing:var(--kbq-select-panel-font-default-letter-spacing, -.006em)}\n", ".kbq-select,.kbq-select__panel{--kbq-option-size-horizontal-padding: var(--kbq-size-m);--kbq-option-size-height: var(--kbq-size-3xl);--kbq-option-size-border-width: 2px;--kbq-select-size-single-padding-left: var(--kbq-size-m);--kbq-select-size-single-padding-right: var(--kbq-size-xxs);--kbq-select-size-single-padding-vertical: var(--kbq-size-xs);--kbq-select-size-single-content-gap: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-left: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-right: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-vertical: var(--kbq-size-xxs);--kbq-select-size-multiple-content-gap: var(--kbq-size-xxs);--kbq-select-font-default-font-size: var(--kbq-typography-text-normal-font-size);--kbq-select-font-default-line-height: var(--kbq-typography-text-normal-line-height);--kbq-select-font-default-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-select-font-default-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-select-font-default-font-family: var(--kbq-typography-text-normal-font-family);--kbq-select-font-default-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-select-font-default-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings);--kbq-select-panel-size-border-radius: var(--kbq-size-s);--kbq-select-panel-size-max-height: 256px;--kbq-select-panel-font-default-font-size: var(--kbq-typography-text-normal-font-size);--kbq-select-panel-font-default-line-height: var(--kbq-typography-text-normal-line-height);--kbq-select-panel-font-default-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-select-panel-font-default-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-select-panel-font-default-font-family: var(--kbq-typography-text-normal-font-family);--kbq-select-panel-font-default-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-select-panel-font-default-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings)}:where(.kbq-light,.theme-light,.kbq-theme-light){--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}:where(.kbq-dark,.theme-dark,.kbq-theme-dark){--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"], dependencies: [{ kind: "directive", type: i2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i6.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "component", type: i7.KbqTag, selector: "kbq-tag, [kbq-tag], kbq-basic-tag, [kbq-basic-tag]", inputs: ["color", "selected", "value", "selectable", "removable", "tabindex", "disabled"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["kbqTag"] }, { kind: "directive", type: i7.KbqTagRemove, selector: "[kbqTagRemove]" }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
1032
+ ], queries: [{ propertyName: "footer", first: true, predicate: KbqSelectFooter, descendants: true, read: ElementRef }, { propertyName: "cdkVirtualForOf", first: true, predicate: CdkVirtualForOf, descendants: true }, { propertyName: "customTrigger", first: true, predicate: KbqSelectTrigger, descendants: true }, { propertyName: "customMatcher", first: true, predicate: KbqSelectMatcher, descendants: true }, { propertyName: "customTagTemplateRef", first: true, predicate: ["kbqSelectTagContent"], descendants: true, read: TemplateRef }, { propertyName: "cleaner", first: true, predicate: ["kbqSelectCleaner"], descendants: true, static: true }, { propertyName: "search", first: true, predicate: KbqSelectSearch, descendants: true }, { propertyName: "options", predicate: KbqOption, descendants: true }, { propertyName: "optionGroups", predicate: KbqOptgroup }], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "optionsContainer", first: true, predicate: ["optionsContainer"], descendants: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "tags", predicate: KbqTag, descendants: true }], exportAs: ["kbqSelect"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n #origin=\"cdkOverlayOrigin\"\n #trigger\n cdk-overlay-origin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n <select\n class=\"cdk-visually-hidden\"\n [id]=\"id\"\n ></select>\n\n @if (!!customMatcher) {\n <ng-content select=\"kbq-select-matcher, [kbq-select-matcher]\" />\n } @else {\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n }\n @if (!empty) {\n <span>\n @if (!!customTrigger) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiple) {\n <div class=\"kbq-select__match-list\">\n @if (!customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [class.kbq-error]=\"errorState\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n >\n {{ option.viewValue }}\n @if (!option.disabled && !disabled) {\n <i\n kbq-icon=\"kbq-xmark-s_16\"\n kbqTagRemove\n (click)=\"onRemoveMatcherItem(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n }\n @if (customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"$any(customTagTemplateRef)\"\n [ngTemplateOutletContext]=\"{ $implicit: option, select: this }\"\n />\n }\n }\n </div>\n } @else {\n <span class=\"kbq-select__matcher-text\">\n {{ triggerValue }}\n </span>\n }\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n }\n </span>\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i\n kbq-icon=\"kbq-chevron-down-s_16\"\n class=\"kbq-select__arrow\"\n [color]=\"'contrast-fade'\"\n ></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayPanelClass]=\"'kbq-select-overlay'\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n class=\"kbq-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content kbq-scrollbar\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n [@fadeInContent]=\"'showing'\"\n >\n @if (isEmptySearchResult) {\n <div class=\"kbq-select__no-options-message\">\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n </div>\n }\n <ng-content />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-select-footer]\" />\n </div>\n</ng-template>\n", styles: [".kbq-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.kbq-select .kbq-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;white-space:nowrap}.kbq-select .kbq-select__matcher>span{flex:1;overflow:hidden}.kbq-select .kbq-select__trigger{display:flex;box-sizing:border-box;position:relative;cursor:pointer;height:calc(var(--kbq-form-field-size-height) - var(--kbq-form-field-size-border-width) * 2)}.kbq-select .kbq-select__trigger.kbq-select__trigger_single .kbq-select__matcher,.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple.kbq-select__trigger_empty .kbq-select__matcher{padding:calc(var(--kbq-select-size-single-padding-vertical) - var(--kbq-form-field-size-border-width)) calc(var(--kbq-select-size-single-padding-right) - var(--kbq-form-field-size-border-width)) calc(var(--kbq-select-size-single-padding-vertical) - var(--kbq-form-field-size-border-width)) calc(var(--kbq-select-size-single-padding-left) - var(--kbq-form-field-size-border-width))}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher{padding:calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-form-field-size-border-width)) calc(var(--kbq-select-size-multiple-padding-right) - var(--kbq-form-field-size-border-width)) calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-form-field-size-border-width)) calc(var(--kbq-select-size-multiple-padding-left) - var(--kbq-form-field-size-border-width))}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-container{display:flex}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;height:calc(var(--kbq-form-field-size-height) - var(--kbq-select-size-multiple-padding-vertical) * 2);max-height:calc(var(--kbq-form-field-size-height) - var(--kbq-select-size-multiple-padding-vertical) * 2);gap:var(--kbq-select-size-multiple-content-gap);margin-right:var(--kbq-select-size-multiple-content-gap)}.kbq-select .kbq-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.kbq-select .kbq-select__match-container .kbq-select__match-hidden-text{flex:0 0 70px;align-self:center;padding-left:4px;padding-right:var(--kbq-select-size-multiple-content-gap);text-align:right}.kbq-select .kbq-select__arrow-wrapper{display:flex;align-self:center;padding:4px}.kbq-form-field-appearance-fill .kbq-select .kbq-select__arrow-wrapper,.kbq-form-field-appearance-standard .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-50%)}.kbq-form-field-appearance-outline .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-25%)}.kbq-disabled.kbq-select .kbq-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-select__panel{min-width:100%;overflow:hidden;border-radius:var(--kbq-select-panel-size-border-radius)}.kbq-select__panel .kbq-optgroup-label,.kbq-select__panel .kbq-option{font-size:inherit}.kbq-select__panel .kbq-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--kbq-option-size-height);cursor:default;outline:none;padding-left:var(--kbq-option-size-horizontal-padding);padding-right:var(--kbq-option-size-horizontal-padding);border:var(--kbq-option-size-border-width) solid transparent}.kbq-select__panel .kbq-select__search-container{border-bottom-width:1px;border-bottom-style:solid}.kbq-select__content{max-height:var(--kbq-select-panel-size-max-height);padding:4px 0;overflow:hidden auto}.kbq-select__panel .kbq-select__footer{display:flex;align-items:center;box-sizing:border-box;min-height:40px;border-top-width:1px;border-top-style:solid;padding:var(--kbq-size-xxs) var(--kbq-size-m)}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport{min-height:var(--kbq-select-panel-size-max-height);max-height:var(--kbq-select-panel-size-max-height)}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{max-width:100%}.kbq-form-field-type-select:not(.kbq-disabled) .kbq-form-field-flex{cursor:pointer}.kbq-select{color:var(--kbq-foreground-contrast)}.kbq-select.ng-invalid{color:var(--kbq-error-default)}.kbq-select.kbq-disabled{color:var(--kbq-foreground-text-disabled)}.kbq-select__placeholder{text-overflow:ellipsis;color:var(--kbq-foreground-text-disabled)}.kbq-select__panel{box-shadow:var(--kbq-select-panel-dropdown-shadow);background:var(--kbq-select-panel-dropdown-background)}.kbq-select__panel .kbq-select__footer{border-color:var(--kbq-divider-color)}.kbq-select__search-container{border-bottom-color:var(--kbq-divider-color)}.kbq-select__no-options-message{color:var(--kbq-foreground-text-less-contrast)}.kbq-select{font-size:var(--kbq-select-font-default-font-size);font-weight:var(--kbq-select-font-default-font-weight);line-height:var(--kbq-select-font-default-line-height);font-family:var(--kbq-select-font-default-font-family);text-transform:var(--kbq-select-font-default-text-transform);font-feature-settings:var(--kbq-select-font-default-font-feature-settings);letter-spacing:var(--kbq-select-font-default-letter-spacing)}.kbq-select__panel{font-size:var(--kbq-select-panel-font-default-font-size);font-weight:var(--kbq-select-panel-font-default-font-weight);line-height:var(--kbq-select-panel-font-default-line-height);font-family:var(--kbq-select-panel-font-default-font-family);text-transform:var(--kbq-select-panel-font-default-text-transform);font-feature-settings:var(--kbq-select-panel-font-default-font-feature-settings);letter-spacing:var(--kbq-select-panel-font-default-letter-spacing)}\n", ".kbq-select,.kbq-select__panel{--kbq-option-size-horizontal-padding: var(--kbq-size-m);--kbq-option-size-height: var(--kbq-size-3xl);--kbq-option-size-border-width: 2px;--kbq-select-size-single-padding-left: var(--kbq-size-m);--kbq-select-size-single-padding-right: var(--kbq-size-xxs);--kbq-select-size-single-padding-vertical: var(--kbq-size-xs);--kbq-select-size-single-content-gap: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-left: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-right: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-vertical: var(--kbq-size-xxs);--kbq-select-size-multiple-content-gap: var(--kbq-size-xxs);--kbq-select-font-default-font-size: var(--kbq-typography-text-normal-font-size);--kbq-select-font-default-line-height: var(--kbq-typography-text-normal-line-height);--kbq-select-font-default-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-select-font-default-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-select-font-default-font-family: var(--kbq-typography-text-normal-font-family);--kbq-select-font-default-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-select-font-default-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings);--kbq-select-panel-size-border-radius: var(--kbq-size-s);--kbq-select-panel-size-max-height: 256px;--kbq-select-panel-font-default-font-size: var(--kbq-typography-text-normal-font-size);--kbq-select-panel-font-default-line-height: var(--kbq-typography-text-normal-line-height);--kbq-select-panel-font-default-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-select-panel-font-default-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-select-panel-font-default-font-family: var(--kbq-typography-text-normal-font-family);--kbq-select-panel-font-default-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-select-panel-font-default-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings)}:where(.kbq-light,.theme-light,.kbq-theme-light){--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}:where(.kbq-dark,.theme-dark,.kbq-theme-dark){--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"], dependencies: [{ kind: "directive", type: i2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i6.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "component", type: i7.KbqTag, selector: "kbq-tag, [kbq-tag], kbq-basic-tag, [kbq-basic-tag]", inputs: ["color", "selected", "value", "selectable", "removable", "tabindex", "disabled"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["kbqTag"] }, { kind: "directive", type: i7.KbqTagRemove, selector: "[kbqTagRemove]" }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
1032
1033
  kbqSelectAnimations.transformPanel,
1033
1034
  kbqSelectAnimations.fadeInContent
1034
1035
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
@@ -1052,7 +1053,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
1052
1053
  ], providers: [
1053
1054
  { provide: KbqFormFieldControl, useExisting: KbqSelect },
1054
1055
  { provide: KBQ_OPTION_PARENT_COMPONENT, useExisting: KbqSelect }
1055
- ], template: "<div\n #origin=\"cdkOverlayOrigin\"\n #trigger\n cdk-overlay-origin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n <select\n class=\"cdk-visually-hidden\"\n [id]=\"id\"\n ></select>\n\n @if (!!customMatcher) {\n <ng-content select=\"kbq-select-matcher, [kbq-select-matcher]\" />\n } @else {\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n }\n @if (!empty) {\n <span>\n @if (!!customTrigger) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiple) {\n <div class=\"kbq-select__match-list\">\n @if (!customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [class.kbq-error]=\"errorState\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n >\n {{ option.viewValue }}\n @if (!option.disabled && !disabled) {\n <i\n kbq-icon=\"kbq-xmark-s_16\"\n kbqTagRemove\n (click)=\"onRemoveMatcherItem(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n }\n @if (customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"$any(customTagTemplateRef)\"\n [ngTemplateOutletContext]=\"{ $implicit: option, select: this }\"\n />\n }\n }\n </div>\n } @else {\n <span class=\"kbq-select__matcher-text\">\n {{ triggerValue }}\n </span>\n }\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n }\n </span>\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i\n kbq-icon=\"kbq-chevron-down-s_16\"\n class=\"kbq-select__arrow\"\n [color]=\"'contrast-fade'\"\n ></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayPanelClass]=\"'kbq-select-overlay'\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n class=\"kbq-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content kbq-scrollbar\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n [@fadeInContent]=\"'showing'\"\n >\n @if (isEmptySearchResult) {\n <div class=\"kbq-select__no-options-message\">\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n </div>\n }\n <ng-content />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-select-footer]\" />\n </div>\n</ng-template>\n", styles: [".kbq-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.kbq-select .kbq-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;white-space:nowrap}.kbq-select .kbq-select__matcher>span{flex:1;overflow:hidden}.kbq-select .kbq-select__trigger{display:flex;box-sizing:border-box;position:relative;cursor:pointer;height:calc(var(--kbq-form-field-size-height, 32px) - var(--kbq-form-field-size-border-width, 1px) * 2)}.kbq-select .kbq-select__trigger.kbq-select__trigger_single .kbq-select__matcher,.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple.kbq-select__trigger_empty .kbq-select__matcher{padding:calc(var(--kbq-select-size-single-padding-vertical, 6px) - var(--kbq-form-field-size-border-width, 1px)) calc(var(--kbq-select-size-single-padding-right, 4px) - var(--kbq-form-field-size-border-width, 1px)) calc(var(--kbq-select-size-single-padding-vertical, 6px) - var(--kbq-form-field-size-border-width, 1px)) calc(var(--kbq-select-size-single-padding-left, 12px) - var(--kbq-form-field-size-border-width, 1px))}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher{padding:calc(var(--kbq-select-size-multiple-padding-vertical, 4px) - var(--kbq-form-field-size-border-width, 1px)) calc(var(--kbq-select-size-multiple-padding-right, 4px) - var(--kbq-form-field-size-border-width, 1px)) calc(var(--kbq-select-size-multiple-padding-vertical, 4px) - var(--kbq-form-field-size-border-width, 1px)) calc(var(--kbq-select-size-multiple-padding-left, 4px) - var(--kbq-form-field-size-border-width, 1px))}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-container{display:flex}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;height:calc(var(--kbq-form-field-size-height, 32px) - var(--kbq-select-size-multiple-padding-vertical, 4px) * 2);max-height:calc(var(--kbq-form-field-size-height, 32px) - var(--kbq-select-size-multiple-padding-vertical, 4px) * 2);gap:var(--kbq-select-size-multiple-content-gap, 4px);margin-right:var(--kbq-select-size-multiple-content-gap, 4px)}.kbq-select .kbq-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.kbq-select .kbq-select__match-container .kbq-select__match-hidden-text{flex:0 0 70px;align-self:center;padding-left:4px;padding-right:var(--kbq-select-size-multiple-content-gap, 4px);text-align:right}.kbq-select .kbq-select__arrow-wrapper{display:flex;align-self:center;padding:4px}.kbq-form-field-appearance-fill .kbq-select .kbq-select__arrow-wrapper,.kbq-form-field-appearance-standard .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-50%)}.kbq-form-field-appearance-outline .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-25%)}.kbq-disabled.kbq-select .kbq-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-select__panel{min-width:100%;overflow:hidden;border-radius:var(--kbq-select-panel-size-border-radius, 8px)}.kbq-select__panel .kbq-optgroup-label,.kbq-select__panel .kbq-option{font-size:inherit}.kbq-select__panel .kbq-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--kbq-option-size-height, 32px);cursor:default;outline:none;padding-left:var(--kbq-option-size-horizontal-padding, 12px);padding-right:var(--kbq-option-size-horizontal-padding, 12px);border:var(--kbq-option-size-border-width, 2px) solid transparent}.kbq-select__panel .kbq-select__search-container{border-bottom-width:1px;border-bottom-style:solid}.kbq-select__content{max-height:var(--kbq-select-panel-size-max-height, 256px);padding:4px 0;overflow:hidden auto}.kbq-select__panel .kbq-select__footer{display:flex;align-items:center;box-sizing:border-box;min-height:40px;border-top-width:1px;border-top-style:solid;padding:var(--kbq-size-xxs, 4px) var(--kbq-size-m, 12px)}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport{min-height:var(--kbq-select-panel-size-max-height, 256px);max-height:var(--kbq-select-panel-size-max-height, 256px)}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{max-width:100%}.kbq-form-field-type-select:not(.kbq-disabled) .kbq-form-field-flex{cursor:pointer}.kbq-select{color:var(--kbq-foreground-contrast, )}.kbq-select.ng-invalid{color:var(--kbq-error-default, )}.kbq-select.kbq-disabled{color:var(--kbq-foreground-text-disabled, )}.kbq-select__placeholder{text-overflow:ellipsis;color:var(--kbq-foreground-text-disabled, )}.kbq-select__panel{box-shadow:var(--kbq-select-panel-dropdown-shadow, );background:var(--kbq-select-panel-dropdown-background, )}.kbq-select__panel .kbq-select__footer{border-color:var(--kbq-divider-color, )}.kbq-select__search-container{border-bottom-color:var(--kbq-divider-color, )}.kbq-select__no-options-message{color:var(--kbq-foreground-text-less-contrast, )}.kbq-select{font-size:var(--kbq-select-font-default-font-size, 14px);font-weight:var(--kbq-select-font-default-font-weight, normal);line-height:var(--kbq-select-font-default-line-height, 20px);font-family:var(--kbq-select-font-default-font-family, Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif);text-transform:var(--kbq-select-font-default-text-transform, );font-feature-settings:var(--kbq-select-font-default-font-feature-settings, \"calt\", \"kern\", \"liga\", \"ss01\", \"ss04\");letter-spacing:var(--kbq-select-font-default-letter-spacing, -.006em)}.kbq-select__panel{font-size:var(--kbq-select-panel-font-default-font-size, 14px);font-weight:var(--kbq-select-panel-font-default-font-weight, normal);line-height:var(--kbq-select-panel-font-default-line-height, 20px);font-family:var(--kbq-select-panel-font-default-font-family, Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif);text-transform:var(--kbq-select-panel-font-default-text-transform, );font-feature-settings:var(--kbq-select-panel-font-default-font-feature-settings, \"calt\", \"kern\", \"liga\", \"ss01\", \"ss04\");letter-spacing:var(--kbq-select-panel-font-default-letter-spacing, -.006em)}\n", ".kbq-select,.kbq-select__panel{--kbq-option-size-horizontal-padding: var(--kbq-size-m);--kbq-option-size-height: var(--kbq-size-3xl);--kbq-option-size-border-width: 2px;--kbq-select-size-single-padding-left: var(--kbq-size-m);--kbq-select-size-single-padding-right: var(--kbq-size-xxs);--kbq-select-size-single-padding-vertical: var(--kbq-size-xs);--kbq-select-size-single-content-gap: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-left: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-right: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-vertical: var(--kbq-size-xxs);--kbq-select-size-multiple-content-gap: var(--kbq-size-xxs);--kbq-select-font-default-font-size: var(--kbq-typography-text-normal-font-size);--kbq-select-font-default-line-height: var(--kbq-typography-text-normal-line-height);--kbq-select-font-default-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-select-font-default-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-select-font-default-font-family: var(--kbq-typography-text-normal-font-family);--kbq-select-font-default-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-select-font-default-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings);--kbq-select-panel-size-border-radius: var(--kbq-size-s);--kbq-select-panel-size-max-height: 256px;--kbq-select-panel-font-default-font-size: var(--kbq-typography-text-normal-font-size);--kbq-select-panel-font-default-line-height: var(--kbq-typography-text-normal-line-height);--kbq-select-panel-font-default-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-select-panel-font-default-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-select-panel-font-default-font-family: var(--kbq-typography-text-normal-font-family);--kbq-select-panel-font-default-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-select-panel-font-default-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings)}:where(.kbq-light,.theme-light,.kbq-theme-light){--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}:where(.kbq-dark,.theme-dark,.kbq-theme-dark){--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"] }]
1056
+ ], template: "<div\n #origin=\"cdkOverlayOrigin\"\n #trigger\n cdk-overlay-origin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n <select\n class=\"cdk-visually-hidden\"\n [id]=\"id\"\n ></select>\n\n @if (!!customMatcher) {\n <ng-content select=\"kbq-select-matcher, [kbq-select-matcher]\" />\n } @else {\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n }\n @if (!empty) {\n <span>\n @if (!!customTrigger) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiple) {\n <div class=\"kbq-select__match-list\">\n @if (!customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [class.kbq-error]=\"errorState\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n >\n {{ option.viewValue }}\n @if (!option.disabled && !disabled) {\n <i\n kbq-icon=\"kbq-xmark-s_16\"\n kbqTagRemove\n (click)=\"onRemoveMatcherItem(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n }\n @if (customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"$any(customTagTemplateRef)\"\n [ngTemplateOutletContext]=\"{ $implicit: option, select: this }\"\n />\n }\n }\n </div>\n } @else {\n <span class=\"kbq-select__matcher-text\">\n {{ triggerValue }}\n </span>\n }\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n }\n </span>\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i\n kbq-icon=\"kbq-chevron-down-s_16\"\n class=\"kbq-select__arrow\"\n [color]=\"'contrast-fade'\"\n ></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayPanelClass]=\"'kbq-select-overlay'\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n class=\"kbq-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content kbq-scrollbar\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n [@fadeInContent]=\"'showing'\"\n >\n @if (isEmptySearchResult) {\n <div class=\"kbq-select__no-options-message\">\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n </div>\n }\n <ng-content />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-select-footer]\" />\n </div>\n</ng-template>\n", styles: [".kbq-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.kbq-select .kbq-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;white-space:nowrap}.kbq-select .kbq-select__matcher>span{flex:1;overflow:hidden}.kbq-select .kbq-select__trigger{display:flex;box-sizing:border-box;position:relative;cursor:pointer;height:calc(var(--kbq-form-field-size-height) - var(--kbq-form-field-size-border-width) * 2)}.kbq-select .kbq-select__trigger.kbq-select__trigger_single .kbq-select__matcher,.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple.kbq-select__trigger_empty .kbq-select__matcher{padding:calc(var(--kbq-select-size-single-padding-vertical) - var(--kbq-form-field-size-border-width)) calc(var(--kbq-select-size-single-padding-right) - var(--kbq-form-field-size-border-width)) calc(var(--kbq-select-size-single-padding-vertical) - var(--kbq-form-field-size-border-width)) calc(var(--kbq-select-size-single-padding-left) - var(--kbq-form-field-size-border-width))}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher{padding:calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-form-field-size-border-width)) calc(var(--kbq-select-size-multiple-padding-right) - var(--kbq-form-field-size-border-width)) calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-form-field-size-border-width)) calc(var(--kbq-select-size-multiple-padding-left) - var(--kbq-form-field-size-border-width))}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-container{display:flex}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;height:calc(var(--kbq-form-field-size-height) - var(--kbq-select-size-multiple-padding-vertical) * 2);max-height:calc(var(--kbq-form-field-size-height) - var(--kbq-select-size-multiple-padding-vertical) * 2);gap:var(--kbq-select-size-multiple-content-gap);margin-right:var(--kbq-select-size-multiple-content-gap)}.kbq-select .kbq-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.kbq-select .kbq-select__match-container .kbq-select__match-hidden-text{flex:0 0 70px;align-self:center;padding-left:4px;padding-right:var(--kbq-select-size-multiple-content-gap);text-align:right}.kbq-select .kbq-select__arrow-wrapper{display:flex;align-self:center;padding:4px}.kbq-form-field-appearance-fill .kbq-select .kbq-select__arrow-wrapper,.kbq-form-field-appearance-standard .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-50%)}.kbq-form-field-appearance-outline .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-25%)}.kbq-disabled.kbq-select .kbq-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-select__panel{min-width:100%;overflow:hidden;border-radius:var(--kbq-select-panel-size-border-radius)}.kbq-select__panel .kbq-optgroup-label,.kbq-select__panel .kbq-option{font-size:inherit}.kbq-select__panel .kbq-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--kbq-option-size-height);cursor:default;outline:none;padding-left:var(--kbq-option-size-horizontal-padding);padding-right:var(--kbq-option-size-horizontal-padding);border:var(--kbq-option-size-border-width) solid transparent}.kbq-select__panel .kbq-select__search-container{border-bottom-width:1px;border-bottom-style:solid}.kbq-select__content{max-height:var(--kbq-select-panel-size-max-height);padding:4px 0;overflow:hidden auto}.kbq-select__panel .kbq-select__footer{display:flex;align-items:center;box-sizing:border-box;min-height:40px;border-top-width:1px;border-top-style:solid;padding:var(--kbq-size-xxs) var(--kbq-size-m)}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport{min-height:var(--kbq-select-panel-size-max-height);max-height:var(--kbq-select-panel-size-max-height)}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{max-width:100%}.kbq-form-field-type-select:not(.kbq-disabled) .kbq-form-field-flex{cursor:pointer}.kbq-select{color:var(--kbq-foreground-contrast)}.kbq-select.ng-invalid{color:var(--kbq-error-default)}.kbq-select.kbq-disabled{color:var(--kbq-foreground-text-disabled)}.kbq-select__placeholder{text-overflow:ellipsis;color:var(--kbq-foreground-text-disabled)}.kbq-select__panel{box-shadow:var(--kbq-select-panel-dropdown-shadow);background:var(--kbq-select-panel-dropdown-background)}.kbq-select__panel .kbq-select__footer{border-color:var(--kbq-divider-color)}.kbq-select__search-container{border-bottom-color:var(--kbq-divider-color)}.kbq-select__no-options-message{color:var(--kbq-foreground-text-less-contrast)}.kbq-select{font-size:var(--kbq-select-font-default-font-size);font-weight:var(--kbq-select-font-default-font-weight);line-height:var(--kbq-select-font-default-line-height);font-family:var(--kbq-select-font-default-font-family);text-transform:var(--kbq-select-font-default-text-transform);font-feature-settings:var(--kbq-select-font-default-font-feature-settings);letter-spacing:var(--kbq-select-font-default-letter-spacing)}.kbq-select__panel{font-size:var(--kbq-select-panel-font-default-font-size);font-weight:var(--kbq-select-panel-font-default-font-weight);line-height:var(--kbq-select-panel-font-default-line-height);font-family:var(--kbq-select-panel-font-default-font-family);text-transform:var(--kbq-select-panel-font-default-text-transform);font-feature-settings:var(--kbq-select-panel-font-default-font-feature-settings);letter-spacing:var(--kbq-select-panel-font-default-letter-spacing)}\n", ".kbq-select,.kbq-select__panel{--kbq-option-size-horizontal-padding: var(--kbq-size-m);--kbq-option-size-height: var(--kbq-size-3xl);--kbq-option-size-border-width: 2px;--kbq-select-size-single-padding-left: var(--kbq-size-m);--kbq-select-size-single-padding-right: var(--kbq-size-xxs);--kbq-select-size-single-padding-vertical: var(--kbq-size-xs);--kbq-select-size-single-content-gap: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-left: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-right: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-vertical: var(--kbq-size-xxs);--kbq-select-size-multiple-content-gap: var(--kbq-size-xxs);--kbq-select-font-default-font-size: var(--kbq-typography-text-normal-font-size);--kbq-select-font-default-line-height: var(--kbq-typography-text-normal-line-height);--kbq-select-font-default-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-select-font-default-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-select-font-default-font-family: var(--kbq-typography-text-normal-font-family);--kbq-select-font-default-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-select-font-default-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings);--kbq-select-panel-size-border-radius: var(--kbq-size-s);--kbq-select-panel-size-max-height: 256px;--kbq-select-panel-font-default-font-size: var(--kbq-typography-text-normal-font-size);--kbq-select-panel-font-default-line-height: var(--kbq-typography-text-normal-line-height);--kbq-select-panel-font-default-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-select-panel-font-default-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-select-panel-font-default-font-family: var(--kbq-typography-text-normal-font-family);--kbq-select-panel-font-default-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-select-panel-font-default-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings)}:where(.kbq-light,.theme-light,.kbq-theme-light){--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}:where(.kbq-dark,.theme-dark,.kbq-theme-dark){--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"] }]
1056
1057
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.ErrorStateMatcher }, { type: i0.ElementRef }, { type: i2.OverlayContainer }, { type: i3.Directionality, decorators: [{
1057
1058
  type: Optional
1058
1059
  }] }, { type: i4.NgForm, decorators: [{