@koobiq/components 19.8.3 → 20.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 (732) hide show
  1. package/accordion/accordion-trigger.component.scss +0 -18
  2. package/accordion/accordion.component.scss +9 -2
  3. package/accordion/index.d.ts +238 -1
  4. package/actions-panel/index.d.ts +304 -5
  5. package/alert/_alert-theme.scss +0 -4
  6. package/alert/alert-tokens.scss +4 -4
  7. package/alert/index.d.ts +54 -1
  8. package/app-switcher/app-switcher-dropdown-app.scss +2 -0
  9. package/app-switcher/index.d.ts +239 -1
  10. package/autocomplete/index.d.ts +265 -1
  11. package/badge/index.d.ts +57 -1
  12. package/breadcrumbs/breadcrumbs.scss +4 -0
  13. package/breadcrumbs/index.d.ts +244 -1
  14. package/button/button-group.scss +42 -2
  15. package/button/index.d.ts +153 -1
  16. package/button-toggle/button-toggle.scss +23 -0
  17. package/button-toggle/index.d.ts +157 -1
  18. package/checkbox/checkbox.scss +5 -4
  19. package/checkbox/index.d.ts +159 -1
  20. package/clamped-text/index.d.ts +145 -4
  21. package/code-block/_code-block-theme.scss +0 -6
  22. package/code-block/code-block-tokens.scss +0 -2
  23. package/code-block/index.d.ts +383 -1
  24. package/content-panel/content-panel.scss +0 -8
  25. package/content-panel/index.d.ts +158 -2
  26. package/core/highlight/_highlight-theme.scss +9 -0
  27. package/core/index.d.ts +4794 -1
  28. package/core/styles/_koobiq-theme.scss +1 -0
  29. package/core/styles/common/_animation.scss +4 -0
  30. package/core/styles/common/_overlay.scss +3 -4
  31. package/core/styles/theming/_components-theming.scss +1 -63
  32. package/core/styles/theming/_scrollbar-theme.scss +4 -0
  33. package/datepicker/_datepicker-theme.scss +1 -1
  34. package/datepicker/datepicker-toggle.scss +3 -3
  35. package/datepicker/index.d.ts +699 -1
  36. package/divider/index.d.ts +20 -1
  37. package/dl/index.d.ts +38 -1
  38. package/dropdown/dropdown.scss +2 -2
  39. package/dropdown/index.d.ts +473 -1
  40. package/dynamic-translation/index.d.ts +81 -2
  41. package/ellipsis-center/index.d.ts +38 -1
  42. package/empty-state/index.d.ts +45 -1
  43. package/fesm2022/koobiq-components-accordion.mjs +104 -115
  44. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  45. package/fesm2022/koobiq-components-actions-panel.mjs +16 -16
  46. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-alert.mjs +35 -49
  48. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-app-switcher.mjs +82 -87
  50. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  51. package/fesm2022/koobiq-components-autocomplete.mjs +294 -304
  52. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-badge.mjs +35 -42
  54. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  55. package/fesm2022/koobiq-components-breadcrumbs.mjs +79 -101
  56. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  57. package/fesm2022/koobiq-components-button-toggle.mjs +92 -88
  58. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  59. package/fesm2022/koobiq-components-button.mjs +56 -51
  60. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  61. package/fesm2022/koobiq-components-checkbox.mjs +50 -52
  62. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  63. package/fesm2022/koobiq-components-clamped-text.mjs +46 -49
  64. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  65. package/fesm2022/koobiq-components-code-block.mjs +115 -136
  66. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  67. package/fesm2022/koobiq-components-content-panel.mjs +90 -107
  68. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  69. package/fesm2022/koobiq-components-core.mjs +2048 -703
  70. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  71. package/fesm2022/koobiq-components-datepicker.mjs +285 -349
  72. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  73. package/fesm2022/koobiq-components-divider.mjs +14 -25
  74. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  75. package/fesm2022/koobiq-components-dl.mjs +30 -31
  76. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  77. package/fesm2022/koobiq-components-dropdown.mjs +159 -160
  78. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  79. package/fesm2022/koobiq-components-dynamic-translation.mjs +23 -23
  80. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  81. package/fesm2022/koobiq-components-ellipsis-center.mjs +16 -21
  82. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  83. package/fesm2022/koobiq-components-empty-state.mjs +35 -39
  84. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  85. package/fesm2022/koobiq-components-file-upload.mjs +160 -248
  86. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  87. package/fesm2022/koobiq-components-filter-bar.mjs +1160 -1184
  88. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  89. package/fesm2022/koobiq-components-flag.mjs +66 -0
  90. package/fesm2022/koobiq-components-flag.mjs.map +1 -0
  91. package/fesm2022/koobiq-components-form-field.mjs +211 -430
  92. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  93. package/fesm2022/koobiq-components-icon.mjs +42 -43
  94. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  95. package/fesm2022/koobiq-components-inline-edit.mjs +85 -61
  96. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  97. package/fesm2022/koobiq-components-input.mjs +116 -155
  98. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  99. package/fesm2022/koobiq-components-link.mjs +38 -53
  100. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  101. package/fesm2022/koobiq-components-list.mjs +138 -128
  102. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  103. package/fesm2022/koobiq-components-loader-overlay.mjs +38 -45
  104. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-markdown.mjs +31 -35
  106. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-modal.mjs +174 -164
  108. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-navbar.mjs +164 -169
  110. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  111. package/fesm2022/koobiq-components-notification-center.mjs +80 -59
  112. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  113. package/fesm2022/koobiq-components-overflow-items.mjs +40 -36
  114. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  115. package/fesm2022/koobiq-components-popover.mjs +94 -85
  116. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  117. package/fesm2022/koobiq-components-progress-bar.mjs +24 -30
  118. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-progress-spinner.mjs +25 -32
  120. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-radio.mjs +95 -85
  122. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-resizer.mjs +17 -17
  124. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-scrollbar.mjs +69 -60
  126. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  127. package/fesm2022/koobiq-components-search-expandable.mjs +44 -35
  128. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-select.mjs +279 -244
  130. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-sidebar.mjs +63 -55
  132. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  133. package/fesm2022/koobiq-components-sidepanel.mjs +88 -128
  134. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  135. package/fesm2022/koobiq-components-skeleton.mjs +13 -13
  136. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  137. package/fesm2022/koobiq-components-split-button.mjs +29 -22
  138. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  139. package/fesm2022/koobiq-components-splitter.mjs +114 -96
  140. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  141. package/fesm2022/koobiq-components-table.mjs +23 -23
  142. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  143. package/fesm2022/koobiq-components-tabs.mjs +260 -275
  144. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  145. package/fesm2022/koobiq-components-tags.mjs +179 -267
  146. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  147. package/fesm2022/koobiq-components-textarea.mjs +42 -68
  148. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-time-range.mjs +65 -66
  150. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-timepicker.mjs +46 -38
  152. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-timezone.mjs +58 -58
  154. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-title.mjs +150 -39
  156. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-toast.mjs +54 -69
  158. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-toggle.mjs +51 -63
  160. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  161. package/fesm2022/koobiq-components-tooltip.mjs +141 -121
  162. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  163. package/fesm2022/koobiq-components-top-bar.mjs +22 -25
  164. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  165. package/fesm2022/koobiq-components-tree-select.mjs +264 -231
  166. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  167. package/fesm2022/koobiq-components-tree.mjs +273 -239
  168. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  169. package/fesm2022/koobiq-components-username.mjs +62 -49
  170. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  171. package/file-upload/file-upload-tokens.scss +1 -0
  172. package/file-upload/index.d.ts +577 -1
  173. package/filter-bar/_filter-bar-theme.scss +86 -0
  174. package/filter-bar/filter-bar-tokens.scss +6 -0
  175. package/filter-bar/filter-bar.scss +10 -4
  176. package/filter-bar/filter-refresher.scss +1 -1
  177. package/filter-bar/filters.scss +23 -19
  178. package/filter-bar/index.d.ts +1165 -1
  179. package/filter-bar/pipes/base-pipe.scss +14 -35
  180. package/filter-bar/pipes/pipe-date.scss +20 -14
  181. package/filter-bar/pipes/pipe-multi-tree-select.scss +5 -3
  182. package/filter-bar/pipes/pipe-multiselect.scss +5 -3
  183. package/filter-bar/pipes/pipe-readonly.scss +4 -13
  184. package/filter-bar/pipes/pipe-select.scss +3 -1
  185. package/filter-bar/pipes/pipe-tree-select.scss +3 -1
  186. package/flag/flag.scss +53 -0
  187. package/flag/index.d.ts +44 -0
  188. package/form-field/index.d.ts +569 -1
  189. package/icon/index.d.ts +162 -1
  190. package/index.d.ts +2 -1
  191. package/inline-edit/index.d.ts +176 -2
  192. package/inline-edit/inline-edit.scss +7 -7
  193. package/input/index.d.ts +339 -1
  194. package/link/index.d.ts +56 -1
  195. package/link/link-tokens.scss +2 -2
  196. package/list/index.d.ts +229 -1
  197. package/loader-overlay/index.d.ts +57 -1
  198. package/loader-overlay/loader-overlay-tokens.scss +1 -1
  199. package/markdown/index.d.ts +68 -1
  200. package/modal/_modal-animation.scss +6 -6
  201. package/modal/_modal-theme.scss +3 -6
  202. package/modal/index.d.ts +313 -1
  203. package/modal/modal.scss +15 -0
  204. package/navbar/index.d.ts +305 -1
  205. package/navbar/navbar.scss +1 -2
  206. package/notification-center/index.d.ts +322 -1
  207. package/notification-center/notification-center.scss +14 -9
  208. package/notification-center/notification-item.scss +2 -1
  209. package/overflow-items/index.d.ts +162 -2
  210. package/package.json +13 -17
  211. package/popover/index.d.ts +182 -1
  212. package/popover/popover.scss +8 -12
  213. package/prebuilt-themes/dark-theme.css +1 -1
  214. package/prebuilt-themes/light-theme.css +1 -1
  215. package/prebuilt-themes/theme.css +1 -1
  216. package/progress-bar/index.d.ts +31 -1
  217. package/progress-bar/progress-bar.scss +4 -0
  218. package/progress-spinner/index.d.ts +37 -1
  219. package/progress-spinner/progress-spinner.scss +5 -1
  220. package/radio/index.d.ts +203 -1
  221. package/radio/radio.scss +18 -4
  222. package/resizer/index.d.ts +85 -2
  223. package/schematics/collection.json +10 -0
  224. package/schematics/migrations/css-selectors/index.js +1 -1
  225. package/schematics/migrations/deprecated-icons/index.js +1 -1
  226. package/schematics/migrations/filter-bar-signals/README.md +66 -0
  227. package/schematics/migrations/filter-bar-signals/data.js +72 -0
  228. package/schematics/migrations/filter-bar-signals/index.js +316 -0
  229. package/schematics/migrations/filter-bar-signals/schema.json +20 -0
  230. package/schematics/migrations/new-icons-pack/index.js +1 -1
  231. package/schematics/migrations/v20-upgrade/README.md +72 -0
  232. package/schematics/migrations/v20-upgrade/data.js +274 -0
  233. package/schematics/migrations/v20-upgrade/index.js +222 -0
  234. package/schematics/migrations/v20-upgrade/schema.json +20 -0
  235. package/schematics/migrations.json +15 -0
  236. package/schematics/ng-add/index.js +3 -4
  237. package/scrollbar/index.d.ts +136 -1
  238. package/search-expandable/index.d.ts +98 -1
  239. package/select/index.d.ts +701 -1
  240. package/sidebar/index.d.ts +93 -1
  241. package/sidepanel/index.d.ts +263 -1
  242. package/sidepanel/sidepanel.scss +0 -8
  243. package/skeleton/index.d.ts +26 -2
  244. package/skeleton/skeleton.scss +4 -0
  245. package/split-button/_split-button-theme.scss +2 -2
  246. package/split-button/index.d.ts +46 -1
  247. package/splitter/_splitter-theme.scss +2 -2
  248. package/splitter/index.d.ts +142 -1
  249. package/table/_table-theme.scss +4 -0
  250. package/table/index.d.ts +24 -1
  251. package/tabs/index.d.ts +647 -1
  252. package/tabs/tab-header.scss +1 -0
  253. package/tabs/tabs-tokens.scss +1 -1
  254. package/tags/index.d.ts +706 -1
  255. package/textarea/index.d.ts +133 -1
  256. package/time-range/index.d.ts +310 -7
  257. package/time-range/time-range.scss +0 -8
  258. package/timepicker/index.d.ts +193 -1
  259. package/timepicker/timepicker.scss +2 -2
  260. package/timezone/index.d.ts +123 -1
  261. package/title/index.d.ts +131 -1
  262. package/toast/index.d.ts +164 -1
  263. package/toggle/index.d.ts +84 -1
  264. package/tooltip/index.d.ts +211 -1
  265. package/top-bar/index.d.ts +33 -1
  266. package/top-bar/top-bar.scss +1 -2
  267. package/tree/_tree-theme.scss +2 -7
  268. package/tree/index.d.ts +733 -1
  269. package/tree/toggle.scss +5 -0
  270. package/tree/tree-option.scss +20 -11
  271. package/tree-select/_tree-select-theme.scss +1 -1
  272. package/tree-select/index.d.ts +384 -1
  273. package/username/index.d.ts +194 -5
  274. package/accordion/accordion-content.d.ts +0 -6
  275. package/accordion/accordion-content.directive.d.ts +0 -27
  276. package/accordion/accordion-header.d.ts +0 -6
  277. package/accordion/accordion-header.directive.d.ts +0 -7
  278. package/accordion/accordion-item.d.ts +0 -77
  279. package/accordion/accordion-trigger.component.d.ts +0 -24
  280. package/accordion/accordion-trigger.directive.d.ts +0 -21
  281. package/accordion/accordion.component.d.ts +0 -79
  282. package/accordion/accordion.module.d.ts +0 -12
  283. package/accordion/public-api.d.ts +0 -9
  284. package/actions-panel/actions-panel-config.d.ts +0 -82
  285. package/actions-panel/actions-panel-container.d.ts +0 -90
  286. package/actions-panel/actions-panel-ref.d.ts +0 -44
  287. package/actions-panel/actions-panel.d.ts +0 -85
  288. package/actions-panel/module.d.ts +0 -7
  289. package/alert/alert.component.d.ts +0 -43
  290. package/alert/alert.module.d.ts +0 -9
  291. package/alert/public-api.d.ts +0 -2
  292. package/app-switcher/app-switcher-animations.d.ts +0 -5
  293. package/app-switcher/app-switcher-dropdown-app.d.ts +0 -11
  294. package/app-switcher/app-switcher-dropdown-site.d.ts +0 -9
  295. package/app-switcher/app-switcher.d.ts +0 -198
  296. package/app-switcher/app-switcher.module.d.ts +0 -10
  297. package/app-switcher/kbq-app-switcher-list-item.d.ts +0 -16
  298. package/app-switcher/public-api.d.ts +0 -6
  299. package/autocomplete/autocomplete-origin.directive.d.ts +0 -12
  300. package/autocomplete/autocomplete-trigger.directive.d.ts +0 -169
  301. package/autocomplete/autocomplete.component.d.ts +0 -88
  302. package/autocomplete/autocomplete.module.d.ts +0 -12
  303. package/autocomplete/public-api.d.ts +0 -4
  304. package/badge/badge.component.d.ts +0 -46
  305. package/badge/badge.module.d.ts +0 -9
  306. package/badge/public-api.d.ts +0 -2
  307. package/breadcrumbs/breadcrumbs.d.ts +0 -121
  308. package/breadcrumbs/breadcrumbs.module.d.ts +0 -7
  309. package/breadcrumbs/breadcrumbs.types.d.ts +0 -22
  310. package/breadcrumbs/public-api.d.ts +0 -5
  311. package/breadcrumbs/roving-focus-group.directive.d.ts +0 -50
  312. package/breadcrumbs/roving-focus-item.directive.d.ts +0 -50
  313. package/breadcrumbs/utils.d.ts +0 -19
  314. package/button/button-group.d.ts +0 -45
  315. package/button/button-slots.d.ts +0 -11
  316. package/button/button.component.d.ts +0 -74
  317. package/button/button.dropdown-trigger.directive.d.ts +0 -14
  318. package/button/button.module.d.ts +0 -13
  319. package/button/public-api.d.ts +0 -5
  320. package/button-toggle/button-toggle.component.d.ts +0 -146
  321. package/button-toggle/button-toggle.module.d.ts +0 -9
  322. package/button-toggle/public-api.d.ts +0 -2
  323. package/checkbox/checkbox-config.d.ts +0 -13
  324. package/checkbox/checkbox-module.d.ts +0 -9
  325. package/checkbox/checkbox-required-validator.d.ts +0 -13
  326. package/checkbox/checkbox.d.ts +0 -128
  327. package/checkbox/public-api.d.ts +0 -4
  328. package/clamped-text/clamped-list.d.ts +0 -41
  329. package/clamped-text/clamped-text.d.ts +0 -65
  330. package/clamped-text/constants.d.ts +0 -34
  331. package/clamped-text/module.d.ts +0 -8
  332. package/code-block/code-block-highlight.d.ts +0 -98
  333. package/code-block/code-block.d.ts +0 -259
  334. package/code-block/code-block.module.d.ts +0 -7
  335. package/code-block/public-api.d.ts +0 -4
  336. package/code-block/types.d.ts +0 -36
  337. package/content-panel/content-panel.d.ts +0 -149
  338. package/content-panel/module.d.ts +0 -7
  339. package/core/animation/animation.d.ts +0 -37
  340. package/core/animation/fade-animations.d.ts +0 -2
  341. package/core/animation/index.d.ts +0 -3
  342. package/core/animation/select-animations.d.ts +0 -12
  343. package/core/common-behaviors/checkbox.d.ts +0 -5
  344. package/core/common-behaviors/clipboard.d.ts +0 -12
  345. package/core/common-behaviors/color.d.ts +0 -50
  346. package/core/common-behaviors/common-module.d.ts +0 -38
  347. package/core/common-behaviors/constructor.d.ts +0 -9
  348. package/core/common-behaviors/disabled.d.ts +0 -8
  349. package/core/common-behaviors/error-state.d.ts +0 -46
  350. package/core/common-behaviors/flex.d.ts +0 -4
  351. package/core/common-behaviors/hover.d.ts +0 -15
  352. package/core/common-behaviors/index.d.ts +0 -14
  353. package/core/common-behaviors/orientation.d.ts +0 -4
  354. package/core/common-behaviors/read-state.d.ts +0 -12
  355. package/core/common-behaviors/size.d.ts +0 -4
  356. package/core/common-behaviors/tabindex.d.ts +0 -8
  357. package/core/datetime/date-adapter.d.ts +0 -12
  358. package/core/datetime/date-formats.d.ts +0 -4
  359. package/core/datetime/index.d.ts +0 -2
  360. package/core/error/error-state-matcher.d.ts +0 -39
  361. package/core/form-field/field-sizing-content.d.ts +0 -21
  362. package/core/form-field/form-field-ref.d.ts +0 -28
  363. package/core/form-field/index.d.ts +0 -2
  364. package/core/formatters/date/formatter.d.ts +0 -11
  365. package/core/formatters/date/formatter.pipe.d.ts +0 -139
  366. package/core/formatters/filesize/config.d.ts +0 -66
  367. package/core/formatters/filesize/formatter.d.ts +0 -17
  368. package/core/formatters/filesize/index.d.ts +0 -3
  369. package/core/formatters/filesize/size.d.ts +0 -52
  370. package/core/formatters/index.d.ts +0 -13
  371. package/core/formatters/number/formatter.d.ts +0 -101
  372. package/core/forms/forms-module.d.ts +0 -7
  373. package/core/forms/forms.directive.d.ts +0 -22
  374. package/core/forms/index.d.ts +0 -3
  375. package/core/forms/validators.d.ts +0 -120
  376. package/core/highlight/highlight.pipe.d.ts +0 -10
  377. package/core/highlight/index.d.ts +0 -9
  378. package/core/line/line.d.ts +0 -23
  379. package/core/locales/en-US.d.ts +0 -176
  380. package/core/locales/es-LA.d.ts +0 -175
  381. package/core/locales/formatters.d.ts +0 -190
  382. package/core/locales/index.d.ts +0 -9
  383. package/core/locales/locale-service.d.ts +0 -1117
  384. package/core/locales/locale-service.module.d.ts +0 -6
  385. package/core/locales/pt-BR.d.ts +0 -175
  386. package/core/locales/ru-RU.d.ts +0 -176
  387. package/core/locales/tk-TM.d.ts +0 -176
  388. package/core/locales/types.d.ts +0 -77
  389. package/core/navbar/index.d.ts +0 -1
  390. package/core/navbar/rectangle-item.d.ts +0 -14
  391. package/core/option/action-container.d.ts +0 -5
  392. package/core/option/action.d.ts +0 -38
  393. package/core/option/index.d.ts +0 -5
  394. package/core/option/optgroup.d.ts +0 -16
  395. package/core/option/option-module.d.ts +0 -10
  396. package/core/option/option.d.ts +0 -170
  397. package/core/overlay/overlay-position-map.d.ts +0 -40
  398. package/core/pop-up/constants.d.ts +0 -56
  399. package/core/pop-up/focus-trap-strategy.d.ts +0 -5
  400. package/core/pop-up/index.d.ts +0 -5
  401. package/core/pop-up/pop-up-styles.d.ts +0 -2
  402. package/core/pop-up/pop-up-trigger.d.ts +0 -104
  403. package/core/pop-up/pop-up.d.ts +0 -57
  404. package/core/public-api.d.ts +0 -23
  405. package/core/select/common.d.ts +0 -59
  406. package/core/select/constants.d.ts +0 -22
  407. package/core/select/errors.d.ts +0 -19
  408. package/core/select/events.d.ts +0 -1
  409. package/core/select/index.d.ts +0 -4
  410. package/core/selection/constants.d.ts +0 -4
  411. package/core/selection/index.d.ts +0 -3
  412. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +0 -23
  413. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +0 -8
  414. package/core/services/measure-scrollbar.service.d.ts +0 -11
  415. package/core/services/theme.service.d.ts +0 -41
  416. package/core/title/index.d.ts +0 -1
  417. package/core/title/title-text-ref.d.ts +0 -6
  418. package/core/tokens/index.d.ts +0 -1
  419. package/core/tokens/window.d.ts +0 -5
  420. package/core/utils/dom.d.ts +0 -4
  421. package/core/utils/index.d.ts +0 -2
  422. package/core/utils/public-api.d.ts +0 -1
  423. package/core/utils/utils.d.ts +0 -25
  424. package/core/validation/index.d.ts +0 -1
  425. package/core/validation/validation.d.ts +0 -29
  426. package/core/version.d.ts +0 -2
  427. package/datepicker/calendar-body.component.d.ts +0 -55
  428. package/datepicker/calendar-header.component.d.ts +0 -51
  429. package/datepicker/calendar.component.d.ts +0 -89
  430. package/datepicker/datepicker-animations.d.ts +0 -9
  431. package/datepicker/datepicker-errors.d.ts +0 -2
  432. package/datepicker/datepicker-input.directive.d.ts +0 -221
  433. package/datepicker/datepicker-intl.d.ts +0 -32
  434. package/datepicker/datepicker-module.d.ts +0 -21
  435. package/datepicker/datepicker-toggle.component.d.ts +0 -57
  436. package/datepicker/datepicker.component.d.ts +0 -148
  437. package/datepicker/month-view.component.d.ts +0 -73
  438. package/datepicker/public-api.d.ts +0 -10
  439. package/divider/divider.component.d.ts +0 -18
  440. package/divider/divider.module.d.ts +0 -8
  441. package/divider/public-api.d.ts +0 -2
  442. package/dl/dl.component.d.ts +0 -26
  443. package/dl/dl.module.d.ts +0 -9
  444. package/dl/public-api.d.ts +0 -2
  445. package/dropdown/dropdown-animations.d.ts +0 -11
  446. package/dropdown/dropdown-content.directive.d.ts +0 -32
  447. package/dropdown/dropdown-errors.d.ts +0 -17
  448. package/dropdown/dropdown-item.component.d.ts +0 -52
  449. package/dropdown/dropdown-trigger.directive.d.ts +0 -167
  450. package/dropdown/dropdown.component.d.ts +0 -134
  451. package/dropdown/dropdown.module.d.ts +0 -13
  452. package/dropdown/dropdown.types.d.ts +0 -67
  453. package/dropdown/public-api.d.ts +0 -8
  454. package/dynamic-translation/dynamic-translation.d.ts +0 -72
  455. package/dynamic-translation/module.d.ts +0 -7
  456. package/ellipsis-center/ellipsis-center.directive.d.ts +0 -36
  457. package/ellipsis-center/public-api.d.ts +0 -1
  458. package/empty-state/empty-state.component.d.ts +0 -36
  459. package/empty-state/empty-state.module.d.ts +0 -9
  460. package/empty-state/public-api.d.ts +0 -2
  461. package/fesm2022/koobiq-components-navbar-ic.mjs +0 -863
  462. package/fesm2022/koobiq-components-navbar-ic.mjs.map +0 -1
  463. package/fesm2022/koobiq-components-risk-level.mjs +0 -75
  464. package/fesm2022/koobiq-components-risk-level.mjs.map +0 -1
  465. package/file-upload/dropzone.d.ts +0 -147
  466. package/file-upload/file-upload.d.ts +0 -102
  467. package/file-upload/file-upload.module.d.ts +0 -20
  468. package/file-upload/multiple-file-upload.component.d.ts +0 -138
  469. package/file-upload/primitives/file-drop.d.ts +0 -35
  470. package/file-upload/primitives/file-picker.d.ts +0 -82
  471. package/file-upload/primitives/index.d.ts +0 -2
  472. package/file-upload/public-api.d.ts +0 -7
  473. package/file-upload/single-file-upload.component.d.ts +0 -118
  474. package/filter-bar/filter-bar-button.d.ts +0 -14
  475. package/filter-bar/filter-bar.d.ts +0 -81
  476. package/filter-bar/filter-bar.module.d.ts +0 -17
  477. package/filter-bar/filter-bar.types.d.ts +0 -143
  478. package/filter-bar/filter-refresher.d.ts +0 -5
  479. package/filter-bar/filter-reset.d.ts +0 -15
  480. package/filter-bar/filter-search.d.ts +0 -54
  481. package/filter-bar/filter-search.scss +0 -12
  482. package/filter-bar/filters.d.ts +0 -122
  483. package/filter-bar/pipe-add.d.ts +0 -28
  484. package/filter-bar/pipe.directive.d.ts +0 -13
  485. package/filter-bar/pipes/base-pipe.d.ts +0 -74
  486. package/filter-bar/pipes/pipe-button.d.ts +0 -21
  487. package/filter-bar/pipes/pipe-date.d.ts +0 -65
  488. package/filter-bar/pipes/pipe-datetime.d.ts +0 -66
  489. package/filter-bar/pipes/pipe-multi-select.d.ts +0 -56
  490. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +0 -67
  491. package/filter-bar/pipes/pipe-readonly.d.ts +0 -7
  492. package/filter-bar/pipes/pipe-select.d.ts +0 -30
  493. package/filter-bar/pipes/pipe-state.d.ts +0 -21
  494. package/filter-bar/pipes/pipe-text.d.ts +0 -26
  495. package/filter-bar/pipes/pipe-title.d.ts +0 -27
  496. package/filter-bar/pipes/pipe-tree-select.d.ts +0 -42
  497. package/filter-bar/public-api.d.ts +0 -21
  498. package/form-field/cleaner.d.ts +0 -11
  499. package/form-field/error.d.ts +0 -8
  500. package/form-field/fieldset.d.ts +0 -27
  501. package/form-field/form-field-control.d.ts +0 -40
  502. package/form-field/form-field.d.ts +0 -298
  503. package/form-field/form-field.module.d.ts +0 -19
  504. package/form-field/hint.d.ts +0 -15
  505. package/form-field/label.d.ts +0 -6
  506. package/form-field/password-hint.d.ts +0 -53
  507. package/form-field/password-toggle.d.ts +0 -56
  508. package/form-field/prefix.d.ts +0 -6
  509. package/form-field/public-api.d.ts +0 -15
  510. package/form-field/reactive-password-hint.d.ts +0 -20
  511. package/form-field/stepper.d.ts +0 -59
  512. package/form-field/suffix.d.ts +0 -6
  513. package/form-field/validate.directive.d.ts +0 -53
  514. package/icon/icon-button.component.d.ts +0 -28
  515. package/icon/icon-item.component.d.ts +0 -11
  516. package/icon/icon-registry-providers.d.ts +0 -34
  517. package/icon/icon-registry.d.ts +0 -50
  518. package/icon/icon.component.d.ts +0 -33
  519. package/icon/icon.module.d.ts +0 -9
  520. package/icon/public-api.d.ts +0 -6
  521. package/inline-edit/inline-edit.d.ts +0 -161
  522. package/inline-edit/module.d.ts +0 -7
  523. package/input/input-errors.d.ts +0 -1
  524. package/input/input-number-validators.d.ts +0 -35
  525. package/input/input-number.d.ts +0 -96
  526. package/input/input-password.d.ts +0 -99
  527. package/input/input-value-accessor.d.ts +0 -4
  528. package/input/input.d.ts +0 -109
  529. package/input/input.module.d.ts +0 -14
  530. package/input/public-api.d.ts +0 -6
  531. package/link/link.component.d.ts +0 -53
  532. package/link/link.module.d.ts +0 -8
  533. package/link/public-api.d.ts +0 -2
  534. package/list/list-selection.component.d.ts +0 -196
  535. package/list/list.component.d.ts +0 -18
  536. package/list/list.module.d.ts +0 -11
  537. package/list/public-api.d.ts +0 -3
  538. package/loader-overlay/loader-overlay.component.d.ts +0 -47
  539. package/loader-overlay/loader-overlay.module.d.ts +0 -10
  540. package/loader-overlay/public-api.d.ts +0 -2
  541. package/markdown/markdown.component.d.ts +0 -31
  542. package/markdown/markdown.module.d.ts +0 -7
  543. package/markdown/markdown.service.d.ts +0 -19
  544. package/markdown/markdown.values.d.ts +0 -10
  545. package/markdown/public-api.d.ts +0 -4
  546. package/modal/css-unit.pipe.d.ts +0 -7
  547. package/modal/modal-control.service.d.ts +0 -20
  548. package/modal/modal-ref.class.d.ts +0 -37
  549. package/modal/modal-util.d.ts +0 -15
  550. package/modal/modal.component.d.ts +0 -141
  551. package/modal/modal.directive.d.ts +0 -20
  552. package/modal/modal.module.d.ts +0 -15
  553. package/modal/modal.service.d.ts +0 -42
  554. package/modal/modal.type.d.ts +0 -72
  555. package/modal/public-api.d.ts +0 -6
  556. package/navbar/navbar-brand.component.d.ts +0 -41
  557. package/navbar/navbar-item.component.d.ts +0 -131
  558. package/navbar/navbar-toggle.component.d.ts +0 -23
  559. package/navbar/navbar.component.d.ts +0 -68
  560. package/navbar/navbar.module.d.ts +0 -15
  561. package/navbar/public-api.d.ts +0 -6
  562. package/navbar/vertical-navbar.component.d.ts +0 -47
  563. package/navbar-ic/_navbar-ic-theme.scss +0 -81
  564. package/navbar-ic/index.d.ts +0 -1
  565. package/navbar-ic/navbar-ic-divider.scss +0 -7
  566. package/navbar-ic/navbar-ic-header.d.ts +0 -22
  567. package/navbar-ic/navbar-ic-header.scss +0 -49
  568. package/navbar-ic/navbar-ic-item.d.ts +0 -144
  569. package/navbar-ic/navbar-ic-item.scss +0 -92
  570. package/navbar-ic/navbar-ic-tokens.scss +0 -22
  571. package/navbar-ic/navbar-ic.animation.d.ts +0 -3
  572. package/navbar-ic/navbar-ic.d.ts +0 -118
  573. package/navbar-ic/navbar-ic.module.d.ts +0 -14
  574. package/navbar-ic/navbar-ic.scss +0 -32
  575. package/navbar-ic/public-api.d.ts +0 -4
  576. package/notification-center/notification-center-animations.d.ts +0 -5
  577. package/notification-center/notification-center.d.ts +0 -184
  578. package/notification-center/notification-center.module.d.ts +0 -7
  579. package/notification-center/notification-center.service.d.ts +0 -115
  580. package/notification-center/notification-item.d.ts +0 -27
  581. package/notification-center/public-api.d.ts +0 -4
  582. package/overflow-items/module.d.ts +0 -7
  583. package/overflow-items/overflow-items.d.ts +0 -152
  584. package/popover/popover-animations.d.ts +0 -4
  585. package/popover/popover-confirm.component.d.ts +0 -28
  586. package/popover/popover.component.d.ts +0 -139
  587. package/popover/popover.module.d.ts +0 -14
  588. package/popover/public-api.d.ts +0 -4
  589. package/progress-bar/progress-bar.component.d.ts +0 -20
  590. package/progress-bar/progress-bar.module.d.ts +0 -8
  591. package/progress-bar/public-api.d.ts +0 -2
  592. package/progress-spinner/progress-spinner.component.d.ts +0 -26
  593. package/progress-spinner/progress-spinner.module.d.ts +0 -9
  594. package/progress-spinner/public-api.d.ts +0 -2
  595. package/public-api.d.ts +0 -1
  596. package/radio/public-api.d.ts +0 -2
  597. package/radio/radio.component.d.ts +0 -200
  598. package/radio/radio.module.d.ts +0 -8
  599. package/resizer/module.d.ts +0 -7
  600. package/resizer/resizer.d.ts +0 -75
  601. package/risk-level/_risk-level-theme.scss +0 -74
  602. package/risk-level/index.d.ts +0 -1
  603. package/risk-level/public-api.d.ts +0 -2
  604. package/risk-level/risk-level-tokens.scss +0 -33
  605. package/risk-level/risk-level.component.d.ts +0 -21
  606. package/risk-level/risk-level.component.scss +0 -22
  607. package/risk-level/risk-level.module.d.ts +0 -12
  608. package/scrollbar/public-api.d.ts +0 -4
  609. package/scrollbar/scrollbar.component.d.ts +0 -37
  610. package/scrollbar/scrollbar.directive.d.ts +0 -29
  611. package/scrollbar/scrollbar.module.d.ts +0 -8
  612. package/scrollbar/scrollbar.types.d.ts +0 -33
  613. package/search-expandable/public-api.d.ts +0 -2
  614. package/search-expandable/search-expandable.d.ts +0 -89
  615. package/search-expandable/search-expandable.module.d.ts +0 -7
  616. package/select/public-api.d.ts +0 -4
  617. package/select/select-common.d.ts +0 -30
  618. package/select/select-option.directive.d.ts +0 -21
  619. package/select/select.component.d.ts +0 -627
  620. package/select/select.module.d.ts +0 -17
  621. package/sidebar/public-api.d.ts +0 -2
  622. package/sidebar/sidebar-animations.d.ts +0 -8
  623. package/sidebar/sidebar.component.d.ts +0 -80
  624. package/sidebar/sidebar.module.d.ts +0 -8
  625. package/sidepanel/public-api.d.ts +0 -6
  626. package/sidepanel/sidepanel-animations.d.ts +0 -20
  627. package/sidepanel/sidepanel-config.d.ts +0 -43
  628. package/sidepanel/sidepanel-container.component.d.ts +0 -67
  629. package/sidepanel/sidepanel-directives.d.ts +0 -61
  630. package/sidepanel/sidepanel-ref.d.ts +0 -36
  631. package/sidepanel/sidepanel.module.d.ts +0 -14
  632. package/sidepanel/sidepanel.service.d.ts +0 -58
  633. package/skeleton/module.d.ts +0 -7
  634. package/skeleton/skeleton.d.ts +0 -17
  635. package/split-button/public-api.d.ts +0 -2
  636. package/split-button/split-button.d.ts +0 -37
  637. package/split-button/split-button.module.d.ts +0 -7
  638. package/splitter/public-api.d.ts +0 -2
  639. package/splitter/splitter.component.d.ts +0 -136
  640. package/splitter/splitter.module.d.ts +0 -8
  641. package/table/public-api.d.ts +0 -2
  642. package/table/table.component.d.ts +0 -12
  643. package/table/table.module.d.ts +0 -9
  644. package/tabs/paginated-tab-header.d.ts +0 -182
  645. package/tabs/public-api.d.ts +0 -10
  646. package/tabs/tab-body.component.d.ts +0 -95
  647. package/tabs/tab-content.directive.d.ts +0 -9
  648. package/tabs/tab-group.component.d.ts +0 -137
  649. package/tabs/tab-header.component.d.ts +0 -34
  650. package/tabs/tab-label-wrapper.directive.d.ts +0 -29
  651. package/tabs/tab-label.directive.d.ts +0 -11
  652. package/tabs/tab-nav-bar.d.ts +0 -91
  653. package/tabs/tab.component.d.ts +0 -70
  654. package/tabs/tabs-animations.d.ts +0 -4
  655. package/tabs/tabs.module.d.ts +0 -20
  656. package/tags/public-api.d.ts +0 -5
  657. package/tags/tag-default-options.d.ts +0 -13
  658. package/tags/tag-input.d.ts +0 -110
  659. package/tags/tag-list.component.d.ts +0 -373
  660. package/tags/tag-text-control.d.ts +0 -10
  661. package/tags/tag.component.d.ts +0 -272
  662. package/tags/tag.module.d.ts +0 -10
  663. package/textarea/public-api.d.ts +0 -2
  664. package/textarea/textarea.component.d.ts +0 -123
  665. package/textarea/textarea.module.d.ts +0 -10
  666. package/time-range/constants.d.ts +0 -19
  667. package/time-range/module.d.ts +0 -10
  668. package/time-range/time-range-editor.d.ts +0 -65
  669. package/time-range/time-range-title-as-form-field.d.ts +0 -41
  670. package/time-range/time-range-title.d.ts +0 -18
  671. package/time-range/time-range.d.ts +0 -78
  672. package/time-range/time-range.service.d.ts +0 -25
  673. package/time-range/types.d.ts +0 -69
  674. package/timepicker/public-api.d.ts +0 -3
  675. package/timepicker/timepicker.constants.d.ts +0 -22
  676. package/timepicker/timepicker.directive.d.ts +0 -159
  677. package/timepicker/timepicker.module.d.ts +0 -11
  678. package/timezone/cities-by-filter.pipe.d.ts +0 -7
  679. package/timezone/public-api.d.ts +0 -6
  680. package/timezone/timezone-option.component.d.ts +0 -15
  681. package/timezone/timezone-option.directive.d.ts +0 -22
  682. package/timezone/timezone-select.component.d.ts +0 -16
  683. package/timezone/timezone.models.d.ts +0 -16
  684. package/timezone/timezone.module.d.ts +0 -20
  685. package/timezone/timezone.utils.d.ts +0 -22
  686. package/timezone/utc-offset.pipe.d.ts +0 -9
  687. package/title/public-api.d.ts +0 -2
  688. package/title/title.directive.d.ts +0 -33
  689. package/title/title.module.d.ts +0 -8
  690. package/toast/public-api.d.ts +0 -5
  691. package/toast/toast-animations.d.ts +0 -5
  692. package/toast/toast-container.component.d.ts +0 -19
  693. package/toast/toast.component.d.ts +0 -41
  694. package/toast/toast.module.d.ts +0 -8
  695. package/toast/toast.service.d.ts +0 -61
  696. package/toast/toast.type.d.ts +0 -44
  697. package/toggle/public-api.d.ts +0 -2
  698. package/toggle/toggle.component.d.ts +0 -77
  699. package/toggle/toggle.module.d.ts +0 -8
  700. package/tooltip/public-api.d.ts +0 -2
  701. package/tooltip/tooltip.animations.d.ts +0 -8
  702. package/tooltip/tooltip.component.d.ts +0 -156
  703. package/tooltip/tooltip.module.d.ts +0 -7
  704. package/top-bar/module.d.ts +0 -7
  705. package/top-bar/public-api.d.ts +0 -2
  706. package/top-bar/top-bar.d.ts +0 -25
  707. package/tree/control/base-tree-control.d.ts +0 -40
  708. package/tree/control/flat-tree-control.d.ts +0 -55
  709. package/tree/control/flat-tree-control.filters.d.ts +0 -27
  710. package/tree/control/nested-tree-control.d.ts +0 -19
  711. package/tree/control/tree-control.d.ts +0 -44
  712. package/tree/data-source/flat-data-source.d.ts +0 -80
  713. package/tree/data-source/nested-data-source.d.ts +0 -15
  714. package/tree/node.d.ts +0 -34
  715. package/tree/outlet.d.ts +0 -9
  716. package/tree/padding.directive.d.ts +0 -45
  717. package/tree/public-api.d.ts +0 -16
  718. package/tree/toggle.d.ts +0 -28
  719. package/tree/tree-base.d.ts +0 -96
  720. package/tree/tree-errors.d.ts +0 -25
  721. package/tree/tree-option.component.d.ts +0 -89
  722. package/tree/tree-selection.component.d.ts +0 -156
  723. package/tree/tree.d.ts +0 -6
  724. package/tree/tree.module.d.ts +0 -16
  725. package/tree-select/public-api.d.ts +0 -2
  726. package/tree-select/tree-select.component.d.ts +0 -360
  727. package/tree-select/tree-select.module.d.ts +0 -15
  728. package/username/constants.d.ts +0 -15
  729. package/username/module.d.ts +0 -8
  730. package/username/types.d.ts +0 -62
  731. package/username/username.d.ts +0 -68
  732. package/username/username.pipe.d.ts +0 -23
