@koobiq/components 20.0.0 → 20.2.0

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 (231) hide show
  1. package/accordion/_accordion-theme.scss +1 -1
  2. package/accordion/accordion-tokens.scss +1 -0
  3. package/accordion/{accordion-trigger.component.scss → accordion-trigger.scss} +4 -18
  4. package/accordion/{accordion.component.scss → accordion.scss} +12 -5
  5. package/accordion/index.d.ts +215 -119
  6. package/actions-panel/index.d.ts +1 -0
  7. package/alert/_alert-theme.scss +14 -4
  8. package/alert/alert-tokens.scss +4 -4
  9. package/alert/alert.component.scss +24 -13
  10. package/alert/index.d.ts +63 -29
  11. package/app-switcher/app-switcher-dropdown-app.scss +2 -0
  12. package/autocomplete/autocomplete.scss +2 -1
  13. package/autocomplete/index.d.ts +35 -29
  14. package/badge/index.d.ts +2 -3
  15. package/breadcrumbs/breadcrumbs.scss +4 -0
  16. package/breadcrumbs/index.d.ts +2 -1
  17. package/button/button-group.scss +42 -2
  18. package/button-toggle/button-toggle.scss +23 -0
  19. package/button-toggle/index.d.ts +3 -1
  20. package/checkbox/checkbox.scss +5 -4
  21. package/clamped-text/index.d.ts +4 -2
  22. package/core/index.d.ts +515 -21
  23. package/core/styles/_core.scss +2 -0
  24. package/core/styles/common/_animation.scss +35 -24
  25. package/core/styles/common/_connected-overlay.scss +36 -0
  26. package/core/styles/common/_select.scss +7 -2
  27. package/core/styles/theming/_components-theming.scss +1 -1
  28. package/core/styles/theming/_scrollbar-theme.scss +4 -0
  29. package/datepicker/_datepicker-theme.scss +1 -1
  30. package/datepicker/datepicker-toggle.scss +3 -3
  31. package/dl/index.d.ts +1 -0
  32. package/dropdown/dropdown-item.scss +16 -0
  33. package/dropdown/dropdown-tokens.scss +2 -1
  34. package/dropdown/dropdown.scss +11 -2
  35. package/dropdown/index.d.ts +73 -6
  36. package/fesm2022/koobiq-components-accordion.mjs +406 -303
  37. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  38. package/fesm2022/koobiq-components-actions-panel.mjs +15 -6
  39. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  40. package/fesm2022/koobiq-components-alert.mjs +88 -48
  41. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  42. package/fesm2022/koobiq-components-app-switcher.mjs +7 -7
  43. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  44. package/fesm2022/koobiq-components-autocomplete.mjs +37 -23
  45. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  46. package/fesm2022/koobiq-components-badge.mjs +5 -4
  47. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  48. package/fesm2022/koobiq-components-breadcrumbs.mjs +6 -4
  49. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  50. package/fesm2022/koobiq-components-button-toggle.mjs +9 -6
  51. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  52. package/fesm2022/koobiq-components-button.mjs +4 -4
  53. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  54. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  55. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  56. package/fesm2022/koobiq-components-clamped-text.mjs +9 -0
  57. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-code-block.mjs +5 -1
  59. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  60. package/fesm2022/koobiq-components-core.mjs +544 -113
  61. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  62. package/fesm2022/koobiq-components-datepicker.mjs +13 -10
  63. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  64. package/fesm2022/koobiq-components-dl.mjs +3 -2
  65. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  66. package/fesm2022/koobiq-components-dropdown.mjs +105 -31
  67. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  68. package/fesm2022/koobiq-components-file-upload.mjs +33 -22
  69. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-filter-bar.mjs +1169 -782
  71. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-flag.mjs +66 -0
  73. package/fesm2022/koobiq-components-flag.mjs.map +1 -0
  74. package/fesm2022/koobiq-components-form-field.mjs +6 -6
  75. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-icon.mjs +16 -7
  77. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-inline-edit.mjs +30 -7
  79. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-list.mjs +39 -20
  81. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  83. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-modal.mjs +9 -5
  85. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-navbar.mjs +123 -27
  87. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-notification-center.mjs +193 -19
  89. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-overflow-items.mjs +12 -4
  91. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-popover.mjs +9 -4
  93. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
  95. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
  97. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-radio.mjs +3 -7
  99. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-search-expandable.mjs +43 -8
  101. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-select.mjs +72 -59
  103. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-sidebar.mjs +4 -0
  105. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-sidepanel.mjs +3 -3
  107. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-skeleton.mjs +2 -2
  109. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-split-button.mjs +5 -12
  111. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-splitter.mjs +6 -2
  113. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-table.mjs +8 -6
  115. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-tabs.mjs +42 -18
  117. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-tags.mjs +8 -1
  119. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-textarea.mjs +7 -14
  121. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-time-range.mjs +4 -4
  123. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-timepicker.mjs +3 -4
  125. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  126. package/fesm2022/koobiq-components-timezone.mjs +9 -5
  127. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-title.mjs +132 -14
  129. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-toast.mjs +1 -1
  131. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  133. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-tooltip.mjs +168 -8
  135. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-tree-select.mjs +79 -38
  137. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-tree.mjs +67 -41
  139. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-username.mjs +16 -3
  141. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  142. package/file-upload/file-upload-tokens.scss +1 -0
  143. package/file-upload/index.d.ts +10 -7
  144. package/filter-bar/_filter-bar-theme.scss +82 -0
  145. package/filter-bar/filter-bar-tokens.scss +9 -0
  146. package/filter-bar/filter-bar.scss +10 -4
  147. package/filter-bar/filter-refresher.scss +1 -1
  148. package/filter-bar/filters.scss +25 -20
  149. package/filter-bar/index.d.ts +764 -336
  150. package/filter-bar/pipes/base-pipe.scss +12 -44
  151. package/filter-bar/pipes/pipe-date.scss +20 -14
  152. package/filter-bar/pipes/pipe-input.scss +10 -0
  153. package/filter-bar/pipes/pipe-multi-tree-select.scss +5 -3
  154. package/filter-bar/pipes/pipe-multiselect.scss +5 -3
  155. package/filter-bar/pipes/pipe-readonly.scss +4 -13
  156. package/filter-bar/pipes/pipe-select.scss +3 -1
  157. package/filter-bar/pipes/pipe-tree-select.scss +3 -1
  158. package/flag/flag.scss +53 -0
  159. package/flag/index.d.ts +44 -0
  160. package/icon/icon-button.scss +3 -1
  161. package/icon/icon-item-tokens.scss +1 -1
  162. package/icon/index.d.ts +15 -2
  163. package/inline-edit/index.d.ts +5 -0
  164. package/inline-edit/inline-edit.scss +7 -7
  165. package/link/link-tokens.scss +2 -2
  166. package/list/index.d.ts +11 -2
  167. package/loader-overlay/loader-overlay-tokens.scss +1 -1
  168. package/modal/_modal-animation.scss +6 -6
  169. package/modal/_modal-theme.scss +5 -0
  170. package/modal/index.d.ts +3 -1
  171. package/modal/modal.scss +15 -0
  172. package/navbar/_navbar-item_vertical.scss +7 -5
  173. package/navbar/index.d.ts +39 -4
  174. package/navbar/navbar-brand.scss +17 -7
  175. package/navbar/navbar-item.scss +9 -0
  176. package/notification-center/_notification-center-theme.scss +2 -1
  177. package/notification-center/index.d.ts +89 -3
  178. package/notification-center/notification-center.scss +42 -4
  179. package/notification-center/notification-item.scss +3 -2
  180. package/overflow-items/index.d.ts +1 -0
  181. package/package.json +7 -3
  182. package/prebuilt-themes/dark-theme.css +1 -1
  183. package/prebuilt-themes/light-theme.css +1 -1
  184. package/prebuilt-themes/theme.css +1 -1
  185. package/progress-bar/progress-bar.scss +4 -0
  186. package/progress-spinner/progress-spinner.scss +5 -1
  187. package/radio/index.d.ts +1 -5
  188. package/radio/radio.scss +18 -4
  189. package/schematics/collection.json +15 -0
  190. package/schematics/migrations/alert-signals/README.md +64 -0
  191. package/schematics/migrations/alert-signals/data.js +70 -0
  192. package/schematics/migrations/alert-signals/index.js +350 -0
  193. package/schematics/migrations/alert-signals/schema.json +20 -0
  194. package/schematics/migrations/autocomplete-panel-width-auto/README.md +68 -0
  195. package/schematics/migrations/autocomplete-panel-width-auto/index.js +70 -0
  196. package/schematics/migrations/autocomplete-panel-width-auto/schema.json +15 -0
  197. package/schematics/migrations/filter-bar-signals/README.md +66 -0
  198. package/schematics/migrations/filter-bar-signals/data.js +72 -0
  199. package/schematics/migrations/filter-bar-signals/index.js +316 -0
  200. package/schematics/migrations/filter-bar-signals/schema.json +20 -0
  201. package/schematics/migrations.json +15 -0
  202. package/schematics/ng-add/index.js +1 -1
  203. package/schematics/utils/angular-parsing.js +11 -2
  204. package/search-expandable/index.d.ts +3 -0
  205. package/select/index.d.ts +59 -24
  206. package/sidebar/index.d.ts +1 -0
  207. package/skeleton/skeleton.scss +4 -0
  208. package/split-button/_split-button-theme.scss +2 -2
  209. package/splitter/_splitter-theme.scss +2 -2
  210. package/splitter/index.d.ts +1 -0
  211. package/table/_table-theme.scss +4 -0
  212. package/table/index.d.ts +3 -2
  213. package/tabs/_tabs-common.scss +60 -31
  214. package/tabs/_tabs-theme.scss +12 -0
  215. package/tabs/index.d.ts +4 -2
  216. package/tabs/tab-header.scss +15 -0
  217. package/tabs/tab-nav-bar.scss +4 -0
  218. package/tabs/tabs-tokens.scss +2 -1
  219. package/textarea/index.d.ts +0 -1
  220. package/time-range/time-range.scss +0 -8
  221. package/timepicker/timepicker.scss +2 -2
  222. package/timezone/index.d.ts +2 -3
  223. package/title/index.d.ts +92 -2
  224. package/tooltip/index.d.ts +124 -7
  225. package/tree/_tree-theme.scss +2 -7
  226. package/tree/index.d.ts +19 -4
  227. package/tree/toggle.scss +5 -0
  228. package/tree/tree-option.scss +0 -4
  229. package/tree-select/_tree-select-theme.scss +1 -1
  230. package/tree-select/index.d.ts +53 -22
  231. package/username/index.d.ts +20 -2
