@koobiq/components 19.8.0 → 20.0.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 (685) hide show
  1. package/accordion/index.d.ts +238 -1
  2. package/actions-panel/index.d.ts +303 -5
  3. package/alert/index.d.ts +54 -1
  4. package/app-switcher/index.d.ts +239 -1
  5. package/autocomplete/index.d.ts +265 -1
  6. package/badge/index.d.ts +57 -1
  7. package/breadcrumbs/breadcrumbs.scss +7 -0
  8. package/breadcrumbs/index.d.ts +243 -1
  9. package/button/_button-base.scss +20 -0
  10. package/button/_button-theme.scss +3 -11
  11. package/button/button.scss +0 -11
  12. package/button/index.d.ts +153 -1
  13. package/button-toggle/index.d.ts +155 -1
  14. package/checkbox/index.d.ts +159 -1
  15. package/clamped-text/index.d.ts +144 -4
  16. package/code-block/_code-block-theme.scss +0 -6
  17. package/code-block/code-block-tokens.scss +0 -2
  18. package/code-block/index.d.ts +383 -1
  19. package/content-panel/content-panel.scss +0 -8
  20. package/content-panel/index.d.ts +158 -2
  21. package/core/highlight/_highlight-theme.scss +9 -0
  22. package/core/index.d.ts +4405 -1
  23. package/core/option/_option-theme.scss +5 -14
  24. package/core/styles/_koobiq-theme.scss +1 -0
  25. package/core/styles/theming/_components-theming.scss +0 -62
  26. package/datepicker/index.d.ts +699 -1
  27. package/divider/index.d.ts +20 -1
  28. package/dl/index.d.ts +37 -1
  29. package/dropdown/_dropdown-theme.scss +4 -8
  30. package/dropdown/dropdown.scss +4 -0
  31. package/dropdown/index.d.ts +473 -1
  32. package/dynamic-translation/index.d.ts +81 -2
  33. package/ellipsis-center/index.d.ts +38 -1
  34. package/empty-state/index.d.ts +45 -1
  35. package/fesm2022/koobiq-components-accordion.mjs +103 -114
  36. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  37. package/fesm2022/koobiq-components-actions-panel.mjs +16 -16
  38. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  39. package/fesm2022/koobiq-components-alert.mjs +35 -49
  40. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  41. package/fesm2022/koobiq-components-app-switcher.mjs +81 -86
  42. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  43. package/fesm2022/koobiq-components-autocomplete.mjs +294 -304
  44. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  45. package/fesm2022/koobiq-components-badge.mjs +35 -42
  46. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-breadcrumbs.mjs +154 -163
  48. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-button-toggle.mjs +87 -86
  50. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  51. package/fesm2022/koobiq-components-button.mjs +209 -96
  52. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-checkbox.mjs +50 -52
  54. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  55. package/fesm2022/koobiq-components-clamped-text.mjs +42 -49
  56. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  57. package/fesm2022/koobiq-components-code-block.mjs +125 -125
  58. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  59. package/fesm2022/koobiq-components-content-panel.mjs +90 -107
  60. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  61. package/fesm2022/koobiq-components-core.mjs +1630 -618
  62. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  63. package/fesm2022/koobiq-components-datepicker.mjs +285 -349
  64. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  65. package/fesm2022/koobiq-components-divider.mjs +14 -25
  66. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  67. package/fesm2022/koobiq-components-dl.mjs +27 -29
  68. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  69. package/fesm2022/koobiq-components-dropdown.mjs +202 -167
  70. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  71. package/fesm2022/koobiq-components-dynamic-translation.mjs +23 -23
  72. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  73. package/fesm2022/koobiq-components-ellipsis-center.mjs +16 -21
  74. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  75. package/fesm2022/koobiq-components-empty-state.mjs +35 -39
  76. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  77. package/fesm2022/koobiq-components-file-upload.mjs +135 -234
  78. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  79. package/fesm2022/koobiq-components-filter-bar.mjs +321 -561
  80. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  81. package/fesm2022/koobiq-components-form-field.mjs +211 -430
  82. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  83. package/fesm2022/koobiq-components-icon.mjs +42 -43
  84. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  85. package/fesm2022/koobiq-components-inline-edit.mjs +65 -60
  86. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  87. package/fesm2022/koobiq-components-input.mjs +116 -155
  88. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  89. package/fesm2022/koobiq-components-link.mjs +38 -53
  90. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  91. package/fesm2022/koobiq-components-list.mjs +105 -114
  92. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  93. package/fesm2022/koobiq-components-loader-overlay.mjs +37 -44
  94. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  95. package/fesm2022/koobiq-components-markdown.mjs +31 -35
  96. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  97. package/fesm2022/koobiq-components-modal.mjs +169 -163
  98. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  99. package/fesm2022/koobiq-components-navbar.mjs +159 -161
  100. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  101. package/fesm2022/koobiq-components-notification-center.mjs +54 -55
  102. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  103. package/fesm2022/koobiq-components-overflow-items.mjs +36 -36
  104. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-popover.mjs +95 -86
  106. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-progress-bar.mjs +24 -30
  108. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-progress-spinner.mjs +25 -32
  110. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  111. package/fesm2022/koobiq-components-radio.mjs +94 -80
  112. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  113. package/fesm2022/koobiq-components-resizer.mjs +17 -17
  114. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  115. package/fesm2022/koobiq-components-scrollbar.mjs +69 -60
  116. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  117. package/fesm2022/koobiq-components-search-expandable.mjs +44 -35
  118. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-select.mjs +249 -234
  120. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-sidebar.mjs +59 -55
  122. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-sidepanel.mjs +88 -128
  124. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-skeleton.mjs +12 -12
  126. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  127. package/fesm2022/koobiq-components-split-button.mjs +27 -20
  128. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-splitter.mjs +110 -96
  130. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-table.mjs +21 -23
  132. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  133. package/fesm2022/koobiq-components-tabs.mjs +269 -275
  134. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  135. package/fesm2022/koobiq-components-tags.mjs +177 -267
  136. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  137. package/fesm2022/koobiq-components-textarea.mjs +37 -56
  138. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  139. package/fesm2022/koobiq-components-time-range.mjs +64 -65
  140. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  141. package/fesm2022/koobiq-components-timepicker.mjs +46 -38
  142. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  143. package/fesm2022/koobiq-components-timezone.mjs +52 -58
  144. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  145. package/fesm2022/koobiq-components-title.mjs +23 -30
  146. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  147. package/fesm2022/koobiq-components-toast.mjs +54 -69
  148. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-toggle.mjs +51 -63
  150. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-tooltip.mjs +91 -119
  152. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-top-bar.mjs +25 -23
  154. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-tree-select.mjs +227 -227
  156. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-tree.mjs +217 -209
  158. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-username.mjs +48 -48
  160. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  161. package/file-upload/index.d.ts +574 -1
  162. package/filter-bar/_filter-bar-theme.scss +0 -4
  163. package/filter-bar/index.d.ts +796 -1
  164. package/form-field/index.d.ts +569 -1
  165. package/icon/index.d.ts +162 -1
  166. package/index.d.ts +2 -1
  167. package/inline-edit/index.d.ts +171 -2
  168. package/input/index.d.ts +339 -1
  169. package/link/index.d.ts +56 -1
  170. package/list/index.d.ts +220 -1
  171. package/loader-overlay/index.d.ts +57 -1
  172. package/markdown/index.d.ts +68 -1
  173. package/modal/_modal-theme.scss +0 -8
  174. package/modal/index.d.ts +311 -1
  175. package/navbar/index.d.ts +304 -1
  176. package/notification-center/index.d.ts +237 -1
  177. package/notification-center/notification-center.scss +0 -8
  178. package/overflow-items/index.d.ts +161 -2
  179. package/package.json +10 -18
  180. package/popover/index.d.ts +182 -1
  181. package/popover/popover.scss +8 -12
  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/index.d.ts +31 -1
  186. package/progress-spinner/index.d.ts +37 -1
  187. package/radio/index.d.ts +207 -1
  188. package/resizer/index.d.ts +85 -2
  189. package/schematics/collection.json +5 -0
  190. package/schematics/migrations/css-selectors/index.js +1 -1
  191. package/schematics/migrations/deprecated-icons/index.js +1 -1
  192. package/schematics/migrations/new-icons-pack/index.js +1 -1
  193. package/schematics/migrations/v20-upgrade/README.md +72 -0
  194. package/schematics/migrations/v20-upgrade/data.js +274 -0
  195. package/schematics/migrations/v20-upgrade/index.js +222 -0
  196. package/schematics/migrations/v20-upgrade/schema.json +20 -0
  197. package/schematics/migrations.json +10 -0
  198. package/schematics/ng-add/index.js +3 -4
  199. package/scrollbar/index.d.ts +136 -1
  200. package/search-expandable/index.d.ts +98 -1
  201. package/select/index.d.ts +693 -1
  202. package/sidebar/index.d.ts +92 -1
  203. package/sidepanel/index.d.ts +263 -1
  204. package/sidepanel/sidepanel.scss +0 -8
  205. package/skeleton/index.d.ts +26 -2
  206. package/split-button/index.d.ts +46 -1
  207. package/splitter/index.d.ts +141 -1
  208. package/table/index.d.ts +23 -1
  209. package/tabs/_tabs-common.scss +31 -1
  210. package/tabs/_tabs-theme.scss +2 -2
  211. package/tabs/index.d.ts +645 -1
  212. package/tags/index.d.ts +706 -1
  213. package/textarea/index.d.ts +134 -1
  214. package/time-range/index.d.ts +310 -7
  215. package/timepicker/index.d.ts +193 -1
  216. package/timezone/index.d.ts +122 -1
  217. package/title/index.d.ts +41 -1
  218. package/toast/index.d.ts +164 -1
  219. package/toggle/index.d.ts +84 -1
  220. package/tooltip/index.d.ts +163 -1
  221. package/top-bar/index.d.ts +33 -1
  222. package/tree/_tree-theme.scss +4 -0
  223. package/tree/index.d.ts +718 -1
  224. package/tree/tree-option.scss +20 -7
  225. package/tree-select/_tree-select-theme.scss +39 -0
  226. package/tree-select/index.d.ts +377 -1
  227. package/username/index.d.ts +176 -5
  228. package/accordion/accordion-content.d.ts +0 -6
  229. package/accordion/accordion-content.directive.d.ts +0 -27
  230. package/accordion/accordion-header.d.ts +0 -6
  231. package/accordion/accordion-header.directive.d.ts +0 -7
  232. package/accordion/accordion-item.d.ts +0 -77
  233. package/accordion/accordion-trigger.component.d.ts +0 -24
  234. package/accordion/accordion-trigger.directive.d.ts +0 -21
  235. package/accordion/accordion.component.d.ts +0 -79
  236. package/accordion/accordion.module.d.ts +0 -12
  237. package/accordion/public-api.d.ts +0 -9
  238. package/actions-panel/actions-panel-config.d.ts +0 -82
  239. package/actions-panel/actions-panel-container.d.ts +0 -90
  240. package/actions-panel/actions-panel-ref.d.ts +0 -44
  241. package/actions-panel/actions-panel.d.ts +0 -84
  242. package/actions-panel/module.d.ts +0 -7
  243. package/alert/alert.component.d.ts +0 -43
  244. package/alert/alert.module.d.ts +0 -9
  245. package/alert/public-api.d.ts +0 -2
  246. package/app-switcher/app-switcher-animations.d.ts +0 -5
  247. package/app-switcher/app-switcher-dropdown-app.d.ts +0 -11
  248. package/app-switcher/app-switcher-dropdown-site.d.ts +0 -9
  249. package/app-switcher/app-switcher.d.ts +0 -198
  250. package/app-switcher/app-switcher.module.d.ts +0 -10
  251. package/app-switcher/kbq-app-switcher-list-item.d.ts +0 -16
  252. package/app-switcher/public-api.d.ts +0 -6
  253. package/autocomplete/autocomplete-origin.directive.d.ts +0 -12
  254. package/autocomplete/autocomplete-trigger.directive.d.ts +0 -169
  255. package/autocomplete/autocomplete.component.d.ts +0 -88
  256. package/autocomplete/autocomplete.module.d.ts +0 -12
  257. package/autocomplete/public-api.d.ts +0 -4
  258. package/badge/badge.component.d.ts +0 -46
  259. package/badge/badge.module.d.ts +0 -9
  260. package/badge/public-api.d.ts +0 -2
  261. package/breadcrumbs/breadcrumbs.d.ts +0 -127
  262. package/breadcrumbs/breadcrumbs.module.d.ts +0 -7
  263. package/breadcrumbs/breadcrumbs.types.d.ts +0 -22
  264. package/breadcrumbs/public-api.d.ts +0 -5
  265. package/breadcrumbs/roving-focus-group.directive.d.ts +0 -50
  266. package/breadcrumbs/roving-focus-item.directive.d.ts +0 -50
  267. package/breadcrumbs/utils.d.ts +0 -19
  268. package/button/button-group.d.ts +0 -45
  269. package/button/button.component.d.ts +0 -59
  270. package/button/button.dropdown-trigger.directive.d.ts +0 -14
  271. package/button/button.module.d.ts +0 -12
  272. package/button/public-api.d.ts +0 -4
  273. package/button-toggle/button-toggle.component.d.ts +0 -146
  274. package/button-toggle/button-toggle.module.d.ts +0 -9
  275. package/button-toggle/public-api.d.ts +0 -2
  276. package/checkbox/checkbox-config.d.ts +0 -13
  277. package/checkbox/checkbox-module.d.ts +0 -9
  278. package/checkbox/checkbox-required-validator.d.ts +0 -13
  279. package/checkbox/checkbox.d.ts +0 -128
  280. package/checkbox/public-api.d.ts +0 -4
  281. package/clamped-text/clamped-list.d.ts +0 -41
  282. package/clamped-text/clamped-text.d.ts +0 -65
  283. package/clamped-text/constants.d.ts +0 -34
  284. package/clamped-text/module.d.ts +0 -8
  285. package/code-block/code-block-highlight.d.ts +0 -98
  286. package/code-block/code-block.d.ts +0 -255
  287. package/code-block/code-block.module.d.ts +0 -7
  288. package/code-block/public-api.d.ts +0 -4
  289. package/code-block/types.d.ts +0 -36
  290. package/content-panel/content-panel.d.ts +0 -149
  291. package/content-panel/module.d.ts +0 -7
  292. package/core/animation/animation.d.ts +0 -37
  293. package/core/animation/fade-animations.d.ts +0 -2
  294. package/core/animation/index.d.ts +0 -3
  295. package/core/animation/select-animations.d.ts +0 -12
  296. package/core/common-behaviors/checkbox.d.ts +0 -5
  297. package/core/common-behaviors/clipboard.d.ts +0 -12
  298. package/core/common-behaviors/color.d.ts +0 -50
  299. package/core/common-behaviors/common-module.d.ts +0 -38
  300. package/core/common-behaviors/constructor.d.ts +0 -9
  301. package/core/common-behaviors/disabled.d.ts +0 -8
  302. package/core/common-behaviors/error-state.d.ts +0 -46
  303. package/core/common-behaviors/flex.d.ts +0 -4
  304. package/core/common-behaviors/hover.d.ts +0 -15
  305. package/core/common-behaviors/index.d.ts +0 -14
  306. package/core/common-behaviors/orientation.d.ts +0 -4
  307. package/core/common-behaviors/read-state.d.ts +0 -12
  308. package/core/common-behaviors/size.d.ts +0 -4
  309. package/core/common-behaviors/tabindex.d.ts +0 -8
  310. package/core/datetime/date-adapter.d.ts +0 -12
  311. package/core/datetime/date-formats.d.ts +0 -4
  312. package/core/datetime/index.d.ts +0 -2
  313. package/core/error/error-state-matcher.d.ts +0 -39
  314. package/core/form-field/field-sizing-content.d.ts +0 -21
  315. package/core/form-field/form-field-ref.d.ts +0 -28
  316. package/core/form-field/index.d.ts +0 -2
  317. package/core/formatters/date/formatter.d.ts +0 -11
  318. package/core/formatters/date/formatter.pipe.d.ts +0 -139
  319. package/core/formatters/filesize/config.d.ts +0 -66
  320. package/core/formatters/filesize/formatter.d.ts +0 -17
  321. package/core/formatters/filesize/index.d.ts +0 -3
  322. package/core/formatters/filesize/size.d.ts +0 -52
  323. package/core/formatters/index.d.ts +0 -13
  324. package/core/formatters/number/formatter.d.ts +0 -101
  325. package/core/forms/forms-module.d.ts +0 -7
  326. package/core/forms/forms.directive.d.ts +0 -22
  327. package/core/forms/index.d.ts +0 -3
  328. package/core/forms/validators.d.ts +0 -120
  329. package/core/highlight/highlight.pipe.d.ts +0 -10
  330. package/core/highlight/index.d.ts +0 -9
  331. package/core/line/line.d.ts +0 -23
  332. package/core/locales/en-US.d.ts +0 -175
  333. package/core/locales/es-LA.d.ts +0 -174
  334. package/core/locales/formatters.d.ts +0 -190
  335. package/core/locales/index.d.ts +0 -9
  336. package/core/locales/locale-service.d.ts +0 -1112
  337. package/core/locales/locale-service.module.d.ts +0 -6
  338. package/core/locales/pt-BR.d.ts +0 -174
  339. package/core/locales/ru-RU.d.ts +0 -175
  340. package/core/locales/tk-TM.d.ts +0 -175
  341. package/core/locales/types.d.ts +0 -77
  342. package/core/navbar/index.d.ts +0 -1
  343. package/core/navbar/rectangle-item.d.ts +0 -14
  344. package/core/option/action-container.d.ts +0 -5
  345. package/core/option/action.d.ts +0 -38
  346. package/core/option/index.d.ts +0 -5
  347. package/core/option/optgroup.d.ts +0 -16
  348. package/core/option/option-module.d.ts +0 -10
  349. package/core/option/option.d.ts +0 -170
  350. package/core/overlay/overlay-position-map.d.ts +0 -40
  351. package/core/pop-up/constants.d.ts +0 -56
  352. package/core/pop-up/focus-trap-strategy.d.ts +0 -5
  353. package/core/pop-up/index.d.ts +0 -5
  354. package/core/pop-up/pop-up-styles.d.ts +0 -2
  355. package/core/pop-up/pop-up-trigger.d.ts +0 -104
  356. package/core/pop-up/pop-up.d.ts +0 -57
  357. package/core/public-api.d.ts +0 -23
  358. package/core/select/common.d.ts +0 -59
  359. package/core/select/constants.d.ts +0 -22
  360. package/core/select/errors.d.ts +0 -19
  361. package/core/select/events.d.ts +0 -1
  362. package/core/select/index.d.ts +0 -4
  363. package/core/selection/constants.d.ts +0 -4
  364. package/core/selection/index.d.ts +0 -3
  365. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +0 -23
  366. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +0 -8
  367. package/core/services/measure-scrollbar.service.d.ts +0 -11
  368. package/core/services/theme.service.d.ts +0 -41
  369. package/core/title/index.d.ts +0 -1
  370. package/core/title/title-text-ref.d.ts +0 -6
  371. package/core/tokens/index.d.ts +0 -1
  372. package/core/tokens/window.d.ts +0 -5
  373. package/core/utils/dom.d.ts +0 -4
  374. package/core/utils/index.d.ts +0 -2
  375. package/core/utils/public-api.d.ts +0 -1
  376. package/core/utils/utils.d.ts +0 -25
  377. package/core/validation/index.d.ts +0 -1
  378. package/core/validation/validation.d.ts +0 -29
  379. package/core/version.d.ts +0 -2
  380. package/datepicker/calendar-body.component.d.ts +0 -55
  381. package/datepicker/calendar-header.component.d.ts +0 -51
  382. package/datepicker/calendar.component.d.ts +0 -89
  383. package/datepicker/datepicker-animations.d.ts +0 -9
  384. package/datepicker/datepicker-errors.d.ts +0 -2
  385. package/datepicker/datepicker-input.directive.d.ts +0 -221
  386. package/datepicker/datepicker-intl.d.ts +0 -32
  387. package/datepicker/datepicker-module.d.ts +0 -21
  388. package/datepicker/datepicker-toggle.component.d.ts +0 -57
  389. package/datepicker/datepicker.component.d.ts +0 -148
  390. package/datepicker/month-view.component.d.ts +0 -73
  391. package/datepicker/public-api.d.ts +0 -10
  392. package/divider/divider.component.d.ts +0 -18
  393. package/divider/divider.module.d.ts +0 -8
  394. package/divider/public-api.d.ts +0 -2
  395. package/dl/dl.component.d.ts +0 -26
  396. package/dl/dl.module.d.ts +0 -9
  397. package/dl/public-api.d.ts +0 -2
  398. package/dropdown/dropdown-animations.d.ts +0 -11
  399. package/dropdown/dropdown-content.directive.d.ts +0 -32
  400. package/dropdown/dropdown-errors.d.ts +0 -17
  401. package/dropdown/dropdown-item.component.d.ts +0 -52
  402. package/dropdown/dropdown-trigger.directive.d.ts +0 -156
  403. package/dropdown/dropdown.component.d.ts +0 -126
  404. package/dropdown/dropdown.module.d.ts +0 -13
  405. package/dropdown/dropdown.types.d.ts +0 -67
  406. package/dropdown/public-api.d.ts +0 -8
  407. package/dynamic-translation/dynamic-translation.d.ts +0 -72
  408. package/dynamic-translation/module.d.ts +0 -7
  409. package/ellipsis-center/ellipsis-center.directive.d.ts +0 -36
  410. package/ellipsis-center/public-api.d.ts +0 -1
  411. package/empty-state/empty-state.component.d.ts +0 -36
  412. package/empty-state/empty-state.module.d.ts +0 -9
  413. package/empty-state/public-api.d.ts +0 -2
  414. package/fesm2022/koobiq-components-navbar-ic.mjs +0 -863
  415. package/fesm2022/koobiq-components-navbar-ic.mjs.map +0 -1
  416. package/fesm2022/koobiq-components-risk-level.mjs +0 -75
  417. package/fesm2022/koobiq-components-risk-level.mjs.map +0 -1
  418. package/file-upload/dropzone.d.ts +0 -147
  419. package/file-upload/file-upload.d.ts +0 -102
  420. package/file-upload/file-upload.module.d.ts +0 -20
  421. package/file-upload/multiple-file-upload.component.d.ts +0 -138
  422. package/file-upload/primitives/file-drop.d.ts +0 -35
  423. package/file-upload/primitives/file-picker.d.ts +0 -82
  424. package/file-upload/primitives/index.d.ts +0 -2
  425. package/file-upload/public-api.d.ts +0 -7
  426. package/file-upload/single-file-upload.component.d.ts +0 -118
  427. package/filter-bar/filter-bar-button.d.ts +0 -14
  428. package/filter-bar/filter-bar.d.ts +0 -81
  429. package/filter-bar/filter-bar.module.d.ts +0 -17
  430. package/filter-bar/filter-bar.types.d.ts +0 -143
  431. package/filter-bar/filter-refresher.d.ts +0 -5
  432. package/filter-bar/filter-reset.d.ts +0 -15
  433. package/filter-bar/filter-search.d.ts +0 -54
  434. package/filter-bar/filter-search.scss +0 -12
  435. package/filter-bar/filters.d.ts +0 -122
  436. package/filter-bar/pipe-add.d.ts +0 -28
  437. package/filter-bar/pipe.directive.d.ts +0 -13
  438. package/filter-bar/pipes/base-pipe.d.ts +0 -74
  439. package/filter-bar/pipes/pipe-button.d.ts +0 -21
  440. package/filter-bar/pipes/pipe-date.d.ts +0 -65
  441. package/filter-bar/pipes/pipe-datetime.d.ts +0 -66
  442. package/filter-bar/pipes/pipe-multi-select.d.ts +0 -56
  443. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +0 -67
  444. package/filter-bar/pipes/pipe-readonly.d.ts +0 -7
  445. package/filter-bar/pipes/pipe-select.d.ts +0 -30
  446. package/filter-bar/pipes/pipe-state.d.ts +0 -21
  447. package/filter-bar/pipes/pipe-text.d.ts +0 -26
  448. package/filter-bar/pipes/pipe-title.d.ts +0 -27
  449. package/filter-bar/pipes/pipe-tree-select.d.ts +0 -42
  450. package/filter-bar/public-api.d.ts +0 -21
  451. package/form-field/cleaner.d.ts +0 -11
  452. package/form-field/error.d.ts +0 -8
  453. package/form-field/fieldset.d.ts +0 -27
  454. package/form-field/form-field-control.d.ts +0 -40
  455. package/form-field/form-field.d.ts +0 -298
  456. package/form-field/form-field.module.d.ts +0 -19
  457. package/form-field/hint.d.ts +0 -15
  458. package/form-field/label.d.ts +0 -6
  459. package/form-field/password-hint.d.ts +0 -53
  460. package/form-field/password-toggle.d.ts +0 -56
  461. package/form-field/prefix.d.ts +0 -6
  462. package/form-field/public-api.d.ts +0 -15
  463. package/form-field/reactive-password-hint.d.ts +0 -20
  464. package/form-field/stepper.d.ts +0 -59
  465. package/form-field/suffix.d.ts +0 -6
  466. package/form-field/validate.directive.d.ts +0 -53
  467. package/icon/icon-button.component.d.ts +0 -28
  468. package/icon/icon-item.component.d.ts +0 -11
  469. package/icon/icon-registry-providers.d.ts +0 -34
  470. package/icon/icon-registry.d.ts +0 -50
  471. package/icon/icon.component.d.ts +0 -33
  472. package/icon/icon.module.d.ts +0 -9
  473. package/icon/public-api.d.ts +0 -6
  474. package/inline-edit/inline-edit.d.ts +0 -161
  475. package/inline-edit/module.d.ts +0 -7
  476. package/input/input-errors.d.ts +0 -1
  477. package/input/input-number-validators.d.ts +0 -35
  478. package/input/input-number.d.ts +0 -96
  479. package/input/input-password.d.ts +0 -99
  480. package/input/input-value-accessor.d.ts +0 -4
  481. package/input/input.d.ts +0 -109
  482. package/input/input.module.d.ts +0 -14
  483. package/input/public-api.d.ts +0 -6
  484. package/link/link.component.d.ts +0 -53
  485. package/link/link.module.d.ts +0 -8
  486. package/link/public-api.d.ts +0 -2
  487. package/list/list-selection.component.d.ts +0 -196
  488. package/list/list.component.d.ts +0 -18
  489. package/list/list.module.d.ts +0 -11
  490. package/list/public-api.d.ts +0 -3
  491. package/loader-overlay/loader-overlay.component.d.ts +0 -47
  492. package/loader-overlay/loader-overlay.module.d.ts +0 -10
  493. package/loader-overlay/public-api.d.ts +0 -2
  494. package/markdown/markdown.component.d.ts +0 -31
  495. package/markdown/markdown.module.d.ts +0 -7
  496. package/markdown/markdown.service.d.ts +0 -19
  497. package/markdown/markdown.values.d.ts +0 -10
  498. package/markdown/public-api.d.ts +0 -4
  499. package/modal/css-unit.pipe.d.ts +0 -7
  500. package/modal/modal-control.service.d.ts +0 -20
  501. package/modal/modal-ref.class.d.ts +0 -37
  502. package/modal/modal-util.d.ts +0 -15
  503. package/modal/modal.component.d.ts +0 -141
  504. package/modal/modal.directive.d.ts +0 -20
  505. package/modal/modal.module.d.ts +0 -15
  506. package/modal/modal.service.d.ts +0 -42
  507. package/modal/modal.type.d.ts +0 -72
  508. package/modal/public-api.d.ts +0 -6
  509. package/navbar/navbar-brand.component.d.ts +0 -41
  510. package/navbar/navbar-item.component.d.ts +0 -131
  511. package/navbar/navbar-toggle.component.d.ts +0 -23
  512. package/navbar/navbar.component.d.ts +0 -68
  513. package/navbar/navbar.module.d.ts +0 -15
  514. package/navbar/public-api.d.ts +0 -6
  515. package/navbar/vertical-navbar.component.d.ts +0 -47
  516. package/navbar-ic/_navbar-ic-theme.scss +0 -81
  517. package/navbar-ic/index.d.ts +0 -1
  518. package/navbar-ic/navbar-ic-divider.scss +0 -7
  519. package/navbar-ic/navbar-ic-header.d.ts +0 -22
  520. package/navbar-ic/navbar-ic-header.scss +0 -49
  521. package/navbar-ic/navbar-ic-item.d.ts +0 -144
  522. package/navbar-ic/navbar-ic-item.scss +0 -92
  523. package/navbar-ic/navbar-ic-tokens.scss +0 -22
  524. package/navbar-ic/navbar-ic.animation.d.ts +0 -3
  525. package/navbar-ic/navbar-ic.d.ts +0 -118
  526. package/navbar-ic/navbar-ic.module.d.ts +0 -14
  527. package/navbar-ic/navbar-ic.scss +0 -32
  528. package/navbar-ic/public-api.d.ts +0 -4
  529. package/notification-center/notification-center-animations.d.ts +0 -5
  530. package/notification-center/notification-center.d.ts +0 -156
  531. package/notification-center/notification-center.module.d.ts +0 -7
  532. package/notification-center/notification-center.service.d.ts +0 -72
  533. package/notification-center/notification-item.d.ts +0 -27
  534. package/notification-center/public-api.d.ts +0 -4
  535. package/overflow-items/module.d.ts +0 -7
  536. package/overflow-items/overflow-items.d.ts +0 -152
  537. package/popover/popover-animations.d.ts +0 -4
  538. package/popover/popover-confirm.component.d.ts +0 -28
  539. package/popover/popover.component.d.ts +0 -139
  540. package/popover/popover.module.d.ts +0 -14
  541. package/popover/public-api.d.ts +0 -4
  542. package/progress-bar/progress-bar.component.d.ts +0 -20
  543. package/progress-bar/progress-bar.module.d.ts +0 -8
  544. package/progress-bar/public-api.d.ts +0 -2
  545. package/progress-spinner/progress-spinner.component.d.ts +0 -26
  546. package/progress-spinner/progress-spinner.module.d.ts +0 -9
  547. package/progress-spinner/public-api.d.ts +0 -2
  548. package/public-api.d.ts +0 -1
  549. package/radio/public-api.d.ts +0 -2
  550. package/radio/radio.component.d.ts +0 -200
  551. package/radio/radio.module.d.ts +0 -8
  552. package/resizer/module.d.ts +0 -7
  553. package/resizer/resizer.d.ts +0 -75
  554. package/risk-level/_risk-level-theme.scss +0 -74
  555. package/risk-level/index.d.ts +0 -1
  556. package/risk-level/public-api.d.ts +0 -2
  557. package/risk-level/risk-level-tokens.scss +0 -33
  558. package/risk-level/risk-level.component.d.ts +0 -21
  559. package/risk-level/risk-level.component.scss +0 -22
  560. package/risk-level/risk-level.module.d.ts +0 -12
  561. package/scrollbar/public-api.d.ts +0 -4
  562. package/scrollbar/scrollbar.component.d.ts +0 -37
  563. package/scrollbar/scrollbar.directive.d.ts +0 -29
  564. package/scrollbar/scrollbar.module.d.ts +0 -8
  565. package/scrollbar/scrollbar.types.d.ts +0 -33
  566. package/search-expandable/public-api.d.ts +0 -2
  567. package/search-expandable/search-expandable.d.ts +0 -89
  568. package/search-expandable/search-expandable.module.d.ts +0 -7
  569. package/select/public-api.d.ts +0 -4
  570. package/select/select-common.d.ts +0 -30
  571. package/select/select-option.directive.d.ts +0 -21
  572. package/select/select.component.d.ts +0 -627
  573. package/select/select.module.d.ts +0 -17
  574. package/sidebar/public-api.d.ts +0 -2
  575. package/sidebar/sidebar-animations.d.ts +0 -8
  576. package/sidebar/sidebar.component.d.ts +0 -80
  577. package/sidebar/sidebar.module.d.ts +0 -8
  578. package/sidepanel/public-api.d.ts +0 -6
  579. package/sidepanel/sidepanel-animations.d.ts +0 -20
  580. package/sidepanel/sidepanel-config.d.ts +0 -43
  581. package/sidepanel/sidepanel-container.component.d.ts +0 -67
  582. package/sidepanel/sidepanel-directives.d.ts +0 -61
  583. package/sidepanel/sidepanel-ref.d.ts +0 -36
  584. package/sidepanel/sidepanel.module.d.ts +0 -14
  585. package/sidepanel/sidepanel.service.d.ts +0 -58
  586. package/skeleton/module.d.ts +0 -7
  587. package/skeleton/skeleton.d.ts +0 -17
  588. package/split-button/public-api.d.ts +0 -2
  589. package/split-button/split-button.d.ts +0 -37
  590. package/split-button/split-button.module.d.ts +0 -7
  591. package/splitter/public-api.d.ts +0 -2
  592. package/splitter/splitter.component.d.ts +0 -136
  593. package/splitter/splitter.module.d.ts +0 -8
  594. package/table/public-api.d.ts +0 -2
  595. package/table/table.component.d.ts +0 -12
  596. package/table/table.module.d.ts +0 -9
  597. package/tabs/paginated-tab-header.d.ts +0 -182
  598. package/tabs/public-api.d.ts +0 -10
  599. package/tabs/tab-body.component.d.ts +0 -95
  600. package/tabs/tab-content.directive.d.ts +0 -9
  601. package/tabs/tab-group.component.d.ts +0 -137
  602. package/tabs/tab-header.component.d.ts +0 -32
  603. package/tabs/tab-label-wrapper.directive.d.ts +0 -29
  604. package/tabs/tab-label.directive.d.ts +0 -9
  605. package/tabs/tab-nav-bar.d.ts +0 -91
  606. package/tabs/tab.component.d.ts +0 -68
  607. package/tabs/tabs-animations.d.ts +0 -4
  608. package/tabs/tabs.module.d.ts +0 -20
  609. package/tags/public-api.d.ts +0 -5
  610. package/tags/tag-default-options.d.ts +0 -13
  611. package/tags/tag-input.d.ts +0 -110
  612. package/tags/tag-list.component.d.ts +0 -373
  613. package/tags/tag-text-control.d.ts +0 -10
  614. package/tags/tag.component.d.ts +0 -272
  615. package/tags/tag.module.d.ts +0 -10
  616. package/textarea/public-api.d.ts +0 -2
  617. package/textarea/textarea.component.d.ts +0 -123
  618. package/textarea/textarea.module.d.ts +0 -10
  619. package/time-range/constants.d.ts +0 -19
  620. package/time-range/module.d.ts +0 -10
  621. package/time-range/time-range-editor.d.ts +0 -65
  622. package/time-range/time-range-title-as-form-field.d.ts +0 -41
  623. package/time-range/time-range-title.d.ts +0 -18
  624. package/time-range/time-range.d.ts +0 -78
  625. package/time-range/time-range.service.d.ts +0 -25
  626. package/time-range/types.d.ts +0 -69
  627. package/timepicker/public-api.d.ts +0 -3
  628. package/timepicker/timepicker.constants.d.ts +0 -22
  629. package/timepicker/timepicker.directive.d.ts +0 -159
  630. package/timepicker/timepicker.module.d.ts +0 -11
  631. package/timezone/cities-by-filter.pipe.d.ts +0 -7
  632. package/timezone/public-api.d.ts +0 -6
  633. package/timezone/timezone-option.component.d.ts +0 -15
  634. package/timezone/timezone-option.directive.d.ts +0 -22
  635. package/timezone/timezone-select.component.d.ts +0 -16
  636. package/timezone/timezone.models.d.ts +0 -16
  637. package/timezone/timezone.module.d.ts +0 -20
  638. package/timezone/timezone.utils.d.ts +0 -22
  639. package/timezone/utc-offset.pipe.d.ts +0 -9
  640. package/title/public-api.d.ts +0 -2
  641. package/title/title.directive.d.ts +0 -33
  642. package/title/title.module.d.ts +0 -8
  643. package/toast/public-api.d.ts +0 -5
  644. package/toast/toast-animations.d.ts +0 -5
  645. package/toast/toast-container.component.d.ts +0 -19
  646. package/toast/toast.component.d.ts +0 -41
  647. package/toast/toast.module.d.ts +0 -8
  648. package/toast/toast.service.d.ts +0 -61
  649. package/toast/toast.type.d.ts +0 -44
  650. package/toggle/public-api.d.ts +0 -2
  651. package/toggle/toggle.component.d.ts +0 -77
  652. package/toggle/toggle.module.d.ts +0 -8
  653. package/tooltip/public-api.d.ts +0 -2
  654. package/tooltip/tooltip.animations.d.ts +0 -8
  655. package/tooltip/tooltip.component.d.ts +0 -156
  656. package/tooltip/tooltip.module.d.ts +0 -7
  657. package/top-bar/module.d.ts +0 -7
  658. package/top-bar/public-api.d.ts +0 -2
  659. package/top-bar/top-bar.d.ts +0 -25
  660. package/tree/control/base-tree-control.d.ts +0 -40
  661. package/tree/control/flat-tree-control.d.ts +0 -55
  662. package/tree/control/flat-tree-control.filters.d.ts +0 -27
  663. package/tree/control/nested-tree-control.d.ts +0 -19
  664. package/tree/control/tree-control.d.ts +0 -44
  665. package/tree/data-source/flat-data-source.d.ts +0 -80
  666. package/tree/data-source/nested-data-source.d.ts +0 -15
  667. package/tree/node.d.ts +0 -34
  668. package/tree/outlet.d.ts +0 -9
  669. package/tree/padding.directive.d.ts +0 -45
  670. package/tree/public-api.d.ts +0 -16
  671. package/tree/toggle.d.ts +0 -28
  672. package/tree/tree-base.d.ts +0 -96
  673. package/tree/tree-errors.d.ts +0 -25
  674. package/tree/tree-option.component.d.ts +0 -89
  675. package/tree/tree-selection.component.d.ts +0 -156
  676. package/tree/tree.d.ts +0 -6
  677. package/tree/tree.module.d.ts +0 -16
  678. package/tree-select/public-api.d.ts +0 -2
  679. package/tree-select/tree-select.component.d.ts +0 -360
  680. package/tree-select/tree-select.module.d.ts +0 -15
  681. package/username/constants.d.ts +0 -15
  682. package/username/module.d.ts +0 -8
  683. package/username/types.d.ts +0 -62
  684. package/username/username.d.ts +0 -68
  685. package/username/username.pipe.d.ts +0 -23