@@ -1,35 +1,591 @@
1
- import { trigger, state, transition, style, animate, group } from '@angular/animations';
2
1
  import * as i0 from '@angular/core';
3
- import { inject, ElementRef, Directive, isDevMode, Input, InjectionToken, Optional, Inject, NgModule, ChangeDetectorRef, LOCALE_ID, Type, Injectable, Renderer2, DestroyRef, afterNextRender, Pipe, ContentChildren, booleanAttribute, ChangeDetectionStrategy, ViewEncapsulation, Component, EventEmitter, Output, ViewChild, TemplateRef, NgZone, ViewContainerRef, RendererFactory2, Version } from '@angular/core';
4
- import { BidiModule, Directionality } from '@angular/cdk/bidi';
5
- import { DOCUMENT, CommonModule } from '@angular/common';
2
+ import { QueryList, inject, ElementRef, Directive, isDevMode, Input, ChangeDetectorRef, InjectionToken, LOCALE_ID, Type, Injectable, Renderer2, DestroyRef, afterNextRender, NgModule, Pipe, contentChildren, booleanAttribute, ViewEncapsulation, ChangeDetectionStrategy, Component, input, EventEmitter, Output, ViewChild, numberAttribute, signal, ApplicationRef, TemplateRef, NgZone, ViewContainerRef, RendererFactory2, Version } from '@angular/core';
3
+ import { Subject, Subscription, merge, fromEvent, map as map$1, BehaviorSubject, interval, pairwise } from 'rxjs';
4
+ import { tap, debounceTime, filter, map, distinctUntilChanged, delay } from 'rxjs/operators';
5
+ import { _getEventTarget, Platform } from '@angular/cdk/platform';
6
+ import { trigger, state, transition, style, animate, group } from '@angular/animations';
6
7
  import { coerceBooleanProperty, coerceNumberProperty, coerceCssPixelValue } from '@angular/cdk/coercion';
7
8
  import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
- import { merge, fromEvent, map, BehaviorSubject, Subject, interval, Subscription, pairwise } from 'rxjs';
9
- import * as i1 from '@koobiq/date-adapter';
10
9
  import { DateAdapter as DateAdapter$1 } from '@koobiq/date-adapter';
10
+ import { DOCUMENT } from '@angular/common';
11
11
  import { DateFormatter as DateFormatter$1 } from '@koobiq/date-formatter';
12
- import { Platform } from '@angular/cdk/platform';
13
12
  import { FocusMonitor } from '@angular/cdk/a11y';
14
- import { SPACE, ENTER, TAB, hasModifierKey, ESCAPE, HOME, END } from '@koobiq/cdk/keycodes';
15
- import { Overlay, ScrollDispatcher, CdkScrollable } from '@angular/cdk/overlay';
13
+ import { SharedResizeObserver } from '@angular/cdk/observers/private';
14
+ import { Overlay, OverlayContainer, ScrollDispatcher, CdkScrollable } from '@angular/cdk/overlay';
16
15
  import { TooltipSizeArrowSize } from '@koobiq/design-tokens';
16
+ import { Directionality } from '@angular/cdk/bidi';
17
17
  import { ComponentPortal } from '@angular/cdk/portal';
18
+ import { ViewportRuler } from '@angular/cdk/scrolling';
18
19
  import { AsyncScheduler } from 'rxjs/internal/scheduler/AsyncScheduler';
19
- import { distinctUntilChanged, filter, delay } from 'rxjs/operators';
20
+
21
+ const MAC_ENTER = 3;
22
+ const BACKSPACE = 8;
23
+ const TAB = 9;
24
+ const NUM_CENTER = 12;
25
+ const ENTER = 13;
26
+ const SHIFT = 16;
27
+ const CONTROL = 17;
28
+ const ALT = 18;
29
+ const PAUSE = 19;
30
+ const CAPS_LOCK = 20;
31
+ const ESCAPE = 27;
32
+ const SPACE = 32;
33
+ const PAGE_UP = 33;
34
+ const PAGE_DOWN = 34;
35
+ const END = 35;
36
+ const HOME = 36;
37
+ const LEFT_ARROW = 37;
38
+ const UP_ARROW = 38;
39
+ const RIGHT_ARROW = 39;
40
+ const DOWN_ARROW = 40;
41
+ const PLUS_SIGN = 43;
42
+ const PRINT_SCREEN = 44;
43
+ const INSERT = 45;
44
+ const DELETE = 46;
45
+ const ZERO = 48;
46
+ const ONE = 49;
47
+ const TWO = 50;
48
+ const THREE = 51;
49
+ const FOUR = 52;
50
+ const FIVE = 53;
51
+ const SIX = 54;
52
+ const SEVEN = 55;
53
+ const EIGHT = 56;
54
+ const NINE = 57;
55
+ const FF_SEMICOLON = 59; // Firefox (Gecko) fires this for semicolon instead of 186
56
+ const FF_EQUALS = 61; // Firefox (Gecko) fires this for equals instead of 187
57
+ const QUESTION_MARK = 63;
58
+ const AT_SIGN = 64;
59
+ const A = 65;
60
+ const B = 66;
61
+ const C = 67;
62
+ const D = 68;
63
+ const E = 69;
64
+ const F = 70;
65
+ const G = 71;
66
+ const H = 72;
67
+ const I = 73;
68
+ const J = 74;
69
+ const K = 75;
70
+ const L = 76;
71
+ const M = 77;
72
+ const N = 78;
73
+ const O = 79;
74
+ const P = 80;
75
+ const Q = 81;
76
+ const R = 82;
77
+ const S = 83;
78
+ const T = 84;
79
+ const U = 85;
80
+ const V = 86;
81
+ const W = 87;
82
+ const X = 88;
83
+ const Y = 89;
84
+ const Z = 90;
85
+ const META = 91; // WIN_KEY_LEFT
86
+ const MAC_WK_CMD_LEFT = 91;
87
+ const MAC_WK_CMD_RIGHT = 93;
88
+ const CONTEXT_MENU = 93;
89
+ const NUMPAD_ZERO = 96;
90
+ const NUMPAD_ONE = 97;
91
+ const NUMPAD_TWO = 98;
92
+ const NUMPAD_THREE = 99;
93
+ const NUMPAD_FOUR = 100;
94
+ const NUMPAD_FIVE = 101;
95
+ const NUMPAD_SIX = 102;
96
+ const NUMPAD_SEVEN = 103;
97
+ const NUMPAD_EIGHT = 104;
98
+ const NUMPAD_NINE = 105;
99
+ const NUMPAD_MULTIPLY = 106;
100
+ const NUMPAD_PLUS = 107;
101
+ const NUMPAD_MINUS = 109;
102
+ const NUMPAD_PERIOD = 110;
103
+ const NUMPAD_DIVIDE = 111;
104
+ const F1 = 112;
105
+ const F2 = 113;
106
+ const F3 = 114;
107
+ const F4 = 115;
108
+ const F5 = 116;
109
+ const F6 = 117;
110
+ const F7 = 118;
111
+ const F8 = 119;
112
+ const F9 = 120;
113
+ const F10 = 121;
114
+ const F11 = 122;
115
+ const F12 = 123;
116
+ const NUM_LOCK = 144;
117
+ const SCROLL_LOCK = 145;
118
+ const FIRST_MEDIA = 166;
119
+ const FF_MINUS = 173;
120
+ const MUTE = 173; // Firefox (Gecko) fires 181 for MUTE
121
+ const VOLUME_DOWN = 174; // Firefox (Gecko) fires 182 for VOLUME_DOWN
122
+ const VOLUME_UP = 175; // Firefox (Gecko) fires 183 for VOLUME_UP
123
+ const FF_MUTE = 181;
124
+ const FF_VOLUME_DOWN = 182;
125
+ const LAST_MEDIA = 183;
126
+ const FF_VOLUME_UP = 183;
127
+ const SEMICOLON = 186; // Firefox (Gecko) fires 59 for SEMICOLON
128
+ const EQUALS = 187; // Firefox (Gecko) fires 61 for EQUALS
129
+ const COMMA = 188;
130
+ const DASH = 189; // Firefox (Gecko) fires 173 for DASH/MINUS
131
+ const PERIOD = 190;
132
+ const SLASH = 191;
133
+ const APOSTROPHE = 192;
134
+ const TILDE = 192;
135
+ const OPEN_SQUARE_BRACKET = 219;
136
+ const BACKSLASH = 220;
137
+ const CLOSE_SQUARE_BRACKET = 221;
138
+ const SINGLE_QUOTE = 222;
139
+ const MAC_META = 224;
140
+ function hasModifierKey(event, ...modifiers) {
141
+ if (modifiers.length) {
142
+ return modifiers.some((modifier) => event[modifier]);
143
+ }
144
+ return event.altKey || event.shiftKey || event.ctrlKey || event.metaKey;
145
+ }
146
+ function isControl(event) {
147
+ const keyCode = event.keyCode;
148
+ switch (keyCode) {
149
+ case SHIFT:
150
+ case CONTROL:
151
+ case ALT:
152
+ return true;
153
+ default:
154
+ return event.metaKey;
155
+ }
156
+ }
157
+ function isNumberKey({ keyCode }) {
158
+ return keyCode >= ZERO && keyCode <= NINE;
159
+ }
160
+ function isNumpadKey({ keyCode }) {
161
+ return keyCode >= NUMPAD_ZERO && keyCode <= NUMPAD_NINE;
162
+ }
163
+ function isLetterKey({ keyCode }) {
164
+ return keyCode >= A && keyCode <= Z;
165
+ }
166
+ function isFunctionKey({ keyCode }) {
167
+ return keyCode >= F1 && keyCode <= F12;
168
+ }
169
+ function isVerticalMovement({ keyCode }) {
170
+ return [UP_ARROW, DOWN_ARROW, PAGE_DOWN, PAGE_UP, HOME, END].includes(keyCode);
171
+ }
172
+ function isHorizontalMovement({ keyCode }) {
173
+ return [LEFT_ARROW, RIGHT_ARROW, BACKSPACE, DELETE].includes(keyCode);
174
+ }
175
+ function isSelectAll(event) {
176
+ return (event.ctrlKey || event.metaKey) && event.keyCode === A;
177
+ }
178
+ function isCopy(event) {
179
+ return (event.ctrlKey || event.metaKey) && event.keyCode === C;
180
+ }
181
+ function isInput(event) {
182
+ const target = _getEventTarget(event);
183
+ return !!target && (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA');
184
+ }
185
+ function isLeftBracket(event) {
186
+ return event.code === 'BracketLeft';
187
+ }
188
+ function isRightBracket(event) {
189
+ return event.code === 'BracketRight';
190
+ }
191
+ function isDigit({ keyCode }) {
192
+ return [ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE].includes(keyCode);
193
+ }
20
194
 
21
195
  /**
22
- * @deprecated Will be removed in next major release. Use `KbqAnimationCurves` instead.
23
- *
24
- * @docs-private
196
+ * This class manages keyboard events for selectable lists. If you pass it a query list
197
+ * of items, it will set the active item correctly when arrow events occur.
25
198
  */
26
- var AnimationCurves;
27
- (function (AnimationCurves) {
28
- AnimationCurves["StandardCurve"] = "cubic-bezier(0.4,0.0,0.2,1)";
29
- AnimationCurves["DecelerationCurve"] = "cubic-bezier(0.0,0.0,0.2,1)";
30
- AnimationCurves["AccelerationCurve"] = "cubic-bezier(0.4,0.0,1,1)";
31
- AnimationCurves["SharpCurve"] = "cubic-bezier(0.4,0.0,0.6,1)";
32
- })(AnimationCurves || (AnimationCurves = {}));
199
+ class ListKeyManager {
200
+ // Index of the currently active item.
201
+ get activeItemIndex() {
202
+ return this._activeItemIndex;
203
+ }
204
+ // The active item.
205
+ get activeItem() {
206
+ return this._activeItem;
207
+ }
208
+ constructor(_items) {
209
+ this._items = _items;
210
+ /**
211
+ * Stream that emits any time the TAB key is pressed, so components can react
212
+ * when focus is shifted off of the list.
213
+ */
214
+ this.tabOut = new Subject();
215
+ /** Stream that emits whenever the active item of the list manager changes. */
216
+ this.change = new Subject();
217
+ this.previousActiveItemIndex = -1;
218
+ this._activeItemIndex = -1;
219
+ this.wrap = false;
220
+ this.letterKeyStream = new Subject();
221
+ this.typeaheadSubscription = Subscription.EMPTY;
222
+ this.vertical = true;
223
+ this.scrollSize = 0;
224
+ // Buffer for the letters that the user has pressed when the typeahead option is turned on.
225
+ this.pressedLetters = [];
226
+ this.homeAndEnd = false;
227
+ this.allowedModifierKeys = [];
228
+ /**
229
+ * Predicate function that can be used to check whether an item should be skipped
230
+ * by the key manager. By default, disabled items are skipped.
231
+ */
232
+ this.skipPredicateFn = (item) => item.disabled;
233
+ if (_items instanceof QueryList) {
234
+ _items.changes.subscribe((newItems) => {
235
+ if (this._activeItem) {
236
+ const itemArray = newItems.toArray();
237
+ const newIndex = itemArray.indexOf(this._activeItem);
238
+ if (newIndex > -1 && newIndex !== this._activeItemIndex) {
239
+ this._activeItemIndex = newIndex;
240
+ }
241
+ }
242
+ });
243
+ }
244
+ }
245
+ /** Gets whether the user is currently typing into the manager using the typeahead feature. */
246
+ isTyping() {
247
+ return this.pressedLetters.length > 0;
248
+ }
249
+ withScrollSize(scrollSize) {
250
+ this.scrollSize = scrollSize;
251
+ return this;
252
+ }
253
+ /**
254
+ * Modifier keys which are allowed to be held down and whose default actions will be prevented
255
+ * as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.
256
+ */
257
+ withAllowedModifierKeys(keys) {
258
+ this.allowedModifierKeys = keys;
259
+ return this;
260
+ }
261
+ /**
262
+ * Turns on wrapping mode, which ensures that the active item will wrap to
263
+ * the other end of list when there are no more items in the given direction.
264
+ */
265
+ withWrap(shouldWrap = true) {
266
+ this.wrap = shouldWrap;
267
+ return this;
268
+ }
269
+ /**
270
+ * Sets the predicate function that determines which items should be skipped by the
271
+ * list key manager.
272
+ * @param predicate Function that determines whether the given item should be skipped.
273
+ */
274
+ skipPredicate(predicate) {
275
+ this.skipPredicateFn = predicate;
276
+ return this;
277
+ }
278
+ /**
279
+ * Configures whether the key manager should be able to move the selection vertically.
280
+ * @param enabled Whether vertical selection should be enabled.
281
+ */
282
+ withVerticalOrientation(enabled = true) {
283
+ this.vertical = enabled;
284
+ return this;
285
+ }
286
+ /**
287
+ * Configures the key manager to move the selection horizontally.
288
+ * Passing in `null` will disable horizontal movement.
289
+ * @param direction Direction in which the selection can be moved.
290
+ */
291
+ withHorizontalOrientation(direction) {
292
+ this.horizontal = direction;
293
+ return this;
294
+ }
295
+ /**
296
+ * Turns on typeahead mode which allows users to set the active item by typing.
297
+ * @param searchLetterIndex letter index for incremental search, if is -1 search is disabled
298
+ * @param debounceInterval Time to wait after the last keystroke before setting the active item.
299
+ */
300
+ withTypeAhead(debounceInterval = 200, searchLetterIndex = 0) {
301
+ if (this._items.length && this._items.some((item) => typeof item.getLabel !== 'function')) {
302
+ throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');
303
+ }
304
+ this.typeaheadSubscription.unsubscribe();
305
+ // Debounce the presses of non-navigational keys, collect the ones that correspond to letters and convert those
306
+ // letters back into a string. Afterwards find the first item that starts with that string and select it.
307
+ this.typeaheadSubscription = this.letterKeyStream
308
+ .pipe(tap((keyCode) => this.pressedLetters.push(keyCode)), debounceTime(debounceInterval), filter(() => this.pressedLetters.length > 0), map(() => this.pressedLetters.join('')))
309
+ .subscribe((inputString) => {
310
+ if (searchLetterIndex === -1) {
311
+ this.pressedLetters = [];
312
+ return;
313
+ }
314
+ const items = this._items.toArray();
315
+ // Start at 1 because we want to start searching at the item immediately
316
+ // following the current active item.
317
+ for (let i = 1; i < items.length + 1; i++) {
318
+ const index = (this._activeItemIndex + i) % items.length;
319
+ const item = items[index];
320
+ if (!item.disabled &&
321
+ item.getLabel().toUpperCase().trim().indexOf(inputString) === searchLetterIndex) {
322
+ this.setActiveItem(index);
323
+ break;
324
+ }
325
+ }
326
+ this.pressedLetters = [];
327
+ });
328
+ return this;
329
+ }
330
+ /**
331
+ * Configures the key manager to activate the first and last items
332
+ * respectively when the Home or End key is pressed.
333
+ * @param enabled Whether pressing the Home or End key activates the first/last item.
334
+ */
335
+ withHomeAndEnd(enabled = true) {
336
+ this.homeAndEnd = enabled;
337
+ return this;
338
+ }
339
+ /**
340
+ * Sets the active item to the item at the index specified.
341
+ * @param item The index of the item to be set as active.
342
+ */
343
+ setActiveItem(item) {
344
+ this.previousActiveItemIndex = this._activeItemIndex;
345
+ this.updateActiveItem(item);
346
+ if (this._activeItemIndex !== this.previousActiveItemIndex) {
347
+ this.change.next(this._activeItemIndex);
348
+ }
349
+ }
350
+ /**
351
+ * Sets the active item depending on the key event passed in.
352
+ * @param event Keyboard event to be used for determining which element should be active.
353
+ */
354
+ onKeydown(event) {
355
+ const keyCode = event.keyCode;
356
+ const modifiers = ['altKey', 'ctrlKey', 'metaKey', 'shiftKey'];
357
+ const isModifierAllowed = modifiers.every((modifier) => {
358
+ return !event[modifier] || this.allowedModifierKeys.indexOf(modifier) > -1;
359
+ });
360
+ switch (keyCode) {
361
+ case TAB:
362
+ this.tabOut.next();
363
+ return;
364
+ case DOWN_ARROW:
365
+ if (this.vertical) {
366
+ this.setNextItemActive();
367
+ break;
368
+ }
369
+ else {
370
+ return;
371
+ }
372
+ case UP_ARROW:
373
+ if (this.vertical) {
374
+ this.setPreviousItemActive();
375
+ break;
376
+ }
377
+ else {
378
+ return;
379
+ }
380
+ case RIGHT_ARROW:
381
+ if (this.horizontal === 'ltr') {
382
+ this.setNextItemActive();
383
+ break;
384
+ }
385
+ else if (this.horizontal === 'rtl') {
386
+ this.setPreviousItemActive();
387
+ break;
388
+ }
389
+ else {
390
+ return;
391
+ }
392
+ case LEFT_ARROW:
393
+ if (this.horizontal === 'ltr') {
394
+ this.setPreviousItemActive();
395
+ break;
396
+ }
397
+ else if (this.horizontal === 'rtl') {
398
+ this.setNextItemActive();
399
+ break;
400
+ }
401
+ else {
402
+ return;
403
+ }
404
+ case HOME:
405
+ if (this.homeAndEnd && isModifierAllowed) {
406
+ this.setFirstItemActive();
407
+ break;
408
+ }
409
+ else {
410
+ return;
411
+ }
412
+ case END:
413
+ if (this.homeAndEnd && isModifierAllowed) {
414
+ this.setLastItemActive();
415
+ break;
416
+ }
417
+ else {
418
+ return;
419
+ }
420
+ default:
421
+ // Attempt to use the `event.key` which also maps it to the user's keyboard language,
422
+ // otherwise fall back to resolving alphanumeric characters via the keyCode.
423
+ if (event.key && event.key.length === 1) {
424
+ this.letterKeyStream.next(event.key.toLocaleUpperCase());
425
+ }
426
+ else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {
427
+ this.letterKeyStream.next(String.fromCharCode(keyCode));
428
+ }
429
+ // Note that we return here, in order to avoid preventing
430
+ // the default action of non-navigational keys.
431
+ return;
432
+ }
433
+ this.pressedLetters = [];
434
+ event.preventDefault();
435
+ }
436
+ // Sets the active item to the first enabled item in the list.
437
+ setFirstItemActive() {
438
+ this.setActiveItemByIndex(0, 1);
439
+ }
440
+ // Sets the active item to the last enabled item in the list.
441
+ setLastItemActive() {
442
+ this.setActiveItemByIndex(this._items.length - 1, -1);
443
+ }
444
+ // Sets the active item to the next enabled item in the list.
445
+ setNextItemActive() {
446
+ if (this._activeItemIndex < 0) {
447
+ this.setFirstItemActive();
448
+ }
449
+ else {
450
+ this.setActiveItemByDelta(1);
451
+ }
452
+ }
453
+ // Sets the active item to a previous enabled item in the list.
454
+ setPreviousItemActive() {
455
+ if (this._activeItemIndex < 0 && this.wrap) {
456
+ this.setLastItemActive();
457
+ }
458
+ else {
459
+ this.setActiveItemByDelta(-1);
460
+ }
461
+ }
462
+ setNextPageItemActive(delta = this.scrollSize) {
463
+ const nextItemIndex = this._activeItemIndex + delta;
464
+ if (nextItemIndex >= this._items.length) {
465
+ this.setLastItemActive();
466
+ }
467
+ else {
468
+ this.setActiveItemByDelta(delta);
469
+ }
470
+ }
471
+ setPreviousPageItemActive(delta = this.scrollSize) {
472
+ const nextItemIndex = this._activeItemIndex - delta;
473
+ if (nextItemIndex <= 0) {
474
+ this.setFirstItemActive();
475
+ }
476
+ else {
477
+ this.setActiveItemByDelta(-delta);
478
+ }
479
+ }
480
+ updateActiveItem(item) {
481
+ const itemArray = this._items.toArray();
482
+ const index = typeof item === 'number' ? item : itemArray.indexOf(item);
483
+ this._activeItemIndex = index;
484
+ this._activeItem = itemArray[index];
485
+ }
486
+ /**
487
+ * This method sets the active item, given a list of items and the delta between the
488
+ * currently active item and the new active item. It will calculate differently
489
+ * depending on whether wrap mode is turned on.
490
+ */
491
+ setActiveItemByDelta(delta) {
492
+ if (this.wrap) {
493
+ this.setActiveInWrapMode(delta);
494
+ }
495
+ else {
496
+ this.setActiveInDefaultMode(delta);
497
+ }
498
+ }
499
+ /**
500
+ * Sets the active item properly given "wrap" mode. In other words, it will continue to move
501
+ * down the list until it finds an item that is not disabled, and it will wrap if it
502
+ * encounters either end of the list.
503
+ */
504
+ setActiveInWrapMode(delta) {
505
+ const items = this.getItemsArray();
506
+ for (let i = 1; i <= items.length; i++) {
507
+ const index = (this._activeItemIndex + delta * i + items.length) % items.length;
508
+ const item = items[index];
509
+ if (!this.skipPredicateFn(item)) {
510
+ this.setActiveItem(index);
511
+ return;
512
+ }
513
+ }
514
+ }
515
+ /**
516
+ * Sets the active item properly given the default mode. In other words, it will
517
+ * continue to move down the list until it finds an item that is not disabled. If
518
+ * it encounters either end of the list, it will stop and not wrap.
519
+ */
520
+ setActiveInDefaultMode(delta) {
521
+ this.setActiveItemByIndex(this._activeItemIndex + delta, delta);
522
+ }
523
+ /**
524
+ * Sets the active item to the first enabled item starting at the index specified. If the
525
+ * item is disabled, it will move in the fallbackDelta direction until it either
526
+ * finds an enabled item or encounters the end of the list.
527
+ */
528
+ setActiveItemByIndex(index, fallbackDelta) {
529
+ const items = this.getItemsArray();
530
+ if (!items[index]) {
531
+ return;
532
+ }
533
+ let curIndex = index;
534
+ while (this.skipPredicateFn(items[curIndex])) {
535
+ curIndex += fallbackDelta;
536
+ if (!items[curIndex]) {
537
+ return;
538
+ }
539
+ }
540
+ this.setActiveItem(curIndex);
541
+ }
542
+ /** Returns the items as an array. */
543
+ getItemsArray() {
544
+ return this._items instanceof QueryList ? this._items.toArray() : this._items;
545
+ }
546
+ }
547
+
548
+ class ActiveDescendantKeyManager extends ListKeyManager {
549
+ /**
550
+ * This method sets the active item to the item at the specified index.
551
+ * It also adds active styles to the newly active item and removes active
552
+ * styles from the previously active item.
553
+ */
554
+ setActiveItem(index) {
555
+ if (this.activeItem) {
556
+ this.activeItem.setInactiveStyles();
557
+ }
558
+ super.setActiveItem(index);
559
+ if (this.activeItem) {
560
+ this.activeItem.setActiveStyles();
561
+ }
562
+ }
563
+ }
564
+
565
+ class FocusKeyManager extends ListKeyManager {
566
+ constructor() {
567
+ super(...arguments);
568
+ this.origin = 'program';
569
+ }
570
+ setActiveItem(item) {
571
+ super.setActiveItem(item);
572
+ if (this.activeItem) {
573
+ this.activeItem.focus(this.origin);
574
+ }
575
+ }
576
+ /**
577
+ * Sets the focus origin that will be passed in to the items for any subsequent `focus` calls.
578
+ * @param origin Focus origin to be used when focusing items.
579
+ */
580
+ setFocusOrigin(origin) {
581
+ this.origin = origin;
582
+ return this;
583
+ }
584
+ getFocusOrigin() {
585
+ return this.origin;
586
+ }
587
+ }
588
+
33
589
  /**
34
590
  * Koobiq components animation curves
35
591
  *
@@ -126,10 +682,10 @@ class KbqNormalizeWhitespace {
126
682
  $event.clipboardData?.setData('text', value?.replace(/\u2009/g, ' '));
127
683
  }
128
684
  }
129
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqNormalizeWhitespace, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
130
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqNormalizeWhitespace, isStandalone: true, selector: "[kbqNormalizeWhitespace]", host: { listeners: { "copy": "onCopy($event)" } }, ngImport: i0 }); }
685
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqNormalizeWhitespace, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
686
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqNormalizeWhitespace, isStandalone: true, selector: "[kbqNormalizeWhitespace]", host: { listeners: { "copy": "onCopy($event)" } }, ngImport: i0 }); }
131
687
  }
132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqNormalizeWhitespace, decorators: [{
688
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqNormalizeWhitespace, decorators: [{
133
689
  type: Directive,
134
690
  args: [{
135
691
  selector: '[kbqNormalizeWhitespace]',
@@ -194,6 +750,8 @@ class KbqColorDirective {
194
750
  get colorClassName() {
195
751
  return `kbq-${this._color}`;
196
752
  }
753
+ // TODO: Skipped for migration because:
754
+ // Accessor inputs cannot be migrated as they are too complex.
197
755
  get color() {
198
756
  return this._color;
199
757
  }
@@ -218,104 +776,16 @@ class KbqColorDirective {
218
776
  setDefaultColor(color) {
219
777
  this.defaultColor = color;
220
778
  }
221
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqColorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
222
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqColorDirective, isStandalone: true, inputs: { color: "color" }, ngImport: i0 }); }
779
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqColorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
780
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqColorDirective, isStandalone: true, inputs: { color: "color" }, ngImport: i0 }); }
223
781
  }
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqColorDirective, decorators: [{
782
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqColorDirective, decorators: [{
225
783
  type: Directive
226
784
  }], ctorParameters: () => [], propDecorators: { color: [{
227
785
  type: Input
228
786
  }] } });
229
787
 
230
- /**
231
- * An abstraction over the global `window` object.
232
- */
233
- const KBQ_WINDOW = new InjectionToken('[KBQ_WINDOW]', {
234
- factory: () => {
235
- const _window = inject(DOCUMENT).defaultView ||
236
- // Backward compatibility for older Angular versions
237
- // https://github.com/angular/universal/blob/main/docs/gotchas.md#strategy-3-shims
238
- // eslint-disable-next-line no-restricted-globals
239
- window;
240
- if (!_window) {
241
- throw new Error('[KBQ_WINDOW] window is not available.');
242
- }
243
- return _window;
244
- }
245
- });
246
-
247
- /**
248
- * Injection token that configures whether the koobiq sanity checks are enabled.
249
- *
250
- * @deprecated No longer used and will be removed in next major release.
251
- *
252
- * @docs-private
253
- */
254
- const KBQ_SANITY_CHECKS = new InjectionToken('kbq-sanity-checks', {
255
- providedIn: 'root',
256
- factory: mcSanityChecksFactory
257
- });
258
- /**
259
- * @deprecated No longer used and will be removed in next major release.
260
- *
261
- * @docs-private
262
- */
263
- function mcSanityChecksFactory() {
264
- return true;
265
- }
266
- /**
267
- * Module that captures anything that should be loaded and/or run for *all* Koobiq
268
- * components. This includes Bidi, etc.
269
- *
270
- * @deprecated No longer used and will be removed in next major release.
271
- *
272
- * @docs-private
273
- */
274
- class KbqCommonModule {
275
- constructor(_sanityChecksEnabled) {
276
- this._sanityChecksEnabled = _sanityChecksEnabled;
277
- this.document = inject(DOCUMENT);
278
- this.window = inject(KBQ_WINDOW);
279
- // Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).
280
- this.hasDoneGlobalChecks = false;
281
- if (this.areChecksEnabled() && !this.hasDoneGlobalChecks) {
282
- this.checkDoctypeIsDefined();
283
- this.hasDoneGlobalChecks = true;
284
- }
285
- }
286
- // Whether any sanity checks are enabled
287
- areChecksEnabled() {
288
- return this._sanityChecksEnabled && isDevMode() && !this.isTestEnv();
289
- }
290
- // Whether the code is running in tests.
291
- isTestEnv() {
292
- return !!(this.window && this.window['__jest__']);
293
- }
294
- checkDoctypeIsDefined() {
295
- if (this.document && !this.document.doctype && isDevMode()) {
296
- // eslint-disable-next-line no-console
297
- console.warn('Current document does not have a doctype. This may cause ' +
298
- 'some koobiq components not to behave as expected.');
299
- }
300
- }
301
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqCommonModule, deps: [{ token: KBQ_SANITY_CHECKS, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
302
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqCommonModule, imports: [BidiModule], exports: [BidiModule] }); }
303
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqCommonModule, imports: [BidiModule, BidiModule] }); }
304
- }
305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqCommonModule, decorators: [{
306
- type: NgModule,
307
- args: [{
308
- imports: [BidiModule],
309
- exports: [BidiModule]
310
- }]
311
- }], ctorParameters: () => [{ type: undefined, decorators: [{
312
- type: Optional
313
- }, {
314
- type: Inject,
315
- args: [KBQ_SANITY_CHECKS]
316
- }] }] });
317
-
318
- // eslint-disable-next-line @typescript-eslint/ban-types
788
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
319
789
  function mixinDisabled(base) {
320
790
  return class extends base {
321
791
  get disabled() {
@@ -415,14 +885,6 @@ const isElement = (value) => value instanceof Element;
415
885
  const isHtmlElementOrNull = (value) => {
416
886
  return isHtmlElement(value) || isNull(value);
417
887
  };
418
- /**
419
- * Will be removed in the next major release
420
- *
421
- * @deprecated Use `booleanAttribute` instead
422
- */
423
- function toBoolean(value) {
424
- return value != null && `${value}` !== 'false';
425
- }
426
888
  const getNodesWithoutComments = (nodes) => {
427
889
  const COMMENT_NODE = 8;
428
890
  return Array.from(nodes).filter((node) => node.nodeType !== COMMENT_NODE);
@@ -446,20 +908,20 @@ class KbqHover {
446
908
  /**
447
909
  * Whether the element is hovered.
448
910
  */
449
- this.hovered = toSignal(merge(fromEvent(this.element, 'mouseenter'), fromEvent(this.element, 'mouseleave')).pipe(map(({ type }) => type === 'mouseenter')), { initialValue: false });
911
+ this.hovered = toSignal(merge(fromEvent(this.element, 'mouseenter'), fromEvent(this.element, 'mouseleave')).pipe(map$1(({ type }) => type === 'mouseenter')), { initialValue: false });
450
912
  }
451
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqHover, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
452
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqHover, isStandalone: true, selector: "[kbqHover]", host: { properties: { "class.kbq-hovered": "hovered()" }, classAttribute: "kbq-hover" }, exportAs: ["kbqHover"], ngImport: i0 }); }
913
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHover, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
914
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqHover, isStandalone: true, selector: "[kbqHover]", host: { properties: { "class.kbq-hovered": "hovered()" }, classAttribute: "kbq-hover" }, exportAs: ["kbqHover"], ngImport: i0 }); }
453
915
  }
