@koobiq/components 18.39.0 → 19.1.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 (912) hide show
  1. package/accordion/accordion-content.d.ts +2 -2
  2. package/accordion/accordion-content.directive.d.ts +11 -0
  3. package/accordion/accordion-header.d.ts +2 -2
  4. package/accordion/accordion-header.directive.d.ts +7 -0
  5. package/accordion/accordion-item.d.ts +2 -2
  6. package/accordion/accordion-item.directive.d.ts +72 -0
  7. package/accordion/accordion-root.directive.d.ts +64 -0
  8. package/accordion/accordion-trigger.component.d.ts +2 -2
  9. package/accordion/accordion-trigger.directive.d.ts +13 -0
  10. package/accordion/accordion.component.d.ts +2 -4
  11. package/accordion/accordion.module.d.ts +7 -7
  12. package/accordion/public-api.d.ts +5 -0
  13. package/alert/_alert-theme.scss +4 -16
  14. package/alert/alert-tokens.scss +6 -12
  15. package/alert/alert.component.d.ts +5 -12
  16. package/alert/alert.module.d.ts +4 -4
  17. package/app-switcher/app-switcher.d.ts +8 -7
  18. package/autocomplete/autocomplete-origin.directive.d.ts +1 -1
  19. package/autocomplete/autocomplete-trigger.directive.d.ts +1 -1
  20. package/autocomplete/autocomplete.component.d.ts +1 -1
  21. package/autocomplete/autocomplete.module.d.ts +7 -7
  22. package/badge/badge.component.d.ts +3 -3
  23. package/badge/badge.module.d.ts +4 -4
  24. package/breadcrumbs/breadcrumbs.d.ts +3 -2
  25. package/breadcrumbs/public-api.d.ts +2 -0
  26. package/breadcrumbs/roving-focus-group.directive.d.ts +50 -0
  27. package/breadcrumbs/roving-focus-item.directive.d.ts +50 -0
  28. package/breadcrumbs/utils.d.ts +19 -0
  29. package/button/button.component.d.ts +2 -2
  30. package/button/button.module.d.ts +6 -6
  31. package/button-toggle/_button-toggle-theme.scss +30 -27
  32. package/button-toggle/button-toggle.component.d.ts +2 -2
  33. package/button-toggle/button-toggle.module.d.ts +4 -4
  34. package/button-toggle/button-toggle.scss +2 -2
  35. package/checkbox/checkbox-module.d.ts +4 -4
  36. package/checkbox/checkbox-required-validator.d.ts +1 -1
  37. package/checkbox/checkbox.d.ts +1 -1
  38. package/checkbox/checkbox.scss +5 -21
  39. package/code-block/code-block.scss +2 -2
  40. package/core/common-behaviors/index.d.ts +0 -1
  41. package/core/formatters/date/formatter.pipe.d.ts +13 -0
  42. package/core/formatters/index.d.ts +4 -4
  43. package/core/formatters/number/formatter.d.ts +3 -3
  44. package/core/forms/forms-module.d.ts +1 -1
  45. package/core/forms/forms.directive.d.ts +2 -2
  46. package/core/highlight/highlight.pipe.d.ts +1 -1
  47. package/core/highlight/index.d.ts +3 -3
  48. package/core/line/line.d.ts +1 -6
  49. package/core/locales/en-US.d.ts +8 -0
  50. package/core/locales/es-LA.d.ts +8 -0
  51. package/core/locales/locale-service.d.ts +40 -0
  52. package/core/locales/pt-BR.d.ts +8 -0
  53. package/core/locales/ru-RU.d.ts +8 -0
  54. package/core/locales/tk-TM.d.ts +8 -0
  55. package/core/locales/types.d.ts +21 -0
  56. package/core/option/_option-theme.scss +5 -2
  57. package/core/option/action.d.ts +1 -1
  58. package/core/option/optgroup.d.ts +1 -1
  59. package/core/option/option-module.d.ts +5 -5
  60. package/core/option/option.d.ts +5 -1
  61. package/core/pop-up/constants.d.ts +4 -0
  62. package/core/pop-up/pop-up-trigger.d.ts +5 -5
  63. package/core/pop-up/pop-up.d.ts +1 -1
  64. package/core/select/common.d.ts +1 -1
  65. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +1 -1
  66. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +3 -3
  67. package/core/styles/common/_select.scss +1 -1
  68. package/core/styles/common/_visually-hidden.scss +1 -0
  69. package/core/styles/theming/_scrollbar-theme.scss +19 -12
  70. package/core/utils/utils.d.ts +3 -0
  71. package/datepicker/calendar-body.component.d.ts +1 -1
  72. package/datepicker/calendar-header.component.d.ts +1 -1
  73. package/datepicker/calendar.component.d.ts +1 -1
  74. package/datepicker/datepicker-input.directive.d.ts +2 -2
  75. package/datepicker/datepicker-module.d.ts +15 -15
  76. package/datepicker/datepicker-toggle.component.d.ts +2 -2
  77. package/datepicker/datepicker.component.d.ts +2 -2
  78. package/datepicker/month-view.component.d.ts +1 -1
  79. package/divider/divider.component.d.ts +5 -1
  80. package/divider/divider.module.d.ts +3 -3
  81. package/dl/dl.component.d.ts +3 -3
  82. package/dl/dl.module.d.ts +4 -4
  83. package/dropdown/dropdown-content.directive.d.ts +1 -1
  84. package/dropdown/dropdown-item.component.d.ts +1 -1
  85. package/dropdown/dropdown-trigger.directive.d.ts +1 -1
  86. package/dropdown/dropdown.component.d.ts +1 -1
  87. package/dropdown/dropdown.module.d.ts +8 -8
  88. package/dropdown/dropdown.scss +1 -0
  89. package/ellipsis-center/ellipsis-center.directive.d.ts +2 -2
  90. package/empty-state/empty-state.component.d.ts +5 -5
  91. package/empty-state/empty-state.module.d.ts +4 -4
  92. package/fesm2022/koobiq-components-accordion.mjs +459 -40
  93. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-actions-panel.mjs +18 -18
  95. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-alert.mjs +28 -36
  97. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-app-switcher.mjs +66 -66
  99. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-autocomplete.mjs +31 -25
  101. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-badge.mjs +20 -21
  103. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-breadcrumbs.mjs +339 -36
  105. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-button-toggle.mjs +25 -22
  107. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-button.mjs +25 -26
  109. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-checkbox.mjs +18 -16
  111. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-clamped-text.mjs +9 -9
  113. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-code-block.mjs +15 -16
  115. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-content-panel.mjs +55 -57
  117. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-core.mjs +379 -367
  119. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-datepicker.mjs +107 -91
  121. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-divider.mjs +16 -14
  123. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-dl.mjs +19 -20
  125. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  126. package/fesm2022/koobiq-components-dropdown.mjs +47 -48
  127. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-dynamic-translation.mjs +16 -19
  129. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-ellipsis-center.mjs +10 -10
  131. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-empty-state.mjs +26 -27
  133. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-file-upload.mjs +402 -152
  135. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-filter-bar.mjs +293 -258
  137. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-form-field.mjs +84 -92
  139. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-icon.mjs +18 -18
  141. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-inline-edit.mjs +33 -37
  143. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-input.mjs +31 -30
  145. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-link.mjs +11 -10
  147. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-list.mjs +47 -45
  149. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-loader-overlay.mjs +27 -28
  151. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-markdown.mjs +14 -14
  153. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  154. package/fesm2022/koobiq-components-modal.mjs +76 -64
  155. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-navbar-ic.mjs +76 -54
  157. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-navbar.mjs +77 -66
  159. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-notification-center.mjs +31 -32
  161. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-overflow-items.mjs +16 -19
  163. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-popover.mjs +55 -46
  165. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-progress-bar.mjs +18 -19
  167. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-progress-spinner.mjs +22 -23
  169. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  170. package/fesm2022/koobiq-components-radio.mjs +20 -16
  171. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-resizer.mjs +10 -12
  173. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-risk-level.mjs +19 -12
  175. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-scrollbar.mjs +17 -18
  177. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-search-expandable.mjs +19 -19
  179. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-select.mjs +113 -74
  181. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-sidebar.mjs +16 -23
  183. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-sidepanel.mjs +61 -55
  185. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-split-button.mjs +12 -12
  187. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-splitter.mjs +24 -25
  189. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-table.mjs +17 -18
  191. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-tabs.mjs +85 -89
  193. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-tags.mjs +43 -47
  195. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-textarea.mjs +10 -11
  197. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-time-range.mjs +38 -40
  199. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-timepicker.mjs +68 -18
  201. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  202. package/fesm2022/koobiq-components-timezone.mjs +68 -59
  203. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  204. package/fesm2022/koobiq-components-title.mjs +23 -11
  205. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  206. package/fesm2022/koobiq-components-toast.mjs +23 -24
  207. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  208. package/fesm2022/koobiq-components-toggle.mjs +16 -14
  209. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  210. package/fesm2022/koobiq-components-tooltip.mjs +20 -23
  211. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  212. package/fesm2022/koobiq-components-top-bar.mjs +18 -20
  213. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  214. package/fesm2022/koobiq-components-tree-select.mjs +81 -70
  215. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  216. package/fesm2022/koobiq-components-tree.mjs +77 -66
  217. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  218. package/fesm2022/koobiq-components-username.mjs +31 -37
  219. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  220. package/file-upload/file-upload.d.ts +33 -3
  221. package/file-upload/file-upload.module.d.ts +15 -15
  222. package/file-upload/multiple-file-upload.component.d.ts +25 -34
  223. package/file-upload/{file-drop.d.ts → primitives/file-drop.d.ts} +3 -3
  224. package/file-upload/primitives/file-picker.d.ts +82 -0
  225. package/file-upload/primitives/index.d.ts +2 -0
  226. package/file-upload/public-api.d.ts +2 -1
  227. package/file-upload/single-file-upload.component.d.ts +25 -18
  228. package/filter-bar/pipes/pipe-multi-select.d.ts +4 -1
  229. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +5 -0
  230. package/icon/_icon-button-theme.scss +2 -1
  231. package/inline-edit/inline-edit.d.ts +2 -3
  232. package/input/_input-theme.scss +2 -1
  233. package/input/input-number-validators.d.ts +2 -2
  234. package/input/input-number.d.ts +1 -1
  235. package/input/input-password.d.ts +1 -1
  236. package/input/input.d.ts +2 -2
  237. package/input/input.module.d.ts +8 -8
  238. package/link/_link-theme.scss +3 -0
  239. package/link/link.component.d.ts +1 -1
  240. package/link/link.module.d.ts +3 -3
  241. package/list/_list-theme.scss +6 -0
  242. package/list/list-selection.component.d.ts +3 -3
  243. package/list/list.component.d.ts +2 -2
  244. package/list/list.module.d.ts +6 -6
  245. package/list/list.scss +1 -0
  246. package/loader-overlay/loader-overlay.component.d.ts +4 -4
  247. package/loader-overlay/loader-overlay.module.d.ts +5 -5
  248. package/loader-overlay/loader-overlay.scss +22 -31
  249. package/modal/css-unit.pipe.d.ts +1 -1
  250. package/modal/modal.component.d.ts +1 -1
  251. package/modal/modal.directive.d.ts +4 -4
  252. package/modal/modal.module.d.ts +10 -10
  253. package/modal/modal.scss +1 -1
  254. package/modal/modal.service.d.ts +1 -1
  255. package/navbar/_navbar-theme.scss +1 -0
  256. package/navbar/navbar-brand.component.d.ts +1 -1
  257. package/navbar/navbar-item.component.d.ts +7 -7
  258. package/navbar/navbar-toggle.component.d.ts +1 -1
  259. package/navbar/navbar-toggle.scss +1 -1
  260. package/navbar/navbar.component.d.ts +4 -4
  261. package/navbar/navbar.module.d.ts +10 -10
  262. package/navbar/vertical-navbar.component.d.ts +1 -1
  263. package/navbar/vertical-navbar.scss +5 -2
  264. package/navbar-ic/navbar-ic-header.d.ts +3 -0
  265. package/navbar-ic/navbar-ic-item.d.ts +18 -0
  266. package/navbar-ic/navbar-ic.d.ts +13 -7
  267. package/notification-center/notification-center.d.ts +5 -5
  268. package/overflow-items/overflow-items.d.ts +1 -1
  269. package/package.json +11 -142
  270. package/popover/_popover-theme.scss +2 -2
  271. package/popover/popover-confirm.component.d.ts +2 -2
  272. package/popover/popover.component.d.ts +9 -9
  273. package/popover/popover.module.d.ts +9 -9
  274. package/prebuilt-themes/dark-theme.css +1 -1
  275. package/prebuilt-themes/light-theme.css +1 -1
  276. package/prebuilt-themes/theme.css +1 -1
  277. package/progress-bar/progress-bar.component.d.ts +3 -3
  278. package/progress-bar/progress-bar.module.d.ts +3 -3
  279. package/progress-spinner/_progress-spinner-theme.scss +14 -4
  280. package/progress-spinner/progress-spinner-tokens.scss +2 -0
  281. package/progress-spinner/progress-spinner.component.d.ts +3 -3
  282. package/progress-spinner/progress-spinner.module.d.ts +4 -4
  283. package/progress-spinner/progress-spinner.scss +1 -0
  284. package/radio/_radio-theme.scss +2 -1
  285. package/radio/radio-tokens.scss +1 -0
  286. package/radio/radio.component.d.ts +10 -5
  287. package/radio/radio.module.d.ts +3 -3
  288. package/risk-level/risk-level.component.d.ts +4 -1
  289. package/risk-level/risk-level.module.d.ts +7 -4
  290. package/schematics/migrations/icons-replacement/README.md +5 -1
  291. package/schematics/migrations/icons-replacement/index.js +1 -1
  292. package/schematics/migrations/new-icons-pack/README.md +52 -4
  293. package/schematics/migrations/new-icons-pack/data.js +1142 -1142
  294. package/schematics/migrations/new-icons-pack/index.js +18 -7
  295. package/schematics/migrations/new-icons-pack/migration.json +4570 -0
  296. package/schematics/migrations/new-icons-pack/replacement.json +18 -0
  297. package/schematics/migrations/new-icons-pack/schema.json +13 -0
  298. package/schematics/ng-add/index.js +6 -7
  299. package/scrollbar/_scrollbar-component-theme.scss +16 -14
  300. package/select/select-option.directive.d.ts +1 -1
  301. package/select/select.component.d.ts +6 -5
  302. package/select/select.module.d.ts +10 -10
  303. package/sidebar/sidebar.component.d.ts +3 -3
  304. package/sidebar/sidebar.module.d.ts +3 -3
  305. package/sidepanel/sidepanel-container.component.d.ts +1 -1
  306. package/sidepanel/sidepanel-directives.d.ts +5 -5
  307. package/sidepanel/sidepanel.module.d.ts +9 -9
  308. package/splitter/splitter.component.d.ts +4 -4
  309. package/splitter/splitter.module.d.ts +3 -3
  310. package/table/_table-theme.scss +1 -0
  311. package/table/table.component.d.ts +2 -2
  312. package/table/table.module.d.ts +4 -4
  313. package/tabs/paginated-tab-header.d.ts +1 -1
  314. package/tabs/tab-body.component.d.ts +2 -2
  315. package/tabs/tab-content.directive.d.ts +1 -1
  316. package/tabs/tab-group.component.d.ts +5 -5
  317. package/tabs/tab-header.component.d.ts +1 -1
  318. package/tabs/tab-label-wrapper.directive.d.ts +1 -1
  319. package/tabs/tab-label.directive.d.ts +1 -1
  320. package/tabs/tab.component.d.ts +3 -3
  321. package/tabs/tabs.module.d.ts +15 -15
  322. package/tags/tag-input.d.ts +1 -1
  323. package/tags/tag-list.component.d.ts +1 -1
  324. package/tags/tag.component.d.ts +4 -4
  325. package/tags/tag.module.d.ts +4 -4
  326. package/textarea/textarea.component.d.ts +1 -1
  327. package/textarea/textarea.module.d.ts +4 -4
  328. package/timepicker/timepicker.directive.d.ts +17 -7
  329. package/timepicker/timepicker.module.d.ts +5 -5
  330. package/timezone/cities-by-filter.pipe.d.ts +1 -1
  331. package/timezone/timezone-option.component.d.ts +1 -1
  332. package/timezone/timezone-option.directive.d.ts +1 -1
  333. package/timezone/timezone-select.component.d.ts +2 -2
  334. package/timezone/timezone.module.d.ts +15 -15
  335. package/timezone/utc-offset.pipe.d.ts +1 -1
  336. package/title/title.directive.d.ts +4 -1
  337. package/title/title.module.d.ts +3 -3
  338. package/toggle/toggle.component.d.ts +1 -1
  339. package/toggle/toggle.module.d.ts +3 -3
  340. package/tooltip/_tooltip-theme.scss +5 -6
  341. package/tooltip/tooltip.component.d.ts +3 -3
  342. package/tooltip/tooltip.scss +1 -0
  343. package/top-bar/top-bar.d.ts +1 -1
  344. package/tree/node.d.ts +1 -1
  345. package/tree/outlet.d.ts +1 -1
  346. package/tree/padding.directive.d.ts +1 -1
  347. package/tree/toggle.d.ts +3 -3
  348. package/tree/tree-base.d.ts +2 -2
  349. package/tree/tree-option.component.d.ts +1 -1
  350. package/tree/tree-option.scss +1 -1
  351. package/tree/tree-selection.component.d.ts +1 -1
  352. package/tree/tree.d.ts +1 -1
  353. package/tree/tree.module.d.ts +11 -11
  354. package/tree-select/tree-select.component.d.ts +2 -2
  355. package/tree-select/tree-select.module.d.ts +9 -9
  356. package/core/common-behaviors/focus-monitor.d.ts +0 -19
  357. package/esm2022/accordion/accordion-content.mjs +0 -19
  358. package/esm2022/accordion/accordion-header.mjs +0 -19
  359. package/esm2022/accordion/accordion-item.mjs +0 -25
  360. package/esm2022/accordion/accordion-trigger.component.mjs +0 -48
  361. package/esm2022/accordion/accordion.component.mjs +0 -41
  362. package/esm2022/accordion/accordion.module.mjs +0 -44
  363. package/esm2022/accordion/index.mjs +0 -2
  364. package/esm2022/accordion/koobiq-components-accordion.mjs +0 -5
  365. package/esm2022/accordion/public-api.mjs +0 -7
  366. package/esm2022/actions-panel/actions-panel-config.mjs +0 -55
  367. package/esm2022/actions-panel/actions-panel-container.mjs +0 -217
  368. package/esm2022/actions-panel/actions-panel-ref.mjs +0 -78
  369. package/esm2022/actions-panel/actions-panel.mjs +0 -133
  370. package/esm2022/actions-panel/index.mjs +0 -6
  371. package/esm2022/actions-panel/koobiq-components-actions-panel.mjs +0 -5
  372. package/esm2022/actions-panel/module.mjs +0 -21
  373. package/esm2022/alert/alert.component.mjs +0 -124
  374. package/esm2022/alert/alert.module.mjs +0 -40
  375. package/esm2022/alert/index.mjs +0 -2
  376. package/esm2022/alert/koobiq-components-alert.mjs +0 -5
  377. package/esm2022/alert/public-api.mjs +0 -3
  378. package/esm2022/app-switcher/app-switcher-animations.mjs +0 -18
  379. package/esm2022/app-switcher/app-switcher-dropdown-app.mjs +0 -75
  380. package/esm2022/app-switcher/app-switcher-dropdown-site.mjs +0 -60
  381. package/esm2022/app-switcher/app-switcher.mjs +0 -446
  382. package/esm2022/app-switcher/app-switcher.module.mjs +0 -45
  383. package/esm2022/app-switcher/index.mjs +0 -2
  384. package/esm2022/app-switcher/kbq-app-switcher-list-item.mjs +0 -84
  385. package/esm2022/app-switcher/koobiq-components-app-switcher.mjs +0 -5
  386. package/esm2022/app-switcher/public-api.mjs +0 -7
  387. package/esm2022/autocomplete/autocomplete-origin.directive.mjs +0 -21
  388. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +0 -540
  389. package/esm2022/autocomplete/autocomplete.component.mjs +0 -178
  390. package/esm2022/autocomplete/autocomplete.module.mjs +0 -38
  391. package/esm2022/autocomplete/index.mjs +0 -2
  392. package/esm2022/autocomplete/koobiq-components-autocomplete.mjs +0 -5
  393. package/esm2022/autocomplete/public-api.mjs +0 -5
  394. package/esm2022/badge/badge.component.mjs +0 -124
  395. package/esm2022/badge/badge.module.mjs +0 -36
  396. package/esm2022/badge/index.mjs +0 -2
  397. package/esm2022/badge/koobiq-components-badge.mjs +0 -5
  398. package/esm2022/badge/public-api.mjs +0 -3
  399. package/esm2022/breadcrumbs/breadcrumbs.mjs +0 -268
  400. package/esm2022/breadcrumbs/breadcrumbs.module.mjs +0 -31
  401. package/esm2022/breadcrumbs/breadcrumbs.types.mjs +0 -2
  402. package/esm2022/breadcrumbs/index.mjs +0 -2
  403. package/esm2022/breadcrumbs/koobiq-components-breadcrumbs.mjs +0 -5
  404. package/esm2022/breadcrumbs/public-api.mjs +0 -4
  405. package/esm2022/button/button.component.mjs +0 -180
  406. package/esm2022/button/button.dropdown-trigger.directive.mjs +0 -28
  407. package/esm2022/button/button.module.mjs +0 -41
  408. package/esm2022/button/index.mjs +0 -2
  409. package/esm2022/button/koobiq-components-button.mjs +0 -5
  410. package/esm2022/button/public-api.mjs +0 -4
  411. package/esm2022/button-toggle/button-toggle.component.mjs +0 -384
  412. package/esm2022/button-toggle/button-toggle.module.mjs +0 -19
  413. package/esm2022/button-toggle/index.mjs +0 -2
  414. package/esm2022/button-toggle/koobiq-components-button-toggle.mjs +0 -5
  415. package/esm2022/button-toggle/public-api.mjs +0 -3
  416. package/esm2022/checkbox/checkbox-config.mjs +0 -6
  417. package/esm2022/checkbox/checkbox-module.mjs +0 -19
  418. package/esm2022/checkbox/checkbox-required-validator.mjs +0 -27
  419. package/esm2022/checkbox/checkbox.mjs +0 -295
  420. package/esm2022/checkbox/index.mjs +0 -2
  421. package/esm2022/checkbox/koobiq-components-checkbox.mjs +0 -5
  422. package/esm2022/checkbox/public-api.mjs +0 -5
  423. package/esm2022/clamped-text/clamped-text.mjs +0 -202
  424. package/esm2022/clamped-text/constants.mjs +0 -20
  425. package/esm2022/clamped-text/index.mjs +0 -4
  426. package/esm2022/clamped-text/koobiq-components-clamped-text.mjs +0 -5
  427. package/esm2022/clamped-text/module.mjs +0 -19
  428. package/esm2022/code-block/code-block-highlight.mjs +0 -418
  429. package/esm2022/code-block/code-block.mjs +0 -440
  430. package/esm2022/code-block/code-block.module.mjs +0 -19
  431. package/esm2022/code-block/index.mjs +0 -2
  432. package/esm2022/code-block/koobiq-components-code-block.mjs +0 -5
  433. package/esm2022/code-block/public-api.mjs +0 -5
  434. package/esm2022/code-block/types.mjs +0 -2
  435. package/esm2022/content-panel/content-panel.mjs +0 -432
  436. package/esm2022/content-panel/index.mjs +0 -3
  437. package/esm2022/content-panel/koobiq-components-content-panel.mjs +0 -5
  438. package/esm2022/content-panel/module.mjs +0 -42
  439. package/esm2022/core/animation/animation.mjs +0 -39
  440. package/esm2022/core/animation/fade-animations.mjs +0 -9
  441. package/esm2022/core/animation/index.mjs +0 -4
  442. package/esm2022/core/animation/select-animations.mjs +0 -45
  443. package/esm2022/core/common-behaviors/checkbox.mjs +0 -2
  444. package/esm2022/core/common-behaviors/clipboard.mjs +0 -31
  445. package/esm2022/core/common-behaviors/color.mjs +0 -89
  446. package/esm2022/core/common-behaviors/common-module.mjs +0 -76
  447. package/esm2022/core/common-behaviors/constructor.mjs +0 -2
  448. package/esm2022/core/common-behaviors/disabled.mjs +0 -19
  449. package/esm2022/core/common-behaviors/error-state.mjs +0 -50
  450. package/esm2022/core/common-behaviors/focus-monitor.mjs +0 -37
  451. package/esm2022/core/common-behaviors/hover.mjs +0 -34
  452. package/esm2022/core/common-behaviors/index.mjs +0 -14
  453. package/esm2022/core/common-behaviors/orientation.mjs +0 -2
  454. package/esm2022/core/common-behaviors/read-state.mjs +0 -33
  455. package/esm2022/core/common-behaviors/size.mjs +0 -2
  456. package/esm2022/core/common-behaviors/tabindex.mjs +0 -20
  457. package/esm2022/core/datetime/date-adapter.mjs +0 -14
  458. package/esm2022/core/datetime/date-formats.mjs +0 -3
  459. package/esm2022/core/datetime/index.mjs +0 -3
  460. package/esm2022/core/error/error-state-matcher.mjs +0 -56
  461. package/esm2022/core/form-field/field-sizing-content.mjs +0 -117
  462. package/esm2022/core/form-field/form-field-ref.mjs +0 -10
  463. package/esm2022/core/form-field/index.mjs +0 -3
  464. package/esm2022/core/formatters/date/formatter.mjs +0 -25
  465. package/esm2022/core/formatters/date/formatter.pipe.mjs +0 -380
  466. package/esm2022/core/formatters/filesize/config.mjs +0 -32
  467. package/esm2022/core/formatters/filesize/formatter.mjs +0 -43
  468. package/esm2022/core/formatters/filesize/index.mjs +0 -4
  469. package/esm2022/core/formatters/filesize/size.mjs +0 -65
  470. package/esm2022/core/formatters/index.mjs +0 -146
  471. package/esm2022/core/formatters/number/formatter.mjs +0 -347
  472. package/esm2022/core/forms/forms-module.mjs +0 -24
  473. package/esm2022/core/forms/forms.directive.mjs +0 -66
  474. package/esm2022/core/forms/index.mjs +0 -4
  475. package/esm2022/core/forms/validators.mjs +0 -184
  476. package/esm2022/core/highlight/highlight.pipe.mjs +0 -23
  477. package/esm2022/core/highlight/index.mjs +0 -19
  478. package/esm2022/core/index.mjs +0 -2
  479. package/esm2022/core/koobiq-components-core.mjs +0 -5
  480. package/esm2022/core/line/line.mjs +0 -70
  481. package/esm2022/core/locales/en-US.mjs +0 -210
  482. package/esm2022/core/locales/es-LA.mjs +0 -209
  483. package/esm2022/core/locales/formatters.mjs +0 -193
  484. package/esm2022/core/locales/index.mjs +0 -10
  485. package/esm2022/core/locales/locale-service.mjs +0 -173
  486. package/esm2022/core/locales/locale-service.module.mjs +0 -19
  487. package/esm2022/core/locales/pt-BR.mjs +0 -209
  488. package/esm2022/core/locales/ru-RU.mjs +0 -224
  489. package/esm2022/core/locales/tk-TM.mjs +0 -210
  490. package/esm2022/core/locales/types.mjs +0 -2
  491. package/esm2022/core/navbar/index.mjs +0 -2
  492. package/esm2022/core/navbar/rectangle-item.mjs +0 -40
  493. package/esm2022/core/option/action-container.mjs +0 -23
  494. package/esm2022/core/option/action.mjs +0 -107
  495. package/esm2022/core/option/index.mjs +0 -6
  496. package/esm2022/core/option/optgroup.mjs +0 -37
  497. package/esm2022/core/option/option-module.mjs +0 -20
  498. package/esm2022/core/option/option.mjs +0 -322
  499. package/esm2022/core/overlay/overlay-position-map.mjs +0 -251
  500. package/esm2022/core/pop-up/constants.mjs +0 -55
  501. package/esm2022/core/pop-up/focus-trap-strategy.mjs +0 -6
  502. package/esm2022/core/pop-up/index.mjs +0 -6
  503. package/esm2022/core/pop-up/pop-up-styles.mjs +0 -24
  504. package/esm2022/core/pop-up/pop-up-trigger.mjs +0 -343
  505. package/esm2022/core/pop-up/pop-up.mjs +0 -152
  506. package/esm2022/core/public-api.mjs +0 -24
  507. package/esm2022/core/select/common.mjs +0 -203
  508. package/esm2022/core/select/constants.mjs +0 -25
  509. package/esm2022/core/select/errors.mjs +0 -26
  510. package/esm2022/core/select/events.mjs +0 -2
  511. package/esm2022/core/select/index.mjs +0 -5
  512. package/esm2022/core/selection/constants.mjs +0 -6
  513. package/esm2022/core/selection/index.mjs +0 -4
  514. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +0 -43
  515. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +0 -18
  516. package/esm2022/core/services/measure-scrollbar.service.mjs +0 -42
  517. package/esm2022/core/services/theme.service.mjs +0 -80
  518. package/esm2022/core/title/index.mjs +0 -2
  519. package/esm2022/core/title/title-text-ref.mjs +0 -3
  520. package/esm2022/core/tokens/index.mjs +0 -2
  521. package/esm2022/core/tokens/window.mjs +0 -19
  522. package/esm2022/core/utils/dom.mjs +0 -8
  523. package/esm2022/core/utils/index.mjs +0 -3
  524. package/esm2022/core/utils/public-api.mjs +0 -2
  525. package/esm2022/core/utils/utils.mjs +0 -31
  526. package/esm2022/core/validation/index.mjs +0 -2
  527. package/esm2022/core/validation/validation.mjs +0 -27
  528. package/esm2022/core/version.mjs +0 -3
  529. package/esm2022/datepicker/calendar-body.component.mjs +0 -87
  530. package/esm2022/datepicker/calendar-header.component.mjs +0 -164
  531. package/esm2022/datepicker/calendar.component.mjs +0 -185
  532. package/esm2022/datepicker/datepicker-animations.mjs +0 -32
  533. package/esm2022/datepicker/datepicker-errors.mjs +0 -6
  534. package/esm2022/datepicker/datepicker-input.directive.mjs +0 -1119
  535. package/esm2022/datepicker/datepicker-intl.mjs +0 -40
  536. package/esm2022/datepicker/datepicker-module.mjs +0 -103
  537. package/esm2022/datepicker/datepicker-toggle.component.mjs +0 -170
  538. package/esm2022/datepicker/datepicker.component.mjs +0 -388
  539. package/esm2022/datepicker/index.mjs +0 -2
  540. package/esm2022/datepicker/koobiq-components-datepicker.mjs +0 -5
  541. package/esm2022/datepicker/month-view.component.mjs +0 -148
  542. package/esm2022/datepicker/public-api.mjs +0 -11
  543. package/esm2022/divider/divider.component.mjs +0 -49
  544. package/esm2022/divider/divider.module.mjs +0 -18
  545. package/esm2022/divider/index.mjs +0 -2
  546. package/esm2022/divider/koobiq-components-divider.mjs +0 -5
  547. package/esm2022/divider/public-api.mjs +0 -3
  548. package/esm2022/dl/dl.component.mjs +0 -81
  549. package/esm2022/dl/dl.module.mjs +0 -36
  550. package/esm2022/dl/index.mjs +0 -2
  551. package/esm2022/dl/koobiq-components-dl.mjs +0 -5
  552. package/esm2022/dl/public-api.mjs +0 -3
  553. package/esm2022/dropdown/dropdown-animations.mjs +0 -41
  554. package/esm2022/dropdown/dropdown-content.directive.mjs +0 -61
  555. package/esm2022/dropdown/dropdown-errors.mjs +0 -29
  556. package/esm2022/dropdown/dropdown-item.component.mjs +0 -150
  557. package/esm2022/dropdown/dropdown-trigger.directive.mjs +0 -513
  558. package/esm2022/dropdown/dropdown.component.mjs +0 -293
  559. package/esm2022/dropdown/dropdown.module.mjs +0 -51
  560. package/esm2022/dropdown/dropdown.types.mjs +0 -23
  561. package/esm2022/dropdown/index.mjs +0 -2
  562. package/esm2022/dropdown/koobiq-components-dropdown.mjs +0 -5
  563. package/esm2022/dropdown/public-api.mjs +0 -9
  564. package/esm2022/dynamic-translation/dynamic-translation.mjs +0 -175
  565. package/esm2022/dynamic-translation/index.mjs +0 -3
  566. package/esm2022/dynamic-translation/koobiq-components-dynamic-translation.mjs +0 -5
  567. package/esm2022/dynamic-translation/module.mjs +0 -25
  568. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +0 -120
  569. package/esm2022/ellipsis-center/index.mjs +0 -2
  570. package/esm2022/ellipsis-center/koobiq-components-ellipsis-center.mjs +0 -5
  571. package/esm2022/ellipsis-center/public-api.mjs +0 -2
  572. package/esm2022/empty-state/empty-state.component.mjs +0 -109
  573. package/esm2022/empty-state/empty-state.module.mjs +0 -44
  574. package/esm2022/empty-state/index.mjs +0 -2
  575. package/esm2022/empty-state/koobiq-components-empty-state.mjs +0 -5
  576. package/esm2022/empty-state/public-api.mjs +0 -3
  577. package/esm2022/file-upload/file-drop.mjs +0 -87
  578. package/esm2022/file-upload/file-upload.mjs +0 -71
  579. package/esm2022/file-upload/file-upload.module.mjs +0 -79
  580. package/esm2022/file-upload/index.mjs +0 -2
  581. package/esm2022/file-upload/koobiq-components-file-upload.mjs +0 -5
  582. package/esm2022/file-upload/multiple-file-upload.component.mjs +0 -306
  583. package/esm2022/file-upload/public-api.mjs +0 -6
  584. package/esm2022/file-upload/single-file-upload.component.mjs +0 -257
  585. package/esm2022/filter-bar/filter-bar-button.mjs +0 -31
  586. package/esm2022/filter-bar/filter-bar.mjs +0 -213
  587. package/esm2022/filter-bar/filter-bar.module.mjs +0 -67
  588. package/esm2022/filter-bar/filter-bar.types.mjs +0 -72
  589. package/esm2022/filter-bar/filter-refresher.mjs +0 -34
  590. package/esm2022/filter-bar/filter-reset.mjs +0 -49
  591. package/esm2022/filter-bar/filter-search.mjs +0 -173
  592. package/esm2022/filter-bar/filters.mjs +0 -266
  593. package/esm2022/filter-bar/index.mjs +0 -2
  594. package/esm2022/filter-bar/koobiq-components-filter-bar.mjs +0 -5
  595. package/esm2022/filter-bar/pipe-add.mjs +0 -140
  596. package/esm2022/filter-bar/pipe.directive.mjs +0 -37
  597. package/esm2022/filter-bar/pipes/base-pipe.mjs +0 -146
  598. package/esm2022/filter-bar/pipes/pipe-button.mjs +0 -72
  599. package/esm2022/filter-bar/pipes/pipe-date.mjs +0 -206
  600. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +0 -208
  601. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +0 -188
  602. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +0 -260
  603. package/esm2022/filter-bar/pipes/pipe-readonly.mjs +0 -68
  604. package/esm2022/filter-bar/pipes/pipe-select.mjs +0 -101
  605. package/esm2022/filter-bar/pipes/pipe-state.mjs +0 -53
  606. package/esm2022/filter-bar/pipes/pipe-text.mjs +0 -104
  607. package/esm2022/filter-bar/pipes/pipe-title.mjs +0 -102
  608. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +0 -142
  609. package/esm2022/filter-bar/public-api.mjs +0 -22
  610. package/esm2022/form-field/cleaner.mjs +0 -28
  611. package/esm2022/form-field/error.mjs +0 -20
  612. package/esm2022/form-field/fieldset.mjs +0 -84
  613. package/esm2022/form-field/form-field-control.mjs +0 -4
  614. package/esm2022/form-field/form-field.mjs +0 -447
  615. package/esm2022/form-field/form-field.module.mjs +0 -87
  616. package/esm2022/form-field/hint.mjs +0 -36
  617. package/esm2022/form-field/index.mjs +0 -2
  618. package/esm2022/form-field/koobiq-components-form-field.mjs +0 -5
  619. package/esm2022/form-field/label.mjs +0 -19
  620. package/esm2022/form-field/password-hint.mjs +0 -165
  621. package/esm2022/form-field/password-toggle.mjs +0 -129
  622. package/esm2022/form-field/prefix.mjs +0 -19
  623. package/esm2022/form-field/public-api.mjs +0 -16
  624. package/esm2022/form-field/reactive-password-hint.mjs +0 -66
  625. package/esm2022/form-field/stepper.mjs +0 -144
  626. package/esm2022/form-field/suffix.mjs +0 -18
  627. package/esm2022/form-field/validate.directive.mjs +0 -190
  628. package/esm2022/icon/icon-button.component.mjs +0 -64
  629. package/esm2022/icon/icon-item.component.mjs +0 -31
  630. package/esm2022/icon/icon.component.mjs +0 -56
  631. package/esm2022/icon/icon.module.mjs +0 -27
  632. package/esm2022/icon/index.mjs +0 -2
  633. package/esm2022/icon/koobiq-components-icon.mjs +0 -5
  634. package/esm2022/icon/public-api.mjs +0 -5
  635. package/esm2022/index.mjs +0 -2
  636. package/esm2022/inline-edit/index.mjs +0 -3
  637. package/esm2022/inline-edit/inline-edit.mjs +0 -382
  638. package/esm2022/inline-edit/koobiq-components-inline-edit.mjs +0 -5
  639. package/esm2022/inline-edit/module.mjs +0 -25
  640. package/esm2022/input/index.mjs +0 -2
  641. package/esm2022/input/input-errors.mjs +0 -4
  642. package/esm2022/input/input-number-validators.mjs +0 -88
  643. package/esm2022/input/input-number.mjs +0 -386
  644. package/esm2022/input/input-password.mjs +0 -253
  645. package/esm2022/input/input-value-accessor.mjs +0 -3
  646. package/esm2022/input/input.mjs +0 -299
  647. package/esm2022/input/input.module.mjs +0 -58
  648. package/esm2022/input/koobiq-components-input.mjs +0 -5
  649. package/esm2022/input/public-api.mjs +0 -7
  650. package/esm2022/koobiq-components.mjs +0 -5
  651. package/esm2022/link/index.mjs +0 -2
  652. package/esm2022/link/koobiq-components-link.mjs +0 -5
  653. package/esm2022/link/link.component.mjs +0 -143
  654. package/esm2022/link/link.module.mjs +0 -20
  655. package/esm2022/link/public-api.mjs +0 -3
  656. package/esm2022/list/index.mjs +0 -2
  657. package/esm2022/list/koobiq-components-list.mjs +0 -5
  658. package/esm2022/list/list-selection.component.mjs +0 -745
  659. package/esm2022/list/list.component.mjs +0 -43
  660. package/esm2022/list/list.module.mjs +0 -60
  661. package/esm2022/list/public-api.mjs +0 -4
  662. package/esm2022/loader-overlay/index.mjs +0 -2
  663. package/esm2022/loader-overlay/koobiq-components-loader-overlay.mjs +0 -5
  664. package/esm2022/loader-overlay/loader-overlay.component.mjs +0 -110
  665. package/esm2022/loader-overlay/loader-overlay.module.mjs +0 -44
  666. package/esm2022/loader-overlay/public-api.mjs +0 -3
  667. package/esm2022/markdown/index.mjs +0 -2
  668. package/esm2022/markdown/koobiq-components-markdown.mjs +0 -5
  669. package/esm2022/markdown/markdown.component.mjs +0 -67
  670. package/esm2022/markdown/markdown.module.mjs +0 -21
  671. package/esm2022/markdown/markdown.service.mjs +0 -36
  672. package/esm2022/markdown/markdown.values.mjs +0 -35
  673. package/esm2022/markdown/public-api.mjs +0 -5
  674. package/esm2022/modal/css-unit.pipe.mjs +0 -17
  675. package/esm2022/modal/index.mjs +0 -2
  676. package/esm2022/modal/koobiq-components-modal.mjs +0 -5
  677. package/esm2022/modal/modal-control.service.mjs +0 -89
  678. package/esm2022/modal/modal-ref.class.mjs +0 -7
  679. package/esm2022/modal/modal-util.mjs +0 -22
  680. package/esm2022/modal/modal.component.mjs +0 -540
  681. package/esm2022/modal/modal.directive.mjs +0 -94
  682. package/esm2022/modal/modal.module.mjs +0 -78
  683. package/esm2022/modal/modal.service.mjs +0 -135
  684. package/esm2022/modal/modal.type.mjs +0 -7
  685. package/esm2022/modal/public-api.mjs +0 -7
  686. package/esm2022/navbar/index.mjs +0 -2
  687. package/esm2022/navbar/koobiq-components-navbar.mjs +0 -5
  688. package/esm2022/navbar/navbar-brand.component.mjs +0 -105
  689. package/esm2022/navbar/navbar-item.component.mjs +0 -428
  690. package/esm2022/navbar/navbar-toggle.component.mjs +0 -88
  691. package/esm2022/navbar/navbar.component.mjs +0 -251
  692. package/esm2022/navbar/navbar.module.mjs +0 -84
  693. package/esm2022/navbar/public-api.mjs +0 -7
  694. package/esm2022/navbar/vertical-navbar.component.mjs +0 -128
  695. package/esm2022/navbar-ic/index.mjs +0 -2
  696. package/esm2022/navbar-ic/koobiq-components-navbar-ic.mjs +0 -5
  697. package/esm2022/navbar-ic/navbar-ic-header.mjs +0 -74
  698. package/esm2022/navbar-ic/navbar-ic-item.mjs +0 -390
  699. package/esm2022/navbar-ic/navbar-ic.animation.mjs +0 -17
  700. package/esm2022/navbar-ic/navbar-ic.mjs +0 -310
  701. package/esm2022/navbar-ic/navbar-ic.module.mjs +0 -74
  702. package/esm2022/navbar-ic/public-api.mjs +0 -5
  703. package/esm2022/notification-center/index.mjs +0 -2
  704. package/esm2022/notification-center/koobiq-components-notification-center.mjs +0 -5
  705. package/esm2022/notification-center/notification-center-animations.mjs +0 -18
  706. package/esm2022/notification-center/notification-center.mjs +0 -329
  707. package/esm2022/notification-center/notification-center.module.mjs +0 -38
  708. package/esm2022/notification-center/notification-center.service.mjs +0 -127
  709. package/esm2022/notification-center/notification-item.mjs +0 -70
  710. package/esm2022/notification-center/public-api.mjs +0 -5
  711. package/esm2022/overflow-items/index.mjs +0 -3
  712. package/esm2022/overflow-items/koobiq-components-overflow-items.mjs +0 -5
  713. package/esm2022/overflow-items/module.mjs +0 -25
  714. package/esm2022/overflow-items/overflow-items.mjs +0 -290
  715. package/esm2022/popover/index.mjs +0 -2
  716. package/esm2022/popover/koobiq-components-popover.mjs +0 -5
  717. package/esm2022/popover/popover-animations.mjs +0 -16
  718. package/esm2022/popover/popover-confirm.component.mjs +0 -97
  719. package/esm2022/popover/popover.component.mjs +0 -410
  720. package/esm2022/popover/popover.module.mjs +0 -67
  721. package/esm2022/popover/public-api.mjs +0 -5
  722. package/esm2022/progress-bar/index.mjs +0 -2
  723. package/esm2022/progress-bar/koobiq-components-progress-bar.mjs +0 -5
  724. package/esm2022/progress-bar/progress-bar.component.mjs +0 -62
  725. package/esm2022/progress-bar/progress-bar.module.mjs +0 -32
  726. package/esm2022/progress-bar/public-api.mjs +0 -3
  727. package/esm2022/progress-spinner/index.mjs +0 -2
  728. package/esm2022/progress-spinner/koobiq-components-progress-spinner.mjs +0 -5
  729. package/esm2022/progress-spinner/progress-spinner.component.mjs +0 -78
  730. package/esm2022/progress-spinner/progress-spinner.module.mjs +0 -35
  731. package/esm2022/progress-spinner/public-api.mjs +0 -3
  732. package/esm2022/public-api.mjs +0 -2
  733. package/esm2022/radio/index.mjs +0 -2
  734. package/esm2022/radio/koobiq-components-radio.mjs +0 -5
  735. package/esm2022/radio/public-api.mjs +0 -3
  736. package/esm2022/radio/radio.component.mjs +0 -451
  737. package/esm2022/radio/radio.module.mjs +0 -18
  738. package/esm2022/resizer/index.mjs +0 -3
  739. package/esm2022/resizer/koobiq-components-resizer.mjs +0 -5
  740. package/esm2022/resizer/module.mjs +0 -17
  741. package/esm2022/resizer/resizer.mjs +0 -135
  742. package/esm2022/risk-level/index.mjs +0 -2
  743. package/esm2022/risk-level/koobiq-components-risk-level.mjs +0 -5
  744. package/esm2022/risk-level/public-api.mjs +0 -3
  745. package/esm2022/risk-level/risk-level.component.mjs +0 -40
  746. package/esm2022/risk-level/risk-level.module.mjs +0 -24
  747. package/esm2022/scrollbar/index.mjs +0 -2
  748. package/esm2022/scrollbar/koobiq-components-scrollbar.mjs +0 -5
  749. package/esm2022/scrollbar/public-api.mjs +0 -5
  750. package/esm2022/scrollbar/scrollbar.component.mjs +0 -133
  751. package/esm2022/scrollbar/scrollbar.directive.mjs +0 -105
  752. package/esm2022/scrollbar/scrollbar.module.mjs +0 -25
  753. package/esm2022/scrollbar/scrollbar.types.mjs +0 -14
  754. package/esm2022/search-expandable/index.mjs +0 -2
  755. package/esm2022/search-expandable/koobiq-components-search-expandable.mjs +0 -5
  756. package/esm2022/search-expandable/public-api.mjs +0 -3
  757. package/esm2022/search-expandable/search-expandable.mjs +0 -177
  758. package/esm2022/search-expandable/search-expandable.module.mjs +0 -18
  759. package/esm2022/select/index.mjs +0 -2
  760. package/esm2022/select/koobiq-components-select.mjs +0 -5
  761. package/esm2022/select/public-api.mjs +0 -4
  762. package/esm2022/select/select-option.directive.mjs +0 -69
  763. package/esm2022/select/select.component.mjs +0 -1154
  764. package/esm2022/select/select.module.mjs +0 -81
  765. package/esm2022/sidebar/index.mjs +0 -2
  766. package/esm2022/sidebar/koobiq-components-sidebar.mjs +0 -5
  767. package/esm2022/sidebar/public-api.mjs +0 -3
  768. package/esm2022/sidebar/sidebar-animations.mjs +0 -23
  769. package/esm2022/sidebar/sidebar.component.mjs +0 -169
  770. package/esm2022/sidebar/sidebar.module.mjs +0 -30
  771. package/esm2022/sidepanel/index.mjs +0 -2
  772. package/esm2022/sidepanel/koobiq-components-sidepanel.mjs +0 -5
  773. package/esm2022/sidepanel/public-api.mjs +0 -7
  774. package/esm2022/sidepanel/sidepanel-animations.mjs +0 -29
  775. package/esm2022/sidepanel/sidepanel-config.mjs +0 -33
  776. package/esm2022/sidepanel/sidepanel-container.component.mjs +0 -126
  777. package/esm2022/sidepanel/sidepanel-directives.mjs +0 -168
  778. package/esm2022/sidepanel/sidepanel-ref.mjs +0 -60
  779. package/esm2022/sidepanel/sidepanel.module.mjs +0 -73
  780. package/esm2022/sidepanel/sidepanel.service.mjs +0 -167
  781. package/esm2022/split-button/index.mjs +0 -2
  782. package/esm2022/split-button/koobiq-components-split-button.mjs +0 -5
  783. package/esm2022/split-button/public-api.mjs +0 -3
  784. package/esm2022/split-button/split-button.mjs +0 -133
  785. package/esm2022/split-button/split-button.module.mjs +0 -18
  786. package/esm2022/splitter/index.mjs +0 -2
  787. package/esm2022/splitter/koobiq-components-splitter.mjs +0 -5
  788. package/esm2022/splitter/public-api.mjs +0 -3
  789. package/esm2022/splitter/splitter.component.mjs +0 -492
  790. package/esm2022/splitter/splitter.module.mjs +0 -34
  791. package/esm2022/table/index.mjs +0 -2
  792. package/esm2022/table/koobiq-components-table.mjs +0 -5
  793. package/esm2022/table/public-api.mjs +0 -3
  794. package/esm2022/table/table.component.mjs +0 -36
  795. package/esm2022/table/table.module.mjs +0 -32
  796. package/esm2022/tabs/index.mjs +0 -2
  797. package/esm2022/tabs/koobiq-components-tabs.mjs +0 -5
  798. package/esm2022/tabs/paginated-tab-header.mjs +0 -490
  799. package/esm2022/tabs/public-api.mjs +0 -11
  800. package/esm2022/tabs/tab-body.component.mjs +0 -178
  801. package/esm2022/tabs/tab-content.directive.mjs +0 -15
  802. package/esm2022/tabs/tab-group.component.mjs +0 -384
  803. package/esm2022/tabs/tab-header.component.mjs +0 -60
  804. package/esm2022/tabs/tab-label-wrapper.directive.mjs +0 -86
  805. package/esm2022/tabs/tab-label.directive.mjs +0 -17
  806. package/esm2022/tabs/tab-nav-bar.mjs +0 -292
  807. package/esm2022/tabs/tab.component.mjs +0 -145
  808. package/esm2022/tabs/tabs-animations.mjs +0 -24
  809. package/esm2022/tabs/tabs.module.mjs +0 -95
  810. package/esm2022/tags/index.mjs +0 -2
  811. package/esm2022/tags/koobiq-components-tags.mjs +0 -5
  812. package/esm2022/tags/public-api.mjs +0 -6
  813. package/esm2022/tags/tag-default-options.mjs +0 -4
  814. package/esm2022/tags/tag-input.mjs +0 -281
  815. package/esm2022/tags/tag-list.component.mjs +0 -765
  816. package/esm2022/tags/tag-text-control.mjs +0 -2
  817. package/esm2022/tags/tag.component.mjs +0 -647
  818. package/esm2022/tags/tag.module.mjs +0 -67
  819. package/esm2022/textarea/index.mjs +0 -2
  820. package/esm2022/textarea/koobiq-components-textarea.mjs +0 -5
  821. package/esm2022/textarea/public-api.mjs +0 -3
  822. package/esm2022/textarea/textarea.component.mjs +0 -300
  823. package/esm2022/textarea/textarea.module.mjs +0 -20
  824. package/esm2022/time-range/constants.mjs +0 -42
  825. package/esm2022/time-range/index.mjs +0 -8
  826. package/esm2022/time-range/koobiq-components-time-range.mjs +0 -5
  827. package/esm2022/time-range/module.mjs +0 -36
  828. package/esm2022/time-range/time-range-editor.mjs +0 -224
  829. package/esm2022/time-range/time-range-title-as-form-field.mjs +0 -60
  830. package/esm2022/time-range/time-range-title.mjs +0 -112
  831. package/esm2022/time-range/time-range.mjs +0 -234
  832. package/esm2022/time-range/time-range.service.mjs +0 -126
  833. package/esm2022/time-range/types.mjs +0 -2
  834. package/esm2022/timepicker/index.mjs +0 -2
  835. package/esm2022/timepicker/koobiq-components-timepicker.mjs +0 -5
  836. package/esm2022/timepicker/public-api.mjs +0 -4
  837. package/esm2022/timepicker/timepicker.constants.mjs +0 -29
  838. package/esm2022/timepicker/timepicker.directive.mjs +0 -686
  839. package/esm2022/timepicker/timepicker.module.mjs +0 -29
  840. package/esm2022/timezone/cities-by-filter.pipe.mjs +0 -17
  841. package/esm2022/timezone/index.mjs +0 -2
  842. package/esm2022/timezone/koobiq-components-timezone.mjs +0 -5
  843. package/esm2022/timezone/public-api.mjs +0 -7
  844. package/esm2022/timezone/timezone-option.component.mjs +0 -50
  845. package/esm2022/timezone/timezone-option.directive.mjs +0 -54
  846. package/esm2022/timezone/timezone-select.component.mjs +0 -55
  847. package/esm2022/timezone/timezone.models.mjs +0 -2
  848. package/esm2022/timezone/timezone.module.mjs +0 -82
  849. package/esm2022/timezone/timezone.utils.mjs +0 -80
  850. package/esm2022/timezone/utc-offset.pipe.mjs +0 -17
  851. package/esm2022/title/index.mjs +0 -2
  852. package/esm2022/title/koobiq-components-title.mjs +0 -5
  853. package/esm2022/title/public-api.mjs +0 -3
  854. package/esm2022/title/title.directive.mjs +0 -108
  855. package/esm2022/title/title.module.mjs +0 -18
  856. package/esm2022/toast/index.mjs +0 -2
  857. package/esm2022/toast/koobiq-components-toast.mjs +0 -5
  858. package/esm2022/toast/public-api.mjs +0 -6
  859. package/esm2022/toast/toast-animations.mjs +0 -10
  860. package/esm2022/toast/toast-container.component.mjs +0 -57
  861. package/esm2022/toast/toast.component.mjs +0 -125
  862. package/esm2022/toast/toast.module.mjs +0 -26
  863. package/esm2022/toast/toast.service.mjs +0 -197
  864. package/esm2022/toast/toast.type.mjs +0 -39
  865. package/esm2022/toggle/index.mjs +0 -2
  866. package/esm2022/toggle/koobiq-components-toggle.mjs +0 -5
  867. package/esm2022/toggle/public-api.mjs +0 -3
  868. package/esm2022/toggle/toggle.component.mjs +0 -254
  869. package/esm2022/toggle/toggle.module.mjs +0 -18
  870. package/esm2022/tooltip/index.mjs +0 -2
  871. package/esm2022/tooltip/koobiq-components-tooltip.mjs +0 -5
  872. package/esm2022/tooltip/public-api.mjs +0 -3
  873. package/esm2022/tooltip/tooltip.animations.mjs +0 -19
  874. package/esm2022/tooltip/tooltip.component.mjs +0 -400
  875. package/esm2022/tooltip/tooltip.module.mjs +0 -35
  876. package/esm2022/top-bar/index.mjs +0 -2
  877. package/esm2022/top-bar/koobiq-components-top-bar.mjs +0 -5
  878. package/esm2022/top-bar/module.mjs +0 -25
  879. package/esm2022/top-bar/public-api.mjs +0 -3
  880. package/esm2022/top-bar/top-bar.mjs +0 -74
  881. package/esm2022/tree/control/base-tree-control.mjs +0 -59
  882. package/esm2022/tree/control/flat-tree-control.filters.mjs +0 -52
  883. package/esm2022/tree/control/flat-tree-control.mjs +0 -109
  884. package/esm2022/tree/control/nested-tree-control.mjs +0 -40
  885. package/esm2022/tree/control/tree-control.mjs +0 -2
  886. package/esm2022/tree/data-source/flat-data-source.mjs +0 -157
  887. package/esm2022/tree/data-source/nested-data-source.mjs +0 -28
  888. package/esm2022/tree/index.mjs +0 -2
  889. package/esm2022/tree/koobiq-components-tree.mjs +0 -5
  890. package/esm2022/tree/node.mjs +0 -31
  891. package/esm2022/tree/outlet.mjs +0 -15
  892. package/esm2022/tree/padding.directive.mjs +0 -108
  893. package/esm2022/tree/public-api.mjs +0 -17
  894. package/esm2022/tree/toggle.mjs +0 -93
  895. package/esm2022/tree/tree-base.mjs +0 -236
  896. package/esm2022/tree/tree-errors.mjs +0 -36
  897. package/esm2022/tree/tree-option.component.mjs +0 -303
  898. package/esm2022/tree/tree-selection.component.mjs +0 -568
  899. package/esm2022/tree/tree.mjs +0 -19
  900. package/esm2022/tree/tree.module.mjs +0 -64
  901. package/esm2022/tree-select/index.mjs +0 -2
  902. package/esm2022/tree-select/koobiq-components-tree-select.mjs +0 -5
  903. package/esm2022/tree-select/public-api.mjs +0 -3
  904. package/esm2022/tree-select/tree-select.component.mjs +0 -1034
  905. package/esm2022/tree-select/tree-select.module.mjs +0 -71
  906. package/esm2022/username/constants.mjs +0 -25
  907. package/esm2022/username/index.mjs +0 -6
  908. package/esm2022/username/koobiq-components-username.mjs +0 -5
  909. package/esm2022/username/module.mjs +0 -35
  910. package/esm2022/username/types.mjs +0 -32
  911. package/esm2022/username/username.mjs +0 -129
  912. package/esm2022/username/username.pipe.mjs +0 -92
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-select.mjs","sources":["../../../packages/components/select/select-option.directive.ts","../../../packages/components/select/select.component.ts","../../../packages/components/select/select.html","../../../packages/components/select/select.module.ts","../../../packages/components/select/koobiq-components-select.ts"],"sourcesContent":["import { ContentObserver } from '@angular/cdk/observers';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { AfterViewInit, Directive, inject, OnDestroy } from '@angular/core';\nimport { KbqOption } from '@koobiq/components/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: 'kbq-option',\n host: {\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()'\n }\n})\nexport class KbqOptionTooltip extends KbqTooltipTrigger implements AfterViewInit, OnDestroy {\n private resizeObserver = inject(SharedResizeObserver);\n private resizeObserverSubscription: Subscription | null = null;\n\n private contentObserver = inject(ContentObserver);\n private contentObserverSubscription: Subscription | null = null;\n\n get textElement(): HTMLElement {\n return this.option.textElement.nativeElement;\n }\n\n get isOverflown(): boolean {\n return this.textElement.clientWidth < this.textElement.scrollWidth;\n }\n\n constructor(private option: KbqOption) {\n super();\n }\n\n ngAfterViewInit() {\n this.content = this.option.viewValue;\n\n this.contentObserverSubscription = this.contentObserver\n .observe(this.textElement)\n .subscribe(() => (this.content = this.option.viewValue));\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n\n this.resizeObserverSubscription?.unsubscribe();\n this.contentObserverSubscription?.unsubscribe();\n }\n\n onMouseEnter() {\n this.resizeObserverSubscription = this.resizeObserver\n .observe(this.textElement)\n .subscribe(() => (this.disabled = !this.isOverflown));\n\n this.disabled = !this.isOverflown;\n }\n\n onMouseLeave() {\n this.resizeObserverSubscription?.unsubscribe();\n\n this.disabled = true;\n }\n\n onFocus() {\n this.disabled = !this.isOverflown;\n\n if (!this.disabled) {\n this.show();\n }\n }\n\n onBlur() {\n this.disabled = true;\n this.hide();\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedPosition, OverlayContainer } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { CdkVirtualForOf } from '@angular/cdk/scrolling';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n DoCheck,\n ElementRef,\n EventEmitter,\n Host,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Provider,\n QueryList,\n Renderer2,\n Self,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n isDevMode,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport { ActiveDescendantKeyManager } from '@koobiq/cdk/a11y';\nimport {\n A,\n BACKSPACE,\n DELETE,\n DOWN_ARROW,\n END,\n ENTER,\n ESCAPE,\n HOME,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SPACE,\n TAB,\n UP_ARROW\n} from '@koobiq/cdk/keycodes';\nimport {\n CanUpdateErrorState,\n ErrorStateMatcher,\n KBQ_LOCALE_SERVICE,\n KBQ_OPTION_PARENT_COMPONENT,\n KBQ_PARENT_POPUP,\n KBQ_SELECT_SCROLL_STRATEGY,\n KBQ_WINDOW,\n KbqAbstractSelect,\n KbqComponentColors,\n KbqLocaleService,\n KbqOptgroup,\n KbqOption,\n KbqOptionBase,\n KbqOptionSelectionChange,\n KbqSelectFooter,\n KbqSelectMatcher,\n KbqSelectSearch,\n KbqSelectTrigger,\n KbqVirtualOption,\n defaultOffsetY,\n getKbqSelectDynamicMultipleError,\n getKbqSelectNonArrayValueError,\n getKbqSelectNonFunctionValueError,\n isUndefined,\n kbqSelectAnimations\n} from '@koobiq/components/core';\nimport { KbqCleaner, KbqFormField, KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { KbqTag } from '@koobiq/components/tags';\nimport { SizeXxs as SelectSizeMultipleContentGap } from '@koobiq/design-tokens';\nimport { BehaviorSubject, Observable, Subject, Subscription, defer, merge } from 'rxjs';\nimport { delay, distinctUntilChanged, filter, map, startWith, switchMap, take, takeUntil } from 'rxjs/operators';\n\nlet nextUniqueId = 0;\n\n/** Change event object that is emitted when the select value has changed. */\nexport class KbqSelectChange {\n constructor(\n public source: KbqSelect,\n public value: any\n ) {}\n}\n\n/** Select panel width type. */\nexport type KbqSelectPanelWidth = 'auto' | number | null;\n\n/** Options for the `kbq-select` that can be configured using the `KBQ_SELECT_OPTIONS` injection token. */\nexport type KbqSelectOptions = Partial<{\n /**\n * Width of the panel. If set to `auto`, the panel will match the trigger width.\n * If set to null or an empty string, the panel will grow to match the longest option's text.\n */\n panelWidth: KbqSelectPanelWidth;\n /**\n * Minimum width of the panel. If minWidth is larger than window width or property set to null, it will be ignored.\n */\n panelMinWidth: Exclude<KbqSelectPanelWidth, 'auto'>;\n /**\n * Whether to enable hiding search by default if options is less than minimum.\n *\n * - `'auto'` uses `KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD` as min value.\n * - number - will enables search hiding and uses value as min.\n * @see KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD\n */\n searchMinOptionsThreshold: 'auto' | number;\n}>;\n\n/** Injection token that can be used to provide the default options for the `kbq-select`. */\nexport const KBQ_SELECT_OPTIONS = new InjectionToken<KbqSelectOptions>('KBQ_SELECT_OPTIONS');\n\n/** Utility provider for `KBQ_SELECT_OPTIONS`. */\nexport const kbqSelectOptionsProvider = (options: KbqSelectOptions): Provider => {\n return {\n provide: KBQ_SELECT_OPTIONS,\n useValue: options\n };\n};\n\n@Component({\n selector: 'kbq-select',\n exportAs: 'kbqSelect',\n templateUrl: 'select.html',\n styleUrls: ['./select.scss', './select-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n class: 'kbq-select',\n '[class.kbq-select_multiple]': 'multiple',\n '[class.kbq-select_multiline]': 'multiline',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-invalid]': 'errorState',\n\n '(click)': 'toggle()',\n '(keydown)': 'handleKeydown($event)',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n\n // @TODO: turn event listener only for specific conditions (#DS-4253)\n '(window:resize)': 'calculateHiddenItems()'\n },\n animations: [\n kbqSelectAnimations.transformPanel,\n kbqSelectAnimations.fadeInContent\n ],\n providers: [\n { provide: KbqFormFieldControl, useExisting: KbqSelect },\n { provide: KBQ_OPTION_PARENT_COMPONENT, useExisting: KbqSelect },\n { provide: KBQ_PARENT_POPUP, useExisting: KbqSelect }\n ]\n})\nexport class KbqSelect\n extends KbqAbstractSelect\n implements\n AfterContentInit,\n AfterViewInit,\n OnDestroy,\n OnInit,\n DoCheck,\n ControlValueAccessor,\n KbqFormFieldControl<any>,\n CanUpdateErrorState\n{\n /** @docs-private */\n protected readonly destroyRef = inject(DestroyRef);\n\n protected readonly isBrowser = inject(Platform).isBrowser;\n\n protected readonly defaultOptions = inject(KBQ_SELECT_OPTIONS, { optional: true });\n\n private readonly window = inject(KBQ_WINDOW);\n\n /** Whether the component is in an error state. */\n errorState: boolean = false;\n /**\n * Emits whenever the component state changes and should cause the parent\n * form-field to update. Implemented as part of `KbqFormFieldControl`.\n * @docs-private\n */\n readonly stateChanges = new Subject<void>();\n\n /** A name for this control that can be used by `kbq-form-field`. */\n controlType = 'select';\n\n hiddenItems: number = 0;\n\n /** The last measured value for the trigger's client bounding rect. */\n triggerRect: DOMRect;\n\n /** The cached font-size of the trigger element. */\n triggerFontSize = 0;\n\n /** Deals with the selection logic. */\n selectionModel: SelectionModel<KbqOptionBase>;\n\n previousSelectionModelSelected: KbqOptionBase[] = [];\n\n /** Manages keyboard events for options in the panel. */\n keyManager: ActiveDescendantKeyManager<KbqOption>;\n\n /** The value of the select panel's transform-origin property. */\n transformOrigin: string = 'top';\n\n /** Emits when the panel element is finished transforming in. */\n panelDoneAnimatingStream = new Subject<string>();\n\n /** Strategy that will be used to handle scrolling while the select panel is open. */\n scrollStrategy = this.scrollStrategyFactory();\n\n /**\n * The y-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text.\n * when the panel opens. Will change based on the y-position of the selected option.\n */\n offsetY = defaultOffsetY;\n\n /**\n * This position config ensures that the top \"start\" corner of the overlay\n * is aligned with the top \"start\" of the origin by default (overlapping\n * the trigger completely). If the panel cannot fit below the trigger, it\n * will fall back to a position above the trigger.\n */\n positions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: this.offsetY\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -this.offsetY\n }\n ];\n\n /**\n * Trigger - is a clickable field to open select dropdown panel\n */\n @ViewChild('trigger', { static: false }) trigger: ElementRef;\n\n @ViewChild('panel', { static: false }) panel: ElementRef;\n\n @ViewChild('optionsContainer', { static: false }) optionsContainer: ElementRef;\n\n @ViewChild(CdkConnectedOverlay, { static: false }) overlayDir: CdkConnectedOverlay;\n\n @ContentChild(KbqSelectFooter, { static: false, read: ElementRef }) footer?: ElementRef;\n\n @ContentChild(CdkVirtualForOf, { static: false }) cdkVirtualForOf?: CdkVirtualForOf<any>;\n\n @ViewChildren(KbqTag) tags: QueryList<KbqTag>;\n\n /** User-supplied override of the trigger element. */\n @ContentChild(KbqSelectTrigger, { static: false }) customTrigger: KbqSelectTrigger;\n\n @ContentChild(KbqSelectMatcher, { static: false }) customMatcher: KbqSelectMatcher;\n\n @ContentChild('kbqSelectTagContent', { static: false, read: TemplateRef }) customTagTemplateRef: TemplateRef<any>;\n\n @ContentChild('kbqSelectCleaner', { static: true }) cleaner: KbqCleaner;\n\n /** All of the defined select options. */\n @ContentChildren(KbqOption, { descendants: true }) options: QueryList<KbqOption>;\n\n /** All of the defined groups of options. */\n @ContentChildren(KbqOptgroup) optionGroups: QueryList<KbqOptgroup>;\n\n @ContentChild(KbqSelectSearch, { static: false }) search: KbqSelectSearch;\n\n @Input() hiddenItemsText: string = 'еще {{ number }}';\n\n /** Classes to be passed to the select panel. Supports the same syntax as `ngClass`. */\n @Input() panelClass: string | string[] | Set<string> | { [key: string]: any };\n\n @Input() backdropClass: string = 'cdk-overlay-transparent-backdrop';\n\n /** Object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n /**\n * Function used to sort the values in a select in multiple mode.\n * Follows the same logic as `Array.prototype.sort`.\n */\n @Input() sortComparator: (a: KbqOptionBase, b: KbqOptionBase, options: KbqOptionBase[]) => number;\n\n /**\n * Whether to use a multiline matcher or not. Default is false\n */\n @Input({ transform: booleanAttribute }) multiline: boolean = false;\n /**\n * Controls when the search functionality is displayed based on the number of available options.\n *\n * Automatically enables search hiding if value provided, even if `defaultOptions.minOptionsThreshold` is provided.\n * @default undefined\n */\n @Input() set searchMinOptionsThreshold(value: 'auto' | number | undefined) {\n this._searchMinOptionsThreshold =\n this.resolveSearchMinOptionsThreshold(value) ??\n this.resolveSearchMinOptionsThreshold(this.defaultOptions?.searchMinOptionsThreshold);\n }\n\n get searchMinOptionsThreshold(): number | undefined {\n return this._searchMinOptionsThreshold;\n }\n\n private _searchMinOptionsThreshold = this.resolveSearchMinOptionsThreshold(\n this.defaultOptions?.searchMinOptionsThreshold\n );\n\n /** Combined stream of all of the child options' change events. */\n readonly optionSelectionChanges: Observable<KbqOptionSelectionChange> = defer(() => {\n if (this.options) {\n return merge(\n ...this.options.map((option) => option.onSelectionChange),\n ...this.selectionModel.selected.map((option) => option.onSelectionChange),\n this.options.changes.pipe(\n switchMap((list: QueryList<KbqOption>) => merge(...list.map((option) => option.onSelectionChange)))\n )\n );\n }\n\n return this._ngZone.onStable.asObservable().pipe(\n take(1),\n switchMap(() => this.optionSelectionChanges)\n );\n }) as Observable<KbqOptionSelectionChange>;\n\n /** Event emitted when the select panel has been toggled. */\n @Output() readonly openedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event emitted when the select has been opened. */\n @Output('opened') readonly openedStream: Observable<void> = this.openedChange.pipe(\n filter((o) => o),\n map(() => {})\n );\n\n /** Event emitted when the select has been closed. */\n @Output('closed') readonly closedStream: Observable<void> = this.openedChange.pipe(\n filter((o) => !o),\n map(() => {})\n );\n\n /** Event emitted when the selected value has been changed by the user. */\n @Output() readonly selectionChange: EventEmitter<KbqSelectChange> = new EventEmitter<KbqSelectChange>();\n\n /**\n * Event that emits whenever the raw value of the select changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n @Input()\n get hasBackdrop(): boolean {\n return this._hasBackdrop;\n }\n\n set hasBackdrop(value: boolean) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n\n private _hasBackdrop: boolean = false;\n\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n\n this.stateChanges.next();\n }\n\n private _placeholder: string;\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n\n this.stateChanges.next();\n }\n\n private _required: boolean = false;\n\n @Input({ transform: booleanAttribute })\n get multiple(): boolean {\n return this._multiple;\n }\n\n set multiple(value: boolean) {\n if (this.selectionModel) {\n throw getKbqSelectDynamicMultipleError();\n }\n\n this._multiple = value;\n }\n\n private _multiple: boolean = false;\n\n /**\n * Function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n @Input()\n get compareWith() {\n return this._compareWith;\n }\n\n set compareWith(fn: (o1: any, o2: any) => boolean) {\n if (typeof fn !== 'function') {\n throw getKbqSelectNonFunctionValueError();\n }\n\n this._compareWith = fn;\n\n if (this.selectionModel) {\n // A different comparator means the selection could change.\n this.initializeSelection();\n }\n }\n\n /**\n * Function for handling the combination Ctrl + A (select all). By default, the internal handler is used.\n */\n @Input()\n get selectAllHandler() {\n return this._selectAllHandler;\n }\n\n set selectAllHandler(fn: (event: KeyboardEvent, select: KbqSelect) => void) {\n if (typeof fn !== 'function') {\n throw Error('`selectAllHandler` must be a function.');\n }\n\n this._selectAllHandler = fn;\n }\n\n /**\n * Width of the panel. If set to `auto`, the panel will match the trigger width.\n * If set to null or an empty string, the panel will grow to match the longest option's text.\n */\n @Input() panelWidth: KbqSelectPanelWidth = this.defaultOptions?.panelWidth || null;\n\n /**\n * Minimum width of the panel.\n * If minWidth is larger than window width, it will be ignored.\n */\n @Input({ transform: numberAttribute }) panelMinWidth: Exclude<KbqSelectPanelWidth, 'auto'> =\n this.defaultOptions?.panelMinWidth ?? 200;\n\n /** Value of the select control. */\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(newValue: any) {\n if (newValue !== this._value) {\n this.writeValue(newValue);\n this._value = newValue;\n }\n }\n\n private _value: any;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n this.stateChanges.next();\n }\n\n private _id: string;\n\n @Input({ transform: numberAttribute })\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this._disabled = value;\n\n if (this.parentFormField) {\n Promise.resolve().then(() => {\n this._disabled ? this.parentFormField.stopFocusMonitor() : this.parentFormField.runFocusMonitor();\n });\n }\n\n // Let the parent form field know to run change detection when the disabled state changes.\n this.stateChanges.next();\n }\n }\n\n private _disabled: boolean = false;\n\n /** Whether the select is focused. */\n get focused(): boolean {\n return this._focused || this.panelOpen;\n }\n\n set focused(value: boolean) {\n this._focused = value;\n }\n\n panelOpen = false;\n\n private _focused = false;\n\n private withVirtualScroll: boolean;\n\n get isEmptySearchResult(): boolean {\n return this.search && this.options.filter((option) => option.selectable).length === 0 && !!this.search.value();\n }\n\n get canShowCleaner(): boolean {\n return !this.disabled && this.cleaner && this.selectionModel.hasValue();\n }\n\n get selected(): KbqOptionBase | KbqOptionBase[] {\n return this.multiSelection ? this.selectionModel.selected : this.selectionModel.selected[0];\n }\n\n get triggerValue(): string {\n if (this.empty) {\n return '';\n }\n\n return this.selectionModel.selected[0].viewValue;\n }\n\n get triggerValues(): KbqOptionBase[] {\n if (this.empty) {\n return [];\n }\n\n const selectedOptions = this.selectionModel.selected;\n\n if (this.isRtl()) {\n selectedOptions.reverse();\n }\n\n return selectedOptions;\n }\n\n get empty(): boolean {\n return !!this.selectionModel?.isEmpty();\n }\n\n get firstSelected(): KbqOptionBase | null {\n return this.selectionModel.selected.filter((option) => !option.disabled)[0] || null;\n }\n\n get firstFiltered(): boolean {\n return !this.options.find((option: KbqOption) => option === this.firstSelected);\n }\n\n /** @docs-private */\n get colorForState(): KbqComponentColors {\n const hasLegacyValidateDirective = this.elementRef.nativeElement.classList.contains(\n 'kbq-control_has-validate-directive'\n );\n\n return (hasLegacyValidateDirective && this.ngControl?.invalid) || this.errorState\n ? KbqComponentColors.Error\n : KbqComponentColors.ContrastFade;\n }\n\n /** Whether multiple choice is enabled or not. True if multiple or multiline */\n get multiSelection(): boolean {\n return this.multiple || this.multiline;\n }\n\n private closeSubscription = Subscription.EMPTY;\n\n /** The scroll position of the overlay panel, calculated to center the selected option. */\n private scrollTop = 0;\n\n /** Unique id for this input. */\n private readonly uid = `kbq-select-${nextUniqueId++}`;\n\n private visibleChanges: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /** Width of the overlay panel. */\n protected overlayWidth: string | number;\n\n /** Min width of the overlay panel. */\n protected overlayMinWidth: string | number;\n\n /** Origin for the overlay panel. */\n protected overlayOrigin?: CdkOverlayOrigin | ElementRef;\n\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _ngZone: NgZone,\n private readonly _renderer: Renderer2,\n public defaultErrorStateMatcher: ErrorStateMatcher,\n public elementRef: ElementRef<HTMLElement>,\n private overlayContainer: OverlayContainer,\n @Optional() private readonly _dir: Directionality,\n @Optional() public parentForm: NgForm,\n @Optional() public parentFormGroup: FormGroupDirective,\n @Host() @Optional() private readonly parentFormField: KbqFormField,\n @Self() @Optional() public ngControl: NgControl,\n @Inject(KBQ_SELECT_SCROLL_STRATEGY) private readonly scrollStrategyFactory,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) protected localeService?: KbqLocaleService\n ) {\n super();\n\n this.localeService?.changes.subscribe(this.updateLocaleParams);\n\n if (this.ngControl) {\n // Note: we provide the value accessor through here, instead of\n // the `providers` to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n\n ngOnInit() {\n this.selectionModel = new SelectionModel(this.multiSelection);\n this.stateChanges.next();\n\n // We need `distinctUntilChanged` here, because some browsers will\n // fire the animation end event twice for the same animation. See:\n // https://github.com/angular/angular/issues/24084\n this.panelDoneAnimatingStream\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.panelOpen) {\n this.scrollTop = 0;\n\n if (this.search) {\n this.search.focus();\n }\n\n this.openedChange.emit(true);\n } else {\n this.openedChange.emit(false);\n this._changeDetectorRef.markForCheck();\n }\n });\n\n merge(this.optionSelectionChanges, this.visibleChanges)\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe(() =>\n setTimeout(() => {\n this.calculateHiddenItems();\n\n if (this.multiline) {\n this.setOverlayPosition();\n }\n }, 0)\n );\n }\n\n ngDoCheck() {\n this.visibleChanges.next(this.isVisible());\n\n if (this.ngControl) {\n this.updateErrorState();\n }\n }\n\n ngAfterContentInit() {\n this.withVirtualScroll = !!this.cdkVirtualForOf;\n this.initKeyManager();\n\n this.selectionModel.changed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {\n event.added.forEach((option) => option.select());\n event.removed.forEach((option) => option.deselect());\n });\n\n this.options.changes.pipe(startWith(null), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.resetOptions();\n this.initializeSelection();\n });\n\n this.search?.changes\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n delay(0),\n filter(() => !this.keyManager.activeItem)\n )\n .subscribe(() => this.keyManager.updateActiveItem(0));\n }\n\n ngAfterViewInit(): void {\n this.tags.changes.subscribe(() => {\n setTimeout(() => this.calculateHiddenItems(), 0);\n });\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n this.closeSubscription.unsubscribe();\n }\n\n updateErrorState() {\n const oldState = this.errorState;\n const parent = this.parentFormGroup || this.parentForm;\n const matcher = this.errorStateMatcher || this.defaultErrorStateMatcher;\n const control = this.ngControl ? (this.ngControl.control as UntypedFormControl) : null;\n const newState = matcher.isErrorState(control, parent);\n\n if (newState !== oldState) {\n this.errorState = newState;\n this.stateChanges.next();\n }\n }\n\n @Input()\n hiddenItemsTextFormatter(hiddenItemsText: string, hiddenItems: number): string {\n return hiddenItemsText.replace('{{ number }}', hiddenItems.toString());\n }\n\n clearValue($event): void {\n // need to prevent opening\n $event.stopPropagation();\n // need to prevent scrolling\n $event.preventDefault();\n\n this.selectionModel.clear();\n this.keyManager.setActiveItem(-1);\n\n this.propagateChanges();\n\n this.focus();\n }\n\n /** `View -> model callback called when value changes` */\n onChange: (value: any) => void = () => {};\n\n /** `View -> model callback called when select has been touched` */\n onTouched = () => {};\n\n resetSearch(): void {\n if (!this.search) {\n return;\n }\n\n this.search.reset();\n /*\n todo the incorrect behaviour of keyManager is possible here\n to avoid first item selection (to provide correct options flipping on closed select)\n we should process options update like it is the first options appearance\n */\n this.search.isSearchChanged = false;\n }\n\n /** Toggles the overlay panel open or closed. */\n toggle(): void {\n if (this.panelOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /** Opens the overlay panel. */\n open(): void {\n if (this.disabled || !this.options?.length || this.panelOpen) {\n return;\n }\n\n // add check for form-field bounding rectangles, since it adds extra padding around the trigger\n this.triggerRect = (\n this.parentFormField?.getConnectedOverlayOrigin().nativeElement || this.trigger.nativeElement\n ).getBoundingClientRect();\n\n // Note: The computed font-size will be a string pixel value (e.g. \"16px\").\n // `parseInt` ignores the trailing 'px' and converts this to a number.\n this.triggerFontSize = parseInt(this.window.getComputedStyle(this.trigger.nativeElement)['font-size']);\n\n // It's important that we read this as late as possible, because doing so earlier will\n // return a different element since it's based on queries in the form field which may\n // not have run yet. Also this needs to be assigned before we measure the overlay width.\n if (this.parentFormField) {\n this.overlayOrigin = this.parentFormField.getConnectedOverlayOrigin();\n }\n\n this.overlayWidth = this.getOverlayWidth(this.overlayOrigin);\n\n // set overlayMinWidth to the largest of `panelMinWidth` and `triggerRect.width`\n // only if `overlayWidth` falsy and `panelMinWidth` not provided.\n // This ensures panel isn't narrow.\n this.overlayMinWidth =\n this.panelMinWidth !== null && !this.overlayWidth\n ? Math.max(this.panelMinWidth, this.triggerRect.width)\n : '';\n\n this.panelOpen = true;\n\n this.keyManager.withHorizontalOrientation(null);\n this.highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n\n // Set the font size on the panel element once it exists.\n this._ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.scrollActiveOptionIntoView();\n\n if (this.triggerFontSize && this.overlayDir.overlayRef && this.overlayDir.overlayRef.overlayElement) {\n this.overlayDir.overlayRef.overlayElement.style.fontSize = `${this.triggerFontSize}px`;\n }\n\n const overlayContainer = this.overlayContainer.getContainerElement();\n\n if (overlayContainer.childNodes.length === 1) {\n this._renderer.addClass(overlayContainer, 'cdk-overlay-container_dropdown');\n }\n });\n }\n\n /** Closes the overlay panel and focuses the host element. */\n close(): void {\n if (!this.panelOpen) {\n return;\n }\n\n // the order of calls is important\n this.resetSearch();\n this.panelOpen = false;\n this.keyManager.withHorizontalOrientation(this.isRtl() ? 'rtl' : 'ltr');\n\n this._changeDetectorRef.markForCheck();\n this.onTouched();\n\n this._renderer.removeClass(this.overlayContainer.getContainerElement(), 'cdk-overlay-container_dropdown');\n }\n\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: any): void {\n if (this.options) {\n this.setSelectionByValue(value);\n }\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n // eslint-disable-next-line @typescript-eslint/ban-types\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n\n isRtl(): boolean {\n return this._dir ? this._dir.value === 'rtl' : false;\n }\n\n handleKeydown(event: KeyboardEvent): void {\n if (this.disabled) {\n return;\n }\n\n if (this.panelOpen) {\n this.handleOpenKeydown(event);\n } else {\n this.handleClosedKeydown(event);\n }\n }\n\n onFocus() {\n if (!this.disabled) {\n this._focused = true;\n\n this.stateChanges.next();\n }\n }\n\n /**\n * Calls the touched callback only if the panel is closed. Otherwise, the trigger will\n * \"blur\" to the panel when it opens, causing a false positive.\n */\n onBlur() {\n this._focused = false;\n\n if (!this.disabled && !this.panelOpen) {\n this.onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n\n if (this.ngControl?.control) {\n const control = this.ngControl.control;\n\n control.updateValueAndValidity({ emitEvent: false });\n (control.statusChanges as EventEmitter<string>).emit(control.status);\n }\n }\n }\n\n /**\n * Callback that is invoked when the overlay panel has been attached.\n */\n onAttached(): void {\n this.overlayDir.positionChange.pipe(take(1)).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this.setOverlayPosition();\n this.optionsContainer.nativeElement.scrollTop = this.scrollTop;\n\n this.updateScrollSize();\n });\n\n this.options.changes.pipe(delay(1)).subscribe(() => this.setOverlayPosition());\n\n this.closeSubscription = this.closingActions().subscribe(() => this.close());\n }\n\n /** Returns the theme to be used on the panel. */\n getPanelTheme(): string {\n return this.parentFormField ? `kbq-${this.parentFormField.color}` : '';\n }\n\n /** Focuses the select element. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n /** Invoked when an option is clicked. */\n onRemoveMatcherItem(option: KbqOptionBase, $event): void {\n $event.stopPropagation();\n\n option.deselect();\n }\n\n calculateHiddenItems(): void {\n if (\n !this.isBrowser ||\n this.customTrigger ||\n this.empty ||\n !this.multiple ||\n this.customMatcher ||\n this.multiline\n )\n return;\n\n const totalItemsWidth = this.getTotalItemsWidthInMatcher();\n const [totalVisibleItemsWidth, visibleItems] = this.getTotalVisibleItems();\n\n this.hiddenItems = (this.selected as ArrayLike<KbqOptionBase>).length - visibleItems;\n this._changeDetectorRef.detectChanges();\n\n if (this.hiddenItems) {\n const itemsCounter = this.trigger.nativeElement.querySelector('.kbq-select__match-hidden-text');\n const matcherList = this.trigger.nativeElement.querySelector('.kbq-select__match-list');\n\n const itemsCounterShowed = itemsCounter.offsetTop < itemsCounter.offsetHeight;\n const itemsCounterWidth: number = Math.floor(itemsCounter.getBoundingClientRect().width);\n\n const matcherListWidth: number = Math.floor(matcherList.getBoundingClientRect().width);\n const matcherWidth: number = matcherListWidth + (itemsCounterShowed ? itemsCounterWidth : 0);\n\n if (itemsCounterShowed && totalItemsWidth < matcherWidth) {\n this.hiddenItems = 0;\n this._changeDetectorRef.detectChanges();\n }\n\n if (\n totalVisibleItemsWidth === matcherListWidth ||\n totalVisibleItemsWidth + itemsCounterWidth < matcherListWidth\n ) {\n this._changeDetectorRef.markForCheck();\n\n return;\n }\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n getItemHeight(): number {\n return this.options.first ? this.options.first.getHeight() : 0;\n }\n\n handleClick($event: MouseEvent) {\n if (this.footer?.nativeElement.contains($event.target)) {\n this.close();\n }\n }\n\n /** @docs-private */\n protected shouldShowSearch(): boolean {\n return isUndefined(this.searchMinOptionsThreshold) || this.options.length >= this.searchMinOptionsThreshold;\n }\n\n private updateLocaleParams = () => {\n this.hiddenItemsText = this.localeService?.getParams('select').hiddenItemsText;\n\n this._changeDetectorRef.markForCheck();\n };\n\n private isVisible(): boolean {\n return this.elementRef.nativeElement.offsetTop < this.elementRef.nativeElement.offsetHeight;\n }\n\n private currentOverlayPosition(): number {\n const element = this.overlayDir.overlayRef.hostElement;\n\n return Array.from(this.overlayContainer.getContainerElement().childNodes).findIndex((node) => {\n return node.firstChild?.['id'] === element.firstChild?.['id'];\n });\n }\n\n private modalOverlayPosition(): number {\n return Array.from(this.overlayContainer.getContainerElement().childNodes).findIndex((childNode) =>\n (childNode as HTMLElement).classList.contains('kbq-modal-overlay')\n );\n }\n\n private closingActions() {\n // used for calling toggle on select from outside of component\n const outsidePointerEvents = this.overlayDir\n .overlayRef!.outsidePointerEvents()\n .pipe(delay(0))\n .pipe(\n filter(() => {\n if (this.overlayContainer.getContainerElement().childElementCount > 1) {\n return this.currentOverlayPosition() > this.modalOverlayPosition();\n }\n\n return true;\n })\n );\n\n return merge(outsidePointerEvents, this.overlayDir.overlayRef!.detachments());\n }\n\n private getHeightOfOptionsContainer(): number {\n return this.optionsContainer.nativeElement.getClientRects()[0]?.height;\n }\n\n private updateScrollSize(): void {\n if (!this.options.first) {\n return;\n }\n\n this.keyManager.withScrollSize(Math.floor(this.getHeightOfOptionsContainer() / this.options.first.getHeight()));\n }\n\n private getTotalItemsWidthInMatcher(): number {\n const triggerClone = this.buildTriggerClone();\n\n triggerClone.querySelector('.kbq-select__match-hidden-text')?.remove();\n this._renderer.appendChild(this.trigger.nativeElement, triggerClone);\n\n let totalItemsWidth: number = 0;\n const selectedItemsViewValueContainers = triggerClone.querySelectorAll<HTMLElement>('kbq-tag');\n\n selectedItemsViewValueContainers.forEach((item) => (totalItemsWidth += this.getItemWidth(item)));\n\n triggerClone.remove();\n\n return totalItemsWidth;\n }\n\n private getItemWidth(element: HTMLElement): number {\n const computedStyle = this.window.getComputedStyle(element);\n\n const width: number = parseInt(computedStyle.width);\n const marginLeft: number = parseInt(computedStyle.marginLeft);\n const marginRight: number = parseInt(computedStyle.marginRight);\n\n return width + marginLeft + marginRight + parseInt(SelectSizeMultipleContentGap);\n }\n\n /** Handles keyboard events while the select is closed. */\n private handleClosedKeydown(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n const isArrowKey = [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW].includes(keyCode);\n const isOpenKey = [ENTER, SPACE].includes(keyCode);\n\n // Open the select on ALT + arrow key to match the native <select>\n if (isOpenKey || ((this.multiSelection || event.altKey) && isArrowKey)) {\n event.preventDefault(); // prevents the page from scrolling down when pressing space\n this.open();\n } else if (!this.multiSelection) {\n this.keyManager.onKeydown(event);\n }\n }\n\n /** Handles keyboard events when the selected is open. */\n private handleOpenKeydown(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW;\n\n if ((isArrowKey && event.altKey) || keyCode === ESCAPE || keyCode === TAB) {\n // Close the select on ALT + arrow key to match the native <select>\n event.preventDefault();\n this.close();\n this.focus();\n } else if (keyCode === HOME) {\n event.preventDefault();\n\n this.keyManager.setFirstItemActive();\n } else if (keyCode === END) {\n event.preventDefault();\n\n this.keyManager.setLastItemActive();\n } else if (keyCode === PAGE_UP) {\n event.preventDefault();\n\n this.keyManager.setPreviousPageItemActive();\n } else if (keyCode === PAGE_DOWN) {\n event.preventDefault();\n\n this.keyManager.setNextPageItemActive();\n } else if ((keyCode === ENTER || keyCode === SPACE) && this.keyManager.activeItem) {\n event.preventDefault();\n this.keyManager.activeItem.selectViaInteraction();\n } else if (this.multiSelection && keyCode === A && event.ctrlKey) {\n this.selectAllHandler(event, this);\n } else {\n const previouslyFocusedIndex = this.keyManager.activeItemIndex;\n\n this.keyManager.onKeydown(event);\n\n if (\n this.multiSelection &&\n isArrowKey &&\n event.shiftKey &&\n this.keyManager.activeItem &&\n this.keyManager.activeItemIndex !== previouslyFocusedIndex\n ) {\n this.keyManager.activeItem.selectViaInteraction();\n }\n\n if (this.search) {\n this.search.focus();\n }\n\n if (this.search && (this.keyManager.isTyping() || [BACKSPACE, DELETE].includes(keyCode))) {\n setTimeout(() => this.highlightCorrectOption());\n }\n }\n }\n\n private initializeSelection(): void {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n this.setSelectionByValue(this.ngControl ? this.ngControl.value : this._value);\n });\n }\n\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n private setSelectionByValue(value: any | any[]): void {\n this.previousSelectionModelSelected = this.selectionModel.selected;\n\n if (this.multiSelection && value) {\n if (!Array.isArray(value)) {\n throw getKbqSelectNonArrayValueError();\n }\n\n this.selectionModel.clear();\n value.forEach((currentValue: any) => this.selectValue(currentValue));\n this.sortValues();\n } else {\n this.selectionModel.clear();\n const correspondingOption = this.selectValue(value);\n\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what option the user interacted with last.\n if (correspondingOption) {\n this.keyManager.setActiveItem(correspondingOption);\n }\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n private getCorrespondOption(value: any): KbqOptionBase | undefined {\n return [\n ...this.options.toArray(),\n ...this.previousSelectionModelSelected\n ].find((option: KbqOptionBase) => {\n try {\n // Treat null as a special reset value.\n\n return option.value != null && this.compareWith(option.value, value);\n } catch (error) {\n if (isDevMode()) {\n // Notify developers of errors in their comparator.\n // eslint-disable-next-line no-console\n console.warn(error);\n }\n\n return false;\n }\n });\n }\n\n /**\n * Finds and selects and option based on its value.\n * @returns Option that has the corresponding value.\n */\n private selectValue(value: any): KbqOption | undefined {\n const correspondingOption = this.getCorrespondOption(value);\n\n if (correspondingOption) {\n this.selectionModel.select(correspondingOption);\n } else if (this.withVirtualScroll) {\n const source = this.cdkVirtualForOf?.cdkVirtualForOf;\n const correspondingOptionVirtual =\n source instanceof Array ? source.find((item) => this.compareWith(item, value)) : undefined;\n\n if (correspondingOptionVirtual) {\n const kbqVirtualOption = new KbqVirtualOption(correspondingOptionVirtual, this.disabled);\n\n this.selectionModel.select(kbqVirtualOption);\n }\n }\n\n return correspondingOption as KbqOption;\n }\n\n /** Sets up a key manager to listen to keyboard events on the overlay panel. */\n private initKeyManager() {\n const typeAheadDebounce = 200;\n\n this.keyManager = new ActiveDescendantKeyManager<KbqOption>(this.options)\n .withTypeAhead(typeAheadDebounce, this.search ? -1 : 0)\n .withVerticalOrientation()\n .withHorizontalOrientation(this.isRtl() ? 'rtl' : 'ltr');\n\n this.keyManager.change.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.panelOpen && this.panel) {\n this.scrollActiveOptionIntoView();\n } else if (!this.panelOpen && !this.multiSelection && this.keyManager.activeItem) {\n this.keyManager.activeItem.selectViaInteraction();\n }\n });\n }\n\n /** Drops current option subscriptions and IDs and resets from scratch. */\n private resetOptions(): void {\n this.optionSelectionChanges\n .pipe(takeUntilDestroyed(this.destroyRef), takeUntil(this.options.changes))\n .subscribe((event) => {\n this.onSelect(event.source, event.isUserInput);\n\n if (event.isUserInput && !this.multiSelection && this.panelOpen) {\n this.close();\n this.focus();\n }\n });\n\n // Listen to changes in the internal state of the options and react accordingly.\n // Handles cases like the labels of the selected options changing.\n merge(...this.options.map((option) => option.stateChanges))\n .pipe(takeUntilDestroyed(this.destroyRef), takeUntil(this.options.changes))\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n });\n }\n\n /** Invoked when an option is clicked. */\n private onSelect(option: KbqOption, isUserInput: boolean): void {\n const wasSelected = this.selectionModel.isSelected(option);\n\n if (option.value == null && !this.multiSelection) {\n option.deselect();\n this.selectionModel.clear();\n this.propagateChanges(option.value);\n } else {\n if (option.selected) {\n this.selectionModel.select(option);\n } else {\n this.selectionModel.deselect(option);\n }\n\n if (isUserInput) {\n this.keyManager.setActiveItem(option);\n }\n\n if (this.multiSelection) {\n this.sortValues();\n }\n }\n\n if (wasSelected !== this.selectionModel.isSelected(option)) {\n this.propagateChanges();\n }\n\n this.stateChanges.next();\n }\n\n /** Sorts the selected values in the selected based on their order in the panel. */\n private sortValues() {\n if (this.multiSelection) {\n const options = this.options.toArray();\n\n this.selectionModel.sort((a, b) =>\n this.sortComparator ? this.sortComparator(a, b, options) : a.value - b.value\n );\n this.stateChanges.next();\n }\n }\n\n /** Emits change event to set the model value. */\n private propagateChanges(fallbackValue?: any): void {\n let valueToEmit: any;\n\n if (this.multiSelection) {\n valueToEmit = (this.selected as KbqOption[]).map((option) => option.value);\n } else {\n valueToEmit = this.selected ? (this.selected as KbqOption).value : fallbackValue;\n }\n\n this._value = valueToEmit;\n this.valueChange.emit(valueToEmit);\n this.onChange(valueToEmit);\n this.selectionChange.emit(new KbqSelectChange(this, valueToEmit));\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Highlights the selected item. If no option is selected, it will highlight\n * the first item instead.\n */\n private highlightCorrectOption(): void {\n if (this.keyManager) {\n if (this.empty || !this.firstSelected || this.firstFiltered) {\n this.keyManager.setFirstItemActive();\n } else {\n this.keyManager.setActiveItem(this.firstSelected as KbqOption);\n }\n }\n }\n\n /** Scrolls the active option into view. */\n private scrollActiveOptionIntoView(): void {\n this.keyManager.activeItem?.focus();\n }\n\n /** Gets how wide the overlay panel should be. */\n private getOverlayWidth(origin?: ElementRef | CdkOverlayOrigin): string | number {\n if (this.panelWidth === 'auto') {\n const elementRef = origin instanceof CdkOverlayOrigin ? origin.elementRef : origin || this.elementRef;\n\n return elementRef.nativeElement.getBoundingClientRect().width;\n }\n\n return this.panelWidth ?? '';\n }\n\n /** Comparison function to specify which option is displayed. Defaults to object equality. */\n private _compareWith = (o1: any, o2: any) => o1 === o2;\n\n /** Function for handling the combination Ctrl + A (select all). By default, the internal handler is used. */\n private _selectAllHandler(event: KeyboardEvent, select: KbqSelect): void {\n event.preventDefault();\n\n const hasDeselectedOptions = select.options.some((option) => !option.selected);\n\n select.options.forEach((option) => {\n if (hasDeselectedOptions && !option.disabled) {\n option.select();\n } else {\n option.deselect();\n }\n });\n }\n\n private getTotalVisibleItems(): [number, number] {\n const triggerClone = this.buildTriggerClone();\n\n this._renderer.setStyle(triggerClone.querySelector('.kbq-select__match-hidden-text'), 'display', 'block');\n this._renderer.appendChild(this.trigger.nativeElement, triggerClone);\n\n let visibleItemsCount: number = 0;\n let totalVisibleItemsWidth: number = 0;\n\n (triggerClone.querySelectorAll('kbq-tag') as NodeListOf<HTMLElement>).forEach((item) => {\n if (item.offsetTop < item.offsetHeight) {\n totalVisibleItemsWidth += this.getItemWidth(item);\n visibleItemsCount++;\n }\n });\n\n triggerClone.remove();\n\n return [totalVisibleItemsWidth, visibleItemsCount];\n }\n\n private buildTriggerClone(): HTMLDivElement {\n const triggerClone = this.trigger.nativeElement.cloneNode(true);\n\n this._renderer.setStyle(triggerClone, 'position', 'absolute');\n this._renderer.setStyle(triggerClone, 'visibility', 'hidden');\n this._renderer.setStyle(triggerClone, 'top', '-100%');\n this._renderer.setStyle(triggerClone, 'left', '0');\n\n return triggerClone;\n }\n}\n","<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiline]=\"multiline\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n @if (!!customMatcher) {\n <ng-content select=\"kbq-select-matcher, [kbq-select-matcher]\" />\n } @else {\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n } @else {\n @if (!!customTrigger) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiSelection) {\n <div\n [class.kbq-select__match-list]=\"!multiline\"\n [class.kbq-select__multiline-match-list]=\"multiline\"\n >\n @if (!customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [color]=\"colorForState\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n >\n {{ option.viewValue }}\n @if (!option.disabled && !disabled) {\n <i\n kbq-icon=\"kbq-xmark-s_16\"\n kbqTagRemove\n (click)=\"onRemoveMatcherItem(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n }\n @if (customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"$any(customTagTemplateRef)\"\n [ngTemplateOutletContext]=\"{ $implicit: option, select: this }\"\n />\n }\n }\n </div>\n\n @if (!multiline) {\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n }\n } @else {\n <span class=\"kbq-select__matcher-text\">\n {{ triggerValue }}\n </span>\n }\n </div>\n }\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n (keydown.enter)=\"clearValue($event)\"\n (keydown.space)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\" [color]=\"colorForState\"></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClass\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n cdkMonitorSubtreeFocus\n class=\"kbq-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search && shouldShowSearch()) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content kbq-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n >\n @if (isEmptySearchResult) {\n <div class=\"kbq-select__no-options-message\">\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n </div>\n }\n <ng-content />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-select-footer]\" />\n </div>\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n KBQ_SELECT_SCROLL_STRATEGY_PROVIDER,\n KbqOptionModule,\n KbqSelectFooter,\n KbqSelectMatcher,\n KbqSelectSearch,\n KbqSelectSearchEmptyResult,\n KbqSelectTrigger\n} from '@koobiq/components/core';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTagsModule } from '@koobiq/components/tags';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { KbqOptionTooltip } from './select-option.directive';\nimport { KbqSelect } from './select.component';\n\n@NgModule({\n imports: [\n OverlayModule,\n KbqOptionModule,\n KbqIconModule,\n KbqTagsModule,\n KbqToolTipModule,\n KbqSelectSearch,\n KbqSelectFooter,\n KbqSelectMatcher,\n KbqSelectTrigger,\n KbqSelectSearchEmptyResult,\n NgClass,\n NgTemplateOutlet,\n A11yModule\n ],\n exports: [\n KbqSelect,\n KbqOptionTooltip,\n KbqOptionModule,\n KbqSelectSearch,\n KbqSelectFooter,\n KbqSelectMatcher,\n KbqSelectTrigger,\n KbqSelectSearchEmptyResult,\n KbqFormFieldModule\n ],\n declarations: [\n KbqSelect,\n KbqOptionTooltip\n ],\n providers: [KBQ_SELECT_SCROLL_STRATEGY_PROVIDER]\n})\nexport class KbqSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["SelectSizeMultipleContentGap"],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-select.mjs","sources":["../../../packages/components/select/select-option.directive.ts","../../../packages/components/select/select.component.ts","../../../packages/components/select/select.html","../../../packages/components/select/select.module.ts","../../../packages/components/select/koobiq-components-select.ts"],"sourcesContent":["import { ContentObserver } from '@angular/cdk/observers';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { AfterViewInit, Directive, inject, OnDestroy } from '@angular/core';\nimport { KbqOption } from '@koobiq/components/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: 'kbq-option',\n host: {\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()'\n }\n})\nexport class KbqOptionTooltip extends KbqTooltipTrigger implements AfterViewInit, OnDestroy {\n private resizeObserver = inject(SharedResizeObserver);\n private resizeObserverSubscription: Subscription | null = null;\n\n private contentObserver = inject(ContentObserver);\n private contentObserverSubscription: Subscription | null = null;\n\n get textElement(): HTMLElement {\n return this.option.textElement.nativeElement;\n }\n\n get isOverflown(): boolean {\n return this.textElement.clientWidth < this.textElement.scrollWidth;\n }\n\n constructor(private option: KbqOption) {\n super();\n }\n\n ngAfterViewInit() {\n this.content = this.option.viewValue;\n\n this.contentObserverSubscription = this.contentObserver\n .observe(this.textElement)\n .subscribe(() => (this.content = this.option.viewValue));\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n\n this.resizeObserverSubscription?.unsubscribe();\n this.contentObserverSubscription?.unsubscribe();\n }\n\n onMouseEnter() {\n this.resizeObserverSubscription = this.resizeObserver\n .observe(this.textElement)\n .subscribe(() => (this.disabled = !this.isOverflown));\n\n this.disabled = !this.isOverflown;\n }\n\n onMouseLeave() {\n this.resizeObserverSubscription?.unsubscribe();\n\n this.disabled = true;\n }\n\n onFocus() {\n this.disabled = !this.isOverflown;\n\n if (!this.disabled) {\n this.show();\n }\n }\n\n onBlur() {\n this.disabled = true;\n this.hide();\n }\n}\n","import { CdkMonitorFocus } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedPosition, OverlayContainer } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { CdkVirtualForOf } from '@angular/cdk/scrolling';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n DoCheck,\n ElementRef,\n EventEmitter,\n Host,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Provider,\n QueryList,\n Renderer2,\n Self,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n inject,\n isDevMode,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport { ActiveDescendantKeyManager } from '@koobiq/cdk/a11y';\nimport {\n A,\n BACKSPACE,\n DELETE,\n DOWN_ARROW,\n END,\n ENTER,\n ESCAPE,\n HOME,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SPACE,\n TAB,\n UP_ARROW\n} from '@koobiq/cdk/keycodes';\nimport {\n CanUpdateErrorState,\n ErrorStateMatcher,\n KBQ_LOCALE_SERVICE,\n KBQ_OPTION_PARENT_COMPONENT,\n KBQ_PARENT_POPUP,\n KBQ_SELECT_SCROLL_STRATEGY,\n KBQ_WINDOW,\n KbqAbstractSelect,\n KbqComponentColors,\n KbqLocaleService,\n KbqOptgroup,\n KbqOption,\n KbqOptionBase,\n KbqOptionSelectionChange,\n KbqSelectFooter,\n KbqSelectMatcher,\n KbqSelectSearch,\n KbqSelectTrigger,\n KbqVirtualOption,\n defaultOffsetY,\n getKbqSelectDynamicMultipleError,\n getKbqSelectNonArrayValueError,\n getKbqSelectNonFunctionValueError,\n isUndefined,\n kbqSelectAnimations\n} from '@koobiq/components/core';\nimport { KbqCleaner, KbqFormField, KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTag } from '@koobiq/components/tags';\nimport { SizeXxs as SelectSizeMultipleContentGap } from '@koobiq/design-tokens';\nimport { BehaviorSubject, Observable, Subject, Subscription, defer, fromEvent, merge } from 'rxjs';\nimport {\n debounceTime,\n delay,\n distinctUntilChanged,\n filter,\n map,\n startWith,\n switchMap,\n take,\n takeUntil\n} from 'rxjs/operators';\n\nlet nextUniqueId = 0;\n\n/** Change event object that is emitted when the select value has changed. */\nexport class KbqSelectChange {\n constructor(\n public source: KbqSelect,\n public value: any\n ) {}\n}\n\n/** Select panel width type. */\nexport type KbqSelectPanelWidth = 'auto' | number | null;\n\n/** Options for the `kbq-select` that can be configured using the `KBQ_SELECT_OPTIONS` injection token. */\nexport type KbqSelectOptions = Partial<{\n /**\n * Width of the panel. If set to `auto`, the panel will match the trigger width.\n * If set to null or an empty string, the panel will grow to match the longest option's text.\n */\n panelWidth: KbqSelectPanelWidth;\n /**\n * Minimum width of the panel. If minWidth is larger than window width or property set to null, it will be ignored.\n */\n panelMinWidth: Exclude<KbqSelectPanelWidth, 'auto'>;\n /**\n * Whether to enable hiding search by default if options is less than minimum.\n *\n * - `'auto'` uses `KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD` as min value.\n * - number - will enables search hiding and uses value as min.\n * @see KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD\n */\n searchMinOptionsThreshold: 'auto' | number;\n}>;\n\n/** Injection token that can be used to provide the default options for the `kbq-select`. */\nexport const KBQ_SELECT_OPTIONS = new InjectionToken<KbqSelectOptions>('KBQ_SELECT_OPTIONS');\n\n/** Utility provider for `KBQ_SELECT_OPTIONS`. */\nexport const kbqSelectOptionsProvider = (options: KbqSelectOptions): Provider => {\n return {\n provide: KBQ_SELECT_OPTIONS,\n useValue: options\n };\n};\n\n@Component({\n selector: 'kbq-select',\n imports: [\n CdkOverlayOrigin,\n KbqTag,\n NgTemplateOutlet,\n CdkMonitorFocus,\n CdkConnectedOverlay,\n NgClass,\n KbqIconModule\n ],\n templateUrl: 'select.html',\n styleUrls: ['./select.scss', './select-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqSelect',\n host: {\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n class: 'kbq-select',\n '[class.kbq-select_multiple]': 'multiple',\n '[class.kbq-select_multiline]': 'multiline',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-invalid]': 'errorState',\n '(click)': 'toggle()',\n '(keydown)': 'handleKeydown($event)',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()'\n },\n animations: [\n kbqSelectAnimations.transformPanel,\n kbqSelectAnimations.fadeInContent\n ],\n providers: [\n { provide: KbqFormFieldControl, useExisting: KbqSelect },\n { provide: KBQ_OPTION_PARENT_COMPONENT, useExisting: KbqSelect },\n { provide: KBQ_PARENT_POPUP, useExisting: KbqSelect }\n ]\n})\nexport class KbqSelect\n extends KbqAbstractSelect\n implements\n AfterContentInit,\n OnDestroy,\n OnInit,\n DoCheck,\n ControlValueAccessor,\n KbqFormFieldControl<any>,\n CanUpdateErrorState\n{\n /** @docs-private */\n protected readonly destroyRef = inject(DestroyRef);\n\n protected readonly isBrowser = inject(Platform).isBrowser;\n\n protected readonly defaultOptions = inject(KBQ_SELECT_OPTIONS, { optional: true });\n\n private readonly window = inject(KBQ_WINDOW);\n\n /** Whether the component is in an error state. */\n errorState: boolean = false;\n /**\n * Emits whenever the component state changes and should cause the parent\n * form-field to update. Implemented as part of `KbqFormFieldControl`.\n * @docs-private\n */\n readonly stateChanges = new Subject<void>();\n\n /** A name for this control that can be used by `kbq-form-field`. */\n controlType = 'select';\n\n hiddenItems: number = 0;\n\n /** The last measured value for the trigger's client bounding rect. */\n triggerRect: DOMRect;\n\n /** The cached font-size of the trigger element. */\n triggerFontSize = 0;\n\n /** Deals with the selection logic. */\n selectionModel: SelectionModel<KbqOptionBase>;\n\n previousSelectionModelSelected: KbqOptionBase[] = [];\n\n /** Manages keyboard events for options in the panel. */\n keyManager: ActiveDescendantKeyManager<KbqOption>;\n\n /** The value of the select panel's transform-origin property. */\n transformOrigin: string = 'top';\n\n /** Emits when the panel element is finished transforming in. */\n panelDoneAnimatingStream = new Subject<string>();\n\n /** Strategy that will be used to handle scrolling while the select panel is open. */\n scrollStrategy = this.scrollStrategyFactory();\n\n /**\n * The y-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text.\n * when the panel opens. Will change based on the y-position of the selected option.\n */\n offsetY = defaultOffsetY;\n\n /**\n * This position config ensures that the top \"start\" corner of the overlay\n * is aligned with the top \"start\" of the origin by default (overlapping\n * the trigger completely). If the panel cannot fit below the trigger, it\n * will fall back to a position above the trigger.\n */\n positions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: this.offsetY\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -this.offsetY\n }\n ];\n\n /**\n * Trigger - is a clickable field to open select dropdown panel\n */\n @ViewChild('trigger', { static: false }) trigger: ElementRef;\n\n @ViewChild('panel', { static: false }) panel: ElementRef;\n\n @ViewChild('optionsContainer', { static: false }) optionsContainer: ElementRef;\n\n @ViewChild(CdkConnectedOverlay, { static: false }) overlayDir: CdkConnectedOverlay;\n\n @ContentChild(KbqSelectFooter, { static: false, read: ElementRef }) footer?: ElementRef;\n\n @ContentChild(CdkVirtualForOf, { static: false }) cdkVirtualForOf?: CdkVirtualForOf<any>;\n\n @ViewChildren(KbqTag) tags: QueryList<KbqTag>;\n\n /** User-supplied override of the trigger element. */\n @ContentChild(KbqSelectTrigger, { static: false }) customTrigger: KbqSelectTrigger;\n\n @ContentChild(KbqSelectMatcher, { static: false }) customMatcher: KbqSelectMatcher;\n\n @ContentChild('kbqSelectTagContent', { static: false, read: TemplateRef }) customTagTemplateRef: TemplateRef<any>;\n\n @ContentChild('kbqSelectCleaner', { static: true }) cleaner: KbqCleaner;\n\n /** All of the defined select options. */\n @ContentChildren(KbqOption, { descendants: true }) options: QueryList<KbqOption>;\n\n /** All of the defined groups of options. */\n @ContentChildren(KbqOptgroup) optionGroups: QueryList<KbqOptgroup>;\n\n @ContentChild(KbqSelectSearch, { static: false }) search: KbqSelectSearch;\n\n @Input() hiddenItemsText: string = '+{{ number }}';\n\n /** Classes to be passed to the select panel. Supports the same syntax as `ngClass`. */\n @Input() panelClass: string | string[] | Set<string> | { [key: string]: any };\n\n @Input() backdropClass: string = 'cdk-overlay-transparent-backdrop';\n\n /** Object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n /**\n * Function used to sort the values in a select in multiple mode.\n * Follows the same logic as `Array.prototype.sort`.\n */\n @Input() sortComparator: (a: KbqOptionBase, b: KbqOptionBase, options: KbqOptionBase[]) => number;\n\n /**\n * Whether to use a multiline matcher or not. Default is false\n */\n @Input({ transform: booleanAttribute }) multiline: boolean = false;\n /**\n * Controls when the search functionality is displayed based on the number of available options.\n *\n * Automatically enables search hiding if value provided, even if `defaultOptions.minOptionsThreshold` is provided.\n * @default undefined\n */\n @Input() set searchMinOptionsThreshold(value: 'auto' | number | undefined) {\n this._searchMinOptionsThreshold =\n this.resolveSearchMinOptionsThreshold(value) ??\n this.resolveSearchMinOptionsThreshold(this.defaultOptions?.searchMinOptionsThreshold);\n }\n\n get searchMinOptionsThreshold(): number | undefined {\n return this._searchMinOptionsThreshold;\n }\n\n private _searchMinOptionsThreshold = this.resolveSearchMinOptionsThreshold(\n this.defaultOptions?.searchMinOptionsThreshold\n );\n\n /** Combined stream of all of the child options' change events. */\n readonly optionSelectionChanges: Observable<KbqOptionSelectionChange> = defer(() => {\n if (this.options) {\n return merge(\n ...this.options.map((option) => option.onSelectionChange),\n ...this.selectionModel.selected.map((option) => option.onSelectionChange),\n this.options.changes.pipe(\n switchMap((list: QueryList<KbqOption>) => merge(...list.map((option) => option.onSelectionChange)))\n )\n );\n }\n\n return this._ngZone.onStable.asObservable().pipe(\n take(1),\n switchMap(() => this.optionSelectionChanges)\n );\n }) as Observable<KbqOptionSelectionChange>;\n\n /** Event emitted when the select panel has been toggled. */\n @Output() readonly openedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event emitted when the select has been opened. */\n @Output('opened') readonly openedStream: Observable<void> = this.openedChange.pipe(\n filter((o) => o),\n map(() => {})\n );\n\n /** Event emitted when the select has been closed. */\n @Output('closed') readonly closedStream: Observable<void> = this.openedChange.pipe(\n filter((o) => !o),\n map(() => {})\n );\n\n /** Event emitted when the selected value has been changed by the user. */\n @Output() readonly selectionChange: EventEmitter<KbqSelectChange> = new EventEmitter<KbqSelectChange>();\n\n /**\n * Event that emits whenever the raw value of the select changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n @Input()\n get hasBackdrop(): boolean {\n return this._hasBackdrop;\n }\n\n set hasBackdrop(value: boolean) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n\n private _hasBackdrop: boolean = false;\n\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n\n this.stateChanges.next();\n }\n\n private _placeholder: string;\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n\n this.stateChanges.next();\n }\n\n private _required: boolean = false;\n\n @Input({ transform: booleanAttribute })\n get multiple(): boolean {\n return this._multiple;\n }\n\n set multiple(value: boolean) {\n if (this.selectionModel) {\n throw getKbqSelectDynamicMultipleError();\n }\n\n this._multiple = value;\n }\n\n private _multiple: boolean = false;\n\n /**\n * Function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n @Input()\n get compareWith() {\n return this._compareWith;\n }\n\n set compareWith(fn: (o1: any, o2: any) => boolean) {\n if (typeof fn !== 'function') {\n throw getKbqSelectNonFunctionValueError();\n }\n\n this._compareWith = fn;\n\n if (this.selectionModel) {\n // A different comparator means the selection could change.\n this.initializeSelection();\n }\n }\n\n /**\n * Function for handling the combination Ctrl + A (select all). By default, the internal handler is used.\n */\n @Input()\n get selectAllHandler() {\n return this._selectAllHandler;\n }\n\n set selectAllHandler(fn: (event: KeyboardEvent, select: KbqSelect) => void) {\n if (typeof fn !== 'function') {\n throw Error('`selectAllHandler` must be a function.');\n }\n\n this._selectAllHandler = fn;\n }\n\n /**\n * Width of the panel. If set to `auto`, the panel will match the trigger width.\n * If set to null or an empty string, the panel will grow to match the longest option's text.\n */\n @Input() panelWidth: KbqSelectPanelWidth = this.defaultOptions?.panelWidth || null;\n\n /**\n * Minimum width of the panel.\n * If minWidth is larger than window width, it will be ignored.\n */\n @Input({ transform: numberAttribute }) panelMinWidth: Exclude<KbqSelectPanelWidth, 'auto'> =\n this.defaultOptions?.panelMinWidth ?? 200;\n\n /** Value of the select control. */\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(newValue: any) {\n if (newValue !== this._value) {\n this.writeValue(newValue);\n this._value = newValue;\n }\n }\n\n private _value: any;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n this.stateChanges.next();\n }\n\n private _id: string;\n\n @Input({ transform: numberAttribute })\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this._disabled = value;\n\n if (this.parentFormField) {\n Promise.resolve().then(() => {\n this._disabled ? this.parentFormField.stopFocusMonitor() : this.parentFormField.runFocusMonitor();\n });\n }\n\n // Let the parent form field know to run change detection when the disabled state changes.\n this.stateChanges.next();\n }\n }\n\n private _disabled: boolean = false;\n\n /** Whether the select is focused. */\n get focused(): boolean {\n return this._focused || this.panelOpen;\n }\n\n set focused(value: boolean) {\n this._focused = value;\n }\n\n panelOpen = false;\n\n private _focused = false;\n\n private withVirtualScroll: boolean;\n\n get isEmptySearchResult(): boolean {\n return this.search && this.options.filter((option) => option.selectable).length === 0 && !!this.search.value();\n }\n\n get canShowCleaner(): boolean {\n return !this.disabled && this.cleaner && this.selectionModel.hasValue();\n }\n\n get selected(): KbqOptionBase | KbqOptionBase[] {\n return this.multiSelection ? this.selectionModel.selected : this.selectionModel.selected[0];\n }\n\n get triggerValue(): string {\n if (this.empty) return '';\n\n if (this.selectionModel.selected[0] instanceof KbqVirtualOption) {\n return this.selectionModel.selected[0].value;\n }\n\n return this.selectionModel.selected[0].viewValue;\n }\n\n get triggerValues(): KbqOptionBase[] {\n if (this.empty) {\n return [];\n }\n\n const selectedOptions = this.selectionModel.selected;\n\n if (this.isRtl()) {\n selectedOptions.reverse();\n }\n\n return selectedOptions;\n }\n\n get empty(): boolean {\n return !!this.selectionModel?.isEmpty();\n }\n\n get firstSelected(): KbqOptionBase | null {\n return this.selectionModel.selected.filter((option) => !option.disabled)[0] || null;\n }\n\n get firstFiltered(): boolean {\n return !this.options.find((option: KbqOption) => option === this.firstSelected);\n }\n\n /** @docs-private */\n get colorForState(): KbqComponentColors {\n const hasLegacyValidateDirective = this.elementRef.nativeElement.classList.contains(\n 'kbq-control_has-validate-directive'\n );\n\n // @TODO fix disabled state color (#DS-4574)\n return (hasLegacyValidateDirective && this.ngControl?.invalid) || this.errorState\n ? KbqComponentColors.Error\n : KbqComponentColors.ContrastFade;\n }\n\n /** Whether multiple choice is enabled or not. True if multiple or multiline */\n get multiSelection(): boolean {\n return this.multiple || this.multiline;\n }\n\n private closeSubscription = Subscription.EMPTY;\n\n /** The scroll position of the overlay panel, calculated to center the selected option. */\n private scrollTop = 0;\n\n /** Unique id for this input. */\n private readonly uid = `kbq-select-${nextUniqueId++}`;\n\n private visibleChanges: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /** Width of the overlay panel. */\n protected overlayWidth: string | number;\n\n /** Min width of the overlay panel. */\n protected overlayMinWidth: string | number;\n\n /** Origin for the overlay panel. */\n protected overlayOrigin?: CdkOverlayOrigin | ElementRef;\n\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _ngZone: NgZone,\n private readonly _renderer: Renderer2,\n public defaultErrorStateMatcher: ErrorStateMatcher,\n public elementRef: ElementRef<HTMLElement>,\n private overlayContainer: OverlayContainer,\n @Optional() private readonly _dir: Directionality,\n @Optional() public parentForm: NgForm,\n @Optional() public parentFormGroup: FormGroupDirective,\n @Host() @Optional() private readonly parentFormField: KbqFormField,\n @Self() @Optional() public ngControl: NgControl,\n @Inject(KBQ_SELECT_SCROLL_STRATEGY) private readonly scrollStrategyFactory,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) protected localeService?: KbqLocaleService\n ) {\n super();\n\n this.localeService?.changes.subscribe(this.updateLocaleParams);\n\n if (this.ngControl) {\n // Note: we provide the value accessor through here, instead of\n // the `providers` to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n afterNextRender(() => {\n if (this.multiple && !this.multiline) {\n merge(fromEvent(this.window, 'resize'), this.tags.changes)\n .pipe(delay(0), debounceTime(50), takeUntilDestroyed(this.destroyRef))\n .subscribe(this.calculateHiddenItems);\n }\n });\n }\n\n ngOnInit() {\n this.selectionModel = new SelectionModel(this.multiSelection);\n this.stateChanges.next();\n\n // We need `distinctUntilChanged` here, because some browsers will\n // fire the animation end event twice for the same animation. See:\n // https://github.com/angular/angular/issues/24084\n this.panelDoneAnimatingStream\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.panelOpen) {\n this.scrollTop = 0;\n\n if (this.search) {\n this.search.focus();\n }\n\n this.openedChange.emit(true);\n } else {\n this.openedChange.emit(false);\n this._changeDetectorRef.markForCheck();\n }\n });\n\n merge(this.optionSelectionChanges, this.visibleChanges)\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe(() =>\n setTimeout(() => {\n this.calculateHiddenItems();\n\n if (this.multiline) {\n this.setOverlayPosition();\n }\n }, 0)\n );\n }\n\n ngDoCheck() {\n this.visibleChanges.next(this.isVisible());\n\n if (this.ngControl) {\n this.updateErrorState();\n }\n }\n\n ngAfterContentInit() {\n this.withVirtualScroll = !!this.cdkVirtualForOf;\n this.initKeyManager();\n\n this.selectionModel.changed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {\n event.added.forEach((option) => option.select());\n event.removed.forEach((option) => option.deselect());\n });\n\n this.options.changes.pipe(startWith(null), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.resetOptions();\n this.initializeSelection();\n });\n\n this.search?.changes\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n delay(0),\n filter(() => !this.keyManager.activeItem)\n )\n .subscribe(() => this.keyManager.updateActiveItem(0));\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n this.closeSubscription.unsubscribe();\n }\n\n updateErrorState() {\n const oldState = this.errorState;\n const parent = this.parentFormGroup || this.parentForm;\n const matcher = this.errorStateMatcher || this.defaultErrorStateMatcher;\n const control = this.ngControl ? (this.ngControl.control as UntypedFormControl) : null;\n const newState = matcher.isErrorState(control, parent);\n\n if (newState !== oldState) {\n this.errorState = newState;\n this.stateChanges.next();\n }\n }\n\n @Input()\n hiddenItemsTextFormatter(hiddenItemsText: string, hiddenItems: number): string {\n return hiddenItemsText.replace('{{ number }}', hiddenItems.toString());\n }\n\n clearValue($event): void {\n // need to prevent opening\n $event.stopPropagation();\n // need to prevent scrolling\n $event.preventDefault();\n\n this.selectionModel.clear();\n this.keyManager.setActiveItem(-1);\n\n this.propagateChanges();\n\n this.focus();\n }\n\n /** `View -> model callback called when value changes` */\n onChange: (value: any) => void = () => {};\n\n /** `View -> model callback called when select has been touched` */\n onTouched = () => {};\n\n resetSearch(): void {\n if (!this.search) {\n return;\n }\n\n this.search.reset();\n /*\n todo the incorrect behaviour of keyManager is possible here\n to avoid first item selection (to provide correct options flipping on closed select)\n we should process options update like it is the first options appearance\n */\n this.search.isSearchChanged = false;\n }\n\n /** Toggles the overlay panel open or closed. */\n toggle(): void {\n if (this.panelOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /** Opens the overlay panel. */\n open(): void {\n if (this.disabled || !this.options?.length || this.panelOpen) {\n return;\n }\n\n // add check for form-field bounding rectangles, since it adds extra padding around the trigger\n this.triggerRect = (\n this.parentFormField?.getConnectedOverlayOrigin().nativeElement || this.trigger.nativeElement\n ).getBoundingClientRect();\n\n // Note: The computed font-size will be a string pixel value (e.g. \"16px\").\n // `parseInt` ignores the trailing 'px' and converts this to a number.\n this.triggerFontSize = parseInt(this.window.getComputedStyle(this.trigger.nativeElement)['font-size']);\n\n // It's important that we read this as late as possible, because doing so earlier will\n // return a different element since it's based on queries in the form field which may\n // not have run yet. Also this needs to be assigned before we measure the overlay width.\n if (this.parentFormField) {\n this.overlayOrigin = this.parentFormField.getConnectedOverlayOrigin();\n }\n\n this.overlayWidth = this.getOverlayWidth(this.overlayOrigin);\n\n // set overlayMinWidth to the largest of `panelMinWidth` and `triggerRect.width`\n // only if `overlayWidth` falsy and `panelMinWidth` not provided.\n // This ensures panel isn't narrow.\n this.overlayMinWidth =\n this.panelMinWidth !== null && !this.overlayWidth\n ? Math.max(this.panelMinWidth, this.triggerRect.width)\n : '';\n\n this.panelOpen = true;\n\n this.keyManager.withHorizontalOrientation(null);\n this.highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n\n // Set the font size on the panel element once it exists.\n this._ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.scrollActiveOptionIntoView();\n\n if (this.triggerFontSize && this.overlayDir.overlayRef && this.overlayDir.overlayRef.overlayElement) {\n this.overlayDir.overlayRef.overlayElement.style.fontSize = `${this.triggerFontSize}px`;\n }\n\n const overlayContainer = this.overlayContainer?.getContainerElement();\n\n if (overlayContainer.childNodes.length === 1) {\n this._renderer.addClass(overlayContainer, 'cdk-overlay-container_dropdown');\n }\n });\n }\n\n /** Closes the overlay panel and focuses the host element. */\n close(): void {\n if (!this.panelOpen) {\n return;\n }\n\n // the order of calls is important\n this.resetSearch();\n this.panelOpen = false;\n this.keyManager.withHorizontalOrientation(this.isRtl() ? 'rtl' : 'ltr');\n\n this._changeDetectorRef.markForCheck();\n this.onTouched();\n\n this._renderer.removeClass(this.overlayContainer.getContainerElement(), 'cdk-overlay-container_dropdown');\n }\n\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: any): void {\n if (this.options) {\n this.setSelectionByValue(value);\n }\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n // eslint-disable-next-line @typescript-eslint/ban-types\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n\n isRtl(): boolean {\n return this._dir ? this._dir.value === 'rtl' : false;\n }\n\n handleKeydown(event: KeyboardEvent): void {\n if (this.disabled) {\n return;\n }\n\n if (this.panelOpen) {\n this.handleOpenKeydown(event);\n } else {\n this.handleClosedKeydown(event);\n }\n }\n\n onFocus() {\n if (!this.disabled) {\n this._focused = true;\n\n this.stateChanges.next();\n }\n }\n\n /**\n * Calls the touched callback only if the panel is closed. Otherwise, the trigger will\n * \"blur\" to the panel when it opens, causing a false positive.\n */\n onBlur() {\n this._focused = false;\n\n if (!this.disabled && !this.panelOpen) {\n this.onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n\n if (this.ngControl?.control) {\n const control = this.ngControl.control;\n\n control.updateValueAndValidity({ emitEvent: false });\n (control.statusChanges as EventEmitter<string>).emit(control.status);\n }\n }\n }\n\n /**\n * Callback that is invoked when the overlay panel has been attached.\n */\n onAttached(): void {\n this.overlayDir.positionChange.pipe(take(1)).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this.setOverlayPosition();\n this.optionsContainer.nativeElement.scrollTop = this.scrollTop;\n\n this.updateScrollSize();\n });\n\n this.options.changes.pipe(delay(1)).subscribe(() => this.setOverlayPosition());\n\n this.closeSubscription = this.closingActions().subscribe(() => this.close());\n }\n\n /** Returns the theme to be used on the panel. */\n getPanelTheme(): string {\n return this.parentFormField ? `kbq-${this.parentFormField.color}` : '';\n }\n\n /** Focuses the select element. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n /** Invoked when an option is clicked. */\n onRemoveMatcherItem(option: KbqOptionBase, $event): void {\n $event.stopPropagation();\n\n option.deselect();\n }\n\n calculateHiddenItems = () => {\n if (\n !this.isBrowser ||\n this.customTrigger ||\n this.customMatcher ||\n this.empty ||\n !this.multiple ||\n this.multiline\n )\n return;\n\n const totalItemsWidth = this.getTotalItemsWidthInMatcher();\n const [totalVisibleItemsWidth, visibleItems] = this.getTotalVisibleItems();\n\n this.hiddenItems = (this.selected as ArrayLike<KbqOptionBase>).length - visibleItems;\n this._changeDetectorRef.detectChanges();\n\n if (this.hiddenItems) {\n const itemsCounter = this.trigger.nativeElement.querySelector('.kbq-select__match-hidden-text');\n const matcherList = this.trigger.nativeElement.querySelector('.kbq-select__match-list');\n\n const itemsCounterShowed = itemsCounter.offsetTop < itemsCounter.offsetHeight;\n const itemsCounterWidth: number = Math.floor(itemsCounter.getBoundingClientRect().width);\n\n const matcherListWidth: number = Math.floor(matcherList.getBoundingClientRect().width);\n const matcherWidth: number = matcherListWidth + (itemsCounterShowed ? itemsCounterWidth : 0);\n\n if (itemsCounterShowed && totalItemsWidth < matcherWidth) {\n this.hiddenItems = 0;\n this._changeDetectorRef.detectChanges();\n }\n\n if (\n totalVisibleItemsWidth === matcherListWidth ||\n totalVisibleItemsWidth + itemsCounterWidth < matcherListWidth\n ) {\n this._changeDetectorRef.markForCheck();\n\n return;\n }\n }\n\n this._changeDetectorRef.markForCheck();\n };\n\n getItemHeight(): number {\n return this.options.first ? this.options.first.getHeight() : 0;\n }\n\n handleClick($event: MouseEvent) {\n if (this.footer?.nativeElement.contains($event.target)) {\n this.close();\n }\n }\n\n /** @docs-private */\n setSelectedOptionsByClick(option: KbqOption) {\n if (this.multiple || this.multiline) {\n this.keyManager.setActiveItem(option);\n const options = this.options.toArray();\n\n let fromIndex = this.keyManager.previousActiveItemIndex;\n let toIndex = (this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex);\n const selectedOptionState = options[fromIndex].selected;\n\n if (toIndex === fromIndex) {\n this.selectionModel.toggle(option);\n\n return;\n }\n\n if (fromIndex > toIndex) {\n [fromIndex, toIndex] = [toIndex, fromIndex];\n }\n\n options\n .slice(fromIndex, toIndex + 1)\n .filter((item) => !item.disabled)\n .forEach((option) => {\n if (selectedOptionState) {\n option.select();\n } else {\n option.deselect();\n }\n });\n } else {\n this.selectionModel.toggle(option);\n }\n }\n\n /** @docs-private */\n protected shouldShowSearch(): boolean {\n return isUndefined(this.searchMinOptionsThreshold) || this.options.length >= this.searchMinOptionsThreshold;\n }\n\n private updateLocaleParams = () => {\n this.hiddenItemsText = this.localeService?.getParams('select').hiddenItemsText;\n\n this._changeDetectorRef.markForCheck();\n };\n\n private isVisible(): boolean {\n return this.elementRef.nativeElement.offsetTop < this.elementRef.nativeElement.offsetHeight;\n }\n\n private currentOverlayPosition(): number {\n const element = this.overlayDir.overlayRef.hostElement;\n\n return Array.from(this.overlayContainer.getContainerElement().childNodes).findIndex((node) => {\n return node.firstChild?.['id'] === element.firstChild?.['id'];\n });\n }\n\n private modalOverlayPosition(): number {\n return Array.from(this.overlayContainer.getContainerElement().childNodes).findIndex((childNode) =>\n (childNode as HTMLElement).classList.contains('kbq-modal-overlay')\n );\n }\n\n private closingActions() {\n // used for calling toggle on select from outside of component\n const outsidePointerEvents = this.overlayDir\n .overlayRef!.outsidePointerEvents()\n .pipe(delay(0))\n .pipe(\n filter(() => {\n if (this.overlayContainer.getContainerElement().childElementCount > 1) {\n return this.currentOverlayPosition() > this.modalOverlayPosition();\n }\n\n return true;\n })\n );\n\n return merge(outsidePointerEvents, this.overlayDir.overlayRef!.detachments());\n }\n\n private getHeightOfOptionsContainer(): number {\n return this.optionsContainer.nativeElement.getClientRects()[0]?.height;\n }\n\n private updateScrollSize(): void {\n if (!this.options.first) {\n return;\n }\n\n this.keyManager.withScrollSize(Math.floor(this.getHeightOfOptionsContainer() / this.options.first.getHeight()));\n }\n\n private getTotalItemsWidthInMatcher(): number {\n const triggerClone = this.buildTriggerClone();\n\n triggerClone.querySelector('.kbq-select__match-hidden-text')?.remove();\n this._renderer.appendChild(this.trigger.nativeElement, triggerClone);\n\n let totalItemsWidth: number = 0;\n const selectedItemsViewValueContainers = triggerClone.querySelectorAll<HTMLElement>('kbq-tag');\n\n selectedItemsViewValueContainers.forEach((item) => (totalItemsWidth += this.getItemWidth(item)));\n\n triggerClone.remove();\n\n return totalItemsWidth;\n }\n\n private getItemWidth(element: HTMLElement): number {\n const computedStyle = this.window.getComputedStyle(element);\n\n const width: number = parseInt(computedStyle.width);\n const marginLeft: number = parseInt(computedStyle.marginLeft);\n const marginRight: number = parseInt(computedStyle.marginRight);\n\n return width + marginLeft + marginRight + parseInt(SelectSizeMultipleContentGap);\n }\n\n /** Handles keyboard events while the select is closed. */\n private handleClosedKeydown(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n const isArrowKey = [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW].includes(keyCode);\n const isOpenKey = [ENTER, SPACE].includes(keyCode);\n\n // Open the select on ALT + arrow key to match the native <select>\n if (isOpenKey || ((this.multiSelection || event.altKey) && isArrowKey)) {\n event.preventDefault(); // prevents the page from scrolling down when pressing space\n this.open();\n } else if (!this.multiSelection) {\n this.keyManager.onKeydown(event);\n }\n }\n\n /** Handles keyboard events when the selected is open. */\n private handleOpenKeydown(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW;\n\n if ((isArrowKey && event.altKey) || keyCode === ESCAPE || keyCode === TAB) {\n // Close the select on ALT + arrow key to match the native <select>\n event.preventDefault();\n this.close();\n this.focus();\n } else if (keyCode === HOME) {\n event.preventDefault();\n\n this.keyManager.setFirstItemActive();\n } else if (keyCode === END) {\n event.preventDefault();\n\n this.keyManager.setLastItemActive();\n } else if (keyCode === PAGE_UP) {\n event.preventDefault();\n\n this.keyManager.setPreviousPageItemActive();\n } else if (keyCode === PAGE_DOWN) {\n event.preventDefault();\n\n this.keyManager.setNextPageItemActive();\n } else if ((keyCode === ENTER || keyCode === SPACE) && this.keyManager.activeItem) {\n event.preventDefault();\n this.keyManager.activeItem.selectViaInteraction();\n } else if (this.multiSelection && keyCode === A && event.ctrlKey) {\n this.selectAllHandler(event, this);\n } else {\n const previouslyFocusedIndex = this.keyManager.activeItemIndex;\n\n this.keyManager.onKeydown(event);\n\n if (\n this.multiSelection &&\n isArrowKey &&\n event.shiftKey &&\n this.keyManager.activeItem &&\n this.keyManager.activeItemIndex !== previouslyFocusedIndex\n ) {\n this.keyManager.activeItem.selectViaInteraction();\n }\n\n if (this.search) {\n this.search.focus();\n }\n\n if (this.search && (this.keyManager.isTyping() || [BACKSPACE, DELETE].includes(keyCode))) {\n setTimeout(() => this.highlightCorrectOption());\n }\n }\n }\n\n private initializeSelection(): void {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n this.setSelectionByValue(this.ngControl ? this.ngControl.value : this._value);\n });\n }\n\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n private setSelectionByValue(value: any | any[]): void {\n this.previousSelectionModelSelected = this.selectionModel.selected;\n\n if (this.multiSelection && value) {\n if (!Array.isArray(value)) {\n throw getKbqSelectNonArrayValueError();\n }\n\n this.selectionModel.clear();\n value.forEach((currentValue: any) => this.selectValue(currentValue));\n this.sortValues();\n } else {\n this.selectionModel.clear();\n const correspondingOption = this.selectValue(value);\n\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what option the user interacted with last.\n if (correspondingOption) {\n this.keyManager.setActiveItem(correspondingOption);\n }\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n private getCorrespondOption(value: any): KbqOptionBase | undefined {\n return [\n ...this.options.toArray(),\n ...this.previousSelectionModelSelected\n ].find((option: KbqOptionBase) => {\n try {\n // Treat null as a special reset value.\n\n return option.value != null && this.compareWith(option.value, value);\n } catch (error) {\n if (isDevMode()) {\n // Notify developers of errors in their comparator.\n // eslint-disable-next-line no-console\n console.warn(error);\n }\n\n return false;\n }\n });\n }\n\n /**\n * Finds and selects and option based on its value.\n * @returns Option that has the corresponding value.\n */\n private selectValue(value: any): KbqOption | undefined {\n const correspondingOption = this.getCorrespondOption(value);\n\n if (correspondingOption) {\n this.selectionModel.select(correspondingOption);\n } else if (this.withVirtualScroll) {\n const source = this.cdkVirtualForOf?.cdkVirtualForOf;\n const correspondingOptionVirtual =\n source instanceof Array ? source.find((item) => this.compareWith(item, value)) : undefined;\n\n if (correspondingOptionVirtual) {\n const kbqVirtualOption = new KbqVirtualOption(correspondingOptionVirtual, this.disabled);\n\n this.selectionModel.select(kbqVirtualOption);\n }\n }\n\n return correspondingOption as KbqOption;\n }\n\n /** Sets up a key manager to listen to keyboard events on the overlay panel. */\n private initKeyManager() {\n const typeAheadDebounce = 200;\n\n this.keyManager = new ActiveDescendantKeyManager<KbqOption>(this.options)\n .withTypeAhead(typeAheadDebounce, this.search ? -1 : 0)\n .withVerticalOrientation()\n .withHorizontalOrientation(this.isRtl() ? 'rtl' : 'ltr');\n\n this.keyManager.change.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.panelOpen && this.panel) {\n this.scrollActiveOptionIntoView();\n } else if (!this.panelOpen && !this.multiSelection && this.keyManager.activeItem) {\n this.keyManager.activeItem.selectViaInteraction();\n }\n });\n }\n\n /** Drops current option subscriptions and IDs and resets from scratch. */\n private resetOptions(): void {\n this.optionSelectionChanges\n .pipe(takeUntilDestroyed(this.destroyRef), takeUntil(this.options.changes))\n .subscribe((event) => {\n this.onSelect(event.source, event.isUserInput);\n\n if (event.isUserInput && !this.multiSelection && this.panelOpen) {\n this.close();\n this.focus();\n }\n });\n\n // Listen to changes in the internal state of the options and react accordingly.\n // Handles cases like the labels of the selected options changing.\n merge(...this.options.map((option) => option.stateChanges))\n .pipe(takeUntilDestroyed(this.destroyRef), takeUntil(this.options.changes))\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n });\n }\n\n /** Invoked when an option is clicked. */\n private onSelect(option: KbqOption, isUserInput: boolean): void {\n const wasSelected = this.selectionModel.isSelected(option);\n\n if (option.value == null && !this.multiSelection) {\n option.deselect();\n this.selectionModel.clear();\n this.propagateChanges(option.value);\n } else {\n if (option.selected) {\n this.selectionModel.select(option);\n } else {\n this.selectionModel.deselect(option);\n }\n\n if (isUserInput) {\n this.keyManager.setActiveItem(option);\n }\n\n if (this.multiSelection) {\n this.sortValues();\n }\n }\n\n if (wasSelected !== this.selectionModel.isSelected(option)) {\n this.propagateChanges();\n }\n\n this.stateChanges.next();\n }\n\n /** Sorts the selected values in the selected based on their order in the panel. */\n private sortValues() {\n if (this.multiSelection) {\n const options = this.options.toArray();\n\n this.selectionModel.sort((a, b) =>\n this.sortComparator ? this.sortComparator(a, b, options) : a.value - b.value\n );\n this.stateChanges.next();\n }\n }\n\n /** Emits change event to set the model value. */\n private propagateChanges(fallbackValue?: any): void {\n let valueToEmit: any;\n\n if (this.multiSelection) {\n valueToEmit = (this.selected as KbqOption[]).map((option) => option.value);\n } else {\n valueToEmit = this.selected ? (this.selected as KbqOption).value : fallbackValue;\n }\n\n this._value = valueToEmit;\n this.valueChange.emit(valueToEmit);\n this.onChange(valueToEmit);\n this.selectionChange.emit(new KbqSelectChange(this, valueToEmit));\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Highlights the selected item. If no option is selected, it will highlight\n * the first item instead.\n */\n private highlightCorrectOption(): void {\n if (this.keyManager) {\n if (this.empty || !this.firstSelected || this.firstFiltered) {\n this.keyManager.setFirstItemActive();\n } else {\n this.keyManager.setActiveItem(this.firstSelected as KbqOption);\n }\n }\n }\n\n /** Scrolls the active option into view. */\n private scrollActiveOptionIntoView(): void {\n this.keyManager.activeItem?.focus();\n }\n\n /** Gets how wide the overlay panel should be. */\n private getOverlayWidth(origin?: ElementRef | CdkOverlayOrigin): string | number {\n if (this.panelWidth === 'auto') {\n const elementRef = origin instanceof CdkOverlayOrigin ? origin.elementRef : origin || this.elementRef;\n\n return elementRef.nativeElement.getBoundingClientRect().width;\n }\n\n return this.panelWidth ?? '';\n }\n\n /** Comparison function to specify which option is displayed. Defaults to object equality. */\n private _compareWith = (o1: any, o2: any) => o1 === o2;\n\n /** Function for handling the combination Ctrl + A (select all). By default, the internal handler is used. */\n private _selectAllHandler(event: KeyboardEvent, select: KbqSelect): void {\n event.preventDefault();\n\n const hasDeselectedOptions = select.options.some((option) => !option.selected);\n\n select.options.forEach((option) => {\n if (hasDeselectedOptions && !option.disabled) {\n option.select();\n } else {\n option.deselect();\n }\n });\n }\n\n private getTotalVisibleItems(): [number, number] {\n const triggerClone = this.buildTriggerClone();\n\n this._renderer.setStyle(triggerClone.querySelector('.kbq-select__match-hidden-text'), 'display', 'block');\n this._renderer.appendChild(this.trigger.nativeElement, triggerClone);\n\n let visibleItemsCount: number = 0;\n let totalVisibleItemsWidth: number = 0;\n\n (triggerClone.querySelectorAll('kbq-tag') as NodeListOf<HTMLElement>).forEach((item) => {\n if (item.offsetTop < item.offsetHeight) {\n totalVisibleItemsWidth += this.getItemWidth(item);\n visibleItemsCount++;\n }\n });\n\n triggerClone.remove();\n\n return [totalVisibleItemsWidth, visibleItemsCount];\n }\n\n private buildTriggerClone(): HTMLDivElement {\n const triggerClone = this.trigger.nativeElement.cloneNode(true);\n\n this._renderer.setStyle(triggerClone, 'position', 'absolute');\n this._renderer.setStyle(triggerClone, 'visibility', 'hidden');\n this._renderer.setStyle(triggerClone, 'top', '-100%');\n this._renderer.setStyle(triggerClone, 'left', '0');\n\n return triggerClone;\n }\n}\n","<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiline]=\"multiline\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n @if (!!customMatcher) {\n <ng-content select=\"kbq-select-matcher, [kbq-select-matcher]\" />\n } @else {\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n } @else {\n @if (!!customTrigger) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiSelection) {\n <div\n [class.kbq-select__match-list]=\"!multiline\"\n [class.kbq-select__multiline-match-list]=\"multiline\"\n >\n @if (!customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [color]=\"colorForState\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n >\n {{ option.viewValue }}\n @if (!option.disabled && !disabled) {\n <i\n kbq-icon=\"kbq-xmark-s_16\"\n kbqTagRemove\n (click)=\"onRemoveMatcherItem(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n }\n @if (customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"$any(customTagTemplateRef)\"\n [ngTemplateOutletContext]=\"{ $implicit: option, select: this }\"\n />\n }\n }\n </div>\n\n @if (!multiline) {\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n }\n } @else {\n <span class=\"kbq-select__matcher-text\">\n {{ triggerValue }}\n </span>\n }\n </div>\n }\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n (keydown.enter)=\"clearValue($event)\"\n (keydown.space)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\" [color]=\"colorForState\"></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClass\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n class=\"kbq-select__panel {{ getPanelTheme() }}\"\n cdkMonitorSubtreeFocus\n [ngClass]=\"panelClass\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search && shouldShowSearch()) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content kbq-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n >\n @if (isEmptySearchResult) {\n <div class=\"kbq-select__no-options-message\">\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n </div>\n }\n <ng-content />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-select-footer]\" />\n </div>\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n KBQ_SELECT_SCROLL_STRATEGY_PROVIDER,\n KbqOptionModule,\n KbqSelectFooter,\n KbqSelectMatcher,\n KbqSelectSearch,\n KbqSelectSearchEmptyResult,\n KbqSelectTrigger\n} from '@koobiq/components/core';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTagsModule } from '@koobiq/components/tags';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { KbqOptionTooltip } from './select-option.directive';\nimport { KbqSelect } from './select.component';\n\n@NgModule({\n imports: [\n OverlayModule,\n KbqOptionModule,\n KbqIconModule,\n KbqTagsModule,\n KbqToolTipModule,\n KbqSelectSearch,\n KbqSelectFooter,\n KbqSelectMatcher,\n KbqSelectTrigger,\n KbqSelectSearchEmptyResult,\n NgClass,\n NgTemplateOutlet,\n A11yModule,\n KbqSelect,\n KbqOptionTooltip\n ],\n exports: [\n KbqSelect,\n KbqOptionTooltip,\n KbqOptionModule,\n KbqSelectSearch,\n KbqSelectFooter,\n KbqSelectMatcher,\n KbqSelectTrigger,\n KbqSelectSearchEmptyResult,\n KbqFormFieldModule\n ],\n providers: [KBQ_SELECT_SCROLL_STRATEGY_PROVIDER]\n})\nexport class KbqSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["SelectSizeMultipleContentGap"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { DOCUMENT, CommonModule } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { Directive, Input, inject, Renderer2, ChangeDetectorRef, EventEmitter, afterNextRender, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ContentChild, NgModule } from '@angular/core';
3
+ import { Input, Directive, inject, Renderer2, ChangeDetectorRef, EventEmitter, afterNextRender, ContentChild, Output, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
4
4
  import { isControl, isInput, isLeftBracket, isRightBracket } from '@koobiq/cdk/keycodes';
5
- import { trigger, state, style, transition, animate } from '@angular/animations';
5
+ import { trigger, state, transition, style, animate } from '@angular/animations';
6
6
 
7
7
  var KbqSidebarAnimationState;
8
8
  (function (KbqSidebarAnimationState) {
@@ -32,10 +32,10 @@ var SidebarPositions;
32
32
  SidebarPositions["Right"] = "right";
33
33
  })(SidebarPositions || (SidebarPositions = {}));
34
34
  class KbqSidebarOpened {
35
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqSidebarOpened, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqSidebarOpened, selector: "[kbq-sidebar-opened]", inputs: { minWidth: "minWidth", width: "width", maxWidth: "maxWidth" }, host: { classAttribute: "kbq-sidebar-opened" }, exportAs: ["kbqSidebarOpened"], ngImport: i0 }); }
35
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqSidebarOpened, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: KbqSidebarOpened, isStandalone: true, selector: "[kbq-sidebar-opened]", inputs: { minWidth: "minWidth", width: "width", maxWidth: "maxWidth" }, host: { classAttribute: "kbq-sidebar-opened" }, exportAs: ["kbqSidebarOpened"], ngImport: i0 }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqSidebarOpened, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqSidebarOpened, decorators: [{
39
39
  type: Directive,
40
40
  args: [{
41
41
  selector: '[kbq-sidebar-opened]',
@@ -52,10 +52,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
52
52
  type: Input
53
53
  }] } });
54
54
  class KbqSidebarClosed {
55
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqSidebarClosed, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
56
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqSidebarClosed, selector: "[kbq-sidebar-closed]", inputs: { width: "width" }, host: { classAttribute: "kbq-sidebar-closed" }, exportAs: ["kbqSidebarClosed"], ngImport: i0 }); }
55
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqSidebarClosed, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
56
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: KbqSidebarClosed, isStandalone: true, selector: "[kbq-sidebar-closed]", inputs: { width: "width" }, host: { classAttribute: "kbq-sidebar-closed" }, exportAs: ["kbqSidebarClosed"], ngImport: i0 }); }
57
57
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqSidebarClosed, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqSidebarClosed, decorators: [{
59
59
  type: Directive,
60
60
  args: [{
61
61
  selector: '[kbq-sidebar-closed]',
@@ -162,10 +162,10 @@ class KbqSidebar {
162
162
  saveWidth() {
163
163
  this.params.openedStateWidth = `${this.elementRef.nativeElement.offsetWidth}px`;
164
164
  }
165
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqSidebar, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
166
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: KbqSidebar, selector: "kbq-sidebar", inputs: { opened: "opened", position: "position" }, outputs: { stateChanged: "stateChanged" }, host: { listeners: { "@state.start": "onAnimationStart()", "@state.done": "onAnimationDone()" }, properties: { "@state": "{\n value: animationState,\n params: params\n }" }, classAttribute: "kbq-sidebar" }, queries: [{ propertyName: "openedContent", first: true, predicate: KbqSidebarOpened, descendants: true }, { propertyName: "closedContent", first: true, predicate: KbqSidebarClosed, descendants: true }], exportAs: ["kbqSidebar"], ngImport: i0, template: "@if (internalState) {\n <ng-content select=\"[kbq-sidebar-opened]\" />\n} @else {\n <ng-content select=\"[kbq-sidebar-closed]\" />\n}\n", styles: [".kbq-sidebar{display:inline-block;height:100%;overflow:hidden}.kbq-sidebar-opened,.kbq-sidebar-closed{height:100%}\n"], animations: [kbqSidebarAnimations.sidebarState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
165
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqSidebar, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
166
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: KbqSidebar, isStandalone: true, selector: "kbq-sidebar", inputs: { opened: "opened", position: "position" }, outputs: { stateChanged: "stateChanged" }, host: { listeners: { "@state.start": "onAnimationStart()", "@state.done": "onAnimationDone()" }, properties: { "@state": "{\n value: animationState,\n params: params\n }" }, classAttribute: "kbq-sidebar" }, queries: [{ propertyName: "openedContent", first: true, predicate: KbqSidebarOpened, descendants: true }, { propertyName: "closedContent", first: true, predicate: KbqSidebarClosed, descendants: true }], exportAs: ["kbqSidebar"], ngImport: i0, template: "@if (internalState) {\n <ng-content select=\"[kbq-sidebar-opened]\" />\n} @else {\n <ng-content select=\"[kbq-sidebar-closed]\" />\n}\n", styles: [".kbq-sidebar{display:inline-block;height:100%;overflow:hidden}.kbq-sidebar-opened,.kbq-sidebar-closed{height:100%}\n"], animations: [kbqSidebarAnimations.sidebarState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
167
167
  }
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqSidebar, decorators: [{
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqSidebar, decorators: [{
169
169
  type: Component,
170
170
  args: [{ selector: 'kbq-sidebar', exportAs: 'kbqSidebar', host: {
171
171
  class: 'kbq-sidebar',
@@ -191,23 +191,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
191
191
  }] } });
192
192
 
193
193
  class KbqSidebarModule {
194
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqSidebarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
195
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: KbqSidebarModule, declarations: [KbqSidebarClosed,
196
- KbqSidebarOpened,
197
- KbqSidebar], imports: [CommonModule], exports: [KbqSidebarClosed,
194
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqSidebarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
195
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: KbqSidebarModule, imports: [CommonModule, KbqSidebarClosed, KbqSidebarOpened, KbqSidebar], exports: [KbqSidebarClosed,
198
196
  KbqSidebarOpened,
199
197
  KbqSidebar] }); }
200
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqSidebarModule, imports: [CommonModule] }); }
198
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqSidebarModule, imports: [CommonModule] }); }
201
199
  }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqSidebarModule, decorators: [{
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqSidebarModule, decorators: [{
203
201
  type: NgModule,
204
202
  args: [{
205
- imports: [CommonModule],
206
- declarations: [
207
- KbqSidebarClosed,
208
- KbqSidebarOpened,
209
- KbqSidebar
210
- ],
203
+ imports: [CommonModule, KbqSidebarClosed, KbqSidebarOpened, KbqSidebar],
211
204
  exports: [
212
205
  KbqSidebarClosed,
213
206
  KbqSidebarOpened,