@@ -1,24 +1,21 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, ChangeDetectorRef, DestroyRef, afterNextRender, TemplateRef, Directive, ElementRef, Input, booleanAttribute, ChangeDetectionStrategy, ViewEncapsulation, Component, ContentChild, ContentChildren, viewChild, ViewChild, ViewChildren, EventEmitter, Output, input, numberAttribute, Injector, ViewContainerRef, NgModule } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import * as i6 from '@koobiq/components/core';
5
- import { isMac, KbqComponentColors, KBQ_TITLE_TEXT_REF, DateAdapter, DateFormatter, PopUpPlacements, KbqFormattersModule, kbqDisableLegacyValidationDirectiveProvider, KbqPseudoCheckboxModule, KbqOption, KbqHighlightModule, ruRULocaleData, PopUpSizes, KbqFormsModule, KBQ_LOCALE_SERVICE, KbqOptionModule } from '@koobiq/components/core';
2
+ import { InjectionToken, inject, ChangeDetectorRef, DestroyRef, afterNextRender, TemplateRef, Directive, ElementRef, Input, input, booleanAttribute, ViewEncapsulation, ChangeDetectionStrategy, Component, ContentChild, ContentChildren, viewChild, viewChildren, output, contentChild, EventEmitter, Output, Injector, ViewContainerRef, NgModule } from '@angular/core';
3
+ import { takeUntilDestroyed, outputToObservable } from '@angular/core/rxjs-interop';
4
+ import * as i8$1 from '@koobiq/components/core';
5
+ import { isMac, KbqComponentColors, KBQ_TITLE_TEXT_REF, DateAdapter, DateFormatter, PopUpPlacements, ENTER, KbqFormattersModule, KbqOption, KbqPseudoCheckboxModule, KbqHighlightModule, ruRULocaleData, PopUpSizes, KbqFormsModule, KBQ_LOCALE_SERVICE, KbqOptionModule } from '@koobiq/components/core';
6
6
  import * as i4$1 from '@koobiq/components/divider';
7
7
  import { KbqDividerModule } from '@koobiq/components/divider';
8
- import { Subject, merge, Subscription, throttleTime, Observable, of, BehaviorSubject, distinctUntilChanged as distinctUntilChanged$1, debounceTime as debounceTime$1 } from 'rxjs';
8
+ import { Subject, merge, Subscription, throttleTime, Observable, of, BehaviorSubject } from 'rxjs';
9
9
  import * as i1$1 from '@angular/forms';
10
10
  import { FormGroup, FormControl, ReactiveFormsModule, FormsModule, UntypedFormControl, Validators } from '@angular/forms';
11
- import { ENTER } from '@koobiq/cdk/keycodes';
12
11
  import * as i1 from '@koobiq/components/button';
13
12
  import { KbqButton, KbqButtonStyles, KbqButtonModule } from '@koobiq/components/button';
14
13
  import * as i8 from '@koobiq/components/datepicker';
15
14
  import { KbqDatepickerModule } from '@koobiq/components/datepicker';
16
- import * as i2 from '@koobiq/components/form-field';
17
- import { KbqFormFieldModule } from '@koobiq/components/form-field';
18
- import * as i3 from '@koobiq/components/icon';
15
+ import * as i2 from '@koobiq/components/icon';
19
16
  import { KbqIconModule, KbqIcon } from '@koobiq/components/icon';
20
- import * as i4 from '@koobiq/components/input';
21
- import { KbqInputModule, KbqInput } from '@koobiq/components/input';
17
+ import * as i3 from '@koobiq/components/input';
18
+ import { KbqInputModule } from '@koobiq/components/input';
22
19
  import * as i7 from '@koobiq/components/list';
23
20
  import { KbqListSelection, KbqListModule } from '@koobiq/components/list';
24
21
  import * as i5 from '@koobiq/components/popover';
@@ -28,24 +25,25 @@ import { KbqTimepickerModule } from '@koobiq/components/timepicker';
28
25
  import * as i5$2 from '@koobiq/components/title';
29
26
  import { KbqTitleModule } from '@koobiq/components/title';
30
27
  import { filter, delay, debounceTime, map, distinctUntilChanged } from 'rxjs/operators';
31
- import * as i2$1 from '@koobiq/components/tooltip';
28
+ import * as i1$2 from '@koobiq/components/tooltip';
32
29
  import { KbqTooltipTrigger, KbqToolTipModule } from '@koobiq/components/tooltip';
33
- import { NgClass, NgTemplateOutlet, AsyncPipe, NgIf } from '@angular/common';
34
- import * as i6$1 from '@koobiq/components/badge';
30
+ import * as i4 from '@koobiq/components/form-field';
31
+ import { NgTemplateOutlet, AsyncPipe, NgIf } from '@angular/common';
32
+ import * as i6 from '@koobiq/components/badge';
35
33
  import { KbqBadgeModule } from '@koobiq/components/badge';
36
34
  import * as i3$1 from '@koobiq/components/select';
37
- import { KbqSelectModule, KbqSelect } from '@koobiq/components/select';
38
- import * as i7$1 from '@koobiq/components/tree';
39
- import { kbqTreeSelectAllValue, KbqTreeFlattener, FlatTreeControl, KbqTreeFlatDataSource, KbqTreeModule, KbqTreeSelection } from '@koobiq/components/tree';
40
- import * as i8$1 from '@koobiq/components/tree-select';
41
- import { KbqTreeSelectModule, KbqTreeSelect } from '@koobiq/components/tree-select';
35
+ import { KbqSelect, KbqSelectModule } from '@koobiq/components/select';
36
+ import * as i6$1 from '@koobiq/components/tree';
37
+ import { kbqTreeSelectAllValue, KbqTreeSelection, KbqTreeFlattener, FlatTreeControl, KbqTreeFlatDataSource, KbqTreeModule } from '@koobiq/components/tree';
38
+ import * as i7$1 from '@koobiq/components/tree-select';
39
+ import { KbqTreeSelect, KbqTreeSelectModule } from '@koobiq/components/tree-select';
42
40
  import * as i5$1 from '@koobiq/components/textarea';
43
41
  import { KbqTextareaModule } from '@koobiq/components/textarea';
44
42
  import { FocusMonitor } from '@angular/cdk/a11y';
45
43
  import * as i10 from '@koobiq/components/alert';
46
44
  import { KbqAlertModule } from '@koobiq/components/alert';
47
45
  import * as i3$2 from '@koobiq/components/dropdown';
48
- import { KbqDropdownModule, KbqDropdownTrigger } from '@koobiq/components/dropdown';
46
+ import { KbqDropdownTrigger, KbqDropdownModule } from '@koobiq/components/dropdown';
49
47
 
50
48
  /** Injection Token for providing configuration of filter-bar */
51
49
  const KBQ_PIPE_DATA = new InjectionToken('KBQ_PIPE_DATA');
@@ -131,13 +129,13 @@ class KbqBasePipe {
131
129
  onClear() {
132
130
  this.data.value = null;
133
131
  this.stateChanges.next();
134
- this.filterBar?.onClearPipe.next(this.data);
132
+ this.filterBar?.onClearPipe.emit(this.data);
135
133
  this.filterBar?.onChangePipe.next(this.data);
136
134
  }
137
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqBasePipe, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
138
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqBasePipe, isStandalone: true, host: { properties: { "class": "\"kbq-pipe__\" + data.type", "class.kbq-pipe_empty": "isEmpty", "class.kbq-pipe_cleanable": "data.cleanable", "class.kbq-pipe_removable": "data.removable", "class.kbq-pipe_disabled": "data.disabled" }, classAttribute: "kbq-pipe" }, ngImport: i0 }); }
135
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqBasePipe, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
136
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqBasePipe, isStandalone: true, host: { properties: { "class": "\"kbq-pipe__\" + data.type", "class.kbq-pipe_empty": "isEmpty", "class.kbq-pipe_cleanable": "data.cleanable", "class.kbq-pipe_removable": "data.removable", "class.kbq-pipe_disabled": "data.disabled" }, classAttribute: "kbq-pipe" }, ngImport: i0 }); }
139
137
  }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqBasePipe, decorators: [{
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqBasePipe, decorators: [{
141
139
  type: Directive,
142
140
  args: [{
143
141
  host: {
@@ -171,10 +169,10 @@ class KbqPipeMinWidth {
171
169
  this.filterBar?.changes.pipe(delay(0)).subscribe(this.update);
172
170
  afterNextRender({ read: this.update });
173
171
  }
174
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeMinWidth, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
175
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqPipeMinWidth, isStandalone: true, selector: "[kbqPipeMinWidth]", host: { properties: { "style.min-width": "minWidth" } }, ngImport: i0 }); }
172
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeMinWidth, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
173
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqPipeMinWidth, isStandalone: true, selector: "[kbqPipeMinWidth]", host: { properties: { "style.min-width": "minWidth" } }, ngImport: i0 }); }
176
174
  }
177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeMinWidth, decorators: [{
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeMinWidth, decorators: [{
178
176
  type: Directive,
179
177
  args: [{
180
178
  selector: '[kbqPipeMinWidth]',
@@ -206,6 +204,8 @@ class KbqPipeState {
206
204
  };
207
205
  }
208
206
  /** calculates and updates styles of button from pipe state */
207
+ // TODO: Skipped for migration because:
208
+ // Accessor inputs cannot be migrated as they are too complex.
209
209
  get state() {
210
210
  return this._state;
211
211
  }
@@ -216,10 +216,10 @@ class KbqPipeState {
216
216
  ngOnInit() {
217
217
  this.filterBar.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.updateState);
218
218
  }
219
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeState, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
220
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqPipeState, isStandalone: true, selector: "[kbqPipeState]", inputs: { state: ["kbqPipeState", "state"] }, ngImport: i0 }); }
219
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeState, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
220
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqPipeState, isStandalone: true, selector: "[kbqPipeState]", inputs: { state: ["kbqPipeState", "state"] }, ngImport: i0 }); }
221
221
  }
222
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeState, decorators: [{
222
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeState, decorators: [{
223
223
  type: Directive,
224
224
  args: [{
225
225
  selector: '[kbqPipeState]'
@@ -243,13 +243,13 @@ class KbqPipeButton {
243
243
  /** @docs-private */
244
244
  this.changeDetectorRef = inject(ChangeDetectorRef);
245
245
  /** enables/disables read-only state */
246
- this.readonly = false;
246
+ this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
247
247
  merge(this.pipe.stateChanges, this.filterBar.changes)
248
248
  .pipe(takeUntilDestroyed())
249
249
  .subscribe(() => this.changeDetectorRef.markForCheck());
250
250
  }
251
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
252
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.21", type: KbqPipeButton, isStandalone: true, selector: "kbq-pipe-button", inputs: { readonly: ["readonly", "readonly", booleanAttribute] }, host: { classAttribute: "kbq-pipe-button" }, ngImport: i0, template: `
251
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
252
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.25", type: KbqPipeButton, isStandalone: true, selector: "kbq-pipe-button", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "kbq-pipe-button" }, ngImport: i0, template: `
253
253
  <button
254
254
  kbqTooltip="{{ pipe.data.cleanable ? localeData.clearButtonTooltip : localeData.removeButtonTooltip }}"
255
255
  class="kbq-pipe__remove-button"
@@ -261,9 +261,9 @@ class KbqPipeButton {
261
261
  >
262
262
  <i kbq-icon="kbq-xmark-s_16" [color]="pipe.data.disabled ? 'empty' : 'contrast'"></i>
263
263
  </button>
264
- `, isInline: true, styles: [".kbq-pipe-button{display:flex;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "directive", type: KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["forDisabledComponent", "ignoreTooltipPointerEvents", "hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
264
+ `, isInline: true, styles: [".kbq-pipe-button{display:flex;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "directive", type: KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["forDisabledComponent", "ignoreTooltipPointerEvents", "hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset", "kbqTooltipModifier", "kbqTooltipHeader"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
265
265
  }
266
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeButton, decorators: [{
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeButton, decorators: [{
267
267
  type: Component,
268
268
  args: [{ selector: 'kbq-pipe-button', imports: [
269
269
  KbqIconModule,
@@ -282,13 +282,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
282
282
  >
283
283
  <i kbq-icon="kbq-xmark-s_16" [color]="pipe.data.disabled ? 'empty' : 'contrast'"></i>
284
284
  </button>
285
- `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
285
+ `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
286
286
  class: 'kbq-pipe-button'
287
287
  }, styles: [".kbq-pipe-button{display:flex;position:relative}\n"] }]
288
- }], ctorParameters: () => [], propDecorators: { readonly: [{
289
- type: Input,
290
- args: [{ transform: booleanAttribute }]
291
- }] } });
288
+ }], ctorParameters: () => [], propDecorators: { readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }] } });
292
289
 
293
290
  // todo DS-3672
294
291
  class KbqPipeTitleDirective extends KbqTooltipTrigger {
@@ -307,6 +304,7 @@ class KbqPipeTitleDirective extends KbqTooltipTrigger {
307
304
  constructor() {
308
305
  super();
309
306
  this.componentInstance = inject(KBQ_TITLE_TEXT_REF, { optional: true, host: true });
307
+ this.viewValue = input(undefined, ...(ngDevMode ? [{ debugName: "viewValue", alias: 'kbqPipeTitle' }] : [{ alias: 'kbqPipeTitle' }]));
310
308
  this.resizeStream = new Subject();
311
309
  this.debounceInterval = 100;
312
310
  this.resizeSubscription = Subscription.EMPTY;
@@ -319,7 +317,7 @@ class KbqPipeTitleDirective extends KbqTooltipTrigger {
319
317
  ngAfterViewInit() {
320
318
  this.parentContainer = this.parentContainer || this.componentInstance?.parentTextElement || this.elementRef;
321
319
  this.childContainer = this.childContainer || this.componentInstance?.textElement || this.elementRef;
322
- this.content = this.viewValue;
320
+ this.content = this.viewValue();
323
321
  this.resizeSubscription = this.resizeStream
324
322
  .pipe(debounceTime(this.debounceInterval))
325
323
  .subscribe(() => (this.disabled = !this.isOverflown));
@@ -345,7 +343,7 @@ class KbqPipeTitleDirective extends KbqTooltipTrigger {
345
343
  .pipe(throttleTime(this.debounceInterval))
346
344
  .subscribe(() => {
347
345
  this.disabled = !this.isOverflown;
348
- this.content = this.viewValue;
346
+ this.content = this.viewValue();
349
347
  });
350
348
  }
351
349
  createMutationObserver() {
@@ -360,24 +358,21 @@ class KbqPipeTitleDirective extends KbqTooltipTrigger {
360
358
  return () => mutationObserver.disconnect();
361
359
  });
362
360
  }
363
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
364
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqPipeTitleDirective, isStandalone: true, selector: "[kbqPipeTitle]", inputs: { viewValue: ["kbqPipeTitle", "viewValue"] }, host: { listeners: { "mouseenter": "handleElementEnter()", "mouseleave": "hideTooltip()", "window:resize": "resizeStream.next($event)" } }, queries: [{ propertyName: "parentContainer", first: true, predicate: ["kbqTitleContainer"], descendants: true }, { propertyName: "childContainer", predicate: ["kbqTitleText"], descendants: true }], exportAs: ["kbqPipeTitle"], usesInheritance: true, ngImport: i0 }); }
361
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
362
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: KbqPipeTitleDirective, isStandalone: true, selector: "[kbqPipeTitle]", inputs: { viewValue: { classPropertyName: "viewValue", publicName: "kbqPipeTitle", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "handleElementEnter()", "mouseleave": "hideTooltip()", "window:resize": "resizeStream.next($event)" } }, queries: [{ propertyName: "parentContainer", first: true, predicate: ["kbqTitleContainer"], descendants: true }, { propertyName: "childContainer", predicate: ["kbqTitleText"], descendants: true }], exportAs: ["kbqPipeTitle"], usesInheritance: true, ngImport: i0 }); }
365
363
  }
366
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeTitleDirective, decorators: [{
364
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeTitleDirective, decorators: [{
367
365
  type: Directive,
368
366
  args: [{
369
367
  selector: '[kbqPipeTitle]',
370
- exportAs: 'kbqPipeTitle',
371
368
  host: {
372
369
  '(mouseenter)': 'handleElementEnter()',
373
370
  '(mouseleave)': 'hideTooltip()',
374
371
  '(window:resize)': 'resizeStream.next($event)'
375
- }
372
+ },
373
+ exportAs: 'kbqPipeTitle'
376
374
  }]
377
- }], ctorParameters: () => [], propDecorators: { viewValue: [{
378
- type: Input,
379
- args: [{ alias: 'kbqPipeTitle' }]
380
- }], childContainer: [{
375
+ }], ctorParameters: () => [], propDecorators: { viewValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbqPipeTitle", required: false }] }], childContainer: [{
381
376
  type: ContentChildren,
382
377
  args: ['kbqTitleText', { descendants: true }]
383
378
  }], parentContainer: [{
@@ -403,6 +398,8 @@ class KbqPipeDateComponent extends KbqBasePipe {
403
398
  /** @docs-private */
404
399
  this.showEndCalendar = false;
405
400
  /** @docs-private */
401
+ this.popover = viewChild.required('popover');
402
+ /** @docs-private */
406
403
  this.listSelection = viewChild.required('listSelection', { read: KbqListSelection });
407
404
  /** @docs-private */
408
405
  this.returnButton = viewChild.required('returnButton', { read: KbqButton });
@@ -452,9 +449,9 @@ class KbqPipeDateComponent extends KbqBasePipe {
452
449
  }
453
450
  ngAfterViewInit() {
454
451
  super.ngAfterViewInit();
455
- this.popover.visibleChange
456
- .pipe(filter((visible) => !visible), takeUntilDestroyed(this.destroyRef))
457
- .subscribe(() => this.filterBar?.onClosePipe.next(this.data));
452
+ this.popover()
453
+ .visibleChange.pipe(filter((visible) => !visible), takeUntilDestroyed(this.destroyRef))
454
+ .subscribe(() => this.filterBar?.onClosePipe.emit(this.data));
458
455
  }
459
456
  /** keydown handler
460
457
  * @docs-private */
@@ -473,13 +470,13 @@ class KbqPipeDateComponent extends KbqBasePipe {
473
470
  };
474
471
  this.stateChanges.next();
475
472
  this.filterBar?.onChangePipe.next(this.data);
476
- this.popover.hide();
473
+ this.popover().hide();
477
474
  }
478
475
  onSelect(item) {
479
476
  this.data.value = item;
480
477
  this.stateChanges.next();
481
478
  this.filterBar?.onChangePipe.next(this.data);
482
- this.popover.hide();
479
+ this.popover().hide();
483
480
  }
484
481
  showPeriod() {
485
482
  this.isListMode = false;
@@ -487,18 +484,18 @@ class KbqPipeDateComponent extends KbqBasePipe {
487
484
  this.showEndCalendar = false;
488
485
  this.initFormGroup();
489
486
  setTimeout(() => {
490
- this.popover.updatePosition(true);
487
+ this.popover().updatePosition(true);
491
488
  this.returnButton().focus();
492
489
  });
493
490
  }
494
491
  showList() {
495
492
  this.isListMode = true;
496
493
  setTimeout(() => this.listSelection().focus());
497
- this.popover.updatePosition(true);
494
+ this.popover().updatePosition(true);
498
495
  }
499
496
  /** opens popover */
500
497
  open() {
501
- this.popover.show();
498
+ this.popover().show();
502
499
  }
503
500
  onSelectStartDate(value) {
504
501
  this.formGroup.controls.start.setValue(value);
@@ -509,7 +506,7 @@ class KbqPipeDateComponent extends KbqBasePipe {
509
506
  onFocusStartInput() {
510
507
  this.showStartCalendar = true;
511
508
  this.showEndCalendar = false;
512
- this.popover.updatePosition(true);
509
+ this.popover().updatePosition(true);
513
510
  }
514
511
  onFocusEndInput() {
515
512
  this.showEndCalendar = true;
@@ -525,20 +522,18 @@ class KbqPipeDateComponent extends KbqBasePipe {
525
522
  end: new FormControl(this.end || this.defaultEnd)
526
523
  });
527
524
  }
528
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
529
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: KbqPipeDateComponent, isStandalone: true, selector: "kbq-pipe-date", providers: [
530
- kbqDisableLegacyValidationDirectiveProvider(),
525
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
526
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqPipeDateComponent, isStandalone: true, selector: "kbq-pipe-date", providers: [
531
527
  {
532
528
  provide: KbqBasePipe,
533
529
  useExisting: this
534
530
  }
535
- ], viewQueries: [{ propertyName: "listSelection", first: true, predicate: ["listSelection"], descendants: true, read: KbqListSelection, isSignal: true }, { propertyName: "returnButton", first: true, predicate: ["returnButton"], descendants: true, read: KbqButton, isSignal: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <!-- prevents [kbq-icon] from matching icon slot in kbq-list-option, keeping chevron after label text -->\n <ng-container>\n <i kbq-icon=\"kbq-chevron-right_16\" color=\"contrast-fade\"></i>\n </ng-container>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding:var(--kbq-size-xs) var(--kbq-size-xxs) var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content minmax(min-content,1fr);padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{width:auto}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date{width:136px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker{flex:1;margin-left:-1px;width:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{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"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "component", type: i2.KbqHint, selector: "kbq-hint", inputs: ["id", "fillTextOff", "compact"], exportAs: ["kbqHint"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i4.MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["hideIfNotInViewPort", "kbqPopoverPreventClose", "defaultPaddings", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "kbqPopoverStickToWindow", "container", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "kbqPopoverContext", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqListModule }, { kind: "component", type: i7.KbqListSelection, selector: "kbq-list-selection", inputs: ["autoSelect", "noUnselectLast", "horizontal", "tabIndex", "disabled", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["kbqListSelection"] }, { kind: "component", type: i7.KbqListOption, selector: "kbq-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["kbqListOption"] }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i8.KbqCalendar, selector: "kbq-calendar", inputs: ["startAt", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "yearSelected", "monthSelected", "userSelection"], exportAs: ["kbqCalendar"] }, { kind: "directive", type: i8.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["errorStateMatcher", "placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqFormattersModule }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
531
+ ], viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }, { propertyName: "listSelection", first: true, predicate: ["listSelection"], descendants: true, read: KbqListSelection, isSignal: true }, { propertyName: "returnButton", first: true, predicate: ["returnButton"], descendants: true, read: KbqButton, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverSize]=\"'custom'\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <!-- prevents [kbq-icon] from matching icon slot in kbq-list-option, keeping chevron after label text -->\n <ng-container>\n <i kbq-icon=\"kbq-chevron-right_16\" color=\"contrast-fade\"></i>\n </ng-container>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding:var(--kbq-size-xs) var(--kbq-size-xxs) var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content minmax(min-content,1fr);padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{width:auto}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date{width:136px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker{flex:1;margin-left:-1px;width:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{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"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "component", type: i4.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i4.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "component", type: i4.KbqHint, selector: "kbq-hint", inputs: ["id", "fillTextOff", "compact"], exportAs: ["kbqHint"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["hideIfNotInViewPort", "kbqPopoverPreventClose", "defaultPaddings", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "kbqPopoverStickToWindow", "container", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "kbqPopoverContext", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqListModule }, { kind: "component", type: i7.KbqListSelection, selector: "kbq-list-selection", inputs: ["autoSelect", "noUnselectLast", "horizontal", "tabIndex", "disabled", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["kbqListSelection"] }, { kind: "component", type: i7.KbqListOption, selector: "kbq-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["kbqListOption"] }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i8.KbqCalendar, selector: "kbq-calendar", inputs: ["startAt", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "yearSelected", "monthSelected", "userSelection"], exportAs: ["kbqCalendar"] }, { kind: "directive", type: i8.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["errorStateMatcher", "placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqFormattersModule }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
536
532
  }
537
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeDateComponent, decorators: [{
533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeDateComponent, decorators: [{
538
534
  type: Component,
539
535
  args: [{ selector: 'kbq-pipe-date', imports: [
540
536
  ReactiveFormsModule,
541
- KbqFormFieldModule,
542
537
  KbqIconModule,
543
538
  KbqInputModule,
544
539
  KbqDividerModule,
@@ -553,17 +548,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
553
548
  KbqTitleModule,
554
549
  KbqPipeTitleDirective,
555
550
  FormsModule
556
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
557
- kbqDisableLegacyValidationDirectiveProvider(),
551
+ ], providers: [
558
552
  {
559
553
  provide: KbqBasePipe,
560
554
  useExisting: this
561
555
  }
562
- ], template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <!-- prevents [kbq-icon] from matching icon slot in kbq-list-option, keeping chevron after label text -->\n <ng-container>\n <i kbq-icon=\"kbq-chevron-right_16\" color=\"contrast-fade\"></i>\n </ng-container>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding:var(--kbq-size-xs) var(--kbq-size-xxs) var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content minmax(min-content,1fr);padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{width:auto}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date{width:136px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker{flex:1;margin-left:-1px;width:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{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"] }]
563
- }], propDecorators: { popover: [{
564
- type: ViewChild,
565
- args: ['popover']
566
- }] } });
556
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverSize]=\"'custom'\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <!-- prevents [kbq-icon] from matching icon slot in kbq-list-option, keeping chevron after label text -->\n <ng-container>\n <i kbq-icon=\"kbq-chevron-right_16\" color=\"contrast-fade\"></i>\n </ng-container>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding:var(--kbq-size-xs) var(--kbq-size-xxs) var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content minmax(min-content,1fr);padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{width:auto}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date{width:136px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker{flex:1;margin-left:-1px;width:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{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"] }]
557
+ }], propDecorators: { popover: [{ type: i0.ViewChild, args: ['popover', { isSignal: true }] }], listSelection: [{ type: i0.ViewChild, args: ['listSelection', { ...{ read: KbqListSelection }, isSignal: true }] }], returnButton: [{ type: i0.ViewChild, args: ['returnButton', { ...{ read: KbqButton }, isSignal: true }] }] } });
567
558
 