454
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqHover, decorators: [{
916
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHover, decorators: [{
455
917
  type: Directive,
456
918
  args: [{
457
919
  selector: '[kbqHover]',
458
- exportAs: 'kbqHover',
459
920
  host: {
460
921
  class: 'kbq-hover',
461
922
  '[class.kbq-hovered]': 'hovered()'
462
- }
923
+ },
924
+ exportAs: 'kbqHover'
463
925
  }]
464
926
  }] });
465
927
 
@@ -478,10 +940,10 @@ class KbqReadStateDirective {
478
940
  }
479
941
  this.changeDetectorRef.markForCheck();
480
942
  }
481
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqReadStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
482
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqReadStateDirective, isStandalone: true, host: { listeners: { "mouseenter": "mouseenterHandler()", "mouseleave": "mouseleaveHandler()", "click": "read.next(true)" } }, ngImport: i0 }); }
943
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqReadStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
944
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqReadStateDirective, isStandalone: true, host: { listeners: { "mouseenter": "mouseenterHandler()", "mouseleave": "mouseleaveHandler()", "click": "read.next(true)" } }, ngImport: i0 }); }
483
945
  }
484
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqReadStateDirective, decorators: [{
946
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqReadStateDirective, decorators: [{
485
947
  type: Directive,
486
948
  args: [{
487
949
  host: {
@@ -550,10 +1012,10 @@ class ShowOnFormSubmitErrorStateMatcher {
550
1012
  isErrorState(control, form) {
551
1013
  return !!(control?.invalid && form?.submitted);
552
1014
  }
553
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ShowOnFormSubmitErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
554
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ShowOnFormSubmitErrorStateMatcher }); }
1015
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowOnFormSubmitErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1016
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowOnFormSubmitErrorStateMatcher }); }
555
1017
  }
556
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ShowOnFormSubmitErrorStateMatcher, decorators: [{
1018
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowOnFormSubmitErrorStateMatcher, decorators: [{
557
1019
  type: Injectable
558
1020
  }] });
559
1021
  /**
@@ -567,10 +1029,10 @@ class ShowRequiredOnSubmitErrorStateMatcher {
567
1029
  ? !!(control?.invalid && form?.submitted)
568
1030
  : !!(control?.invalid && control.touched);
569
1031
  }
570
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ShowRequiredOnSubmitErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
571
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ShowRequiredOnSubmitErrorStateMatcher }); }
1032
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowRequiredOnSubmitErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1033
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowRequiredOnSubmitErrorStateMatcher }); }
572
1034
  }
573
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ShowRequiredOnSubmitErrorStateMatcher, decorators: [{
1035
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowRequiredOnSubmitErrorStateMatcher, decorators: [{
574
1036
  type: Injectable
575
1037
  }] });
576
1038
  /** Error state matcher that matches when a control is invalid and dirty or form is submitted. */
@@ -578,10 +1040,10 @@ class ShowOnControlDirtyErrorStateMatcher {
578
1040
  isErrorState(control, form) {
579
1041
  return !!(control?.invalid && (control.dirty || form?.submitted));
580
1042
  }
581
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ShowOnControlDirtyErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
582
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ShowOnControlDirtyErrorStateMatcher }); }
1043
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowOnControlDirtyErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1044
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowOnControlDirtyErrorStateMatcher }); }
583
1045
  }
584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ShowOnControlDirtyErrorStateMatcher, decorators: [{
1046
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowOnControlDirtyErrorStateMatcher, decorators: [{
585
1047
  type: Injectable
586
1048
  }] });
587
1049
  /**
@@ -592,14 +1054,31 @@ class ErrorStateMatcher {
592
1054
  isErrorState(control, form) {
593
1055
  return !!(control?.invalid && (control.touched || form?.submitted));
594
1056
  }
595
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
596
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ErrorStateMatcher, providedIn: 'root' }); }
1057
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1058
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorStateMatcher, providedIn: 'root' }); }
597
1059
  }
598
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ErrorStateMatcher, decorators: [{
1060
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorStateMatcher, decorators: [{
599
1061
  type: Injectable,
600
1062
  args: [{ providedIn: 'root' }]
601
1063
  }] });
602
1064
 
1065
+ /**
1066
+ * An abstraction over the global `window` object.
1067
+ */
1068
+ const KBQ_WINDOW = new InjectionToken('[KBQ_WINDOW]', {
1069
+ factory: () => {
1070
+ const _window = inject(DOCUMENT).defaultView ||
1071
+ // Backward compatibility for older Angular versions
1072
+ // https://github.com/angular/universal/blob/main/docs/gotchas.md#strategy-3-shims
1073
+ // eslint-disable-next-line no-restricted-globals
1074
+ window;
1075
+ if (!_window) {
1076
+ throw new Error('[KBQ_WINDOW] window is not available.');
1077
+ }
1078
+ return _window;
1079
+ }
1080
+ });
1081
+
603
1082
  const INITIAL_PROPERTIES = {
604
1083
  all: 'initial',
605
1084
  position: 'absolute',
@@ -694,17 +1173,17 @@ class KbqFieldSizingContent {
694
1173
  }
695
1174
  return ruler.scrollWidth;
696
1175
  }
697
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFieldSizingContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
698
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqFieldSizingContent, isStandalone: true, selector: "[kbqFieldSizingContent]", host: { classAttribute: "kbq-field-sizing-content" }, exportAs: ["kbqFieldSizingContent"], ngImport: i0 }); }
1176
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFieldSizingContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1177
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqFieldSizingContent, isStandalone: true, selector: "[kbqFieldSizingContent]", host: { classAttribute: "kbq-field-sizing-content" }, exportAs: ["kbqFieldSizingContent"], ngImport: i0 }); }
699
1178
  }
700
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFieldSizingContent, decorators: [{
1179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFieldSizingContent, decorators: [{
701
1180
  type: Directive,
702
1181
  args: [{
703
1182
  selector: '[kbqFieldSizingContent]',
704
- exportAs: 'kbqFieldSizingContent',
705
1183
  host: {
706
1184
  class: 'kbq-field-sizing-content'
707
- }
1185
+ },
1186
+ exportAs: 'kbqFieldSizingContent'
708
1187
  }]
709
1188
  }], ctorParameters: () => [] });
710
1189
 
@@ -789,10 +1268,16 @@ const enUSLocaleData = {
789
1268
  error: 'The search with such name already exists',
790
1269
  errorHint: 'Could not save the filter. Try again or contact the administrator.',
791
1270
  saveButton: 'Save',
792
- cancelButton: 'Cancel'
1271
+ cancelButton: 'Cancel',
1272
+ actionsTooltip: 'Filter actions'
793
1273
  },
794
1274
  add: {
795
- tooltip: 'Add filter'
1275
+ tooltip: 'Add filter',
1276
+ addedAnnouncement: '{{ name }} filter added'
1277
+ },
1278
+ refresher: {
1279
+ refresh: 'Refresh',
1280
+ settings: 'Refresh settings'
796
1281
  },
797
1282
  pipe: {
798
1283
  clearButtonTooltip: 'Clear',
@@ -846,10 +1331,13 @@ const enUSLocaleData = {
846
1331
  to: 'to',
847
1332
  apply: 'Apply',
848
1333
  cancel: 'Cancel',
849
- rangeLabel: 'for period',
1334
+ rangeLabel: 'Period',
850
1335
  allTime: 'for all time',
851
1336
  currentQuarter: 'for the current quarter',
852
- currentYear: 'for the current year'
1337
+ currentYear: 'for the current year',
1338
+ allTimeOption: 'All time',
1339
+ currentQuarterOption: 'Current quarter',
1340
+ currentYearOption: 'Current year'
853
1341
  },
854
1342
  durationTemplate: {
855
1343
  title: {
@@ -891,31 +1379,31 @@ const enUSLocaleData = {
891
1379
  LAST_PART_SEPARATOR: '',
892
1380
  YEARS: `{years, plural,
893
1381
  one {# year}
894
- other {last # years}
1382
+ other {Last # years}
895
1383
  }`,
896
1384
  MONTHS: `{months, plural,
897
- one {last month}
898
- other {last # months}
1385
+ one {Last month}
1386
+ other {Last # months}
899
1387
  }`,
900
1388
  WEEKS: `{weeks, plural,
901
- one {last week}
902
- other {last # weeks}
1389
+ one {Last week}
1390
+ other {Last # weeks}
903
1391
  }`,
904
1392
  DAYS: `{days, plural,
905
- one {last day}
906
- other {last # days}
1393
+ one {Last day}
1394
+ other {Last # days}
907
1395
  }`,
908
1396
  HOURS: `{hours, plural,
909
- one {last hour}
910
- other {last # hours}
1397
+ one {Last hour}
1398
+ other {Last # hours}
911
1399
  }`,
912
1400
  MINUTES: `{minutes, plural,
913
- one {last minute}
914
- other {last # minutes}
1401
+ one {Last minute}
1402
+ other {Last # minutes}
915
1403
  }`,
916
1404
  SECONDS: `{seconds, plural,
917
- one {last second}
918
- other {last # seconds}
1405
+ one {Last second}
1406
+ other {Last # seconds}
919
1407
  }`,
920
1408
  YEARS_FRACTION: `{years} years`,
921
1409
  MONTHS_FRACTION: `{months} months`
@@ -1005,10 +1493,16 @@ const esLALocaleData = {
1005
1493
  error: 'Ya existe una búsqueda con ese nombre',
1006
1494
  errorHint: 'No se pudo guardar el filtro. Intente de nuevo o comuníquese con el administrador.',
1007
1495
  saveButton: 'Guardar',
1008
- cancelButton: 'Cancelar'
1496
+ cancelButton: 'Cancelar',
1497
+ actionsTooltip: 'Acciones de filtro'
1009
1498
  },
1010
1499
  add: {
1011
- tooltip: 'Agregar filtro'
1500
+ tooltip: 'Agregar filtro',
1501
+ addedAnnouncement: 'Filtro {{ name }} agregado'
1502
+ },
1503
+ refresher: {
1504
+ refresh: 'Actualizar',
1505
+ settings: 'Configuración de actualización'
1012
1506
  },
1013
1507
  pipe: {
1014
1508
  clearButtonTooltip: 'Borrar',
@@ -1062,10 +1556,13 @@ const esLALocaleData = {
1062
1556
  to: 'a',
1063
1557
  apply: 'Aplicar',
1064
1558
  cancel: 'Cancelar',
1065
- rangeLabel: 'para el período',
1559
+ rangeLabel: 'Período',
1066
1560
  allTime: 'por todo el tiempo',
1067
1561
  currentQuarter: 'por el trimestre actual',
1068
- currentYear: 'por el año actual'
1562
+ currentYear: 'por el año actual',
1563
+ allTimeOption: 'Todo el tiempo',
1564
+ currentQuarterOption: 'Trimestre actual',
1565
+ currentYearOption: 'Año actual'
1069
1566
  },
1070
1567
  durationTemplate: {
1071
1568
  title: {
@@ -1107,31 +1604,31 @@ const esLALocaleData = {
1107
1604
  LAST_PART_SEPARATOR: '',
1108
1605
  YEARS: `{years, plural,
1109
1606
  one {# año}
1110
- other {últimos # años}
1607
+ other {Últimos # años}
1111
1608
  }`,
1112
1609
  MONTHS: `{months, plural,
1113
- one {último mes}
1114
- other {últimos # meses}
1610
+ one {Último mes}
1611
+ other {Últimos # meses}
1115
1612
  }`,
1116
1613
  WEEKS: `{weeks, plural,
1117
- one {última semana}
1118
- other {últimas # semanas}
1614
+ one {Última semana}
1615
+ other {Últimas # semanas}
1119
1616
  }`,
1120
1617
  DAYS: `{days, plural,
1121
- one {último día}
1122
- other {últimos # días}
1618
+ one {Último día}
1619
+ other {Últimos # días}
1123
1620
  }`,
1124
1621
  HOURS: `{hours, plural,
1125
- one {última hora}
1126
- other {últimas # horas}
1622
+ one {Última hora}
1623
+ other {Últimas # horas}
1127
1624
  }`,
1128
1625
  MINUTES: `{minutes, plural,
1129
- one {último minuto}
1130
- other {últimos # minutos}
1626
+ one {Último minuto}
1627
+ other {Últimos # minutos}
1131
1628
  }`,
1132
1629
  SECONDS: `{seconds, plural,
1133
- one {último segundo}
1134
- other {últimos # segundos}
1630
+ one {Último segundo}
1631
+ other {Últimos # segundos}
1135
1632
  }`,
1136
1633
  YEARS_FRACTION: `{years} años`,
1137
1634
  MONTHS_FRACTION: `{months} meses`
@@ -1221,10 +1718,16 @@ const ptBRLocaleData = {
1221
1718
  error: 'A busca com esse nome já existe',
1222
1719
  errorHint: 'O filtro não pôde ser salvo. Tente de novo ou entre em contato com o administrador.',
1223
1720
  saveButton: 'Salvar',
1224
- cancelButton: 'Cancelar'
1721
+ cancelButton: 'Cancelar',
1722
+ actionsTooltip: 'Ações do filtro'
1225
1723
  },
1226
1724
  add: {
1227
- tooltip: 'Adicionar filtros'
1725
+ tooltip: 'Adicionar filtros',
1726
+ addedAnnouncement: 'Filtro {{ name }} adicionado'
1727
+ },
1728
+ refresher: {
1729
+ refresh: 'Atualizar',
1730
+ settings: 'Configurações de atualização'
1228
1731
  },
1229
1732
  pipe: {
1230
1733
  clearButtonTooltip: 'Apagar',
@@ -1278,10 +1781,13 @@ const ptBRLocaleData = {
1278
1781
  to: 'até',
1279
1782
  apply: 'Aplicar',
1280
1783
  cancel: 'Cancelar',
1281
- rangeLabel: 'para o período',
1784
+ rangeLabel: 'Período',
1282
1785
  allTime: 'por todo o tempo',
1283
1786
  currentQuarter: 'pelo trimestre atual',
1284
- currentYear: 'pelo ano atual'
1787
+ currentYear: 'pelo ano atual',
1788
+ allTimeOption: 'Todo o tempo',
1789
+ currentQuarterOption: 'Trimestre atual',
1790
+ currentYearOption: 'Ano atual'
1285
1791
  },
1286
1792
  durationTemplate: {
1287
1793
  title: {
@@ -1323,31 +1829,31 @@ const ptBRLocaleData = {
1323
1829
  LAST_PART_SEPARATOR: '',
1324
1830
  YEARS: `{years, plural,
1325
1831
  one {# ano}
1326
- other {últimos # anos}
1832
+ other {Últimos # anos}
1327
1833
  }`,
1328
1834
  MONTHS: `{months, plural,
1329
- one {último mês}
1330
- other {últimos # meses}
1835
+ one {Último mês}
1836
+ other {Últimos # meses}
1331
1837
  }`,
1332
1838
  WEEKS: `{weeks, plural,
1333
- one {última semana}
1334
- other {últimas # semanas}
1839
+ one {Última semana}
1840
+ other {Últimas # semanas}
1335
1841
  }`,
1336
1842
  DAYS: `{days, plural,
1337
- one {último dia}
1338
- other {últimos # dias}
1843
+ one {Último dia}
1844
+ other {Últimos # dias}
1339
1845
  }`,
1340
1846
  HOURS: `{hours, plural,
1341
- one {última hora}
1342
- other {últimas # horas}
1847
+ one {Última hora}
1848
+ other {Últimas # horas}
1343
1849
  }`,
1344
1850
  MINUTES: `{minutes, plural,
1345
- one {último minuto}
1346
- other {últimos # minutos}
1851
+ one {Último minuto}
1852
+ other {Últimos # minutos}
1347
1853
  }`,
1348
1854
  SECONDS: `{seconds, plural,
1349
- one {último segundo}
1350
- other {últimos # segundos}
1855
+ one {Último segundo}
1856
+ other {Últimos # segundos}
1351
1857
  }`,
1352
1858
  YEARS_FRACTION: `{years} anos`,
1353
1859
  MONTHS_FRACTION: `{months} meses`
@@ -1438,10 +1944,16 @@ const ruRULocaleData = {
1438
1944
  error: 'Поиск с таким названием уже существует',
1439
1945
  errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',
1440
1946
  saveButton: 'Сохранить',
1441
- cancelButton: 'Отмена'
1947
+ cancelButton: 'Отмена',
1948
+ actionsTooltip: 'Действия с фильтром'
1442
1949
  },
1443
1950
  add: {
1444
- tooltip: 'Добавить фильтр'
1951
+ tooltip: 'Добавить фильтр',
1952
+ addedAnnouncement: 'Фильтр {{ name }} добавлен'
1953
+ },
1954
+ refresher: {
1955
+ refresh: 'Обновить',
1956
+ settings: 'Настройки обновления'
1445
1957
  },
1446
1958
  pipe: {
1447
1959
  clearButtonTooltip: 'Очистить',
@@ -1495,10 +2007,13 @@ const ruRULocaleData = {
1495
2007
  to: 'по',
1496
2008
  apply: 'Применить',
1497
2009
  cancel: 'Отмена',
1498
- rangeLabel: 'за период',
2010
+ rangeLabel: 'Период',
1499
2011
  allTime: 'за все время',
1500
2012
  currentQuarter: 'за текущий квартал',
1501
- currentYear: 'за текущий год'
2013
+ currentYear: 'за текущий год',
2014
+ allTimeOption: 'Все время',
2015
+ currentQuarterOption: 'Текущий квартал',
2016
+ currentYearOption: 'Текущий год'
1502
2017
  },
1503
2018
  durationTemplate: {
1504
2019
  title: {
@@ -1506,7 +2021,7 @@ const ruRULocaleData = {
1506
2021
  LAST_PART_SEPARATOR: 'и',
1507
2022
  YEARS: `{years, plural,
1508
2023
  one {# год}
1509
- few {последние # лет}
2024
+ few {последние # года}
1510
2025
  other {последние # лет}
1511
2026
  }`,
1512
2027
  MONTHS: `{months, plural,
@@ -1546,39 +2061,39 @@ const ruRULocaleData = {
1546
2061
  SEPARATOR: ' ',
1547
2062
  LAST_PART_SEPARATOR: 'и',
1548
2063
  YEARS: `{years, plural,
1549
- one {последний год}
1550
- few {последние # лет}
1551
- other {последние # лет}
2064
+ one {Последний год}
2065
+ few {Последние # года}
2066
+ other {Последние # лет}
1552
2067
  }`,
1553
2068
  MONTHS: `{months, plural,
1554
- one {последний месяц}
1555
- few {последние # месяца}
1556
- other {последние # месяцев}
2069
+ one {Последний месяц}
2070
+ few {Последние # месяца}
2071
+ other {Последние # месяцев}
1557
2072
  }`,
1558
2073
  WEEKS: `{weeks, plural,
1559
- one {последняя неделя}
1560
- few {последние # недели}
1561
- other {последние # недель}
2074
+ one {Последняя неделя}
2075
+ few {Последние # недели}
2076
+ other {Последние # недель}
1562
2077
  }`,
1563
2078
  DAYS: `{days, plural,
1564
- one {последний день}
1565
- few {последние # дня}
1566
- other {последние # дней}
2079
+ one {Последний день}
2080
+ few {Последние # дня}
2081
+ other {Последние # дней}
1567
2082
  }`,
1568
2083
  HOURS: `{hours, plural,
1569
- one {последний час}
1570
- few {последние # часа}
1571
- other {последние # часов}
2084
+ one {Последний час}
2085
+ few {Последние # часа}
2086
+ other {Последние # часов}
1572
2087
  }`,
1573
2088
  MINUTES: `{minutes, plural,
1574
- one {последняя минута}
1575
- few {последние # минуты}
1576
- other {последние # минут}
2089
+ one {Последняя минута}
2090
+ few {Последние # минуты}
2091
+ other {Последние # минут}
1577
2092
  }`,
1578
2093
  SECONDS: `{seconds, plural,
1579
- one {последняя секунда}
1580
- few {последние # секунды}
1581
- other {последние # секунд}
2094
+ one {Последняя секунда}
2095
+ few {Последние # секунды}
2096
+ other {Последние # секунд}
1582
2097
  }`,
1583
2098
  YEARS_FRACTION: `{years} лет`,
1584
2099
  MONTHS_FRACTION: `{months} месяцев`
@@ -1669,10 +2184,16 @@ const tkTMLocaleData = {
1669
2184
  error: 'Şeýle atly gözleg eýýäm bar',
1670
2185
  errorHint: 'Filtri ýazdyryp bolmady. Täzeden synanyň ýa-da administratora ýüz tutuň.',
1671
2186
  saveButton: 'Ýazdyr',
1672
- cancelButton: 'Ýatyr'
2187
+ cancelButton: 'Ýatyr',
2188
+ actionsTooltip: 'Filtr amallary'
1673
2189
  },
1674
2190
  add: {
1675
- tooltip: 'Filtr goş'
2191
+ tooltip: 'Filtr goş',
2192
+ addedAnnouncement: '{{ name }} filtri goşuldy'
2193
+ },
2194
+ refresher: {
2195
+ refresh: 'Täzele',
2196
+ settings: 'Täzeleme sazlamalary'
1676
2197
  },
1677
2198
  pipe: {
1678
2199
  clearButtonTooltip: 'Arassala',
@@ -1726,10 +2247,13 @@ const tkTMLocaleData = {
1726
2247
  to: 'şuňa',
1727
2248
  apply: 'Ulanmak',
1728
2249
  cancel: 'Ýatyrmak',
1729
- rangeLabel: 'şu döwürde',
2250
+ rangeLabel: 'Döwür',
1730
2251
  allTime: 'hemme döwür üçin',
1731
2252
  currentQuarter: 'şu çärýek üçin',
1732
- currentYear: 'şu ýyl üçin'
2253
+ currentYear: 'şu ýyl üçin',
2254
+ allTimeOption: 'Hemme döwür',
2255
+ currentQuarterOption: 'Şu çärýek',
2256
+ currentYearOption: 'Şu ýyl'
1733
2257
  },
1734
2258
  durationTemplate: {
1735
2259
  title: {
@@ -1774,27 +2298,27 @@ const tkTMLocaleData = {
1774
2298
  other {# ýyl}
1775
2299
  }`,
1776
2300
  MONTHS: `{months, plural,
1777
- one {}
2301
+ one {}
1778
2302
  other {# aý}
1779
2303
  }`,
1780
2304
  WEEKS: `{weeks, plural,
1781
- one {hepde}
2305
+ one {Hepde}
1782
2306
  other {# hepde}
1783
2307
  }`,
1784
2308
  DAYS: `{days, plural,
1785
- one {gün}
2309
+ one {Gün}
1786
2310
  other {# gün}
1787
2311
  }`,
1788
2312
  HOURS: `{hours, plural,
1789
- one {sagat}
2313
+ one {Sagat}
1790
2314
  other {# sagat}
1791
2315
  }`,
1792
2316
  MINUTES: `{minutes, plural,
1793
- one {minut}
2317
+ one {Minut}
1794
2318
  other {# minut}
1795
2319
  }`,
1796
2320
  SECONDS: `{seconds, plural,
1797
- one {sekunt}
2321
+ one {Sekunt}
1798
2322
  other {# sekunt}
1799
2323
  }`,
1800
2324
  YEARS_FRACTION: `{years} ýyl`,
@@ -2052,10 +2576,12 @@ const kbqLocaleServiceLangAttrNameProvider = (attrName) => ({
2052
2576
  useValue: attrName
2053
2577
  });
2054
2578
  class KbqLocaleService {
2055
- constructor(id, localeData) {
2579
+ constructor() {
2056
2580
  this.locales = {};
2057
2581
  this.document = inject(DOCUMENT);
2058
2582
  this.langAttrName = inject(KBQ_LOCALE_SERVICE_LANG_ATTR_NAME);
2583
+ const id = inject(KBQ_LOCALE_ID, { optional: true });
2584
+ const localeData = inject(KBQ_LOCALE_DATA, { optional: true });
2059
2585
  this.locales = localeData;
2060
2586
  this.id = id || KBQ_DEFAULT_LOCALE_ID;
2061
2587
  this.current = this.locales[this.id];
@@ -2075,23 +2601,13 @@ class KbqLocaleService {
2075
2601
  getParams(componentName) {
2076
2602
  return this.current[componentName];
2077
2603
  }
2078
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqLocaleService, deps: [{ token: KBQ_LOCALE_ID, optional: true }, { token: KBQ_LOCALE_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2079
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqLocaleService, providedIn: 'root' }); }
2604
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2605
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleService, providedIn: 'root' }); }
2080
2606
  }
2081
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqLocaleService, decorators: [{
2607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleService, decorators: [{
2082
2608
  type: Injectable,
2083
2609
  args: [{ providedIn: 'root' }]
2084
- }], ctorParameters: () => [{ type: undefined, decorators: [{
2085
- type: Optional
2086
- }, {
2087
- type: Inject,
2088
- args: [KBQ_LOCALE_ID]
2089
- }] }, { type: undefined, decorators: [{
2090
- type: Optional
2091
- }, {
2092
- type: Inject,
2093
- args: [KBQ_LOCALE_DATA]
2094
- }] }] });
2610
+ }], ctorParameters: () => [] });
2095
2611
  // todo code below need refactor or delete in DS-3603
2096
2612
  /** @docs-private */
2097
2613
  const KBQ_DEFAULT_PRECISION_SEPARATOR = '.';
@@ -2171,13 +2687,13 @@ function checkAndNormalizeLocalizedNumber(num, locale) {
2171
2687
  }
2172
2688
 
2173
2689
  class KbqLocaleServiceModule {
2174
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqLocaleServiceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2175
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqLocaleServiceModule }); }
2176
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqLocaleServiceModule, providers: [
2690
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleServiceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2691
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleServiceModule }); }
2692
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleServiceModule, providers: [
2177
2693
  { provide: KBQ_LOCALE_SERVICE, useClass: KbqLocaleService }
2178
2694
  ] }); }
2179
2695
  }
2180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqLocaleServiceModule, decorators: [{
2696
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleServiceModule, decorators: [{
2181
2697
  type: NgModule,
2182
2698
  args: [{
2183
2699
  providers: [
@@ -2187,21 +2703,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
2187
2703
  }] });
2188
2704
 
2189
2705
  class DateFormatter extends DateFormatter$1 {
2190
- constructor(adapter, locale) {
2706
+ constructor() {
2707
+ const adapter = inject(DateAdapter);
2708
+ const locale = inject(KBQ_DATE_LOCALE);
2191
2709
  super(adapter, locale);
2192
- this.adapter = adapter;
2193
2710
  this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
2711
+ this.adapter = adapter;
2194
2712
  this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe((locale) => this.setLocale(locale));
2195
2713
  }
2196
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: DateFormatter, deps: [{ token: i1.DateAdapter }, { token: KBQ_DATE_LOCALE }], target: i0.ɵɵFactoryTarget.Injectable }); }
2197
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: DateFormatter }); }
2714
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DateFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2715
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DateFormatter }); }
2198
2716
  }
2199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: DateFormatter, decorators: [{
2717
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DateFormatter, decorators: [{
2200
2718
  type: Injectable
2201
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: undefined, decorators: [{
2202
- type: Inject,
2203
- args: [KBQ_DATE_LOCALE]
2204
- }] }] });
2719
+ }], ctorParameters: () => [] });
2205
2720
 
2206
2721
  class BaseFormatterPipe {
2207
2722
  constructor() {
@@ -2209,15 +2724,72 @@ class BaseFormatterPipe {
2209
2724
  this.formatter = inject((DateFormatter));
2210
2725
  }
2211
2726
  }
2727
+ /**
2728
+ * Base class for impure date-formatter pipes that recompute their result
2729
+ * whenever the active locale changes via `KbqLocaleService`.
2730
+ *
2731
+ * The base class owns:
2732
+ * - a subscription to `KbqLocaleService.changes` that invalidates the cache and
2733
+ * marks the host for check (the same approach the built-in `AsyncPipe` uses);
2734
+ * - caching by `(value, args, localeId)`, so the impure `transform()` only does
2735
+ * real work when an input or the active locale actually changed.
2736
+ *
2737
+ * Subclasses implement `format()`, which receives the raw pipe input(s) — a
2738
+ * single value for absolute/relative pipes, or a `[from, to]` tuple for range
2739
+ * pipes — deserializes via `this.adapter` and calls the matching
2740
+ * `DateFormatter` method.
2741
+ *
2742
+ * @docs-private
2743
+ */
2744
+ class BaseLocaleAwareFormatterPipe extends BaseFormatterPipe {
2745
+ constructor() {
2746
+ super();
2747
+ this.changeDetectorRef = inject(ChangeDetectorRef);
2748
+ this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
2749
+ this.cachedValue = null;
2750
+ this.cachedArgs = [];
2751
+ this.cachedLocaleId = null;
2752
+ this.cachedResult = '';
2753
+ this.hasCache = false;
2754
+ this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(() => {
2755
+ this.hasCache = false;
2756
+ this.changeDetectorRef.markForCheck();
2757
+ });
2758
+ }
2759
+ transform(value, ...args) {
2760
+ const currentLocaleId = this.localeService?.id ?? null;
2761
+ if (this.hasCache &&
2762
+ value === this.cachedValue &&
2763
+ currentLocaleId === this.cachedLocaleId &&
2764
+ this.argsEqual(args)) {
2765
+ return this.cachedResult;
2766
+ }
2767
+ this.cachedResult = this.format(value, ...args);
2768
+ this.cachedValue = value;
2769
+ this.cachedArgs = args;
2770
+ this.cachedLocaleId = currentLocaleId;
2771
+ this.hasCache = true;
2772
+ return this.cachedResult;
2773
+ }
2774
+ argsEqual(args) {
2775
+ if (args.length !== this.cachedArgs.length)
2776
+ return false;
2777
+ for (let i = 0; i < args.length; i++) {
2778
+ if (args[i] !== this.cachedArgs[i])
2779
+ return false;
2780
+ }
2781
+ return true;
2782
+ }
2783
+ }
2212
2784
  class AbsoluteDateFormatterPipe extends BaseFormatterPipe {
2213
2785
  transform(value, currYear) {
2214
2786
  const date = this.adapter.deserialize(value);
2215
2787
  return date ? this.formatter.absoluteLongDate(date, currYear) : '';
2216
2788
  }
2217
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2218
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateFormatterPipe, isStandalone: true, name: "absoluteLongDate" }); }
2789
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2790
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateFormatterPipe, isStandalone: true, name: "absoluteLongDate" }); }
2219
2791
  }
2220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateFormatterPipe, decorators: [{
2792
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateFormatterPipe, decorators: [{
2221
2793
  type: Pipe,
2222
2794
  args: [{
2223
2795
  name: 'absoluteLongDate'
@@ -2228,10 +2800,10 @@ class AbsoluteDateFormatterImpurePipe extends AbsoluteDateFormatterPipe {
2228
2800
  transform(value, currYear) {
2229
2801
  return super.transform(value, currYear);
2230
2802
  }
2231
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2232
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateFormatterImpurePipe, isStandalone: true, name: "absoluteLongDateImpurePipe", pure: false }); }
2803
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2804
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateFormatterImpurePipe, isStandalone: true, name: "absoluteLongDateImpurePipe", pure: false }); }
2233
2805
  }
2234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateFormatterImpurePipe, decorators: [{
2806
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateFormatterImpurePipe, decorators: [{
2235
2807
  type: Pipe,
2236
2808
  args: [{
2237
2809
  name: 'absoluteLongDateImpurePipe',
@@ -2243,10 +2815,10 @@ class AbsoluteDateTimeFormatterPipe extends BaseFormatterPipe {
2243
2815
  const date = this.adapter.deserialize(value);
2244
2816
  return date ? this.formatter.absoluteLongDateTime(date, options) : '';
2245
2817
  }
2246
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2247
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, isStandalone: true, name: "absoluteLongDateTime" }); }
2818
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2819
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, isStandalone: true, name: "absoluteLongDateTime" }); }
2248
2820
  }
2249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, decorators: [{
2821
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, decorators: [{
2250
2822
  type: Pipe,
2251
2823
  args: [{
2252
2824
  name: 'absoluteLongDateTime'
@@ -2257,10 +2829,10 @@ class AbsoluteDateTimeFormatterImpurePipe extends AbsoluteDateTimeFormatterPipe
2257
2829
  transform(value, options) {
2258
2830
  return super.transform(value, options);
2259
2831
  }
2260
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2261
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateTimeFormatterImpurePipe, isStandalone: true, name: "absoluteLongDateTimeImpurePipe", pure: false }); }
2832
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2833
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateTimeFormatterImpurePipe, isStandalone: true, name: "absoluteLongDateTimeImpurePipe", pure: false }); }
2262
2834
  }
2263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateTimeFormatterImpurePipe, decorators: [{
2835
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateTimeFormatterImpurePipe, decorators: [{
2264
2836
  type: Pipe,
2265
2837
  args: [{
2266
2838
  name: 'absoluteLongDateTimeImpurePipe',
@@ -2272,10 +2844,10 @@ class AbsoluteDateShortFormatterPipe extends BaseFormatterPipe {
2272
2844
  const date = this.adapter.deserialize(value);
2273
2845
  return date ? this.formatter.absoluteShortDate(date, currYear) : '';
2274
2846
  }
2275
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateShortFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2276
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateShortFormatterPipe, isStandalone: true, name: "absoluteShortDate" }); }
2847
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateShortFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2848
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateShortFormatterPipe, isStandalone: true, name: "absoluteShortDate" }); }
2277
2849
  }
2278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateShortFormatterPipe, decorators: [{
2850
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateShortFormatterPipe, decorators: [{
2279
2851
  type: Pipe,
2280
2852
  args: [{
2281
2853
  name: 'absoluteShortDate'
@@ -2286,10 +2858,10 @@ class AbsoluteDateShortFormatterImpurePipe extends AbsoluteDateShortFormatterPip
2286
2858
  transform(value, currYear) {
2287
2859
  return super.transform(value, currYear);
2288
2860
  }
2289
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateShortFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2290
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateShortFormatterImpurePipe, isStandalone: true, name: "absoluteShortDateImpurePipe", pure: false }); }
2861
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateShortFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2862
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateShortFormatterImpurePipe, isStandalone: true, name: "absoluteShortDateImpurePipe", pure: false }); }
2291
2863
  }
2292
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteDateShortFormatterImpurePipe, decorators: [{
2864
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateShortFormatterImpurePipe, decorators: [{
2293
2865
  type: Pipe,
2294
2866
  args: [{
2295
2867
  name: 'absoluteShortDateImpurePipe',
@@ -2301,10 +2873,10 @@ class AbsoluteShortDateTimeFormatterPipe extends BaseFormatterPipe {
2301
2873
  const date = this.adapter.deserialize(value);
2302
2874
  return date ? this.formatter.absoluteShortDateTime(date, options) : '';
2303
2875
  }
2304
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2305
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, isStandalone: true, name: "absoluteShortDateTime" }); }
2876
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2877
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, isStandalone: true, name: "absoluteShortDateTime" }); }
2306
2878
  }
2307
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, decorators: [{
2879
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, decorators: [{
2308
2880
  type: Pipe,
2309
2881
  args: [{
2310
2882
  name: 'absoluteShortDateTime'
@@ -2315,10 +2887,10 @@ class AbsoluteShortDateTimeFormatterImpurePipe extends AbsoluteShortDateTimeForm
2315
2887
  transform(value, options) {
2316
2888
  return super.transform(value, options);
2317
2889
  }
2318
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteShortDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2319
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteShortDateTimeFormatterImpurePipe, isStandalone: true, name: "absoluteShortDateTimeImpurePipe", pure: false }); }
2890
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteShortDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2891
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteShortDateTimeFormatterImpurePipe, isStandalone: true, name: "absoluteShortDateTimeImpurePipe", pure: false }); }
2320
2892
  }
2321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AbsoluteShortDateTimeFormatterImpurePipe, decorators: [{
2893
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteShortDateTimeFormatterImpurePipe, decorators: [{
2322
2894
  type: Pipe,
2323
2895
  args: [{
2324
2896
  name: 'absoluteShortDateTimeImpurePipe',
@@ -2330,10 +2902,10 @@ class RelativeDateFormatterPipe extends BaseFormatterPipe {
2330
2902
  const date = this.adapter.deserialize(value);
2331
2903
  return date ? this.formatter.relativeLongDate(date) : '';
2332
2904
  }
2333
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2334
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RelativeDateFormatterPipe, isStandalone: true, name: "relativeLongDate" }); }
2905
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2906
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateFormatterPipe, isStandalone: true, name: "relativeLongDate" }); }
2335
2907
  }
2336
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeDateFormatterPipe, decorators: [{
2908
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateFormatterPipe, decorators: [{
2337
2909
  type: Pipe,
2338
2910
  args: [{
2339
2911
  name: 'relativeLongDate'
@@ -2344,10 +2916,10 @@ class RelativeDateFormatterImpurePipe extends RelativeDateFormatterPipe {
2344
2916
  transform(value) {
2345
2917
  return super.transform(value);
2346
2918
  }
2347
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2348
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RelativeDateFormatterImpurePipe, isStandalone: true, name: "relativeLongDateImpurePipe", pure: false }); }
2919
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2920
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateFormatterImpurePipe, isStandalone: true, name: "relativeLongDateImpurePipe", pure: false }); }
2349
2921
  }
2350
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeDateFormatterImpurePipe, decorators: [{
2922
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateFormatterImpurePipe, decorators: [{
2351
2923
  type: Pipe,
2352
2924
  args: [{
2353
2925
  name: 'relativeLongDateImpurePipe',
@@ -2359,10 +2931,10 @@ class RelativeDateTimeFormatterPipe extends BaseFormatterPipe {
2359
2931
  const date = this.adapter.deserialize(value);
2360
2932
  return date ? this.formatter.relativeLongDateTime(date, options) : '';
2361
2933
  }
2362
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2363
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RelativeDateTimeFormatterPipe, isStandalone: true, name: "relativeLongDateTime" }); }
2934
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2935
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateTimeFormatterPipe, isStandalone: true, name: "relativeLongDateTime" }); }
2364
2936
  }
2365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeDateTimeFormatterPipe, decorators: [{
2937
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateTimeFormatterPipe, decorators: [{
2366
2938
  type: Pipe,
2367
2939
  args: [{
2368
2940
  name: 'relativeLongDateTime'
@@ -2373,10 +2945,10 @@ class RelativeDateTimeFormatterImpurePipe extends RelativeDateTimeFormatterPipe
2373
2945
  transform(value, options) {
2374
2946
  return super.transform(value, options);
2375
2947
  }
2376
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2377
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RelativeDateTimeFormatterImpurePipe, isStandalone: true, name: "relativeLongDateTimeImpurePipe", pure: false }); }
2948
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2949
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateTimeFormatterImpurePipe, isStandalone: true, name: "relativeLongDateTimeImpurePipe", pure: false }); }
2378
2950
  }
2379
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeDateTimeFormatterImpurePipe, decorators: [{
2951
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateTimeFormatterImpurePipe, decorators: [{
2380
2952
  type: Pipe,
2381
2953
  args: [{
2382
2954
  name: 'relativeLongDateTimeImpurePipe',
@@ -2388,10 +2960,10 @@ class RelativeShortDateFormatterPipe extends BaseFormatterPipe {
2388
2960
  const date = this.adapter.deserialize(value);
2389
2961
  return date ? this.formatter.relativeShortDate(date) : '';
2390
2962
  }
2391
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeShortDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2392
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RelativeShortDateFormatterPipe, isStandalone: true, name: "relativeShortDate" }); }
2963
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2964
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateFormatterPipe, isStandalone: true, name: "relativeShortDate" }); }
2393
2965
  }
2394
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeShortDateFormatterPipe, decorators: [{
2966
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateFormatterPipe, decorators: [{
2395
2967
  type: Pipe,
2396
2968
  args: [{
2397
2969
  name: 'relativeShortDate'
@@ -2402,10 +2974,10 @@ class RelativeShortDateFormatterImpurePipe extends RelativeShortDateFormatterPip
2402
2974
  transform(value) {
2403
2975
  return super.transform(value);
2404
2976
  }
2405
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeShortDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2406
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RelativeShortDateFormatterImpurePipe, isStandalone: true, name: "relativeShortDateImpurePipe", pure: false }); }
2977
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2978
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateFormatterImpurePipe, isStandalone: true, name: "relativeShortDateImpurePipe", pure: false }); }
2407
2979
  }
2408
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeShortDateFormatterImpurePipe, decorators: [{
2980
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateFormatterImpurePipe, decorators: [{
2409
2981
  type: Pipe,
2410
2982
  args: [{
2411
2983
  name: 'relativeShortDateImpurePipe',
@@ -2417,10 +2989,10 @@ class RelativeShortDateTimeFormatterPipe extends BaseFormatterPipe {
2417
2989
  const date = this.adapter.deserialize(value);
2418
2990
  return date ? this.formatter.relativeShortDateTime(date, options) : '';
2419
2991
  }
2420
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2421
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, isStandalone: true, name: "relativeShortDateTime" }); }
2992
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2993
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, isStandalone: true, name: "relativeShortDateTime" }); }
2422
2994
  }
2423
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, decorators: [{
2995
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, decorators: [{
2424
2996
  type: Pipe,
2425
2997
  args: [{
2426
2998
  name: 'relativeShortDateTime'
@@ -2431,10 +3003,10 @@ class RelativeShortDateTimeFormatterImpurePipe extends RelativeShortDateTimeForm
2431
3003
  transform(value, options) {
2432
3004
  return super.transform(value, options);
2433
3005
  }
2434
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeShortDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2435
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RelativeShortDateTimeFormatterImpurePipe, isStandalone: true, name: "relativeShortDateTimeImpurePipe", pure: false }); }
3006
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3007
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateTimeFormatterImpurePipe, isStandalone: true, name: "relativeShortDateTimeImpurePipe", pure: false }); }
2436
3008
  }
2437
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RelativeShortDateTimeFormatterImpurePipe, decorators: [{
3009
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateTimeFormatterImpurePipe, decorators: [{
2438
3010
  type: Pipe,
2439
3011
  args: [{
2440
3012
  name: 'relativeShortDateTimeImpurePipe',
@@ -2447,10 +3019,10 @@ class RangeDateFormatterPipe extends BaseFormatterPipe {
2447
3019
  const date2 = this.adapter.deserialize(value2);
2448
3020
  return this.formatter.rangeLongDate(date1, date2);
2449
3021
  }
2450
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2451
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RangeDateFormatterPipe, isStandalone: true, name: "rangeLongDate" }); }
3022
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3023
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeDateFormatterPipe, isStandalone: true, name: "rangeLongDate" }); }
2452
3024
  }
2453
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeDateFormatterPipe, decorators: [{
3025
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateFormatterPipe, decorators: [{
2454
3026
  type: Pipe,
2455
3027
  args: [{
2456
3028
  name: 'rangeLongDate'
@@ -2461,10 +3033,10 @@ class RangeDateFormatterImpurePipe extends RangeDateFormatterPipe {
2461
3033
  transform([value1, value2]) {
2462
3034
  return super.transform([value1, value2]);
2463
3035
  }
2464
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2465
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RangeDateFormatterImpurePipe, isStandalone: true, name: "rangeLongDateImpurePipe", pure: false }); }
3036
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3037
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeDateFormatterImpurePipe, isStandalone: true, name: "rangeLongDateImpurePipe", pure: false }); }
2466
3038
  }
2467
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeDateFormatterImpurePipe, decorators: [{
3039
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateFormatterImpurePipe, decorators: [{
2468
3040
  type: Pipe,
2469
3041
  args: [{
2470
3042
  name: 'rangeLongDateImpurePipe',
@@ -2477,10 +3049,10 @@ class RangeShortDateFormatterPipe extends BaseFormatterPipe {
2477
3049
  const date2 = this.adapter.deserialize(value2);
2478
3050
  return this.formatter.rangeShortDate(date1, date2);
2479
3051
  }
2480
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeShortDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2481
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RangeShortDateFormatterPipe, isStandalone: true, name: "rangeShortDate" }); }
3052
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3053
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateFormatterPipe, isStandalone: true, name: "rangeShortDate" }); }
2482
3054
  }
2483
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeShortDateFormatterPipe, decorators: [{
3055
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateFormatterPipe, decorators: [{
2484
3056
  type: Pipe,
2485
3057
  args: [{
2486
3058
  name: 'rangeShortDate'
@@ -2491,10 +3063,10 @@ class RangeShortDateFormatterImpurePipe extends RangeShortDateFormatterPipe {
2491
3063
  transform([value1, value2]) {
2492
3064
  return super.transform([value1, value2]);
2493
3065
  }
2494
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeShortDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2495
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RangeShortDateFormatterImpurePipe, isStandalone: true, name: "rangeShortDateImpurePipe", pure: false }); }
3066
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3067
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateFormatterImpurePipe, isStandalone: true, name: "rangeShortDateImpurePipe", pure: false }); }
2496
3068
  }
2497
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeShortDateFormatterImpurePipe, decorators: [{
3069
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateFormatterImpurePipe, decorators: [{
2498
3070
  type: Pipe,
2499
3071
  args: [{
2500
3072
  name: 'rangeShortDateImpurePipe',
@@ -2507,10 +3079,10 @@ class RangeDateTimeFormatterPipe extends BaseFormatterPipe {
2507
3079
  const date2 = this.adapter.deserialize(value2);
2508
3080
  return this.formatter.rangeLongDateTime(date1, date2, options);
2509
3081
  }
2510
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2511
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RangeDateTimeFormatterPipe, isStandalone: true, name: "rangeLongDateTime" }); }
3082
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3083
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeDateTimeFormatterPipe, isStandalone: true, name: "rangeLongDateTime" }); }
2512
3084
  }
2513
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeDateTimeFormatterPipe, decorators: [{
3085
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateTimeFormatterPipe, decorators: [{
2514
3086
  type: Pipe,
2515
3087
  args: [{
2516
3088
  name: 'rangeLongDateTime'
@@ -2521,10 +3093,10 @@ class RangeDateTimeFormatterImpurePipe extends RangeDateTimeFormatterPipe {
2521
3093
  transform([value1, value2], options) {
2522
3094
  return super.transform([value1, value2], options);
2523
3095
  }
2524
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2525
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RangeDateTimeFormatterImpurePipe, isStandalone: true, name: "rangeLongDateTimeImpurePipe", pure: false }); }
3096
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3097
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeDateTimeFormatterImpurePipe, isStandalone: true, name: "rangeLongDateTimeImpurePipe", pure: false }); }
2526
3098
  }
2527
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeDateTimeFormatterImpurePipe, decorators: [{
3099
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateTimeFormatterImpurePipe, decorators: [{
2528
3100
  type: Pipe,
2529
3101
  args: [{
2530
3102
  name: 'rangeLongDateTimeImpurePipe',
@@ -2537,10 +3109,10 @@ class RangeMiddleDateTimeFormatterPipe extends BaseFormatterPipe {
2537
3109
  const date2 = this.adapter.deserialize(value2);
2538
3110
  return this.formatter.rangeMiddleDateTime(date1, date2, options);
2539
3111
  }
2540
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2541
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, isStandalone: true, name: "rangeMiddleDateTime" }); }
3112
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3113
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, isStandalone: true, name: "rangeMiddleDateTime" }); }
2542
3114
  }