@@ -9,7 +9,7 @@ import * as i0 from '@angular/core';
9
9
  import { InjectionToken, inject, ElementRef, ChangeDetectorRef, NgZone, Renderer2, viewChild, contentChild, TemplateRef, EventEmitter, output, input, booleanAttribute, numberAttribute, DestroyRef, afterNextRender, Input, Output, ViewChildren, ViewChild, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
10
10
  import { outputToObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
11
11
  import { NgForm, FormGroupDirective, NgControl } from '@angular/forms';
12
- import { KbqAbstractSelect, getKbqSelectDynamicMultipleError, KbqComponentColors, ErrorStateMatcher, KBQ_SELECT_SCROLL_STRATEGY, KBQ_LOCALE_SERVICE, defaultOffsetY, KbqSelectTrigger, KbqSelectMatcher, KbqSelectSearch, KBQ_WINDOW, MultipleMode, DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE, ESCAPE, TAB, HOME, END, PAGE_UP, PAGE_DOWN, isSelectAll, hasModifierKey, isUndefined, getKbqSelectNonArrayValueError, kbqSelectAnimations, KBQ_PARENT_POPUP, KbqSelectFooter, KbqSelectSearchEmptyResult, KbqPseudoCheckboxModule, KBQ_SELECT_SCROLL_STRATEGY_PROVIDER } from '@koobiq/components/core';
12
+ import { KbqAbstractSelect, getKbqSelectDynamicMultipleError, isInput, shouldSelectSearchText, KbqSelectAllEvent, KbqComponentColors, ErrorStateMatcher, KBQ_SELECT_SCROLL_STRATEGY, KBQ_LOCALE_SERVICE, defaultOffsetY, KBQ_CONNECTED_OVERLAY_BELOW_CLASS, KBQ_CONNECTED_OVERLAY_ABOVE_CLASS, KbqSelectTrigger, KbqSelectMatcher, KbqSelectSearch, KBQ_PANEL_DEFAULT_MIN_WIDTH, KBQ_WINDOW, MultipleMode, DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE, ESCAPE, TAB, HOME, END, PAGE_UP, PAGE_DOWN, isSelectAll, hasModifierKey, isUndefined, getKbqSelectNonArrayValueError, kbqSelectAnimations, KBQ_PARENT_POPUP, KbqSelectFooter, KbqSelectSearchEmptyResult, KbqPseudoCheckboxModule, KBQ_SELECT_SCROLL_STRATEGY_PROVIDER } from '@koobiq/components/core';
13
13
  import { KbqFormField, KbqFormFieldControl, KbqFormFieldModule } from '@koobiq/components/form-field';
14
14
  import * as i1 from '@koobiq/components/icon';
15
15
  import { KbqIconModule } from '@koobiq/components/icon';
@@ -147,8 +147,20 @@ class KbqTreeSelect extends KbqAbstractSelect {
147
147
  }
148
148
  /** Function for handling the combination Ctrl + A (select all). By default, the internal handler is used. */
149
149
  _selectAllHandler(event, select) {
150
+ const searchInput = isInput(event) ? event.target : null;
151
+ if (shouldSelectSearchText(searchInput)) {
152
+ searchInput.select();
153
+ event.preventDefault();
154
+ return;
155
+ }
150
156
  event.preventDefault();
151
- select.tree().selectAllOptions();
157
+ const tree = select.tree();
158
+ tree.selectAllOptions(select.selectAllToggle());
159
+ const options = tree.renderedOptions.filter((option) => !option.disabled && option.selectable());
160
+ // `selected` per the KbqSelectAllEvent contract: `true` only when every selectable option is
161
+ // now selected, `false` otherwise (deselected or partial); guarded for the empty-options case.
162
+ const selected = options.length > 0 && options.every((option) => tree.selectionModel.isSelected(option.data));
163
+ select.onSelectAll.emit(new KbqSelectAllEvent(select, options, selected));
152
164
  }
153
165
  /** Whether the select is focused. */
154
166
  get focused() {
@@ -226,11 +238,20 @@ class KbqTreeSelect extends KbqAbstractSelect {
226
238
  /** Strategy that will be used to handle scrolling while the select panel is open. */
227
239
  this.scrollStrategy = this.scrollStrategyFactory();
228
240
  /**
229
- * The y-offset of the overlay panel in relation to the trigger's top start corner.
230
- * This must be adjusted to align the selected option text over the trigger text.
231
- * when the panel opens. Will change based on the y-position of the selected option.
241
+ * The y-offset of the overlay panel in relation to the trigger.
242
+ *
243
+ * @deprecated noop. The trigger↔panel gap is now controlled by the `--kbq-connected-overlay-gap` CSS
244
+ * variable (transparent padding inside the pane via the `kbq-connected-overlay_below/_above` panel
245
+ * classes), not by a physical overlay offset — so setting this has no effect. Will be removed in 21.0.0.
246
+ */
247
+ this.offsetY = 0;
248
+ /**
249
+ * Minimum space to keep between the overlay and the viewport edge.
250
+ * At least `defaultOffsetY` so CDK's fit check — which runs before the `kbq-connected-overlay_below/_above`
251
+ * gap padding is applied to the pane — stays conservative enough to absorb that padding instead of
252
+ * letting the panel overflow the viewport by the size of the gap.
232
253
  */
233
- this.offsetY = defaultOffsetY;
254
+ this.viewportMargin = defaultOffsetY;
234
255
  /**
235
256
  * This position config ensures that the top "start" corner of the overlay
236
257
  * is aligned with with the top "start" of the origin by default (overlapping
@@ -243,21 +264,22 @@ class KbqTreeSelect extends KbqAbstractSelect {
243
264
  originY: 'bottom',
244
265
  overlayX: 'start',
245
266
  overlayY: 'top',
246
- offsetY: this.offsetY
267
+ panelClass: KBQ_CONNECTED_OVERLAY_BELOW_CLASS
247
268
  },
248
269
  {
249
270
  originX: 'start',
250
271
  originY: 'top',
251
272
  overlayX: 'start',
252
273
  overlayY: 'bottom',
253
- offsetY: -this.offsetY
274
+ panelClass: KBQ_CONNECTED_OVERLAY_ABOVE_CLASS
254
275
  }
255
276
  ];
256
277
  /**
257
278
  * Trigger - is a clickable field to open select dropdown panel
258
279
  */
259
280
  this.trigger = viewChild.required('trigger');
260
- this.panel = viewChild.required('panel');
281
+ /** Reference to the overlay panel element. */
282
+ this.panel = viewChild('panel', ...(ngDevMode ? [{ debugName: "panel" }] : []));
261
283
  this.cleaner = contentChild('kbqSelectCleaner', ...(ngDevMode ? [{ debugName: "cleaner" }] : []));
262
284
  /** User-supplied override of the trigger element. */
263
285
  this.customTrigger = contentChild(KbqSelectTrigger, ...(ngDevMode ? [{ debugName: "customTrigger" }] : []));
@@ -276,6 +298,11 @@ class KbqTreeSelect extends KbqAbstractSelect {
276
298
  this.closedStream = this.openedChange.pipe(filter((o) => !o), map(() => { }));
277
299
  /** Event emitted when the selected value has been changed by the user. */
278
300
  this.selectionChange = output();
301
+ /**
302
+ * Event emitted when all options are selected or deselected via the Ctrl/Cmd + A shortcut.
303
+ * Not emitted when a custom `selectAllHandler` is supplied — the handler owns the behaviour then.
304
+ */
305
+ this.onSelectAll = output();
279
306
  /**
280
307
  * Event that emits whenever the raw value of the select changes. This is here primarily
281
308
  * to facilitate the two-way binding for the `value` input.
@@ -311,6 +338,8 @@ class KbqTreeSelect extends KbqAbstractSelect {
311
338
  this._required = false;
312
339
  this._multiple = false;
313
340
  this._autoSelect = true;
341
+ /** When `true`, a repeated Ctrl/Cmd+A deselects all options. Off by default (Ctrl+A only selects). */
342
+ this.selectAllToggle = input(false, ...(ngDevMode ? [{ debugName: "selectAllToggle", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
314
343
  this._hasBackdrop = false;
315
344
  this._tabIndex = 0;
316
345
  this._disabled = false;
@@ -319,12 +348,21 @@ class KbqTreeSelect extends KbqAbstractSelect {
319
348
  * Minimum width of the panel.
320
349
  * If minWidth is larger than window width, it will be ignored.
321
350
  */
322
- this.panelMinWidth = input(this.defaultOptions?.panelMinWidth ?? 200, ...(ngDevMode ? [{ debugName: "panelMinWidth", transform: numberAttribute }] : [{ transform: numberAttribute }]));
351
+ this.panelMinWidth = input(this.defaultOptions?.panelMinWidth === undefined
352
+ ? KBQ_PANEL_DEFAULT_MIN_WIDTH
353
+ : this.defaultOptions.panelMinWidth, ...(ngDevMode ? [{ debugName: "panelMinWidth", transform: numberAttribute }] : [{ transform: numberAttribute }]));
323
354
  /**
324
- * Width of the panel. If set to `auto`, the panel will match the trigger width.
325
- * If set to null or an empty string, the panel will grow to match the longest option's text.
355
+ * Width of the panel. If set to `auto`, the panel will match the trigger width, but will never be
356
+ * narrower than `panelMinWidth`. If set to null or an empty string, the panel will grow to match the
357
+ * longest option's text. Any other value is used as an exact width, and `panelMinWidth` is not applied.
326
358
  */
327
359
  this.panelWidth = input(this.defaultOptions?.panelWidth || null, ...(ngDevMode ? [{ debugName: "panelWidth" }] : []));
360
+ /**
361
+ * Maximum width of the panel in pixels. Caps how far the panel grows with its content — it never makes
362
+ * the panel narrower than the trigger, and never clamps an explicit `panelWidth`.
363
+ * When null, the `--kbq-panel-size-width-max` token applies.
364
+ */
365
+ this.panelMaxWidth = input(this.defaultOptions?.panelMaxWidth === undefined ? null : this.defaultOptions.panelMaxWidth, ...(ngDevMode ? [{ debugName: "panelMaxWidth", transform: numberAttribute }] : [{ transform: numberAttribute }]));
328
366
  this._searchMinOptionsThreshold = this.resolveSearchMinOptionsThreshold();
329
367
  this.triggerValues = [];
330
368
  this.closeSubscription = Subscription.EMPTY;
@@ -354,6 +392,10 @@ class KbqTreeSelect extends KbqAbstractSelect {
354
392
  if (this.hiddenItems) {
355
393
  const itemsCounter = this.trigger().nativeElement.querySelector('.kbq-select__match-hidden-text');
356
394
  const matcherList = this.trigger().nativeElement.querySelector('.kbq-select__match-list');
395
+ if (!itemsCounter || !matcherList) {
396
+ this.changeDetectorRef.markForCheck();
397
+ return;
398
+ }
357
399
  const itemsCounterShowed = itemsCounter.offsetTop < itemsCounter.offsetHeight;
358
400
  const itemsCounterWidth = Math.floor(itemsCounter.getBoundingClientRect().width);
359
401
  const matcherListWidth = Math.floor(matcherList.getBoundingClientRect().width);
@@ -428,18 +470,23 @@ class KbqTreeSelect extends KbqAbstractSelect {
428
470
  tree.resetFocusedItemOnBlur = false;
429
471
  tree.optionShouldHoldFocusOnBlur = !!this.search();
430
472
  this.selectionModel = tree.selectionModel = new SelectionModel(this.multiSelection);
431
- this.selectionModel.changed.subscribe(() => {
473
+ this.selectionModel.changed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
432
474
  this.onChange(this.selectedValues);
433
475
  if (this.multiSelection) {
434
476
  this.refreshTriggerValues();
435
477
  }
436
478
  });
437
- this.selectionModel.changed.pipe(delay(0)).subscribe(() => this.setOverlayPosition());
479
+ this.selectionModel.changed
480
+ .pipe(delay(0), takeUntilDestroyed(this.destroyRef))
481
+ .subscribe(() => this.setOverlayPosition());
438
482
  // eslint-disable-next-line @angular-eslint/no-lifecycle-call
439
483
  tree.ngAfterContentInit();
440
484
  this.initKeyManager();
441
485
  this.options = tree.renderedOptions;
442
486
  tree.autoSelect = this.autoSelect;
487
+ // Tree lives inside the select panel: enable hover-to-focus on options even without a
488
+ // wrapping form-field (e.g. filter-bar pipes render the tree-select bare).
489
+ tree.inSelect = true;
443
490
  if (tree.multipleMode === null) {
444
491
  // setTimeout need for prevent an error "NG0100: ExpressionChangedAfterItHasBeenCheckedError"
445
492
  setTimeout(() => (this.tree().multipleMode = this.multiSelection ? MultipleMode.CHECKBOX : null));
@@ -540,13 +587,7 @@ class KbqTreeSelect extends KbqAbstractSelect {
540
587
  if (this.parentFormField) {
541
588
  this.overlayOrigin = this.parentFormField.getConnectedOverlayOrigin();
542
589
  }
543
- this.overlayWidth = this.getOverlayWidth(this.overlayOrigin);
544
- // set overlayMinWidth to the largest of `panelMinWidth` and `triggerRect.width`
545
- // only if `overlayWidth` falsy and `panelMinWidth` not provided.
546
- // This ensures panel isn't narrow.
547
- const panelMinWidth = this.panelMinWidth();
548
- this.overlayMinWidth =
549
- panelMinWidth !== null && !this.overlayWidth ? Math.max(panelMinWidth, this.triggerRect.width) : '';
590
+ this.updateOverlayWidth(this.panelWidth(), this.panelMinWidth(), this.overlayOrigin ?? this.elementRef);
550
591
  this._panelOpen = true;
551
592
  this.changeDetectorRef.markForCheck();
552
593
  // Set the font size on the panel element once it exists.
@@ -557,6 +598,9 @@ class KbqTreeSelect extends KbqAbstractSelect {
557
598
  if (this.triggerFontSize && this.overlayDir.overlayRef && this.overlayDir.overlayRef.overlayElement) {
558
599
  this.overlayDir.overlayRef.overlayElement.style.fontSize = `${this.triggerFontSize}px`;
559
600
  }
601
+ if (this.search()) {
602
+ this.lockOverlayWidthForSearch(this.panel());
603
+ }
560
604
  });
561
605
  }
562
606
  /** Closes the overlay panel and focuses the host element. */
@@ -682,6 +726,7 @@ class KbqTreeSelect extends KbqAbstractSelect {
682
726
  this.overlayDir.positionChange.pipe(take(1)).subscribe(() => {
683
727
  this.changeDetectorRef.detectChanges();
684
728
  this.setOverlayPosition();
729
+ // `panel` is guaranteed to exist here: this callback only fires once the overlay has attached.
685
730
  this.panel().nativeElement.scrollTop = this.scrollTop;
686
731
  this.tree().updateScrollSize();
687
732
  });
@@ -834,7 +879,10 @@ class KbqTreeSelect extends KbqAbstractSelect {
834
879
  }
835
880
  getTotalVisibleItems() {
836
881
  const triggerClone = this.buildTriggerClone();
837
- this.renderer.setStyle(triggerClone.querySelector('.kbq-select__match-hidden-text'), 'display', 'block');
882
+ const hiddenText = triggerClone.querySelector('.kbq-select__match-hidden-text');
883
+ if (hiddenText) {
884
+ this.renderer.setStyle(hiddenText, 'display', 'block');
885
+ }
838
886
  this.renderer.appendChild(this.trigger().nativeElement, triggerClone);
839
887
  let visibleItemsCount = 0;
840
888
  let totalVisibleItemsWidth = 0;
@@ -847,15 +895,6 @@ class KbqTreeSelect extends KbqAbstractSelect {
847
895
  triggerClone.remove();
848
896
  return [totalVisibleItemsWidth, visibleItemsCount];
849
897
  }
850
- /** Gets how wide the overlay panel should be. */
851
- getOverlayWidth(origin) {
852
- const panelWidth = this.panelWidth();
853
- if (panelWidth === 'auto') {
854
- const elementRef = origin instanceof CdkOverlayOrigin ? origin.elementRef : origin || this.elementRef;
855
- return elementRef.nativeElement.getBoundingClientRect().width;
856
- }
857
- return panelWidth ?? '';
858
- }
859
898
  buildTriggerClone() {
860
899
  const triggerClone = this.trigger().nativeElement.cloneNode(true);
861
900
  this.renderer.setStyle(triggerClone, 'position', 'absolute');
@@ -950,17 +989,19 @@ class KbqTreeSelect extends KbqAbstractSelect {
950
989
  const search = this.search();
951
990
  if (!search?.ngControl.valueChanges)
952
991
  return;
953
- search.ngControl.valueChanges.pipe(audit(() => this.tree().unorderedOptions.changes)).subscribe((value) => {
992
+ search.ngControl.valueChanges
993
+ .pipe(audit(() => this.tree().unorderedOptions.changes), takeUntilDestroyed(this.destroyRef))
994
+ .subscribe((value) => {
954
995
  this.isEmptySearchResult = !!value && this.tree().isEmpty;
955
996
  this.changeDetectorRef.markForCheck();
956
997
  });
957
998
  }
958
999
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqTreeSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
959
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqTreeSelect, isStandalone: true, selector: "kbq-tree-select", inputs: { hiddenItemsText: { classPropertyName: "hiddenItemsText", publicName: "hiddenItemsText", isSignal: false, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: "backdropClass", publicName: "backdropClass", isSignal: true, isRequired: false, transformFunction: null }, errorStateMatcher: { classPropertyName: "errorStateMatcher", publicName: "errorStateMatcher", isSignal: false, isRequired: false, transformFunction: null }, sortComparator: { classPropertyName: "sortComparator", publicName: "sortComparator", isSignal: true, isRequired: false, transformFunction: null }, multiline: { classPropertyName: "multiline", publicName: "multiline", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, autoSelect: { classPropertyName: "autoSelect", publicName: "autoSelect", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, selectAllHandler: { classPropertyName: "selectAllHandler", publicName: "selectAllHandler", isSignal: false, isRequired: false, transformFunction: null }, panelMinWidth: { classPropertyName: "panelMinWidth", publicName: "panelMinWidth", isSignal: true, isRequired: false, transformFunction: null }, panelWidth: { classPropertyName: "panelWidth", publicName: "panelWidth", isSignal: true, isRequired: false, transformFunction: null }, searchMinOptionsThreshold: { classPropertyName: "searchMinOptionsThreshold", publicName: "searchMinOptionsThreshold", isSignal: false, isRequired: false, transformFunction: null }, hiddenItemsTextFormatter: { classPropertyName: "hiddenItemsTextFormatter", publicName: "hiddenItemsTextFormatter", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { openedChange: "openedChange", openedStream: "opened", closedStream: "closed", selectionChange: "selectionChange", valueChange: "valueChange" }, host: { listeners: { "click": "handleClick()", "keydown": "handleKeydown($event)", "focus": "onFocus()", "blur": "onBlur()" }, properties: { "class.kbq-select_multiple": "multiple", "class.kbq-select_multiline": "multiline()", "class.kbq-disabled": "disabled", "class.kbq-invalid": "errorState", "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "kbq-tree-select" }, providers: [
1000
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqTreeSelect, isStandalone: true, selector: "kbq-tree-select", inputs: { hiddenItemsText: { classPropertyName: "hiddenItemsText", publicName: "hiddenItemsText", isSignal: false, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: "backdropClass", publicName: "backdropClass", isSignal: true, isRequired: false, transformFunction: null }, errorStateMatcher: { classPropertyName: "errorStateMatcher", publicName: "errorStateMatcher", isSignal: false, isRequired: false, transformFunction: null }, sortComparator: { classPropertyName: "sortComparator", publicName: "sortComparator", isSignal: true, isRequired: false, transformFunction: null }, multiline: { classPropertyName: "multiline", publicName: "multiline", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, autoSelect: { classPropertyName: "autoSelect", publicName: "autoSelect", isSignal: false, isRequired: false, transformFunction: null }, selectAllToggle: { classPropertyName: "selectAllToggle", publicName: "selectAllToggle", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, selectAllHandler: { classPropertyName: "selectAllHandler", publicName: "selectAllHandler", isSignal: false, isRequired: false, transformFunction: null }, panelMinWidth: { classPropertyName: "panelMinWidth", publicName: "panelMinWidth", isSignal: true, isRequired: false, transformFunction: null }, panelWidth: { classPropertyName: "panelWidth", publicName: "panelWidth", isSignal: true, isRequired: false, transformFunction: null }, panelMaxWidth: { classPropertyName: "panelMaxWidth", publicName: "panelMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, searchMinOptionsThreshold: { classPropertyName: "searchMinOptionsThreshold", publicName: "searchMinOptionsThreshold", isSignal: false, isRequired: false, transformFunction: null }, hiddenItemsTextFormatter: { classPropertyName: "hiddenItemsTextFormatter", publicName: "hiddenItemsTextFormatter", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { openedChange: "openedChange", openedStream: "opened", closedStream: "closed", selectionChange: "selectionChange", onSelectAll: "onSelectAll", valueChange: "valueChange" }, host: { listeners: { "click": "handleClick()", "keydown": "handleKeydown($event)", "focus": "onFocus()", "blur": "onBlur()" }, properties: { "class.kbq-select_multiple": "multiple", "class.kbq-select_multiline": "multiline()", "class.kbq-disabled": "disabled", "class.kbq-invalid": "errorState", "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "kbq-tree-select" }, providers: [
960
1001
  { provide: KbqFormFieldControl, useExisting: KbqTreeSelect },
961
1002
  { provide: KbqTree, useExisting: KbqTreeSelect },
962
1003
  { provide: KBQ_PARENT_POPUP, useExisting: KbqTreeSelect }
963
- ], queries: [{ propertyName: "cleaner", first: true, predicate: ["kbqSelectCleaner"], descendants: true, isSignal: true }, { propertyName: "customTrigger", first: true, predicate: KbqSelectTrigger, descendants: true, isSignal: true }, { propertyName: "customMatcher", first: true, predicate: KbqSelectMatcher, descendants: true, isSignal: true }, { propertyName: "customTagTemplateRef", first: true, predicate: ["kbqSelectTagContent"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "tree", first: true, predicate: KbqTreeSelection, descendants: true, isSignal: true }, { propertyName: "search", first: true, predicate: KbqSelectSearch, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "tags", predicate: KbqTag, descendants: true }], exportAs: ["kbqTreeSelect"], usesInheritance: true, ngImport: i0, template: "<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiline]=\"multiline()\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\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 } @else {\n @if (!!customTrigger()) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiSelection) {\n <div\n [class.kbq-select__match-list]=\"!multiline()\"\n [class.kbq-select__multiline-match-list]=\"multiline()\"\n >\n @if (!customTagTemplateRef()) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [color]=\"colorForState\"\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)=\"onRemoveSelectedOption(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n } @else {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"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 @if (!multiline()) {\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n }\n </div>\n }\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n (keydown.enter)=\"clearValue($event)\"\n (keydown.space)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\" [color]=\"colorForState\"></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass()\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClass\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n>\n <div\n #panel\n cdkMonitorSubtreeFocus\n [class]=\"getPanelClasses()\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (keydown)=\"panelKeydownHandler($event)\"\n >\n @if (search() && shouldShowSearch()) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-tree-select__content kbq-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n >\n @if (isEmptySearchResult) {\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n }\n\n <ng-content select=\"kbq-tree-selection\" />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-tree-select-footer]\" />\n </div>\n</ng-template>\n", styles: [".kbq-tree-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.kbq-tree-select .kbq-select__trigger{display:flex;box-sizing:border-box;position:relative;cursor:pointer;min-height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-tree-select .kbq-select__trigger:not(.kbq-select__trigger_multiline){height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-tree-select .kbq-select__trigger:not(.kbq-select__trigger_multiline) .kbq-select__matcher{overflow:hidden;white-space:nowrap}.kbq-tree-select .kbq-select__matcher{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-grow:1;align-items:center}.kbq-tree-select .kbq-select__matcher>span{flex:1;overflow:hidden}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_single .kbq-select__matcher,.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiple.kbq-select__trigger_empty .kbq-select__matcher{padding:var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-right) var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-left)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher{padding:var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-right) var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-left)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-container{display:flex}.kbq-tree-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, var(--kbq-size-xxs));margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs))}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__match-container{flex-direction:column}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__matcher{max-width:100%;padding:calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-right) calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-left)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__cleaner,.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__arrow-wrapper{align-self:flex-start;align-items:center;height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-s));min-width:var(--kbq-form-field-size-addon-width)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__multiline-match-list{display:flex;flex-direction:row;flex-wrap:wrap;margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));gap:var(--kbq-size-xxs)}.kbq-tree-select .kbq-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.kbq-tree-select .kbq-select__match-container .kbq-select__match-hidden-text{flex:0 0 40px;align-self:center;padding-left:4px;padding-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));text-align:right}.kbq-tree-select kbq-select-trigger,.kbq-tree-select [kbq-select-trigger]{width:100%}.kbq-tree-select .kbq-select__arrow-wrapper{display:flex;align-self:center;justify-content:center;min-width:var(--kbq-form-field-size-addon-width)}.kbq-form-field-appearance-fill .kbq-tree-select .kbq-select__arrow-wrapper,.kbq-form-field-appearance-standard .kbq-tree-select .kbq-select__arrow-wrapper{transform:translateY(-50%)}.kbq-form-field-appearance-outline .kbq-tree-select .kbq-select__arrow-wrapper{transform:translateY(-25%)}.kbq-disabled.kbq-tree-select .kbq-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-tree-select__panel{min-width:100%;overflow:hidden;border-radius:var(--kbq-select-panel-size-border-radius, var(--kbq-size-border-radius))}.kbq-tree-select__panel .kbq-option{font-size:inherit}.kbq-tree-select__panel .kbq-select__no-options-message{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;position:relative;margin-bottom:var(--kbq-size-3xl);margin-top:var(--kbq-size-3xl);max-width:100%;height:var(--kbq-option-size-height, var(--kbq-size-3xl));cursor:default;outline:none;padding-left:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));padding-right:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));border:var(--kbq-option-size-border-width, var(--kbq-size-3xs)) solid transparent}.kbq-tree-select__panel .kbq-select__search-container{padding:var(--kbq-size-xxs);border-bottom-width:1px;border-bottom-style:solid}.kbq-tree-select__content{max-height:var(--kbq-select-panel-size-max-height, 256px);padding:var(--kbq-size-xxs);overflow:hidden auto}.kbq-tree-select__panel .kbq-select__footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;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-l)}.kbq-tree-select__content .kbq-tree-selection{height:100%}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option{position:relative}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:before,.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:after{position:absolute;content:\"\";width:var(--kbq-size-xxs);height:calc(100% + var(--kbq-size-3xs) * 2)}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:before{right:calc(100% + var(--kbq-size-3xs))}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:after{left:calc(100% + var(--kbq-size-3xs))}.kbq-form-field-type-select:not(.kbq-disabled) .kbq-form-field-flex{cursor:pointer}.kbq-tree-select{color:var(--kbq-foreground-contrast)}.kbq-tree-select.kbq-control_has-validate-directive.ng-invalid,.kbq-tree-select.kbq-invalid{color:var(--kbq-error-default)}.kbq-tree-select.kbq-control_has-validate-directive.ng-invalid .kbq-select__placeholder,.kbq-tree-select.kbq-invalid .kbq-select__placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-tree-select.kbq-disabled{color:var(--kbq-states-foreground-disabled)}.kbq-tree-select.kbq-disabled .kbq-select__placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-select__placeholder{text-overflow:ellipsis;color:var(--kbq-form-field-default-placeholder)}.kbq-tree-select__panel{box-shadow:var(--kbq-select-panel-dropdown-shadow);background:var(--kbq-select-panel-dropdown-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused){--kbq-option-background: var(--kbq-tree-default-container-background);background:var(--kbq-tree-default-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-option-text,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-option-text{color:var(--kbq-tree-default-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-tree-node-toggle .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-icon.kbq-empty.kbq-tree-node-toggle,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-tree-node-toggle .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-icon.kbq-empty.kbq-tree-node-toggle{color:var(--kbq-tree-default-tree-toggle-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-default-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-option-caption,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-option-caption{color:var(--kbq-tree-default-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused{--kbq-option-background: var(--kbq-tree-states-hover-container-background);background:var(--kbq-tree-states-hover-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-option-text{color:var(--kbq-tree-states-hover-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-tree-node-toggle .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-icon.kbq-empty.kbq-tree-node-toggle{color:var(--kbq-tree-states-hover-tree-toggle-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-states-hover-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-option-caption{color:var(--kbq-tree-states-hover-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused){--kbq-option-background: var(--kbq-tree-states-selected-container-background);background:var(--kbq-tree-states-selected-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-option-text,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-option-text{color:var(--kbq-tree-states-selected-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-tree-node-toggle .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-icon.kbq-empty.kbq-tree-node-toggle,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-tree-node-toggle .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-icon.kbq-empty.kbq-tree-node-toggle{color:var(--kbq-tree-states-selected-tree-toggle-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-states-selected-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-option-caption,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-option-caption{color:var(--kbq-tree-states-selected-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused{--kbq-option-background: var(--kbq-tree-states-selected-hover-container-background);background:var(--kbq-tree-states-selected-hover-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-option-text{color:var(--kbq-tree-states-selected-hover-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-tree-node-toggle .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-icon.kbq-empty.kbq-tree-node-toggle{color:var(--kbq-tree-states-selected-hover-tree-toggle-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-states-selected-hover-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-option-caption{color:var(--kbq-tree-states-selected-hover-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-checked:not(.kbq-selected):hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-checked:not(.kbq-selected).kbq-hovered:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-tree-option_multiple.kbq-selected:hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-tree-option_multiple.kbq-selected.kbq-hovered:not(.kbq-focused){background:var(--kbq-tree-multiple-states-selected-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-checked:not(.kbq-selected).kbq-focused,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-tree-option_multiple.kbq-selected.kbq-focused{background:var(--kbq-tree-multiple-states-selected-hover-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused:not(.kbq-action-button-focused){border-color:transparent}.kbq-tree-select__panel .kbq-select__footer{border-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__search-container{border-bottom-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__no-options-message{color:var(--kbq-foreground-contrast-secondary)}.kbq-tree-select,.kbq-tree-select__panel{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-tree-select__panel{--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}.kbq-tree-select__panel .kbq-tree-selection{--kbq-tree-option-border-radius: var(--kbq-size-xs)}\n", ".kbq-select,.kbq-tree-select,.kbq-select__panel{--kbq-select-size-single-padding-left: 0;--kbq-select-size-single-padding-right: 0;--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: 0;--kbq-select-size-multiple-padding-right: 0;--kbq-select-size-multiple-padding-vertical: var(--kbq-size-xxs);--kbq-select-size-multiple-content-gap: var(--kbq-size-xxs);--kbq-select-panel-size-border-radius: var(--kbq-size-border-radius);--kbq-select-panel-size-max-height: 256px;--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i1.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "directive", type: KbqTagRemove, selector: "[kbqTagRemove]" }, { kind: "directive", type: 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: CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "component", type: KbqTag, selector: "kbq-tag, [kbq-tag], kbq-basic-tag, [kbq-basic-tag]", inputs: ["editable", "preventEditSubmit", "selected", "value", "selectable", "removable", "tabindex", "disabled"], outputs: ["editChange", "selectionChange", "destroyed", "removed"], exportAs: ["kbqTag"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
1004
+ ], queries: [{ propertyName: "cleaner", first: true, predicate: ["kbqSelectCleaner"], descendants: true, isSignal: true }, { propertyName: "customTrigger", first: true, predicate: KbqSelectTrigger, descendants: true, isSignal: true }, { propertyName: "customMatcher", first: true, predicate: KbqSelectMatcher, descendants: true, isSignal: true }, { propertyName: "customTagTemplateRef", first: true, predicate: ["kbqSelectTagContent"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "tree", first: true, predicate: KbqTreeSelection, descendants: true, isSignal: true }, { propertyName: "search", first: true, predicate: KbqSelectSearch, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "tags", predicate: KbqTag, descendants: true }], exportAs: ["kbqTreeSelect"], usesInheritance: true, ngImport: i0, template: "<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiline]=\"multiline()\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\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 } @else {\n @if (!!customTrigger()) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiSelection) {\n <div\n [class.kbq-select__match-list]=\"!multiline()\"\n [class.kbq-select__multiline-match-list]=\"multiline()\"\n >\n @if (!customTagTemplateRef()) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [color]=\"colorForState\"\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)=\"onRemoveSelectedOption(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n } @else {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"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 @if (!multiline()) {\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n }\n </div>\n }\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n (keydown.enter)=\"clearValue($event)\"\n (keydown.space)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\" [color]=\"colorForState\"></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass()\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClass\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayViewportMargin]=\"viewportMargin\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n>\n <div\n #panel\n cdkMonitorSubtreeFocus\n [class]=\"getPanelClasses()\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.max-width.px]=\"panelMaxWidth()\"\n [style.transformOrigin]=\"transformOrigin\"\n (keydown)=\"panelKeydownHandler($event)\"\n >\n @if (search() && shouldShowSearch()) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-tree-select__content kbq-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n >\n @if (isEmptySearchResult) {\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n }\n\n <ng-content select=\"kbq-tree-selection\" />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-tree-select-footer]\" />\n </div>\n</ng-template>\n", styles: [".kbq-tree-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.kbq-tree-select .kbq-select__trigger{display:flex;box-sizing:border-box;position:relative;cursor:pointer;min-height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-tree-select .kbq-select__trigger:not(.kbq-select__trigger_multiline){height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-tree-select .kbq-select__trigger:not(.kbq-select__trigger_multiline) .kbq-select__matcher{overflow:hidden;white-space:nowrap}.kbq-tree-select .kbq-select__matcher{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-grow:1;align-items:center}.kbq-tree-select .kbq-select__matcher>span{flex:1;overflow:hidden}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_single .kbq-select__matcher,.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiple.kbq-select__trigger_empty .kbq-select__matcher{padding:var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-right) var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-left)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher{padding:var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-right) var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-left)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-container{display:flex}.kbq-tree-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, var(--kbq-size-xxs));margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs))}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__match-container{flex-direction:column}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__matcher{max-width:100%;padding:calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-right) calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-left)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__cleaner,.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__arrow-wrapper{align-self:flex-start;align-items:center;height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-s));min-width:var(--kbq-form-field-size-addon-width)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__multiline-match-list{display:flex;flex-direction:row;flex-wrap:wrap;margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));gap:var(--kbq-size-xxs)}.kbq-tree-select .kbq-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.kbq-tree-select .kbq-select__match-container .kbq-select__match-hidden-text{flex:0 0 var(--kbq-form-field-size-addon-width);align-self:center;padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));text-align:right}.kbq-tree-select kbq-select-trigger,.kbq-tree-select [kbq-select-trigger]{width:100%}.kbq-tree-select .kbq-select__arrow-wrapper{display:flex;align-self:center;justify-content:center;min-width:var(--kbq-form-field-size-addon-width)}.kbq-form-field-appearance-fill .kbq-tree-select .kbq-select__arrow-wrapper,.kbq-form-field-appearance-standard .kbq-tree-select .kbq-select__arrow-wrapper{transform:translateY(-50%)}.kbq-form-field-appearance-outline .kbq-tree-select .kbq-select__arrow-wrapper{transform:translateY(-25%)}.kbq-disabled.kbq-tree-select .kbq-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-tree-select__panel{min-width:100%;max-width:var(--kbq-panel-size-width-max, 640px);overflow:hidden;border-radius:var(--kbq-select-panel-size-border-radius, var(--kbq-size-border-radius))}.kbq-tree-select__panel .kbq-option{font-size:inherit}.kbq-tree-select__panel .kbq-select__no-options-message{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;position:relative;margin-bottom:var(--kbq-size-3xl);margin-top:var(--kbq-size-3xl);max-width:100%;height:var(--kbq-option-size-height, var(--kbq-size-3xl));cursor:default;outline:none;padding-left:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));padding-right:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));border:var(--kbq-option-size-border-width, var(--kbq-size-3xs)) solid transparent}.kbq-tree-select__panel .kbq-select__search-container{padding:var(--kbq-size-xxs);border-bottom-width:1px;border-bottom-style:solid}.kbq-tree-select__content{max-height:var(--kbq-select-panel-size-max-height, 256px);padding:var(--kbq-size-xxs);overflow:hidden auto}.kbq-tree-select__panel .kbq-select__footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;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-l)}.kbq-tree-select__content .kbq-tree-selection{height:100%}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option{position:relative}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:before,.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:after{position:absolute;content:\"\";width:var(--kbq-size-xxs);height:calc(100% + var(--kbq-size-3xs) * 2)}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:before{right:calc(100% + var(--kbq-size-3xs))}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:after{left:calc(100% + var(--kbq-size-3xs))}.kbq-form-field-type-select:not(.kbq-disabled) .kbq-form-field-flex{cursor:pointer}.kbq-tree-select{color:var(--kbq-foreground-contrast)}.kbq-tree-select.kbq-control_has-validate-directive.ng-invalid,.kbq-tree-select.kbq-invalid{color:var(--kbq-foreground-error)}.kbq-tree-select.kbq-control_has-validate-directive.ng-invalid .kbq-select__placeholder,.kbq-tree-select.kbq-invalid .kbq-select__placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-tree-select.kbq-disabled{color:var(--kbq-states-foreground-disabled)}.kbq-tree-select.kbq-disabled .kbq-select__placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-select__placeholder{text-overflow:ellipsis;color:var(--kbq-form-field-default-placeholder)}.kbq-tree-select__panel{box-shadow:var(--kbq-select-panel-dropdown-shadow);background:var(--kbq-select-panel-dropdown-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused){--kbq-option-background: var(--kbq-tree-default-container-background);background:var(--kbq-tree-default-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-option-text,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-option-text{color:var(--kbq-tree-default-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-default-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-option-caption,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-option-caption{color:var(--kbq-tree-default-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused{--kbq-option-background: var(--kbq-tree-states-hover-container-background);background:var(--kbq-tree-states-hover-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-option-text{color:var(--kbq-tree-states-hover-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-states-hover-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-option-caption{color:var(--kbq-tree-states-hover-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused){--kbq-option-background: var(--kbq-tree-states-selected-container-background);background:var(--kbq-tree-states-selected-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-option-text,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-option-text{color:var(--kbq-tree-states-selected-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-states-selected-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-option-caption,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-option-caption{color:var(--kbq-tree-states-selected-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused{--kbq-option-background: var(--kbq-tree-states-selected-hover-container-background);background:var(--kbq-tree-states-selected-hover-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-option-text{color:var(--kbq-tree-states-selected-hover-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-states-selected-hover-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-option-caption{color:var(--kbq-tree-states-selected-hover-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-checked:not(.kbq-selected):hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-checked:not(.kbq-selected).kbq-hovered:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-tree-option_multiple.kbq-selected:hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-tree-option_multiple.kbq-selected.kbq-hovered:not(.kbq-focused){background:var(--kbq-tree-multiple-states-selected-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-checked:not(.kbq-selected).kbq-focused,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-tree-option_multiple.kbq-selected.kbq-focused{background:var(--kbq-tree-multiple-states-selected-hover-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused:not(.kbq-action-button-focused){border-color:transparent}.kbq-tree-select__panel .kbq-select__footer{border-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__search-container{border-bottom-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__no-options-message{color:var(--kbq-foreground-contrast-secondary)}.kbq-tree-select,.kbq-tree-select__panel{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-tree-select__panel{--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}.kbq-tree-select__panel .kbq-tree-selection{--kbq-tree-option-border-radius: var(--kbq-size-xs)}\n", ".kbq-select,.kbq-tree-select,.kbq-select__panel{--kbq-select-size-single-padding-left: 0;--kbq-select-size-single-padding-right: 0;--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: 0;--kbq-select-size-multiple-padding-right: 0;--kbq-select-size-multiple-padding-vertical: var(--kbq-size-xxs);--kbq-select-size-multiple-content-gap: var(--kbq-size-xxs);--kbq-select-panel-size-border-radius: var(--kbq-size-border-radius);--kbq-select-panel-size-max-height: 256px;--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i1.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "directive", type: KbqTagRemove, selector: "[kbqTagRemove]" }, { kind: "directive", type: 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: CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "component", type: KbqTag, selector: "kbq-tag, [kbq-tag], kbq-basic-tag, [kbq-basic-tag]", inputs: ["editable", "preventEditSubmit", "selected", "value", "selectable", "removable", "tabindex", "disabled"], outputs: ["editChange", "selectionChange", "destroyed", "removed"], exportAs: ["kbqTag"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
964
1005
  kbqSelectAnimations.transformPanel,
965
1006
  kbqSelectAnimations.fadeInContent
966
1007
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
@@ -994,7 +1035,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
994
1035
  }, animations: [
995
1036
  kbqSelectAnimations.transformPanel,
996
1037
  kbqSelectAnimations.fadeInContent
997
- ], exportAs: 'kbqTreeSelect', template: "<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiline]=\"multiline()\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\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 } @else {\n @if (!!customTrigger()) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiSelection) {\n <div\n [class.kbq-select__match-list]=\"!multiline()\"\n [class.kbq-select__multiline-match-list]=\"multiline()\"\n >\n @if (!customTagTemplateRef()) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [color]=\"colorForState\"\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)=\"onRemoveSelectedOption(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n } @else {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"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 @if (!multiline()) {\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n }\n </div>\n }\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n (keydown.enter)=\"clearValue($event)\"\n (keydown.space)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\" [color]=\"colorForState\"></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass()\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClass\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n>\n <div\n #panel\n cdkMonitorSubtreeFocus\n [class]=\"getPanelClasses()\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (keydown)=\"panelKeydownHandler($event)\"\n >\n @if (search() && shouldShowSearch()) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-tree-select__content kbq-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n >\n @if (isEmptySearchResult) {\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n }\n\n <ng-content select=\"kbq-tree-selection\" />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-tree-select-footer]\" />\n </div>\n</ng-template>\n", styles: [".kbq-tree-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.kbq-tree-select .kbq-select__trigger{display:flex;box-sizing:border-box;position:relative;cursor:pointer;min-height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-tree-select .kbq-select__trigger:not(.kbq-select__trigger_multiline){height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-tree-select .kbq-select__trigger:not(.kbq-select__trigger_multiline) .kbq-select__matcher{overflow:hidden;white-space:nowrap}.kbq-tree-select .kbq-select__matcher{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-grow:1;align-items:center}.kbq-tree-select .kbq-select__matcher>span{flex:1;overflow:hidden}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_single .kbq-select__matcher,.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiple.kbq-select__trigger_empty .kbq-select__matcher{padding:var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-right) var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-left)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher{padding:var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-right) var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-left)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-container{display:flex}.kbq-tree-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, var(--kbq-size-xxs));margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs))}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__match-container{flex-direction:column}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__matcher{max-width:100%;padding:calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-right) calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-left)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__cleaner,.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__arrow-wrapper{align-self:flex-start;align-items:center;height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-s));min-width:var(--kbq-form-field-size-addon-width)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__multiline-match-list{display:flex;flex-direction:row;flex-wrap:wrap;margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));gap:var(--kbq-size-xxs)}.kbq-tree-select .kbq-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.kbq-tree-select .kbq-select__match-container .kbq-select__match-hidden-text{flex:0 0 40px;align-self:center;padding-left:4px;padding-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));text-align:right}.kbq-tree-select kbq-select-trigger,.kbq-tree-select [kbq-select-trigger]{width:100%}.kbq-tree-select .kbq-select__arrow-wrapper{display:flex;align-self:center;justify-content:center;min-width:var(--kbq-form-field-size-addon-width)}.kbq-form-field-appearance-fill .kbq-tree-select .kbq-select__arrow-wrapper,.kbq-form-field-appearance-standard .kbq-tree-select .kbq-select__arrow-wrapper{transform:translateY(-50%)}.kbq-form-field-appearance-outline .kbq-tree-select .kbq-select__arrow-wrapper{transform:translateY(-25%)}.kbq-disabled.kbq-tree-select .kbq-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-tree-select__panel{min-width:100%;overflow:hidden;border-radius:var(--kbq-select-panel-size-border-radius, var(--kbq-size-border-radius))}.kbq-tree-select__panel .kbq-option{font-size:inherit}.kbq-tree-select__panel .kbq-select__no-options-message{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;position:relative;margin-bottom:var(--kbq-size-3xl);margin-top:var(--kbq-size-3xl);max-width:100%;height:var(--kbq-option-size-height, var(--kbq-size-3xl));cursor:default;outline:none;padding-left:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));padding-right:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));border:var(--kbq-option-size-border-width, var(--kbq-size-3xs)) solid transparent}.kbq-tree-select__panel .kbq-select__search-container{padding:var(--kbq-size-xxs);border-bottom-width:1px;border-bottom-style:solid}.kbq-tree-select__content{max-height:var(--kbq-select-panel-size-max-height, 256px);padding:var(--kbq-size-xxs);overflow:hidden auto}.kbq-tree-select__panel .kbq-select__footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;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-l)}.kbq-tree-select__content .kbq-tree-selection{height:100%}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option{position:relative}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:before,.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:after{position:absolute;content:\"\";width:var(--kbq-size-xxs);height:calc(100% + var(--kbq-size-3xs) * 2)}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:before{right:calc(100% + var(--kbq-size-3xs))}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:after{left:calc(100% + var(--kbq-size-3xs))}.kbq-form-field-type-select:not(.kbq-disabled) .kbq-form-field-flex{cursor:pointer}.kbq-tree-select{color:var(--kbq-foreground-contrast)}.kbq-tree-select.kbq-control_has-validate-directive.ng-invalid,.kbq-tree-select.kbq-invalid{color:var(--kbq-error-default)}.kbq-tree-select.kbq-control_has-validate-directive.ng-invalid .kbq-select__placeholder,.kbq-tree-select.kbq-invalid .kbq-select__placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-tree-select.kbq-disabled{color:var(--kbq-states-foreground-disabled)}.kbq-tree-select.kbq-disabled .kbq-select__placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-select__placeholder{text-overflow:ellipsis;color:var(--kbq-form-field-default-placeholder)}.kbq-tree-select__panel{box-shadow:var(--kbq-select-panel-dropdown-shadow);background:var(--kbq-select-panel-dropdown-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused){--kbq-option-background: var(--kbq-tree-default-container-background);background:var(--kbq-tree-default-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-option-text,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-option-text{color:var(--kbq-tree-default-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-tree-node-toggle .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-icon.kbq-empty.kbq-tree-node-toggle,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-tree-node-toggle .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-icon.kbq-empty.kbq-tree-node-toggle{color:var(--kbq-tree-default-tree-toggle-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-default-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-option-caption,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-option-caption{color:var(--kbq-tree-default-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused{--kbq-option-background: var(--kbq-tree-states-hover-container-background);background:var(--kbq-tree-states-hover-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-option-text{color:var(--kbq-tree-states-hover-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-tree-node-toggle .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-icon.kbq-empty.kbq-tree-node-toggle{color:var(--kbq-tree-states-hover-tree-toggle-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-states-hover-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-option-caption{color:var(--kbq-tree-states-hover-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused){--kbq-option-background: var(--kbq-tree-states-selected-container-background);background:var(--kbq-tree-states-selected-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-option-text,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-option-text{color:var(--kbq-tree-states-selected-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-tree-node-toggle .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-icon.kbq-empty.kbq-tree-node-toggle,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-tree-node-toggle .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-icon.kbq-empty.kbq-tree-node-toggle{color:var(--kbq-tree-states-selected-tree-toggle-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-states-selected-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-option-caption,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-option-caption{color:var(--kbq-tree-states-selected-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused{--kbq-option-background: var(--kbq-tree-states-selected-hover-container-background);background:var(--kbq-tree-states-selected-hover-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-option-text{color:var(--kbq-tree-states-selected-hover-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-tree-node-toggle .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-icon.kbq-empty.kbq-tree-node-toggle{color:var(--kbq-tree-states-selected-hover-tree-toggle-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-states-selected-hover-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-option-caption{color:var(--kbq-tree-states-selected-hover-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-checked:not(.kbq-selected):hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-checked:not(.kbq-selected).kbq-hovered:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-tree-option_multiple.kbq-selected:hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-tree-option_multiple.kbq-selected.kbq-hovered:not(.kbq-focused){background:var(--kbq-tree-multiple-states-selected-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-checked:not(.kbq-selected).kbq-focused,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-tree-option_multiple.kbq-selected.kbq-focused{background:var(--kbq-tree-multiple-states-selected-hover-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused:not(.kbq-action-button-focused){border-color:transparent}.kbq-tree-select__panel .kbq-select__footer{border-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__search-container{border-bottom-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__no-options-message{color:var(--kbq-foreground-contrast-secondary)}.kbq-tree-select,.kbq-tree-select__panel{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-tree-select__panel{--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}.kbq-tree-select__panel .kbq-tree-selection{--kbq-tree-option-border-radius: var(--kbq-size-xs)}\n", ".kbq-select,.kbq-tree-select,.kbq-select__panel{--kbq-select-size-single-padding-left: 0;--kbq-select-size-single-padding-right: 0;--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: 0;--kbq-select-size-multiple-padding-right: 0;--kbq-select-size-multiple-padding-vertical: var(--kbq-size-xxs);--kbq-select-size-multiple-content-gap: var(--kbq-size-xxs);--kbq-select-panel-size-border-radius: var(--kbq-size-border-radius);--kbq-select-panel-size-max-height: 256px;--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"] }]
1038
+ ], exportAs: 'kbqTreeSelect', template: "<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiline]=\"multiline()\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\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 } @else {\n @if (!!customTrigger()) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiSelection) {\n <div\n [class.kbq-select__match-list]=\"!multiline()\"\n [class.kbq-select__multiline-match-list]=\"multiline()\"\n >\n @if (!customTagTemplateRef()) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [color]=\"colorForState\"\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)=\"onRemoveSelectedOption(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n } @else {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"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 @if (!multiline()) {\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n }\n </div>\n }\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n (keydown.enter)=\"clearValue($event)\"\n (keydown.space)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\" [color]=\"colorForState\"></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass()\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClass\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayViewportMargin]=\"viewportMargin\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n>\n <div\n #panel\n cdkMonitorSubtreeFocus\n [class]=\"getPanelClasses()\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.max-width.px]=\"panelMaxWidth()\"\n [style.transformOrigin]=\"transformOrigin\"\n (keydown)=\"panelKeydownHandler($event)\"\n >\n @if (search() && shouldShowSearch()) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-tree-select__content kbq-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n >\n @if (isEmptySearchResult) {\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n }\n\n <ng-content select=\"kbq-tree-selection\" />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-tree-select-footer]\" />\n </div>\n</ng-template>\n", styles: [".kbq-tree-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.kbq-tree-select .kbq-select__trigger{display:flex;box-sizing:border-box;position:relative;cursor:pointer;min-height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-tree-select .kbq-select__trigger:not(.kbq-select__trigger_multiline){height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-tree-select .kbq-select__trigger:not(.kbq-select__trigger_multiline) .kbq-select__matcher{overflow:hidden;white-space:nowrap}.kbq-tree-select .kbq-select__matcher{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-grow:1;align-items:center}.kbq-tree-select .kbq-select__matcher>span{flex:1;overflow:hidden}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_single .kbq-select__matcher,.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiple.kbq-select__trigger_empty .kbq-select__matcher{padding:var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-right) var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-left)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher{padding:var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-right) var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-left)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-container{display:flex}.kbq-tree-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, var(--kbq-size-xxs));margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs))}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__match-container{flex-direction:column}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__matcher{max-width:100%;padding:calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-right) calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-left)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__cleaner,.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__arrow-wrapper{align-self:flex-start;align-items:center;height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-s));min-width:var(--kbq-form-field-size-addon-width)}.kbq-tree-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__multiline-match-list{display:flex;flex-direction:row;flex-wrap:wrap;margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));gap:var(--kbq-size-xxs)}.kbq-tree-select .kbq-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.kbq-tree-select .kbq-select__match-container .kbq-select__match-hidden-text{flex:0 0 var(--kbq-form-field-size-addon-width);align-self:center;padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));text-align:right}.kbq-tree-select kbq-select-trigger,.kbq-tree-select [kbq-select-trigger]{width:100%}.kbq-tree-select .kbq-select__arrow-wrapper{display:flex;align-self:center;justify-content:center;min-width:var(--kbq-form-field-size-addon-width)}.kbq-form-field-appearance-fill .kbq-tree-select .kbq-select__arrow-wrapper,.kbq-form-field-appearance-standard .kbq-tree-select .kbq-select__arrow-wrapper{transform:translateY(-50%)}.kbq-form-field-appearance-outline .kbq-tree-select .kbq-select__arrow-wrapper{transform:translateY(-25%)}.kbq-disabled.kbq-tree-select .kbq-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-tree-select__panel{min-width:100%;max-width:var(--kbq-panel-size-width-max, 640px);overflow:hidden;border-radius:var(--kbq-select-panel-size-border-radius, var(--kbq-size-border-radius))}.kbq-tree-select__panel .kbq-option{font-size:inherit}.kbq-tree-select__panel .kbq-select__no-options-message{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;position:relative;margin-bottom:var(--kbq-size-3xl);margin-top:var(--kbq-size-3xl);max-width:100%;height:var(--kbq-option-size-height, var(--kbq-size-3xl));cursor:default;outline:none;padding-left:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));padding-right:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));border:var(--kbq-option-size-border-width, var(--kbq-size-3xs)) solid transparent}.kbq-tree-select__panel .kbq-select__search-container{padding:var(--kbq-size-xxs);border-bottom-width:1px;border-bottom-style:solid}.kbq-tree-select__content{max-height:var(--kbq-select-panel-size-max-height, 256px);padding:var(--kbq-size-xxs);overflow:hidden auto}.kbq-tree-select__panel .kbq-select__footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;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-l)}.kbq-tree-select__content .kbq-tree-selection{height:100%}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option{position:relative}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:before,.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:after{position:absolute;content:\"\";width:var(--kbq-size-xxs);height:calc(100% + var(--kbq-size-3xs) * 2)}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:before{right:calc(100% + var(--kbq-size-3xs))}.kbq-tree-select__content .kbq-tree-selection .kbq-tree-option:after{left:calc(100% + var(--kbq-size-3xs))}.kbq-form-field-type-select:not(.kbq-disabled) .kbq-form-field-flex{cursor:pointer}.kbq-tree-select{color:var(--kbq-foreground-contrast)}.kbq-tree-select.kbq-control_has-validate-directive.ng-invalid,.kbq-tree-select.kbq-invalid{color:var(--kbq-foreground-error)}.kbq-tree-select.kbq-control_has-validate-directive.ng-invalid .kbq-select__placeholder,.kbq-tree-select.kbq-invalid .kbq-select__placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-tree-select.kbq-disabled{color:var(--kbq-states-foreground-disabled)}.kbq-tree-select.kbq-disabled .kbq-select__placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-select__placeholder{text-overflow:ellipsis;color:var(--kbq-form-field-default-placeholder)}.kbq-tree-select__panel{box-shadow:var(--kbq-select-panel-dropdown-shadow);background:var(--kbq-select-panel-dropdown-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused){--kbq-option-background: var(--kbq-tree-default-container-background);background:var(--kbq-tree-default-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-option-text,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-option-text{color:var(--kbq-tree-default-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-default-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled):hover:not(.kbq-focused) .kbq-option-caption,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-hovered:not(.kbq-focused) .kbq-option-caption{color:var(--kbq-tree-default-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused{--kbq-option-background: var(--kbq-tree-states-hover-container-background);background:var(--kbq-tree-states-hover-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-option-text{color:var(--kbq-tree-states-hover-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-states-hover-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused .kbq-option-caption{color:var(--kbq-tree-states-hover-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused){--kbq-option-background: var(--kbq-tree-states-selected-container-background);background:var(--kbq-tree-states-selected-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-option-text,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-option-text{color:var(--kbq-tree-states-selected-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-states-selected-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected:hover:not(.kbq-focused) .kbq-option-caption,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-hovered:not(.kbq-focused) .kbq-option-caption{color:var(--kbq-tree-states-selected-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused{--kbq-option-background: var(--kbq-tree-states-selected-hover-container-background);background:var(--kbq-tree-states-selected-hover-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-option-text{color:var(--kbq-tree-states-selected-hover-text-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-tree-states-selected-hover-action-button-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-selected.kbq-focused .kbq-option-caption{color:var(--kbq-tree-states-selected-hover-caption-color)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-checked:not(.kbq-selected):hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-checked:not(.kbq-selected).kbq-hovered:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-tree-option_multiple.kbq-selected:hover:not(.kbq-focused),.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-tree-option_multiple.kbq-selected.kbq-hovered:not(.kbq-focused){background:var(--kbq-tree-multiple-states-selected-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-checked:not(.kbq-selected).kbq-focused,.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-tree-option_multiple.kbq-selected.kbq-focused{background:var(--kbq-tree-multiple-states-selected-hover-container-background)}.kbq-tree-select__panel .kbq-tree-selection .kbq-tree-option:not(.kbq-disabled).kbq-focused:not(.kbq-action-button-focused){border-color:transparent}.kbq-tree-select__panel .kbq-select__footer{border-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__search-container{border-bottom-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__no-options-message{color:var(--kbq-foreground-contrast-secondary)}.kbq-tree-select,.kbq-tree-select__panel{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-tree-select__panel{--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}.kbq-tree-select__panel .kbq-tree-selection{--kbq-tree-option-border-radius: var(--kbq-size-xs)}\n", ".kbq-select,.kbq-tree-select,.kbq-select__panel{--kbq-select-size-single-padding-left: 0;--kbq-select-size-single-padding-right: 0;--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: 0;--kbq-select-size-multiple-padding-right: 0;--kbq-select-size-multiple-padding-vertical: var(--kbq-size-xxs);--kbq-select-size-multiple-content-gap: var(--kbq-size-xxs);--kbq-select-panel-size-border-radius: var(--kbq-size-border-radius);--kbq-select-panel-size-max-height: 256px;--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"] }]
998
1039
  }], ctorParameters: () => [], propDecorators: { trigger: [{ type: i0.ViewChild, args: ['trigger', { isSignal: true }] }], panel: [{ type: i0.ViewChild, args: ['panel', { isSignal: true }] }], overlayDir: [{
999
1040
  type: ViewChild,
1000
1041
  args: [CdkConnectedOverlay, { static: false }]
@@ -1011,7 +1052,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
1011
1052
  }], closedStream: [{
1012
1053
  type: Output,
1013
1054
  args: ['closed']
1014
- }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelClass", required: false }] }], backdropClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "backdropClass", required: false }] }], errorStateMatcher: [{
1055
+ }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], onSelectAll: [{ type: i0.Output, args: ["onSelectAll"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelClass", required: false }] }], backdropClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "backdropClass", required: false }] }], errorStateMatcher: [{
1015
1056
  type: Input
1016
1057
  }], sortComparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortComparator", required: false }] }], multiline: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiline", required: false }] }], placeholder: [{
1017
1058
  type: Input
@@ -1022,7 +1063,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
1022
1063
  args: [{ transform: booleanAttribute }]
1023
1064
  }], autoSelect: [{
1024
1065
  type: Input
1025
- }], id: [{
1066
+ }], selectAllToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectAllToggle", required: false }] }], id: [{
1026
1067
  type: Input
1027
1068
  }], hasBackdrop: [{
1028
1069
  type: Input
@@ -1033,7 +1074,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
1033
1074
  args: [{ transform: booleanAttribute }]
1034
1075
  }], selectAllHandler: [{
1035
1076
  type: Input
1036
- }], panelMinWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelMinWidth", required: false }] }], panelWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelWidth", required: false }] }], searchMinOptionsThreshold: [{
1077
+ }], panelMinWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelMinWidth", required: false }] }], panelWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelWidth", required: false }] }], panelMaxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelMaxWidth", required: false }] }], searchMinOptionsThreshold: [{
1037
1078
  type: Input
1038
1079
  }], hiddenItemsTextFormatter: [{
1039
1080
  type: Input