568
559
  class KbqPipeDatetimeComponent extends KbqBasePipe {
569
560
  constructor() {
@@ -583,6 +574,8 @@ class KbqPipeDatetimeComponent extends KbqBasePipe {
583
574
  /** @docs-private */
584
575
  this.showEndCalendar = false;
585
576
  /** @docs-private */
577
+ this.popover = viewChild.required('popover');
578
+ /** @docs-private */
586
579
  this.listSelection = viewChild.required('listSelection', { read: KbqListSelection });
587
580
  /** @docs-private */
588
581
  this.returnButton = viewChild.required('returnButton', { read: KbqButton });
@@ -632,9 +625,9 @@ class KbqPipeDatetimeComponent extends KbqBasePipe {
632
625
  }
633
626
  ngAfterViewInit() {
634
627
  super.ngAfterViewInit();
635
- this.popover.visibleChange
636
- .pipe(filter((visible) => !visible), takeUntilDestroyed(this.destroyRef))
637
- .subscribe(() => this.filterBar?.onClosePipe.next(this.data));
628
+ this.popover()
629
+ .visibleChange.pipe(filter((visible) => !visible), takeUntilDestroyed(this.destroyRef))
630
+ .subscribe(() => this.filterBar?.onClosePipe.emit(this.data));
638
631
  }
639
632
  /** keydown handler
640
633
  * @docs-private */
@@ -654,13 +647,13 @@ class KbqPipeDatetimeComponent extends KbqBasePipe {
654
647
  };
655
648
  this.stateChanges.next();
656
649
  this.filterBar?.onChangePipe.next(this.data);
657
- this.popover.hide();
650
+ this.popover().hide();
658
651
  }
659
652
  onSelect(item) {
660
653
  this.data.value = item;
661
654
  this.stateChanges.next();
662
655
  this.filterBar?.onChangePipe.next(this.data);
663
- this.popover.hide();
656
+ this.popover().hide();
664
657
  }
665
658
  showPeriod() {
666
659
  this.isListMode = false;
@@ -668,18 +661,18 @@ class KbqPipeDatetimeComponent extends KbqBasePipe {
668
661
  this.showEndCalendar = false;
669
662
  this.initFormGroup();
670
663
  setTimeout(() => {
671
- this.popover.updatePosition(true);
664
+ this.popover().updatePosition(true);
672
665
  this.returnButton().focus();
673
666
  });
674
667
  }
675
668
  showList() {
676
669
  this.isListMode = true;
677
670
  setTimeout(() => this.listSelection().focus());
678
- this.popover.updatePosition(true);
671
+ this.popover().updatePosition(true);
679
672
  }
680
673
  /** opens popover */
681
674
  open() {
682
- this.popover.show();
675
+ this.popover().show();
683
676
  }
684
677
  onSelectStartDate(value) {
685
678
  this.formGroup.controls.start.setValue(value);
@@ -690,7 +683,7 @@ class KbqPipeDatetimeComponent extends KbqBasePipe {
690
683
  onFocusStartInput() {
691
684
  this.showStartCalendar = true;
692
685
  this.showEndCalendar = false;
693
- this.popover.updatePosition(true);
686
+ this.popover().updatePosition(true);
694
687
  }
695
688
  onFocusEndInput() {
696
689
  this.showEndCalendar = true;
@@ -706,20 +699,18 @@ class KbqPipeDatetimeComponent extends KbqBasePipe {
706
699
  end: new FormControl(this.end || this.defaultEnd)
707
700
  });
708
701
  }
709
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeDatetimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
710
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: KbqPipeDatetimeComponent, isStandalone: true, selector: "kbq-pipe-datetime", providers: [
711
- kbqDisableLegacyValidationDirectiveProvider(),
702
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeDatetimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
703
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqPipeDatetimeComponent, isStandalone: true, selector: "kbq-pipe-datetime", providers: [
712
704
  {
713
705
  provide: KbqBasePipe,
714
706
  useExisting: this
715
707
  }
716
- ], viewQueries: [{ propertyName: "listSelection", first: true, predicate: ["listSelection"], descendants: true, read: KbqListSelection, isSignal: true }, { propertyName: "returnButton", first: true, predicate: ["returnButton"], descendants: true, read: KbqButton, isSignal: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <!-- prevents [kbq-icon] from matching icon slot in kbq-list-option, keeping chevron after label text -->\n <ng-container>\n <i kbq-icon=\"kbq-chevron-right_16\" color=\"contrast-fade\"></i>\n </ng-container>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <div class=\"kbq-form__row_with-time kbq-form__control\">\n <kbq-form-field class=\"kbq-date-period__date\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"start\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <div class=\"kbq-form__row_with-time kbq-form__control\">\n <kbq-form-field class=\"kbq-date-period__date\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"end\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding:var(--kbq-size-xs) var(--kbq-size-xxs) var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content minmax(min-content,1fr);padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{width:auto}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date{width:136px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker{flex:1;margin-left:-1px;width:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{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"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i2.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "component", type: i2.KbqHint, selector: "kbq-hint", inputs: ["id", "fillTextOff", "compact"], exportAs: ["kbqHint"] }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i4.MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["hideIfNotInViewPort", "kbqPopoverPreventClose", "defaultPaddings", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "kbqPopoverStickToWindow", "container", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "kbqPopoverContext", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqListModule }, { kind: "component", type: i7.KbqListSelection, selector: "kbq-list-selection", inputs: ["autoSelect", "noUnselectLast", "horizontal", "tabIndex", "disabled", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["kbqListSelection"] }, { kind: "component", type: i7.KbqListOption, selector: "kbq-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["kbqListOption"] }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i8.KbqCalendar, selector: "kbq-calendar", inputs: ["startAt", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "yearSelected", "monthSelected", "userSelection"], exportAs: ["kbqCalendar"] }, { kind: "directive", type: i8.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["errorStateMatcher", "placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: i9.KbqTimepicker, selector: "input[kbqTimepicker]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "format", "min", "max", "value", "kbqValidationTooltip"], outputs: ["incorrectInput"], exportAs: ["kbqTimepicker"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqFormattersModule }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
708
+ ], viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }, { propertyName: "listSelection", first: true, predicate: ["listSelection"], descendants: true, read: KbqListSelection, isSignal: true }, { propertyName: "returnButton", first: true, predicate: ["returnButton"], descendants: true, read: KbqButton, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverSize]=\"'custom'\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <!-- prevents [kbq-icon] from matching icon slot in kbq-list-option, keeping chevron after label text -->\n <ng-container>\n <i kbq-icon=\"kbq-chevron-right_16\" color=\"contrast-fade\"></i>\n </ng-container>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <div class=\"kbq-form__row_with-time kbq-form__control\">\n <kbq-form-field class=\"kbq-date-period__date\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"start\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <div class=\"kbq-form__row_with-time kbq-form__control\">\n <kbq-form-field class=\"kbq-date-period__date\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"end\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding:var(--kbq-size-xs) var(--kbq-size-xxs) var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content minmax(min-content,1fr);padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{width:auto}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date{width:136px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker{flex:1;margin-left:-1px;width:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{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"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "component", type: i4.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i4.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i4.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "component", type: i4.KbqHint, selector: "kbq-hint", inputs: ["id", "fillTextOff", "compact"], exportAs: ["kbqHint"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["hideIfNotInViewPort", "kbqPopoverPreventClose", "defaultPaddings", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "kbqPopoverStickToWindow", "container", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "kbqPopoverContext", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqListModule }, { kind: "component", type: i7.KbqListSelection, selector: "kbq-list-selection", inputs: ["autoSelect", "noUnselectLast", "horizontal", "tabIndex", "disabled", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["kbqListSelection"] }, { kind: "component", type: i7.KbqListOption, selector: "kbq-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["kbqListOption"] }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i8.KbqCalendar, selector: "kbq-calendar", inputs: ["startAt", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "yearSelected", "monthSelected", "userSelection"], exportAs: ["kbqCalendar"] }, { kind: "directive", type: i8.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["errorStateMatcher", "placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: i9.KbqTimepicker, selector: "input[kbqTimepicker]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "format", "min", "max", "value", "kbqValidationTooltip"], outputs: ["incorrectInput"], exportAs: ["kbqTimepicker"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqFormattersModule }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
717
709
  }
718
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeDatetimeComponent, decorators: [{
710
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeDatetimeComponent, decorators: [{
719
711
  type: Component,
720
712
  args: [{ selector: 'kbq-pipe-datetime', imports: [
721
713
  ReactiveFormsModule,
722
- KbqFormFieldModule,
723
714
  KbqIconModule,
724
715
  KbqInputModule,
725
716
  KbqDividerModule,
@@ -734,23 +725,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
734
725
  KbqTitleModule,
735
726
  KbqPipeTitleDirective,
736
727
  FormsModule
737
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
738
- kbqDisableLegacyValidationDirectiveProvider(),
728
+ ], providers: [
739
729
  {
740
730
  provide: KbqBasePipe,
741
731
  useExisting: this
742
732
  }
743
- ], template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <!-- prevents [kbq-icon] from matching icon slot in kbq-list-option, keeping chevron after label text -->\n <ng-container>\n <i kbq-icon=\"kbq-chevron-right_16\" color=\"contrast-fade\"></i>\n </ng-container>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <div class=\"kbq-form__row_with-time kbq-form__control\">\n <kbq-form-field class=\"kbq-date-period__date\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"start\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <div class=\"kbq-form__row_with-time kbq-form__control\">\n <kbq-form-field class=\"kbq-date-period__date\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"end\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding:var(--kbq-size-xs) var(--kbq-size-xxs) var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content minmax(min-content,1fr);padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{width:auto}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date{width:136px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker{flex:1;margin-left:-1px;width:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{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"] }]
744
- }], propDecorators: { popover: [{
745
- type: ViewChild,
746
- args: ['popover']
747
- }] } });
733
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverSize]=\"'custom'\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <!-- prevents [kbq-icon] from matching icon slot in kbq-list-option, keeping chevron after label text -->\n <ng-container>\n <i kbq-icon=\"kbq-chevron-right_16\" color=\"contrast-fade\"></i>\n </ng-container>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <div class=\"kbq-form__row_with-time kbq-form__control\">\n <kbq-form-field class=\"kbq-date-period__date\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"start\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <div class=\"kbq-form__row_with-time kbq-form__control\">\n <kbq-form-field class=\"kbq-date-period__date\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"end\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding:var(--kbq-size-xs) var(--kbq-size-xxs) var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content minmax(min-content,1fr);padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{width:auto}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date{width:136px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker{flex:1;margin-left:-1px;width:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{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"] }]
734
+ }], propDecorators: { popover: [{ type: i0.ViewChild, args: ['popover', { isSignal: true }] }], listSelection: [{ type: i0.ViewChild, args: ['listSelection', { ...{ read: KbqListSelection }, isSignal: true }] }], returnButton: [{ type: i0.ViewChild, args: ['returnButton', { ...{ read: KbqButton }, isSignal: true }] }] } });
748
735
 
749
736
  class KbqPipeMultiSelectComponent extends KbqBasePipe {
750
737
  constructor() {
751
738
  super(...arguments);
752
739
  /** control for search options */
753
740
  this.searchControl = new UntypedFormControl();
741
+ /** @docs-private */
742
+ this.select = viewChild.required(KbqSelect);
743
+ /** @docs-private */
744
+ this.options = viewChildren(KbqOption, ...(ngDevMode ? [{ debugName: "options" }] : []));
754
745
  this.selectionAllInProgress = false;
755
746
  /** Comparator of selected options */
756
747
  this.compareByValue = (o1, o2) => o1?.id === o2?.id;
@@ -780,12 +771,15 @@ class KbqPipeMultiSelectComponent extends KbqBasePipe {
780
771
  }
781
772
  /** state for checkbox 'select all'. */
782
773
  get checkboxState() {
783
- if (!this.options)
774
+ if (!this.options())
775
+ return 'unchecked';
776
+ const select = this.select();
777
+ if (!select?.selectionModel)
784
778
  return 'unchecked';
785
- if (this.select.selectionModel.selected.length === this.values.length) {
779
+ if (select.selectionModel.selected.length === this.values.length) {
786
780
  return 'checked';
787
781
  }
788
- else if (!this.select.selectionModel.selected.length) {
782
+ else if (!select.selectionModel.selected.length) {
789
783
  return 'unchecked';
790
784
  }
791
785
  return 'indeterminate';
@@ -796,13 +790,16 @@ class KbqPipeMultiSelectComponent extends KbqBasePipe {
796
790
  }
797
791
  /** true if all options selected */
798
792
  get allOptionsSelected() {
799
- return this.select?.triggerValues.length === this.values?.length;
793
+ const select = this.select();
794
+ if (!select?.selectionModel)
795
+ return false;
796
+ return select.triggerValues.length === this.values?.length;
800
797
  }
801
798
  get selectedAllEqualsSelectedNothing() {
802
- return this.data.selectedAllEqualsSelectedNothing ?? this.filterBar.selectedAllEqualsSelectedNothing;
799
+ return this.data.selectedAllEqualsSelectedNothing ?? this.filterBar.selectedAllEqualsSelectedNothing();
803
800
  }
804
801
  get visibleOptions() {
805
- return this.options?.filter((option) => option.selectable);
802
+ return this.options()?.filter((option) => option.selectable());
806
803
  }
807
804
  /** @docs-private */
808
805
  ngOnInit() {
@@ -811,9 +808,9 @@ class KbqPipeMultiSelectComponent extends KbqBasePipe {
811
808
  }
812
809
  ngAfterViewInit() {
813
810
  super.ngAfterViewInit();
814
- this.select.closedStream
815
- .pipe(takeUntilDestroyed(this.destroyRef))
816
- .subscribe(() => this.filterBar?.onClosePipe.next(this.data));
811
+ this.select()
812
+ .closedStream.pipe(takeUntilDestroyed(this.destroyRef))
813
+ .subscribe(() => this.filterBar?.onClosePipe.emit(this.data));
817
814
  }
818
815
  /** @docs-private */
819
816
  onSelect(item) {
@@ -838,7 +835,7 @@ class KbqPipeMultiSelectComponent extends KbqBasePipe {
838
835
  }
839
836
  /** @docs-private */
840
837
  toggleSelectionAllByEnterKey() {
841
- if (this.data.selectAll && this.select.keyManager.activeItemIndex === 0) {
838
+ if (this.data.selectAll && this.select().keyManager.activeItemIndex === 0) {
842
839
  this.toggleSelectionAll();
843
840
  }
844
841
  }
@@ -856,7 +853,7 @@ class KbqPipeMultiSelectComponent extends KbqBasePipe {
856
853
  this.data.value = [];
857
854
  }
858
855
  else {
859
- this.data.value = [...this.select.value];
856
+ this.data.value = [...this.select().value];
860
857
  }
861
858
  if (emitEvent) {
862
859
  this.emitChangePipeEvent();
@@ -871,7 +868,7 @@ class KbqPipeMultiSelectComponent extends KbqBasePipe {
871
868
  }
872
869
  /** opens select */
873
870
  open() {
874
- this.select.open();
871
+ this.select().open();
875
872
  }
876
873
  updateInternalSelected() {
877
874
  if (this.selectedAllEqualsSelectedNothing) {
@@ -886,47 +883,39 @@ class KbqPipeMultiSelectComponent extends KbqBasePipe {
886
883
  this.filterBar?.onChangePipe.emit(this.data);
887
884
  }
888
885
  }
889
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeMultiSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
890
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: KbqPipeMultiSelectComponent, isStandalone: true, selector: "kbq-pipe-multi-select", providers: [
886
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeMultiSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
887
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqPipeMultiSelectComponent, isStandalone: true, selector: "kbq-pipe-multi-select", providers: [
891
888
  {
892
889
  provide: KbqBasePipe,
893
890
  useExisting: this
894
891
  }
895
- ], viewQueries: [{ propertyName: "select", first: true, predicate: KbqSelect, descendants: true }, { propertyName: "options", predicate: KbqOption, descendants: true }], usesInheritance: true, ngImport: i0, template: "<kbq-select\n #select=\"kbqSelect\"\n multiple\n [compareWith]=\"compareByValue\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [panelClass]=\"'kbq-pipe-multiselect__panel'\"\n [selectAllHandler]=\"selectAllHandler\"\n [tabIndex]=\"-1\"\n [value]=\"selected\"\n (closed)=\"onClose()\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n @if (select.triggerValues.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.triggerValue }}\n </span>\n } @else if (\n select.triggerValues.length > 1 &&\n (!selectedAllEqualsSelectedNothing || (selectedAllEqualsSelectedNothing && !allOptionsSelected))\n ) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ select.triggerValues.length }}\n </kbq-badge>\n }\n </button>\n @if (data.search) {\n <kbq-form-field kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n autocomplete=\"off\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n (keydown.enter)=\"toggleSelectionAllByEnterKey()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n }\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n @if (data.selectAll && !select.isEmptySearchResult) {\n <kbq-option\n [class.kbq-selected]=\"allVisibleOptionsSelected\"\n [selectable]=\"false\"\n (click)=\"toggleSelectionAll()\"\n (keydown.enter)=\"toggleSelectionAll()\"\n >\n <kbq-pseudo-checkbox [state]=\"checkboxState\" />\n {{ localeData.pipe.selectAll }}\n </kbq-option>\n }\n\n @for (item of filteredOptions | async; track item) {\n <kbq-option [value]=\"item\">\n @if (isTemplateRef(valueTemplate)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(valueTemplate)\"\n [ngTemplateOutletContext]=\"{ $implicit, option: item }\"\n />\n } @else {\n {{ item.name }}\n }\n </kbq-option>\n }\n</kbq-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multiselect .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multiselect .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe-multiselect__panel .kbq-select__content{max-height:404px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: KbqSelectModule }, { kind: "component", type: i3$1.KbqSelect, selector: "kbq-select", inputs: ["hiddenItemsText", "showPreselectedValues", "triggerValuesLimit", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "multiline", "searchMinOptionsThreshold", "scrolledToBottomOffset", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "virtualOptionFactory", "selectAllHandler", "panelWidth", "panelMinWidth", "value", "id", "tabIndex", "disabled", "hiddenItemsTextFormatter"], outputs: ["openedChange", "beforeOpened", "opened", "closed", "selectionChange", "valueChange", "scrolledToBottom"], exportAs: ["kbqSelect"] }, { kind: "directive", type: i3$1.KbqOptionTooltip, selector: "kbq-option" }, { kind: "component", type: i6.KbqOption, selector: "kbq-option", inputs: ["value", "selectable", "userSelect", "showCheckbox", "viewValue", "disabled"], outputs: ["onSelectionChange"], exportAs: ["kbqOption"] }, { kind: "directive", type: i6.KbqSelectSearch, selector: "[kbqSelectSearch]", exportAs: ["kbqSelectSearch"] }, { kind: "directive", type: i6.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]", inputs: ["useDefaultHandlers"] }, { kind: "directive", type: i6.KbqSelectSearchEmptyResult, selector: "[kbq-select-search-empty-result]", exportAs: ["kbqSelectSearchEmptyResult"] }, { kind: "component", type: i2.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i2.KbqFormFieldWithoutBorders, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", exportAs: ["kbqFormFieldWithoutBorders"] }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "directive", type: i2.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqBadgeModule }, { kind: "component", type: i6$1.KbqBadge, selector: "kbq-badge", inputs: ["compact", "outline", "badgeColor"] }, { kind: "directive", type: i6$1.KbqBadgeCssStyler, selector: "kbq-badge" }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i4.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: KbqPseudoCheckboxModule }, { kind: "component", type: i6.KbqPseudoCheckbox, selector: "kbq-pseudo-checkbox", inputs: ["big", "state", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
892
+ ], viewQueries: [{ propertyName: "select", first: true, predicate: KbqSelect, descendants: true, isSignal: true }, { propertyName: "options", predicate: KbqOption, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<kbq-select\n #select=\"kbqSelect\"\n multiple\n [compareWith]=\"compareByValue\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n [panelClass]=\"'kbq-pipe-multiselect__panel'\"\n [selectAllHandler]=\"selectAllHandler\"\n [tabIndex]=\"-1\"\n [value]=\"selected\"\n (closed)=\"onClose()\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n @if (select.triggerValues.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.triggerValue }}\n </span>\n } @else if (\n select.triggerValues.length > 1 &&\n (!selectedAllEqualsSelectedNothing || (selectedAllEqualsSelectedNothing && !allOptionsSelected))\n ) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ select.triggerValues.length }}\n </kbq-badge>\n }\n </button>\n @if (data.search) {\n <kbq-form-field noBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n autocomplete=\"off\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n (keydown.enter)=\"toggleSelectionAllByEnterKey()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n }\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n @if (data.selectAll && !select.isEmptySearchResult) {\n <kbq-option\n [class.kbq-selected]=\"allVisibleOptionsSelected\"\n [selectable]=\"false\"\n (click)=\"toggleSelectionAll()\"\n (keydown.enter)=\"toggleSelectionAll()\"\n >\n <kbq-pseudo-checkbox [state]=\"checkboxState\" />\n {{ localeData.pipe.selectAll }}\n </kbq-option>\n }\n\n @for (item of filteredOptions | async; track item) {\n <kbq-option [value]=\"item\">\n @if (isTemplateRef(valueTemplate)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(valueTemplate)\"\n [ngTemplateOutletContext]=\"{ $implicit, option: item }\"\n />\n } @else {\n {{ item.name }}\n }\n </kbq-option>\n }\n</kbq-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multiselect .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multiselect .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe-multiselect__panel .kbq-select__content{max-height:404px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: KbqSelectModule }, { kind: "component", type: i3$1.KbqSelect, selector: "kbq-select", inputs: ["hiddenItemsText", "showPreselectedValues", "triggerValuesLimit", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "multiline", "searchMinOptionsThreshold", "scrolledToBottomOffset", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "virtualOptionFactory", "selectAllHandler", "panelWidth", "panelMinWidth", "value", "id", "tabIndex", "disabled", "hiddenItemsTextFormatter"], outputs: ["openedChange", "beforeOpened", "opened", "closed", "selectionChange", "valueChange", "scrolledToBottom"], exportAs: ["kbqSelect"] }, { kind: "directive", type: i3$1.KbqOptionTooltip, selector: "kbq-option" }, { kind: "component", type: i8$1.KbqOption, selector: "kbq-option", inputs: ["value", "selectable", "userSelect", "showCheckbox", "viewValue", "disabled"], outputs: ["onSelectionChange"], exportAs: ["kbqOption"] }, { kind: "directive", type: i8$1.KbqSelectSearch, selector: "[kbqSelectSearch]", exportAs: ["kbqSelectSearch"] }, { kind: "directive", type: i8$1.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]", inputs: ["useDefaultHandlers"] }, { kind: "directive", type: i8$1.KbqSelectSearchEmptyResult, selector: "[kbq-select-search-empty-result]", exportAs: ["kbqSelectSearchEmptyResult"] }, { kind: "component", type: i4.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "component", type: i4.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i4.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i4.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqBadgeModule }, { kind: "component", type: i6.KbqBadge, selector: "kbq-badge", inputs: ["compact", "outline", "badgeColor"] }, { kind: "directive", type: i6.KbqBadgeCssStyler, selector: "kbq-badge" }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: KbqPseudoCheckboxModule }, { kind: "component", type: i8$1.KbqPseudoCheckbox, selector: "kbq-pseudo-checkbox", inputs: ["big", "state", "disabled"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
896
893
  }
897
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeMultiSelectComponent, decorators: [{
894
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeMultiSelectComponent, decorators: [{
898
895
  type: Component,
899
896
  args: [{ selector: 'kbq-pipe-multi-select', imports: [
900
897
  FormsModule,
901
898
  KbqButtonModule,
902
899
  KbqDividerModule,
903
900
  KbqSelectModule,
904
- NgClass,
905
901
  KbqPipeState,
906
902
  KbqBadgeModule,
907
903
  KbqPipeButton,
908
904
  KbqTitleModule,
909
905
  KbqPipeTitleDirective,
910
906
  NgTemplateOutlet,
911
- KbqFormFieldModule,
912
907
  KbqIconModule,
913
908
  KbqInputModule,
914
909
  ReactiveFormsModule,
915
910
  AsyncPipe,
916
911
  KbqPseudoCheckboxModule
917
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
912
+ ], providers: [
918
913
  {
919
914
  provide: KbqBasePipe,
920
915
  useExisting: this
921
916
  }
922
- ], template: "<kbq-select\n #select=\"kbqSelect\"\n multiple\n [compareWith]=\"compareByValue\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [panelClass]=\"'kbq-pipe-multiselect__panel'\"\n [selectAllHandler]=\"selectAllHandler\"\n [tabIndex]=\"-1\"\n [value]=\"selected\"\n (closed)=\"onClose()\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n @if (select.triggerValues.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.triggerValue }}\n </span>\n } @else if (\n select.triggerValues.length > 1 &&\n (!selectedAllEqualsSelectedNothing || (selectedAllEqualsSelectedNothing && !allOptionsSelected))\n ) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ select.triggerValues.length }}\n </kbq-badge>\n }\n </button>\n @if (data.search) {\n <kbq-form-field kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n autocomplete=\"off\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n (keydown.enter)=\"toggleSelectionAllByEnterKey()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n }\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n @if (data.selectAll && !select.isEmptySearchResult) {\n <kbq-option\n [class.kbq-selected]=\"allVisibleOptionsSelected\"\n [selectable]=\"false\"\n (click)=\"toggleSelectionAll()\"\n (keydown.enter)=\"toggleSelectionAll()\"\n >\n <kbq-pseudo-checkbox [state]=\"checkboxState\" />\n {{ localeData.pipe.selectAll }}\n </kbq-option>\n }\n\n @for (item of filteredOptions | async; track item) {\n <kbq-option [value]=\"item\">\n @if (isTemplateRef(valueTemplate)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(valueTemplate)\"\n [ngTemplateOutletContext]=\"{ $implicit, option: item }\"\n />\n } @else {\n {{ item.name }}\n }\n </kbq-option>\n }\n</kbq-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multiselect .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multiselect .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe-multiselect__panel .kbq-select__content{max-height:404px}\n"] }]
923
- }], propDecorators: { select: [{
924
- type: ViewChild,
925
- args: [KbqSelect]
926
- }], options: [{
927
- type: ViewChildren,
928
- args: [KbqOption]
929
- }] } });
917
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<kbq-select\n #select=\"kbqSelect\"\n multiple\n [compareWith]=\"compareByValue\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n [panelClass]=\"'kbq-pipe-multiselect__panel'\"\n [selectAllHandler]=\"selectAllHandler\"\n [tabIndex]=\"-1\"\n [value]=\"selected\"\n (closed)=\"onClose()\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n @if (select.triggerValues.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.triggerValue }}\n </span>\n } @else if (\n select.triggerValues.length > 1 &&\n (!selectedAllEqualsSelectedNothing || (selectedAllEqualsSelectedNothing && !allOptionsSelected))\n ) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ select.triggerValues.length }}\n </kbq-badge>\n }\n </button>\n @if (data.search) {\n <kbq-form-field noBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n autocomplete=\"off\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n (keydown.enter)=\"toggleSelectionAllByEnterKey()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n }\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n @if (data.selectAll && !select.isEmptySearchResult) {\n <kbq-option\n [class.kbq-selected]=\"allVisibleOptionsSelected\"\n [selectable]=\"false\"\n (click)=\"toggleSelectionAll()\"\n (keydown.enter)=\"toggleSelectionAll()\"\n >\n <kbq-pseudo-checkbox [state]=\"checkboxState\" />\n {{ localeData.pipe.selectAll }}\n </kbq-option>\n }\n\n @for (item of filteredOptions | async; track item) {\n <kbq-option [value]=\"item\">\n @if (isTemplateRef(valueTemplate)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(valueTemplate)\"\n [ngTemplateOutletContext]=\"{ $implicit, option: item }\"\n />\n } @else {\n {{ item.name }}\n }\n </kbq-option>\n }\n</kbq-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multiselect .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multiselect .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe-multiselect__panel .kbq-select__content{max-height:404px}\n"] }]
918
+ }], propDecorators: { select: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqSelect), { isSignal: true }] }], options: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => KbqOption), { isSignal: true }] }] } });
930
919
 
931
920
  class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
932
921
  /** selected value */
@@ -943,38 +932,43 @@ class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
943
932
  (this.selectedAllEqualsSelectedNothing && this.allOptionsSelected));
944
933
  }
945
934
  get selectAllCheckboxState() {
946
- if (!this.select)
935
+ const select = this.select();
936
+ if (!select)
947
937
  return 'unchecked';
948
938
  if (this.allOptionsSelected) {
949
939
  return 'checked';
950
940
  }
951
- else if (this.select.selected.length > 0) {
941
+ else if (select.selected?.length > 0) {
952
942
  return 'indeterminate';
953
943
  }
954
944
  return 'unchecked';
955
945
  }
956
946
  get numberOfSelectedLeaves() {
957
- return this.select.selected.filter(({ value }) => value !== kbqTreeSelectAllValue).length;
947
+ return this.select().selected.filter(({ value }) => value !== kbqTreeSelectAllValue).length;
958
948
  }
959
949
  /** true if all options selected */
960
950
  get allOptionsSelected() {
961
951
  const dataNodesLength = this.treeControl?.dataNodes?.length;
962
952
  const dataNodesForSelect = this.data.selectAll ? dataNodesLength - 1 : dataNodesLength;
963
- return this.select?.triggerValues?.length === dataNodesForSelect;
953
+ return this.select()?.triggerValues?.length === dataNodesForSelect;
964
954
  }
965
955
  get selectedAllEqualsSelectedNothing() {
966
- return this.data.selectedAllEqualsSelectedNothing ?? this.filterBar.selectedAllEqualsSelectedNothing;
956
+ return this.data.selectedAllEqualsSelectedNothing ?? this.filterBar.selectedAllEqualsSelectedNothing();
967
957
  }
968
958
  /** true if all visible options selected */
969
959
  get allVisibleOptionsSelected() {
970
- return this.tree.renderedOptions
971
- .filter((option) => option.value !== kbqTreeSelectAllValue)
960
+ return this.tree()
961
+ .renderedOptions.filter((option) => option.value !== kbqTreeSelectAllValue)
972
962
  .every((option) => option.selected);
973
963
  }
974
964
  constructor() {
975
965
  super();
976
966
  /** control for search options */
977
967
  this.searchControl = new UntypedFormControl();
968
+ /** @docs-private */
969
+ this.select = viewChild.required(KbqTreeSelect);
970
+ /** @docs-private */
971
+ this.tree = viewChild.required(KbqTreeSelection);
978
972
  /** updates values for selection and value template */
979
973
  this.updateTemplates = (templates) => {
980
974
  const template = templates?.find((template) => getId(template) === getId(this.data));
@@ -1032,9 +1026,9 @@ class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
1032
1026
  }
1033
1027
  ngAfterViewInit() {
1034
1028
  super.ngAfterViewInit();
1035
- this.select.closedStream
1036
- .pipe(takeUntilDestroyed(this.destroyRef))
1037
- .subscribe(() => this.filterBar?.onClosePipe.next(this.data));
1029
+ this.select()
1030
+ .closedStream.pipe(takeUntilDestroyed(this.destroyRef))
1031
+ .subscribe(() => this.filterBar?.onClosePipe.emit(this.data));
1038
1032
  }
1039
1033
  isNodeHasChild(_, nodeData) {
1040
1034
  return nodeData.expandable;
@@ -1045,8 +1039,9 @@ class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
1045
1039
  onSelect({ value: option }) {
1046
1040
  if (!option)
1047
1041
  return;
1048
- if (this.tree.treeControl.isExpandable(option.data)) {
1049
- this.tree.setStateChildren(option, !option.selected);
1042
+ const tree = this.tree();
1043
+ if (tree.treeControl.isExpandable(option.data)) {
1044
+ tree.setStateChildren(option, !option.selected);
1050
1045
  }
1051
1046
  this.toggleParents(option.data.parent);
1052
1047
  setTimeout(() => {
@@ -1054,20 +1049,20 @@ class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
1054
1049
  this.data.value = [];
1055
1050
  }
1056
1051
  else {
1057
- this.data.value = this.select.selectedValues;
1052
+ this.data.value = this.select().selectedValues;
1058
1053
  }
1059
1054
  this.emitChangePipeEvent();
1060
1055
  this.stateChanges.next();
1061
1056
  });
1062
1057
  }
1063
1058
  searchKeydownHandler() {
1064
- if (this.data.selectAll && this.tree.keyManager.activeItemIndex === 0) {
1059
+ if (this.data.selectAll && this.tree().keyManager.activeItemIndex === 0) {
1065
1060
  this.toggleSelectAllNode();
1066
1061
  }
1067
1062
  }
1068
1063
  toggleSelectAllNode(emitEvent = true) {
1069
- if (this.select.search?.ngControl.value) {
1070
- const renderedOptions = this.tree.renderedOptions.filter(({ value }) => value !== kbqTreeSelectAllValue);
1064
+ if (this.select().search()?.ngControl.value) {
1065
+ const renderedOptions = this.tree().renderedOptions.filter(({ value }) => value !== kbqTreeSelectAllValue);
1071
1066
  if (this.allVisibleOptionsSelected) {
1072
1067
  renderedOptions.forEach((option) => option.setSelected(false));
1073
1068
  }
@@ -1077,12 +1072,12 @@ class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
1077
1072
  }
1078
1073
  else {
1079
1074
  if (this.allOptionsSelected) {
1080
- this.tree.selectionModel.clear();
1075
+ this.tree().selectionModel.clear();
1081
1076
  }
1082
1077
  else {
1083
1078
  const [, ...dataNodesForSelect] = this.treeControl.dataNodes;
1084
1079
  // @todo DS-3827
1085
- this.tree.selectionModel.select(...dataNodesForSelect);
1080
+ this.tree().selectionModel.select(...dataNodesForSelect);
1086
1081
  }
1087
1082
  }
1088
1083
  setTimeout(() => {
@@ -1090,7 +1085,7 @@ class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
1090
1085
  this.data.value = [];
1091
1086
  }
1092
1087
  else {
1093
- this.data.value = [...this.select.selectedValues];
1088
+ this.data.value = [...this.select().selectedValues];
1094
1089
  }
1095
1090
  if (emitEvent) {
1096
1091
  this.emitChangePipeEvent();
@@ -1100,7 +1095,7 @@ class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
1100
1095
  }
1101
1096
  /** opens select */
1102
1097
  open() {
1103
- setTimeout(() => this.select.open());
1098
+ setTimeout(() => this.select().open());
1104
1099
  }
1105
1100
  onClear() {
1106
1101
  super.onClear();
@@ -1134,36 +1129,34 @@ class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
1134
1129
  return;
1135
1130
  }
1136
1131
  const descendants = this.treeControl.getDescendants(parent);
1137
- const isParentSelected = this.select.selectionModel.selected.includes(parent);
1138
- if (!isParentSelected && descendants.every((d) => this.select.selectionModel.selected.includes(d))) {
1139
- this.select.selectionModel.select(parent);
1132
+ const isParentSelected = this.select().selectionModel.selected.includes(parent);
1133
+ if (!isParentSelected && descendants.every((d) => this.select().selectionModel.selected.includes(d))) {
1134
+ this.select().selectionModel.select(parent);
1140
1135
  this.toggleParents(parent.parent);
1141
1136
  }
1142
1137
  else if (isParentSelected) {
1143
- this.select.selectionModel.deselect(parent);
1138
+ this.select().selectionModel.deselect(parent);
1144
1139
  this.toggleParents(parent.parent);
1145
1140
  }
1146
1141
  }
1147
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeMultiTreeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1148
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: KbqPipeMultiTreeSelectComponent, isStandalone: true, selector: "kbq-pipe-multi-tree-select", providers: [
1142
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeMultiTreeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1143
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqPipeMultiTreeSelectComponent, isStandalone: true, selector: "kbq-pipe-multi-tree-select", providers: [
1149
1144
  {
1150
1145
  provide: KbqBasePipe,
1151
1146
  useExisting: this
1152
1147
  }
1153
- ], viewQueries: [{ propertyName: "select", first: true, predicate: KbqTreeSelect, descendants: true }, { propertyName: "tree", first: true, predicate: KbqTreeSelection, descendants: true }], usesInheritance: true, ngImport: i0, template: "<kbq-tree-select\n #select\n [autoSelect]=\"false\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [multiple]=\"true\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [ngModel]=\"selected\"\n [panelClass]=\"'kbq-pipe-multi-tree-select__panel'\"\n [selectAllHandler]=\"selectAllHandler\"\n [tabIndex]=\"-1\"\n (closed)=\"onClose()\"\n (opened)=\"onOpen()\"\n (selectionChange)=\"onSelect($event)\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/prefer-control-flow -->\n <kbq-form-field *ngIf=\"data.search\" kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n autocomplete=\"off\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n (keydown.enter)=\"searchKeydownHandler()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n <kbq-cleaner #kbqSelectCleaner />\n\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n\n @if (select.selected?.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.selected[0].name }}\n </span>\n } @else if (\n select.selected?.length > 1 &&\n (!selectedAllEqualsSelectedNothing || (selectedAllEqualsSelectedNothing && !allOptionsSelected))\n ) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ numberOfSelectedLeaves }}\n </kbq-badge>\n }\n </button>\n\n <kbq-tree-selection [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeSelectAll\"\n kbqTreeNodePadding\n [class.kbq-selected]=\"allOptionsSelected\"\n [selectable]=\"false\"\n (click)=\"toggleSelectAllNode()\"\n >\n <kbq-pseudo-checkbox [state]=\"selectAllCheckboxState\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option *kbqTreeNodeDef=\"let node\" kbqTreeNodePadding [checkboxThirdState]=\"true\">\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeHasChild\"\n kbqTreeNodePadding\n [checkboxThirdState]=\"true\"\n >\n <kbq-tree-node-toggle [node]=\"node\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n </kbq-tree-selection>\n</kbq-tree-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multi-tree-select .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multi-tree-select .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe__multi-tree-select .kbq-tree-select .kbq-select__trigger{height:unset}.kbq-pipe-multi-tree-select__panel .kbq-select__content{max-height:404px}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: KbqPipeMinWidth, selector: "[kbqPipeMinWidth]" }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i2.KbqFormFieldWithoutBorders, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", exportAs: ["kbqFormFieldWithoutBorders"] }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "directive", type: i2.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i4.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: KbqHighlightModule }, { kind: "pipe", type: i6.KbqHighlightPipe, name: "mcHighlight" }, { kind: "ngmodule", type: KbqTreeModule }, { kind: "directive", type: i7$1.KbqTreeNodeDef, selector: "[kbqTreeNodeDef]", inputs: ["kbqTreeNodeDefWhen", "kbqTreeNode"] }, { kind: "directive", type: i7$1.KbqTreeNodePadding, selector: "[kbqTreeNodePadding]", inputs: ["kbqTreeNodePaddingIndent"], exportAs: ["kbqTreeNodePadding"] }, { kind: "component", type: i7$1.KbqTreeSelection, selector: "kbq-tree-selection", inputs: ["treeControl", "autoSelect", "noUnselectLast", "disabled", "tabIndex"], outputs: ["navigationChange", "selectionChange", "onSelectAll", "onCopy"], exportAs: ["kbqTreeSelection"] }, { kind: "component", type: i7$1.KbqTreeOption, selector: "kbq-tree-option", inputs: ["checkboxThirdState", "disabled", "selectable", "showCheckbox"], outputs: ["onSelectionChange"], exportAs: ["kbqTreeOption"] }, { kind: "component", type: i7$1.KbqTreeNodeToggleComponent, selector: "kbq-tree-node-toggle", exportAs: ["kbqTreeNodeToggle"] }, { kind: "ngmodule", type: KbqTreeSelectModule }, { kind: "component", type: i8$1.KbqTreeSelect, selector: "kbq-tree-select", inputs: ["hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "multiline", "placeholder", "required", "multiple", "autoSelect", "id", "hasBackdrop", "tabIndex", "disabled", "selectAllHandler", "panelMinWidth", "panelWidth", "searchMinOptionsThreshold", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["kbqTreeSelect"] }, { kind: "directive", type: i6.KbqSelectSearch, selector: "[kbqSelectSearch]", exportAs: ["kbqSelectSearch"] }, { kind: "directive", type: i6.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]", inputs: ["useDefaultHandlers"] }, { kind: "directive", type: i6.KbqSelectSearchEmptyResult, selector: "[kbq-select-search-empty-result]", exportAs: ["kbqSelectSearchEmptyResult"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: KbqBadgeModule }, { kind: "component", type: i6$1.KbqBadge, selector: "kbq-badge", inputs: ["compact", "outline", "badgeColor"] }, { kind: "directive", type: i6$1.KbqBadgeCssStyler, selector: "kbq-badge" }, { kind: "ngmodule", type: KbqPseudoCheckboxModule }, { kind: "component", type: i6.KbqPseudoCheckbox, selector: "kbq-pseudo-checkbox", inputs: ["big", "state", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1148
+ ], viewQueries: [{ propertyName: "select", first: true, predicate: KbqTreeSelect, descendants: true, isSignal: true }, { propertyName: "tree", first: true, predicate: KbqTreeSelection, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<kbq-tree-select\n #select\n [autoSelect]=\"false\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [multiple]=\"true\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n [ngModel]=\"selected\"\n [panelClass]=\"'kbq-pipe-multi-tree-select__panel'\"\n [selectAllHandler]=\"selectAllHandler\"\n [tabIndex]=\"-1\"\n (closed)=\"onClose()\"\n (opened)=\"onOpen()\"\n (selectionChange)=\"onSelect($event)\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/prefer-control-flow -->\n <kbq-form-field *ngIf=\"data.search\" noBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n autocomplete=\"off\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n (keydown.enter)=\"searchKeydownHandler()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n <kbq-cleaner #kbqSelectCleaner />\n\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n\n @if (select.selected?.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.selected[0].name }}\n </span>\n } @else if (\n select.selected?.length > 1 &&\n (!selectedAllEqualsSelectedNothing || (selectedAllEqualsSelectedNothing && !allOptionsSelected))\n ) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ numberOfSelectedLeaves }}\n </kbq-badge>\n }\n </button>\n\n <kbq-tree-selection [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeSelectAll\"\n kbqTreeNodePadding\n [class.kbq-selected]=\"allOptionsSelected\"\n [selectable]=\"false\"\n (click)=\"toggleSelectAllNode()\"\n >\n <kbq-pseudo-checkbox [state]=\"selectAllCheckboxState\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option *kbqTreeNodeDef=\"let node\" kbqTreeNodePadding [checkboxThirdState]=\"true\">\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeHasChild\"\n kbqTreeNodePadding\n [checkboxThirdState]=\"true\"\n >\n <kbq-tree-node-toggle [node]=\"node\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n </kbq-tree-selection>\n</kbq-tree-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multi-tree-select .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multi-tree-select .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe__multi-tree-select .kbq-tree-select .kbq-select__trigger{height:unset}.kbq-pipe-multi-tree-select__panel .kbq-select__content{max-height:404px}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: KbqPipeMinWidth, selector: "[kbqPipeMinWidth]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "component", type: i4.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "component", type: i4.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i4.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i4.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: KbqHighlightModule }, { kind: "ngmodule", type: KbqTreeModule }, { kind: "directive", type: i6$1.KbqTreeNodeDef, selector: "[kbqTreeNodeDef]", inputs: ["kbqTreeNodeDefWhen", "kbqTreeNode"] }, { kind: "directive", type: i6$1.KbqTreeNodePadding, selector: "[kbqTreeNodePadding]", inputs: ["kbqTreeNodePaddingIndent"], exportAs: ["kbqTreeNodePadding"] }, { kind: "component", type: i6$1.KbqTreeSelection, selector: "kbq-tree-selection", inputs: ["treeControl", "autoSelect", "noUnselectLast", "disabled", "tabIndex"], outputs: ["navigationChange", "selectionChange", "onSelectAll", "onCopy"], exportAs: ["kbqTreeSelection"] }, { kind: "component", type: i6$1.KbqTreeOption, selector: "kbq-tree-option", inputs: ["checkboxThirdState", "disabled", "selectable", "showCheckbox"], outputs: ["onSelectionChange"], exportAs: ["kbqTreeOption"] }, { kind: "component", type: i6$1.KbqTreeNodeToggleComponent, selector: "kbq-tree-node-toggle", exportAs: ["kbqTreeNodeToggle"] }, { kind: "ngmodule", type: KbqTreeSelectModule }, { kind: "component", type: i7$1.KbqTreeSelect, selector: "kbq-tree-select", inputs: ["hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "multiline", "placeholder", "required", "multiple", "autoSelect", "id", "hasBackdrop", "tabIndex", "disabled", "selectAllHandler", "panelMinWidth", "panelWidth", "searchMinOptionsThreshold", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["kbqTreeSelect"] }, { kind: "directive", type: i8$1.KbqSelectSearch, selector: "[kbqSelectSearch]", exportAs: ["kbqSelectSearch"] }, { kind: "directive", type: i8$1.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]", inputs: ["useDefaultHandlers"] }, { kind: "directive", type: i8$1.KbqSelectSearchEmptyResult, selector: "[kbq-select-search-empty-result]", exportAs: ["kbqSelectSearchEmptyResult"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: KbqBadgeModule }, { kind: "component", type: i6.KbqBadge, selector: "kbq-badge", inputs: ["compact", "outline", "badgeColor"] }, { kind: "directive", type: i6.KbqBadgeCssStyler, selector: "kbq-badge" }, { kind: "ngmodule", type: KbqPseudoCheckboxModule }, { kind: "component", type: i8$1.KbqPseudoCheckbox, selector: "kbq-pseudo-checkbox", inputs: ["big", "state", "disabled"] }, { kind: "pipe", type: i8$1.KbqHighlightPipe, name: "mcHighlight" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1154
1149
  }
1155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeMultiTreeSelectComponent, decorators: [{
1150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeMultiTreeSelectComponent, decorators: [{
1156
1151
  type: Component,
1157
1152
  args: [{ selector: 'kbq-pipe-multi-tree-select', imports: [
1158
1153
  KbqButtonModule,
1159
1154
  KbqDividerModule,
1160
- NgClass,
1161
1155
  KbqPipeState,
1162
1156
  KbqPipeButton,
1163
1157
  KbqTitleModule,
1164
1158
  KbqPipeTitleDirective,
1165
1159
  KbqPipeMinWidth,
1166
- KbqFormFieldModule,
1167
1160
  KbqIconModule,
1168
1161
  KbqInputModule,
1169
1162
  ReactiveFormsModule,
@@ -1174,24 +1167,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
1174
1167
  FormsModule,
1175
1168
  KbqBadgeModule,
1176
1169
  KbqPseudoCheckboxModule
1177
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
1170
+ ], providers: [
1178
1171
  {
1179
1172
  provide: KbqBasePipe,
1180
1173
  useExisting: this
1181
1174
  }
1182
- ], template: "<kbq-tree-select\n #select\n [autoSelect]=\"false\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [multiple]=\"true\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [ngModel]=\"selected\"\n [panelClass]=\"'kbq-pipe-multi-tree-select__panel'\"\n [selectAllHandler]=\"selectAllHandler\"\n [tabIndex]=\"-1\"\n (closed)=\"onClose()\"\n (opened)=\"onOpen()\"\n (selectionChange)=\"onSelect($event)\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/prefer-control-flow -->\n <kbq-form-field *ngIf=\"data.search\" kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n autocomplete=\"off\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n (keydown.enter)=\"searchKeydownHandler()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n <kbq-cleaner #kbqSelectCleaner />\n\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n\n @if (select.selected?.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.selected[0].name }}\n </span>\n } @else if (\n select.selected?.length > 1 &&\n (!selectedAllEqualsSelectedNothing || (selectedAllEqualsSelectedNothing && !allOptionsSelected))\n ) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ numberOfSelectedLeaves }}\n </kbq-badge>\n }\n </button>\n\n <kbq-tree-selection [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeSelectAll\"\n kbqTreeNodePadding\n [class.kbq-selected]=\"allOptionsSelected\"\n [selectable]=\"false\"\n (click)=\"toggleSelectAllNode()\"\n >\n <kbq-pseudo-checkbox [state]=\"selectAllCheckboxState\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option *kbqTreeNodeDef=\"let node\" kbqTreeNodePadding [checkboxThirdState]=\"true\">\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeHasChild\"\n kbqTreeNodePadding\n [checkboxThirdState]=\"true\"\n >\n <kbq-tree-node-toggle [node]=\"node\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n </kbq-tree-selection>\n</kbq-tree-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multi-tree-select .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multi-tree-select .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe__multi-tree-select .kbq-tree-select .kbq-select__trigger{height:unset}.kbq-pipe-multi-tree-select__panel .kbq-select__content{max-height:404px}\n"] }]
1183
- }], ctorParameters: () => [], propDecorators: { select: [{
1184
- type: ViewChild,
1185
- args: [KbqTreeSelect]
1186
- }], tree: [{
1187
- type: ViewChild,
1188
- args: [KbqTreeSelection]
1189
- }] } });
1175
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<kbq-tree-select\n #select\n [autoSelect]=\"false\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [multiple]=\"true\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n [ngModel]=\"selected\"\n [panelClass]=\"'kbq-pipe-multi-tree-select__panel'\"\n [selectAllHandler]=\"selectAllHandler\"\n [tabIndex]=\"-1\"\n (closed)=\"onClose()\"\n (opened)=\"onOpen()\"\n (selectionChange)=\"onSelect($event)\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/prefer-control-flow -->\n <kbq-form-field *ngIf=\"data.search\" noBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n autocomplete=\"off\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n (keydown.enter)=\"searchKeydownHandler()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n <kbq-cleaner #kbqSelectCleaner />\n\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n\n @if (select.selected?.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.selected[0].name }}\n </span>\n } @else if (\n select.selected?.length > 1 &&\n (!selectedAllEqualsSelectedNothing || (selectedAllEqualsSelectedNothing && !allOptionsSelected))\n ) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ numberOfSelectedLeaves }}\n </kbq-badge>\n }\n </button>\n\n <kbq-tree-selection [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeSelectAll\"\n kbqTreeNodePadding\n [class.kbq-selected]=\"allOptionsSelected\"\n [selectable]=\"false\"\n (click)=\"toggleSelectAllNode()\"\n >\n <kbq-pseudo-checkbox [state]=\"selectAllCheckboxState\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option *kbqTreeNodeDef=\"let node\" kbqTreeNodePadding [checkboxThirdState]=\"true\">\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeHasChild\"\n kbqTreeNodePadding\n [checkboxThirdState]=\"true\"\n >\n <kbq-tree-node-toggle [node]=\"node\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n </kbq-tree-selection>\n</kbq-tree-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multi-tree-select .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multi-tree-select .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe__multi-tree-select .kbq-tree-select .kbq-select__trigger{height:unset}.kbq-pipe-multi-tree-select__panel .kbq-select__content{max-height:404px}\n"] }]
1176
+ }], ctorParameters: () => [], propDecorators: { select: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqTreeSelect), { isSignal: true }] }], tree: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqTreeSelection), { isSignal: true }] }] } });
1190
1177
 
1191
1178
  class KbqPipeReadonlyComponent extends KbqBasePipe {
1192
1179
  open() { }
1193
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeReadonlyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1194
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: KbqPipeReadonlyComponent, isStandalone: true, selector: "kbq-pipe-readonly", providers: [
1180
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeReadonlyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1181
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqPipeReadonlyComponent, isStandalone: true, selector: "kbq-pipe-readonly", providers: [
1195
1182
  {
1196
1183
  provide: KbqBasePipe,
1197
1184
  useExisting: this
@@ -1214,7 +1201,7 @@ class KbqPipeReadonlyComponent extends KbqBasePipe {
1214
1201
  </ng-template>
1215
1202
  `, isInline: true, styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe.kbq-pipe__readonly .kbq-button{cursor:default}.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-button-icon.kbq-button_filled:not(:hover),.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-button.kbq-button_filled,.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-button.kbq-button_filled:hover{background:var(--kbq-states-background-disabled)}.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-pipe__name,.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: KbqPipeMinWidth, selector: "[kbqPipeMinWidth]" }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1216
1203
  }
1217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeReadonlyComponent, decorators: [{
1204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeReadonlyComponent, decorators: [{
1218
1205
  type: Component,
1219
1206
  args: [{ selector: 'kbq-pipe-readonly', imports: [
1220
1207
  KbqButtonModule,
@@ -1239,12 +1226,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
1239
1226
  <div class="kbq-pipe-tooltip__name kbq-text-compact">{{ data.name }}</div>
1240
1227
  <div class="kbq-pipe-tooltip__value kbq-text-compact">{{ data.value }}</div>
1241
1228
  </ng-template>
1242
- `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
1229
+ `, providers: [
1243
1230
  {
1244
1231
  provide: KbqBasePipe,
1245
1232
  useExisting: this
1246
1233
  }
1247
- ], styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe.kbq-pipe__readonly .kbq-button{cursor:default}.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-button-icon.kbq-button_filled:not(:hover),.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-button.kbq-button_filled,.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-button.kbq-button_filled:hover{background:var(--kbq-states-background-disabled)}.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-pipe__name,.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}\n"] }]
1234
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe.kbq-pipe__readonly .kbq-button{cursor:default}.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-button-icon.kbq-button_filled:not(:hover),.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-button.kbq-button_filled,.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-button.kbq-button_filled:hover{background:var(--kbq-states-background-disabled)}.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-pipe__name,.kbq-pipe.kbq-pipe__readonly:not(.kbq-pipe_cleanable) .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}\n"] }]
1248
1235
  }] });
1249
1236
 
1250
1237
  class KbqPipeSelectComponent extends KbqBasePipe {
@@ -1252,6 +1239,8 @@ class KbqPipeSelectComponent extends KbqBasePipe {
1252
1239
  super(...arguments);
1253
1240
  /** control for search options */
1254
1241
  this.searchControl = new UntypedFormControl();
1242
+ /** @docs-private */
1243
+ this.select = viewChild.required(KbqSelect);
1255
1244
  /** Comparator of selected options */
1256
1245
  this.compareByValue = (o1, o2) => o1 && o2 && o1.id === o2.id;
1257
1246
  }
@@ -1269,9 +1258,9 @@ class KbqPipeSelectComponent extends KbqBasePipe {
1269
1258
  }
1270
1259
  ngAfterViewInit() {
1271
1260
  super.ngAfterViewInit();
1272
- this.select.closedStream
1273
- .pipe(takeUntilDestroyed(this.destroyRef))
1274
- .subscribe(() => this.filterBar?.onClosePipe.next(this.data));
1261
+ this.select()
1262
+ .closedStream.pipe(takeUntilDestroyed(this.destroyRef))
1263
+ .subscribe(() => this.filterBar?.onClosePipe.emit(this.data));
1275
1264
  }
1276
1265
  onSelect(item) {
1277
1266
  this.data.value = item;
@@ -1280,54 +1269,51 @@ class KbqPipeSelectComponent extends KbqBasePipe {
1280
1269
  }
1281
1270
  /** opens select */
1282
1271
  open() {
1283
- this.select.open();
1272
+ this.select().open();
1284
1273
  }
1285
1274
  getFilteredOptions(value) {
1286
1275
  return value
1287
1276
  ? this.values.filter((item) => item.name.toLowerCase().includes(value.toLowerCase()))
1288
1277
  : this.values;
1289
1278
  }
1290
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1291
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: KbqPipeSelectComponent, isStandalone: true, selector: "kbq-pipe-select", providers: [
1279
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1280
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqPipeSelectComponent, isStandalone: true, selector: "kbq-pipe-select", providers: [
1292
1281
  {
1293
1282
  provide: KbqBasePipe,
1294
1283
  useExisting: this
1295
1284
  }
1296
- ], viewQueries: [{ propertyName: "select", first: true, predicate: KbqSelect, descendants: true }], usesInheritance: true, ngImport: i0, template: "<kbq-select\n #select\n [compareWith]=\"compareByValue\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [panelClass]=\"'kbq-pipe-select__panel'\"\n [tabIndex]=\"-1\"\n [value]=\"selected\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span\n #kbqTitleText\n kbqPipeMinWidth\n class=\"kbq-pipe__value\"\n [class.kbq-pipe__value_empty]=\"!select.triggerValue\"\n >\n {{ select.triggerValue }}\n </span>\n </button>\n\n @if (data.search) {\n <kbq-form-field kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n }\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n @for (item of filteredOptions | async; track item) {\n <kbq-option [value]=\"item\">\n @if (isTemplateRef(valueTemplate)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(valueTemplate)\"\n [ngTemplateOutletContext]=\"{ $implicit, option: item }\"\n />\n } @else {\n {{ item.name }}\n }\n </kbq-option>\n }\n</kbq-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe-select__panel .kbq-select__content{max-height:404px}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: KbqSelectModule }, { kind: "component", type: i3$1.KbqSelect, selector: "kbq-select", inputs: ["hiddenItemsText", "showPreselectedValues", "triggerValuesLimit", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "multiline", "searchMinOptionsThreshold", "scrolledToBottomOffset", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "virtualOptionFactory", "selectAllHandler", "panelWidth", "panelMinWidth", "value", "id", "tabIndex", "disabled", "hiddenItemsTextFormatter"], outputs: ["openedChange", "beforeOpened", "opened", "closed", "selectionChange", "valueChange", "scrolledToBottom"], exportAs: ["kbqSelect"] }, { kind: "directive", type: i3$1.KbqOptionTooltip, selector: "kbq-option" }, { kind: "component", type: i6.KbqOption, selector: "kbq-option", inputs: ["value", "selectable", "userSelect", "showCheckbox", "viewValue", "disabled"], outputs: ["onSelectionChange"], exportAs: ["kbqOption"] }, { kind: "directive", type: i6.KbqSelectSearch, selector: "[kbqSelectSearch]", exportAs: ["kbqSelectSearch"] }, { kind: "directive", type: i6.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]", inputs: ["useDefaultHandlers"] }, { kind: "directive", type: i6.KbqSelectSearchEmptyResult, selector: "[kbq-select-search-empty-result]", exportAs: ["kbqSelectSearchEmptyResult"] }, { kind: "component", type: i2.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i2.KbqFormFieldWithoutBorders, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", exportAs: ["kbqFormFieldWithoutBorders"] }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "directive", type: i2.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: KbqPipeMinWidth, selector: "[kbqPipeMinWidth]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i4.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1285
+ ], viewQueries: [{ propertyName: "select", first: true, predicate: KbqSelect, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<kbq-select\n #select\n [compareWith]=\"compareByValue\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n [panelClass]=\"'kbq-pipe-select__panel'\"\n [tabIndex]=\"-1\"\n [value]=\"selected\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span\n #kbqTitleText\n kbqPipeMinWidth\n class=\"kbq-pipe__value\"\n [class.kbq-pipe__value_empty]=\"!select.triggerValue\"\n >\n {{ select.triggerValue }}\n </span>\n </button>\n\n @if (data.search) {\n <kbq-form-field noBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n }\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n @for (item of filteredOptions | async; track item) {\n <kbq-option [value]=\"item\">\n @if (isTemplateRef(valueTemplate)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(valueTemplate)\"\n [ngTemplateOutletContext]=\"{ $implicit, option: item }\"\n />\n } @else {\n {{ item.name }}\n }\n </kbq-option>\n }\n</kbq-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe-select__panel .kbq-select__content{max-height:404px}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: KbqSelectModule }, { kind: "component", type: i3$1.KbqSelect, selector: "kbq-select", inputs: ["hiddenItemsText", "showPreselectedValues", "triggerValuesLimit", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "multiline", "searchMinOptionsThreshold", "scrolledToBottomOffset", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "virtualOptionFactory", "selectAllHandler", "panelWidth", "panelMinWidth", "value", "id", "tabIndex", "disabled", "hiddenItemsTextFormatter"], outputs: ["openedChange", "beforeOpened", "opened", "closed", "selectionChange", "valueChange", "scrolledToBottom"], exportAs: ["kbqSelect"] }, { kind: "directive", type: i3$1.KbqOptionTooltip, selector: "kbq-option" }, { kind: "component", type: i8$1.KbqOption, selector: "kbq-option", inputs: ["value", "selectable", "userSelect", "showCheckbox", "viewValue", "disabled"], outputs: ["onSelectionChange"], exportAs: ["kbqOption"] }, { kind: "directive", type: i8$1.KbqSelectSearch, selector: "[kbqSelectSearch]", exportAs: ["kbqSelectSearch"] }, { kind: "directive", type: i8$1.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]", inputs: ["useDefaultHandlers"] }, { kind: "directive", type: i8$1.KbqSelectSearchEmptyResult, selector: "[kbq-select-search-empty-result]", exportAs: ["kbqSelectSearchEmptyResult"] }, { kind: "component", type: i4.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "component", type: i4.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i4.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i4.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: KbqPipeMinWidth, selector: "[kbqPipeMinWidth]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1297
1286
  }
1298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeSelectComponent, decorators: [{
1287
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeSelectComponent, decorators: [{
1299
1288
  type: Component,
1300
1289
  args: [{ selector: 'kbq-pipe-select', imports: [
1301
1290
  KbqButtonModule,
1302
1291
  KbqDividerModule,
1303
1292
  KbqSelectModule,
1304
- NgClass,
1305
1293
  KbqPipeState,
1306
1294
  KbqPipeButton,
1307
1295
  KbqTitleModule,
1308
1296
  KbqPipeTitleDirective,
1309
1297
  KbqPipeMinWidth,
1310
1298
  NgTemplateOutlet,
1311
- KbqFormFieldModule,
1312
1299
  KbqIcon,
1313
1300
  KbqInputModule,
1314
1301
  ReactiveFormsModule,
1315
1302
  AsyncPipe
1316
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
1303
+ ], providers: [
1317
1304
  {
1318
1305
  provide: KbqBasePipe,
1319
1306
  useExisting: this
1320
1307
  }
1321
- ], template: "<kbq-select\n #select\n [compareWith]=\"compareByValue\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [panelClass]=\"'kbq-pipe-select__panel'\"\n [tabIndex]=\"-1\"\n [value]=\"selected\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span\n #kbqTitleText\n kbqPipeMinWidth\n class=\"kbq-pipe__value\"\n [class.kbq-pipe__value_empty]=\"!select.triggerValue\"\n >\n {{ select.triggerValue }}\n </span>\n </button>\n\n @if (data.search) {\n <kbq-form-field kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n }\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n @for (item of filteredOptions | async; track item) {\n <kbq-option [value]=\"item\">\n @if (isTemplateRef(valueTemplate)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(valueTemplate)\"\n [ngTemplateOutletContext]=\"{ $implicit, option: item }\"\n />\n } @else {\n {{ item.name }}\n }\n </kbq-option>\n }\n</kbq-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe-select__panel .kbq-select__content{max-height:404px}\n"] }]
1322
- }], propDecorators: { select: [{
1323
- type: ViewChild,
1324
- args: [KbqSelect]
1325
- }] } });
1308
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<kbq-select\n #select\n [compareWith]=\"compareByValue\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n [panelClass]=\"'kbq-pipe-select__panel'\"\n [tabIndex]=\"-1\"\n [value]=\"selected\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span\n #kbqTitleText\n kbqPipeMinWidth\n class=\"kbq-pipe__value\"\n [class.kbq-pipe__value_empty]=\"!select.triggerValue\"\n >\n {{ select.triggerValue }}\n </span>\n </button>\n\n @if (data.search) {\n <kbq-form-field noBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n }\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n @for (item of filteredOptions | async; track item) {\n <kbq-option [value]=\"item\">\n @if (isTemplateRef(valueTemplate)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(valueTemplate)\"\n [ngTemplateOutletContext]=\"{ $implicit, option: item }\"\n />\n } @else {\n {{ item.name }}\n }\n </kbq-option>\n }\n</kbq-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe-select__panel .kbq-select__content{max-height:404px}\n"] }]
1309
+ }], propDecorators: { select: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqSelect), { isSignal: true }] }] } });
1326
1310
 
1327
1311
  class KbqPipeTextComponent extends KbqBasePipe {
1328
1312
  constructor() {
1329
1313
  super(...arguments);
1330
1314
  this.placements = PopUpPlacements;
1315
+ /** @docs-private */
1316
+ this.popover = viewChild.required(KbqPopoverTrigger);
1331
1317
  /** textarea control */
1332
1318
  this.control = new FormControl('');
1333
1319
  }
@@ -1340,10 +1326,12 @@ class KbqPipeTextComponent extends KbqBasePipe {
1340
1326
  }
1341
1327
  ngAfterViewInit() {
1342
1328
  super.ngAfterViewInit();
1343
- this.popover.visibleChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((visible) => {
1329
+ this.popover()
1330
+ .visibleChange.pipe(takeUntilDestroyed(this.destroyRef))
1331
+ .subscribe((visible) => {
1344
1332
  this.stateChanges.next();
1345
1333
  if (!visible) {
1346
- this.filterBar?.onClosePipe.next(this.data);
1334
+ this.filterBar?.onClosePipe.emit(this.data);
1347
1335
  }
1348
1336
  });
1349
1337
  }
@@ -1351,7 +1339,7 @@ class KbqPipeTextComponent extends KbqBasePipe {
1351
1339
  this.data.value = this.control.value;
1352
1340
  this.stateChanges.next();
1353
1341
  this.control.markAsPristine();
1354
- this.popover.hide();
1342
+ this.popover().hide();
1355
1343
  this.filterBar?.onChangePipe.next(this.data);
1356
1344
  }
1357
1345
  /** @docs-private */
@@ -1367,43 +1355,38 @@ class KbqPipeTextComponent extends KbqBasePipe {
1367
1355
  }
1368
1356
  /** opens popover */
1369
1357
  open() {
1370
- this.popover.show();
1358
+ this.popover().show();
1371
1359
  }
1372
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1373
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: KbqPipeTextComponent, isStandalone: true, selector: "kbq-pipe-text", providers: [
1360
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1361
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqPipeTextComponent, isStandalone: true, selector: "kbq-pipe-text", providers: [
1374
1362
  {
1375
1363
  provide: KbqBasePipe,
1376
1364
  useExisting: this
1377
1365
  }
1378
- ], viewQueries: [{ propertyName: "popover", first: true, predicate: KbqPopoverTrigger, descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverFooter]=\"footer\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [ngClass]=\"{ 'kbq-active': popover?.isOpen }\"\n>\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!data.value\">\n {{ data.value }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n <kbq-form-field (keydown)=\"onKeydown($event)\">\n <textarea kbqTextarea rows=\"1\" [formControl]=\"control\" [freeRowsHeight]=\"0\" [maxRows]=\"5\"></textarea>\n </kbq-form-field>\n</ng-template>\n\n<ng-template #footer>\n <button kbq-button [color]=\"'theme'\" [disabled]=\"disabled\" [kbqStyle]=\"'transparent'\" (click)=\"onApply()\">\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ data.value }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "directive", type: i2.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["hideIfNotInViewPort", "kbqPopoverPreventClose", "defaultPaddings", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "kbqPopoverStickToWindow", "container", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "kbqPopoverContext", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: KbqTextareaModule }, { kind: "directive", type: i5$1.KbqTextarea, selector: "textarea[kbqTextarea]", inputs: ["canGrow", "maxRows", "errorStateMatcher", "disabled", "id", "placeholder", "freeRowsHeight", "required", "value"], exportAs: ["kbqTextarea"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: KbqPipeMinWidth, selector: "[kbqPipeMinWidth]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1366
+ ], viewQueries: [{ propertyName: "popover", first: true, predicate: KbqPopoverTrigger, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<button\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverSize]=\"'custom'\"\n [kbqPopoverClass]=\"'kbq-pipe__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverFooter]=\"footer\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [class]=\"{ 'kbq-active': popover()?.isOpen }\"\n>\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!data.value\">\n {{ data.value }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n <kbq-form-field (keydown)=\"onKeydown($event)\">\n <textarea kbqTextarea rows=\"1\" [formControl]=\"control\" [freeRowsHeight]=\"0\" [maxRows]=\"5\"></textarea>\n </kbq-form-field>\n</ng-template>\n\n<ng-template #footer>\n <button kbq-button [color]=\"'theme'\" [disabled]=\"disabled\" [kbqStyle]=\"'transparent'\" (click)=\"onApply()\">\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ data.value }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["hideIfNotInViewPort", "kbqPopoverPreventClose", "defaultPaddings", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "kbqPopoverStickToWindow", "container", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "kbqPopoverContext", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "component", type: i4.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i4.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: KbqTextareaModule }, { kind: "directive", type: i5$1.KbqTextarea, selector: "textarea[kbqTextarea]", inputs: ["canGrow", "maxRows", "errorStateMatcher", "disabled", "id", "placeholder", "freeRowsHeight", "required", "value"], exportAs: ["kbqTextarea"] }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: KbqPipeMinWidth, selector: "[kbqPipeMinWidth]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1379
1367
  }
1380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeTextComponent, decorators: [{
1368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeTextComponent, decorators: [{
1381
1369
  type: Component,
1382
1370
  args: [{ selector: 'kbq-pipe-text', imports: [
1383
1371
  KbqButtonModule,
1384
- KbqFormFieldModule,
1385
1372
  KbqPopoverModule,
1386
1373
  KbqInputModule,
1387
1374
  KbqDividerModule,
1388
1375
  FormsModule,
1389
1376
  KbqTextareaModule,
1390
- NgClass,
1391
1377
  KbqPipeButton,
1392
1378
  ReactiveFormsModule,
1393
1379
  KbqTitleModule,
1394
1380
  KbqPipeState,
1395
1381
  KbqPipeTitleDirective,
1396
1382
  KbqPipeMinWidth
1397
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
1383
+ ], providers: [
1398
1384
  {
1399
1385
  provide: KbqBasePipe,
1400
1386
  useExisting: this
1401
1387
  }
1402
- ], template: "<button\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverFooter]=\"footer\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [ngClass]=\"{ 'kbq-active': popover?.isOpen }\"\n>\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!data.value\">\n {{ data.value }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n <kbq-form-field (keydown)=\"onKeydown($event)\">\n <textarea kbqTextarea rows=\"1\" [formControl]=\"control\" [freeRowsHeight]=\"0\" [maxRows]=\"5\"></textarea>\n </kbq-form-field>\n</ng-template>\n\n<ng-template #footer>\n <button kbq-button [color]=\"'theme'\" [disabled]=\"disabled\" [kbqStyle]=\"'transparent'\" (click)=\"onApply()\">\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ data.value }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n"] }]
1403
- }], propDecorators: { popover: [{
1404
- type: ViewChild,
1405
- args: [KbqPopoverTrigger]
1406
- }] } });
1388
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<button\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverSize]=\"'custom'\"\n [kbqPopoverClass]=\"'kbq-pipe__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverFooter]=\"footer\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [class]=\"{ 'kbq-active': popover()?.isOpen }\"\n>\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!data.value\">\n {{ data.value }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n <kbq-form-field (keydown)=\"onKeydown($event)\">\n <textarea kbqTextarea rows=\"1\" [formControl]=\"control\" [freeRowsHeight]=\"0\" [maxRows]=\"5\"></textarea>\n </kbq-form-field>\n</ng-template>\n\n<ng-template #footer>\n <button kbq-button [color]=\"'theme'\" [disabled]=\"disabled\" [kbqStyle]=\"'transparent'\" (click)=\"onApply()\">\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ data.value }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n"] }]
1389
+ }], propDecorators: { popover: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqPopoverTrigger), { isSignal: true }] }] } });
1407
1390
 
1408
1391
  class KbqPipeTreeSelectComponent extends KbqBasePipe {
1409
1392
  /** selected value */
@@ -1418,6 +1401,8 @@ class KbqPipeTreeSelectComponent extends KbqBasePipe {
1418
1401
  super();
1419
1402
  /** control for search options */
1420
1403
  this.searchControl = new UntypedFormControl();
1404
+ /** @docs-private */
1405
+ this.select = viewChild.required(KbqTreeSelect);
1421
1406
  /** updates values for selection and value template */
1422
1407
  this.updateTemplates = (templates) => {
1423
1408
  const template = templates?.find((template) => getId(template) === getId(this.data));
@@ -1461,9 +1446,9 @@ class KbqPipeTreeSelectComponent extends KbqBasePipe {
1461
1446
  }
1462
1447
  ngAfterViewInit() {
1463
1448
  super.ngAfterViewInit();
1464
- this.select.closedStream
1465
- .pipe(takeUntilDestroyed(this.destroyRef))
1466
- .subscribe(() => this.filterBar?.onClosePipe.next(this.data));
1449
+ this.select()
1450
+ .closedStream.pipe(takeUntilDestroyed(this.destroyRef))
1451
+ .subscribe(() => this.filterBar?.onClosePipe.emit(this.data));
1467
1452
  }
1468
1453
  hasChild(_, nodeData) {
1469
1454
  return nodeData.expandable;
@@ -1471,37 +1456,35 @@ class KbqPipeTreeSelectComponent extends KbqBasePipe {
1471
1456
  onSelect(item) {
1472
1457
  this.data.value = item.value;
1473
1458
  this.filterBar?.onChangePipe.emit(this.data);
1474
- this.select.close();
1475
- setTimeout(() => this.select.focus());
1459
+ this.select().close();
1460
+ setTimeout(() => this.select().focus());
1476
1461
  this.stateChanges.next();
1477
1462
  }
1478
1463
  /** opens select */
1479
1464
  open() {
1480
- setTimeout(() => this.select.open());
1465
+ setTimeout(() => this.select().open());
1481
1466
  }
1482
1467
  onOpen() {
1483
1468
  this.treeControl.expandAll();
1484
1469
  }
1485
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeTreeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1486
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: KbqPipeTreeSelectComponent, isStandalone: true, selector: "kbq-pipe-tree-select", providers: [
1470
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeTreeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1471
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqPipeTreeSelectComponent, isStandalone: true, selector: "kbq-pipe-tree-select", providers: [
1487
1472
  {
1488
1473
  provide: KbqBasePipe,
1489
1474
  useExisting: this
1490
1475
  }
1491
- ], viewQueries: [{ propertyName: "select", first: true, predicate: KbqTreeSelect, descendants: true }], usesInheritance: true, ngImport: i0, template: "<kbq-tree-select\n #select\n [autoSelect]=\"false\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [ngModel]=\"selected\"\n [panelClass]=\"'kbq-pipe-tree-select__panel'\"\n [tabIndex]=\"-1\"\n (opened)=\"onOpen()\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/prefer-control-flow -->\n <kbq-form-field *ngIf=\"data.search\" kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n autocomplete=\"off\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n <kbq-cleaner #kbqSelectCleaner />\n\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span\n #kbqTitleText\n kbqPipeMinWidth\n class=\"kbq-pipe__value\"\n [class.kbq-pipe__value_empty]=\"!select.triggerValue\"\n >\n {{ select.triggerValue }}\n </span>\n </button>\n\n <kbq-tree-selection [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <kbq-tree-option *kbqTreeNodeDef=\"let node\" kbqTreeNodePadding>\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option *kbqTreeNodeDef=\"let node; when: hasChild\" kbqTreeNodePadding [selectable]=\"false\">\n <kbq-tree-node-toggle [node]=\"node\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n </kbq-tree-selection>\n</kbq-tree-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe-tree-select__panel .kbq-tree-select__content{max-height:404px}.kbq-pipe__tree-select .kbq-select__trigger{height:unset}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: KbqPipeMinWidth, selector: "[kbqPipeMinWidth]" }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i2.KbqFormFieldWithoutBorders, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", exportAs: ["kbqFormFieldWithoutBorders"] }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "directive", type: i2.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i4.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: KbqHighlightModule }, { kind: "pipe", type: i6.KbqHighlightPipe, name: "mcHighlight" }, { kind: "ngmodule", type: KbqTreeModule }, { kind: "directive", type: i7$1.KbqTreeNodeDef, selector: "[kbqTreeNodeDef]", inputs: ["kbqTreeNodeDefWhen", "kbqTreeNode"] }, { kind: "directive", type: i7$1.KbqTreeNodePadding, selector: "[kbqTreeNodePadding]", inputs: ["kbqTreeNodePaddingIndent"], exportAs: ["kbqTreeNodePadding"] }, { kind: "component", type: i7$1.KbqTreeSelection, selector: "kbq-tree-selection", inputs: ["treeControl", "autoSelect", "noUnselectLast", "disabled", "tabIndex"], outputs: ["navigationChange", "selectionChange", "onSelectAll", "onCopy"], exportAs: ["kbqTreeSelection"] }, { kind: "component", type: i7$1.KbqTreeOption, selector: "kbq-tree-option", inputs: ["checkboxThirdState", "disabled", "selectable", "showCheckbox"], outputs: ["onSelectionChange"], exportAs: ["kbqTreeOption"] }, { kind: "component", type: i7$1.KbqTreeNodeToggleComponent, selector: "kbq-tree-node-toggle", exportAs: ["kbqTreeNodeToggle"] }, { kind: "ngmodule", type: KbqTreeSelectModule }, { kind: "component", type: i8$1.KbqTreeSelect, selector: "kbq-tree-select", inputs: ["hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "multiline", "placeholder", "required", "multiple", "autoSelect", "id", "hasBackdrop", "tabIndex", "disabled", "selectAllHandler", "panelMinWidth", "panelWidth", "searchMinOptionsThreshold", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["kbqTreeSelect"] }, { kind: "directive", type: i6.KbqSelectSearch, selector: "[kbqSelectSearch]", exportAs: ["kbqSelectSearch"] }, { kind: "directive", type: i6.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]", inputs: ["useDefaultHandlers"] }, { kind: "directive", type: i6.KbqSelectSearchEmptyResult, selector: "[kbq-select-search-empty-result]", exportAs: ["kbqSelectSearchEmptyResult"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1476
+ ], viewQueries: [{ propertyName: "select", first: true, predicate: KbqTreeSelect, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<kbq-tree-select\n #select\n [autoSelect]=\"false\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n [ngModel]=\"selected\"\n [panelClass]=\"'kbq-pipe-tree-select__panel'\"\n [tabIndex]=\"-1\"\n (opened)=\"onOpen()\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/prefer-control-flow -->\n <kbq-form-field *ngIf=\"data.search\" noBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n autocomplete=\"off\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n <kbq-cleaner #kbqSelectCleaner />\n\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span\n #kbqTitleText\n kbqPipeMinWidth\n class=\"kbq-pipe__value\"\n [class.kbq-pipe__value_empty]=\"!select.triggerValue\"\n >\n {{ select.triggerValue }}\n </span>\n </button>\n\n <kbq-tree-selection [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <kbq-tree-option *kbqTreeNodeDef=\"let node\" kbqTreeNodePadding>\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option *kbqTreeNodeDef=\"let node; when: hasChild\" kbqTreeNodePadding [selectable]=\"false\">\n <kbq-tree-node-toggle [node]=\"node\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n </kbq-tree-selection>\n</kbq-tree-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe-tree-select__panel .kbq-tree-select__content{max-height:404px}.kbq-pipe__tree-select .kbq-select__trigger{height:unset}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: KbqPipeMinWidth, selector: "[kbqPipeMinWidth]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "component", type: i4.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "component", type: i4.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i4.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i4.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: KbqHighlightModule }, { kind: "ngmodule", type: KbqTreeModule }, { kind: "directive", type: i6$1.KbqTreeNodeDef, selector: "[kbqTreeNodeDef]", inputs: ["kbqTreeNodeDefWhen", "kbqTreeNode"] }, { kind: "directive", type: i6$1.KbqTreeNodePadding, selector: "[kbqTreeNodePadding]", inputs: ["kbqTreeNodePaddingIndent"], exportAs: ["kbqTreeNodePadding"] }, { kind: "component", type: i6$1.KbqTreeSelection, selector: "kbq-tree-selection", inputs: ["treeControl", "autoSelect", "noUnselectLast", "disabled", "tabIndex"], outputs: ["navigationChange", "selectionChange", "onSelectAll", "onCopy"], exportAs: ["kbqTreeSelection"] }, { kind: "component", type: i6$1.KbqTreeOption, selector: "kbq-tree-option", inputs: ["checkboxThirdState", "disabled", "selectable", "showCheckbox"], outputs: ["onSelectionChange"], exportAs: ["kbqTreeOption"] }, { kind: "component", type: i6$1.KbqTreeNodeToggleComponent, selector: "kbq-tree-node-toggle", exportAs: ["kbqTreeNodeToggle"] }, { kind: "ngmodule", type: KbqTreeSelectModule }, { kind: "component", type: i7$1.KbqTreeSelect, selector: "kbq-tree-select", inputs: ["hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "multiline", "placeholder", "required", "multiple", "autoSelect", "id", "hasBackdrop", "tabIndex", "disabled", "selectAllHandler", "panelMinWidth", "panelWidth", "searchMinOptionsThreshold", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["kbqTreeSelect"] }, { kind: "directive", type: i8$1.KbqSelectSearch, selector: "[kbqSelectSearch]", exportAs: ["kbqSelectSearch"] }, { kind: "directive", type: i8$1.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]", inputs: ["useDefaultHandlers"] }, { kind: "directive", type: i8$1.KbqSelectSearchEmptyResult, selector: "[kbq-select-search-empty-result]", exportAs: ["kbqSelectSearchEmptyResult"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i8$1.KbqHighlightPipe, name: "mcHighlight" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1492
1477
  }
1493
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeTreeSelectComponent, decorators: [{
1478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeTreeSelectComponent, decorators: [{
1494
1479
  type: Component,
1495
1480
  args: [{ selector: 'kbq-pipe-tree-select', imports: [
1496
1481
  KbqButtonModule,
1497
1482
  KbqDividerModule,
1498
- NgClass,
1499
1483
  KbqPipeState,
1500
1484
  KbqPipeButton,
1501
1485
  KbqTitleModule,
1502
1486
  KbqPipeTitleDirective,
1503
1487
  KbqPipeMinWidth,
1504
- KbqFormFieldModule,
1505
1488
  KbqIconModule,
1506
1489
  KbqInputModule,
1507
1490
  ReactiveFormsModule,
@@ -1510,16 +1493,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
1510
1493
  KbqTreeSelectModule,
1511
1494
  NgIf,
1512
1495
  FormsModule
1513
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
1496
+ ], providers: [
1514
1497
  {
1515
1498
  provide: KbqBasePipe,
1516
1499
  useExisting: this
1517
1500
  }
1518
- ], template: "<kbq-tree-select\n #select\n [autoSelect]=\"false\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [ngModel]=\"selected\"\n [panelClass]=\"'kbq-pipe-tree-select__panel'\"\n [tabIndex]=\"-1\"\n (opened)=\"onOpen()\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/prefer-control-flow -->\n <kbq-form-field *ngIf=\"data.search\" kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n autocomplete=\"off\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n <kbq-cleaner #kbqSelectCleaner />\n\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span\n #kbqTitleText\n kbqPipeMinWidth\n class=\"kbq-pipe__value\"\n [class.kbq-pipe__value_empty]=\"!select.triggerValue\"\n >\n {{ select.triggerValue }}\n </span>\n </button>\n\n <kbq-tree-selection [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <kbq-tree-option *kbqTreeNodeDef=\"let node\" kbqTreeNodePadding>\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option *kbqTreeNodeDef=\"let node; when: hasChild\" kbqTreeNodePadding [selectable]=\"false\">\n <kbq-tree-node-toggle [node]=\"node\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n </kbq-tree-selection>\n</kbq-tree-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe-tree-select__panel .kbq-tree-select__content{max-height:404px}.kbq-pipe__tree-select .kbq-select__trigger{height:unset}\n"] }]
1519
- }], ctorParameters: () => [], propDecorators: { select: [{
1520
- type: ViewChild,
1521
- args: [KbqTreeSelect]
1522
- }] } });
1501
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<kbq-tree-select\n #select\n [autoSelect]=\"false\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n [ngModel]=\"selected\"\n [panelClass]=\"'kbq-pipe-tree-select__panel'\"\n [tabIndex]=\"-1\"\n (opened)=\"onOpen()\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/prefer-control-flow -->\n <kbq-form-field *ngIf=\"data.search\" noBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.search.placeholder }}\"\n autocomplete=\"off\"\n kbqInput\n type=\"text\"\n [formControl]=\"searchControl\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n <kbq-cleaner #kbqSelectCleaner />\n\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [class]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span\n #kbqTitleText\n kbqPipeMinWidth\n class=\"kbq-pipe__value\"\n [class.kbq-pipe__value_empty]=\"!select.triggerValue\"\n >\n {{ select.triggerValue }}\n </span>\n </button>\n\n <kbq-tree-selection [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <kbq-tree-option *kbqTreeNodeDef=\"let node\" kbqTreeNodePadding>\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option *kbqTreeNodeDef=\"let node; when: hasChild\" kbqTreeNodePadding [selectable]=\"false\">\n <kbq-tree-node-toggle [node]=\"node\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n </kbq-tree-selection>\n</kbq-tree-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe-tree-select__panel .kbq-tree-select__content{max-height:404px}.kbq-pipe__tree-select .kbq-select__trigger{height:unset}\n"] }]
1502
+ }], ctorParameters: () => [], propDecorators: { select: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqTreeSelect), { isSignal: true }] }] } });
1523
1503
 
1524
1504
  /**default configuration of filter-bar */
1525
1505
  const KBQ_FILTER_BAR_DEFAULT_CONFIGURATION = ruRULocaleData.filterBar;
@@ -1588,7 +1568,7 @@ class KbqFilterReset {
1588
1568
  /** KbqFilterBar instance */
1589
1569
  this.filterBar = inject(KbqFilterBar);
1590
1570
  /** Event that is generated whenever the user reset a filter. */
1591
- this.onResetFilter = new EventEmitter();
1571
+ this.onResetFilter = output();
1592
1572
  }
1593
1573
  /** localized data
1594
1574
  * @docs-private */
@@ -1600,14 +1580,14 @@ class KbqFilterReset {
1600
1580
  this.filterBar.changes.next();
1601
1581
  this.filterBar.onResetFilter.next(true);
1602
1582
  }
1603
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterReset, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1604
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: KbqFilterReset, isStandalone: true, selector: "kbq-filter-reset", outputs: { onResetFilter: "onResetFilter" }, host: { classAttribute: "kbq-filter-reset" }, ngImport: i0, template: `
1583
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFilterReset, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1584
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: KbqFilterReset, isStandalone: true, selector: "kbq-filter-reset", outputs: { onResetFilter: "onResetFilter" }, host: { classAttribute: "kbq-filter-reset" }, ngImport: i0, template: `
1605
1585
  <button kbq-button [color]="'theme'" [kbqStyle]="'transparent'" (click)="resetFilter()">
1606
1586
  <ng-content>{{ localeData }}</ng-content>
1607
1587
  </button>
1608
1588
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1609
1589
  }
1610
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterReset, decorators: [{
1590
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFilterReset, decorators: [{
1611
1591
  type: Component,
1612
1592
  args: [{
1613
1593
  selector: 'kbq-filter-reset',
@@ -1622,9 +1602,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
1622
1602
  class: 'kbq-filter-reset'
1623
1603
  }
1624
1604
  }]
1625
- }], propDecorators: { onResetFilter: [{
1626
- type: Output
1627
- }] } });
1605
+ }], propDecorators: { onResetFilter: [{ type: i0.Output, args: ["onResetFilter"] }] } });
1628
1606
 
1629
1607
  class KbqFilterBarButton {
1630
1608
  constructor() {
@@ -1646,10 +1624,10 @@ class KbqFilterBarButton {
1646
1624
  saveFocusedElement() {
1647
1625
  this.filters.saveFocusedElement(this.button);
1648
1626
  }
1649
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterBarButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1650
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqFilterBarButton, isStandalone: true, selector: "[kbqFilterBarButton]", host: { listeners: { "click": "saveFocusedElement()", "keydown": "saveFocusedElement()" } }, ngImport: i0 }); }
1627
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFilterBarButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1628
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqFilterBarButton, isStandalone: true, selector: "[kbqFilterBarButton]", host: { listeners: { "click": "saveFocusedElement()", "keydown": "saveFocusedElement()" } }, ngImport: i0 }); }
1651
1629
  }
1652
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterBarButton, decorators: [{
1630
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFilterBarButton, decorators: [{
1653
1631
  type: Directive,
1654
1632
  args: [{
1655
1633
  selector: '[kbqFilterBarButton]',
@@ -1667,11 +1645,11 @@ class KbqFilters {
1667
1645
  }
1668
1646
  /** Component state. true if opened dropdown or popup */
1669
1647
  get opened() {
1670
- return this.popover?.isOpen || this.dropdown?.opened;
1648
+ return this.popover()?.isOpen || this.dropdown()?.opened;
1671
1649
  }
1672
1650
  /** Component state. true if opened dropdown or popup of filterActions */
1673
1651
  get filterActionsOpened() {
1674
- return this.popover?.isOpen || this.filterActionsDropdown?.opened;
1652
+ return !!(this.popover()?.isOpen || this.filterActionsDropdown()?.opened);
1675
1653
  }
1676
1654
  /** Selected filter */
1677
1655
  get filter() {
@@ -1679,7 +1657,7 @@ class KbqFilters {
1679
1657
  }
1680
1658
  /** Component state. True if 'filters' input contains no elements. */
1681
1659
  get isEmpty() {
1682
- return this.filters.length === 0;
1660
+ return this.filters().length === 0;
1683
1661
  }
1684
1662
  /** localized data
1685
1663
  * @docs-private */
@@ -1708,6 +1686,21 @@ class KbqFilters {
1708
1686
  this.filterBar = inject(KbqFilterBar);
1709
1687
  /** @docs-private */
1710
1688
  this.changeDetectorRef = inject(ChangeDetectorRef);
1689
+ /** @docs-private */
1690
+ this.mainButton = viewChild.required('mainButton');
1691
+ /** @docs-private */
1692
+ this.saveNewFilterButton = viewChild.required('saveNewFilterButton');
1693
+ /** @docs-private */
1694
+ this.filterActionsButton = viewChild.required('filterActionsButton');
1695
+ /** @docs-private */
1696
+ this.popover = viewChild.required(KbqPopoverTrigger);
1697
+ /** @docs-private */
1698
+ this.dropdown = viewChild.required(KbqDropdownTrigger);
1699
+ /** @docs-private */
1700
+ this.filterActionsDropdown = viewChild('filterActionsButton', ...(ngDevMode ? [{ debugName: "filterActionsDropdown" }] : []));
1701
+ this.search = viewChild.required('search');
1702
+ this.newFilterName = viewChild.required('newFilterName');
1703
+ this.saveFilterButton = viewChild.required('saveFilterButton');
1711
1704
  /** control for search filter */
1712
1705
  this.searchControl = new UntypedFormControl();
1713
1706
  /** @docs-private */
@@ -1716,22 +1709,20 @@ class KbqFilters {
1716
1709
  this.popoverOffset = 4;
1717
1710
  this.showFilterSavingError = false;
1718
1711
  this.isSaving = false;
1712
+ this.filters = input(undefined, ...(ngDevMode ? [{ debugName: "filters" }] : []));
1719
1713
  /** Event that is generated whenever the user selects a filter. */
1720
- this.onSelectFilter = new EventEmitter();
1714
+ this.onSelectFilter = output();
1721
1715
  /** Event that is generated whenever the user save a filter. */
1722
- this.onSave = new EventEmitter();
1716
+ this.onSave = output();
1723
1717
  /** Event that is generated whenever the user change a filter. */
1724
- this.onChangeFilter = new EventEmitter();
1725
- /** Event that is generated whenever the user saves a filter as new.
1726
- * @deprecated use onSave with status = newFilter. */
1727
- this.onSaveAsNew = new EventEmitter();
1718
+ this.onChangeFilter = output();
1728
1719
  /** Event that is generated whenever the user remove a filter. */
1729
- this.onRemoveFilter = new EventEmitter();
1720
+ this.onRemoveFilter = output();
1730
1721
  /** Event that is generated whenever the user reset a filter changes. */
1731
- this.onResetFilterChanges = new EventEmitter();
1722
+ this.onResetFilterChanges = output();
1732
1723
  this._focusOrigin = null;
1733
1724
  this.closePopover = (restoreFocus = true) => {
1734
- this.popover.hide();
1725
+ this.popover().hide();
1735
1726
  if (restoreFocus)
1736
1727
  this.restoreFocus();
1737
1728
  setTimeout(() => this.changeDetectorRef.detectChanges());
@@ -1740,7 +1731,7 @@ class KbqFilters {
1740
1731
  this.filterBar.changes.subscribe(() => this.changeDetectorRef.markForCheck());
1741
1732
  }
1742
1733
  ngOnInit() {
1743
- this.filteredOptions = merge(of(this.filters), this.searchControl.valueChanges.pipe(map((value) => this.getFilteredOptions(value))));
1734
+ this.filteredOptions = merge(of(this.filters()), this.searchControl.valueChanges.pipe(map((value) => this.getFilteredOptions(value))));
1744
1735
  this.focusMonitor
1745
1736
  .monitor(this.elementRef, true)
1746
1737
  .pipe(filter((origin) => !!origin), takeUntilDestroyed(this.destroyRef))
@@ -1752,7 +1743,7 @@ class KbqFilters {
1752
1743
  }
1753
1744
  selectFilter(filter) {
1754
1745
  this.filterBar.internalFilterChanges.next(structuredClone(filter));
1755
- this.onSelectFilter.next(filter);
1746
+ this.onSelectFilter.emit(filter);
1756
1747
  }
1757
1748
  saveChanges() {
1758
1749
  if (!this.filterBar.filter)
@@ -1776,10 +1767,9 @@ class KbqFilters {
1776
1767
  filter.saved = true;
1777
1768
  filter.changed = false;
1778
1769
  this.isSaving = true;
1779
- this.popover.preventClose = true;
1770
+ this.popover().preventClose = true;
1780
1771
  this.filterName.disable();
1781
1772
  if (this.saveNewFilter) {
1782
- this.onSaveAsNew.emit({ filter, filterBar: this.filterBar });
1783
1773
  this.onSave.emit({ filter, filterBar: this.filterBar, status: KbqSaveFilterStatuses.NewFilter });
1784
1774
  }
1785
1775
  else {
@@ -1803,15 +1793,15 @@ class KbqFilters {
1803
1793
  preparePopover() {
1804
1794
  this.filterName = new FormControl(this.filter?.name || '', Validators.required);
1805
1795
  this.filterName.valueChanges.pipe(distinctUntilChanged()).subscribe(() => (this.showFilterSavingError = false));
1806
- this.popover.show();
1807
- merge(...this.popover.defaultClosingActions())
1808
- .pipe(filter(() => !this.isSaving), takeUntilDestroyed(this.popover.instanceDestroyRef))
1796
+ this.popover().show();
1797
+ merge(...this.popover().defaultClosingActions())
1798
+ .pipe(filter(() => !this.isSaving), takeUntilDestroyed(this.popover().instanceDestroyRef))
1809
1799
  .subscribe(() => this.closePopover(false));
1810
- this.popover.visibleChange
1811
- .pipe(filter((state) => !state), takeUntilDestroyed(this.popover.instanceDestroyRef))
1800
+ this.popover()
1801
+ .visibleChange.pipe(filter((state) => !state), takeUntilDestroyed(this.popover().instanceDestroyRef))
1812
1802
  .subscribe(this.closePopover);
1813
1803
  setTimeout(() => {
1814
- this.newFilterName.nativeElement.focus();
1804
+ this.newFilterName().nativeElement.focus();
1815
1805
  this.filterName.setErrors(null);
1816
1806
  });
1817
1807
  }
@@ -1843,44 +1833,45 @@ class KbqFilters {
1843
1833
  /** @docs-private */
1844
1834
  onDropdownOpen() {
1845
1835
  this.searchControl.setValue(null);
1846
- setTimeout(() => this.search.nativeElement.focus());
1836
+ setTimeout(() => this.search().nativeElement.focus());
1847
1837
  }
1848
1838
  resetFilterChanges() {
1849
1839
  this.filterBar.resetFilterChangedState();
1850
1840
  this.onResetFilterChanges.emit(this.filter);
1851
1841
  }
1852
1842
  removeFilter() {
1853
- this.onRemoveFilter.next(this.filter);
1854
- setTimeout(() => this.focusMonitor.focusVia(this.mainButton.elementRef, this.focusOrigin), 0);
1843
+ this.onRemoveFilter.emit(this.filter);
1844
+ setTimeout(() => this.focusMonitor.focusVia(this.mainButton().elementRef, this.focusOrigin), 0);
1855
1845
  }
1856
1846
  /** Hide the popup and restore focus.
1857
- * Use this method in the onSave, onSaveAsNew, or onChangeFilter events after the data has been successfully saved. */
1847
+ * Use this method in the onSave or onChangeFilter events after the data has been successfully saved. */
1858
1848
  filterSavedSuccessfully() {
1849
+ const popover = this.popover();
1859
1850
  this.isSaving = false;
1860
- this.popover.preventClose = false;
1861
- this.popover.hide();
1851
+ popover.preventClose = false;
1852
+ popover.hide();
1862
1853
  setTimeout(() => this.restoreFocus(), 0);
1863
1854
  this.changeDetectorRef.markForCheck();
1864
1855
  }
1865
- /** Shows an error. Use this method in the onSave, onSaveAsNew, or onChangeFilter events if saving data failed. */
1856
+ /** Shows an error. Use this method in the onSave or onChangeFilter events if saving data failed. */
1866
1857
  filterSavedUnsuccessfully(error) {
1867
1858
  this.isSaving = false;
1868
- this.popover.preventClose = false;
1859
+ this.popover().preventClose = false;
1869
1860
  this.showError(error);
1870
1861
  this.filterName.enable();
1871
- setTimeout(() => this.saveFilterButton.focus());
1862
+ setTimeout(() => this.saveFilterButton().focus());
1872
1863
  this.changeDetectorRef.markForCheck();
1873
1864
  }
1874
1865
  getFilteredOptions(value) {
1875
1866
  const searchFilter = value && value.new ? value.value : value;
1876
1867
  return searchFilter
1877
- ? this.filters.filter((filter) => filter.name.toLowerCase().includes(searchFilter.toLowerCase()))
1878
- : this.filters;
1868
+ ? this.filters().filter((filter) => filter.name.toLowerCase().includes(searchFilter.toLowerCase()))
1869
+ : this.filters();
1879
1870
  }
1880
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilters, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1881
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: KbqFilters, isStandalone: true, selector: "kbq-filters", inputs: { filters: "filters" }, outputs: { onSelectFilter: "onSelectFilter", onSave: "onSave", onChangeFilter: "onChangeFilter", onSaveAsNew: "onSaveAsNew", onRemoveFilter: "onRemoveFilter", onResetFilterChanges: "onResetFilterChanges" }, host: { classAttribute: "kbq-filters" }, viewQueries: [{ propertyName: "mainButton", first: true, predicate: ["mainButton"], descendants: true }, { propertyName: "saveNewFilterButton", first: true, predicate: ["saveNewFilterButton"], descendants: true }, { propertyName: "filterActionsButton", first: true, predicate: ["filterActionsButton"], descendants: true }, { propertyName: "popover", first: true, predicate: KbqPopoverTrigger, descendants: true }, { propertyName: "dropdown", first: true, predicate: KbqDropdownTrigger, descendants: true }, { propertyName: "filterActionsDropdown", first: true, predicate: ["filterActionsButton"], descendants: true }, { propertyName: "search", first: true, predicate: ["search"], descendants: true }, { propertyName: "newFilterName", first: true, predicate: ["newFilterName"], descendants: true }, { propertyName: "saveFilterButton", first: true, predicate: ["saveFilterButton"], descendants: true }], exportAs: ["kbqFilters"], ngImport: i0, template: "<button\n #mainButton\n kbq-button\n kbq-title\n kbqFilterBarButton\n kbqPopover\n [kbqDropdownTriggerFor]=\"savedFilters\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverOffset]=\"popoverOffset\"\n [kbqPopoverClass]=\"'kbq-filters__save-as-new-filter-popover'\"\n [kbqPopoverContent]=\"saveAsNewPopoverContent\"\n [kbqPopoverFooter]=\"saveAsNewPopoverFooter\"\n [kbqPopoverHeader]=\"saveAsNewPopoverHeader\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n [kbqPopoverSize]=\"popoverSize\"\n [kbqTrigger]=\"'manual'\"\n [disabled]=\"isSaving\"\n [class.kbq-active]=\"focusedElementBeforeIs(mainButton) && opened\"\n (dropdownClosed)=\"searchControl.setValue('')\"\n (dropdownOpened)=\"onDropdownOpen()\"\n>\n <span #kbqTitleText class=\"kbq-filters__filter-name\">\n @if (filter?.name) {\n {{ filter!.name }}\n } @else {\n <ng-content>\n <i kbq-icon=\"kbq-list_16\"></i>\n {{ localeData.defaultName }}\n </ng-content>\n }\n </span>\n</button>\n\n@if (filterBar.isChanged && !filterBar.isSaved) {\n <button\n #saveNewFilterButton\n kbqTooltip=\"{{ localeData.saveNewFilterTooltip }}\"\n kbq-button\n kbqFilterBarButton\n class=\"kbq-button_action\"\n [class.kbq-active]=\"focusedElementBeforeIs(saveNewFilterButton) && opened\"\n [color]=\"colors.Empty\"\n [disabled]=\"isSaving\"\n (click)=\"openSaveAsNewFilterPopover()\"\n >\n <i kbq-icon=\"kbq-floppy-disk_16\"></i>\n </button>\n}\n\n@if (filterBar.isSaved) {\n <button\n #filterActionsButton\n kbq-button\n kbqFilterBarButton\n class=\"kbq-button_action\"\n [color]=\"colors.Empty\"\n [kbqDropdownTriggerFor]=\"filterActions\"\n [disabled]=\"isSaving\"\n [class.kbq-active]=\"focusedElementBeforeIs(filterActionsButton) && filterActionsOpened\"\n [ngClass]=\"{ 'kbq-button_changed-saved-filter': filterBar.isSavedAndChanged }\"\n >\n <i kbq-icon=\"kbq-ellipsis-vertical_16\"></i>\n </button>\n\n <i kbq-icon=\"kbq-chevron-right-s_16\" class=\"kbq-filter-bar__arrow\" [color]=\"'theme'\"></i>\n} @else {\n <kbq-divider class=\"kbq-filter-bar__separator\" [vertical]=\"true\" />\n}\n\n<kbq-dropdown #savedFilters=\"kbqDropdown\" [class]=\"'kbq-filters__dropdown'\">\n <div [style.display]=\"isEmpty ? 'none' : 'initial'\">\n <kbq-form-field kbqFormFieldWithoutBorders>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n\n <input\n #search\n placeholder=\"{{ localeData.searchPlaceholder }}\"\n autocomplete=\"off\"\n kbqInput\n [formControl]=\"searchControl\"\n (click)=\"stopEventPropagation($event)\"\n (keydown)=\"searchKeydownHandler($event)\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <kbq-divider />\n\n @for (filter of filteredOptions | async; track filter) {\n <button\n kbq-dropdown-item\n kbq-title\n [class.kbq-selected]=\"filterBar.filter?.name === filter.name\"\n (click)=\"selectFilter(filter)\"\n >\n {{ filter.name }}\n </button>\n } @empty {\n <button kbq-dropdown-item [disabled]=\"true\">\n {{ localeData.searchEmptyResult }}\n </button>\n }\n\n <kbq-divider />\n </div>\n\n <button kbq-dropdown-item (click)=\"openSaveAsNewFilterPopover()\">\n <i kbq-icon=\"kbq-plus_16\"></i>\n {{ localeData.saveAsNewFilter }}\n </button>\n</kbq-dropdown>\n\n<kbq-dropdown #filterActions=\"kbqDropdown\" [class]=\"'kbq-filters__dropdown'\">\n @if (filterBar.isSavedAndChanged && !filterBar.isReadOnly) {\n <button\n kbq-dropdown-item\n [ngClass]=\"{ 'kbq-button_changed-saved-filter': filterBar.isSavedAndChanged }\"\n (click)=\"saveChanges()\"\n >\n <i kbq-icon=\"kbq-floppy-disk_16\"></i>\n {{ localeData.saveChanges }}\n @if (filterBar.isSavedAndChanged) {\n <i kbq-icon=\"kbq-circle-xs_16\" class=\"kbq-icon-button kbq-warning layout-margin-left-xs\"></i>\n }\n </button>\n }\n <button kbq-dropdown-item (click)=\"openSaveAsNewFilterPopover()\">\n <i kbq-icon=\"kbq-plus_16\"></i>\n {{ localeData.saveAsNew }}\n </button>\n\n @if (!filterBar.isReadOnly) {\n <button kbq-dropdown-item (click)=\"openChangeFilterNamePopover()\">\n <i kbq-icon=\"kbq-pencil_16\"></i>\n {{ localeData.change }}\n </button>\n }\n\n @if (filterBar.isSavedAndChanged || !filterBar.isReadOnly) {\n <kbq-divider />\n }\n\n @if (filterBar.isSavedAndChanged) {\n <button kbq-dropdown-item (click)=\"resetFilterChanges()\">\n <i kbq-icon=\"kbq-circle-xmark_16\"></i>\n {{ localeData.resetChanges }}\n </button>\n }\n @if (!filterBar.isReadOnly) {\n <button kbq-dropdown-item (click)=\"removeFilter()\">\n <i kbq-icon=\"kbq-trash_16\"></i>\n {{ localeData.remove }}\n </button>\n }\n</kbq-dropdown>\n\n<ng-template #saveAsNewPopoverHeader>{{ popoverHeader }}</ng-template>\n\n<ng-template #saveAsNewPopoverContent>\n @if (showFilterSavingError) {\n <kbq-alert class=\"layout-margin-bottom-m\" [alertColor]=\"'error'\" [alertStyle]=\"'colored'\" [compact]=\"true\">\n {{ filterSavingErrorText }}\n </kbq-alert>\n }\n <div class=\"kbq-form-vertical\">\n <div class=\"kbq-form__row\">\n <label class=\"kbq-form__label\">{{ localeData.name }}</label>\n\n <kbq-form-field class=\"kbq-form__control\">\n <input\n #newFilterName\n kbqInput\n type=\"text\"\n [formControl]=\"filterName\"\n (keydown.enter)=\"saveAsNew($event)\"\n />\n\n @if (filterName.hasError('filterNameAlreadyExist')) {\n <kbq-error>{{ localeData.error }}</kbq-error>\n }\n </kbq-form-field>\n </div>\n </div>\n</ng-template>\n\n<ng-template #saveAsNewPopoverFooter>\n <button\n #saveFilterButton\n kbq-button\n class=\"layout-margin-right-l\"\n [class.kbq-progress]=\"isSaving\"\n [disabled]=\"isSaving\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'filled'\"\n (click)=\"saveAsNew()\"\n >\n {{ localeData.saveButton }}\n </button>\n <button\n kbq-button\n [color]=\"'contrast-fade'\"\n [kbqStyle]=\"'filled'\"\n [disabled]=\"isSaving\"\n (click)=\"closePopover(true)\"\n >\n {{ localeData.cancelButton }}\n </button>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-filters{display:flex}.kbq-filters>.kbq-button{max-width:320px}.kbq-filters>.kbq-button .kbq-button-wrapper{width:100%}.kbq-filters>.kbq-button .kbq-icon{margin-right:var(--kbq-size-xxs)}.kbq-filters .kbq-filters__filter-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-filters .kbq-filters__filter-name .kbq-icon{margin-bottom:var(--kbq-size-3xs)}.kbq-filters .kbq-filter-bar__separator{align-self:center;height:var(--kbq-size-m)!important;margin-left:calc(var(--kbq-size-s) + var(--kbq-size-xs))!important;margin-right:var(--kbq-size-xs)!important}.kbq-filters .kbq-filter-bar__arrow{align-self:center;margin-left:var(--kbq-size-s)}.kbq-filters .kbq-button.kbq-button_changed-filter{border-bottom-right-radius:unset;border-top-right-radius:unset}.kbq-filters .kbq-button-icon{margin-left:-1px;border-bottom-left-radius:unset;border-top-left-radius:unset}.kbq-filters .kbq-button_changed-saved-filter:before{content:\"\";position:absolute;right:-4px;top:-4px;width:var(--kbq-size-s);height:var(--kbq-size-s);border:2px solid var(--kbq-background-bg);border-radius:var(--kbq-size-xs);background:var(--kbq-icon-warning)}.kbq-filters .kbq-button:not(:hover,.kbq-active)+.kbq-button_action:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:var(--kbq-size-m);background:var(--kbq-line-contrast-less)}.kbq-filters__save-as-new-filter-popover .kbq-popover__container{width:400px}.kbq-filters__save-as-new-filter-popover .kbq-popover__content{padding:var(--kbq-size-s) var(--kbq-size-xxl)}.kbq-filters__dropdown .kbq-dropdown-item{padding-right:var(--kbq-size-s)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i1.KbqButtonDropdownTrigger, selector: "[kbq-button][kbqDropdownTriggerFor]" }, { kind: "ngmodule", type: KbqDropdownModule }, { kind: "component", type: i3$2.KbqDropdown, selector: "kbq-dropdown", inputs: ["navigationWithWrap", "xPosition", "yPosition", "overlapTriggerY", "overlapTriggerX", "hasBackdrop", "class", "backdropClass"], outputs: ["closed"], exportAs: ["kbqDropdown"] }, { kind: "component", type: i3$2.KbqDropdownItem, selector: "kbq-dropdown-item, [kbq-dropdown-item]", inputs: ["disabled"], exportAs: ["kbqDropdownItem"] }, { kind: "directive", type: i3$2.KbqDropdownTrigger, selector: "[kbqDropdownTriggerFor]", inputs: ["offsetX", "offsetY", "kbqDropdownTriggerData", "openByArrowDown", "demoteOverlay", "kbqDropdownTriggerRestoreFocus", "kbqDropdownTriggerFor"], outputs: ["dropdownOpened", "dropdownClosed"], exportAs: ["kbqDropdownTrigger"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i4$1.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "inset", "paddings"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: i5$2.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "component", type: i2.KbqError, selector: "kbq-error", exportAs: ["kbqError"] }, { kind: "directive", type: i2.KbqFormFieldWithoutBorders, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", exportAs: ["kbqFormFieldWithoutBorders"] }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "directive", type: i2.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i4.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: KbqFilterBarButton, selector: "[kbqFilterBarButton]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["forDisabledComponent", "ignoreTooltipPointerEvents", "hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["hideIfNotInViewPort", "kbqPopoverPreventClose", "defaultPaddings", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "kbqPopoverStickToWindow", "container", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "kbqPopoverContext", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: KbqFormsModule }, { kind: "directive", type: i6.KbqForm, selector: ".kbq-form-vertical, .kbq-form-horizontal", exportAs: ["kbqForm"] }, { kind: "directive", type: i6.KbqFormElement, selector: ".kbq-form__row, .kbq-form__fieldset, .kbq-form__legend", exportAs: ["kbqFormElement"] }, { kind: "ngmodule", type: KbqAlertModule }, { kind: "component", type: i10.KbqAlert, selector: "kbq-alert", inputs: ["compact", "alertStyle", "alertColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1871
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFilters, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1872
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqFilters, isStandalone: true, selector: "kbq-filters", inputs: { filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectFilter: "onSelectFilter", onSave: "onSave", onChangeFilter: "onChangeFilter", onRemoveFilter: "onRemoveFilter", onResetFilterChanges: "onResetFilterChanges" }, host: { classAttribute: "kbq-filters" }, viewQueries: [{ propertyName: "mainButton", first: true, predicate: ["mainButton"], descendants: true, isSignal: true }, { propertyName: "saveNewFilterButton", first: true, predicate: ["saveNewFilterButton"], descendants: true, isSignal: true }, { propertyName: "filterActionsButton", first: true, predicate: ["filterActionsButton"], descendants: true, isSignal: true }, { propertyName: "popover", first: true, predicate: KbqPopoverTrigger, descendants: true, isSignal: true }, { propertyName: "dropdown", first: true, predicate: KbqDropdownTrigger, descendants: true, isSignal: true }, { propertyName: "filterActionsDropdown", first: true, predicate: ["filterActionsButton"], descendants: true, isSignal: true }, { propertyName: "search", first: true, predicate: ["search"], descendants: true, isSignal: true }, { propertyName: "newFilterName", first: true, predicate: ["newFilterName"], descendants: true, isSignal: true }, { propertyName: "saveFilterButton", first: true, predicate: ["saveFilterButton"], descendants: true, isSignal: true }], exportAs: ["kbqFilters"], ngImport: i0, template: "<button\n #mainButton\n kbq-button\n kbq-title\n kbqFilterBarButton\n kbqPopover\n [kbqDropdownTriggerFor]=\"savedFilters\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverOffset]=\"popoverOffset\"\n [kbqPopoverClass]=\"'kbq-filters__save-as-new-filter-popover'\"\n [kbqPopoverContent]=\"saveAsNewPopoverContent\"\n [kbqPopoverFooter]=\"saveAsNewPopoverFooter\"\n [kbqPopoverHeader]=\"saveAsNewPopoverHeader\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n [kbqPopoverSize]=\"popoverSize\"\n [kbqTrigger]=\"'manual'\"\n [disabled]=\"isSaving\"\n [class.kbq-active]=\"focusedElementBeforeIs(mainButton) && opened\"\n (dropdownClosed)=\"searchControl.setValue('')\"\n (dropdownOpened)=\"onDropdownOpen()\"\n>\n <span #kbqTitleText class=\"kbq-filters__filter-name\">\n @if (filter?.name) {\n {{ filter!.name }}\n } @else {\n <ng-content>\n <i kbq-icon=\"kbq-list_16\"></i>\n {{ localeData.defaultName }}\n </ng-content>\n }\n </span>\n</button>\n\n@if (filterBar.isChanged && !filterBar.isSaved) {\n <button\n #saveNewFilterButton\n kbqTooltip=\"{{ localeData.saveNewFilterTooltip }}\"\n kbq-button\n kbqFilterBarButton\n class=\"kbq-button_action\"\n [class.kbq-active]=\"focusedElementBeforeIs(saveNewFilterButton) && opened\"\n [color]=\"colors.Empty\"\n [disabled]=\"isSaving\"\n (click)=\"openSaveAsNewFilterPopover()\"\n >\n <i kbq-icon=\"kbq-floppy-disk_16\"></i>\n </button>\n}\n\n@if (filterBar.isSaved) {\n <button\n #filterActionsButton\n kbq-button\n kbqFilterBarButton\n class=\"kbq-button_action\"\n [color]=\"colors.Empty\"\n [kbqDropdownTriggerFor]=\"filterActions\"\n [disabled]=\"isSaving\"\n [class.kbq-active]=\"focusedElementBeforeIs(filterActionsButton) && filterActionsOpened\"\n [class]=\"{ 'kbq-button_changed-saved-filter': filterBar.isSavedAndChanged }\"\n >\n <i kbq-icon=\"kbq-ellipsis-vertical_16\"></i>\n </button>\n\n <i kbq-icon=\"kbq-chevron-right-s_16\" class=\"kbq-filter-bar__arrow\" [color]=\"'theme'\"></i>\n} @else {\n <kbq-divider class=\"kbq-filter-bar__separator\" [vertical]=\"true\" />\n}\n\n<kbq-dropdown #savedFilters=\"kbqDropdown\" [class]=\"'kbq-filters__dropdown'\">\n <div [style.display]=\"isEmpty ? 'none' : 'initial'\">\n <kbq-form-field noBorders>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n\n <input\n #search\n placeholder=\"{{ localeData.searchPlaceholder }}\"\n autocomplete=\"off\"\n kbqInput\n [formControl]=\"searchControl\"\n (click)=\"stopEventPropagation($event)\"\n (keydown)=\"searchKeydownHandler($event)\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <kbq-divider />\n\n @for (filter of filteredOptions | async; track filter) {\n <button\n kbq-dropdown-item\n kbq-title\n [class.kbq-selected]=\"filterBar.filter?.name === filter.name\"\n (click)=\"selectFilter(filter)\"\n >\n {{ filter.name }}\n </button>\n } @empty {\n <button kbq-dropdown-item [disabled]=\"true\">\n {{ localeData.searchEmptyResult }}\n </button>\n }\n\n <kbq-divider />\n </div>\n\n <button kbq-dropdown-item (click)=\"openSaveAsNewFilterPopover()\">\n <i kbq-icon=\"kbq-plus_16\"></i>\n {{ localeData.saveAsNewFilter }}\n </button>\n</kbq-dropdown>\n\n<kbq-dropdown #filterActions=\"kbqDropdown\" [class]=\"'kbq-filters__dropdown'\">\n @if (filterBar.isSavedAndChanged && !filterBar.isReadOnly) {\n <button\n kbq-dropdown-item\n [class]=\"{ 'kbq-button_changed-saved-filter': filterBar.isSavedAndChanged }\"\n (click)=\"saveChanges()\"\n >\n <i kbq-icon=\"kbq-floppy-disk_16\"></i>\n {{ localeData.saveChanges }}\n @if (filterBar.isSavedAndChanged) {\n <i kbq-icon=\"kbq-circle-xs_16\" class=\"kbq-icon-button kbq-warning layout-margin-left-xs\"></i>\n }\n </button>\n }\n <button kbq-dropdown-item (click)=\"openSaveAsNewFilterPopover()\">\n <i kbq-icon=\"kbq-plus_16\"></i>\n {{ localeData.saveAsNew }}\n </button>\n\n @if (!filterBar.isReadOnly) {\n <button kbq-dropdown-item (click)=\"openChangeFilterNamePopover()\">\n <i kbq-icon=\"kbq-pencil_16\"></i>\n {{ localeData.change }}\n </button>\n }\n\n @if (filterBar.isSavedAndChanged || !filterBar.isReadOnly) {\n <kbq-divider />\n }\n\n @if (filterBar.isSavedAndChanged) {\n <button kbq-dropdown-item (click)=\"resetFilterChanges()\">\n <i kbq-icon=\"kbq-circle-xmark_16\"></i>\n {{ localeData.resetChanges }}\n </button>\n }\n @if (!filterBar.isReadOnly) {\n <button kbq-dropdown-item (click)=\"removeFilter()\">\n <i kbq-icon=\"kbq-trash_16\"></i>\n {{ localeData.remove }}\n </button>\n }\n</kbq-dropdown>\n\n<ng-template #saveAsNewPopoverHeader>{{ popoverHeader }}</ng-template>\n\n<ng-template #saveAsNewPopoverContent>\n @if (showFilterSavingError) {\n <kbq-alert class=\"layout-margin-bottom-m\" [alertColor]=\"'error'\" [alertStyle]=\"'colored'\" [compact]=\"true\">\n {{ filterSavingErrorText }}\n </kbq-alert>\n }\n <div class=\"kbq-form-vertical\">\n <div class=\"kbq-form__row\">\n <label class=\"kbq-form__label\">{{ localeData.name }}</label>\n\n <kbq-form-field class=\"kbq-form__control\">\n <input\n #newFilterName\n kbqInput\n type=\"text\"\n [formControl]=\"filterName\"\n (keydown.enter)=\"saveAsNew($event)\"\n />\n\n @if (filterName.hasError('filterNameAlreadyExist')) {\n <kbq-error>{{ localeData.error }}</kbq-error>\n }\n </kbq-form-field>\n </div>\n </div>\n</ng-template>\n\n<ng-template #saveAsNewPopoverFooter>\n <button\n #saveFilterButton\n kbq-button\n class=\"layout-margin-right-l\"\n [class.kbq-progress]=\"isSaving\"\n [disabled]=\"isSaving\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'filled'\"\n (click)=\"saveAsNew()\"\n >\n {{ localeData.saveButton }}\n </button>\n <button\n kbq-button\n [color]=\"'contrast-fade'\"\n [kbqStyle]=\"'filled'\"\n [disabled]=\"isSaving\"\n (click)=\"closePopover(true)\"\n >\n {{ localeData.cancelButton }}\n </button>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-filters{display:flex}.kbq-filters>.kbq-button{max-width:320px}.kbq-filters>.kbq-button .kbq-button-wrapper{width:100%}.kbq-filters>.kbq-button .kbq-icon{margin-right:var(--kbq-size-xxs)}.kbq-filters .kbq-filters__filter-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-filters .kbq-filters__filter-name .kbq-icon{margin-bottom:var(--kbq-size-3xs)}.kbq-filters .kbq-filter-bar__separator{align-self:center;height:var(--kbq-size-m)!important;margin-left:calc(var(--kbq-size-s) + var(--kbq-size-xs))!important;margin-right:var(--kbq-size-xs)!important}.kbq-filters .kbq-filter-bar__arrow{align-self:center;margin-left:var(--kbq-size-s)}.kbq-filters .kbq-button.kbq-button_changed-filter{border-bottom-right-radius:unset;border-top-right-radius:unset}.kbq-filters .kbq-button-icon{margin-left:-1px;border-bottom-left-radius:unset;border-top-left-radius:unset}.kbq-filters .kbq-button_changed-saved-filter:before{content:\"\";position:absolute;right:-4px;top:-4px;width:var(--kbq-size-s);height:var(--kbq-size-s);border:2px solid var(--kbq-background-bg);border-radius:var(--kbq-size-xs);background:var(--kbq-icon-warning)}.kbq-filters .kbq-button:not(:hover,.kbq-active)+.kbq-button_action:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:var(--kbq-size-m);background:var(--kbq-line-contrast-less)}.kbq-filters__save-as-new-filter-popover .kbq-popover__container{width:400px}.kbq-filters__save-as-new-filter-popover .kbq-popover__content{padding:var(--kbq-size-s) var(--kbq-size-xxl)}.kbq-filters__dropdown .kbq-dropdown-item{padding-right:var(--kbq-size-s)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i1.KbqButtonDropdownTrigger, selector: "[kbq-button][kbqDropdownTriggerFor]" }, { kind: "ngmodule", type: KbqDropdownModule }, { kind: "component", type: i3$2.KbqDropdown, selector: "kbq-dropdown", inputs: ["navigationWithWrap", "xPosition", "yPosition", "overlapTriggerY", "overlapTriggerX", "hasBackdrop", "class", "backdropClass"], outputs: ["closed"], exportAs: ["kbqDropdown"] }, { kind: "component", type: i3$2.KbqDropdownItem, selector: "kbq-dropdown-item, [kbq-dropdown-item]", inputs: ["disabled"], exportAs: ["kbqDropdownItem"] }, { kind: "directive", type: i3$2.KbqDropdownTrigger, selector: "[kbqDropdownTriggerFor]", inputs: ["offsetX", "offsetY", "kbqDropdownTriggerData", "openByArrowDown", "demoteOverlay", "kbqDropdownTriggerRestoreFocus", "kbqDropdownTriggerFor"], outputs: ["dropdownOpened", "dropdownClosed"], exportAs: ["kbqDropdownTrigger"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i4$1.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "paddings"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: i5$2.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "component", type: i4.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "component", type: i4.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i4.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "component", type: i4.KbqError, selector: "kbq-error", exportAs: ["kbqError"] }, { kind: "directive", type: i4.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "directive", type: KbqFilterBarButton, selector: "[kbqFilterBarButton]" }, { kind: "directive", type: KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["forDisabledComponent", "ignoreTooltipPointerEvents", "hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset", "kbqTooltipModifier", "kbqTooltipHeader"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["hideIfNotInViewPort", "kbqPopoverPreventClose", "defaultPaddings", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "kbqPopoverStickToWindow", "container", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "kbqPopoverContext", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: KbqFormsModule }, { kind: "directive", type: i8$1.KbqForm, selector: ".kbq-form-vertical, .kbq-form-horizontal", exportAs: ["kbqForm"] }, { kind: "directive", type: i8$1.KbqFormElement, selector: ".kbq-form__row, .kbq-form__fieldset, .kbq-form__legend", exportAs: ["kbqFormElement"] }, { kind: "ngmodule", type: KbqAlertModule }, { kind: "component", type: i10.KbqAlert, selector: "kbq-alert", inputs: ["compact", "alertStyle", "alertColor"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1882
1873
  }
1883
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilters, decorators: [{
1874
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFilters, decorators: [{
1884
1875
  type: Component,
1885
1876
  args: [{ selector: 'kbq-filters', imports: [
1886
1877
  ReactiveFormsModule,
@@ -1889,9 +1880,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
1889
1880
  KbqDividerModule,
1890
1881
  KbqIcon,
1891
1882
  KbqTitleModule,
1892
- KbqFormFieldModule,
1893
1883
  KbqInputModule,
1894
- NgClass,
1895
1884
  KbqFilterBarButton,
1896
1885
  AsyncPipe,
1897
1886
  KbqTooltipTrigger,
@@ -1899,54 +1888,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
1899
1888
  FormsModule,
1900
1889
  KbqFormsModule,
1901
1890
  KbqAlertModule
1902
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'kbqFilters', host: {
1891
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
1903
1892
  class: 'kbq-filters'
1904
- }, template: "<button\n #mainButton\n kbq-button\n kbq-title\n kbqFilterBarButton\n kbqPopover\n [kbqDropdownTriggerFor]=\"savedFilters\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverOffset]=\"popoverOffset\"\n [kbqPopoverClass]=\"'kbq-filters__save-as-new-filter-popover'\"\n [kbqPopoverContent]=\"saveAsNewPopoverContent\"\n [kbqPopoverFooter]=\"saveAsNewPopoverFooter\"\n [kbqPopoverHeader]=\"saveAsNewPopoverHeader\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n [kbqPopoverSize]=\"popoverSize\"\n [kbqTrigger]=\"'manual'\"\n [disabled]=\"isSaving\"\n [class.kbq-active]=\"focusedElementBeforeIs(mainButton) && opened\"\n (dropdownClosed)=\"searchControl.setValue('')\"\n (dropdownOpened)=\"onDropdownOpen()\"\n>\n <span #kbqTitleText class=\"kbq-filters__filter-name\">\n @if (filter?.name) {\n {{ filter!.name }}\n } @else {\n <ng-content>\n <i kbq-icon=\"kbq-list_16\"></i>\n {{ localeData.defaultName }}\n </ng-content>\n }\n </span>\n</button>\n\n@if (filterBar.isChanged && !filterBar.isSaved) {\n <button\n #saveNewFilterButton\n kbqTooltip=\"{{ localeData.saveNewFilterTooltip }}\"\n kbq-button\n kbqFilterBarButton\n class=\"kbq-button_action\"\n [class.kbq-active]=\"focusedElementBeforeIs(saveNewFilterButton) && opened\"\n [color]=\"colors.Empty\"\n [disabled]=\"isSaving\"\n (click)=\"openSaveAsNewFilterPopover()\"\n >\n <i kbq-icon=\"kbq-floppy-disk_16\"></i>\n </button>\n}\n\n@if (filterBar.isSaved) {\n <button\n #filterActionsButton\n kbq-button\n kbqFilterBarButton\n class=\"kbq-button_action\"\n [color]=\"colors.Empty\"\n [kbqDropdownTriggerFor]=\"filterActions\"\n [disabled]=\"isSaving\"\n [class.kbq-active]=\"focusedElementBeforeIs(filterActionsButton) && filterActionsOpened\"\n [ngClass]=\"{ 'kbq-button_changed-saved-filter': filterBar.isSavedAndChanged }\"\n >\n <i kbq-icon=\"kbq-ellipsis-vertical_16\"></i>\n </button>\n\n <i kbq-icon=\"kbq-chevron-right-s_16\" class=\"kbq-filter-bar__arrow\" [color]=\"'theme'\"></i>\n} @else {\n <kbq-divider class=\"kbq-filter-bar__separator\" [vertical]=\"true\" />\n}\n\n<kbq-dropdown #savedFilters=\"kbqDropdown\" [class]=\"'kbq-filters__dropdown'\">\n <div [style.display]=\"isEmpty ? 'none' : 'initial'\">\n <kbq-form-field kbqFormFieldWithoutBorders>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n\n <input\n #search\n placeholder=\"{{ localeData.searchPlaceholder }}\"\n autocomplete=\"off\"\n kbqInput\n [formControl]=\"searchControl\"\n (click)=\"stopEventPropagation($event)\"\n (keydown)=\"searchKeydownHandler($event)\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <kbq-divider />\n\n @for (filter of filteredOptions | async; track filter) {\n <button\n kbq-dropdown-item\n kbq-title\n [class.kbq-selected]=\"filterBar.filter?.name === filter.name\"\n (click)=\"selectFilter(filter)\"\n >\n {{ filter.name }}\n </button>\n } @empty {\n <button kbq-dropdown-item [disabled]=\"true\">\n {{ localeData.searchEmptyResult }}\n </button>\n }\n\n <kbq-divider />\n </div>\n\n <button kbq-dropdown-item (click)=\"openSaveAsNewFilterPopover()\">\n <i kbq-icon=\"kbq-plus_16\"></i>\n {{ localeData.saveAsNewFilter }}\n </button>\n</kbq-dropdown>\n\n<kbq-dropdown #filterActions=\"kbqDropdown\" [class]=\"'kbq-filters__dropdown'\">\n @if (filterBar.isSavedAndChanged && !filterBar.isReadOnly) {\n <button\n kbq-dropdown-item\n [ngClass]=\"{ 'kbq-button_changed-saved-filter': filterBar.isSavedAndChanged }\"\n (click)=\"saveChanges()\"\n >\n <i kbq-icon=\"kbq-floppy-disk_16\"></i>\n {{ localeData.saveChanges }}\n @if (filterBar.isSavedAndChanged) {\n <i kbq-icon=\"kbq-circle-xs_16\" class=\"kbq-icon-button kbq-warning layout-margin-left-xs\"></i>\n }\n </button>\n }\n <button kbq-dropdown-item (click)=\"openSaveAsNewFilterPopover()\">\n <i kbq-icon=\"kbq-plus_16\"></i>\n {{ localeData.saveAsNew }}\n </button>\n\n @if (!filterBar.isReadOnly) {\n <button kbq-dropdown-item (click)=\"openChangeFilterNamePopover()\">\n <i kbq-icon=\"kbq-pencil_16\"></i>\n {{ localeData.change }}\n </button>\n }\n\n @if (filterBar.isSavedAndChanged || !filterBar.isReadOnly) {\n <kbq-divider />\n }\n\n @if (filterBar.isSavedAndChanged) {\n <button kbq-dropdown-item (click)=\"resetFilterChanges()\">\n <i kbq-icon=\"kbq-circle-xmark_16\"></i>\n {{ localeData.resetChanges }}\n </button>\n }\n @if (!filterBar.isReadOnly) {\n <button kbq-dropdown-item (click)=\"removeFilter()\">\n <i kbq-icon=\"kbq-trash_16\"></i>\n {{ localeData.remove }}\n </button>\n }\n</kbq-dropdown>\n\n<ng-template #saveAsNewPopoverHeader>{{ popoverHeader }}</ng-template>\n\n<ng-template #saveAsNewPopoverContent>\n @if (showFilterSavingError) {\n <kbq-alert class=\"layout-margin-bottom-m\" [alertColor]=\"'error'\" [alertStyle]=\"'colored'\" [compact]=\"true\">\n {{ filterSavingErrorText }}\n </kbq-alert>\n }\n <div class=\"kbq-form-vertical\">\n <div class=\"kbq-form__row\">\n <label class=\"kbq-form__label\">{{ localeData.name }}</label>\n\n <kbq-form-field class=\"kbq-form__control\">\n <input\n #newFilterName\n kbqInput\n type=\"text\"\n [formControl]=\"filterName\"\n (keydown.enter)=\"saveAsNew($event)\"\n />\n\n @if (filterName.hasError('filterNameAlreadyExist')) {\n <kbq-error>{{ localeData.error }}</kbq-error>\n }\n </kbq-form-field>\n </div>\n </div>\n</ng-template>\n\n<ng-template #saveAsNewPopoverFooter>\n <button\n #saveFilterButton\n kbq-button\n class=\"layout-margin-right-l\"\n [class.kbq-progress]=\"isSaving\"\n [disabled]=\"isSaving\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'filled'\"\n (click)=\"saveAsNew()\"\n >\n {{ localeData.saveButton }}\n </button>\n <button\n kbq-button\n [color]=\"'contrast-fade'\"\n [kbqStyle]=\"'filled'\"\n [disabled]=\"isSaving\"\n (click)=\"closePopover(true)\"\n >\n {{ localeData.cancelButton }}\n </button>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-filters{display:flex}.kbq-filters>.kbq-button{max-width:320px}.kbq-filters>.kbq-button .kbq-button-wrapper{width:100%}.kbq-filters>.kbq-button .kbq-icon{margin-right:var(--kbq-size-xxs)}.kbq-filters .kbq-filters__filter-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-filters .kbq-filters__filter-name .kbq-icon{margin-bottom:var(--kbq-size-3xs)}.kbq-filters .kbq-filter-bar__separator{align-self:center;height:var(--kbq-size-m)!important;margin-left:calc(var(--kbq-size-s) + var(--kbq-size-xs))!important;margin-right:var(--kbq-size-xs)!important}.kbq-filters .kbq-filter-bar__arrow{align-self:center;margin-left:var(--kbq-size-s)}.kbq-filters .kbq-button.kbq-button_changed-filter{border-bottom-right-radius:unset;border-top-right-radius:unset}.kbq-filters .kbq-button-icon{margin-left:-1px;border-bottom-left-radius:unset;border-top-left-radius:unset}.kbq-filters .kbq-button_changed-saved-filter:before{content:\"\";position:absolute;right:-4px;top:-4px;width:var(--kbq-size-s);height:var(--kbq-size-s);border:2px solid var(--kbq-background-bg);border-radius:var(--kbq-size-xs);background:var(--kbq-icon-warning)}.kbq-filters .kbq-button:not(:hover,.kbq-active)+.kbq-button_action:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:var(--kbq-size-m);background:var(--kbq-line-contrast-less)}.kbq-filters__save-as-new-filter-popover .kbq-popover__container{width:400px}.kbq-filters__save-as-new-filter-popover .kbq-popover__content{padding:var(--kbq-size-s) var(--kbq-size-xxl)}.kbq-filters__dropdown .kbq-dropdown-item{padding-right:var(--kbq-size-s)}\n"] }]
1905
- }], ctorParameters: () => [], propDecorators: { mainButton: [{
1906
- type: ViewChild,
1907
- args: ['mainButton']
1908
- }], saveNewFilterButton: [{
1909
- type: ViewChild,
1910
- args: ['saveNewFilterButton']
1911
- }], filterActionsButton: [{
1912
- type: ViewChild,
1913
- args: ['filterActionsButton']
1914
- }], popover: [{
1915
- type: ViewChild,
1916
- args: [KbqPopoverTrigger]
1917
- }], dropdown: [{
1918
- type: ViewChild,
1919
- args: [KbqDropdownTrigger]
1920
- }], filterActionsDropdown: [{
1921
- type: ViewChild,
1922
- args: ['filterActionsButton']
1923
- }], search: [{
1924
- type: ViewChild,
1925
- args: ['search']
1926
- }], newFilterName: [{
1927
- type: ViewChild,
1928
- args: ['newFilterName']
1929
- }], saveFilterButton: [{
1930
- type: ViewChild,
1931
- args: ['saveFilterButton']
1932
- }], filters: [{
1933
- type: Input
1934
- }], onSelectFilter: [{
1935
- type: Output
1936
- }], onSave: [{
1937
- type: Output
1938
- }], onChangeFilter: [{
1939
- type: Output
1940
- }], onSaveAsNew: [{
1941
- type: Output
1942
- }], onRemoveFilter: [{
1943
- type: Output
1944
- }], onResetFilterChanges: [{
1945
- type: Output
1946
- }] } });
1893
+ }, exportAs: 'kbqFilters', template: "<button\n #mainButton\n kbq-button\n kbq-title\n kbqFilterBarButton\n kbqPopover\n [kbqDropdownTriggerFor]=\"savedFilters\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverOffset]=\"popoverOffset\"\n [kbqPopoverClass]=\"'kbq-filters__save-as-new-filter-popover'\"\n [kbqPopoverContent]=\"saveAsNewPopoverContent\"\n [kbqPopoverFooter]=\"saveAsNewPopoverFooter\"\n [kbqPopoverHeader]=\"saveAsNewPopoverHeader\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n [kbqPopoverSize]=\"popoverSize\"\n [kbqTrigger]=\"'manual'\"\n [disabled]=\"isSaving\"\n [class.kbq-active]=\"focusedElementBeforeIs(mainButton) && opened\"\n (dropdownClosed)=\"searchControl.setValue('')\"\n (dropdownOpened)=\"onDropdownOpen()\"\n>\n <span #kbqTitleText class=\"kbq-filters__filter-name\">\n @if (filter?.name) {\n {{ filter!.name }}\n } @else {\n <ng-content>\n <i kbq-icon=\"kbq-list_16\"></i>\n {{ localeData.defaultName }}\n </ng-content>\n }\n </span>\n</button>\n\n@if (filterBar.isChanged && !filterBar.isSaved) {\n <button\n #saveNewFilterButton\n kbqTooltip=\"{{ localeData.saveNewFilterTooltip }}\"\n kbq-button\n kbqFilterBarButton\n class=\"kbq-button_action\"\n [class.kbq-active]=\"focusedElementBeforeIs(saveNewFilterButton) && opened\"\n [color]=\"colors.Empty\"\n [disabled]=\"isSaving\"\n (click)=\"openSaveAsNewFilterPopover()\"\n >\n <i kbq-icon=\"kbq-floppy-disk_16\"></i>\n </button>\n}\n\n@if (filterBar.isSaved) {\n <button\n #filterActionsButton\n kbq-button\n kbqFilterBarButton\n class=\"kbq-button_action\"\n [color]=\"colors.Empty\"\n [kbqDropdownTriggerFor]=\"filterActions\"\n [disabled]=\"isSaving\"\n [class.kbq-active]=\"focusedElementBeforeIs(filterActionsButton) && filterActionsOpened\"\n [class]=\"{ 'kbq-button_changed-saved-filter': filterBar.isSavedAndChanged }\"\n >\n <i kbq-icon=\"kbq-ellipsis-vertical_16\"></i>\n </button>\n\n <i kbq-icon=\"kbq-chevron-right-s_16\" class=\"kbq-filter-bar__arrow\" [color]=\"'theme'\"></i>\n} @else {\n <kbq-divider class=\"kbq-filter-bar__separator\" [vertical]=\"true\" />\n}\n\n<kbq-dropdown #savedFilters=\"kbqDropdown\" [class]=\"'kbq-filters__dropdown'\">\n <div [style.display]=\"isEmpty ? 'none' : 'initial'\">\n <kbq-form-field noBorders>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n\n <input\n #search\n placeholder=\"{{ localeData.searchPlaceholder }}\"\n autocomplete=\"off\"\n kbqInput\n [formControl]=\"searchControl\"\n (click)=\"stopEventPropagation($event)\"\n (keydown)=\"searchKeydownHandler($event)\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <kbq-divider />\n\n @for (filter of filteredOptions | async; track filter) {\n <button\n kbq-dropdown-item\n kbq-title\n [class.kbq-selected]=\"filterBar.filter?.name === filter.name\"\n (click)=\"selectFilter(filter)\"\n >\n {{ filter.name }}\n </button>\n } @empty {\n <button kbq-dropdown-item [disabled]=\"true\">\n {{ localeData.searchEmptyResult }}\n </button>\n }\n\n <kbq-divider />\n </div>\n\n <button kbq-dropdown-item (click)=\"openSaveAsNewFilterPopover()\">\n <i kbq-icon=\"kbq-plus_16\"></i>\n {{ localeData.saveAsNewFilter }}\n </button>\n</kbq-dropdown>\n\n<kbq-dropdown #filterActions=\"kbqDropdown\" [class]=\"'kbq-filters__dropdown'\">\n @if (filterBar.isSavedAndChanged && !filterBar.isReadOnly) {\n <button\n kbq-dropdown-item\n [class]=\"{ 'kbq-button_changed-saved-filter': filterBar.isSavedAndChanged }\"\n (click)=\"saveChanges()\"\n >\n <i kbq-icon=\"kbq-floppy-disk_16\"></i>\n {{ localeData.saveChanges }}\n @if (filterBar.isSavedAndChanged) {\n <i kbq-icon=\"kbq-circle-xs_16\" class=\"kbq-icon-button kbq-warning layout-margin-left-xs\"></i>\n }\n </button>\n }\n <button kbq-dropdown-item (click)=\"openSaveAsNewFilterPopover()\">\n <i kbq-icon=\"kbq-plus_16\"></i>\n {{ localeData.saveAsNew }}\n </button>\n\n @if (!filterBar.isReadOnly) {\n <button kbq-dropdown-item (click)=\"openChangeFilterNamePopover()\">\n <i kbq-icon=\"kbq-pencil_16\"></i>\n {{ localeData.change }}\n </button>\n }\n\n @if (filterBar.isSavedAndChanged || !filterBar.isReadOnly) {\n <kbq-divider />\n }\n\n @if (filterBar.isSavedAndChanged) {\n <button kbq-dropdown-item (click)=\"resetFilterChanges()\">\n <i kbq-icon=\"kbq-circle-xmark_16\"></i>\n {{ localeData.resetChanges }}\n </button>\n }\n @if (!filterBar.isReadOnly) {\n <button kbq-dropdown-item (click)=\"removeFilter()\">\n <i kbq-icon=\"kbq-trash_16\"></i>\n {{ localeData.remove }}\n </button>\n }\n</kbq-dropdown>\n\n<ng-template #saveAsNewPopoverHeader>{{ popoverHeader }}</ng-template>\n\n<ng-template #saveAsNewPopoverContent>\n @if (showFilterSavingError) {\n <kbq-alert class=\"layout-margin-bottom-m\" [alertColor]=\"'error'\" [alertStyle]=\"'colored'\" [compact]=\"true\">\n {{ filterSavingErrorText }}\n </kbq-alert>\n }\n <div class=\"kbq-form-vertical\">\n <div class=\"kbq-form__row\">\n <label class=\"kbq-form__label\">{{ localeData.name }}</label>\n\n <kbq-form-field class=\"kbq-form__control\">\n <input\n #newFilterName\n kbqInput\n type=\"text\"\n [formControl]=\"filterName\"\n (keydown.enter)=\"saveAsNew($event)\"\n />\n\n @if (filterName.hasError('filterNameAlreadyExist')) {\n <kbq-error>{{ localeData.error }}</kbq-error>\n }\n </kbq-form-field>\n </div>\n </div>\n</ng-template>\n\n<ng-template #saveAsNewPopoverFooter>\n <button\n #saveFilterButton\n kbq-button\n class=\"layout-margin-right-l\"\n [class.kbq-progress]=\"isSaving\"\n [disabled]=\"isSaving\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'filled'\"\n (click)=\"saveAsNew()\"\n >\n {{ localeData.saveButton }}\n </button>\n <button\n kbq-button\n [color]=\"'contrast-fade'\"\n [kbqStyle]=\"'filled'\"\n [disabled]=\"isSaving\"\n (click)=\"closePopover(true)\"\n >\n {{ localeData.cancelButton }}\n </button>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child) .kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child) .kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child) .kbq-form-field__container{border-radius:0}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-filters{display:flex}.kbq-filters>.kbq-button{max-width:320px}.kbq-filters>.kbq-button .kbq-button-wrapper{width:100%}.kbq-filters>.kbq-button .kbq-icon{margin-right:var(--kbq-size-xxs)}.kbq-filters .kbq-filters__filter-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-filters .kbq-filters__filter-name .kbq-icon{margin-bottom:var(--kbq-size-3xs)}.kbq-filters .kbq-filter-bar__separator{align-self:center;height:var(--kbq-size-m)!important;margin-left:calc(var(--kbq-size-s) + var(--kbq-size-xs))!important;margin-right:var(--kbq-size-xs)!important}.kbq-filters .kbq-filter-bar__arrow{align-self:center;margin-left:var(--kbq-size-s)}.kbq-filters .kbq-button.kbq-button_changed-filter{border-bottom-right-radius:unset;border-top-right-radius:unset}.kbq-filters .kbq-button-icon{margin-left:-1px;border-bottom-left-radius:unset;border-top-left-radius:unset}.kbq-filters .kbq-button_changed-saved-filter:before{content:\"\";position:absolute;right:-4px;top:-4px;width:var(--kbq-size-s);height:var(--kbq-size-s);border:2px solid var(--kbq-background-bg);border-radius:var(--kbq-size-xs);background:var(--kbq-icon-warning)}.kbq-filters .kbq-button:not(:hover,.kbq-active)+.kbq-button_action:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:var(--kbq-size-m);background:var(--kbq-line-contrast-less)}.kbq-filters__save-as-new-filter-popover .kbq-popover__container{width:400px}.kbq-filters__save-as-new-filter-popover .kbq-popover__content{padding:var(--kbq-size-s) var(--kbq-size-xxl)}.kbq-filters__dropdown .kbq-dropdown-item{padding-right:var(--kbq-size-s)}\n"] }]
1894
+ }], ctorParameters: () => [], propDecorators: { mainButton: [{ type: i0.ViewChild, args: ['mainButton', { isSignal: true }] }], saveNewFilterButton: [{ type: i0.ViewChild, args: ['saveNewFilterButton', { isSignal: true }] }], filterActionsButton: [{ type: i0.ViewChild, args: ['filterActionsButton', { isSignal: true }] }], popover: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqPopoverTrigger), { isSignal: true }] }], dropdown: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqDropdownTrigger), { isSignal: true }] }], filterActionsDropdown: [{ type: i0.ViewChild, args: ['filterActionsButton', { isSignal: true }] }], search: [{ type: i0.ViewChild, args: ['search', { isSignal: true }] }], newFilterName: [{ type: i0.ViewChild, args: ['newFilterName', { isSignal: true }] }], saveFilterButton: [{ type: i0.ViewChild, args: ['saveFilterButton', { isSignal: true }] }], filters: [{ type: i0.Input, args: [{ isSignal: true, alias: "filters", required: false }] }], onSelectFilter: [{ type: i0.Output, args: ["onSelectFilter"] }], onSave: [{ type: i0.Output, args: ["onSave"] }], onChangeFilter: [{ type: i0.Output, args: ["onChangeFilter"] }], onRemoveFilter: [{ type: i0.Output, args: ["onRemoveFilter"] }], onResetFilterChanges: [{ type: i0.Output, args: ["onResetFilterChanges"] }] } });
1947
1895
 
1948
1896
  class KbqFilterBar {
1949
1897
  /** Filter that is currently selected */
1898
+ // TODO: Skipped for migration because:
1899
+ // Accessor inputs cannot be migrated as they are too complex.
1950
1900
  get filter() {
1951
1901
  return this._filter;
1952
1902
  }
@@ -1957,6 +1907,8 @@ class KbqFilterBar {
1957
1907
  this.changes.next();
1958
1908
  }
1959
1909
  /** An array of templates that are used when adding a pipe. Also contains lists of options to select (values). */
1910
+ // TODO: Skipped for migration because:
1911
+ // Accessor inputs cannot be migrated as they are too complex.
1960
1912
  get pipeTemplates() {
1961
1913
  return this._templates;
1962
1914
  }
@@ -1990,26 +1942,30 @@ class KbqFilterBar {
1990
1942
  /** @docs-private */
1991
1943
  this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
1992
1944
  this.externalConfiguration = inject(KBQ_FILTER_BAR_CONFIGURATION, { optional: true });
1945
+ /** @docs-private */
1946
+ this.filters = contentChild(KbqFilters, ...(ngDevMode ? [{ debugName: "filters" }] : []));
1947
+ /** @docs-private */
1948
+ this.filterReset = contentChild(KbqFilterReset, ...(ngDevMode ? [{ debugName: "filterReset" }] : []));
1993
1949
  /**
1994
1950
  * This is special logic that unselect all items when all selected because "all selected = nothing selected".
1995
1951
  * Default is true
1996
1952
  * */
1997
- this.selectedAllEqualsSelectedNothing = true;
1953
+ this.selectedAllEqualsSelectedNothing = input(true, ...(ngDevMode ? [{ debugName: "selectedAllEqualsSelectedNothing", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
1998
1954
  this._templates = [];
1999
1955
  /**
2000
1956
  * Event that emits whenever the raw value of the filter changes. This is here primarily
2001
1957
  * to facilitate the two-way binding for the `filter` input.
2002
1958
  * @docs-private
2003
1959
  */
2004
- this.filterChange = new EventEmitter();
1960
+ this.filterChange = output();
2005
1961
  /** Event that emits whenever the value of the pipe changes. */
2006
1962
  this.onChangePipe = new EventEmitter();
2007
1963
  /** Event that emits whenever the pipe deleted. */
2008
- this.onRemovePipe = new EventEmitter();
1964
+ this.onRemovePipe = output();
2009
1965
  /** Event that emits whenever the pipe cleared. */
2010
- this.onClearPipe = new EventEmitter();
1966
+ this.onClearPipe = output();
2011
1967
  /** Event that emits whenever the select or multiselect pipe closed. */
2012
- this.onClosePipe = new EventEmitter();
1968
+ this.onClosePipe = output();
2013
1969
  this.savedFilter = null;
2014
1970
  /** Event that emits whenever the filter is reset. */
2015
1971
  this.onResetFilter = new BehaviorSubject(false);
@@ -2034,7 +1990,7 @@ class KbqFilterBar {
2034
1990
  if (!this.localeService) {
2035
1991
  this.initDefaultParams();
2036
1992
  }
2037
- merge(this.onChangePipe, this.onRemovePipe)
1993
+ merge(this.onChangePipe, outputToObservable(this.onRemovePipe))
2038
1994
  .pipe(takeUntilDestroyed())
2039
1995
  .subscribe(() => {
2040
1996
  if (this.filter) {
@@ -2042,7 +1998,7 @@ class KbqFilterBar {
2042
1998
  this.filterChange.emit(this.filter);
2043
1999
  }
2044
2000
  });
2045
- merge(this.filterChange, this.onChangePipe, this.onRemovePipe, this.internalFilterChanges)
2001
+ merge(outputToObservable(this.filterChange), this.onChangePipe, outputToObservable(this.onRemovePipe), this.internalFilterChanges)
2046
2002
  .pipe(takeUntilDestroyed())
2047
2003
  .subscribe(() => {
2048
2004
  this.changes.next();
@@ -2052,7 +2008,7 @@ class KbqFilterBar {
2052
2008
  /** Remove pipe from current filter and emit event */
2053
2009
  removePipe(pipe) {
2054
2010
  this.filter?.pipes.splice(this.filter?.pipes.indexOf(pipe), 1);
2055
- this.onRemovePipe.next(pipe);
2011
+ this.onRemovePipe.emit(pipe);
2056
2012
  this.changes.next();
2057
2013
  }
2058
2014
  /** Save current state of filter */
@@ -2070,8 +2026,8 @@ class KbqFilterBar {
2070
2026
  initDefaultParams() {
2071
2027
  this.configuration = KBQ_FILTER_BAR_DEFAULT_CONFIGURATION;
2072
2028
  }
2073
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterBar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2074
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.21", type: KbqFilterBar, isStandalone: true, selector: "kbq-filter-bar, [kbq-filter-bar]", inputs: { selectedAllEqualsSelectedNothing: ["selectedAllEqualsSelectedNothing", "selectedAllEqualsSelectedNothing", booleanAttribute], filter: "filter", pipeTemplates: "pipeTemplates" }, outputs: { filterChange: "filterChange", onChangePipe: "onChangePipe", onRemovePipe: "onRemovePipe", onClearPipe: "onClearPipe", onClosePipe: "onClosePipe" }, host: { classAttribute: "kbq-filter-bar" }, queries: [{ propertyName: "filters", first: true, predicate: KbqFilters, descendants: true }, { propertyName: "filterReset", first: true, predicate: KbqFilterReset, descendants: true }], ngImport: i0, template: `
2029
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFilterBar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2030
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.25", type: KbqFilterBar, isStandalone: true, selector: "kbq-filter-bar, [kbq-filter-bar]", inputs: { selectedAllEqualsSelectedNothing: { classPropertyName: "selectedAllEqualsSelectedNothing", publicName: "selectedAllEqualsSelectedNothing", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: false, isRequired: false, transformFunction: null }, pipeTemplates: { classPropertyName: "pipeTemplates", publicName: "pipeTemplates", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { filterChange: "filterChange", onChangePipe: "onChangePipe", onRemovePipe: "onRemovePipe", onClearPipe: "onClearPipe", onClosePipe: "onClosePipe" }, host: { classAttribute: "kbq-filter-bar" }, queries: [{ propertyName: "filters", first: true, predicate: KbqFilters, descendants: true, isSignal: true }, { propertyName: "filterReset", first: true, predicate: KbqFilterReset, descendants: true, isSignal: true }], ngImport: i0, template: `
2075
2031
  <div class="kbq-filter-bar__left">
2076
2032
  <ng-content select="kbq-filters" />
2077
2033
 
@@ -2083,13 +2039,13 @@ class KbqFilterBar {
2083
2039
  </div>
2084
2040
 
2085
2041
  <div class="kbq-filter-bar__right">
2086
- <ng-content select="kbq-filter-search, [kbq-filter-search], kbq-search-expandable" />
2042
+ <ng-content select="kbq-search-expandable" />
2087
2043
 
2088
2044
  <ng-content select="kbq-filter-refresher, [kbq-filter-refresher]" />
2089
2045
  </div>
2090
- `, isInline: true, styles: [".kbq-filter-bar{display:flex;flex-direction:row;justify-content:space-between;width:100%}.kbq-filter-bar .kbq-filter-bar__left{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--kbq-size-s)}.kbq-filter-bar .kbq-filter-bar__left .kbq-button>.kbq-icon{margin-right:var(--kbq-size-xxs)}.kbq-filter-bar .kbq-filter-bar__left>.kbq-icon{align-self:center}.kbq-filter-bar .kbq-filter-bar__right{display:flex;flex-direction:row;margin-left:var(--kbq-size-3xl)}.kbq-pipe__popover .kbq-popover__container{min-width:320px;max-width:320px}.kbq-pipe__popover .kbq-popover__content{padding:var(--kbq-size-m) var(--kbq-size-m) 1px!important}.kbq-pipe__popover .kbq-popover__footer{padding:var(--kbq-size-xxs)}.kbq-pipe__popover .kbq-popover__footer .kbq-button:not(.kbq-disabled){display:flex;flex-direction:row;width:100%;justify-content:flex-start}.kbq-pipe__popover .kbq-popover__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-button-overlay{display:none}.kbq-button,.kbq-button-icon{-webkit-font-smoothing:antialiased}.kbq-button.kbq-button_changed-filter,.kbq-button-icon.kbq-button_changed-filter{color:var(--kbq-foreground-theme);background:var(--kbq-states-background-theme-less-active)}.kbq-button.kbq-button_changed-filter .kbq-icon.kbq-empty,.kbq-button-icon.kbq-button_changed-filter .kbq-icon.kbq-empty,.kbq-button.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button-icon.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_right,.kbq-button-icon.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_right{color:var(--kbq-icon-theme)}.kbq-button.kbq-button_changed-filter:hover:not(.kbq-disabled),.kbq-button.kbq-button_changed-filter.kbq-hover:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter:hover:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter.kbq-hover:not(.kbq-disabled){background:var(--kbq-states-background-theme-less-hover)}.kbq-button.kbq-button_changed-filter:active:not(.kbq-disabled),.kbq-button.kbq-button_changed-filter.kbq-active:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter:active:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter.kbq-active:not(.kbq-disabled){background:var(--kbq-states-background-theme-fade-active)}.kbq-button.kbq-button_changed-filter.cdk-keyboard-focused,.kbq-button-icon.kbq-button_changed-filter.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-button.kbq-button_changed-filter.kbq-disabled,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-states-background-disabled)}.kbq-button.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty,.kbq-button.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_right,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_right{color:var(--kbq-states-icon-disabled)}.kbq-hint.kbq-date-period__hint .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: KbqDividerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2046
+ `, isInline: true, styles: [".kbq-filter-bar{display:flex;flex-direction:row;justify-content:space-between;width:100%}.kbq-filter-bar .kbq-filter-bar__left{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--kbq-size-s)}.kbq-filter-bar .kbq-filter-bar__left .kbq-button>.kbq-icon{margin-right:var(--kbq-size-xxs)}.kbq-filter-bar .kbq-filter-bar__left>.kbq-icon{align-self:center}.kbq-filter-bar .kbq-filter-bar__right{display:flex;flex-direction:row;margin-left:var(--kbq-size-3xl)}.kbq-pipe__popover .kbq-popover__container{min-width:320px;max-width:320px}.kbq-pipe__popover .kbq-popover__content{padding:var(--kbq-size-m) var(--kbq-size-m) 1px!important}.kbq-pipe__popover .kbq-popover__footer{padding:var(--kbq-size-xxs)}.kbq-pipe__popover .kbq-popover__footer .kbq-button:not(.kbq-disabled){display:flex;flex-direction:row;width:100%;justify-content:flex-start}.kbq-pipe__popover .kbq-popover__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-button,.kbq-button-icon{-webkit-font-smoothing:antialiased}.kbq-button.kbq-button_changed-filter,.kbq-button-icon.kbq-button_changed-filter{color:var(--kbq-foreground-theme);background:var(--kbq-states-background-theme-less-active)}.kbq-button.kbq-button_changed-filter .kbq-icon.kbq-empty,.kbq-button-icon.kbq-button_changed-filter .kbq-icon.kbq-empty,.kbq-button.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button-icon.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_right,.kbq-button-icon.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_right{color:var(--kbq-icon-theme)}.kbq-button.kbq-button_changed-filter:hover:not(.kbq-disabled),.kbq-button.kbq-button_changed-filter.kbq-hover:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter:hover:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter.kbq-hover:not(.kbq-disabled){background:var(--kbq-states-background-theme-less-hover)}.kbq-button.kbq-button_changed-filter:active:not(.kbq-disabled),.kbq-button.kbq-button_changed-filter.kbq-active:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter:active:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter.kbq-active:not(.kbq-disabled){background:var(--kbq-states-background-theme-fade-active)}.kbq-button.kbq-button_changed-filter.cdk-keyboard-focused,.kbq-button-icon.kbq-button_changed-filter.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-button.kbq-button_changed-filter.kbq-disabled,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-states-background-disabled)}.kbq-button.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty,.kbq-button.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_right,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_right{color:var(--kbq-states-icon-disabled)}.kbq-hint.kbq-date-period__hint .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: KbqDividerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2091
2047
  }
2092
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterBar, decorators: [{
2048
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFilterBar, decorators: [{
2093
2049
  type: Component,
2094
2050
  args: [{ selector: 'kbq-filter-bar, [kbq-filter-bar]', imports: [KbqDividerModule], template: `
2095
2051
  <div class="kbq-filter-bar__left">
@@ -2103,50 +2059,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
2103
2059
  </div>
2104
2060
 
2105
2061
  <div class="kbq-filter-bar__right">
2106
- <ng-content select="kbq-filter-search, [kbq-filter-search], kbq-search-expandable" />
2062
+ <ng-content select="kbq-search-expandable" />
2107
2063
 
2108
2064
  <ng-content select="kbq-filter-refresher, [kbq-filter-refresher]" />
2109
2065
  </div>
2110
- `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
2066
+ `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
2111
2067
  class: 'kbq-filter-bar'
2112
- }, styles: [".kbq-filter-bar{display:flex;flex-direction:row;justify-content:space-between;width:100%}.kbq-filter-bar .kbq-filter-bar__left{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--kbq-size-s)}.kbq-filter-bar .kbq-filter-bar__left .kbq-button>.kbq-icon{margin-right:var(--kbq-size-xxs)}.kbq-filter-bar .kbq-filter-bar__left>.kbq-icon{align-self:center}.kbq-filter-bar .kbq-filter-bar__right{display:flex;flex-direction:row;margin-left:var(--kbq-size-3xl)}.kbq-pipe__popover .kbq-popover__container{min-width:320px;max-width:320px}.kbq-pipe__popover .kbq-popover__content{padding:var(--kbq-size-m) var(--kbq-size-m) 1px!important}.kbq-pipe__popover .kbq-popover__footer{padding:var(--kbq-size-xxs)}.kbq-pipe__popover .kbq-popover__footer .kbq-button:not(.kbq-disabled){display:flex;flex-direction:row;width:100%;justify-content:flex-start}.kbq-pipe__popover .kbq-popover__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-button-overlay{display:none}.kbq-button,.kbq-button-icon{-webkit-font-smoothing:antialiased}.kbq-button.kbq-button_changed-filter,.kbq-button-icon.kbq-button_changed-filter{color:var(--kbq-foreground-theme);background:var(--kbq-states-background-theme-less-active)}.kbq-button.kbq-button_changed-filter .kbq-icon.kbq-empty,.kbq-button-icon.kbq-button_changed-filter .kbq-icon.kbq-empty,.kbq-button.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button-icon.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_right,.kbq-button-icon.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_right{color:var(--kbq-icon-theme)}.kbq-button.kbq-button_changed-filter:hover:not(.kbq-disabled),.kbq-button.kbq-button_changed-filter.kbq-hover:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter:hover:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter.kbq-hover:not(.kbq-disabled){background:var(--kbq-states-background-theme-less-hover)}.kbq-button.kbq-button_changed-filter:active:not(.kbq-disabled),.kbq-button.kbq-button_changed-filter.kbq-active:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter:active:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter.kbq-active:not(.kbq-disabled){background:var(--kbq-states-background-theme-fade-active)}.kbq-button.kbq-button_changed-filter.cdk-keyboard-focused,.kbq-button-icon.kbq-button_changed-filter.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-button.kbq-button_changed-filter.kbq-disabled,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-states-background-disabled)}.kbq-button.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty,.kbq-button.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_right,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_right{color:var(--kbq-states-icon-disabled)}.kbq-hint.kbq-date-period__hint .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n"] }]
2113
- }], ctorParameters: () => [], propDecorators: { filters: [{
2114
- type: ContentChild,
2115
- args: [KbqFilters]
2116
- }], filterReset: [{
2117
- type: ContentChild,
2118
- args: [KbqFilterReset]
2119
- }], selectedAllEqualsSelectedNothing: [{
2120
- type: Input,
2121
- args: [{ transform: booleanAttribute }]
2122
- }], filter: [{
2068
+ }, styles: [".kbq-filter-bar{display:flex;flex-direction:row;justify-content:space-between;width:100%}.kbq-filter-bar .kbq-filter-bar__left{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--kbq-size-s)}.kbq-filter-bar .kbq-filter-bar__left .kbq-button>.kbq-icon{margin-right:var(--kbq-size-xxs)}.kbq-filter-bar .kbq-filter-bar__left>.kbq-icon{align-self:center}.kbq-filter-bar .kbq-filter-bar__right{display:flex;flex-direction:row;margin-left:var(--kbq-size-3xl)}.kbq-pipe__popover .kbq-popover__container{min-width:320px;max-width:320px}.kbq-pipe__popover .kbq-popover__content{padding:var(--kbq-size-m) var(--kbq-size-m) 1px!important}.kbq-pipe__popover .kbq-popover__footer{padding:var(--kbq-size-xxs)}.kbq-pipe__popover .kbq-popover__footer .kbq-button:not(.kbq-disabled){display:flex;flex-direction:row;width:100%;justify-content:flex-start}.kbq-pipe__popover .kbq-popover__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-button,.kbq-button-icon{-webkit-font-smoothing:antialiased}.kbq-button.kbq-button_changed-filter,.kbq-button-icon.kbq-button_changed-filter{color:var(--kbq-foreground-theme);background:var(--kbq-states-background-theme-less-active)}.kbq-button.kbq-button_changed-filter .kbq-icon.kbq-empty,.kbq-button-icon.kbq-button_changed-filter .kbq-icon.kbq-empty,.kbq-button.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button-icon.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_right,.kbq-button-icon.kbq-button_changed-filter .kbq-icon.kbq-empty.kbq-icon_right{color:var(--kbq-icon-theme)}.kbq-button.kbq-button_changed-filter:hover:not(.kbq-disabled),.kbq-button.kbq-button_changed-filter.kbq-hover:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter:hover:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter.kbq-hover:not(.kbq-disabled){background:var(--kbq-states-background-theme-less-hover)}.kbq-button.kbq-button_changed-filter:active:not(.kbq-disabled),.kbq-button.kbq-button_changed-filter.kbq-active:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter:active:not(.kbq-disabled),.kbq-button-icon.kbq-button_changed-filter.kbq-active:not(.kbq-disabled){background:var(--kbq-states-background-theme-fade-active)}.kbq-button.kbq-button_changed-filter.cdk-keyboard-focused,.kbq-button-icon.kbq-button_changed-filter.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-button.kbq-button_changed-filter.kbq-disabled,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-states-background-disabled)}.kbq-button.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty,.kbq-button.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_left,.kbq-button.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_right,.kbq-button-icon.kbq-button_changed-filter.kbq-disabled .kbq-icon.kbq-empty.kbq-icon_right{color:var(--kbq-states-icon-disabled)}.kbq-hint.kbq-date-period__hint .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n"] }]
2069
+ }], ctorParameters: () => [], propDecorators: { filters: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqFilters), { isSignal: true }] }], filterReset: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqFilterReset), { isSignal: true }] }], selectedAllEqualsSelectedNothing: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedAllEqualsSelectedNothing", required: false }] }], filter: [{
2123
2070
  type: Input
2124
2071
  }], pipeTemplates: [{
2125
2072
  type: Input
2126
- }], filterChange: [{
2127
- type: Output
2128
- }], onChangePipe: [{
2073
+ }], filterChange: [{ type: i0.Output, args: ["filterChange"] }], onChangePipe: [{
2129
2074
  type: Output
2130
- }], onRemovePipe: [{
2131
- type: Output
2132
- }], onClearPipe: [{
2133
- type: Output
2134
- }], onClosePipe: [{
2135
- type: Output
2136
- }] } });
2075
+ }], onRemovePipe: [{ type: i0.Output, args: ["onRemovePipe"] }], onClearPipe: [{ type: i0.Output, args: ["onClearPipe"] }], onClosePipe: [{ type: i0.Output, args: ["onClosePipe"] }] } });
2137
2076
 
2138
2077
  class KbqFilterBarRefresher {
2139
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterBarRefresher, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2140
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: KbqFilterBarRefresher, isStandalone: true, selector: "kbq-filter-refresher, [kbq-filter-refresher]", host: { classAttribute: "kbq-filter-refresher" }, ngImport: i0, template: `
2078
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFilterBarRefresher, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2079
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: KbqFilterBarRefresher, isStandalone: true, selector: "kbq-filter-refresher, [kbq-filter-refresher]", host: { classAttribute: "kbq-filter-refresher" }, ngImport: i0, template: `
2141
2080
  <button kbq-button [color]="'contrast'" [kbqStyle]="'transparent'">
2142
2081
  <i kbq-icon="kbq-arrow-rotate-right_16"></i>
2143
2082
  </button>
2144
2083
  <button kbq-button [color]="'contrast'" [kbqStyle]="'transparent'">
2145
2084
  <i kbq-icon="kbq-chevron-down_16"></i>
2146
2085
  </button>
2147
- `, isInline: true, styles: [".kbq-filter-refresher{display:flex;align-items:center;min-width:64px}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2086
+ `, isInline: true, styles: [".kbq-filter-refresher{display:flex;align-items:center;min-width:64px}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2148
2087
  }
2149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterBarRefresher, decorators: [{
2088
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFilterBarRefresher, decorators: [{
2150
2089
  type: Component,
2151
2090
  args: [{ selector: 'kbq-filter-refresher, [kbq-filter-refresher]', imports: [
2152
2091
  KbqButtonModule,
@@ -2158,193 +2097,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
2158
2097
  <button kbq-button [color]="'contrast'" [kbqStyle]="'transparent'">
2159
2098
  <i kbq-icon="kbq-chevron-down_16"></i>
2160
2099
  </button>
2161
- `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
2100
+ `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
2162
2101
  class: 'kbq-filter-refresher'
2163
2102
  }, styles: [".kbq-filter-refresher{display:flex;align-items:center;min-width:64px}\n"] }]
2164
2103
  }] });
2165
2104
 
2166
- const defaultOnSearchTimeout = 0;
2167
- /** @deprecated Will be removed in next major release. Use `kbq-search-expandable` instead. */
2168
- class KbqFilterBarSearch {
2169
- constructor() {
2170
- /** KbqFilterBar instance */
2171
- this.filterBar = inject(KbqFilterBar);
2172
- this.changeDetectorRef = inject(ChangeDetectorRef);
2173
- this.destroyRef = inject(DestroyRef);
2174
- /** control for search */
2175
- this.searchControl = new UntypedFormControl();
2176
- /** Whether the search active */
2177
- this.isSearchActive = false;
2178
- /**
2179
- /** Timeout in milliseconds for emit event. The default value is taken from defaultOnSearchTimeout
2180
- * @default 0
2181
- */
2182
- this.onSearchTimeout = input(defaultOnSearchTimeout, { transform: numberAttribute });
2183
- /** Emit event by enter or not. Default is false */
2184
- this.emitValueByEnter = input(false, { transform: booleanAttribute });
2185
- /** Value of the field after initialization */
2186
- this.initialValue = input();
2187
- /** Custom tooltip text. When set, overrides localeData.tooltip */
2188
- this.customTooltip = input('', { alias: 'tooltip' });
2189
- /** Custom placeholder text. When set, overrides localeData.placeholder */
2190
- this.customPlaceholder = input('', { alias: 'placeholder' });
2191
- /** event that is generated whenever a user performs a search. */
2192
- this.onSearch = new EventEmitter();
2193
- /** @docs-private */
2194
- this.onReset = () => {
2195
- this.changeDetectorRef.markForCheck();
2196
- };
2197
- }
2198
- /** localized data
2199
- * @docs-private */
2200
- get localeData() {
2201
- return this.filterBar.configuration.search;
2202
- }
2203
- /** @docs-private */
2204
- get resolvedTooltip() {
2205
- return this.customTooltip() || this.localeData.tooltip;
2206
- }
2207
- /** @docs-private */
2208
- get resolvedPlaceholder() {
2209
- return this.customPlaceholder() || this.localeData.placeholder;
2210
- }
2211
- ngAfterViewInit() {
2212
- this.filterBar.filterReset?.onResetFilter.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.onReset);
2213
- if (this.initialValue()) {
2214
- this.searchControl.setValue(this.initialValue(), { emitEvent: false });
2215
- }
2216
- this.searchControl.valueChanges
2217
- .pipe(distinctUntilChanged$1(), filter(() => !this.emitValueByEnter()), debounceTime$1(this.onSearchTimeout()), takeUntilDestroyed(this.destroyRef))
2218
- .subscribe(this.onSearch);
2219
- }
2220
- openSearch() {
2221
- this.isSearchActive = true;
2222
- setTimeout(() => this.input.focus());
2223
- }
2224
- /** @docs-private */
2225
- onBlur() {
2226
- if (this.searchControl.value)
2227
- return;
2228
- this.onEscape();
2229
- }
2230
- /** @docs-private */
2231
- onEscape() {
2232
- this.isSearchActive = false;
2233
- this.button.focusViaKeyboard();
2234
- this.tooltip.hide();
2235
- }
2236
- /** @docs-private */
2237
- onEnter() {
2238
- if (this.emitValueByEnter()) {
2239
- this.onSearch.emit(this.searchControl.value);
2240
- }
2241
- }
2242
- /** @docs-private */
2243
- onClear() {
2244
- this.isSearchActive = false;
2245
- setTimeout(() => {
2246
- this.button.focus();
2247
- this.tooltip.hide();
2248
- });
2249
- }
2250
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterBarSearch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2251
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.21", type: KbqFilterBarSearch, isStandalone: true, selector: "kbq-filter-search, [kbq-filter-search]", inputs: { onSearchTimeout: { classPropertyName: "onSearchTimeout", publicName: "onSearchTimeout", isSignal: true, isRequired: false, transformFunction: null }, emitValueByEnter: { classPropertyName: "emitValueByEnter", publicName: "emitValueByEnter", isSignal: true, isRequired: false, transformFunction: null }, initialValue: { classPropertyName: "initialValue", publicName: "initialValue", isSignal: true, isRequired: false, transformFunction: null }, customTooltip: { classPropertyName: "customTooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, customPlaceholder: { classPropertyName: "customPlaceholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSearch: "onSearch" }, host: { classAttribute: "kbq-filter-search" }, viewQueries: [{ propertyName: "input", first: true, predicate: KbqInput, descendants: true }, { propertyName: "button", first: true, predicate: KbqButton, descendants: true }, { propertyName: "tooltip", first: true, predicate: KbqTooltipTrigger, descendants: true }], ngImport: i0, template: `
2252
- <button
2253
- kbq-button
2254
- [kbqTooltip]="resolvedTooltip"
2255
- [class.kbq-filter_hidden]="isSearchActive"
2256
- [color]="'contrast'"
2257
- [kbqStyle]="'transparent'"
2258
- (click)="openSearch()"
2259
- >
2260
- <i kbq-icon="kbq-magnifying-glass_16"></i>
2261
- </button>
2262
-
2263
- <kbq-form-field [class.kbq-filter_hidden]="!isSearchActive">
2264
- <i kbq-icon="kbq-magnifying-glass_16" kbqPrefix></i>
2265
-
2266
- <input
2267
- autocomplete="off"
2268
- kbqInput
2269
- [placeholder]="resolvedPlaceholder"
2270
- [formControl]="searchControl"
2271
- (blur)="onBlur()"
2272
- (keydown.escape)="onEscape()"
2273
- (keydown.enter)="onEnter()"
2274
- />
2275
-
2276
- <kbq-cleaner (click)="onClear()" />
2277
- </kbq-form-field>
2278
- `, isInline: true, styles: [".kbq-filter-search{display:flex;align-items:start}.kbq-filter-search .kbq-form-field{width:260px}.kbq-filter-search .kbq-filter_hidden{display:none}\n"], dependencies: [{ kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i2$1.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["forDisabledComponent", "ignoreTooltipPointerEvents", "hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "directive", type: i2.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i4.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2279
- }
2280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterBarSearch, decorators: [{
2281
- type: Component,
2282
- args: [{ selector: 'kbq-filter-search, [kbq-filter-search]', imports: [
2283
- KbqDividerModule,
2284
- KbqButtonModule,
2285
- KbqToolTipModule,
2286
- KbqIconModule,
2287
- KbqFormFieldModule,
2288
- KbqInputModule,
2289
- ReactiveFormsModule
2290
- ], template: `
2291
- <button
2292
- kbq-button
2293
- [kbqTooltip]="resolvedTooltip"
2294
- [class.kbq-filter_hidden]="isSearchActive"
2295
- [color]="'contrast'"
2296
- [kbqStyle]="'transparent'"
2297
- (click)="openSearch()"
2298
- >
2299
- <i kbq-icon="kbq-magnifying-glass_16"></i>
2300
- </button>
2301
-
2302
- <kbq-form-field [class.kbq-filter_hidden]="!isSearchActive">
2303
- <i kbq-icon="kbq-magnifying-glass_16" kbqPrefix></i>
2304
-
2305
- <input
2306
- autocomplete="off"
2307
- kbqInput
2308
- [placeholder]="resolvedPlaceholder"
2309
- [formControl]="searchControl"
2310
- (blur)="onBlur()"
2311
- (keydown.escape)="onEscape()"
2312
- (keydown.enter)="onEnter()"
2313
- />
2314
-
2315
- <kbq-cleaner (click)="onClear()" />
2316
- </kbq-form-field>
2317
- `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
2318
- class: 'kbq-filter-search'
2319
- }, styles: [".kbq-filter-search{display:flex;align-items:start}.kbq-filter-search .kbq-form-field{width:260px}.kbq-filter-search .kbq-filter_hidden{display:none}\n"] }]
2320
- }], propDecorators: { input: [{
2321
- type: ViewChild,
2322
- args: [KbqInput]
2323
- }], button: [{
2324
- type: ViewChild,
2325
- args: [KbqButton]
2326
- }], tooltip: [{
2327
- type: ViewChild,
2328
- args: [KbqTooltipTrigger]
2329
- }], onSearch: [{
2330
- type: Output
2331
- }] } });
2332
-
2333
2105
  class KbqPipeAdd {
2334
2106
  constructor() {
2335
2107
  /** KbqFilterBar instance */
2336
2108
  this.filterBar = inject(KbqFilterBar);
2109
+ /** @docs-private */
2110
+ this.select = viewChild.required(KbqSelect);
2337
2111
  /** Event that is generated after add pipe. */
2338
- this.onAddPipe = new EventEmitter();
2112
+ this.onAddPipe = output();
2339
2113
  /** template of filter */
2340
- this.filterTemplate = {
2114
+ this.filterTemplate = input({
2341
2115
  name: '',
2342
2116
  pipes: [],
2343
2117
  readonly: false,
2344
2118
  disabled: false,
2345
2119
  changed: false,
2346
2120
  saved: false
2347
- };
2121
+ }, ...(ngDevMode ? [{ debugName: "filterTemplate" }] : []));
2348
2122
  /** already added pipes. Used to open an already added pipe. */
2349
2123
  this.addedPipes = [];
2350
2124
  this.filterBar.changes.pipe(takeUntilDestroyed()).subscribe(() => {
@@ -2360,14 +2134,14 @@ class KbqPipeAdd {
2360
2134
  else {
2361
2135
  option.select();
2362
2136
  if (!this.filterBar.filter) {
2363
- this.filterBar.filter = structuredClone(this.filterTemplate);
2137
+ this.filterBar.filter = structuredClone(this.filterTemplate());
2364
2138
  }
2365
2139
  this.filterBar.filter.changed = true;
2366
2140
  this.filterBar.filter.pipes.push(Object.assign({}, option.value, { values: undefined, valueTemplate: undefined, openOnAdd: true }));
2367
- this.onAddPipe.next(option.value);
2141
+ this.onAddPipe.emit(option.value);
2368
2142
  this.filterBar.filterChange.emit(this.filterBar.filter);
2369
2143
  }
2370
- this.select.close();
2144
+ this.select().close();
2371
2145
  }
2372
2146
  /**
2373
2147
  * Function to compare the option values with the selected values. The first argument
@@ -2377,8 +2151,8 @@ class KbqPipeAdd {
2377
2151
  compareWith(o1, o2) {
2378
2152
  return getId(o1) === o2;
2379
2153
  }
2380
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeAdd, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2381
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: KbqPipeAdd, isStandalone: true, selector: "kbq-pipe-add", inputs: { filterTemplate: "filterTemplate" }, outputs: { onAddPipe: "onAddPipe" }, host: { classAttribute: "kbq-pipe-add" }, viewQueries: [{ propertyName: "select", first: true, predicate: KbqSelect, descendants: true }], ngImport: i0, template: `
2154
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeAdd, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2155
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqPipeAdd, isStandalone: true, selector: "kbq-pipe-add", inputs: { filterTemplate: { classPropertyName: "filterTemplate", publicName: "filterTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onAddPipe: "onAddPipe" }, host: { classAttribute: "kbq-pipe-add" }, viewQueries: [{ propertyName: "select", first: true, predicate: KbqSelect, descendants: true, isSignal: true }], ngImport: i0, template: `
2382
2156
  <kbq-select #select [tabIndex]="-1" [multiple]="true" [value]="addedPipes" [compareWith]="compareWith">
2383
2157
  <button
2384
2158
  kbqTooltip="{{ filterBar.configuration.add.tooltip }}"
@@ -2386,7 +2160,7 @@ class KbqPipeAdd {
2386
2160
  kbq-select-matcher
2387
2161
  [color]="'contrast-fade'"
2388
2162
  [kbqStyle]="'outline'"
2389
- [ngClass]="{ 'kbq-active': select.panelOpen }"
2163
+ [class]="{ 'kbq-active': select.panelOpen }"
2390
2164
  >
2391
2165
  <i kbq-icon="kbq-plus_16"></i>
2392
2166
  </button>
@@ -2403,9 +2177,9 @@ class KbqPipeAdd {
2403
2177
  </kbq-option>
2404
2178
  }
2405
2179
  </kbq-select>
2406
- `, isInline: true, styles: [".kbq-pipe-add .kbq-select .kbq-select__trigger{height:unset}\n"], dependencies: [{ kind: "ngmodule", type: KbqDropdownModule }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i2$1.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["forDisabledComponent", "ignoreTooltipPointerEvents", "hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqOptionModule }, { kind: "component", type: i6.KbqOption, selector: "kbq-option", inputs: ["value", "selectable", "userSelect", "showCheckbox", "viewValue", "disabled"], outputs: ["onSelectionChange"], exportAs: ["kbqOption"] }, { kind: "ngmodule", type: KbqSelectModule }, { kind: "component", type: i3$1.KbqSelect, selector: "kbq-select", inputs: ["hiddenItemsText", "showPreselectedValues", "triggerValuesLimit", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "multiline", "searchMinOptionsThreshold", "scrolledToBottomOffset", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "virtualOptionFactory", "selectAllHandler", "panelWidth", "panelMinWidth", "value", "id", "tabIndex", "disabled", "hiddenItemsTextFormatter"], outputs: ["openedChange", "beforeOpened", "opened", "closed", "selectionChange", "valueChange", "scrolledToBottom"], exportAs: ["kbqSelect"] }, { kind: "directive", type: i3$1.KbqOptionTooltip, selector: "kbq-option" }, { kind: "directive", type: i6.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]", inputs: ["useDefaultHandlers"] }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2180
+ `, isInline: true, styles: [".kbq-pipe-add .kbq-select .kbq-select__trigger{height:unset}\n"], dependencies: [{ kind: "ngmodule", type: KbqDropdownModule }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i1$2.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["forDisabledComponent", "ignoreTooltipPointerEvents", "hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset", "kbqTooltipModifier", "kbqTooltipHeader"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqOptionModule }, { kind: "component", type: i8$1.KbqOption, selector: "kbq-option", inputs: ["value", "selectable", "userSelect", "showCheckbox", "viewValue", "disabled"], outputs: ["onSelectionChange"], exportAs: ["kbqOption"] }, { kind: "ngmodule", type: KbqSelectModule }, { kind: "component", type: i3$1.KbqSelect, selector: "kbq-select", inputs: ["hiddenItemsText", "showPreselectedValues", "triggerValuesLimit", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "multiline", "searchMinOptionsThreshold", "scrolledToBottomOffset", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "virtualOptionFactory", "selectAllHandler", "panelWidth", "panelMinWidth", "value", "id", "tabIndex", "disabled", "hiddenItemsTextFormatter"], outputs: ["openedChange", "beforeOpened", "opened", "closed", "selectionChange", "valueChange", "scrolledToBottom"], exportAs: ["kbqSelect"] }, { kind: "directive", type: i3$1.KbqOptionTooltip, selector: "kbq-option" }, { kind: "directive", type: i8$1.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]", inputs: ["useDefaultHandlers"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2407
2181
  }
2408
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeAdd, decorators: [{
2182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeAdd, decorators: [{
2409
2183
  type: Component,
2410
2184
  args: [{ selector: 'kbq-pipe-add', imports: [
2411
2185
  KbqDropdownModule,
@@ -2413,8 +2187,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
2413
2187
  KbqButtonModule,
2414
2188
  KbqIcon,
2415
2189
  KbqOptionModule,
2416
- KbqSelectModule,
2417
- NgClass
2190
+ KbqSelectModule
2418
2191
  ], template: `
2419
2192
  <kbq-select #select [tabIndex]="-1" [multiple]="true" [value]="addedPipes" [compareWith]="compareWith">
2420
2193
  <button
@@ -2423,7 +2196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
2423
2196
  kbq-select-matcher
2424
2197
  [color]="'contrast-fade'"
2425
2198
  [kbqStyle]="'outline'"
2426
- [ngClass]="{ 'kbq-active': select.panelOpen }"
2199
+ [class]="{ 'kbq-active': select.panelOpen }"
2427
2200
  >
2428
2201
  <i kbq-icon="kbq-plus_16"></i>
2429
2202
  </button>
@@ -2440,30 +2213,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
2440
2213
  </kbq-option>
2441
2214
  }
2442
2215
  </kbq-select>
2443
- `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
2216
+ `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
2444
2217
  class: 'kbq-pipe-add'
2445
2218
  }, styles: [".kbq-pipe-add .kbq-select .kbq-select__trigger{height:unset}\n"] }]
2446
- }], ctorParameters: () => [], propDecorators: { select: [{
2447
- type: ViewChild,
2448
- args: [KbqSelect]
2449
- }], onAddPipe: [{
2450
- type: Output
2451
- }], filterTemplate: [{
2452
- type: Input
2453
- }] } });
2219
+ }], ctorParameters: () => [], propDecorators: { select: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqSelect), { isSignal: true }] }], onAddPipe: [{ type: i0.Output, args: ["onAddPipe"] }], filterTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterTemplate", required: false }] }] } });
2454
2220
 
2455
2221
  class KbqPipeDirective {
2456
2222
  constructor() {
2457
2223
  this.injector = inject(Injector);
2458
2224
  this.pipes = inject(KBQ_FILTER_BAR_PIPES);
2459
2225
  this.viewContainerRef = inject(ViewContainerRef);
2226
+ this.pipe = input(undefined, ...(ngDevMode ? [{ debugName: "pipe", alias: 'kbqPipe' }] : [{ alias: 'kbqPipe' }]));
2460
2227
  }
2461
2228
  ngAfterContentInit() {
2462
- const component = this.pipes.get(this.pipe.type);
2229
+ const component = this.pipes.get(this.pipe().type);
2463
2230
  if (!component) {
2464
- throw new Error(`Can't find component for this type: ${this.pipe.type}`);
2231
+ throw new Error(`Can't find component for this type: ${this.pipe().type}`);
2465
2232
  }
2466
- this.viewContainerRef.createComponent(component, { injector: this.getInjector(this.pipe) });
2233
+ this.viewContainerRef.createComponent(component, { injector: this.getInjector(this.pipe()) });
2467
2234
  }
2468
2235
  getInjector(pipe) {
2469
2236
  return Injector.create({
@@ -2471,18 +2238,15 @@ class KbqPipeDirective {
2471
2238
  parent: this.injector
2472
2239
  });
2473
2240
  }
2474
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2475
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqPipeDirective, isStandalone: true, selector: "[kbqPipe]", inputs: { pipe: ["kbqPipe", "pipe"] }, ngImport: i0 }); }
2241
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2242
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: KbqPipeDirective, isStandalone: true, selector: "[kbqPipe]", inputs: { pipe: { classPropertyName: "pipe", publicName: "kbqPipe", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
2476
2243
  }
2477
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPipeDirective, decorators: [{
2244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPipeDirective, decorators: [{
2478
2245
  type: Directive,
2479
2246
  args: [{
2480
2247
  selector: '[kbqPipe]'
2481
2248
  }]
2482
- }], propDecorators: { pipe: [{
2483
- type: Input,
2484
- args: [{ alias: 'kbqPipe' }]
2485
- }] } });
2249
+ }], propDecorators: { pipe: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbqPipe", required: false }] }] } });
2486
2250
 
2487
2251
  const COMPONENTS = [
2488
2252
  KbqFilterBar,
@@ -2493,13 +2257,12 @@ const COMPONENTS = [
2493
2257
  KbqPipeAdd,
2494
2258
  KbqPipeDirective,
2495
2259
  KbqPipeButton,
2496
- KbqFilterBarSearch,
2497
2260
  KbqPipeTitleDirective,
2498
2261
  KbqPipeState
2499
2262
  ];
2500
2263
  class KbqFilterBarModule {
2501
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2502
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterBarModule, imports: [KbqFilterBar,
2264
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFilterBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2265
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqFilterBarModule, imports: [KbqFilterBar,
2503
2266
  KbqFilters,
2504
2267
  KbqFilterBarRefresher,
2505
2268
  KbqFilterBarButton,
@@ -2507,7 +2270,6 @@ class KbqFilterBarModule {
2507
2270
  KbqPipeAdd,
2508
2271
  KbqPipeDirective,
2509
2272
  KbqPipeButton,
2510
- KbqFilterBarSearch,
2511
2273
  KbqPipeTitleDirective,
2512
2274
  KbqPipeState], exports: [KbqFilterBar,
2513
2275
  KbqFilters,
@@ -2517,23 +2279,21 @@ class KbqFilterBarModule {
2517
2279
  KbqPipeAdd,
2518
2280
  KbqPipeDirective,
2519
2281
  KbqPipeButton,
2520
- KbqFilterBarSearch,
2521
2282
  KbqPipeTitleDirective,
2522
2283
  KbqPipeState] }); }
2523
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterBarModule, providers: [kbqFilterBarPipesProvider()], imports: [KbqFilterBar,
2284
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFilterBarModule, providers: [kbqFilterBarPipesProvider()], imports: [KbqFilterBar,
2524
2285
  KbqFilters,
2525
2286
  KbqFilterBarRefresher,
2526
2287
  KbqFilterReset,
2527
2288
  KbqPipeAdd,
2528
- KbqPipeButton,
2529
- KbqFilterBarSearch] }); }
2289
+ KbqPipeButton] }); }
2530
2290
  }
2531
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFilterBarModule, decorators: [{
2291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFilterBarModule, decorators: [{
2532
2292
  type: NgModule,
2533
2293
  args: [{
2534
2294
  imports: COMPONENTS,
2535
- exports: COMPONENTS,
2536
- providers: [kbqFilterBarPipesProvider()]
2295
+ providers: [kbqFilterBarPipesProvider()],
2296
+ exports: COMPONENTS
2537
2297
  }]
2538
2298
  }] });
2539
2299
 
@@ -2541,5 +2301,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
2541
2301
  * Generated bundle index. Do not edit.
2542
2302
  */
2543
2303
 
2544
- export { KBQ_FILTER_BAR_CONFIGURATION, KBQ_FILTER_BAR_DEFAULT_CONFIGURATION, KBQ_FILTER_BAR_PIPES, KBQ_PIPE_DATA, KbqBasePipe, KbqFilterBar, KbqFilterBarButton, KbqFilterBarModule, KbqFilterBarRefresher, KbqFilterBarSearch, KbqFilterReset, KbqFilters, KbqPipeAdd, KbqPipeButton, KbqPipeDateComponent, KbqPipeDatetimeComponent, KbqPipeDirective, KbqPipeMinWidth, KbqPipeMultiSelectComponent, KbqPipeReadonlyComponent, KbqPipeSelectComponent, KbqPipeState, KbqPipeTextComponent, KbqPipeTitleDirective, KbqPipeTreeSelectComponent, KbqPipeTypes, KbqSaveFilterStatuses, KbqTreeSelectFlatNode, defaultFilterBarPipes, defaultOnSearchTimeout, getId, kbqBuildTree, kbqFilterBarPipesProvider };
2304
+ export { KBQ_FILTER_BAR_CONFIGURATION, KBQ_FILTER_BAR_DEFAULT_CONFIGURATION, KBQ_FILTER_BAR_PIPES, KBQ_PIPE_DATA, KbqBasePipe, KbqFilterBar, KbqFilterBarButton, KbqFilterBarModule, KbqFilterBarRefresher, KbqFilterReset, KbqFilters, KbqPipeAdd, KbqPipeButton, KbqPipeDateComponent, KbqPipeDatetimeComponent, KbqPipeDirective, KbqPipeMinWidth, KbqPipeMultiSelectComponent, KbqPipeReadonlyComponent, KbqPipeSelectComponent, KbqPipeState, KbqPipeTextComponent, KbqPipeTitleDirective, KbqPipeTreeSelectComponent, KbqPipeTypes, KbqSaveFilterStatuses, KbqTreeSelectFlatNode, defaultFilterBarPipes, getId, kbqBuildTree, kbqFilterBarPipesProvider };
2545
2305
  //# sourceMappingURL=koobiq-components-filter-bar.mjs.map