2543
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, decorators: [{
3115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, decorators: [{
2544
3116
  type: Pipe,
2545
3117
  args: [{
2546
3118
  name: 'rangeMiddleDateTime'
@@ -2551,10 +3123,10 @@ class RangeMiddleDateTimeFormatterImpurePipe extends RangeMiddleDateTimeFormatte
2551
3123
  transform([value1, value2], options) {
2552
3124
  return super.transform([value1, value2], options);
2553
3125
  }
2554
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeMiddleDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2555
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RangeMiddleDateTimeFormatterImpurePipe, isStandalone: true, name: "rangeMiddleDateTimeImpurePipe", pure: false }); }
3126
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeMiddleDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3127
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeMiddleDateTimeFormatterImpurePipe, isStandalone: true, name: "rangeMiddleDateTimeImpurePipe", pure: false }); }
2556
3128
  }
2557
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeMiddleDateTimeFormatterImpurePipe, decorators: [{
3129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeMiddleDateTimeFormatterImpurePipe, decorators: [{
2558
3130
  type: Pipe,
2559
3131
  args: [{
2560
3132
  name: 'rangeMiddleDateTimeImpurePipe',
@@ -2567,10 +3139,10 @@ class RangeShortDateTimeFormatterPipe extends BaseFormatterPipe {
2567
3139
  const date2 = this.adapter.deserialize(value2);
2568
3140
  return this.formatter.rangeShortDateTime(date1, date2, options);
2569
3141
  }
2570
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeShortDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2571
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RangeShortDateTimeFormatterPipe, isStandalone: true, name: "rangeShortDateTime" }); }
3142
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3143
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateTimeFormatterPipe, isStandalone: true, name: "rangeShortDateTime" }); }
2572
3144
  }
2573
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeShortDateTimeFormatterPipe, decorators: [{
3145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateTimeFormatterPipe, decorators: [{
2574
3146
  type: Pipe,
2575
3147
  args: [{
2576
3148
  name: 'rangeShortDateTime'
@@ -2581,26 +3153,259 @@ class RangeShortDateTimeFormatterImpurePipe extends RangeShortDateTimeFormatterP
2581
3153
  transform([value1, value2], options) {
2582
3154
  return super.transform([value1, value2], options);
2583
3155
  }
2584
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeShortDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
2585
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: RangeShortDateTimeFormatterImpurePipe, isStandalone: true, name: "rangeShortDateTimeImpurePipe", pure: false }); }
3156
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3157
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateTimeFormatterImpurePipe, isStandalone: true, name: "rangeShortDateTimeImpurePipe", pure: false }); }
2586
3158
  }
2587
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RangeShortDateTimeFormatterImpurePipe, decorators: [{
3159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateTimeFormatterImpurePipe, decorators: [{
2588
3160
  type: Pipe,
2589
3161
  args: [{
2590
3162
  name: 'rangeShortDateTimeImpurePipe',
2591
3163
  pure: false
2592
3164
  }]
2593
3165
  }] });
3166
+ // Impure pipes that recompute on `KbqLocaleService` locale changes (see `BaseLocaleAwareFormatterPipe`).
3167
+ // Prefer these `kbq`-prefixed pipes when the locale can change at runtime; the pure pipes above are
3168
+ // kept for static usages and backward compatibility.
3169
+ class KbqAbsoluteLongDatePipe extends BaseLocaleAwareFormatterPipe {
3170
+ transform(value, currYear) {
3171
+ return super.transform(value, currYear);
3172
+ }
3173
+ format(value, currYear) {
3174
+ const date = this.adapter.deserialize(value);
3175
+ return date ? this.formatter.absoluteLongDate(date, currYear) : '';
3176
+ }
3177
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteLongDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3178
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteLongDatePipe, isStandalone: true, name: "kbqAbsoluteLongDate", pure: false }); }
3179
+ }
3180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteLongDatePipe, decorators: [{
3181
+ type: Pipe,
3182
+ args: [{
3183
+ name: 'kbqAbsoluteLongDate',
3184
+ pure: false
3185
+ }]
3186
+ }] });
3187
+ class KbqAbsoluteShortDatePipe extends BaseLocaleAwareFormatterPipe {
3188
+ transform(value, currYear) {
3189
+ return super.transform(value, currYear);
3190
+ }
3191
+ format(value, currYear) {
3192
+ const date = this.adapter.deserialize(value);
3193
+ return date ? this.formatter.absoluteShortDate(date, currYear) : '';
3194
+ }
3195
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteShortDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3196
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteShortDatePipe, isStandalone: true, name: "kbqAbsoluteShortDate", pure: false }); }
3197
+ }
3198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteShortDatePipe, decorators: [{
3199
+ type: Pipe,
3200
+ args: [{
3201
+ name: 'kbqAbsoluteShortDate',
3202
+ pure: false
3203
+ }]
3204
+ }] });
3205
+ class KbqAbsoluteLongDateTimePipe extends BaseLocaleAwareFormatterPipe {
3206
+ transform(value, options) {
3207
+ return super.transform(value, options);
3208
+ }
3209
+ format(value, options) {
3210
+ const date = this.adapter.deserialize(value);
3211
+ return date ? this.formatter.absoluteLongDateTime(date, options) : '';
3212
+ }
3213
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteLongDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3214
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteLongDateTimePipe, isStandalone: true, name: "kbqAbsoluteLongDateTime", pure: false }); }
3215
+ }
3216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteLongDateTimePipe, decorators: [{
3217
+ type: Pipe,
3218
+ args: [{
3219
+ name: 'kbqAbsoluteLongDateTime',
3220
+ pure: false
3221
+ }]
3222
+ }] });
3223
+ class KbqAbsoluteShortDateTimePipe extends BaseLocaleAwareFormatterPipe {
3224
+ transform(value, options) {
3225
+ return super.transform(value, options);
3226
+ }
3227
+ format(value, options) {
3228
+ const date = this.adapter.deserialize(value);
3229
+ return date ? this.formatter.absoluteShortDateTime(date, options) : '';
3230
+ }
3231
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteShortDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3232
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteShortDateTimePipe, isStandalone: true, name: "kbqAbsoluteShortDateTime", pure: false }); }
3233
+ }
3234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteShortDateTimePipe, decorators: [{
3235
+ type: Pipe,
3236
+ args: [{
3237
+ name: 'kbqAbsoluteShortDateTime',
3238
+ pure: false
3239
+ }]
3240
+ }] });
3241
+ class KbqRelativeLongDatePipe extends BaseLocaleAwareFormatterPipe {
3242
+ transform(value) {
3243
+ return super.transform(value);
3244
+ }
3245
+ format(value) {
3246
+ const date = this.adapter.deserialize(value);
3247
+ return date ? this.formatter.relativeLongDate(date) : '';
3248
+ }
3249
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeLongDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3250
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeLongDatePipe, isStandalone: true, name: "kbqRelativeLongDate", pure: false }); }
3251
+ }
3252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeLongDatePipe, decorators: [{
3253
+ type: Pipe,
3254
+ args: [{
3255
+ name: 'kbqRelativeLongDate',
3256
+ pure: false
3257
+ }]
3258
+ }] });
3259
+ class KbqRelativeShortDatePipe extends BaseLocaleAwareFormatterPipe {
3260
+ transform(value) {
3261
+ return super.transform(value);
3262
+ }
3263
+ format(value) {
3264
+ const date = this.adapter.deserialize(value);
3265
+ return date ? this.formatter.relativeShortDate(date) : '';
3266
+ }
3267
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeShortDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3268
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeShortDatePipe, isStandalone: true, name: "kbqRelativeShortDate", pure: false }); }
3269
+ }
3270
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeShortDatePipe, decorators: [{
3271
+ type: Pipe,
3272
+ args: [{
3273
+ name: 'kbqRelativeShortDate',
3274
+ pure: false
3275
+ }]
3276
+ }] });
3277
+ class KbqRelativeLongDateTimePipe extends BaseLocaleAwareFormatterPipe {
3278
+ transform(value, options) {
3279
+ return super.transform(value, options);
3280
+ }
3281
+ format(value, options) {
3282
+ const date = this.adapter.deserialize(value);
3283
+ return date ? this.formatter.relativeLongDateTime(date, options) : '';
3284
+ }
3285
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeLongDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3286
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeLongDateTimePipe, isStandalone: true, name: "kbqRelativeLongDateTime", pure: false }); }
3287
+ }
3288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeLongDateTimePipe, decorators: [{
3289
+ type: Pipe,
3290
+ args: [{
3291
+ name: 'kbqRelativeLongDateTime',
3292
+ pure: false
3293
+ }]
3294
+ }] });
3295
+ class KbqRelativeShortDateTimePipe extends BaseLocaleAwareFormatterPipe {
3296
+ transform(value, options) {
3297
+ return super.transform(value, options);
3298
+ }
3299
+ format(value, options) {
3300
+ const date = this.adapter.deserialize(value);
3301
+ return date ? this.formatter.relativeShortDateTime(date, options) : '';
3302
+ }
3303
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeShortDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3304
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeShortDateTimePipe, isStandalone: true, name: "kbqRelativeShortDateTime", pure: false }); }
3305
+ }
3306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeShortDateTimePipe, decorators: [{
3307
+ type: Pipe,
3308
+ args: [{
3309
+ name: 'kbqRelativeShortDateTime',
3310
+ pure: false
3311
+ }]
3312
+ }] });
3313
+ class KbqRangeLongDatePipe extends BaseLocaleAwareFormatterPipe {
3314
+ transform(value) {
3315
+ return super.transform(value);
3316
+ }
3317
+ format([value1, value2]) {
3318
+ const date1 = this.adapter.deserialize(value1);
3319
+ const date2 = this.adapter.deserialize(value2);
3320
+ return this.formatter.rangeLongDate(date1, date2);
3321
+ }
3322
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeLongDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3323
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeLongDatePipe, isStandalone: true, name: "kbqRangeLongDate", pure: false }); }
3324
+ }
3325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeLongDatePipe, decorators: [{
3326
+ type: Pipe,
3327
+ args: [{
3328
+ name: 'kbqRangeLongDate',
3329
+ pure: false
3330
+ }]
3331
+ }] });
3332
+ class KbqRangeShortDatePipe extends BaseLocaleAwareFormatterPipe {
3333
+ transform(value) {
3334
+ return super.transform(value);
3335
+ }
3336
+ format([value1, value2]) {
3337
+ const date1 = this.adapter.deserialize(value1);
3338
+ const date2 = this.adapter.deserialize(value2);
3339
+ return this.formatter.rangeShortDate(date1, date2);
3340
+ }
3341
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeShortDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3342
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeShortDatePipe, isStandalone: true, name: "kbqRangeShortDate", pure: false }); }
3343
+ }
3344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeShortDatePipe, decorators: [{
3345
+ type: Pipe,
3346
+ args: [{
3347
+ name: 'kbqRangeShortDate',
3348
+ pure: false
3349
+ }]
3350
+ }] });
3351
+ class KbqRangeLongDateTimePipe extends BaseLocaleAwareFormatterPipe {
3352
+ transform(value, options) {
3353
+ return super.transform(value, options);
3354
+ }
3355
+ format([value1, value2], options) {
3356
+ const date1 = this.adapter.deserialize(value1);
3357
+ const date2 = this.adapter.deserialize(value2);
3358
+ return this.formatter.rangeLongDateTime(date1, date2, options);
3359
+ }
3360
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeLongDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3361
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeLongDateTimePipe, isStandalone: true, name: "kbqRangeLongDateTime", pure: false }); }
3362
+ }
3363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeLongDateTimePipe, decorators: [{
3364
+ type: Pipe,
3365
+ args: [{
3366
+ name: 'kbqRangeLongDateTime',
3367
+ pure: false
3368
+ }]
3369
+ }] });
3370
+ class KbqRangeMiddleDateTimePipe extends BaseLocaleAwareFormatterPipe {
3371
+ transform(value, options) {
3372
+ return super.transform(value, options);
3373
+ }
3374
+ format([value1, value2], options) {
3375
+ const date1 = this.adapter.deserialize(value1);
3376
+ const date2 = this.adapter.deserialize(value2);
3377
+ return this.formatter.rangeMiddleDateTime(date1, date2, options);
3378
+ }
3379
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeMiddleDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3380
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeMiddleDateTimePipe, isStandalone: true, name: "kbqRangeMiddleDateTime", pure: false }); }
3381
+ }
3382
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeMiddleDateTimePipe, decorators: [{
3383
+ type: Pipe,
3384
+ args: [{
3385
+ name: 'kbqRangeMiddleDateTime',
3386
+ pure: false
3387
+ }]
3388
+ }] });
3389
+ class KbqRangeShortDateTimePipe extends BaseLocaleAwareFormatterPipe {
3390
+ transform(value, options) {
3391
+ return super.transform(value, options);
3392
+ }
3393
+ format([value1, value2], options) {
3394
+ const date1 = this.adapter.deserialize(value1);
3395
+ const date2 = this.adapter.deserialize(value2);
3396
+ return this.formatter.rangeShortDateTime(date1, date2, options);
3397
+ }
3398
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeShortDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
3399
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeShortDateTimePipe, isStandalone: true, name: "kbqRangeShortDateTime", pure: false }); }
3400
+ }
3401
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeShortDateTimePipe, decorators: [{
3402
+ type: Pipe,
3403
+ args: [{
3404
+ name: 'kbqRangeShortDateTime',
3405
+ pure: false
3406
+ }]
3407
+ }] });
2594
3408
 
2595
- /**
2596
- * @deprecated Will be removed in next major release. Use `KbqMeasurementSystem` instead.
2597
- * @docs-private
2598
- */
2599
- var MeasurementSystem;
2600
- (function (MeasurementSystem) {
2601
- MeasurementSystem["SI"] = "SI";
2602
- MeasurementSystem["IEC"] = "IEC";
2603
- })(MeasurementSystem || (MeasurementSystem = {}));
2604
3409
  /**
2605
3410
  * Available unit systems for file size formatting.
2606
3411
  * - SI (Metric): 1 KB = 1000 bytes
@@ -2706,10 +3511,10 @@ function parseDigitsInfo(digitsInfo) {
2706
3511
  return result;
2707
3512
  }
2708
3513
  class KbqDecimalPipe {
2709
- constructor(id, localeService, options) {
2710
- this.id = id;
2711
- this.localeService = localeService;
2712
- this.options = options;
3514
+ constructor() {
3515
+ this.id = inject(KBQ_LOCALE_ID, { optional: true });
3516
+ this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
3517
+ this.options = inject(KBQ_NUMBER_FORMATTER_OPTIONS, { optional: true });
2713
3518
  this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;
2714
3519
  this.localeService?.changes.subscribe((newId) => (this.id = newId));
2715
3520
  }
@@ -2756,11 +3561,11 @@ class KbqDecimalPipe {
2756
3561
  grouping === undefined &&
2757
3562
  Math.abs(value) < defaultValueForGroupingInRULocale);
2758
3563
  }
2759
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqDecimalPipe, deps: [{ token: KBQ_LOCALE_ID, optional: true }, { token: KBQ_LOCALE_SERVICE, optional: true }, { token: KBQ_NUMBER_FORMATTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
2760
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqDecimalPipe, isStandalone: true, name: "kbqNumber", pure: false }); }
2761
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqDecimalPipe, providedIn: 'root' }); }
3564
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqDecimalPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3565
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqDecimalPipe, isStandalone: true, name: "kbqNumber", pure: false }); }
3566
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqDecimalPipe, providedIn: 'root' }); }
2762
3567
  }
2763
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqDecimalPipe, decorators: [{
3568
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqDecimalPipe, decorators: [{
2764
3569
  type: Injectable,
2765
3570
  args: [{ providedIn: 'root' }]
2766
3571
  }, {
@@ -2769,27 +3574,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
2769
3574
  name: 'kbqNumber',
2770
3575
  pure: false
2771
3576
  }]
2772
- }], ctorParameters: () => [{ type: undefined, decorators: [{
2773
- type: Optional
2774
- }, {
2775
- type: Inject,
2776
- args: [KBQ_LOCALE_ID]
2777
- }] }, { type: KbqLocaleService, decorators: [{
2778
- type: Optional
2779
- }, {
2780
- type: Inject,
2781
- args: [KBQ_LOCALE_SERVICE]
2782
- }] }, { type: ParsedDigitsInfo, decorators: [{
2783
- type: Optional
2784
- }, {
2785
- type: Inject,
2786
- args: [KBQ_NUMBER_FORMATTER_OPTIONS]
2787
- }] }] });
3577
+ }], ctorParameters: () => [] });
2788
3578
  class KbqTableNumberPipe {
2789
- constructor(id, localeService, options) {
2790
- this.id = id;
2791
- this.localeService = localeService;
2792
- this.options = options;
3579
+ constructor() {
3580
+ this.id = inject(KBQ_LOCALE_ID, { optional: true });
3581
+ this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
3582
+ this.options = inject(KBQ_NUMBER_FORMATTER_OPTIONS, { optional: true });
2793
3583
  this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;
2794
3584
  this.localeService?.changes.subscribe((newId) => (this.id = newId));
2795
3585
  }
@@ -2828,11 +3618,11 @@ class KbqTableNumberPipe {
2828
3618
  throw Error(`InvalidPipeArgument: KbqTableNumberPipe for pipe '${JSON.stringify(error.message)}'`);
2829
3619
  }
2830
3620
  }
2831
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqTableNumberPipe, deps: [{ token: KBQ_LOCALE_ID, optional: true }, { token: KBQ_LOCALE_SERVICE, optional: true }, { token: KBQ_NUMBER_FORMATTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
2832
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqTableNumberPipe, isStandalone: true, name: "kbqTableNumber", pure: false }); }
2833
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqTableNumberPipe, providedIn: 'root' }); }
3621
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqTableNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3622
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqTableNumberPipe, isStandalone: true, name: "kbqTableNumber", pure: false }); }
3623
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqTableNumberPipe, providedIn: 'root' }); }
2834
3624
  }
2835
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqTableNumberPipe, decorators: [{
3625
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqTableNumberPipe, decorators: [{
2836
3626
  type: Injectable,
2837
3627
  args: [{ providedIn: 'root' }]
2838
3628
  }, {
@@ -2841,29 +3631,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
2841
3631
  name: 'kbqTableNumber',
2842
3632
  pure: false
2843
3633
  }]
2844
- }], ctorParameters: () => [{ type: undefined, decorators: [{
2845
- type: Optional
2846
- }, {
2847
- type: Inject,
2848
- args: [KBQ_LOCALE_ID]
2849
- }] }, { type: KbqLocaleService, decorators: [{
2850
- type: Optional
2851
- }, {
2852
- type: Inject,
2853
- args: [KBQ_LOCALE_SERVICE]
2854
- }] }, { type: ParsedDigitsInfo, decorators: [{
2855
- type: Optional
2856
- }, {
2857
- type: Inject,
2858
- args: [KBQ_NUMBER_FORMATTER_OPTIONS]
2859
- }] }] });
3634
+ }], ctorParameters: () => [] });
2860
3635
  function isWithin(startRange, endRange, valueToCheck) {
2861
3636
  return startRange <= valueToCheck && valueToCheck < endRange;
2862
3637
  }
2863
3638
  class KbqRoundDecimalPipe {
2864
- constructor(id, localeService) {
2865
- this.id = id;
2866
- this.localeService = localeService;
3639
+ constructor() {
3640
+ this.id = inject(KBQ_LOCALE_ID, { optional: true });
3641
+ this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
2867
3642
  this.localeService?.changes.subscribe((newId) => (this.id = newId));
2868
3643
  }
2869
3644
  transform(value, locale) {
@@ -2948,11 +3723,11 @@ class KbqRoundDecimalPipe {
2948
3723
  });
2949
3724
  return currentUnit;
2950
3725
  }
2951
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqRoundDecimalPipe, deps: [{ token: KBQ_LOCALE_ID, optional: true }, { token: KBQ_LOCALE_SERVICE, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
2952
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqRoundDecimalPipe, isStandalone: true, name: "kbqRoundNumber", pure: false }); }
2953
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqRoundDecimalPipe, providedIn: 'root' }); }
3726
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRoundDecimalPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3727
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRoundDecimalPipe, isStandalone: true, name: "kbqRoundNumber", pure: false }); }
3728
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRoundDecimalPipe, providedIn: 'root' }); }
2954
3729
  }
2955
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqRoundDecimalPipe, decorators: [{
3730
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRoundDecimalPipe, decorators: [{
2956
3731
  type: Injectable,
2957
3732
  args: [{ providedIn: 'root' }]
2958
3733
  }, {
@@ -2961,49 +3736,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
2961
3736
  name: 'kbqRoundNumber',
2962
3737
  pure: false
2963
3738
  }]
2964
- }], ctorParameters: () => [{ type: undefined, decorators: [{
2965
- type: Optional
2966
- }, {
2967
- type: Inject,
2968
- args: [KBQ_LOCALE_ID]
2969
- }] }, { type: KbqLocaleService, decorators: [{
2970
- type: Optional
2971
- }, {
2972
- type: Inject,
2973
- args: [KBQ_LOCALE_SERVICE]
2974
- }] }] });
3739
+ }], ctorParameters: () => [] });
2975
3740
 
2976
3741
  const KBQ_INVALID_VALUE_ERROR = 'Argument "value" must be a finite number!';
2977
- /**
2978
- * @deprecated Will be removed in next major release. Use `getFormattedSizeParts` instead.
2979
- * @docs-private
2980
- */
2981
- const formatDataSize = (value, precision, system) => {
2982
- const { result, unit } = getHumanizedBytes(value, system);
2983
- let volume;
2984
- if (system.abbreviations[0] === unit) {
2985
- volume = result.toString();
2986
- }
2987
- else {
2988
- volume = result.toFixed(precision).replace(/\./g, ',');
2989
- }
2990
- return {
2991
- value: volume,
2992
- unit
2993
- };
2994
- };
2995
- function getFormattedSizeParts(value, _precision, system) {
2996
- let resolvedSystem = null;
2997
- if (arguments.length === 2 && typeof _precision === 'object') {
2998
- resolvedSystem = _precision;
2999
- }
3000
- if (arguments.length === 3 && typeof _precision === 'number' && system) {
3001
- resolvedSystem = system;
3002
- }
3003
- if (!resolvedSystem) {
3004
- throw new Error('Unexpected arguments size');
3005
- }
3006
- const { result, unit } = getHumanizedBytes(value, resolvedSystem);
3742
+ /**
3743
+ * Converts a byte value into locale-independent file size parts: numeric value and unit abbreviation.
3744
+ *
3745
+ * @param value - size in bytes.
3746
+ * @param system - unit system defining abbreviations and base scaling (SI/IEC).
3747
+ * @returns Object with the formatted size info.
3748
+ *
3749
+ * @example
3750
+ * getFormattedSizeParts(1500, 'SI'); // { value: "1.50", unit: "KB" }
3751
+ */
3752
+ function getFormattedSizeParts(value, system) {
3753
+ const { result, unit } = getHumanizedBytes(value, system);
3007
3754
  return {
3008
3755
  value: result.toString(),
3009
3756
  unit
@@ -3062,10 +3809,10 @@ class KbqDataSizePipe {
3062
3809
  const formattedValue = this.numberPipe?.transform(value, `1.0-${precision}`, locale) || value;
3063
3810
  return formattedValue ? `${formattedValue}${this.nonBreakingSpace}${unit}` : '';
3064
3811
  }
3065
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqDataSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3066
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqDataSizePipe, isStandalone: true, name: "kbqDataSize", pure: false }); }
3812
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqDataSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3813
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqDataSizePipe, isStandalone: true, name: "kbqDataSize", pure: false }); }
3067
3814
  }
3068
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqDataSizePipe, decorators: [{
3815
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqDataSizePipe, decorators: [{
3069
3816
  type: Pipe,
3070
3817
  args: [{
3071
3818
  name: 'kbqDataSize',
@@ -3074,8 +3821,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
3074
3821
  }], ctorParameters: () => [] });
3075
3822
 
3076
3823
  class KbqFormattersModule {
3077
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFormattersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3078
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqFormattersModule, imports: [AbsoluteDateFormatterPipe,
3824
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormattersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3825
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqFormattersModule, imports: [AbsoluteDateFormatterPipe,
3079
3826
  AbsoluteDateTimeFormatterPipe,
3080
3827
  AbsoluteDateShortFormatterPipe,
3081
3828
  AbsoluteShortDateTimeFormatterPipe,
@@ -3101,6 +3848,19 @@ class KbqFormattersModule {
3101
3848
  RangeDateTimeFormatterImpurePipe,
3102
3849
  RangeShortDateTimeFormatterImpurePipe,
3103
3850
  RangeMiddleDateTimeFormatterImpurePipe,
3851
+ KbqAbsoluteLongDatePipe,
3852
+ KbqAbsoluteLongDateTimePipe,
3853
+ KbqAbsoluteShortDatePipe,
3854
+ KbqAbsoluteShortDateTimePipe,
3855
+ KbqRelativeLongDatePipe,
3856
+ KbqRelativeLongDateTimePipe,
3857
+ KbqRelativeShortDatePipe,
3858
+ KbqRelativeShortDateTimePipe,
3859
+ KbqRangeLongDatePipe,
3860
+ KbqRangeLongDateTimePipe,
3861
+ KbqRangeMiddleDateTimePipe,
3862
+ KbqRangeShortDatePipe,
3863
+ KbqRangeShortDateTimePipe,
3104
3864
  KbqDataSizePipe,
3105
3865
  KbqDecimalPipe,
3106
3866
  KbqRoundDecimalPipe,
@@ -3133,10 +3893,23 @@ class KbqFormattersModule {
3133
3893
  RangeDateTimeFormatterImpurePipe,
3134
3894
  RangeShortDateTimeFormatterImpurePipe,
3135
3895
  RangeMiddleDateTimeFormatterImpurePipe,
3896
+ KbqAbsoluteLongDatePipe,
3897
+ KbqAbsoluteLongDateTimePipe,
3898
+ KbqAbsoluteShortDatePipe,
3899
+ KbqAbsoluteShortDateTimePipe,
3900
+ KbqRelativeLongDatePipe,
3901
+ KbqRelativeLongDateTimePipe,
3902
+ KbqRelativeShortDatePipe,
3903
+ KbqRelativeShortDateTimePipe,
3904
+ KbqRangeLongDatePipe,
3905
+ KbqRangeLongDateTimePipe,
3906
+ KbqRangeMiddleDateTimePipe,
3907
+ KbqRangeShortDatePipe,
3908
+ KbqRangeShortDateTimePipe,
3136
3909
  KbqDataSizePipe] }); }
3137
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFormattersModule, providers: [{ provide: DateFormatter, deps: [DateAdapter, KBQ_DATE_LOCALE] }] }); }
3910
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormattersModule, providers: [DateFormatter] }); }
3138
3911
  }
3139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFormattersModule, decorators: [{
3912
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormattersModule, decorators: [{
3140
3913
  type: NgModule,
3141
3914
  args: [{
3142
3915
  imports: [
@@ -3166,11 +3939,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
3166
3939
  RangeDateTimeFormatterImpurePipe,
3167
3940
  RangeShortDateTimeFormatterImpurePipe,
3168
3941
  RangeMiddleDateTimeFormatterImpurePipe,
3942
+ KbqAbsoluteLongDatePipe,
3943
+ KbqAbsoluteLongDateTimePipe,
3944
+ KbqAbsoluteShortDatePipe,
3945
+ KbqAbsoluteShortDateTimePipe,
3946
+ KbqRelativeLongDatePipe,
3947
+ KbqRelativeLongDateTimePipe,
3948
+ KbqRelativeShortDatePipe,
3949
+ KbqRelativeShortDateTimePipe,
3950
+ KbqRangeLongDatePipe,
3951
+ KbqRangeLongDateTimePipe,
3952
+ KbqRangeMiddleDateTimePipe,
3953
+ KbqRangeShortDatePipe,
3954
+ KbqRangeShortDateTimePipe,
3169
3955
  KbqDataSizePipe,
3170
3956
  KbqDecimalPipe,
3171
3957
  KbqRoundDecimalPipe,
3172
3958
  KbqTableNumberPipe
3173
3959
  ],
3960
+ providers: [DateFormatter],
3174
3961
  exports: [
3175
3962
  KbqDecimalPipe,
3176
3963
  KbqRoundDecimalPipe,
@@ -3201,20 +3988,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
3201
3988
  RangeDateTimeFormatterImpurePipe,
3202
3989
  RangeShortDateTimeFormatterImpurePipe,
3203
3990
  RangeMiddleDateTimeFormatterImpurePipe,
3991
+ KbqAbsoluteLongDatePipe,
3992
+ KbqAbsoluteLongDateTimePipe,
3993
+ KbqAbsoluteShortDatePipe,
3994
+ KbqAbsoluteShortDateTimePipe,
3995
+ KbqRelativeLongDatePipe,
3996
+ KbqRelativeLongDateTimePipe,
3997
+ KbqRelativeShortDatePipe,
3998
+ KbqRelativeShortDateTimePipe,
3999
+ KbqRangeLongDatePipe,
4000
+ KbqRangeLongDateTimePipe,
4001
+ KbqRangeMiddleDateTimePipe,
4002
+ KbqRangeShortDatePipe,
4003
+ KbqRangeShortDateTimePipe,
3204
4004
  KbqDataSizePipe
3205
- ],
3206
- providers: [{ provide: DateFormatter, deps: [DateAdapter, KBQ_DATE_LOCALE] }]
4005
+ ]
3207
4006
  }]
3208
4007
  }] });
3209
4008
 
3210
4009
  class KbqFormElement {
3211
- constructor(element) {
3212
- this.element = element;
4010
+ constructor() {
4011
+ this.element = inject(ElementRef);
3213
4012
  this.margin = false;
3214
4013
  this.isRow = false;
3215
4014
  this.isFieldSet = false;
3216
4015
  this.hasLegend = false;
3217
4016
  this.isHorizontal = false;
4017
+ this.elements = contentChildren(KbqFormElement, ...(ngDevMode ? [{ debugName: "elements" }] : []));
3218
4018
  }
3219
4019
  ngAfterContentInit() {
3220
4020
  const classList = this.element.nativeElement.classList;
@@ -3225,60 +4025,57 @@ class KbqFormElement {
3225
4025
  this.hasLegend = this.element.nativeElement.firstElementChild.classList.contains('kbq-form__legend');
3226
4026
  }
3227
4027
  }
3228
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFormElement, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
3229
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqFormElement, isStandalone: true, selector: ".kbq-form__row, .kbq-form__fieldset, .kbq-form__legend", host: { properties: { "class.kbq-form-row_margin": "margin" } }, queries: [{ propertyName: "elements", predicate: KbqFormElement }], exportAs: ["kbqFormElement"], ngImport: i0 }); }
4028
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormElement, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4029
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.25", type: KbqFormElement, isStandalone: true, selector: ".kbq-form__row, .kbq-form__fieldset, .kbq-form__legend", host: { properties: { "class.kbq-form-row_margin": "margin" } }, queries: [{ propertyName: "elements", predicate: KbqFormElement, isSignal: true }], exportAs: ["kbqFormElement"], ngImport: i0 }); }
3230
4030
  }
3231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFormElement, decorators: [{
4031
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormElement, decorators: [{
3232
4032
  type: Directive,
3233
4033
  args: [{
3234
4034
  selector: '.kbq-form__row, .kbq-form__fieldset, .kbq-form__legend',
3235
- exportAs: 'kbqFormElement',
3236
4035
  host: {
3237
4036
  '[class.kbq-form-row_margin]': 'margin'
3238
- }
4037
+ },
4038
+ exportAs: 'kbqFormElement'
3239
4039
  }]
3240
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { elements: [{
3241
- type: ContentChildren,
3242
- args: [KbqFormElement]
3243
- }] } });
4040
+ }], propDecorators: { elements: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KbqFormElement), { isSignal: true }] }] } });
3244
4041
  class KbqForm {
4042
+ constructor() {
4043
+ this.elements = contentChildren(KbqFormElement, ...(ngDevMode ? [{ debugName: "elements" }] : []));
4044
+ }
3245
4045
  ngAfterContentInit() {
3246
- this.handleElements(this.elements);
4046
+ this.handleElements(this.elements());
3247
4047
  }
3248
4048
  handleElements(elements) {
3249
4049
  elements.forEach((element, index) => {
3250
- const nextElement = elements.get(index + 1);
4050
+ const nextElement = elements[index + 1];
3251
4051
  if (element.isFieldSet && !element.isHorizontal) {
3252
- this.handleElements(element.elements);
4052
+ this.handleElements(element.elements());
3253
4053
  }
3254
4054
  element.margin = !!(nextElement && !nextElement.hasLegend);
3255
4055
  });
3256
4056
  }
3257
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqForm, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3258
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqForm, isStandalone: true, selector: ".kbq-form-vertical, .kbq-form-horizontal", host: { classAttribute: "kbq-form" }, queries: [{ propertyName: "elements", predicate: KbqFormElement }], exportAs: ["kbqForm"], ngImport: i0 }); }
4057
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqForm, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4058
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.25", type: KbqForm, isStandalone: true, selector: ".kbq-form-vertical, .kbq-form-horizontal", host: { classAttribute: "kbq-form" }, queries: [{ propertyName: "elements", predicate: KbqFormElement, isSignal: true }], exportAs: ["kbqForm"], ngImport: i0 }); }
3259
4059
  }
3260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqForm, decorators: [{
4060
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqForm, decorators: [{
3261
4061
  type: Directive,
3262
4062
  args: [{
3263
4063
  selector: '.kbq-form-vertical, .kbq-form-horizontal',
3264
- exportAs: 'kbqForm',
3265
4064
  host: {
3266
4065
  class: 'kbq-form'
3267
- }
4066
+ },
4067
+ exportAs: 'kbqForm'
3268
4068
  }]
3269
- }], propDecorators: { elements: [{
3270
- type: ContentChildren,
3271
- args: [KbqFormElement]
3272
- }] } });
4069
+ }], propDecorators: { elements: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KbqFormElement), { isSignal: true }] }] } });
3273
4070
 
3274
4071
  class KbqFormsModule {
3275
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3276
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqFormsModule, imports: [KbqForm,
4072
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4073
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqFormsModule, imports: [KbqForm,
3277
4074
  KbqFormElement], exports: [KbqForm,
3278
4075
  KbqFormElement] }); }
3279
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFormsModule }); }
4076
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormsModule }); }
3280
4077
  }
3281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqFormsModule, decorators: [{
4078
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormsModule, decorators: [{
3282
4079
  type: NgModule,
3283
4080
  args: [{
3284
4081
  imports: [
@@ -3477,8 +4274,7 @@ class FileValidators {
3477
4274
  const HTML_ESCAPES = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' };
3478
4275
  const HTML_SPECIAL_CHARS = /[&<>"']/;
3479
4276
  const HTML_SPECIAL_CHARS_GLOBAL = new RegExp(HTML_SPECIAL_CHARS.source, 'g');
3480
- /** @docs-private */
3481
- const kbqHighlightMark = (text) => `<mark class="kbq-highlight">${text}</mark>`;
4277
+ /** Escapes characters in the specified string that have special meaning in a regular expression. */
3482
4278
  function escapeRegExp(value) {
3483
4279
  if (value) {
3484
4280
  return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
@@ -3490,39 +4286,60 @@ function escapeHtml(value) {
3490
4286
  return value;
3491
4287
  return value.replace(HTML_SPECIAL_CHARS_GLOBAL, (chr) => HTML_ESCAPES[chr] ?? chr);
3492
4288
  }
4289
+ /** @docs-private */
4290
+ function highlight(value, keyword, mark) {
4291
+ if (typeof value !== 'string')
4292
+ return '';
4293
+ if (!keyword || typeof keyword !== 'string')
4294
+ return escapeHtml(value);
4295
+ const parts = value.split(new RegExp(`(${escapeRegExp(keyword)})`, 'gi'));
4296
+ return parts
4297
+ .map((part, i) => {
4298
+ const escaped = escapeHtml(part);
4299
+ const isMatch = i % 2 === 1;
4300
+ return isMatch ? mark(escaped) : escaped;
4301
+ })
4302
+ .join('');
4303
+ }
4304
+
4305
+ /** @docs-private */
4306
+ const kbqHighlightBackgroundMark = (text) => `<mark class="kbq-highlight-background">${text}</mark>`;
4307
+ class KbqHighlightBackgroundPipe {
4308
+ transform(value, keyword) {
4309
+ return highlight(value, keyword, kbqHighlightBackgroundMark);
4310
+ }
4311
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightBackgroundPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4312
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightBackgroundPipe, isStandalone: true, name: "kbqHighlightBackground" }); }
4313
+ }
4314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightBackgroundPipe, decorators: [{
4315
+ type: Pipe,
4316
+ args: [{ name: 'kbqHighlightBackground' }]
4317
+ }] });
4318
+
4319
+ /** @docs-private */
4320
+ const kbqHighlightMark = (text) => `<mark class="kbq-highlight">${text}</mark>`;
3493
4321
  class KbqHighlightPipe {
3494
- transform(value, args) {
3495
- if (typeof value !== 'string')
3496
- return '';
3497
- if (!args || typeof args !== 'string')
3498
- return escapeHtml(value);
3499
- const parts = value.split(new RegExp(`(${escapeRegExp(args)})`, 'gi'));
3500
- return parts
3501
- .map((part, i) => {
3502
- const escaped = escapeHtml(part);
3503
- const isMatch = i % 2 === 1;
3504
- return isMatch ? kbqHighlightMark(escaped) : escaped;
3505
- })
3506
- .join('');
3507
- }
3508
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqHighlightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3509
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqHighlightPipe, isStandalone: true, name: "mcHighlight" }); }
3510
- }
3511
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqHighlightPipe, decorators: [{
4322
+ transform(value, keyword) {
4323
+ return highlight(value, keyword, kbqHighlightMark);
4324
+ }
4325
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4326
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightPipe, isStandalone: true, name: "mcHighlight" }); }
4327
+ }
4328
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightPipe, decorators: [{
3512
4329
  type: Pipe,
3513
4330
  args: [{ name: 'mcHighlight' }]
3514
4331
  }] });
3515
4332
 
3516
4333
  class KbqHighlightModule {
3517
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqHighlightModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3518
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqHighlightModule, imports: [CommonModule, KbqHighlightPipe], exports: [KbqHighlightPipe] }); }
3519
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqHighlightModule, imports: [CommonModule] }); }
4334
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4335
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightModule, imports: [KbqHighlightPipe, KbqHighlightBackgroundPipe], exports: [KbqHighlightPipe, KbqHighlightBackgroundPipe] }); }
4336
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightModule }); }
3520
4337
  }
3521
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqHighlightModule, decorators: [{
4338
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightModule, decorators: [{
3522
4339
  type: NgModule,
3523
4340
  args: [{
3524
- imports: [CommonModule, KbqHighlightPipe],
3525
- exports: [KbqHighlightPipe]
4341
+ imports: [KbqHighlightPipe, KbqHighlightBackgroundPipe],
4342
+ exports: [KbqHighlightPipe, KbqHighlightBackgroundPipe]
3526
4343
  }]
3527
4344
  }] });
3528
4345
 
@@ -3532,10 +4349,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
3532
4349
  * counted by checking the query list's length.
3533
4350
  */
3534
4351
  class KbqLine {
3535
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqLine, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3536
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqLine, isStandalone: true, selector: "[kbq-line], [mcLine]", host: { classAttribute: "kbq-line" }, ngImport: i0 }); }
4352
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLine, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4353
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqLine, isStandalone: true, selector: "[kbq-line], [mcLine]", host: { classAttribute: "kbq-line" }, ngImport: i0 }); }
3537
4354
  }
3538
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqLine, decorators: [{
4355
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLine, decorators: [{
3539
4356
  type: Directive,
3540
4357
  args: [{
3541
4358
  selector: '[kbq-line], [mcLine]',
@@ -3601,10 +4418,10 @@ class KbqRectangleItem {
3601
4418
  const { width, marginLeft, marginRight } = this.window.getComputedStyle(this.nativeElement);
3602
4419
  return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item), 0);
3603
4420
  }
3604
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqRectangleItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3605
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqRectangleItem, isStandalone: true, host: { properties: { "class.kbq-expanded": "!collapsed", "class.kbq-collapsed": "collapsed" } }, ngImport: i0 }); }
4421
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRectangleItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4422
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqRectangleItem, isStandalone: true, host: { properties: { "class.kbq-expanded": "!collapsed", "class.kbq-collapsed": "collapsed" } }, ngImport: i0 }); }
3606
4423
  }
3607
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqRectangleItem, decorators: [{
4424
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRectangleItem, decorators: [{
3608
4425
  type: Directive,
3609
4426
  args: [{
3610
4427
  host: {
@@ -3624,6 +4441,8 @@ class KbqOptionActionComponent {
3624
4441
  this.hasFocus = false;
3625
4442
  this.destroyRef = inject(DestroyRef);
3626
4443
  }
4444
+ // TODO: Skipped for migration because:
4445
+ // Accessor inputs cannot be migrated as they are too complex.
3627
4446
  get disabled() {
3628
4447
  return this._disabled;
3629
4448
  }
@@ -3687,20 +4506,20 @@ class KbqOptionActionComponent {
3687
4506
  this.option.tooltipTrigger.disabled = true;
3688
4507
  setTimeout(() => (this.option.tooltipTrigger.disabled = false));
3689
4508
  }
3690
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqOptionActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3691
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.21", type: KbqOptionActionComponent, isStandalone: true, selector: "kbq-option-action", inputs: { disabled: ["disabled", "disabled", booleanAttribute] }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" }, properties: { "class.kbq-expanded": "false", "class.kbq-disabled": "disabled", "attr.disabled": "disabled || null", "attr.tabIndex": "-1" }, classAttribute: "kbq-option-action" }, exportAs: ["kbqOptionAction"], ngImport: i0, template: `
4509
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4510
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.25", type: KbqOptionActionComponent, isStandalone: true, selector: "kbq-option-action", inputs: { disabled: ["disabled", "disabled", booleanAttribute] }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" }, properties: { "class.kbq-expanded": "false", "class.kbq-disabled": "disabled", "attr.disabled": "disabled || null", "attr.tabIndex": "-1" }, classAttribute: "kbq-option-action" }, exportAs: ["kbqOptionAction"], ngImport: i0, template: `
3692
4511
  <ng-content select="[kbq-icon]">
3693
4512
  <i class="kbq kbq-icon kbq-contrast-fade kbq-ellipsis-vertical_16"></i>
3694
4513
  </ng-content>
3695
4514
  `, isInline: true, styles: [".kbq-option-action{display:flex;align-items:center;justify-content:center;cursor:pointer;outline:none;border:var(--kbq-size-3xs) solid transparent;border-radius:var(--kbq-size-xs);width:var(--kbq-size-xl);height:var(--kbq-size-xl)}.kbq-option-action:not(.kbq-disabled):hover .kbq-icon,.kbq-option-action:not(.kbq-disabled):focus .kbq-icon{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-option-action.kbq-disabled{cursor:default}.kbq-option-action.cdk-keyboard-focused{z-index:1;border-color:var(--kbq-states-line-focus-theme)}.kbq-option-action:active .kbq-icon.kbq-empty,.kbq-option-action.kbq-pressed .kbq-icon.kbq-empty{color:var(--kbq-states-icon-contrast-fade-active)}.kbq-option-action:active,.kbq-option-action.kbq-pressed{background-color:var(--kbq-background-transparent)}.kbq-option-action:hover .kbq-icon.kbq-empty{color:var(--kbq-states-icon-contrast-fade-hover)}.kbq-option-action.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-states-icon-disabled)}.kbq-option-action.kbq-disabled{background-color:var(--kbq-background-transparent)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3696
4515
  }
3697
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqOptionActionComponent, decorators: [{
4516
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionActionComponent, decorators: [{
3698
4517
  type: Component,
3699
- args: [{ selector: 'kbq-option-action', exportAs: 'kbqOptionAction', template: `
4518
+ args: [{ selector: 'kbq-option-action', template: `
3700
4519
  <ng-content select="[kbq-icon]">
3701
4520
  <i class="kbq kbq-icon kbq-contrast-fade kbq-ellipsis-vertical_16"></i>
3702
4521
  </ng-content>
3703
- `, host: {
4522
+ `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
3704
4523
  class: 'kbq-option-action',
3705
4524
  '[class.kbq-expanded]': 'false',
3706
4525
  '[class.kbq-disabled]': 'disabled',
@@ -3708,31 +4527,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
3708
4527
  '[attr.tabIndex]': '-1',
3709
4528
  '(click)': 'onClick($event)',
3710
4529
  '(keydown)': 'onKeyDown($event)'
3711
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".kbq-option-action{display:flex;align-items:center;justify-content:center;cursor:pointer;outline:none;border:var(--kbq-size-3xs) solid transparent;border-radius:var(--kbq-size-xs);width:var(--kbq-size-xl);height:var(--kbq-size-xl)}.kbq-option-action:not(.kbq-disabled):hover .kbq-icon,.kbq-option-action:not(.kbq-disabled):focus .kbq-icon{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-option-action.kbq-disabled{cursor:default}.kbq-option-action.cdk-keyboard-focused{z-index:1;border-color:var(--kbq-states-line-focus-theme)}.kbq-option-action:active .kbq-icon.kbq-empty,.kbq-option-action.kbq-pressed .kbq-icon.kbq-empty{color:var(--kbq-states-icon-contrast-fade-active)}.kbq-option-action:active,.kbq-option-action.kbq-pressed{background-color:var(--kbq-background-transparent)}.kbq-option-action:hover .kbq-icon.kbq-empty{color:var(--kbq-states-icon-contrast-fade-hover)}.kbq-option-action.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-states-icon-disabled)}.kbq-option-action.kbq-disabled{background-color:var(--kbq-background-transparent)}\n"] }]
4530
+ }, exportAs: 'kbqOptionAction', styles: [".kbq-option-action{display:flex;align-items:center;justify-content:center;cursor:pointer;outline:none;border:var(--kbq-size-3xs) solid transparent;border-radius:var(--kbq-size-xs);width:var(--kbq-size-xl);height:var(--kbq-size-xl)}.kbq-option-action:not(.kbq-disabled):hover .kbq-icon,.kbq-option-action:not(.kbq-disabled):focus .kbq-icon{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-option-action.kbq-disabled{cursor:default}.kbq-option-action.cdk-keyboard-focused{z-index:1;border-color:var(--kbq-states-line-focus-theme)}.kbq-option-action:active .kbq-icon.kbq-empty,.kbq-option-action.kbq-pressed .kbq-icon.kbq-empty{color:var(--kbq-states-icon-contrast-fade-active)}.kbq-option-action:active,.kbq-option-action.kbq-pressed{background-color:var(--kbq-background-transparent)}.kbq-option-action:hover .kbq-icon.kbq-empty{color:var(--kbq-states-icon-contrast-fade-hover)}.kbq-option-action.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-states-icon-disabled)}.kbq-option-action.kbq-disabled{background-color:var(--kbq-background-transparent)}\n"] }]
3712
4531
  }], propDecorators: { disabled: [{
3713
4532
  type: Input,
3714
4533
  args: [{ transform: booleanAttribute }]
3715
4534
  }] } });
3716
4535
 
3717
4536
  class KbqActionContainer {
3718
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqActionContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3719
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: KbqActionContainer, isStandalone: true, selector: "kbq-action-container", host: { classAttribute: "kbq-action-container" }, exportAs: ["kbqActionContainer"], ngImport: i0, template: `
4537
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqActionContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4538
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: KbqActionContainer, isStandalone: true, selector: "kbq-action-container", host: { classAttribute: "kbq-action-container" }, exportAs: ["kbqActionContainer"], ngImport: i0, template: `
3720
4539
  <div class="kbq-action-container__gradient"></div>
3721
4540
  <div class="kbq-action-container__box">
3722
4541
  <ng-content />
3723
4542
  </div>
3724
- `, isInline: true, styles: [".kbq-action-container{box-sizing:border-box;position:absolute;right:0;top:0;bottom:0;display:none;align-items:center;overflow:hidden;border:1px solid transparent;border-top-right-radius:var(--kbq-size-xs);border-bottom-right-radius:var(--kbq-size-xs)}.kbq-action-container__gradient{display:flex;margin-right:calc(var(--kbq-size-xs) * -1);width:var(--kbq-size-3xl);height:100%;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg);mask-image:linear-gradient(to right,transparent 0%,black var(--kbq-size-xxl))}.kbq-action-container__box{height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4543
+ `, isInline: true, styles: [".kbq-action-container{box-sizing:border-box;position:absolute;right:0;top:0;bottom:0;display:none;align-items:center;overflow:hidden;border:1px solid transparent;border-top-right-radius:var(--kbq-size-xs);border-bottom-right-radius:var(--kbq-size-xs)}.kbq-action-container__gradient{display:flex;margin-right:calc(var(--kbq-size-xs) * -1);width:var(--kbq-size-3xl);height:100%;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg);-webkit-mask-image:linear-gradient(to right,transparent 0%,black var(--kbq-size-xxl));mask-image:linear-gradient(to right,transparent 0%,black var(--kbq-size-xxl))}.kbq-action-container__box{height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3725
4544
  }
3726
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqActionContainer, decorators: [{
4545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqActionContainer, decorators: [{
3727
4546
  type: Component,
3728
- args: [{ selector: 'kbq-action-container', exportAs: 'kbqActionContainer', template: `
4547
+ args: [{ selector: 'kbq-action-container', template: `
3729
4548
  <div class="kbq-action-container__gradient"></div>
3730
4549
  <div class="kbq-action-container__box">
3731
4550
  <ng-content />
3732
4551
  </div>
3733
- `, host: {
4552
+ `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
3734
4553
  class: 'kbq-action-container'
3735
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".kbq-action-container{box-sizing:border-box;position:absolute;right:0;top:0;bottom:0;display:none;align-items:center;overflow:hidden;border:1px solid transparent;border-top-right-radius:var(--kbq-size-xs);border-bottom-right-radius:var(--kbq-size-xs)}.kbq-action-container__gradient{display:flex;margin-right:calc(var(--kbq-size-xs) * -1);width:var(--kbq-size-3xl);height:100%;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg);mask-image:linear-gradient(to right,transparent 0%,black var(--kbq-size-xxl))}.kbq-action-container__box{height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg)}\n"] }]
4554
+ }, exportAs: 'kbqActionContainer', styles: [".kbq-action-container{box-sizing:border-box;position:absolute;right:0;top:0;bottom:0;display:none;align-items:center;overflow:hidden;border:1px solid transparent;border-top-right-radius:var(--kbq-size-xs);border-bottom-right-radius:var(--kbq-size-xs)}.kbq-action-container__gradient{display:flex;margin-right:calc(var(--kbq-size-xs) * -1);width:var(--kbq-size-3xl);height:100%;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg);-webkit-mask-image:linear-gradient(to right,transparent 0%,black var(--kbq-size-xxl));mask-image:linear-gradient(to right,transparent 0%,black var(--kbq-size-xxl))}.kbq-action-container__box{height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg)}\n"] }]
3736
4555
  }] });
3737
4556
 
3738
4557
  let uniqueOptgroupIdCounter = 0;
@@ -3742,10 +4561,13 @@ let uniqueOptgroupIdCounter = 0;
3742
4561
  */
3743
4562
  class KbqOptgroup {
3744
4563
  constructor() {
4564
+ this.label = input(undefined, ...(ngDevMode ? [{ debugName: "label" }] : []));
3745
4565
  this._disabled = false;
3746
4566
  /** Unique id for the underlying label. */
3747
4567
  this.labelId = `kbq-optgroup-label-${uniqueOptgroupIdCounter++}`;
3748
4568
  }
4569
+ // TODO: Skipped for migration because:
4570
+ // Accessor inputs cannot be migrated as they are too complex.
3749
4571
  get disabled() {
3750
4572
  return this._disabled;
3751
4573
  }
@@ -3754,18 +4576,16 @@ class KbqOptgroup {
3754
4576
  this._disabled = value;
3755
4577
  }
3756
4578
  }
3757
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqOptgroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3758
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.21", type: KbqOptgroup, isStandalone: true, selector: "kbq-optgroup", inputs: { label: "label", disabled: ["disabled", "disabled", booleanAttribute] }, host: { properties: { "class.kbq-disabled": "disabled" }, classAttribute: "kbq-optgroup" }, exportAs: ["kbqOptgroup"], ngImport: i0, template: "<label class=\"kbq-optgroup-label\" [id]=\"labelId\">\n {{ label }}\n</label>\n<ng-content select=\"kbq-option, kbq-list-option, kbq-timezone-option, ng-container\" />\n", styles: [".kbq-optgroup-label{display:flex;align-items:center;box-sizing:border-box;padding:var(--kbq-size-s) var(--kbq-size-l) var(--kbq-size-s) var(--kbq-size-m);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-foreground-contrast-secondary);color:var(--kbq-optgroup-label-color)}.kbq-disabled .kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-states-foreground-disabled)}.kbq-optgroup-label{font-size:var(--kbq-typography-caps-compact-strong-font-size);font-style:var(--kbq-typography-caps-compact-strong-font-style);font-weight:var(--kbq-typography-caps-compact-strong-font-weight);line-height:var(--kbq-typography-caps-compact-strong-line-height);font-family:var(--kbq-typography-caps-compact-strong-font-family);text-transform:var(--kbq-typography-caps-compact-strong-text-transform);font-feature-settings:var(--kbq-typography-caps-compact-strong-font-feature-settings);letter-spacing:var(--kbq-typography-caps-compact-strong-letter-spacing)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4579
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptgroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4580
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.25", type: KbqOptgroup, isStandalone: true, selector: "kbq-optgroup", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute } }, host: { properties: { "class.kbq-disabled": "disabled" }, classAttribute: "kbq-optgroup" }, exportAs: ["kbqOptgroup"], ngImport: i0, template: "<label class=\"kbq-optgroup-label\" [id]=\"labelId\">\n {{ label() }}\n</label>\n<ng-content select=\"kbq-option, kbq-list-option, kbq-timezone-option, ng-container\" />\n", styles: [".kbq-optgroup-label{display:flex;align-items:center;box-sizing:border-box;padding:var(--kbq-size-s) var(--kbq-size-l) var(--kbq-size-s) var(--kbq-size-m);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-foreground-contrast-secondary);color:var(--kbq-optgroup-label-color)}.kbq-disabled .kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-states-foreground-disabled)}.kbq-optgroup-label{font-size:var(--kbq-typography-caps-compact-strong-font-size);font-style:var(--kbq-typography-caps-compact-strong-font-style);font-weight:var(--kbq-typography-caps-compact-strong-font-weight);line-height:var(--kbq-typography-caps-compact-strong-line-height);font-family:var(--kbq-typography-caps-compact-strong-font-family);text-transform:var(--kbq-typography-caps-compact-strong-text-transform);font-feature-settings:var(--kbq-typography-caps-compact-strong-font-feature-settings);letter-spacing:var(--kbq-typography-caps-compact-strong-letter-spacing)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3759
4581
  }
3760
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqOptgroup, decorators: [{
4582
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptgroup, decorators: [{
3761
4583
  type: Component,
3762
- args: [{ selector: 'kbq-optgroup', exportAs: 'kbqOptgroup', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
4584
+ args: [{ selector: 'kbq-optgroup', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
3763
4585
  class: 'kbq-optgroup',
3764
4586
  '[class.kbq-disabled]': 'disabled'
3765
- }, template: "<label class=\"kbq-optgroup-label\" [id]=\"labelId\">\n {{ label }}\n</label>\n<ng-content select=\"kbq-option, kbq-list-option, kbq-timezone-option, ng-container\" />\n", styles: [".kbq-optgroup-label{display:flex;align-items:center;box-sizing:border-box;padding:var(--kbq-size-s) var(--kbq-size-l) var(--kbq-size-s) var(--kbq-size-m);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-foreground-contrast-secondary);color:var(--kbq-optgroup-label-color)}.kbq-disabled .kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-states-foreground-disabled)}.kbq-optgroup-label{font-size:var(--kbq-typography-caps-compact-strong-font-size);font-style:var(--kbq-typography-caps-compact-strong-font-style);font-weight:var(--kbq-typography-caps-compact-strong-font-weight);line-height:var(--kbq-typography-caps-compact-strong-line-height);font-family:var(--kbq-typography-caps-compact-strong-font-family);text-transform:var(--kbq-typography-caps-compact-strong-text-transform);font-feature-settings:var(--kbq-typography-caps-compact-strong-font-feature-settings);letter-spacing:var(--kbq-typography-caps-compact-strong-letter-spacing)}\n"] }]
3766
- }], propDecorators: { label: [{
3767
- type: Input
3768
- }], disabled: [{
4587
+ }, exportAs: 'kbqOptgroup', template: "<label class=\"kbq-optgroup-label\" [id]=\"labelId\">\n {{ label() }}\n</label>\n<ng-content select=\"kbq-option, kbq-list-option, kbq-timezone-option, ng-container\" />\n", styles: [".kbq-optgroup-label{display:flex;align-items:center;box-sizing:border-box;padding:var(--kbq-size-s) var(--kbq-size-l) var(--kbq-size-s) var(--kbq-size-m);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-foreground-contrast-secondary);color:var(--kbq-optgroup-label-color)}.kbq-disabled .kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-states-foreground-disabled)}.kbq-optgroup-label{font-size:var(--kbq-typography-caps-compact-strong-font-size);font-style:var(--kbq-typography-caps-compact-strong-font-style);font-weight:var(--kbq-typography-caps-compact-strong-font-weight);line-height:var(--kbq-typography-caps-compact-strong-line-height);font-family:var(--kbq-typography-caps-compact-strong-font-family);text-transform:var(--kbq-typography-caps-compact-strong-text-transform);font-feature-settings:var(--kbq-typography-caps-compact-strong-font-feature-settings);letter-spacing:var(--kbq-typography-caps-compact-strong-letter-spacing)}\n"] }]
4588
+ }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{
3769
4589
  type: Input,
3770
4590
  args: [{ transform: booleanAttribute }]
3771
4591
  }] } });
@@ -3792,43 +4612,89 @@ var MultipleMode;
3792
4612
  class KbqPseudoCheckbox extends KbqColorDirective {
3793
4613
  constructor() {
3794
4614
  super(...arguments);
3795
- this.big = false;
3796
- this.state = 'unchecked';
3797
- this.disabled = false;
4615
+ this.big = input(false, ...(ngDevMode ? [{ debugName: "big" }] : []));
4616
+ this.state = input('unchecked', ...(ngDevMode ? [{ debugName: "state" }] : []));
4617
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
3798
4618
  }
3799
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPseudoCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3800
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: KbqPseudoCheckbox, isStandalone: true, selector: "kbq-pseudo-checkbox", inputs: { big: "big", state: "state", disabled: "disabled" }, host: { properties: { "class.kbq-checkbox_big": "big", "class.kbq-indeterminate": "state === \"indeterminate\"", "class.kbq-checked": "state === true || state === \"checked\"", "class.kbq-disabled": "disabled" }, classAttribute: "kbq-pseudo-checkbox" }, usesInheritance: true, ngImport: i0, template: "<i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n<i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n", styles: [".kbq-pseudo-checkbox{position:relative;display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;width:var(--kbq-checkbox-size-normal-width);height:var(--kbq-checkbox-size-normal-width);border-radius:var(--kbq-checkbox-size-normal-border-radius);border-width:var(--kbq-checkbox-size-normal-border-width);border-style:solid;cursor:pointer;vertical-align:middle;flex-shrink:0}.kbq-pseudo-checkbox .kbq-checkbox-checkmark,.kbq-pseudo-checkbox .kbq-checkbox-mixedmark{display:none}.kbq-pseudo-checkbox.kbq-pseudo-checkbox-checked,.kbq-pseudo-checkbox.kbq-pseudo-checkbox-indeterminate{border-color:transparent}.kbq-pseudo-checkbox.kbq-checked .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-indeterminate .kbq-checkbox-mixedmark{display:inline-block}.kbq-pseudo-checkbox.kbq-disabled{cursor:default}.kbq-pseudo-checkbox.kbq-pseudo-checkbox_big{width:var(--kbq-checkbox-size-big-width);height:var(--kbq-checkbox-size-big-width);border-radius:var(--kbq-checkbox-size-big-border-radius);border-width:var(--kbq-checkbox-size-big-border-width)}.kbq-pseudo-checkbox{border-color:var(--kbq-checkbox-theme-default-border);background:var(--kbq-checkbox-theme-default-background)}.kbq-pseudo-checkbox .kbq-checkbox-checkmark,.kbq-pseudo-checkbox .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-default-color)}.kbq-pseudo-checkbox.kbq-checked,.kbq-pseudo-checkbox.kbq-indeterminate{border-color:var(--kbq-checkbox-theme-states-checked-border);background:var(--kbq-checkbox-theme-states-checked-background)}.kbq-pseudo-checkbox.kbq-disabled .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-disabled .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-states-disabled-color)}.kbq-pseudo-checkbox.kbq-disabled{border-color:var(--kbq-checkbox-theme-states-disabled-border);background:var(--kbq-checkbox-theme-states-disabled-background)}.kbq-pseudo-checkbox.kbq-error{border-color:var(--kbq-checkbox-error-default-border);background:var(--kbq-checkbox-error-default-background)}.kbq-pseudo-checkbox.kbq-error .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-error .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-default-color)}.kbq-pseudo-checkbox.kbq-error.kbq-checked,.kbq-pseudo-checkbox.kbq-error.kbq-indeterminate{border-color:var(--kbq-checkbox-error-states-checked-border);background:var(--kbq-checkbox-error-states-checked-background)}.kbq-pseudo-checkbox.kbq-error.kbq-disabled .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-error.kbq-disabled .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-states-disabled-color)}.kbq-pseudo-checkbox.kbq-error.kbq-disabled{border-color:var(--kbq-checkbox-error-states-disabled-border);background:var(--kbq-checkbox-error-states-disabled-background)}\n", ".kbq-pseudo-checkbox{--kbq-checkbox-size-normal-width: var(--kbq-size-l);--kbq-checkbox-size-normal-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-normal-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-normal-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-normal-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-normal-top: var(--kbq-size-3xs);--kbq-checkbox-size-big-width: var(--kbq-size-l);--kbq-checkbox-size-big-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-big-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-big-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-big-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-big-top: var(--kbq-size-xxs);--kbq-checkbox-theme-default-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-default-color: var(--kbq-icon-white);--kbq-checkbox-theme-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-theme-default-background: var(--kbq-background-bg);--kbq-checkbox-theme-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-theme-states-hover-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-checkbox-theme-states-checked-border: transparent;--kbq-checkbox-theme-states-checked-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-hover-border: transparent;--kbq-checkbox-theme-states-checked-hover-background: var(--kbq-states-background-theme-hover);--kbq-checkbox-theme-states-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-focused-background: var(--kbq-background-bg);--kbq-checkbox-theme-states-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-theme-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-theme-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-theme-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-theme-states-disabled-caption: var(--kbq-states-icon-disabled);--kbq-checkbox-error-default-border: var(--kbq-line-error);--kbq-checkbox-error-default-color: var(--kbq-icon-white);--kbq-checkbox-error-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-error-default-background: var(--kbq-background-error-less);--kbq-checkbox-error-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-error-states-hover-border: var(--kbq-line-error);--kbq-checkbox-error-states-hover-background: var(--kbq-states-background-error-fade-hover);--kbq-checkbox-error-states-checked-border: transparent;--kbq-checkbox-error-states-checked-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-hover-border: transparent;--kbq-checkbox-error-states-checked-hover-background: var(--kbq-states-background-error-hover);--kbq-checkbox-error-states-focused-border: var(--kbq-line-error);--kbq-checkbox-error-states-focused-background: var(--kbq-background-error-less);--kbq-checkbox-error-states-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-border: var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-error-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-error-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-error-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-error-states-disabled-caption: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4619
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPseudoCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4620
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.25", type: KbqPseudoCheckbox, isStandalone: true, selector: "kbq-pseudo-checkbox", inputs: { big: { classPropertyName: "big", publicName: "big", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-checkbox_big": "big()", "class.kbq-indeterminate": "state() === \"indeterminate\"", "class.kbq-checked": "state() === true || state() === \"checked\"", "class.kbq-disabled": "disabled()" }, classAttribute: "kbq-pseudo-checkbox" }, usesInheritance: true, ngImport: i0, template: "<i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n<i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n", styles: [".kbq-pseudo-checkbox{position:relative;display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;width:var(--kbq-checkbox-size-normal-width);height:var(--kbq-checkbox-size-normal-width);border-radius:var(--kbq-checkbox-size-normal-border-radius);border-width:var(--kbq-checkbox-size-normal-border-width);border-style:solid;cursor:pointer;vertical-align:middle;flex-shrink:0}.kbq-pseudo-checkbox .kbq-checkbox-checkmark,.kbq-pseudo-checkbox .kbq-checkbox-mixedmark{display:none}.kbq-pseudo-checkbox.kbq-pseudo-checkbox-checked,.kbq-pseudo-checkbox.kbq-pseudo-checkbox-indeterminate{border-color:transparent}.kbq-pseudo-checkbox.kbq-checked .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-indeterminate .kbq-checkbox-mixedmark{display:inline-block}.kbq-pseudo-checkbox.kbq-disabled{cursor:default}.kbq-pseudo-checkbox.kbq-pseudo-checkbox_big{width:var(--kbq-checkbox-size-big-width);height:var(--kbq-checkbox-size-big-width);border-radius:var(--kbq-checkbox-size-big-border-radius);border-width:var(--kbq-checkbox-size-big-border-width)}.kbq-pseudo-checkbox{border-color:var(--kbq-checkbox-theme-default-border);background:var(--kbq-checkbox-theme-default-background)}.kbq-pseudo-checkbox .kbq-checkbox-checkmark,.kbq-pseudo-checkbox .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-default-color)}.kbq-pseudo-checkbox.kbq-checked,.kbq-pseudo-checkbox.kbq-indeterminate{border-color:var(--kbq-checkbox-theme-states-checked-border);background:var(--kbq-checkbox-theme-states-checked-background)}.kbq-pseudo-checkbox.kbq-disabled .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-disabled .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-states-disabled-color)}.kbq-pseudo-checkbox.kbq-disabled{border-color:var(--kbq-checkbox-theme-states-disabled-border);background:var(--kbq-checkbox-theme-states-disabled-background)}.kbq-pseudo-checkbox.kbq-error{border-color:var(--kbq-checkbox-error-default-border);background:var(--kbq-checkbox-error-default-background)}.kbq-pseudo-checkbox.kbq-error .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-error .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-default-color)}.kbq-pseudo-checkbox.kbq-error.kbq-checked,.kbq-pseudo-checkbox.kbq-error.kbq-indeterminate{border-color:var(--kbq-checkbox-error-states-checked-border);background:var(--kbq-checkbox-error-states-checked-background)}.kbq-pseudo-checkbox.kbq-error.kbq-disabled .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-error.kbq-disabled .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-states-disabled-color)}.kbq-pseudo-checkbox.kbq-error.kbq-disabled{border-color:var(--kbq-checkbox-error-states-disabled-border);background:var(--kbq-checkbox-error-states-disabled-background)}\n", ".kbq-pseudo-checkbox{--kbq-checkbox-size-normal-width: var(--kbq-size-l);--kbq-checkbox-size-normal-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-normal-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-normal-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-normal-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-normal-top: var(--kbq-size-3xs);--kbq-checkbox-size-big-width: var(--kbq-size-l);--kbq-checkbox-size-big-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-big-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-big-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-big-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-big-top: var(--kbq-size-xxs);--kbq-checkbox-theme-default-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-default-color: var(--kbq-icon-white);--kbq-checkbox-theme-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-theme-default-background: var(--kbq-background-bg);--kbq-checkbox-theme-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-theme-states-hover-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-checkbox-theme-states-checked-border: transparent;--kbq-checkbox-theme-states-checked-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-hover-border: transparent;--kbq-checkbox-theme-states-checked-hover-background: var(--kbq-states-background-theme-hover);--kbq-checkbox-theme-states-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-focused-background: var(--kbq-background-bg);--kbq-checkbox-theme-states-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-theme-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-theme-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-theme-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-theme-states-disabled-caption: var(--kbq-states-icon-disabled);--kbq-checkbox-error-default-border: var(--kbq-line-error);--kbq-checkbox-error-default-color: var(--kbq-icon-white);--kbq-checkbox-error-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-error-default-background: var(--kbq-background-error-less);--kbq-checkbox-error-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-error-states-hover-border: var(--kbq-line-error);--kbq-checkbox-error-states-hover-background: var(--kbq-states-background-error-fade-hover);--kbq-checkbox-error-states-checked-border: transparent;--kbq-checkbox-error-states-checked-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-hover-border: transparent;--kbq-checkbox-error-states-checked-hover-background: var(--kbq-states-background-error-hover);--kbq-checkbox-error-states-focused-border: var(--kbq-line-error);--kbq-checkbox-error-states-focused-background: var(--kbq-background-error-less);--kbq-checkbox-error-states-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-border: var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-error-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-error-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-error-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-error-states-disabled-caption: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3801
4621
  }
3802
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPseudoCheckbox, decorators: [{
4622
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPseudoCheckbox, decorators: [{
3803
4623
  type: Component,
3804
- args: [{ selector: 'kbq-pseudo-checkbox', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
4624
+ args: [{ selector: 'kbq-pseudo-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
3805
4625
  class: 'kbq-pseudo-checkbox',
3806
- '[class.kbq-checkbox_big]': 'big',
3807
- '[class.kbq-indeterminate]': 'state === "indeterminate"',
3808
- '[class.kbq-checked]': 'state === true || state === "checked"',
3809
- '[class.kbq-disabled]': 'disabled'
4626
+ '[class.kbq-checkbox_big]': 'big()',
4627
+ '[class.kbq-indeterminate]': 'state() === "indeterminate"',
4628
+ '[class.kbq-checked]': 'state() === true || state() === "checked"',
4629
+ '[class.kbq-disabled]': 'disabled()'
3810
4630
  }, preserveWhitespaces: false, template: "<i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n<i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n", styles: [".kbq-pseudo-checkbox{position:relative;display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;width:var(--kbq-checkbox-size-normal-width);height:var(--kbq-checkbox-size-normal-width);border-radius:var(--kbq-checkbox-size-normal-border-radius);border-width:var(--kbq-checkbox-size-normal-border-width);border-style:solid;cursor:pointer;vertical-align:middle;flex-shrink:0}.kbq-pseudo-checkbox .kbq-checkbox-checkmark,.kbq-pseudo-checkbox .kbq-checkbox-mixedmark{display:none}.kbq-pseudo-checkbox.kbq-pseudo-checkbox-checked,.kbq-pseudo-checkbox.kbq-pseudo-checkbox-indeterminate{border-color:transparent}.kbq-pseudo-checkbox.kbq-checked .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-indeterminate .kbq-checkbox-mixedmark{display:inline-block}.kbq-pseudo-checkbox.kbq-disabled{cursor:default}.kbq-pseudo-checkbox.kbq-pseudo-checkbox_big{width:var(--kbq-checkbox-size-big-width);height:var(--kbq-checkbox-size-big-width);border-radius:var(--kbq-checkbox-size-big-border-radius);border-width:var(--kbq-checkbox-size-big-border-width)}.kbq-pseudo-checkbox{border-color:var(--kbq-checkbox-theme-default-border);background:var(--kbq-checkbox-theme-default-background)}.kbq-pseudo-checkbox .kbq-checkbox-checkmark,.kbq-pseudo-checkbox .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-default-color)}.kbq-pseudo-checkbox.kbq-checked,.kbq-pseudo-checkbox.kbq-indeterminate{border-color:var(--kbq-checkbox-theme-states-checked-border);background:var(--kbq-checkbox-theme-states-checked-background)}.kbq-pseudo-checkbox.kbq-disabled .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-disabled .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-states-disabled-color)}.kbq-pseudo-checkbox.kbq-disabled{border-color:var(--kbq-checkbox-theme-states-disabled-border);background:var(--kbq-checkbox-theme-states-disabled-background)}.kbq-pseudo-checkbox.kbq-error{border-color:var(--kbq-checkbox-error-default-border);background:var(--kbq-checkbox-error-default-background)}.kbq-pseudo-checkbox.kbq-error .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-error .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-default-color)}.kbq-pseudo-checkbox.kbq-error.kbq-checked,.kbq-pseudo-checkbox.kbq-error.kbq-indeterminate{border-color:var(--kbq-checkbox-error-states-checked-border);background:var(--kbq-checkbox-error-states-checked-background)}.kbq-pseudo-checkbox.kbq-error.kbq-disabled .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-error.kbq-disabled .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-states-disabled-color)}.kbq-pseudo-checkbox.kbq-error.kbq-disabled{border-color:var(--kbq-checkbox-error-states-disabled-border);background:var(--kbq-checkbox-error-states-disabled-background)}\n", ".kbq-pseudo-checkbox{--kbq-checkbox-size-normal-width: var(--kbq-size-l);--kbq-checkbox-size-normal-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-normal-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-normal-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-normal-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-normal-top: var(--kbq-size-3xs);--kbq-checkbox-size-big-width: var(--kbq-size-l);--kbq-checkbox-size-big-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-big-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-big-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-big-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-big-top: var(--kbq-size-xxs);--kbq-checkbox-theme-default-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-default-color: var(--kbq-icon-white);--kbq-checkbox-theme-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-theme-default-background: var(--kbq-background-bg);--kbq-checkbox-theme-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-theme-states-hover-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-checkbox-theme-states-checked-border: transparent;--kbq-checkbox-theme-states-checked-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-hover-border: transparent;--kbq-checkbox-theme-states-checked-hover-background: var(--kbq-states-background-theme-hover);--kbq-checkbox-theme-states-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-focused-background: var(--kbq-background-bg);--kbq-checkbox-theme-states-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-theme-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-theme-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-theme-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-theme-states-disabled-caption: var(--kbq-states-icon-disabled);--kbq-checkbox-error-default-border: var(--kbq-line-error);--kbq-checkbox-error-default-color: var(--kbq-icon-white);--kbq-checkbox-error-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-error-default-background: var(--kbq-background-error-less);--kbq-checkbox-error-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-error-states-hover-border: var(--kbq-line-error);--kbq-checkbox-error-states-hover-background: var(--kbq-states-background-error-fade-hover);--kbq-checkbox-error-states-checked-border: transparent;--kbq-checkbox-error-states-checked-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-hover-border: transparent;--kbq-checkbox-error-states-checked-hover-background: var(--kbq-states-background-error-hover);--kbq-checkbox-error-states-focused-border: var(--kbq-line-error);--kbq-checkbox-error-states-focused-background: var(--kbq-background-error-less);--kbq-checkbox-error-states-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-border: var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-error-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-error-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-error-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-error-states-disabled-caption: var(--kbq-states-icon-disabled)}\n"] }]
3811
- }], propDecorators: { big: [{
3812
- type: Input
3813
- }], state: [{
3814
- type: Input
3815
- }], disabled: [{
3816
- type: Input
3817
- }] } });
4631
+ }], propDecorators: { big: [{ type: i0.Input, args: [{ isSignal: true, alias: "big", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
3818
4632
 
3819
4633
  class KbqPseudoCheckboxModule {
3820
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPseudoCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3821
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqPseudoCheckboxModule, imports: [CommonModule, KbqPseudoCheckbox], exports: [KbqPseudoCheckbox] }); }
3822
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPseudoCheckboxModule, imports: [CommonModule] }); }
4634
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPseudoCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4635
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqPseudoCheckboxModule, imports: [KbqPseudoCheckbox], exports: [KbqPseudoCheckbox] }); }
4636
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPseudoCheckboxModule }); }
3823
4637
  }
3824
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPseudoCheckboxModule, decorators: [{
4638
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPseudoCheckboxModule, decorators: [{
3825
4639
  type: NgModule,
3826
4640
  args: [{
3827
- imports: [CommonModule, KbqPseudoCheckbox],
4641
+ imports: [KbqPseudoCheckbox],
3828
4642
  exports: [KbqPseudoCheckbox]
3829
4643
  }]
3830
4644
  }] });
3831
4645
 
4646
+ /**
4647
+ * Canonical "select all / deselect all" toggle shared by the multi-select components (`Ctrl`/`Cmd` + `A`).
4648
+ *
4649
+ * Considers only selectable items and selects them all. When `allowDeselect` is `true` and every selectable
4650
+ * item is already selected, deselects them all instead; otherwise a repeated call is a no-op. No-op when
4651
+ * there are no selectable items.
4652
+ *
4653
+ * @returns the items whose selected state actually flipped, in input order.
4654
+ */
4655
+ function toggleSelectAll(adapter, options) {
4656
+ const selectable = adapter.items.filter((item) => adapter.isSelectable(item));
4657
+ if (selectable.length === 0) {
4658
+ return [];
4659
+ }
4660
+ const shouldSelect = !options?.allowDeselect || selectable.some((item) => !adapter.isSelected(item));
4661
+ const changed = selectable.filter((item) => adapter.isSelected(item) !== shouldSelect);
4662
+ selectable.forEach((item) => adapter.setSelected(item, shouldSelect));
4663
+ return changed;
4664
+ }
4665
+ /** Event emitted by the `onSelectAll` outputs when the select-all toggle runs. */
4666
+ class KbqSelectAllEvent {
4667
+ constructor(
4668
+ /** Component that emitted the event. */
4669
+ source,
4670
+ /** The selectable options affected by the toggle. */
4671
+ options,
4672
+ /** `true` when all options were selected, `false` when all were deselected. */
4673
+ selected) {
4674
+ this.source = source;
4675
+ this.options = options;
4676
+ this.selected = selected;
4677
+ }
4678
+ }
4679
+ /**
4680
+ * Whether `Ctrl`/`Cmd` + `A` should select the text of a search `<input>` rather than toggle options.
4681
+ *
4682
+ * Returns `true` only when the input has text that is not already fully selected (nothing selected,
4683
+ * a partial selection, or just a caret). Returns `false` for an empty input (so select-all falls
4684
+ * straight through to the options) and when the whole value is already selected (a second press
4685
+ * then acts on the options).
4686
+ */
4687
+ function shouldSelectSearchText(input) {
4688
+ if (!input) {
4689
+ return false;
4690
+ }
4691
+ const length = input.value.length;
4692
+ if (length === 0) {
4693
+ return false;
4694
+ }
4695
+ return !(input.selectionStart === 0 && input.selectionEnd === length);
4696
+ }
4697
+
3832
4698
  const KBQ_TITLE_TEXT_REF = new InjectionToken('KbqTitleTextRef');
3833
4699
 
3834
4700
  /**
@@ -3891,6 +4757,35 @@ class KbqVirtualOption extends KbqOptionBase {
3891
4757
  * Single option inside of a `<kbq-select>` element.
3892
4758
  */
3893
4759
  class KbqOption extends KbqOptionBase {
4760
+ constructor() {
4761
+ super(...arguments);
4762
+ this.elementRef = inject(ElementRef);
4763
+ this.changeDetectorRef = inject(ChangeDetectorRef);
4764
+ this.parent = inject(KBQ_OPTION_PARENT_COMPONENT, { optional: true });
4765
+ this.group = inject(KbqOptgroup, { optional: true });
4766
+ this.selectable = input(true, ...(ngDevMode ? [{ debugName: "selectable", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
4767
+ // todo this flag will need to be rethought in the future (added for filter panel)
4768
+ this.userSelect = input(false, ...(ngDevMode ? [{ debugName: "userSelect", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
4769
+ /** Event emitted when the option is selected or deselected. */
4770
+ this.onSelectionChange = new EventEmitter();
4771
+ /** Emits when the state of the option changes and any parents have to be notified. */
4772
+ this.stateChanges = new Subject();
4773
+ this._id = `kbq-option-${uniqueIdCounter++}`;
4774
+ this._selected = false;
4775
+ this._disabled = false;
4776
+ this._active = false;
4777
+ this.mostRecentViewValue = '';
4778
+ /**
4779
+ * Flag that indicates whether the component is currently focused by a mouse interaction.
4780
+ *
4781
+ * When set to `true`, the component has focus resulting from a mouse click or
4782
+ * other pointer event. It is automatically cleared when the component loses
4783
+ * focus or if focus is obtained through keyboard navigation or programmatic means.
4784
+ */
4785
+ this.isFocusedByMouse = false;
4786
+ }
4787
+ // TODO: Skipped for migration because:
4788
+ // Accessor inputs cannot be migrated as they are too complex.
3894
4789
  get showCheckbox() {
3895
4790
  return this._showCheckbox === undefined ? this.multiple : this._showCheckbox;
3896
4791
  }
@@ -3901,6 +4796,8 @@ class KbqOption extends KbqOptionBase {
3901
4796
  * The displayed value of the option. It is necessary to show the selected option in the
3902
4797
  * select's trigger.
3903
4798
  */
4799
+ // TODO: Skipped for migration because:
4800
+ // Accessor inputs cannot be migrated as they are too complex.
3904
4801
  get viewValue() {
3905
4802
  return this._viewValue || (this.getHostElement().textContent || '').trim();
3906
4803
  }
@@ -3917,6 +4814,8 @@ class KbqOption extends KbqOptionBase {
3917
4814
  get selected() {
3918
4815
  return this._selected;
3919
4816
  }
4817
+ // TODO: Skipped for migration because:
4818
+ // Accessor inputs cannot be migrated as they are too complex.
3920
4819
  get disabled() {
3921
4820
  return (this.group && this.group.disabled) || this._disabled;
3922
4821
  }
@@ -3932,33 +4831,6 @@ class KbqOption extends KbqOptionBase {
3932
4831
  get active() {
3933
4832
  return this._active;
3934
4833
  }
3935
- constructor(elementRef, changeDetectorRef, parent, group) {
3936
- super();
3937
- this.elementRef = elementRef;
3938
- this.changeDetectorRef = changeDetectorRef;
3939
- this.parent = parent;
3940
- this.group = group;
3941
- this.selectable = true;
3942
- // todo this flag will need to be rethought in the future (added for filter panel)
3943
- this.userSelect = false;
3944
- /** Event emitted when the option is selected or deselected. */
3945
- this.onSelectionChange = new EventEmitter();
3946
- /** Emits when the state of the option changes and any parents have to be notified. */
3947
- this.stateChanges = new Subject();
3948
- this._id = `kbq-option-${uniqueIdCounter++}`;
3949
- this._selected = false;
3950
- this._disabled = false;
3951
- this._active = false;
3952
- this.mostRecentViewValue = '';
3953
- /**
3954
- * Flag that indicates whether the component is currently focused by a mouse interaction.
3955
- *
3956
- * When set to `true`, the component has focus resulting from a mouse click or
3957
- * other pointer event. It is automatically cleared when the component loses
3958
- * focus or if focus is obtained through keyboard navigation or programmatic means.
3959
- */
3960
- this.isFocusedByMouse = false;
3961
- }
3962
4834
  ngAfterViewChecked() {
3963
4835
  // Since parent components could be using the option's label to display the selected values
3964
4836
  // (e.g. `kbq-select`) and they don't have a way of knowing if the option's label has changed
@@ -3978,11 +4850,7 @@ class KbqOption extends KbqOptionBase {
3978
4850
  }
3979
4851
  /** @docs-private */
3980
4852
  getHeight() {
3981
- const element = this.elementRef.nativeElement;
3982
- // For SSR compatibility
3983
- if (typeof element.getClientRects !== 'function')
3984
- return 0;
3985
- return element.getClientRects()[0]?.height ?? 0;
4853
+ return this.elementRef.nativeElement.getClientRects()[0]?.height ?? 0;
3986
4854
  }
3987
4855
  select(emitEvent = true) {
3988
4856
  if (!this._selected) {
@@ -4056,9 +4924,9 @@ class KbqOption extends KbqOptionBase {
4056
4924
  * determine if the select's view -> model callback should be invoked.`
4057
4925
  */
4058
4926
  selectViaInteraction() {
4059
- if (this.userSelect)
4927
+ if (this.userSelect())
4060
4928
  return;
4061
- if (!this.disabled && this.selectable) {
4929
+ if (!this.disabled && this.selectable()) {
4062
4930
  this._selected = this.multiple ? !this._selected : true;
4063
4931
  this.changeDetectorRef.markForCheck();
4064
4932
  this.emitSelectionChangeEvent(true);
@@ -4077,19 +4945,24 @@ class KbqOption extends KbqOptionBase {
4077
4945
  this.isFocusedByMouse = true;
4078
4946
  this.parent?.keyManager?.setActiveItem(this);
4079
4947
  }
4080
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqOption, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: KBQ_OPTION_PARENT_COMPONENT, optional: true }, { token: KbqOptgroup, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
4081
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: KbqOption, isStandalone: true, selector: "kbq-option", inputs: { value: "value", selectable: ["selectable", "selectable", booleanAttribute], userSelect: ["userSelect", "userSelect", booleanAttribute], showCheckbox: "showCheckbox", viewValue: "viewValue", disabled: "disabled" }, outputs: { onSelectionChange: "onSelectionChange" }, host: { listeners: { "click": "handleClick($event)", "mouseenter": "onMouseenter()", "keydown": "handleKeydown($event)" }, properties: { "attr.tabindex": "getTabIndex()", "class.kbq-selected": "selected", "class.kbq-option-multiple": "multiple", "class.kbq-active": "active", "class.kbq-disabled": "disabled", "id": "id" }, classAttribute: "kbq-option" }, providers: [
4948
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOption, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4949
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqOption, isStandalone: true, selector: "kbq-option", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, userSelect: { classPropertyName: "userSelect", publicName: "userSelect", isSignal: true, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: false, isRequired: false, transformFunction: null }, viewValue: { classPropertyName: "viewValue", publicName: "viewValue", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange" }, host: { listeners: { "click": "handleClick($event)", "mouseenter": "onMouseenter()", "keydown": "handleKeydown($event)" }, properties: { "attr.tabindex": "getTabIndex()", "class.kbq-selected": "selected", "class.kbq-option-multiple": "multiple", "class.kbq-active": "active", "class.kbq-disabled": "disabled", "id": "id" }, classAttribute: "kbq-option" }, providers: [
4082
4950
  {
4083
4951
  provide: KBQ_TITLE_TEXT_REF,
4084
4952
  useExisting: KbqOption
4085
4953
  }
4086
4954
  ], viewQueries: [{ propertyName: "textElement", first: true, predicate: ["kbqTitleText"], descendants: true }], exportAs: ["kbqOption"], usesInheritance: true, ngImport: i0, template: "@if (showCheckbox) {\n <ng-content select=\"kbq-pseudo-checkbox\">\n <kbq-pseudo-checkbox [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n </ng-content>\n}\n\n<span #kbqTitleText class=\"kbq-option-text\">\n <ng-content />\n</span>\n", styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-option{position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-option .kbq-list-text:empty{display:none}.kbq-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-option>.kbq-pseudo-checkbox{margin-top:var(--kbq-size-3xs);align-self:baseline}.kbq-option{border-radius:var(--kbq-option-border-radius)}.kbq-option:not(.kbq-disabled){cursor:pointer}.kbq-option-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-option-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-option-text:empty{display:none}.kbq-option-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-option{background:var(--kbq-list-default-container-background)}.kbq-option .kbq-option-text{color:var(--kbq-list-default-text-color)}.kbq-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color)}.kbq-option .kbq-option-caption{color:var(--kbq-list-default-caption-color)}.kbq-option.kbq-active:not(.kbq-disabled){background:var(--kbq-list-states-hover-container-background)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-states-hover-text-color)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-states-hover-caption-color)}.kbq-option.kbq-selected:not(.kbq-disabled){background:var(--kbq-list-states-selected-container-background)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-states-selected-text-color)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-states-selected-caption-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active{background:var(--kbq-list-states-selected-hover-container-background)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-text{color:var(--kbq-list-states-selected-hover-text-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-caption{color:var(--kbq-list-states-selected-hover-caption-color)}.kbq-option.kbq-disabled{background:var(--kbq-list-states-disabled-container-background)}.kbq-option.kbq-disabled .kbq-option-text{color:var(--kbq-list-states-disabled-text-color)}.kbq-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color)}.kbq-option.kbq-disabled .kbq-option-caption{color:var(--kbq-list-states-disabled-caption-color)}.kbq-option:is(.kbq-selected,.kbq-active):has(+:is(.kbq-selected,.kbq-active)){border-bottom-left-radius:0;border-bottom-right-radius:0}.kbq-option:is(.kbq-selected,.kbq-active)+:is(.kbq-selected,.kbq-active){border-top-left-radius:0;border-top-right-radius:0}.kbq-option-multiple.kbq-selected:not(.kbq-disabled){background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-multiple-states-selected-text-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active{background:var(--kbq-list-multiple-states-selected-hover-container-background)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-text{color:var(--kbq-list-multiple-states-selected-hover-text-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color)}.kbq-option{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-list-option-caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-list,.kbq-list-selection{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-size-header-padding-top: var(--kbq-size-s);--kbq-list-size-header-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-header-padding-horizontal: var(--kbq-size-m);--kbq-list-size-subheading-padding-top: var(--kbq-size-m);--kbq-list-size-subheading-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-subheading-padding-horizontal: var(--kbq-size-m);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}.kbq-option{--kbq-option-size-horizontal-padding: var(--kbq-size-m);--kbq-option-size-height: var(--kbq-size-3xl);--kbq-option-size-border-width: 2px;--kbq-option-border-radius: var(--kbq-size-xs)}.kbq-option{--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}\n"], dependencies: [{ kind: "ngmodule", type: KbqPseudoCheckboxModule }, { kind: "component", type: KbqPseudoCheckbox, selector: "kbq-pseudo-checkbox", inputs: ["big", "state", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4087
4955
  }
4088
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqOption, decorators: [{
4956
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOption, decorators: [{
4089
4957
  type: Component,
4090
4958
  args: [{ selector: 'kbq-option', imports: [
4091
4959
  KbqPseudoCheckboxModule
4092
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'kbqOption', host: {
4960
+ ], providers: [
4961
+ {
4962
+ provide: KBQ_TITLE_TEXT_REF,
4963
+ useExisting: KbqOption
4964
+ }
4965
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
4093
4966
  '[attr.tabindex]': 'getTabIndex()',
4094
4967
  class: 'kbq-option',
4095
4968
  '[class.kbq-selected]': 'selected',
@@ -4100,31 +4973,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
4100
4973
  '(click)': 'handleClick($event)',
4101
4974
  '(mouseenter)': 'onMouseenter()',
4102
4975
  '(keydown)': 'handleKeydown($event)'
4103
- }, providers: [
4104
- {
4105
- provide: KBQ_TITLE_TEXT_REF,
4106
- useExisting: KbqOption
4107
- }
4108
- ], template: "@if (showCheckbox) {\n <ng-content select=\"kbq-pseudo-checkbox\">\n <kbq-pseudo-checkbox [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n </ng-content>\n}\n\n<span #kbqTitleText class=\"kbq-option-text\">\n <ng-content />\n</span>\n", styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-option{position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-option .kbq-list-text:empty{display:none}.kbq-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-option>.kbq-pseudo-checkbox{margin-top:var(--kbq-size-3xs);align-self:baseline}.kbq-option{border-radius:var(--kbq-option-border-radius)}.kbq-option:not(.kbq-disabled){cursor:pointer}.kbq-option-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-option-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-option-text:empty{display:none}.kbq-option-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-option{background:var(--kbq-list-default-container-background)}.kbq-option .kbq-option-text{color:var(--kbq-list-default-text-color)}.kbq-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color)}.kbq-option .kbq-option-caption{color:var(--kbq-list-default-caption-color)}.kbq-option.kbq-active:not(.kbq-disabled){background:var(--kbq-list-states-hover-container-background)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-states-hover-text-color)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-states-hover-caption-color)}.kbq-option.kbq-selected:not(.kbq-disabled){background:var(--kbq-list-states-selected-container-background)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-states-selected-text-color)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-states-selected-caption-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active{background:var(--kbq-list-states-selected-hover-container-background)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-text{color:var(--kbq-list-states-selected-hover-text-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-caption{color:var(--kbq-list-states-selected-hover-caption-color)}.kbq-option.kbq-disabled{background:var(--kbq-list-states-disabled-container-background)}.kbq-option.kbq-disabled .kbq-option-text{color:var(--kbq-list-states-disabled-text-color)}.kbq-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color)}.kbq-option.kbq-disabled .kbq-option-caption{color:var(--kbq-list-states-disabled-caption-color)}.kbq-option:is(.kbq-selected,.kbq-active):has(+:is(.kbq-selected,.kbq-active)){border-bottom-left-radius:0;border-bottom-right-radius:0}.kbq-option:is(.kbq-selected,.kbq-active)+:is(.kbq-selected,.kbq-active){border-top-left-radius:0;border-top-right-radius:0}.kbq-option-multiple.kbq-selected:not(.kbq-disabled){background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-multiple-states-selected-text-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active{background:var(--kbq-list-multiple-states-selected-hover-container-background)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-text{color:var(--kbq-list-multiple-states-selected-hover-text-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color)}.kbq-option{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-list-option-caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-list,.kbq-list-selection{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-size-header-padding-top: var(--kbq-size-s);--kbq-list-size-header-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-header-padding-horizontal: var(--kbq-size-m);--kbq-list-size-subheading-padding-top: var(--kbq-size-m);--kbq-list-size-subheading-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-subheading-padding-horizontal: var(--kbq-size-m);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}.kbq-option{--kbq-option-size-horizontal-padding: var(--kbq-size-m);--kbq-option-size-height: var(--kbq-size-3xl);--kbq-option-size-border-width: 2px;--kbq-option-border-radius: var(--kbq-size-xs)}.kbq-option{--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}\n"] }]
4109
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
4110
- type: Optional
4111
- }, {
4112
- type: Inject,
4113
- args: [KBQ_OPTION_PARENT_COMPONENT]
4114
- }] }, { type: KbqOptgroup, decorators: [{
4115
- type: Optional
4116
- }] }], propDecorators: { textElement: [{
4976
+ }, exportAs: 'kbqOption', template: "@if (showCheckbox) {\n <ng-content select=\"kbq-pseudo-checkbox\">\n <kbq-pseudo-checkbox [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n </ng-content>\n}\n\n<span #kbqTitleText class=\"kbq-option-text\">\n <ng-content />\n</span>\n", styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-option{position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-option .kbq-list-text:empty{display:none}.kbq-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-option>.kbq-pseudo-checkbox{margin-top:var(--kbq-size-3xs);align-self:baseline}.kbq-option{border-radius:var(--kbq-option-border-radius)}.kbq-option:not(.kbq-disabled){cursor:pointer}.kbq-option-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-option-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-option-text:empty{display:none}.kbq-option-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-option{background:var(--kbq-list-default-container-background)}.kbq-option .kbq-option-text{color:var(--kbq-list-default-text-color)}.kbq-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color)}.kbq-option .kbq-option-caption{color:var(--kbq-list-default-caption-color)}.kbq-option.kbq-active:not(.kbq-disabled){background:var(--kbq-list-states-hover-container-background)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-states-hover-text-color)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-states-hover-caption-color)}.kbq-option.kbq-selected:not(.kbq-disabled){background:var(--kbq-list-states-selected-container-background)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-states-selected-text-color)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-states-selected-caption-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active{background:var(--kbq-list-states-selected-hover-container-background)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-text{color:var(--kbq-list-states-selected-hover-text-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-caption{color:var(--kbq-list-states-selected-hover-caption-color)}.kbq-option.kbq-disabled{background:var(--kbq-list-states-disabled-container-background)}.kbq-option.kbq-disabled .kbq-option-text{color:var(--kbq-list-states-disabled-text-color)}.kbq-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color)}.kbq-option.kbq-disabled .kbq-option-caption{color:var(--kbq-list-states-disabled-caption-color)}.kbq-option:is(.kbq-selected,.kbq-active):has(+:is(.kbq-selected,.kbq-active)){border-bottom-left-radius:0;border-bottom-right-radius:0}.kbq-option:is(.kbq-selected,.kbq-active)+:is(.kbq-selected,.kbq-active){border-top-left-radius:0;border-top-right-radius:0}.kbq-option-multiple.kbq-selected:not(.kbq-disabled){background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-multiple-states-selected-text-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active{background:var(--kbq-list-multiple-states-selected-hover-container-background)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-text{color:var(--kbq-list-multiple-states-selected-hover-text-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color)}.kbq-option{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-list-option-caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-list,.kbq-list-selection{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-size-header-padding-top: var(--kbq-size-s);--kbq-list-size-header-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-header-padding-horizontal: var(--kbq-size-m);--kbq-list-size-subheading-padding-top: var(--kbq-size-m);--kbq-list-size-subheading-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-subheading-padding-horizontal: var(--kbq-size-m);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}.kbq-option{--kbq-option-size-horizontal-padding: var(--kbq-size-m);--kbq-option-size-height: var(--kbq-size-3xl);--kbq-option-size-border-width: 2px;--kbq-option-border-radius: var(--kbq-size-xs)}.kbq-option{--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}\n"] }]
4977
+ }], propDecorators: { textElement: [{
4117
4978
  type: ViewChild,
4118
4979
  args: ['kbqTitleText', { static: false }]
4119
4980
  }], value: [{
4120
4981
  type: Input
4121
- }], selectable: [{
4122
- type: Input,
4123
- args: [{ transform: booleanAttribute }]
4124
- }], userSelect: [{
4125
- type: Input,
4126
- args: [{ transform: booleanAttribute }]
4127
- }], showCheckbox: [{
4982
+ }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], userSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "userSelect", required: false }] }], showCheckbox: [{
4128
4983
  type: Input
4129
4984
  }], onSelectionChange: [{
4130
4985
  type: Output
@@ -4174,11 +5029,11 @@ function getOptionScrollPosition(optionIndex, optionHeight, currentScrollPositio
4174
5029
  }
4175
5030
 
4176
5031
  class KbqOptionModule {
4177
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqOptionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4178
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqOptionModule, imports: [KbqPseudoCheckbox, KbqOption, KbqOptgroup, KbqOptionActionComponent], exports: [KbqOption, KbqOptgroup, KbqOptionActionComponent] }); }
4179
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqOptionModule, imports: [KbqOption] }); }
5032
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5033
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionModule, imports: [KbqPseudoCheckbox, KbqOption, KbqOptgroup, KbqOptionActionComponent], exports: [KbqOption, KbqOptgroup, KbqOptionActionComponent] }); }
5034
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionModule }); }
4180
5035
  }
4181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqOptionModule, decorators: [{
5036
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionModule, decorators: [{
4182
5037
  type: NgModule,
4183
5038
  args: [{
4184
5039
  imports: [KbqPseudoCheckbox, KbqOption, KbqOptgroup, KbqOptionActionComponent],
@@ -4186,6 +5041,149 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
4186
5041
  }]
4187
5042
  }] });
4188
5043
 
5044
+ /**
5045
+ * DI token a scrollable wrapper component can provide to expose itself as the scroll source
5046
+ * for a co-located `KbqOverflowShadowContainer` (see `KbqScrollbar`).
5047
+ */
5048
+ const KBQ_OVERFLOW_SHADOW_SOURCE = new InjectionToken('KBQ_OVERFLOW_SHADOW_SOURCE');
5049
+ /**
5050
+ * Container directive that sits on the scrollable element. Listens for scroll events and
5051
+ * keeps the `overflow` signal up to date, which is then read by `KbqOverflowShadowTop` and
5052
+ * `KbqOverflowShadowBottom`.
5053
+ *
5054
+ * The scroll source is auto-detected: if `KBQ_OVERFLOW_SHADOW_SOURCE` is provided in the
5055
+ * host's DI, that source is used; otherwise the native `scroll` event on the host element
5056
+ * is observed.
5057
+ *
5058
+ * In addition to scroll events, the directive observes the scroll source's box-size changes
5059
+ * via CDK's `SharedResizeObserver` — this covers layout changes that happen without a scroll
5060
+ * and alter the viewport size (modal open/close animation, window resize, reflow that resizes
5061
+ * the element). Content that only grows `scrollHeight` without changing the element's box size
5062
+ * is not detected by the resize observer; call `checkOverflow()` manually for those cases.
5063
+ */
5064
+ class KbqOverflowShadowContainer {
5065
+ constructor() {
5066
+ this.destroyRef = inject(DestroyRef);
5067
+ this.hostElement = kbqInjectNativeElement();
5068
+ this.externalSource = inject(KBQ_OVERFLOW_SHADOW_SOURCE, { optional: true, self: true });
5069
+ this.sharedResizeObserver = inject(SharedResizeObserver);
5070
+ /** Optional debounce for scroll events, in milliseconds. Default is 0. */
5071
+ this.debounce = input(0, ...(ngDevMode ? [{ debugName: "debounce", transform: numberAttribute }] : [{ transform: numberAttribute }]));
5072
+ /** Current shadow state. Updated on every scroll event. */
5073
+ this.overflow = signal({ top: false, bottom: false }, ...(ngDevMode ? [{ debugName: "overflow" }] : []));
5074
+ afterNextRender(() => {
5075
+ this.checkOverflow();
5076
+ this.observeResize();
5077
+ });
5078
+ }
5079
+ ngOnInit() {
5080
+ const source$ = this.externalSource
5081
+ ? this.externalSource.onScroll
5082
+ : fromEvent(this.hostElement, 'scroll', { passive: true });
5083
+ const stream$ = this.debounce() > 0 ? source$.pipe(debounceTime(this.debounce())) : source$;
5084
+ stream$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.checkOverflow());
5085
+ }
5086
+ /**
5087
+ * Force-rechecks overflow and updates the signal. Calling this manually is normally not
5088
+ * necessary — scroll events plus `SharedResizeObserver` cover the standard scenarios. Kept
5089
+ * for rare cases when external code knows about a layout change more precisely than the
5090
+ * browser observers (e.g. content that only grows `scrollHeight`).
5091
+ */
5092
+ checkOverflow() {
5093
+ const source = this.getScrollSource();
5094
+ if (!source)
5095
+ return;
5096
+ // `clientHeight` (content-box) is the visible scroll-viewport height. `Math.round` on the
5097
+ // bottom comparison absorbs sub-pixel scroll metrics (HiDPI / browser zoom) so the bottom
5098
+ // shadow reliably clears at the very bottom instead of lingering on a fractional gap.
5099
+ const { scrollTop, clientHeight, scrollHeight } = source;
5100
+ this.overflow.set({
5101
+ top: scrollTop > 0,
5102
+ bottom: Math.round(scrollTop + clientHeight) < scrollHeight
5103
+ });
5104
+ }
5105
+ getScrollSource() {
5106
+ return this.externalSource ? this.externalSource.getScrollElement() : this.hostElement;
5107
+ }
5108
+ observeResize() {
5109
+ const source = this.getScrollSource();
5110
+ if (!source)
5111
+ return;
5112
+ this.sharedResizeObserver
5113
+ .observe(source)
5114
+ .pipe(takeUntilDestroyed(this.destroyRef))
5115
+ .subscribe(() => this.checkOverflow());
5116
+ }
5117
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOverflowShadowContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5118
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: KbqOverflowShadowContainer, isStandalone: true, selector: "[kbqOverflowShadowContainer]", inputs: { debounce: { classPropertyName: "debounce", publicName: "debounce", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["kbqOverflowShadowContainer"], ngImport: i0 }); }
5119
+ }
5120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOverflowShadowContainer, decorators: [{
5121
+ type: Directive,
5122
+ args: [{
5123
+ selector: '[kbqOverflowShadowContainer]',
5124
+ exportAs: 'kbqOverflowShadowContainer'
5125
+ }]
5126
+ }], ctorParameters: () => [], propDecorators: { debounce: [{ type: i0.Input, args: [{ isSignal: true, alias: "debounce", required: false }] }] } });
5127
+ /**
5128
+ * Marker directive for the top-shadow indicator. Linked to the container directive via a
5129
+ * template ref: `<header [kbqOverflowShadowTop]="containerRef">`.
5130
+ *
5131
+ * Sets an inline `box-shadow` on the host element using the value from the `shadow` input
5132
+ * (the Koobiq token by default). Consumers can override the shadow from the outside by
5133
+ * overriding the token `--kbq-shadow-overflow-normal-bottom` (or whichever token is passed
5134
+ * via the `shadow` input) in the relevant cascade scope.
5135
+ */
5136
+ class KbqOverflowShadowTop {
5137
+ constructor() {
5138
+ /**
5139
+ * Reference to the container directive. May be `undefined` if the container has not
5140
+ * been rendered yet (e.g. the indicator lives in one @if block and the container in
5141
+ * another).
5142
+ */
5143
+ this.ref = input(undefined, ...(ngDevMode ? [{ debugName: "ref", alias: 'kbqOverflowShadowTop' }] : [{ alias: 'kbqOverflowShadowTop' }]));
5144
+ /** Value of `box-shadow` when the shadow is active. Defaults to the standard Koobiq token. */
5145
+ this.shadow = input('var(--kbq-shadow-overflow-normal-bottom)', ...(ngDevMode ? [{ debugName: "shadow" }] : []));
5146
+ }
5147
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOverflowShadowTop, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5148
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: KbqOverflowShadowTop, isStandalone: true, selector: "[kbqOverflowShadowTop]", inputs: { ref: { classPropertyName: "ref", publicName: "kbqOverflowShadowTop", isSignal: true, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.box-shadow": "ref()?.overflow()?.top ? shadow() : null" } }, exportAs: ["kbqOverflowShadowTop"], ngImport: i0 }); }
5149
+ }
5150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOverflowShadowTop, decorators: [{
5151
+ type: Directive,
5152
+ args: [{
5153
+ selector: '[kbqOverflowShadowTop]',
5154
+ host: {
5155
+ '[style.box-shadow]': 'ref()?.overflow()?.top ? shadow() : null'
5156
+ },
5157
+ exportAs: 'kbqOverflowShadowTop'
5158
+ }]
5159
+ }], propDecorators: { ref: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbqOverflowShadowTop", required: false }] }], shadow: [{ type: i0.Input, args: [{ isSignal: true, alias: "shadow", required: false }] }] } });
5160
+ /**
5161
+ * Marker directive for the bottom-shadow indicator. Linked to the container directive via a
5162
+ * template ref: `<footer [kbqOverflowShadowBottom]="containerRef">`.
5163
+ *
5164
+ * Sets an inline `box-shadow` on the host element. See {@link KbqOverflowShadowTop}.
5165
+ */
5166
+ class KbqOverflowShadowBottom {
5167
+ constructor() {
5168
+ /** Reference to the container directive. See {@link KbqOverflowShadowTop.ref}. */
5169
+ this.ref = input(undefined, ...(ngDevMode ? [{ debugName: "ref", alias: 'kbqOverflowShadowBottom' }] : [{ alias: 'kbqOverflowShadowBottom' }]));
5170
+ /** Value of `box-shadow` when the shadow is active. Defaults to the standard Koobiq token. */
5171
+ this.shadow = input('var(--kbq-shadow-overflow-normal-top)', ...(ngDevMode ? [{ debugName: "shadow" }] : []));
5172
+ }
5173
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOverflowShadowBottom, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5174
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: KbqOverflowShadowBottom, isStandalone: true, selector: "[kbqOverflowShadowBottom]", inputs: { ref: { classPropertyName: "ref", publicName: "kbqOverflowShadowBottom", isSignal: true, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.box-shadow": "ref()?.overflow()?.bottom ? shadow() : null" } }, exportAs: ["kbqOverflowShadowBottom"], ngImport: i0 }); }
5175
+ }
5176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOverflowShadowBottom, decorators: [{
5177
+ type: Directive,
5178
+ args: [{
5179
+ selector: '[kbqOverflowShadowBottom]',
5180
+ host: {
5181
+ '[style.box-shadow]': 'ref()?.overflow()?.bottom ? shadow() : null'
5182
+ },
5183
+ exportAs: 'kbqOverflowShadowBottom'
5184
+ }]
5185
+ }], propDecorators: { ref: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbqOverflowShadowBottom", required: false }] }], shadow: [{ type: i0.Input, args: [{ isSignal: true, alias: "shadow", required: false }] }] } });
5186
+
4189
5187
  const POSITION_MAP = {
4190
5188
  top: {
4191
5189
  originX: 'center',
@@ -4436,6 +5434,143 @@ function objectValues(object) {
4436
5434
  return object === null ? [] : baseValues(object, Object.keys(object));
4437
5435
  }
4438
5436
 
5437
+ /**
5438
+ * Element used by {@link KbqShadowDomOverlayContainer} to locate the shadow root that should host overlays.
5439
+ *
5440
+ * When not provided, the container falls back to the application root component element.
5441
+ */
5442
+ const KBQ_SHADOW_DOM_OVERLAY_HOST = new InjectionToken('KBQ_SHADOW_DOM_OVERLAY_HOST');
5443
+ /** Marks the structural overlay stylesheet that {@link KbqShadowDomOverlayContainer} clones into a shadow root. */
5444
+ const overlayStructuralStylesAttribute = 'data-kbq-overlay-structural-styles';
5445
+ /**
5446
+ * `OverlayContainer` that places the `.cdk-overlay-container` inside a shadow root instead of `document.body`.
5447
+ *
5448
+ * The default CDK `OverlayContainer` always appends its container to `document.body`. When the application is
5449
+ * rendered inside a shadow root (e.g. a Module Federation micro-frontend), overlays — toasts, modals, dropdowns,
5450
+ * tooltips, etc. — escape the shadow tree into the light DOM. There they lose access to the styles and theme tokens
5451
+ * scoped to the shadow root (Koobiq theme tokens are defined on the `.kbq-light` / `.kbq-dark` ancestor), which
5452
+ * results in unstyled overlays.
5453
+ *
5454
+ * This container resolves the target shadow root from {@link KBQ_SHADOW_DOM_OVERLAY_HOST} (or the root component when
5455
+ * the token is absent) and relocates the overlay container into it. After relocating, it also clones CDK's own
5456
+ * structural overlay stylesheet (`position`/`z-index`/backdrop, `.cdk-overlay-container:empty`) into the shadow root,
5457
+ * since those `document.head` styles do not cross the shadow boundary. If no shadow root is found — the common case
5458
+ * for an app rendered directly in the light DOM — the container is left on `document.body`, so it is safe to provide
5459
+ * unconditionally.
5460
+ *
5461
+ * Only **open** shadow roots can be resolved: a closed shadow root exposes neither `Element.shadowRoot` nor a
5462
+ * `ShadowRoot` from `getRootNode()`, so pass an element that already lives inside the closed tree if you must use one.
5463
+ *
5464
+ * Note: this fixes the overlay container *placement* and delivers the CDK structural overlay styles. The host
5465
+ * application is still responsible for delivering the **Koobiq component/theme styles** (the `.kbq-light` / `.kbq-dark`
5466
+ * tokens and component CSS) into the shadow root, since global `document.head` stylesheets do not cascade across a
5467
+ * shadow boundary.
5468
+ *
5469
+ * @see kbqShadowDomOverlayProvider
5470
+ */
5471
+ class KbqShadowDomOverlayContainer extends OverlayContainer {
5472
+ constructor() {
5473
+ super(...arguments);
5474
+ this.host = inject(KBQ_SHADOW_DOM_OVERLAY_HOST, { optional: true });
5475
+ this.applicationRef = inject(ApplicationRef);
5476
+ }
5477
+ /** @internal CDK lifecycle hook — overridden to relocate the container into a shadow root. */
5478
+ _createContainer() {
5479
+ // Let CDK create the container (and run its test-environment cleanup). It is appended to `document.body`.
5480
+ super._createContainer();
5481
+ const shadowRoot = this.resolveShadowRoot();
5482
+ if (shadowRoot) {
5483
+ // Relocate the container into the shadow root and deliver the structural overlay styles alongside it.
5484
+ shadowRoot.appendChild(this._containerElement);
5485
+ this.deliverStructuralStyles(shadowRoot);
5486
+ }
5487
+ else if (this.host != null) {
5488
+ // An explicit host was provided but did not resolve to an open shadow root (wrong element, a closed
5489
+ // shadow root, or an element not yet inside a shadow tree). The container stays on `document.body`, so
5490
+ // overlays would render unstyled — warn instead of failing silently.
5491
+ // eslint-disable-next-line no-console
5492
+ console.warn('[KbqShadowDomOverlayContainer] The provided host did not resolve to an open shadow root; the ' +
5493
+ 'overlay container stays on document.body. Ensure the host element (or an element inside its ' +
5494
+ 'shadow tree) uses an open shadow root.');
5495
+ }
5496
+ }
5497
+ /**
5498
+ * Clones CDK's structural overlay stylesheet into the shadow root.
5499
+ *
5500
+ * CDK ships the overlay's structural CSS as a `ViewEncapsulation.None` component, so Angular injects it as a
5501
+ * `<style>` in `document.head` synchronously — `OverlayContainer.getContainerElement()` loads it before
5502
+ * `_createContainer()` runs. Those rules do not cross the shadow boundary, so a relocated container would
5503
+ * otherwise be unpositioned. Cloning the already-injected stylesheet keeps it version-matched to the installed
5504
+ * `@angular/cdk` and is idempotent.
5505
+ */
5506
+ deliverStructuralStyles(shadowRoot) {
5507
+ if (shadowRoot.querySelector(`style[${overlayStructuralStylesAttribute}]`)) {
5508
+ return;
5509
+ }
5510
+ const sourceStyle = Array.from(this._document.head.querySelectorAll('style')).find((style) => style.textContent?.includes('.cdk-overlay-pane'));
5511
+ if (sourceStyle) {
5512
+ const clone = sourceStyle.cloneNode(true);
5513
+ clone.setAttribute(overlayStructuralStylesAttribute, '');
5514
+ shadowRoot.appendChild(clone);
5515
+ }
5516
+ }
5517
+ resolveShadowRoot() {
5518
+ const element = this.resolveHostElement();
5519
+ if (!element) {
5520
+ return null;
5521
+ }
5522
+ // The host can be the shadow host itself (the common case — the MFE root element)...
5523
+ const ownShadowRoot = element.shadowRoot;
5524
+ if (ownShadowRoot) {
5525
+ return ownShadowRoot;
5526
+ }
5527
+ // ...or an element that already lives inside the shadow tree.
5528
+ const rootNode = element.getRootNode();
5529
+ return typeof ShadowRoot !== 'undefined' && rootNode instanceof ShadowRoot ? rootNode : null;
5530
+ }
5531
+ resolveHostElement() {
5532
+ if (this.host) {
5533
+ const resolved = typeof this.host === 'function' ? this.host() : this.host;
5534
+ if (resolved instanceof ElementRef) {
5535
+ return resolved.nativeElement;
5536
+ }
5537
+ return resolved ?? null;
5538
+ }
5539
+ // No explicit host provided — fall back to the application root component element.
5540
+ return this.applicationRef.components[0]?.location.nativeElement ?? null;
5541
+ }
5542
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqShadowDomOverlayContainer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
5543
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqShadowDomOverlayContainer }); }
5544
+ }
5545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqShadowDomOverlayContainer, decorators: [{
5546
+ type: Injectable
5547
+ }] });
5548
+ /**
5549
+ * Providers that route all CDK overlays into a shadow root via {@link KbqShadowDomOverlayContainer}.
5550
+ *
5551
+ * Add it to the bootstrap providers of an application rendered inside a shadow root:
5552
+ *
5553
+ * ```ts
5554
+ * bootstrapApplication(AppComponent, {
5555
+ * providers: kbqShadowDomOverlayProvider(() => document.querySelector('my-mfe-root')!)
5556
+ * });
5557
+ * ```
5558
+ *
5559
+ * The provider replaces the global `OverlayContainer` token, so it cannot be combined with another custom
5560
+ * `OverlayContainer` (e.g. CDK's `FullscreenOverlayContainer`) — the last provider wins. Apps that need both must
5561
+ * subclass `KbqShadowDomOverlayContainer`.
5562
+ *
5563
+ * @param host element (or getter / `ElementRef`) inside the target shadow tree. When omitted, the application root
5564
+ * component element is used to resolve the shadow root.
5565
+ */
5566
+ const kbqShadowDomOverlayProvider = (host) => {
5567
+ const providers = [{ provide: OverlayContainer, useClass: KbqShadowDomOverlayContainer }];
5568
+ if (host !== undefined) {
5569
+ providers.push({ provide: KBQ_SHADOW_DOM_OVERLAY_HOST, useValue: host });
5570
+ }
5571
+ return providers;
5572
+ };
5573
+
4439
5574
  /**
4440
5575
  * InjectionToken for providing component with popup. Used in select and tree-select for tooltip.
4441
5576
  */
@@ -4560,9 +5695,16 @@ class KbqPopUp {
4560
5695
  return this.visibility === PopUpVisibility.Visible;
4561
5696
  }
4562
5697
  updateClassMap(placement, customClass, classMap) {
5698
+ // `customClass` may be a whitespace-separated list of class names; expand it into
5699
+ // individual keys so the native `[class]` binding (which doesn't tokenise object keys)
5700
+ // applies each class correctly.
5701
+ const customClasses = {};
5702
+ for (const token of (customClass ?? '').split(/\s+/).filter(Boolean)) {
5703
+ customClasses[token] = true;
5704
+ }
4563
5705
  this.classMap = {
4564
5706
  [`${this.prefix}_placement-${placement}`]: true,
4565
- [customClass]: !!customClass,
5707
+ ...customClasses,
4566
5708
  ...classMap
4567
5709
  };
4568
5710
  }
@@ -4628,10 +5770,10 @@ class KbqPopUp {
4628
5770
  this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, oppositeSide, 'unset');
4629
5771
  }
4630
5772
  }
4631
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPopUp, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4632
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqPopUp, isStandalone: true, host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)" } }, ngImport: i0 }); }
5773
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPopUp, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5774
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqPopUp, isStandalone: true, host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)" } }, ngImport: i0 }); }
4633
5775
  }
4634
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPopUp, decorators: [{
5776
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPopUp, decorators: [{
4635
5777
  type: Directive,
4636
5778
  args: [{
4637
5779
  host: {
@@ -4695,42 +5837,91 @@ const getOffset = ({ originX, overlayX, originY, overlayY }, { width, height })
4695
5837
  }
4696
5838
  return offset;
4697
5839
  };
5840
+ /**
5841
+ * Abstract base directive for hover/focus/click-triggered pop-ups (e.g. tooltip and popover). It manages the
5842
+ * CDK overlay lifecycle, binds the trigger event listeners, resolves placement via a flexible connected position
5843
+ * strategy, and controls show/hide timing. Concrete subclasses supply the pop-up component type, its content,
5844
+ * and the overlay configuration.
5845
+ */
4698
5846
  class KbqPopUpTrigger {
4699
5847
  constructor() {
4700
- /** Stream that emits when the popupTrigger is hovered. */
5848
+ /** Stream that emits when the popupTrigger is hovered.
5849
+ * @docs-private */
4701
5850
  this.hovered = new BehaviorSubject(false);
5851
+ /** RxJS scheduler that drives the hide timeout; `undefined` falls back to the default async scheduler.
5852
+ * @docs-private */
4702
5853
  this.scheduler = inject(AsyncScheduler, { optional: true }) || undefined;
5854
+ /** CDK Overlay service used to create and position the pop-up overlay.
5855
+ * @docs-private */
4703
5856
  this.overlay = inject(Overlay);
5857
+ /** Reference to the host element the pop-up is anchored to.
5858
+ * @docs-private */
4704
5859
  this.elementRef = inject(ElementRef);
5860
+ /** Angular zone, used to run the hide timer outside Angular and re-enter when hiding.
5861
+ * @docs-private */
4705
5862
  this.ngZone = inject(NgZone);
5863
+ /** CDK ScrollDispatcher, used to track ancestor scroll containers so the pop-up repositions on scroll.
5864
+ * @docs-private */
4706
5865
  this.scrollDispatcher = inject(ScrollDispatcher);
5866
+ /** CDK ViewportRuler, used to re-apply the stick-to-window position on window resize.
5867
+ * @docs-private */
5868
+ this.viewportRuler = inject(ViewportRuler);
5869
+ /** View container the pop-up component portal is attached to.
5870
+ * @docs-private */
4707
5871
  this.hostView = inject(ViewContainerRef);
5872
+ /** Text direction (LTR/RTL) applied to the overlay when a `Directionality` is available.
5873
+ * @docs-private */
4708
5874
  this.direction = inject(Directionality, { optional: true });
5875
+ /** Destroy reference used to auto-unsubscribe streams when the directive is destroyed.
5876
+ * @docs-private */
4709
5877
  this.destroyRef = inject(DestroyRef);
5878
+ /** Nearest `CdkScrollable` ancestor, if any.
5879
+ * @docs-private */
4710
5880
  this.scrollable = inject(CdkScrollable, { optional: true });
5881
+ /** Change detector used to refresh the trigger when its open state changes. */
4711
5882
  this.popUpChangeDetectorRef = inject(ChangeDetectorRef);
5883
+ /** Backing field for `isOpen`. */
4712
5884
  this._isOpen = false;
5885
+ /** Delay in milliseconds before the pop-up is shown.
5886
+ * @docs-private */
4713
5887
  this.enterDelay = 0;
5888
+ /** Delay in milliseconds before the pop-up is hidden.
5889
+ * @docs-private */
4714
5890
  this.leaveDelay = 0;
5891
+ /** Current resolved placement of the pop-up.
5892
+ * @docs-private */
4715
5893
  this.placement = PopUpPlacements.Top;
5894
+ /** Ordered list of fallback placements to try before the default priority.
5895
+ * @docs-private */
4716
5896
  this.placementPriority = null;
5897
+ /** Whether the pop-up is currently visible.
5898
+ * @docs-private */
4717
5899
  this.visible = false;
5900
+ /** Map of event name to the handler currently bound on the host element.
5901
+ * @docs-private */
4718
5902
  this.listeners = new Map();
5903
+ /** Map of placement name to its CDK connected position pair.
5904
+ * @docs-private */
4719
5905
  this.availablePositions = POSITION_MAP;
4720
- /** Hide pop-up with timeout. Need if you want to show pop-up after leaving trigger */
5906
+ /** Hide pop-up with timeout. Need if you want to show pop-up after leaving trigger
5907
+ * @docs-private */
4721
5908
  this.hideWithTimeout = false;
4722
- /** prevents closure by any event */
5909
+ /** prevents closure by any event
5910
+ * @docs-private */
4723
5911
  this.preventClose = false;
5912
+ /** Detaches the overlay (if attached) and clears the current pop-up instance.
5913
+ * @docs-private */
4724
5914
  this.detach = () => {
4725
5915
  if (this.overlayRef?.hasAttached()) {
4726
5916
  this.overlayRef.detach();
4727
5917
  }
4728
5918
  this.instance = null;
4729
5919
  };
5920
+ /** Maps the CDK connection position back to a placement name, emits `placementChange`, and updates classes.
5921
+ * @docs-private */
4730
5922
  this.onPositionChange = ($event) => {
4731
- if (!this.instance) {
5923
+ if (!this.instance)
4732
5924
  return;
4733
- }
4734
5925
  let newPlacement = this.placement;
4735
5926
  const { originX, originY, overlayX, overlayY } = $event.connectionPair;
4736
5927
  Object.keys(this.availablePositions).some((key) => {
@@ -4747,13 +5938,16 @@ class KbqPopUpTrigger {
4747
5938
  this.updateClassMap(newPlacement);
4748
5939
  this.instance.detectChanges();
4749
5940
  };
5941
+ /** Binds a single event listener to the pop-up's native element. */
4750
5942
  this.addEventListener = (listener, event) => {
4751
5943
  this.getNativeElement().addEventListener(event, listener);
4752
5944
  };
5945
+ /** Unbinds a single event listener from the pop-up's native element. */
4753
5946
  this.removeEventListener = (listener, event) => {
4754
5947
  this.getNativeElement().removeEventListener(event, listener);
4755
5948
  };
4756
5949
  }
5950
+ /** Whether the pop-up overlay is currently open. */
4757
5951
  get isOpen() {
4758
5952
  return this._isOpen;
4759
5953
  }
@@ -4761,14 +5955,18 @@ class KbqPopUpTrigger {
4761
5955
  this._isOpen = value;
4762
5956
  this.popUpChangeDetectorRef.markForCheck();
4763
5957
  }
5958
+ /** Binds the DOM event listeners for the configured triggers. */
4764
5959
  ngOnInit() {
4765
5960
  this.initListeners();
4766
5961
  }
5962
+ /** Disposes the overlay and removes all bound event listeners. */
4767
5963
  ngOnDestroy() {
4768
5964
  this.overlayRef?.dispose();
4769
5965
  this.listeners.forEach(this.removeEventListener);
4770
5966
  this.listeners.clear();
4771
5967
  }
5968
+ /** Sets the placement (falling back to `Top` on an unknown value) and refreshes the classes and position.
5969
+ * @docs-private */
4772
5970
  updatePlacement(value) {
4773
5971
  if (POSITION_TO_CSS_MAP[value]) {
4774
5972
  this.placement = value;
@@ -4783,6 +5981,8 @@ class KbqPopUpTrigger {
4783
5981
  this.updatePosition();
4784
5982
  }
4785
5983
  }
5984
+ /** Sets the ordered list of fallback placements, or clears it when the value is empty.
5985
+ * @docs-private */
4786
5986
  updatePlacementPriority(value) {
4787
5987
  if (value && value.length > 0) {
4788
5988
  this.placementPriority = value;
@@ -4791,6 +5991,8 @@ class KbqPopUpTrigger {
4791
5991
  this.placementPriority = null;
4792
5992
  }
4793
5993
  }
5994
+ /** Coerces and applies an external visibility value by showing or hiding the pop-up when it changes.
5995
+ * @docs-private */
4794
5996
  updateVisible(externalValue) {
4795
5997
  const value = coerceBooleanProperty(externalValue);
4796
5998
  if (this.visible !== value) {
@@ -4803,14 +6005,20 @@ class KbqPopUpTrigger {
4803
6005
  }
4804
6006
  }
4805
6007
  }
6008
+ /** Closes the pop-up when `Escape` is pressed while it is open. Bound to the host `keydown` event.
6009
+ * @docs-private */
4806
6010
  keydownHandler(event) {
4807
6011
  if (this.isOpen && event.keyCode === ESCAPE) {
4808
6012
  this.hide();
4809
6013
  }
4810
6014
  }
6015
+ /** Hides the pop-up. Bound to the host `touchend` event.
6016
+ * @docs-private */
4811
6017
  touchendHandler() {
4812
6018
  this.hide();
4813
6019
  }
6020
+ /** Creates the overlay (if needed) and shows the pop-up after `delay` ms, wiring its visibility stream.
6021
+ * @docs-private */
4814
6022
  show(delay = this.enterDelay) {
4815
6023
  if (this.disabled || this.instance) {
4816
6024
  return;
@@ -4833,6 +6041,14 @@ class KbqPopUpTrigger {
4833
6041
  });
4834
6042
  this.updatePosition();
4835
6043
  this.instance.show(delay);
6044
+ // The position strategy re-applies the overlay position on window resize (its ViewportRuler
6045
+ // subscription is created inside OverlayRef.attach(), i.e. before this one), wiping the manual
6046
+ // styles written by setStickPosition. Re-apply them after the strategy has run.
6047
+ // No-op when stickToWindow is not set.
6048
+ this.viewportRuler
6049
+ .change()
6050
+ .pipe(takeUntilDestroyed(this.instance.destroyRef))
6051
+ .subscribe(() => this.instance?.setStickPosition());
4836
6052
  if (this.hideWithTimeout && this.trigger.includes(PopUpTriggers.Hover)) {
4837
6053
  this.ngZone.runOutsideAngular(() => {
4838
6054
  interval(this.leaveDelay, this.scheduler)
@@ -4841,6 +6057,8 @@ class KbqPopUpTrigger {
4841
6057
  });
4842
6058
  }
4843
6059
  }
6060
+ /** Hides the pop-up after `delay` ms, honoring `preventClose` and the hover state on mouseleave.
6061
+ * @docs-private */
4844
6062
  hide(delay = this.leaveDelay) {
4845
6063
  if (this.preventClose)
4846
6064
  return;
@@ -4849,7 +6067,8 @@ class KbqPopUpTrigger {
4849
6067
  this.ngZone.run(() => this.instance?.hide(delay));
4850
6068
  }
4851
6069
  }
4852
- /** Create the overlay config and position strategy */
6070
+ /** Create the overlay config and position strategy
6071
+ * @docs-private */
4853
6072
  createOverlay() {
4854
6073
  if (this.overlayRef) {
4855
6074
  return this.overlayRef;
@@ -4874,9 +6093,13 @@ class KbqPopUpTrigger {
4874
6093
  this.overlayRef.detachments().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);
4875
6094
  return this.overlayRef;
4876
6095
  }
6096
+ /** Resets the overlay position origin back to the host element.
6097
+ * @docs-private */
4877
6098
  resetOrigin() {
4878
6099
  this.strategy.setOrigin(this.getNativeElement());
4879
6100
  }
6101
+ /** Rebinds the host DOM listeners (click/hover/focus/keydown) according to the configured triggers.
6102
+ * @docs-private */
4880
6103
  initListeners() {
4881
6104
  this.clearListeners();
4882
6105
  if (this.trigger.includes(PopUpTriggers.Click)) {
@@ -4901,13 +6124,16 @@ class KbqPopUpTrigger {
4901
6124
  }
4902
6125
  this.listeners.forEach(this.addEventListener);
4903
6126
  }
6127
+ /** Returns the `mouseleave` handler — a delayed hide when `hideWithTimeout` is set, otherwise an immediate hide.
6128
+ * @docs-private */
4904
6129
  getMouseLeaveListener() {
4905
6130
  if (this.hideWithTimeout) {
4906
6131
  return () => setTimeout(() => this.hide(), this.leaveDelay);
4907
6132
  }
4908
6133
  return this.hide;
4909
6134
  }
4910
- /** Updates the position of the current popover. */
6135
+ /** Updates the position of the current popover.
6136
+ * @docs-private */
4911
6137
  updatePosition(reapplyPosition = false) {
4912
6138
  this.overlayRef = this.createOverlay();
4913
6139
  this.subscribeOnClosingActions();
@@ -4918,21 +6144,24 @@ class KbqPopUpTrigger {
4918
6144
  setTimeout(() => position.reapplyLastPosition());
4919
6145
  }
4920
6146
  }
6147
+ /** Moves browser focus to the pop-up's native element.
6148
+ * @docs-private */
4921
6149
  focus() {
4922
6150
  this.getNativeElement().focus();
4923
6151
  }
4924
- /** @docs-private */
6152
+ /** Returns the element the pop-up is bound to: the external element when set, otherwise the host element.
6153
+ * @docs-private */
4925
6154
  getNativeElement() {
4926
6155
  return this.externalNativeElement || this.elementRef.nativeElement;
4927
6156
  }
4928
- /** @docs-private */
6157
+ /** Sets an external element to anchor and measure the pop-up against instead of the host element.
6158
+ * @docs-private */
4929
6159
  setExternalNativeElement(value) {
4930
6160
  this.externalNativeElement = value;
4931
6161
  }
4932
6162
  /**
4933
6163
  * Returns a list of positions that are aligned with the element's dimensions and offsets.
4934
- * @protected
4935
- */
6164
+ * @docs-private */
4936
6165
  getAdjustedPositions() {
4937
6166
  const res = [];
4938
6167
  for (const pos of this.getPrioritizedPositions()) {
@@ -4946,6 +6175,8 @@ class KbqPopUpTrigger {
4946
6175
  }
4947
6176
  return res;
4948
6177
  }
6178
+ /** Maps a priority placement value (or array of values) to the matching connected position pairs.
6179
+ * @docs-private */
4949
6180
  getPriorityPlacementStrategy(value) {
4950
6181
  const result = [];
4951
6182
  const possiblePositions = Object.keys(this.availablePositions);
@@ -4961,16 +6192,21 @@ class KbqPopUpTrigger {
4961
6192
  }
4962
6193
  return result;
4963
6194
  }
6195
+ /** Returns the positions to try: the custom `placementPriority` when set, otherwise the default strategy.
6196
+ * @docs-private */
4964
6197
  getPrioritizedPositions() {
4965
6198
  if (this.placementPriority) {
4966
6199
  return this.getPriorityPlacementStrategy(this.placementPriority);
4967
6200
  }
4968
6201
  return POSITION_PRIORITY_STRATEGY[this.placement];
4969
6202
  }
6203
+ /** Removes all bound host event listeners and clears the listener map.
6204
+ * @docs-private */
4970
6205
  clearListeners() {
4971
6206
  this.listeners.forEach(this.removeEventListener);
4972
6207
  this.listeners.clear();
4973
6208
  }
6209
+ /** Wraps a trigger handler so it records the active trigger name and mouse event before running. */
4974
6210
  createListener(name, listener) {
4975
6211
  return [
4976
6212
  name,
@@ -4981,11 +6217,13 @@ class KbqPopUpTrigger {
4981
6217
  }
4982
6218
  ];
4983
6219
  }
6220
+ /** Remembers the last mouse event on `mouseenter`, used for cursor-relative positioning. */
4984
6221
  saveMouseEvent(event) {
4985
6222
  if (this.triggerName === 'mouseenter') {
4986
6223
  this.mouseEvent = event;
4987
6224
  }
4988
6225
  }
6226
+ /** (Re)subscribes to the closing-action streams and hides the pop-up, ignoring prevented click events. */
4989
6227
  subscribeOnClosingActions() {
4990
6228
  this.closingActionsSubscription?.unsubscribe();
4991
6229
  this.closingActionsSubscription = this.closingActions()
@@ -4998,10 +6236,10 @@ class KbqPopUpTrigger {
4998
6236
  this.hide();
4999
6237
  });
5000
6238
  }
5001
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPopUpTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5002
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqPopUpTrigger, isStandalone: true, host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)" } }, ngImport: i0 }); }
6239
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPopUpTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6240
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqPopUpTrigger, isStandalone: true, host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)" } }, ngImport: i0 }); }
5003
6241
  }
5004
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqPopUpTrigger, decorators: [{
6242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPopUpTrigger, decorators: [{
5005
6243
  type: Directive,
5006
6244
  args: [{
5007
6245
  host: {
@@ -5035,10 +6273,10 @@ const KBQ_SELECT_SCROLL_STRATEGY_PROVIDER = {
5035
6273
  };
5036
6274
 
5037
6275
  class KbqSelectTrigger {
5038
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqSelectTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5039
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqSelectTrigger, isStandalone: true, selector: "kbq-select-trigger, [kbq-select-trigger]", ngImport: i0 }); }
6276
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6277
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqSelectTrigger, isStandalone: true, selector: "kbq-select-trigger, [kbq-select-trigger]", ngImport: i0 }); }
5040
6278
  }
5041
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqSelectTrigger, decorators: [{
6279
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectTrigger, decorators: [{
5042
6280
  type: Directive,
5043
6281
  args: [{
5044
6282
  selector: 'kbq-select-trigger, [kbq-select-trigger]'
@@ -5046,39 +6284,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
5046
6284
  }] });
5047
6285
  class KbqSelectMatcher {
5048
6286
  constructor() {
5049
- this.useDefaultHandlers = true;
6287
+ this.useDefaultHandlers = input(true, ...(ngDevMode ? [{ debugName: "useDefaultHandlers", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
5050
6288
  }
5051
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqSelectMatcher, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5052
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.21", type: KbqSelectMatcher, isStandalone: true, selector: "kbq-select-matcher, [kbq-select-matcher]", inputs: { useDefaultHandlers: ["useDefaultHandlers", "useDefaultHandlers", booleanAttribute] }, ngImport: i0 }); }
6289
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectMatcher, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6290
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: KbqSelectMatcher, isStandalone: true, selector: "kbq-select-matcher, [kbq-select-matcher]", inputs: { useDefaultHandlers: { classPropertyName: "useDefaultHandlers", publicName: "useDefaultHandlers", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
5053
6291
  }
5054
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqSelectMatcher, decorators: [{
6292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectMatcher, decorators: [{
5055
6293
  type: Directive,
5056
6294
  args: [{
5057
6295
  selector: 'kbq-select-matcher, [kbq-select-matcher]'
5058
6296
  }]
5059
- }], propDecorators: { useDefaultHandlers: [{
5060
- type: Input,
5061
- args: [{ transform: booleanAttribute }]
5062
- }] } });
6297
+ }], propDecorators: { useDefaultHandlers: [{ type: i0.Input, args: [{ isSignal: true, alias: "useDefaultHandlers", required: false }] }] } });
5063
6298
  class KbqSelectSearchEmptyResult {
5064
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqSelectSearchEmptyResult, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5065
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqSelectSearchEmptyResult, isStandalone: true, selector: "[kbq-select-search-empty-result]", host: { classAttribute: "kbq-select-search-empty-result kbq-select__no-options-message" }, exportAs: ["kbqSelectSearchEmptyResult"], ngImport: i0 }); }
6299
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectSearchEmptyResult, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6300
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqSelectSearchEmptyResult, isStandalone: true, selector: "[kbq-select-search-empty-result]", host: { classAttribute: "kbq-select-search-empty-result kbq-select__no-options-message" }, exportAs: ["kbqSelectSearchEmptyResult"], ngImport: i0 }); }
5066
6301
  }
5067
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqSelectSearchEmptyResult, decorators: [{
6302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectSearchEmptyResult, decorators: [{
5068
6303
  type: Directive,
5069
6304
  args: [{
5070
6305
  selector: '[kbq-select-search-empty-result]',
5071
- exportAs: 'kbqSelectSearchEmptyResult',
5072
6306
  host: {
5073
6307
  class: 'kbq-select-search-empty-result kbq-select__no-options-message'
5074
- }
6308
+ },
6309
+ exportAs: 'kbqSelectSearchEmptyResult'
5075
6310
  }]
5076
6311
  }] });
5077
6312
  class KbqSelectFooter {
5078
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqSelectFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5079
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqSelectFooter, isStandalone: true, selector: "kbq-select-footer, [kbq-select-footer]", host: { classAttribute: "kbq-select__footer" }, ngImport: i0 }); }
6313
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6314
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqSelectFooter, isStandalone: true, selector: "kbq-select-footer, [kbq-select-footer]", host: { classAttribute: "kbq-select__footer" }, ngImport: i0 }); }
5080
6315
  }
5081
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqSelectFooter, decorators: [{
6316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectFooter, decorators: [{
5082
6317
  type: Directive,
5083
6318
  args: [{
5084
6319
  selector: 'kbq-select-footer, [kbq-select-footer]',
@@ -5087,10 +6322,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
5087
6322
  }] });
5088
6323
  class KbqSelectSearch {
5089
6324
  get ngControl() {
5090
- return this.formField.control.ngControl;
6325
+ return this.formField.control().ngControl;
5091
6326
  }
5092
- constructor(formField) {
5093
- this.formField = formField;
6327
+ constructor() {
6328
+ this.formField = inject(KBQ_FORM_FIELD_REF, { optional: true });
5094
6329
  this.changes = new EventEmitter();
5095
6330
  this.isSearchChanged = false;
5096
6331
  this.searchChangesSubscription = new Subscription();
@@ -5098,22 +6333,22 @@ class KbqSelectSearch {
5098
6333
  this.formField.inOverlay.set(true);
5099
6334
  }
5100
6335
  setPlaceholder(value) {
5101
- this.formField.control.placeholder = value;
6336
+ this.formField.control().placeholder = value;
5102
6337
  }
5103
6338
  hasPlaceholder() {
5104
6339
  return !!this.formField?.control.placeholder;
5105
6340
  }
5106
6341
  focus() {
5107
- this.formField.focusViaKeyboard();
6342
+ this.formField.focus();
5108
6343
  }
5109
6344
  reset() {
5110
6345
  this.ngControl?.reset();
5111
6346
  }
5112
6347
  value() {
5113
- return this.formField.control.value;
6348
+ return this.formField.control().value;
5114
6349
  }
5115
6350
  ngAfterContentInit() {
5116
- if (this.formField.control.controlType !== 'input') {
6351
+ if (this.formField.control().controlType !== 'input') {
5117
6352
  throw Error('KbqSelectSearch does not work without kbqInput');
5118
6353
  }
5119
6354
  if (!this.ngControl) {
@@ -5140,24 +6375,19 @@ class KbqSelectSearch {
5140
6375
  event.stopPropagation();
5141
6376
  }
5142
6377
  }
5143
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqSelectSearch, deps: [{ token: KBQ_FORM_FIELD_REF, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
5144
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqSelectSearch, isStandalone: true, selector: "[kbqSelectSearch]", host: { listeners: { "keydown": "handleKeydown($event)" } }, exportAs: ["kbqSelectSearch"], ngImport: i0 }); }
6378
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectSearch, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6379
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqSelectSearch, isStandalone: true, selector: "[kbqSelectSearch]", host: { listeners: { "keydown": "handleKeydown($event)" } }, exportAs: ["kbqSelectSearch"], ngImport: i0 }); }
5145
6380
  }
5146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqSelectSearch, decorators: [{
6381
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectSearch, decorators: [{
5147
6382
  type: Directive,
5148
6383
  args: [{
5149
6384
  selector: '[kbqSelectSearch]',
5150
- exportAs: 'kbqSelectSearch',
5151
6385
  host: {
5152
6386
  '(keydown)': 'handleKeydown($event)'
5153
- }
6387
+ },
6388
+ exportAs: 'kbqSelectSearch'
5154
6389
  }]
5155
- }], ctorParameters: () => [{ type: undefined, decorators: [{
5156
- type: Optional
5157
- }, {
5158
- type: Inject,
5159
- args: [KBQ_FORM_FIELD_REF]
5160
- }] }] });
6390
+ }], ctorParameters: () => [] });
5161
6391
  /**
5162
6392
  * Abstract class representing a customizable select component with an overlay.
5163
6393
  *
@@ -5223,10 +6453,10 @@ class KbqAbstractSelect {
5223
6453
  resolveSearchMinOptionsThreshold(value) {
5224
6454
  return value === 'auto' ? KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD : value;
5225
6455
  }
5226
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqAbstractSelect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5227
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqAbstractSelect, isStandalone: true, ngImport: i0 }); }
6456
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbstractSelect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6457
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqAbstractSelect, isStandalone: true, ngImport: i0 }); }
5228
6458
  }
5229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqAbstractSelect, decorators: [{
6459
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbstractSelect, decorators: [{
5230
6460
  type: Directive
5231
6461
  }] });
5232
6462
 
@@ -5268,6 +6498,7 @@ class KbqMeasureScrollbarService {
5268
6498
  }
5269
6499
  constructor() {
5270
6500
  this.document = inject(DOCUMENT);
6501
+ this.platform = inject(Platform);
5271
6502
  this.scrollbarMeasure = {
5272
6503
  position: 'absolute',
5273
6504
  top: '-9999px',
@@ -5278,6 +6509,10 @@ class KbqMeasureScrollbarService {
5278
6509
  this.initScrollBarWidth();
5279
6510
  }
5280
6511
  initScrollBarWidth() {
6512
+ if (!this.platform.isBrowser) {
6513
+ this._scrollBarWidth = 0;
6514
+ return;
6515
+ }
5281
6516
  const scrollDiv = this.document.createElement('div');
5282
6517
  for (const scrollProp in this.scrollbarMeasure) {
5283
6518
  if (this.scrollbarMeasure.hasOwnProperty(scrollProp)) {
@@ -5289,10 +6524,10 @@ class KbqMeasureScrollbarService {
5289
6524
  this.document.body.removeChild(scrollDiv);
5290
6525
  this._scrollBarWidth = width;
5291
6526
  }
5292
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqMeasureScrollbarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5293
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqMeasureScrollbarService, providedIn: 'root' }); }
6527
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqMeasureScrollbarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6528
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqMeasureScrollbarService, providedIn: 'root' }); }
5294
6529
  }
5295
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqMeasureScrollbarService, decorators: [{
6530
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqMeasureScrollbarService, decorators: [{
5296
6531
  type: Injectable,
5297
6532
  args: [{ providedIn: 'root' }]
5298
6533
  }], ctorParameters: () => [] });
@@ -5365,45 +6600,155 @@ class ThemeService {
5365
6600
  getTheme() {
5366
6601
  return this.current.value;
5367
6602
  }
5368
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5369
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ThemeService, providedIn: 'root' }); }
6603
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6604
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ThemeService, providedIn: 'root' }); }
5370
6605
  }
5371
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ThemeService, decorators: [{
6606
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ThemeService, decorators: [{
5372
6607
  type: Injectable,
5373
6608
  args: [{ providedIn: 'root' }]
5374
6609
  }], ctorParameters: () => [] });
5375
6610
 
6611
+ /* eslint-disable no-restricted-globals -- testing utilities legitimately use raw `document`/`window` */
6612
+ /** Creates a browser MouseEvent with the specified options. */
6613
+ function createMouseEvent(type, x = 0, y = 0, button = 0) {
6614
+ const event = document.createEvent('MouseEvent');
6615
+ event.initMouseEvent(type, false, false, window /* view */, 0, x /* screenX */, y /* screenY */, x /* clientX */, y /* clientY */, false, false, false, false, button /* button */, null);
6616
+ return event;
6617
+ }
6618
+ /** Creates a browser TouchEvent with the specified pointer coordinates. */
6619
+ function createTouchEvent(type, pageX = 0, pageY = 0) {
6620
+ // In favor of creating events that work for most of the browsers, the event is created
6621
+ // as a basic UI Event. The necessary details for the event will be set manually.
6622
+ const event = document.createEvent('UIEvent');
6623
+ const touchDetails = { pageX, pageY };
6624
+ event.initUIEvent(type, true, true, window, 0);
6625
+ // Most of the browsers don't have a "initTouchEvent" method that can be used to define
6626
+ // the touch details.
6627
+ Object.defineProperties(event, {
6628
+ touches: { value: [touchDetails] }
6629
+ });
6630
+ return event;
6631
+ }
6632
+ /** Dispatches a keydown event from an element. */
6633
+ function createKeyboardEvent(type, keyCode, target, key) {
6634
+ const event = document.createEvent('KeyboardEvent');
6635
+ // Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.
6636
+ if (event.initKeyEvent) {
6637
+ event.initKeyEvent(type, true, true, window, 0, 0, 0, 0, 0, keyCode);
6638
+ }
6639
+ else {
6640
+ event.initKeyboardEvent(type, true, true, window, 0, key, 0, '', false);
6641
+ }
6642
+ // Webkit Browsers don't set the keyCode when calling the init function.
6643
+ // See related bug https://bugs.webkit.org/show_bug.cgi?id=16735
6644
+ Object.defineProperties(event, {
6645
+ keyCode: { get: () => keyCode },
6646
+ key: { get: () => key }
6647
+ });
6648
+ // Only override `target` when explicitly provided; otherwise let jsdom set it during dispatch.
6649
+ if (target !== undefined) {
6650
+ Object.defineProperty(event, 'target', { get: () => target });
6651
+ }
6652
+ return event;
6653
+ }
6654
+ /** Creates a fake event object with any desired event type. */
6655
+ function createFakeEvent(type, canBubble = false, cancelable = true) {
6656
+ const event = document.createEvent('Event');
6657
+ event.initEvent(type, canBubble, cancelable);
6658
+ return event;
6659
+ }
6660
+
6661
+ /** Utility to dispatch any event on a Node. */
6662
+ function dispatchEvent(node, event) {
6663
+ node.dispatchEvent(event);
6664
+ return event;
6665
+ }
6666
+ /** Shorthand to dispatch a fake event on a specified node. */
6667
+ function dispatchFakeEvent(node, type, canBubble) {
6668
+ return dispatchEvent(node, createFakeEvent(type, canBubble));
6669
+ }
6670
+ /** Shorthand to dispatch a keyboard event with a specified key code. */
6671
+ function dispatchKeyboardEvent(node, type, keyCode, target) {
6672
+ return dispatchEvent(node, createKeyboardEvent(type, keyCode, target));
6673
+ }
6674
+ /** Shorthand to dispatch a mouse event on the specified coordinates. */
6675
+ function dispatchMouseEvent(node, type, x = 0, y = 0, event = createMouseEvent(type, x, y)) {
6676
+ return dispatchEvent(node, event);
6677
+ }
6678
+ /** Shorthand to dispatch a touch event on the specified coordinates. */
6679
+ function dispatchTouchEvent(node, type, x = 0, y = 0) {
6680
+ return dispatchEvent(node, createTouchEvent(type, x, y));
6681
+ }
6682
+
5376
6683
  /**
5377
- * @docs-private
6684
+ * Patches an elements focus and blur methods to emit events consistently and predictably.
6685
+ * This is necessary, because some browsers, like IE11, will call the focus handlers asynchronously,
6686
+ * while others won't fire them at all if the browser window is not focused.
5378
6687
  */
5379
- const validationTooltipShowDelay = 10;
6688
+ function patchElementFocus(element) {
6689
+ element.focus = () => dispatchFakeEvent(element, 'focus');
6690
+ element.blur = () => dispatchFakeEvent(element, 'blur');
6691
+ }
6692
+
5380
6693
  /**
6694
+ * Mock synchronous NgZone implementation that can be used
6695
+ * to flush out `onStable` subscriptions in tests.
6696
+ *
6697
+ * via: https://github.com/angular/angular/blob/master/packages/core/testing/src/ng_zone_mock.ts
5381
6698
  * @docs-private
5382
6699
  */
5383
- const validationTooltipHideDelay = 3000;
6700
+ class MockNgZone extends NgZone {
6701
+ constructor() {
6702
+ super({ enableLongStackTrace: false });
6703
+ this.onStable = new EventEmitter(false);
6704
+ }
6705
+ run(fn) {
6706
+ return fn();
6707
+ }
6708
+ runOutsideAngular(fn) {
6709
+ return fn();
6710
+ }
6711
+ simulateZoneExit() {
6712
+ this.onStable.emit(null);
6713
+ }
6714
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MockNgZone, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6715
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MockNgZone }); }
6716
+ }
6717
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MockNgZone, decorators: [{
6718
+ type: Injectable
6719
+ }], ctorParameters: () => [] });
6720
+
6721
+ /**
6722
+ * Focuses an input, sets its value and dispatches
6723
+ * the `input` event, simulating the user typing.
6724
+ * @param value Value to be set on the input.
6725
+ * @param element Element onto which to set the value.
6726
+ */
6727
+ function typeInElement(value, element) {
6728
+ element.focus();
6729
+ element.value = value;
6730
+ dispatchFakeEvent(element, 'input');
6731
+ }
6732
+
6733
+ function wrappedErrorMessage(e) {
6734
+ const escapedMessage = e.message.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&');
6735
+ return new RegExp(escapedMessage);
6736
+ }
6737
+
5384
6738
  /**
5385
- * @deprecated Will be removed in next major release.
5386
- *
5387
6739
  * @docs-private
5388
6740
  */
5389
- const KBQ_VALIDATION = new InjectionToken('KbqUseValidation', {
5390
- factory: () => ({ useValidation: true })
5391
- });
6741
+ const validationTooltipShowDelay = 10;
5392
6742
  /**
5393
- * Utility provider which disables legacy validation directive.
5394
- *
5395
- * Will be removed in next major release, so legacy validation will be disabled by default.
6743
+ * @docs-private
5396
6744
  */
5397
- const kbqDisableLegacyValidationDirectiveProvider = () => ({
5398
- provide: KBQ_VALIDATION,
5399
- useValue: { useValidation: false }
5400
- });
6745
+ const validationTooltipHideDelay = 3000;
5401
6746
 
5402
- const VERSION = new Version('19.8.3+sha-221da1d');
6747
+ const VERSION = new Version('20.1.0+sha-ba927bf');
5403
6748
 
5404
6749
  /**
5405
6750
  * Generated bundle index. Do not edit.
5406
6751
  */
5407
6752
 
5408
- export { ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT, AbsoluteDateFormatterImpurePipe, AbsoluteDateFormatterPipe, AbsoluteDateShortFormatterImpurePipe, AbsoluteDateShortFormatterPipe, AbsoluteDateTimeFormatterImpurePipe, AbsoluteDateTimeFormatterPipe, AbsoluteShortDateTimeFormatterImpurePipe, AbsoluteShortDateTimeFormatterPipe, AnimationCurves, BOTTOM_LEFT_POSITION_PRIORITY, BOTTOM_POSITION_PRIORITY, BOTTOM_RIGHT_POSITION_PRIORITY, BaseFormatterPipe, DateAdapter, DateFormatter, EXTENDED_OVERLAY_POSITIONS, EmptyFocusTrapStrategy, ErrorStateMatcher, FileValidators, KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER, KBQ_DATE_FORMATS, KBQ_DATE_LOCALE, KBQ_DATE_LOCALE_FACTORY, KBQ_DEFAULT_LOCALE_DATA_FACTORY, KBQ_DEFAULT_LOCALE_ID, KBQ_DEFAULT_PRECISION_SEPARATOR, KBQ_FORM_FIELD_REF, KBQ_INVALID_VALUE_ERROR, KBQ_LOCALE_DATA, KBQ_LOCALE_ID, KBQ_LOCALE_SERVICE, KBQ_LOCALE_SERVICE_LANG_ATTR_NAME, KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS, KBQ_NUMBER_FORMATTER_OPTIONS, KBQ_OPTION_ACTION_PARENT, KBQ_OPTION_PARENT_COMPONENT, KBQ_PARENT_ANIMATION_COMPONENT, KBQ_PARENT_POPUP, KBQ_SANITY_CHECKS, KBQ_SELECT_SCROLL_STRATEGY, KBQ_SELECT_SCROLL_STRATEGY_PROVIDER, KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD, KBQ_SIZE_UNITS_CONFIG, KBQ_SIZE_UNITS_DEFAULT_CONFIG, KBQ_TITLE_TEXT_REF, KBQ_VALIDATION, KBQ_WINDOW, KbqAbstractSelect, KbqActionContainer, KbqAnimationCurves, KbqAnimationDurations, KbqColorDirective, KbqCommonModule, KbqComponentColors, KbqDataSizePipe, KbqDecimalPipe, KbqDefaultThemes, KbqErrorStateTracker, KbqFieldSizingContent, KbqForm, KbqFormElement, KbqFormattersModule, KbqFormsModule, KbqHighlightModule, KbqHighlightPipe, KbqHover, KbqLine, KbqLineSetter, KbqLocaleService, KbqLocaleServiceModule, KbqMeasureScrollbarService, KbqMeasurementSystem, KbqNormalizeWhitespace, KbqOptgroup, KbqOption, KbqOptionActionComponent, KbqOptionBase, KbqOptionModule, KbqOptionSelectionChange, KbqPopUp, KbqPopUpTrigger, KbqPseudoCheckbox, KbqPseudoCheckboxModule, KbqReadStateDirective, KbqRectangleItem, KbqRoundDecimalPipe, KbqSelectFooter, KbqSelectMatcher, KbqSelectSearch, KbqSelectSearchEmptyResult, KbqSelectTrigger, KbqTableNumberPipe, KbqThemeSelector, KbqVirtualOption, LEFT_BOTTOM_POSITION_PRIORITY, LEFT_POSITION_PRIORITY, LEFT_TOP_POSITION_PRIORITY, MeasurementSystem, MultipleMode, NUMBER_FORMAT_REGEXP, POSITION_MAP, POSITION_PRIORITY_STRATEGY, POSITION_TO_CSS_MAP, PasswordValidators, PopUpPlacements, PopUpSizes, PopUpTriggers, PopUpVisibility, RIGHT_BOTTOM_POSITION_PRIORITY, RIGHT_POSITION_PRIORITY, RIGHT_TOP_POSITION_PRIORITY, RangeDateFormatterImpurePipe, RangeDateFormatterPipe, RangeDateTimeFormatterImpurePipe, RangeDateTimeFormatterPipe, RangeMiddleDateTimeFormatterImpurePipe, RangeMiddleDateTimeFormatterPipe, RangeShortDateFormatterImpurePipe, RangeShortDateFormatterPipe, RangeShortDateTimeFormatterImpurePipe, RangeShortDateTimeFormatterPipe, RelativeDateFormatterImpurePipe, RelativeDateFormatterPipe, RelativeDateTimeFormatterImpurePipe, RelativeDateTimeFormatterPipe, RelativeShortDateFormatterImpurePipe, RelativeShortDateFormatterPipe, RelativeShortDateTimeFormatterImpurePipe, RelativeShortDateTimeFormatterPipe, SELECT_PANEL_VIEWPORT_PADDING, ShowOnControlDirtyErrorStateMatcher, ShowOnFormSubmitErrorStateMatcher, ShowRequiredOnSubmitErrorStateMatcher, TOP_LEFT_POSITION_PRIORITY, TOP_POSITION_PRIORITY, TOP_RIGHT_POSITION_PRIORITY, ThemePalette, ThemeService, VERSION, applyPopupMargins, checkAndNormalizeLocalizedNumber, countGroupLabelsBeforeOption, defaultOffsetY, enUSFormattersData, enUSLocaleData, esLAFormattersData, esLALocaleData, escapeRegExp, fadeAnimation, formatDataSize, formatNumberWithLocale, getFormattedSizeParts, getHumanizedBytes, getKbqSelectDynamicMultipleError, getKbqSelectNonArrayValueError, getKbqSelectNonFunctionValueError, getNodesWithoutComments, getOptionScrollPosition, isBoolean, isElement, isHtmlElement, isHtmlElementOrNull, isMac, isNull, isUndefined, isWithin, kbqDisableLegacyValidationDirectiveProvider, kbqErrorStateMatcherProvider, kbqFilesizeFormatterConfigurationProvider, kbqHighlightMark, kbqInjectNativeElement, kbqLocaleServiceLangAttrNameProvider, kbqSelectAnimations, kbqSelectScrollStrategyProviderFactory, leftIconClassName, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, normalizeNumber, numberByParts, ptBRFormattersData, ptBRLocaleData, rightIconClassName, ruRUFormattersData, ruRULocaleData, selectEvents, tkTMFormattersData, tkTMLocaleData, toBoolean, validationTooltipHideDelay, validationTooltipShowDelay };
6753
+ export { A, ALT, APOSTROPHE, ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT, AT_SIGN, AbsoluteDateFormatterImpurePipe, AbsoluteDateFormatterPipe, AbsoluteDateShortFormatterImpurePipe, AbsoluteDateShortFormatterPipe, AbsoluteDateTimeFormatterImpurePipe, AbsoluteDateTimeFormatterPipe, AbsoluteShortDateTimeFormatterImpurePipe, AbsoluteShortDateTimeFormatterPipe, ActiveDescendantKeyManager, B, BACKSLASH, BACKSPACE, BOTTOM_LEFT_POSITION_PRIORITY, BOTTOM_POSITION_PRIORITY, BOTTOM_RIGHT_POSITION_PRIORITY, BaseFormatterPipe, BaseLocaleAwareFormatterPipe, C, CAPS_LOCK, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, D, DASH, DELETE, DOWN_ARROW, DateAdapter, DateFormatter, E, EIGHT, END, ENTER, EQUALS, ESCAPE, EXTENDED_OVERLAY_POSITIONS, EmptyFocusTrapStrategy, ErrorStateMatcher, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FOUR, FileValidators, FocusKeyManager, G, H, HOME, I, INSERT, J, K, KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER, KBQ_DATE_FORMATS, KBQ_DATE_LOCALE, KBQ_DATE_LOCALE_FACTORY, KBQ_DEFAULT_LOCALE_DATA_FACTORY, KBQ_DEFAULT_LOCALE_ID, KBQ_DEFAULT_PRECISION_SEPARATOR, KBQ_FORM_FIELD_REF, KBQ_INVALID_VALUE_ERROR, KBQ_LOCALE_DATA, KBQ_LOCALE_ID, KBQ_LOCALE_SERVICE, KBQ_LOCALE_SERVICE_LANG_ATTR_NAME, KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS, KBQ_NUMBER_FORMATTER_OPTIONS, KBQ_OPTION_ACTION_PARENT, KBQ_OPTION_PARENT_COMPONENT, KBQ_OVERFLOW_SHADOW_SOURCE, KBQ_PARENT_ANIMATION_COMPONENT, KBQ_PARENT_POPUP, KBQ_SELECT_SCROLL_STRATEGY, KBQ_SELECT_SCROLL_STRATEGY_PROVIDER, KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD, KBQ_SHADOW_DOM_OVERLAY_HOST, KBQ_SIZE_UNITS_CONFIG, KBQ_SIZE_UNITS_DEFAULT_CONFIG, KBQ_TITLE_TEXT_REF, KBQ_WINDOW, KbqAbsoluteLongDatePipe, KbqAbsoluteLongDateTimePipe, KbqAbsoluteShortDatePipe, KbqAbsoluteShortDateTimePipe, KbqAbstractSelect, KbqActionContainer, KbqAnimationCurves, KbqAnimationDurations, KbqColorDirective, KbqComponentColors, KbqDataSizePipe, KbqDecimalPipe, KbqDefaultThemes, KbqErrorStateTracker, KbqFieldSizingContent, KbqForm, KbqFormElement, KbqFormattersModule, KbqFormsModule, KbqHighlightBackgroundPipe, KbqHighlightModule, KbqHighlightPipe, KbqHover, KbqLine, KbqLineSetter, KbqLocaleService, KbqLocaleServiceModule, KbqMeasureScrollbarService, KbqMeasurementSystem, KbqNormalizeWhitespace, KbqOptgroup, KbqOption, KbqOptionActionComponent, KbqOptionBase, KbqOptionModule, KbqOptionSelectionChange, KbqOverflowShadowBottom, KbqOverflowShadowContainer, KbqOverflowShadowTop, KbqPopUp, KbqPopUpTrigger, KbqPseudoCheckbox, KbqPseudoCheckboxModule, KbqRangeLongDatePipe, KbqRangeLongDateTimePipe, KbqRangeMiddleDateTimePipe, KbqRangeShortDatePipe, KbqRangeShortDateTimePipe, KbqReadStateDirective, KbqRectangleItem, KbqRelativeLongDatePipe, KbqRelativeLongDateTimePipe, KbqRelativeShortDatePipe, KbqRelativeShortDateTimePipe, KbqRoundDecimalPipe, KbqSelectAllEvent, KbqSelectFooter, KbqSelectMatcher, KbqSelectSearch, KbqSelectSearchEmptyResult, KbqSelectTrigger, KbqShadowDomOverlayContainer, KbqTableNumberPipe, KbqThemeSelector, KbqVirtualOption, L, LAST_MEDIA, LEFT_ARROW, LEFT_BOTTOM_POSITION_PRIORITY, LEFT_POSITION_PRIORITY, LEFT_TOP_POSITION_PRIORITY, ListKeyManager, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, META, MUTE, MockNgZone, MultipleMode, N, NINE, NUMBER_FORMAT_REGEXP, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PAUSE, PERIOD, PLUS_SIGN, POSITION_MAP, POSITION_PRIORITY_STRATEGY, POSITION_TO_CSS_MAP, PRINT_SCREEN, PasswordValidators, PopUpPlacements, PopUpSizes, PopUpTriggers, PopUpVisibility, Q, QUESTION_MARK, R, RIGHT_ARROW, RIGHT_BOTTOM_POSITION_PRIORITY, RIGHT_POSITION_PRIORITY, RIGHT_TOP_POSITION_PRIORITY, RangeDateFormatterImpurePipe, RangeDateFormatterPipe, RangeDateTimeFormatterImpurePipe, RangeDateTimeFormatterPipe, RangeMiddleDateTimeFormatterImpurePipe, RangeMiddleDateTimeFormatterPipe, RangeShortDateFormatterImpurePipe, RangeShortDateFormatterPipe, RangeShortDateTimeFormatterImpurePipe, RangeShortDateTimeFormatterPipe, RelativeDateFormatterImpurePipe, RelativeDateFormatterPipe, RelativeDateTimeFormatterImpurePipe, RelativeDateTimeFormatterPipe, RelativeShortDateFormatterImpurePipe, RelativeShortDateFormatterPipe, RelativeShortDateTimeFormatterImpurePipe, RelativeShortDateTimeFormatterPipe, S, SCROLL_LOCK, SELECT_PANEL_VIEWPORT_PADDING, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, ShowOnControlDirtyErrorStateMatcher, ShowOnFormSubmitErrorStateMatcher, ShowRequiredOnSubmitErrorStateMatcher, T, TAB, THREE, TILDE, TOP_LEFT_POSITION_PRIORITY, TOP_POSITION_PRIORITY, TOP_RIGHT_POSITION_PRIORITY, TWO, ThemePalette, ThemeService, U, UP_ARROW, V, VERSION, VOLUME_DOWN, VOLUME_UP, W, X, Y, Z, ZERO, applyPopupMargins, checkAndNormalizeLocalizedNumber, countGroupLabelsBeforeOption, createFakeEvent, createKeyboardEvent, createMouseEvent, createTouchEvent, defaultOffsetY, dispatchEvent, dispatchFakeEvent, dispatchKeyboardEvent, dispatchMouseEvent, dispatchTouchEvent, enUSFormattersData, enUSLocaleData, esLAFormattersData, esLALocaleData, escapeRegExp, fadeAnimation, formatNumberWithLocale, getFormattedSizeParts, getHumanizedBytes, getKbqSelectDynamicMultipleError, getKbqSelectNonArrayValueError, getKbqSelectNonFunctionValueError, getNodesWithoutComments, getOptionScrollPosition, hasModifierKey, isBoolean, isControl, isCopy, isDigit, isElement, isFunctionKey, isHorizontalMovement, isHtmlElement, isHtmlElementOrNull, isInput, isLeftBracket, isLetterKey, isMac, isNull, isNumberKey, isNumpadKey, isRightBracket, isSelectAll, isUndefined, isVerticalMovement, isWithin, kbqErrorStateMatcherProvider, kbqFilesizeFormatterConfigurationProvider, kbqHighlightBackgroundMark, kbqHighlightMark, kbqInjectNativeElement, kbqLocaleServiceLangAttrNameProvider, kbqSelectAnimations, kbqSelectScrollStrategyProviderFactory, kbqShadowDomOverlayProvider, leftIconClassName, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, normalizeNumber, numberByParts, patchElementFocus, ptBRFormattersData, ptBRLocaleData, rightIconClassName, ruRUFormattersData, ruRULocaleData, selectEvents, shouldSelectSearchText, tkTMFormattersData, tkTMLocaleData, toggleSelectAll, typeInElement, validationTooltipHideDelay, validationTooltipShowDelay, wrappedErrorMessage };
5409
6754
  //# sourceMappingURL=koobiq-components-core.mjs.map