@koobiq/components 20.0.0 → 20.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/accordion/_accordion-theme.scss +1 -1
  2. package/accordion/accordion-tokens.scss +1 -0
  3. package/accordion/{accordion-trigger.component.scss → accordion-trigger.scss} +4 -18
  4. package/accordion/{accordion.component.scss → accordion.scss} +12 -5
  5. package/accordion/index.d.ts +215 -119
  6. package/actions-panel/index.d.ts +1 -0
  7. package/alert/_alert-theme.scss +14 -4
  8. package/alert/alert-tokens.scss +4 -4
  9. package/alert/alert.component.scss +24 -13
  10. package/alert/index.d.ts +63 -29
  11. package/app-switcher/app-switcher-dropdown-app.scss +2 -0
  12. package/autocomplete/autocomplete.scss +2 -1
  13. package/autocomplete/index.d.ts +35 -29
  14. package/badge/index.d.ts +2 -3
  15. package/breadcrumbs/breadcrumbs.scss +4 -0
  16. package/breadcrumbs/index.d.ts +2 -1
  17. package/button/button-group.scss +42 -2
  18. package/button-toggle/button-toggle.scss +23 -0
  19. package/button-toggle/index.d.ts +3 -1
  20. package/checkbox/checkbox.scss +5 -4
  21. package/clamped-text/index.d.ts +4 -2
  22. package/core/index.d.ts +515 -21
  23. package/core/styles/_core.scss +2 -0
  24. package/core/styles/common/_animation.scss +35 -24
  25. package/core/styles/common/_connected-overlay.scss +36 -0
  26. package/core/styles/common/_select.scss +7 -2
  27. package/core/styles/theming/_components-theming.scss +1 -1
  28. package/core/styles/theming/_scrollbar-theme.scss +4 -0
  29. package/datepicker/_datepicker-theme.scss +1 -1
  30. package/datepicker/datepicker-toggle.scss +3 -3
  31. package/dl/index.d.ts +1 -0
  32. package/dropdown/dropdown-item.scss +16 -0
  33. package/dropdown/dropdown-tokens.scss +2 -1
  34. package/dropdown/dropdown.scss +11 -2
  35. package/dropdown/index.d.ts +73 -6
  36. package/fesm2022/koobiq-components-accordion.mjs +406 -303
  37. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  38. package/fesm2022/koobiq-components-actions-panel.mjs +15 -6
  39. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  40. package/fesm2022/koobiq-components-alert.mjs +88 -48
  41. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  42. package/fesm2022/koobiq-components-app-switcher.mjs +7 -7
  43. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  44. package/fesm2022/koobiq-components-autocomplete.mjs +37 -23
  45. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  46. package/fesm2022/koobiq-components-badge.mjs +5 -4
  47. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  48. package/fesm2022/koobiq-components-breadcrumbs.mjs +6 -4
  49. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  50. package/fesm2022/koobiq-components-button-toggle.mjs +9 -6
  51. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  52. package/fesm2022/koobiq-components-button.mjs +4 -4
  53. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  54. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  55. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  56. package/fesm2022/koobiq-components-clamped-text.mjs +9 -0
  57. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-code-block.mjs +5 -1
  59. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  60. package/fesm2022/koobiq-components-core.mjs +544 -113
  61. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  62. package/fesm2022/koobiq-components-datepicker.mjs +13 -10
  63. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  64. package/fesm2022/koobiq-components-dl.mjs +3 -2
  65. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  66. package/fesm2022/koobiq-components-dropdown.mjs +105 -31
  67. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  68. package/fesm2022/koobiq-components-file-upload.mjs +33 -22
  69. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-filter-bar.mjs +1169 -782
  71. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-flag.mjs +66 -0
  73. package/fesm2022/koobiq-components-flag.mjs.map +1 -0
  74. package/fesm2022/koobiq-components-form-field.mjs +6 -6
  75. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-icon.mjs +16 -7
  77. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-inline-edit.mjs +30 -7
  79. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-list.mjs +39 -20
  81. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  83. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-modal.mjs +9 -5
  85. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-navbar.mjs +123 -27
  87. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-notification-center.mjs +193 -19
  89. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-overflow-items.mjs +12 -4
  91. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-popover.mjs +9 -4
  93. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
  95. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
  97. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-radio.mjs +3 -7
  99. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-search-expandable.mjs +43 -8
  101. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-select.mjs +72 -59
  103. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-sidebar.mjs +4 -0
  105. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-sidepanel.mjs +3 -3
  107. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-skeleton.mjs +2 -2
  109. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-split-button.mjs +5 -12
  111. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-splitter.mjs +6 -2
  113. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-table.mjs +8 -6
  115. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-tabs.mjs +42 -18
  117. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-tags.mjs +8 -1
  119. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-textarea.mjs +7 -14
  121. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-time-range.mjs +4 -4
  123. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-timepicker.mjs +3 -4
  125. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  126. package/fesm2022/koobiq-components-timezone.mjs +9 -5
  127. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-title.mjs +132 -14
  129. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-toast.mjs +1 -1
  131. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  133. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-tooltip.mjs +168 -8
  135. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-tree-select.mjs +79 -38
  137. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-tree.mjs +67 -41
  139. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-username.mjs +16 -3
  141. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  142. package/file-upload/file-upload-tokens.scss +1 -0
  143. package/file-upload/index.d.ts +10 -7
  144. package/filter-bar/_filter-bar-theme.scss +82 -0
  145. package/filter-bar/filter-bar-tokens.scss +9 -0
  146. package/filter-bar/filter-bar.scss +10 -4
  147. package/filter-bar/filter-refresher.scss +1 -1
  148. package/filter-bar/filters.scss +25 -20
  149. package/filter-bar/index.d.ts +764 -336
  150. package/filter-bar/pipes/base-pipe.scss +12 -44
  151. package/filter-bar/pipes/pipe-date.scss +20 -14
  152. package/filter-bar/pipes/pipe-input.scss +10 -0
  153. package/filter-bar/pipes/pipe-multi-tree-select.scss +5 -3
  154. package/filter-bar/pipes/pipe-multiselect.scss +5 -3
  155. package/filter-bar/pipes/pipe-readonly.scss +4 -13
  156. package/filter-bar/pipes/pipe-select.scss +3 -1
  157. package/filter-bar/pipes/pipe-tree-select.scss +3 -1
  158. package/flag/flag.scss +53 -0
  159. package/flag/index.d.ts +44 -0
  160. package/icon/icon-button.scss +3 -1
  161. package/icon/icon-item-tokens.scss +1 -1
  162. package/icon/index.d.ts +15 -2
  163. package/inline-edit/index.d.ts +5 -0
  164. package/inline-edit/inline-edit.scss +7 -7
  165. package/link/link-tokens.scss +2 -2
  166. package/list/index.d.ts +11 -2
  167. package/loader-overlay/loader-overlay-tokens.scss +1 -1
  168. package/modal/_modal-animation.scss +6 -6
  169. package/modal/_modal-theme.scss +5 -0
  170. package/modal/index.d.ts +3 -1
  171. package/modal/modal.scss +15 -0
  172. package/navbar/_navbar-item_vertical.scss +7 -5
  173. package/navbar/index.d.ts +39 -4
  174. package/navbar/navbar-brand.scss +17 -7
  175. package/navbar/navbar-item.scss +9 -0
  176. package/notification-center/_notification-center-theme.scss +2 -1
  177. package/notification-center/index.d.ts +89 -3
  178. package/notification-center/notification-center.scss +42 -4
  179. package/notification-center/notification-item.scss +3 -2
  180. package/overflow-items/index.d.ts +1 -0
  181. package/package.json +7 -3
  182. package/prebuilt-themes/dark-theme.css +1 -1
  183. package/prebuilt-themes/light-theme.css +1 -1
  184. package/prebuilt-themes/theme.css +1 -1
  185. package/progress-bar/progress-bar.scss +4 -0
  186. package/progress-spinner/progress-spinner.scss +5 -1
  187. package/radio/index.d.ts +1 -5
  188. package/radio/radio.scss +18 -4
  189. package/schematics/collection.json +15 -0
  190. package/schematics/migrations/alert-signals/README.md +64 -0
  191. package/schematics/migrations/alert-signals/data.js +70 -0
  192. package/schematics/migrations/alert-signals/index.js +350 -0
  193. package/schematics/migrations/alert-signals/schema.json +20 -0
  194. package/schematics/migrations/autocomplete-panel-width-auto/README.md +68 -0
  195. package/schematics/migrations/autocomplete-panel-width-auto/index.js +70 -0
  196. package/schematics/migrations/autocomplete-panel-width-auto/schema.json +15 -0
  197. package/schematics/migrations/filter-bar-signals/README.md +66 -0
  198. package/schematics/migrations/filter-bar-signals/data.js +72 -0
  199. package/schematics/migrations/filter-bar-signals/index.js +316 -0
  200. package/schematics/migrations/filter-bar-signals/schema.json +20 -0
  201. package/schematics/migrations.json +15 -0
  202. package/schematics/ng-add/index.js +1 -1
  203. package/schematics/utils/angular-parsing.js +11 -2
  204. package/search-expandable/index.d.ts +3 -0
  205. package/select/index.d.ts +59 -24
  206. package/sidebar/index.d.ts +1 -0
  207. package/skeleton/skeleton.scss +4 -0
  208. package/split-button/_split-button-theme.scss +2 -2
  209. package/splitter/_splitter-theme.scss +2 -2
  210. package/splitter/index.d.ts +1 -0
  211. package/table/_table-theme.scss +4 -0
  212. package/table/index.d.ts +3 -2
  213. package/tabs/_tabs-common.scss +60 -31
  214. package/tabs/_tabs-theme.scss +12 -0
  215. package/tabs/index.d.ts +4 -2
  216. package/tabs/tab-header.scss +15 -0
  217. package/tabs/tab-nav-bar.scss +4 -0
  218. package/tabs/tabs-tokens.scss +2 -1
  219. package/textarea/index.d.ts +0 -1
  220. package/time-range/time-range.scss +0 -8
  221. package/timepicker/timepicker.scss +2 -2
  222. package/timezone/index.d.ts +2 -3
  223. package/title/index.d.ts +92 -2
  224. package/tooltip/index.d.ts +124 -7
  225. package/tree/_tree-theme.scss +2 -7
  226. package/tree/index.d.ts +19 -4
  227. package/tree/toggle.scss +5 -0
  228. package/tree/tree-option.scss +0 -4
  229. package/tree-select/_tree-select-theme.scss +1 -1
  230. package/tree-select/index.d.ts +53 -22
  231. package/username/index.d.ts +20 -2
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
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, TemplateRef, NgZone, ViewContainerRef, RendererFactory2, Version } from '@angular/core';
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
3
  import { Subject, Subscription, merge, fromEvent, map as map$1, BehaviorSubject, interval, pairwise } from 'rxjs';
4
4
  import { tap, debounceTime, filter, map, distinctUntilChanged, delay } from 'rxjs/operators';
5
5
  import { _getEventTarget, Platform } from '@angular/cdk/platform';
@@ -11,10 +11,11 @@ import { DOCUMENT } from '@angular/common';
11
11
  import { DateFormatter as DateFormatter$1 } from '@koobiq/date-formatter';
12
12
  import { FocusMonitor } from '@angular/cdk/a11y';
13
13
  import { SharedResizeObserver } from '@angular/cdk/observers/private';
14
- import { Overlay, ScrollDispatcher, CdkScrollable } from '@angular/cdk/overlay';
14
+ import { Overlay, CdkOverlayOrigin, OverlayContainer, ScrollDispatcher, CdkScrollable } from '@angular/cdk/overlay';
15
15
  import { TooltipSizeArrowSize } from '@koobiq/design-tokens';
16
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
20
 
20
21
  const MAC_ENTER = 3;
@@ -1267,10 +1268,16 @@ const enUSLocaleData = {
1267
1268
  error: 'The search with such name already exists',
1268
1269
  errorHint: 'Could not save the filter. Try again or contact the administrator.',
1269
1270
  saveButton: 'Save',
1270
- cancelButton: 'Cancel'
1271
+ cancelButton: 'Cancel',
1272
+ actionsTooltip: 'Filter actions'
1271
1273
  },
1272
1274
  add: {
1273
- tooltip: 'Add filter'
1275
+ tooltip: 'Add filter',
1276
+ addedAnnouncement: '{{ name }} filter added'
1277
+ },
1278
+ refresher: {
1279
+ refresh: 'Refresh',
1280
+ settings: 'Refresh settings'
1274
1281
  },
1275
1282
  pipe: {
1276
1283
  clearButtonTooltip: 'Clear',
@@ -1324,10 +1331,13 @@ const enUSLocaleData = {
1324
1331
  to: 'to',
1325
1332
  apply: 'Apply',
1326
1333
  cancel: 'Cancel',
1327
- rangeLabel: 'for period',
1334
+ rangeLabel: 'Period',
1328
1335
  allTime: 'for all time',
1329
1336
  currentQuarter: 'for the current quarter',
1330
- currentYear: 'for the current year'
1337
+ currentYear: 'for the current year',
1338
+ allTimeOption: 'All time',
1339
+ currentQuarterOption: 'Current quarter',
1340
+ currentYearOption: 'Current year'
1331
1341
  },
1332
1342
  durationTemplate: {
1333
1343
  title: {
@@ -1369,31 +1379,31 @@ const enUSLocaleData = {
1369
1379
  LAST_PART_SEPARATOR: '',
1370
1380
  YEARS: `{years, plural,
1371
1381
  one {# year}
1372
- other {last # years}
1382
+ other {Last # years}
1373
1383
  }`,
1374
1384
  MONTHS: `{months, plural,
1375
- one {last month}
1376
- other {last # months}
1385
+ one {Last month}
1386
+ other {Last # months}
1377
1387
  }`,
1378
1388
  WEEKS: `{weeks, plural,
1379
- one {last week}
1380
- other {last # weeks}
1389
+ one {Last week}
1390
+ other {Last # weeks}
1381
1391
  }`,
1382
1392
  DAYS: `{days, plural,
1383
- one {last day}
1384
- other {last # days}
1393
+ one {Last day}
1394
+ other {Last # days}
1385
1395
  }`,
1386
1396
  HOURS: `{hours, plural,
1387
- one {last hour}
1388
- other {last # hours}
1397
+ one {Last hour}
1398
+ other {Last # hours}
1389
1399
  }`,
1390
1400
  MINUTES: `{minutes, plural,
1391
- one {last minute}
1392
- other {last # minutes}
1401
+ one {Last minute}
1402
+ other {Last # minutes}
1393
1403
  }`,
1394
1404
  SECONDS: `{seconds, plural,
1395
- one {last second}
1396
- other {last # seconds}
1405
+ one {Last second}
1406
+ other {Last # seconds}
1397
1407
  }`,
1398
1408
  YEARS_FRACTION: `{years} years`,
1399
1409
  MONTHS_FRACTION: `{months} months`
@@ -1407,7 +1417,8 @@ const enUSLocaleData = {
1407
1417
  showPopUpNotifications: 'Show pop-up notifications',
1408
1418
  noNotifications: 'No notifications',
1409
1419
  failedToLoadNotifications: 'Failed to load notifications',
1410
- repeat: 'Repeat'
1420
+ repeat: 'Repeat',
1421
+ loadingMore: 'Loading more notifications'
1411
1422
  }
1412
1423
  };
1413
1424
 
@@ -1482,10 +1493,16 @@ const esLALocaleData = {
1482
1493
  error: 'Ya existe una búsqueda con ese nombre',
1483
1494
  errorHint: 'No se pudo guardar el filtro. Intente de nuevo o comuníquese con el administrador.',
1484
1495
  saveButton: 'Guardar',
1485
- cancelButton: 'Cancelar'
1496
+ cancelButton: 'Cancelar',
1497
+ actionsTooltip: 'Acciones de filtro'
1486
1498
  },
1487
1499
  add: {
1488
- 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'
1489
1506
  },
1490
1507
  pipe: {
1491
1508
  clearButtonTooltip: 'Borrar',
@@ -1539,10 +1556,13 @@ const esLALocaleData = {
1539
1556
  to: 'a',
1540
1557
  apply: 'Aplicar',
1541
1558
  cancel: 'Cancelar',
1542
- rangeLabel: 'para el período',
1559
+ rangeLabel: 'Período',
1543
1560
  allTime: 'por todo el tiempo',
1544
1561
  currentQuarter: 'por el trimestre actual',
1545
- 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'
1546
1566
  },
1547
1567
  durationTemplate: {
1548
1568
  title: {
@@ -1584,31 +1604,31 @@ const esLALocaleData = {
1584
1604
  LAST_PART_SEPARATOR: '',
1585
1605
  YEARS: `{years, plural,
1586
1606
  one {# año}
1587
- other {últimos # años}
1607
+ other {Últimos # años}
1588
1608
  }`,
1589
1609
  MONTHS: `{months, plural,
1590
- one {último mes}
1591
- other {últimos # meses}
1610
+ one {Último mes}
1611
+ other {Últimos # meses}
1592
1612
  }`,
1593
1613
  WEEKS: `{weeks, plural,
1594
- one {última semana}
1595
- other {últimas # semanas}
1614
+ one {Última semana}
1615
+ other {Últimas # semanas}
1596
1616
  }`,
1597
1617
  DAYS: `{days, plural,
1598
- one {último día}
1599
- other {últimos # días}
1618
+ one {Último día}
1619
+ other {Últimos # días}
1600
1620
  }`,
1601
1621
  HOURS: `{hours, plural,
1602
- one {última hora}
1603
- other {últimas # horas}
1622
+ one {Última hora}
1623
+ other {Últimas # horas}
1604
1624
  }`,
1605
1625
  MINUTES: `{minutes, plural,
1606
- one {último minuto}
1607
- other {últimos # minutos}
1626
+ one {Último minuto}
1627
+ other {Últimos # minutos}
1608
1628
  }`,
1609
1629
  SECONDS: `{seconds, plural,
1610
- one {último segundo}
1611
- other {últimos # segundos}
1630
+ one {Último segundo}
1631
+ other {Últimos # segundos}
1612
1632
  }`,
1613
1633
  YEARS_FRACTION: `{years} años`,
1614
1634
  MONTHS_FRACTION: `{months} meses`
@@ -1622,7 +1642,8 @@ const esLALocaleData = {
1622
1642
  showPopUpNotifications: 'Mostrar notificaciones emergentes',
1623
1643
  noNotifications: 'Sin notificaciones',
1624
1644
  failedToLoadNotifications: 'Error al cargar las notificaciones',
1625
- repeat: 'Repetir'
1645
+ repeat: 'Repetir',
1646
+ loadingMore: 'Cargando más notificaciones'
1626
1647
  }
1627
1648
  };
1628
1649
 
@@ -1697,10 +1718,16 @@ const ptBRLocaleData = {
1697
1718
  error: 'A busca com esse nome já existe',
1698
1719
  errorHint: 'O filtro não pôde ser salvo. Tente de novo ou entre em contato com o administrador.',
1699
1720
  saveButton: 'Salvar',
1700
- cancelButton: 'Cancelar'
1721
+ cancelButton: 'Cancelar',
1722
+ actionsTooltip: 'Ações do filtro'
1701
1723
  },
1702
1724
  add: {
1703
- 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'
1704
1731
  },
1705
1732
  pipe: {
1706
1733
  clearButtonTooltip: 'Apagar',
@@ -1754,10 +1781,13 @@ const ptBRLocaleData = {
1754
1781
  to: 'até',
1755
1782
  apply: 'Aplicar',
1756
1783
  cancel: 'Cancelar',
1757
- rangeLabel: 'para o período',
1784
+ rangeLabel: 'Período',
1758
1785
  allTime: 'por todo o tempo',
1759
1786
  currentQuarter: 'pelo trimestre atual',
1760
- currentYear: 'pelo ano atual'
1787
+ currentYear: 'pelo ano atual',
1788
+ allTimeOption: 'Todo o tempo',
1789
+ currentQuarterOption: 'Trimestre atual',
1790
+ currentYearOption: 'Ano atual'
1761
1791
  },
1762
1792
  durationTemplate: {
1763
1793
  title: {
@@ -1799,31 +1829,31 @@ const ptBRLocaleData = {
1799
1829
  LAST_PART_SEPARATOR: '',
1800
1830
  YEARS: `{years, plural,
1801
1831
  one {# ano}
1802
- other {últimos # anos}
1832
+ other {Últimos # anos}
1803
1833
  }`,
1804
1834
  MONTHS: `{months, plural,
1805
- one {último mês}
1806
- other {últimos # meses}
1835
+ one {Último mês}
1836
+ other {Últimos # meses}
1807
1837
  }`,
1808
1838
  WEEKS: `{weeks, plural,
1809
- one {última semana}
1810
- other {últimas # semanas}
1839
+ one {Última semana}
1840
+ other {Últimas # semanas}
1811
1841
  }`,
1812
1842
  DAYS: `{days, plural,
1813
- one {último dia}
1814
- other {últimos # dias}
1843
+ one {Último dia}
1844
+ other {Últimos # dias}
1815
1845
  }`,
1816
1846
  HOURS: `{hours, plural,
1817
- one {última hora}
1818
- other {últimas # horas}
1847
+ one {Última hora}
1848
+ other {Últimas # horas}
1819
1849
  }`,
1820
1850
  MINUTES: `{minutes, plural,
1821
- one {último minuto}
1822
- other {últimos # minutos}
1851
+ one {Último minuto}
1852
+ other {Últimos # minutos}
1823
1853
  }`,
1824
1854
  SECONDS: `{seconds, plural,
1825
- one {último segundo}
1826
- other {últimos # segundos}
1855
+ one {Último segundo}
1856
+ other {Últimos # segundos}
1827
1857
  }`,
1828
1858
  YEARS_FRACTION: `{years} anos`,
1829
1859
  MONTHS_FRACTION: `{months} meses`
@@ -1837,7 +1867,8 @@ const ptBRLocaleData = {
1837
1867
  showPopUpNotifications: 'Mostrar notificações pop-up',
1838
1868
  noNotifications: 'Sem notificações',
1839
1869
  failedToLoadNotifications: 'Falha ao carregar notificações',
1840
- repeat: 'Repetir'
1870
+ repeat: 'Repetir',
1871
+ loadingMore: 'Carregando mais notificações'
1841
1872
  }
1842
1873
  };
1843
1874
 
@@ -1913,10 +1944,16 @@ const ruRULocaleData = {
1913
1944
  error: 'Поиск с таким названием уже существует',
1914
1945
  errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',
1915
1946
  saveButton: 'Сохранить',
1916
- cancelButton: 'Отмена'
1947
+ cancelButton: 'Отмена',
1948
+ actionsTooltip: 'Действия с фильтром'
1917
1949
  },
1918
1950
  add: {
1919
- tooltip: 'Добавить фильтр'
1951
+ tooltip: 'Добавить фильтр',
1952
+ addedAnnouncement: 'Фильтр {{ name }} добавлен'
1953
+ },
1954
+ refresher: {
1955
+ refresh: 'Обновить',
1956
+ settings: 'Настройки обновления'
1920
1957
  },
1921
1958
  pipe: {
1922
1959
  clearButtonTooltip: 'Очистить',
@@ -1970,10 +2007,13 @@ const ruRULocaleData = {
1970
2007
  to: 'по',
1971
2008
  apply: 'Применить',
1972
2009
  cancel: 'Отмена',
1973
- rangeLabel: 'за период',
2010
+ rangeLabel: 'Период',
1974
2011
  allTime: 'за все время',
1975
2012
  currentQuarter: 'за текущий квартал',
1976
- currentYear: 'за текущий год'
2013
+ currentYear: 'за текущий год',
2014
+ allTimeOption: 'Все время',
2015
+ currentQuarterOption: 'Текущий квартал',
2016
+ currentYearOption: 'Текущий год'
1977
2017
  },
1978
2018
  durationTemplate: {
1979
2019
  title: {
@@ -1981,7 +2021,7 @@ const ruRULocaleData = {
1981
2021
  LAST_PART_SEPARATOR: 'и',
1982
2022
  YEARS: `{years, plural,
1983
2023
  one {# год}
1984
- few {последние # лет}
2024
+ few {последние # года}
1985
2025
  other {последние # лет}
1986
2026
  }`,
1987
2027
  MONTHS: `{months, plural,
@@ -2021,39 +2061,39 @@ const ruRULocaleData = {
2021
2061
  SEPARATOR: ' ',
2022
2062
  LAST_PART_SEPARATOR: 'и',
2023
2063
  YEARS: `{years, plural,
2024
- one {последний год}
2025
- few {последние # лет}
2026
- other {последние # лет}
2064
+ one {Последний год}
2065
+ few {Последние # года}
2066
+ other {Последние # лет}
2027
2067
  }`,
2028
2068
  MONTHS: `{months, plural,
2029
- one {последний месяц}
2030
- few {последние # месяца}
2031
- other {последние # месяцев}
2069
+ one {Последний месяц}
2070
+ few {Последние # месяца}
2071
+ other {Последние # месяцев}
2032
2072
  }`,
2033
2073
  WEEKS: `{weeks, plural,
2034
- one {последняя неделя}
2035
- few {последние # недели}
2036
- other {последние # недель}
2074
+ one {Последняя неделя}
2075
+ few {Последние # недели}
2076
+ other {Последние # недель}
2037
2077
  }`,
2038
2078
  DAYS: `{days, plural,
2039
- one {последний день}
2040
- few {последние # дня}
2041
- other {последние # дней}
2079
+ one {Последний день}
2080
+ few {Последние # дня}
2081
+ other {Последние # дней}
2042
2082
  }`,
2043
2083
  HOURS: `{hours, plural,
2044
- one {последний час}
2045
- few {последние # часа}
2046
- other {последние # часов}
2084
+ one {Последний час}
2085
+ few {Последние # часа}
2086
+ other {Последние # часов}
2047
2087
  }`,
2048
2088
  MINUTES: `{minutes, plural,
2049
- one {последняя минута}
2050
- few {последние # минуты}
2051
- other {последние # минут}
2089
+ one {Последняя минута}
2090
+ few {Последние # минуты}
2091
+ other {Последние # минут}
2052
2092
  }`,
2053
2093
  SECONDS: `{seconds, plural,
2054
- one {последняя секунда}
2055
- few {последние # секунды}
2056
- other {последние # секунд}
2094
+ one {Последняя секунда}
2095
+ few {Последние # секунды}
2096
+ other {Последние # секунд}
2057
2097
  }`,
2058
2098
  YEARS_FRACTION: `{years} лет`,
2059
2099
  MONTHS_FRACTION: `{months} месяцев`
@@ -2067,7 +2107,8 @@ const ruRULocaleData = {
2067
2107
  showPopUpNotifications: 'Показывать всплывающие уведомления',
2068
2108
  noNotifications: 'Нет уведомлений',
2069
2109
  failedToLoadNotifications: 'Не удалось загрузить уведомления',
2070
- repeat: 'Повторить'
2110
+ repeat: 'Повторить',
2111
+ loadingMore: 'Загрузка уведомлений'
2071
2112
  }
2072
2113
  };
2073
2114
 
@@ -2143,10 +2184,16 @@ const tkTMLocaleData = {
2143
2184
  error: 'Şeýle atly gözleg eýýäm bar',
2144
2185
  errorHint: 'Filtri ýazdyryp bolmady. Täzeden synanyň ýa-da administratora ýüz tutuň.',
2145
2186
  saveButton: 'Ýazdyr',
2146
- cancelButton: 'Ýatyr'
2187
+ cancelButton: 'Ýatyr',
2188
+ actionsTooltip: 'Filtr amallary'
2147
2189
  },
2148
2190
  add: {
2149
- 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'
2150
2197
  },
2151
2198
  pipe: {
2152
2199
  clearButtonTooltip: 'Arassala',
@@ -2200,10 +2247,13 @@ const tkTMLocaleData = {
2200
2247
  to: 'şuňa',
2201
2248
  apply: 'Ulanmak',
2202
2249
  cancel: 'Ýatyrmak',
2203
- rangeLabel: 'şu döwürde',
2250
+ rangeLabel: 'Döwür',
2204
2251
  allTime: 'hemme döwür üçin',
2205
2252
  currentQuarter: 'şu çärýek üçin',
2206
- currentYear: 'şu ýyl üçin'
2253
+ currentYear: 'şu ýyl üçin',
2254
+ allTimeOption: 'Hemme döwür',
2255
+ currentQuarterOption: 'Şu çärýek',
2256
+ currentYearOption: 'Şu ýyl'
2207
2257
  },
2208
2258
  durationTemplate: {
2209
2259
  title: {
@@ -2248,27 +2298,27 @@ const tkTMLocaleData = {
2248
2298
  other {# ýyl}
2249
2299
  }`,
2250
2300
  MONTHS: `{months, plural,
2251
- one {}
2301
+ one {}
2252
2302
  other {# aý}
2253
2303
  }`,
2254
2304
  WEEKS: `{weeks, plural,
2255
- one {hepde}
2305
+ one {Hepde}
2256
2306
  other {# hepde}
2257
2307
  }`,
2258
2308
  DAYS: `{days, plural,
2259
- one {gün}
2309
+ one {Gün}
2260
2310
  other {# gün}
2261
2311
  }`,
2262
2312
  HOURS: `{hours, plural,
2263
- one {sagat}
2313
+ one {Sagat}
2264
2314
  other {# sagat}
2265
2315
  }`,
2266
2316
  MINUTES: `{minutes, plural,
2267
- one {minut}
2317
+ one {Minut}
2268
2318
  other {# minut}
2269
2319
  }`,
2270
2320
  SECONDS: `{seconds, plural,
2271
- one {sekunt}
2321
+ one {Sekunt}
2272
2322
  other {# sekunt}
2273
2323
  }`,
2274
2324
  YEARS_FRACTION: `{years} ýyl`,
@@ -2283,7 +2333,8 @@ const tkTMLocaleData = {
2283
2333
  showPopUpNotifications: 'Açylýan bildirişleri görkeziň',
2284
2334
  noNotifications: 'Duýduryş ýok',
2285
2335
  failedToLoadNotifications: 'Duýduryşlary ýükläp bilmedi',
2286
- repeat: 'Gaýtalama'
2336
+ repeat: 'Gaýtalama',
2337
+ loadingMore: 'Duýduryşlar ýüklenýär'
2287
2338
  }
2288
2339
  };
2289
2340
 
@@ -2408,7 +2459,8 @@ const ruRUFormattersData = {
2408
2459
  groupSeparator: ',',
2409
2460
  thousand: 'К',
2410
2461
  million: 'М',
2411
- billion: 'М',
2462
+ // Latin `B` (U+0042) according to UX Guidelines.
2463
+ billion: 'B',
2412
2464
  trillion: 'Т'
2413
2465
  },
2414
2466
  decimal: {
@@ -3590,6 +3642,7 @@ class KbqRoundDecimalPipe {
3590
3642
  this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
3591
3643
  this.localeService?.changes.subscribe((newId) => (this.id = newId));
3592
3644
  }
3645
+ // @TODO: update returned type to string | null. Breaking change
3593
3646
  transform(value, locale) {
3594
3647
  if (isEmpty(value)) {
3595
3648
  return null;
@@ -4592,6 +4645,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4592
4645
  }]
4593
4646
  }] });
4594
4647
 
4648
+ /**
4649
+ * Canonical "select all / deselect all" toggle shared by the multi-select components (`Ctrl`/`Cmd` + `A`).
4650
+ *
4651
+ * Considers only selectable items and selects them all. When `allowDeselect` is `true` and every selectable
4652
+ * item is already selected, deselects them all instead; otherwise a repeated call is a no-op. No-op when
4653
+ * there are no selectable items.
4654
+ *
4655
+ * @returns the items whose selected state actually flipped, in input order.
4656
+ */
4657
+ function toggleSelectAll(adapter, options) {
4658
+ const selectable = adapter.items.filter((item) => adapter.isSelectable(item));
4659
+ if (selectable.length === 0) {
4660
+ return [];
4661
+ }
4662
+ const shouldSelect = !options?.allowDeselect || selectable.some((item) => !adapter.isSelected(item));
4663
+ const changed = selectable.filter((item) => adapter.isSelected(item) !== shouldSelect);
4664
+ selectable.forEach((item) => adapter.setSelected(item, shouldSelect));
4665
+ return changed;
4666
+ }
4667
+ /** Event emitted by the `onSelectAll` outputs when the select-all toggle runs. */
4668
+ class KbqSelectAllEvent {
4669
+ constructor(
4670
+ /** Component that emitted the event. */
4671
+ source,
4672
+ /** The selectable options affected by the toggle. */
4673
+ options,
4674
+ /** `true` when all options were selected, `false` when all were deselected. */
4675
+ selected) {
4676
+ this.source = source;
4677
+ this.options = options;
4678
+ this.selected = selected;
4679
+ }
4680
+ }
4681
+ /**
4682
+ * Whether `Ctrl`/`Cmd` + `A` should select the text of a search `<input>` rather than toggle options.
4683
+ *
4684
+ * Returns `true` only when the input has text that is not already fully selected (nothing selected,
4685
+ * a partial selection, or just a caret). Returns `false` for an empty input (so select-all falls
4686
+ * straight through to the options) and when the whole value is already selected (a second press
4687
+ * then acts on the options).
4688
+ */
4689
+ function shouldSelectSearchText(input) {
4690
+ if (!input) {
4691
+ return false;
4692
+ }
4693
+ const length = input.value.length;
4694
+ if (length === 0) {
4695
+ return false;
4696
+ }
4697
+ return !(input.selectionStart === 0 && input.selectionEnd === length);
4698
+ }
4699
+
4595
4700
  const KBQ_TITLE_TEXT_REF = new InjectionToken('KbqTitleTextRef');
4596
4701
 
4597
4702
  /**
@@ -4747,11 +4852,7 @@ class KbqOption extends KbqOptionBase {
4747
4852
  }
4748
4853
  /** @docs-private */
4749
4854
  getHeight() {
4750
- const element = this.elementRef.nativeElement;
4751
- // For SSR compatibility
4752
- if (typeof element.getClientRects !== 'function')
4753
- return 0;
4754
- return element.getClientRects()[0]?.height ?? 0;
4855
+ return this.elementRef.nativeElement.getClientRects()[0]?.height ?? 0;
4755
4856
  }
4756
4857
  select(emitEvent = true) {
4757
4858
  if (!this._selected) {
@@ -5335,6 +5436,193 @@ function objectValues(object) {
5335
5436
  return object === null ? [] : baseValues(object, Object.keys(object));
5336
5437
  }
5337
5438
 
5439
+ /**
5440
+ * Default minimum width of an overlay panel, in pixels.
5441
+ *
5442
+ * Kept in sync by hand with `--kbq-dropdown-size-container-width-min` in `dropdown-tokens.scss`,
5443
+ * which expresses the same default for the dropdown's CSS-driven sizing.
5444
+ */
5445
+ const KBQ_PANEL_DEFAULT_MIN_WIDTH = 200;
5446
+ /**
5447
+ * Measures the rendered width of a panel's trigger.
5448
+ *
5449
+ * Uses `getBoundingClientRect()` because `getComputedStyle().width` resolves to the used
5450
+ * content-box width regardless of `box-sizing`, so subtracting borders from it double-counts them.
5451
+ * @docs-private
5452
+ */
5453
+ function kbqGetPanelWidthOrigin(origin) {
5454
+ const element = origin instanceof CdkOverlayOrigin
5455
+ ? origin.elementRef.nativeElement
5456
+ : origin instanceof ElementRef
5457
+ ? origin.nativeElement
5458
+ : origin;
5459
+ return element.getBoundingClientRect().width;
5460
+ }
5461
+ /**
5462
+ * Resolves `panelWidth` and `panelMinWidth` into the `width` and `minWidth` of the overlay pane.
5463
+ *
5464
+ * `panelWidth` selects the sizing policy. The "never narrower than the trigger" rule belongs to the
5465
+ * automatic policies (`null` and `'auto'`); an explicit width is taken at face value.
5466
+ * @docs-private
5467
+ */
5468
+ function kbqResolvePanelWidth(panelWidth, panelMinWidth, triggerWidth) {
5469
+ // `numberAttribute` coerces `null` and other invalid bindings to `NaN`, so guard on finiteness
5470
+ // rather than on `null`, which never reaches us from a template binding.
5471
+ const min = Number.isFinite(panelMinWidth) ? Math.max(panelMinWidth, 0) : 0;
5472
+ const floor = Math.max(min, Number.isFinite(triggerWidth) ? triggerWidth : 0);
5473
+ // Trigger-sized. The floor is resolved here rather than emitted as `minWidth` because
5474
+ // `KbqAbstractSelect.setOverlayPosition()` clears `minWidth` on viewport overflow, after having
5475
+ // derived the panel offset from the pre-clear width.
5476
+ if (panelWidth === 'auto') {
5477
+ return { width: floor, minWidth: '' };
5478
+ }
5479
+ // Content-sized. Only `null`/`undefined`/`''` opt in — `0` is an explicit width. A non-finite
5480
+ // `panelWidth` (e.g. `NaN` from an upstream computation) is treated the same way rather than
5481
+ // reaching the DOM unguarded, mirroring how `panelMinWidth`/`triggerWidth` are handled above.
5482
+ if (panelWidth == null || panelWidth === '' || (typeof panelWidth === 'number' && !Number.isFinite(panelWidth))) {
5483
+ return { width: '', minWidth: floor };
5484
+ }
5485
+ // Explicit width. `panelMinWidth` is not applied.
5486
+ return { width: panelWidth, minWidth: '' };
5487
+ }
5488
+
5489
+ /**
5490
+ * Element used by {@link KbqShadowDomOverlayContainer} to locate the shadow root that should host overlays.
5491
+ *
5492
+ * When not provided, the container falls back to the application root component element.
5493
+ */
5494
+ const KBQ_SHADOW_DOM_OVERLAY_HOST = new InjectionToken('KBQ_SHADOW_DOM_OVERLAY_HOST');
5495
+ /** Marks the structural overlay stylesheet that {@link KbqShadowDomOverlayContainer} clones into a shadow root. */
5496
+ const overlayStructuralStylesAttribute = 'data-kbq-overlay-structural-styles';
5497
+ /**
5498
+ * `OverlayContainer` that places the `.cdk-overlay-container` inside a shadow root instead of `document.body`.
5499
+ *
5500
+ * The default CDK `OverlayContainer` always appends its container to `document.body`. When the application is
5501
+ * rendered inside a shadow root (e.g. a Module Federation micro-frontend), overlays — toasts, modals, dropdowns,
5502
+ * tooltips, etc. — escape the shadow tree into the light DOM. There they lose access to the styles and theme tokens
5503
+ * scoped to the shadow root (Koobiq theme tokens are defined on the `.kbq-light` / `.kbq-dark` ancestor), which
5504
+ * results in unstyled overlays.
5505
+ *
5506
+ * This container resolves the target shadow root from {@link KBQ_SHADOW_DOM_OVERLAY_HOST} (or the root component when
5507
+ * the token is absent) and relocates the overlay container into it. After relocating, it also clones CDK's own
5508
+ * structural overlay stylesheet (`position`/`z-index`/backdrop, `.cdk-overlay-container:empty`) into the shadow root,
5509
+ * since those `document.head` styles do not cross the shadow boundary. If no shadow root is found — the common case
5510
+ * for an app rendered directly in the light DOM — the container is left on `document.body`, so it is safe to provide
5511
+ * unconditionally.
5512
+ *
5513
+ * Only **open** shadow roots can be resolved: a closed shadow root exposes neither `Element.shadowRoot` nor a
5514
+ * `ShadowRoot` from `getRootNode()`, so pass an element that already lives inside the closed tree if you must use one.
5515
+ *
5516
+ * Note: this fixes the overlay container *placement* and delivers the CDK structural overlay styles. The host
5517
+ * application is still responsible for delivering the **Koobiq component/theme styles** (the `.kbq-light` / `.kbq-dark`
5518
+ * tokens and component CSS) into the shadow root, since global `document.head` stylesheets do not cascade across a
5519
+ * shadow boundary.
5520
+ *
5521
+ * @see kbqShadowDomOverlayProvider
5522
+ */
5523
+ class KbqShadowDomOverlayContainer extends OverlayContainer {
5524
+ constructor() {
5525
+ super(...arguments);
5526
+ this.host = inject(KBQ_SHADOW_DOM_OVERLAY_HOST, { optional: true });
5527
+ this.applicationRef = inject(ApplicationRef);
5528
+ }
5529
+ /** @internal CDK lifecycle hook — overridden to relocate the container into a shadow root. */
5530
+ _createContainer() {
5531
+ // Let CDK create the container (and run its test-environment cleanup). It is appended to `document.body`.
5532
+ super._createContainer();
5533
+ const shadowRoot = this.resolveShadowRoot();
5534
+ if (shadowRoot) {
5535
+ // Relocate the container into the shadow root and deliver the structural overlay styles alongside it.
5536
+ shadowRoot.appendChild(this._containerElement);
5537
+ this.deliverStructuralStyles(shadowRoot);
5538
+ }
5539
+ else if (this.host != null) {
5540
+ // An explicit host was provided but did not resolve to an open shadow root (wrong element, a closed
5541
+ // shadow root, or an element not yet inside a shadow tree). The container stays on `document.body`, so
5542
+ // overlays would render unstyled — warn instead of failing silently.
5543
+ // eslint-disable-next-line no-console
5544
+ console.warn('[KbqShadowDomOverlayContainer] The provided host did not resolve to an open shadow root; the ' +
5545
+ 'overlay container stays on document.body. Ensure the host element (or an element inside its ' +
5546
+ 'shadow tree) uses an open shadow root.');
5547
+ }
5548
+ }
5549
+ /**
5550
+ * Clones CDK's structural overlay stylesheet into the shadow root.
5551
+ *
5552
+ * CDK ships the overlay's structural CSS as a `ViewEncapsulation.None` component, so Angular injects it as a
5553
+ * `<style>` in `document.head` synchronously — `OverlayContainer.getContainerElement()` loads it before
5554
+ * `_createContainer()` runs. Those rules do not cross the shadow boundary, so a relocated container would
5555
+ * otherwise be unpositioned. Cloning the already-injected stylesheet keeps it version-matched to the installed
5556
+ * `@angular/cdk` and is idempotent.
5557
+ */
5558
+ deliverStructuralStyles(shadowRoot) {
5559
+ if (shadowRoot.querySelector(`style[${overlayStructuralStylesAttribute}]`)) {
5560
+ return;
5561
+ }
5562
+ const sourceStyle = Array.from(this._document.head.querySelectorAll('style')).find((style) => style.textContent?.includes('.cdk-overlay-pane'));
5563
+ if (sourceStyle) {
5564
+ const clone = sourceStyle.cloneNode(true);
5565
+ clone.setAttribute(overlayStructuralStylesAttribute, '');
5566
+ shadowRoot.appendChild(clone);
5567
+ }
5568
+ }
5569
+ resolveShadowRoot() {
5570
+ const element = this.resolveHostElement();
5571
+ if (!element) {
5572
+ return null;
5573
+ }
5574
+ // The host can be the shadow host itself (the common case — the MFE root element)...
5575
+ const ownShadowRoot = element.shadowRoot;
5576
+ if (ownShadowRoot) {
5577
+ return ownShadowRoot;
5578
+ }
5579
+ // ...or an element that already lives inside the shadow tree.
5580
+ const rootNode = element.getRootNode();
5581
+ return typeof ShadowRoot !== 'undefined' && rootNode instanceof ShadowRoot ? rootNode : null;
5582
+ }
5583
+ resolveHostElement() {
5584
+ if (this.host) {
5585
+ const resolved = typeof this.host === 'function' ? this.host() : this.host;
5586
+ if (resolved instanceof ElementRef) {
5587
+ return resolved.nativeElement;
5588
+ }
5589
+ return resolved ?? null;
5590
+ }
5591
+ // No explicit host provided — fall back to the application root component element.
5592
+ return this.applicationRef.components[0]?.location.nativeElement ?? null;
5593
+ }
5594
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqShadowDomOverlayContainer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
5595
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqShadowDomOverlayContainer }); }
5596
+ }
5597
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqShadowDomOverlayContainer, decorators: [{
5598
+ type: Injectable
5599
+ }] });
5600
+ /**
5601
+ * Providers that route all CDK overlays into a shadow root via {@link KbqShadowDomOverlayContainer}.
5602
+ *
5603
+ * Add it to the bootstrap providers of an application rendered inside a shadow root:
5604
+ *
5605
+ * ```ts
5606
+ * bootstrapApplication(AppComponent, {
5607
+ * providers: kbqShadowDomOverlayProvider(() => document.querySelector('my-mfe-root')!)
5608
+ * });
5609
+ * ```
5610
+ *
5611
+ * The provider replaces the global `OverlayContainer` token, so it cannot be combined with another custom
5612
+ * `OverlayContainer` (e.g. CDK's `FullscreenOverlayContainer`) — the last provider wins. Apps that need both must
5613
+ * subclass `KbqShadowDomOverlayContainer`.
5614
+ *
5615
+ * @param host element (or getter / `ElementRef`) inside the target shadow tree. When omitted, the application root
5616
+ * component element is used to resolve the shadow root.
5617
+ */
5618
+ const kbqShadowDomOverlayProvider = (host) => {
5619
+ const providers = [{ provide: OverlayContainer, useClass: KbqShadowDomOverlayContainer }];
5620
+ if (host !== undefined) {
5621
+ providers.push({ provide: KBQ_SHADOW_DOM_OVERLAY_HOST, useValue: host });
5622
+ }
5623
+ return providers;
5624
+ };
5625
+
5338
5626
  /**
5339
5627
  * InjectionToken for providing component with popup. Used in select and tree-select for tooltip.
5340
5628
  */
@@ -5380,6 +5668,21 @@ var PopUpSizes;
5380
5668
  * Tags Input, Timezone, TreeSelect).
5381
5669
  */
5382
5670
  const defaultOffsetY = 4;
5671
+ /**
5672
+ * Pane class applied to a connected overlay whose panel is positioned BELOW its trigger.
5673
+ *
5674
+ * Used instead of a physical `offsetY` gap: the pane sits flush with the trigger and the visual gap is
5675
+ * recreated as transparent `padding-top` inside the pane (see the `kbq-connected-overlay-gap` styles), so the
5676
+ * gap is covered by the pane (`pointer-events: auto`) and can no longer be clicked/hovered through.
5677
+ */
5678
+ const KBQ_CONNECTED_OVERLAY_BELOW_CLASS = 'kbq-connected-overlay_below';
5679
+ /**
5680
+ * Pane class applied to a connected overlay whose panel is positioned ABOVE its trigger (flipped).
5681
+ *
5682
+ * Mirror of {@link KBQ_CONNECTED_OVERLAY_BELOW_CLASS}: the visual gap is recreated as transparent
5683
+ * `padding-bottom` inside the pane so the flipped gap is not click/hover-through.
5684
+ */
5685
+ const KBQ_CONNECTED_OVERLAY_ABOVE_CLASS = 'kbq-connected-overlay_above';
5383
5686
  /**
5384
5687
  * Variable used for offsetY(X) calculations when applying Angular Overlay
5385
5688
  *
@@ -5601,42 +5904,91 @@ const getOffset = ({ originX, overlayX, originY, overlayY }, { width, height })
5601
5904
  }
5602
5905
  return offset;
5603
5906
  };
5907
+ /**
5908
+ * Abstract base directive for hover/focus/click-triggered pop-ups (e.g. tooltip and popover). It manages the
5909
+ * CDK overlay lifecycle, binds the trigger event listeners, resolves placement via a flexible connected position
5910
+ * strategy, and controls show/hide timing. Concrete subclasses supply the pop-up component type, its content,
5911
+ * and the overlay configuration.
5912
+ */
5604
5913
  class KbqPopUpTrigger {
5605
5914
  constructor() {
5606
- /** Stream that emits when the popupTrigger is hovered. */
5915
+ /** Stream that emits when the popupTrigger is hovered.
5916
+ * @docs-private */
5607
5917
  this.hovered = new BehaviorSubject(false);
5918
+ /** RxJS scheduler that drives the hide timeout; `undefined` falls back to the default async scheduler.
5919
+ * @docs-private */
5608
5920
  this.scheduler = inject(AsyncScheduler, { optional: true }) || undefined;
5921
+ /** CDK Overlay service used to create and position the pop-up overlay.
5922
+ * @docs-private */
5609
5923
  this.overlay = inject(Overlay);
5924
+ /** Reference to the host element the pop-up is anchored to.
5925
+ * @docs-private */
5610
5926
  this.elementRef = inject(ElementRef);
5927
+ /** Angular zone, used to run the hide timer outside Angular and re-enter when hiding.
5928
+ * @docs-private */
5611
5929
  this.ngZone = inject(NgZone);
5930
+ /** CDK ScrollDispatcher, used to track ancestor scroll containers so the pop-up repositions on scroll.
5931
+ * @docs-private */
5612
5932
  this.scrollDispatcher = inject(ScrollDispatcher);
5933
+ /** CDK ViewportRuler, used to re-apply the stick-to-window position on window resize.
5934
+ * @docs-private */
5935
+ this.viewportRuler = inject(ViewportRuler);
5936
+ /** View container the pop-up component portal is attached to.
5937
+ * @docs-private */
5613
5938
  this.hostView = inject(ViewContainerRef);
5939
+ /** Text direction (LTR/RTL) applied to the overlay when a `Directionality` is available.
5940
+ * @docs-private */
5614
5941
  this.direction = inject(Directionality, { optional: true });
5942
+ /** Destroy reference used to auto-unsubscribe streams when the directive is destroyed.
5943
+ * @docs-private */
5615
5944
  this.destroyRef = inject(DestroyRef);
5945
+ /** Nearest `CdkScrollable` ancestor, if any.
5946
+ * @docs-private */
5616
5947
  this.scrollable = inject(CdkScrollable, { optional: true });
5948
+ /** Change detector used to refresh the trigger when its open state changes. */
5617
5949
  this.popUpChangeDetectorRef = inject(ChangeDetectorRef);
5950
+ /** Backing field for `isOpen`. */
5618
5951
  this._isOpen = false;
5952
+ /** Delay in milliseconds before the pop-up is shown.
5953
+ * @docs-private */
5619
5954
  this.enterDelay = 0;
5955
+ /** Delay in milliseconds before the pop-up is hidden.
5956
+ * @docs-private */
5620
5957
  this.leaveDelay = 0;
5958
+ /** Current resolved placement of the pop-up.
5959
+ * @docs-private */
5621
5960
  this.placement = PopUpPlacements.Top;
5961
+ /** Ordered list of fallback placements to try before the default priority.
5962
+ * @docs-private */
5622
5963
  this.placementPriority = null;
5964
+ /** Whether the pop-up is currently visible.
5965
+ * @docs-private */
5623
5966
  this.visible = false;
5967
+ /** Map of event name to the handler currently bound on the host element.
5968
+ * @docs-private */
5624
5969
  this.listeners = new Map();
5970
+ /** Map of placement name to its CDK connected position pair.
5971
+ * @docs-private */
5625
5972
  this.availablePositions = POSITION_MAP;
5626
- /** Hide pop-up with timeout. Need if you want to show pop-up after leaving trigger */
5973
+ /** Hide pop-up with timeout. Need if you want to show pop-up after leaving trigger
5974
+ * @docs-private */
5627
5975
  this.hideWithTimeout = false;
5628
- /** prevents closure by any event */
5976
+ /** prevents closure by any event
5977
+ * @docs-private */
5629
5978
  this.preventClose = false;
5979
+ /** Detaches the overlay (if attached) and clears the current pop-up instance.
5980
+ * @docs-private */
5630
5981
  this.detach = () => {
5631
5982
  if (this.overlayRef?.hasAttached()) {
5632
5983
  this.overlayRef.detach();
5633
5984
  }
5634
5985
  this.instance = null;
5635
5986
  };
5987
+ /** Maps the CDK connection position back to a placement name, emits `placementChange`, and updates classes.
5988
+ * @docs-private */
5636
5989
  this.onPositionChange = ($event) => {
5637
- if (!this.instance) {
5990
+ if (!this.instance)
5638
5991
  return;
5639
- }
5640
5992
  let newPlacement = this.placement;
5641
5993
  const { originX, originY, overlayX, overlayY } = $event.connectionPair;
5642
5994
  Object.keys(this.availablePositions).some((key) => {
@@ -5653,13 +6005,16 @@ class KbqPopUpTrigger {
5653
6005
  this.updateClassMap(newPlacement);
5654
6006
  this.instance.detectChanges();
5655
6007
  };
6008
+ /** Binds a single event listener to the pop-up's native element. */
5656
6009
  this.addEventListener = (listener, event) => {
5657
6010
  this.getNativeElement().addEventListener(event, listener);
5658
6011
  };
6012
+ /** Unbinds a single event listener from the pop-up's native element. */
5659
6013
  this.removeEventListener = (listener, event) => {
5660
6014
  this.getNativeElement().removeEventListener(event, listener);
5661
6015
  };
5662
6016
  }
6017
+ /** Whether the pop-up overlay is currently open. */
5663
6018
  get isOpen() {
5664
6019
  return this._isOpen;
5665
6020
  }
@@ -5667,14 +6022,18 @@ class KbqPopUpTrigger {
5667
6022
  this._isOpen = value;
5668
6023
  this.popUpChangeDetectorRef.markForCheck();
5669
6024
  }
6025
+ /** Binds the DOM event listeners for the configured triggers. */
5670
6026
  ngOnInit() {
5671
6027
  this.initListeners();
5672
6028
  }
6029
+ /** Disposes the overlay and removes all bound event listeners. */
5673
6030
  ngOnDestroy() {
5674
6031
  this.overlayRef?.dispose();
5675
6032
  this.listeners.forEach(this.removeEventListener);
5676
6033
  this.listeners.clear();
5677
6034
  }
6035
+ /** Sets the placement (falling back to `Top` on an unknown value) and refreshes the classes and position.
6036
+ * @docs-private */
5678
6037
  updatePlacement(value) {
5679
6038
  if (POSITION_TO_CSS_MAP[value]) {
5680
6039
  this.placement = value;
@@ -5689,6 +6048,8 @@ class KbqPopUpTrigger {
5689
6048
  this.updatePosition();
5690
6049
  }
5691
6050
  }
6051
+ /** Sets the ordered list of fallback placements, or clears it when the value is empty.
6052
+ * @docs-private */
5692
6053
  updatePlacementPriority(value) {
5693
6054
  if (value && value.length > 0) {
5694
6055
  this.placementPriority = value;
@@ -5697,6 +6058,8 @@ class KbqPopUpTrigger {
5697
6058
  this.placementPriority = null;
5698
6059
  }
5699
6060
  }
6061
+ /** Coerces and applies an external visibility value by showing or hiding the pop-up when it changes.
6062
+ * @docs-private */
5700
6063
  updateVisible(externalValue) {
5701
6064
  const value = coerceBooleanProperty(externalValue);
5702
6065
  if (this.visible !== value) {
@@ -5709,14 +6072,20 @@ class KbqPopUpTrigger {
5709
6072
  }
5710
6073
  }
5711
6074
  }
6075
+ /** Closes the pop-up when `Escape` is pressed while it is open. Bound to the host `keydown` event.
6076
+ * @docs-private */
5712
6077
  keydownHandler(event) {
5713
6078
  if (this.isOpen && event.keyCode === ESCAPE) {
5714
6079
  this.hide();
5715
6080
  }
5716
6081
  }
6082
+ /** Hides the pop-up. Bound to the host `touchend` event.
6083
+ * @docs-private */
5717
6084
  touchendHandler() {
5718
6085
  this.hide();
5719
6086
  }
6087
+ /** Creates the overlay (if needed) and shows the pop-up after `delay` ms, wiring its visibility stream.
6088
+ * @docs-private */
5720
6089
  show(delay = this.enterDelay) {
5721
6090
  if (this.disabled || this.instance) {
5722
6091
  return;
@@ -5739,6 +6108,14 @@ class KbqPopUpTrigger {
5739
6108
  });
5740
6109
  this.updatePosition();
5741
6110
  this.instance.show(delay);
6111
+ // The position strategy re-applies the overlay position on window resize (its ViewportRuler
6112
+ // subscription is created inside OverlayRef.attach(), i.e. before this one), wiping the manual
6113
+ // styles written by setStickPosition. Re-apply them after the strategy has run.
6114
+ // No-op when stickToWindow is not set.
6115
+ this.viewportRuler
6116
+ .change()
6117
+ .pipe(takeUntilDestroyed(this.instance.destroyRef))
6118
+ .subscribe(() => this.instance?.setStickPosition());
5742
6119
  if (this.hideWithTimeout && this.trigger.includes(PopUpTriggers.Hover)) {
5743
6120
  this.ngZone.runOutsideAngular(() => {
5744
6121
  interval(this.leaveDelay, this.scheduler)
@@ -5747,6 +6124,8 @@ class KbqPopUpTrigger {
5747
6124
  });
5748
6125
  }
5749
6126
  }
6127
+ /** Hides the pop-up after `delay` ms, honoring `preventClose` and the hover state on mouseleave.
6128
+ * @docs-private */
5750
6129
  hide(delay = this.leaveDelay) {
5751
6130
  if (this.preventClose)
5752
6131
  return;
@@ -5755,7 +6134,8 @@ class KbqPopUpTrigger {
5755
6134
  this.ngZone.run(() => this.instance?.hide(delay));
5756
6135
  }
5757
6136
  }
5758
- /** Create the overlay config and position strategy */
6137
+ /** Create the overlay config and position strategy
6138
+ * @docs-private */
5759
6139
  createOverlay() {
5760
6140
  if (this.overlayRef) {
5761
6141
  return this.overlayRef;
@@ -5780,9 +6160,13 @@ class KbqPopUpTrigger {
5780
6160
  this.overlayRef.detachments().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);
5781
6161
  return this.overlayRef;
5782
6162
  }
6163
+ /** Resets the overlay position origin back to the host element.
6164
+ * @docs-private */
5783
6165
  resetOrigin() {
5784
6166
  this.strategy.setOrigin(this.getNativeElement());
5785
6167
  }
6168
+ /** Rebinds the host DOM listeners (click/hover/focus/keydown) according to the configured triggers.
6169
+ * @docs-private */
5786
6170
  initListeners() {
5787
6171
  this.clearListeners();
5788
6172
  if (this.trigger.includes(PopUpTriggers.Click)) {
@@ -5807,13 +6191,16 @@ class KbqPopUpTrigger {
5807
6191
  }
5808
6192
  this.listeners.forEach(this.addEventListener);
5809
6193
  }
6194
+ /** Returns the `mouseleave` handler — a delayed hide when `hideWithTimeout` is set, otherwise an immediate hide.
6195
+ * @docs-private */
5810
6196
  getMouseLeaveListener() {
5811
6197
  if (this.hideWithTimeout) {
5812
6198
  return () => setTimeout(() => this.hide(), this.leaveDelay);
5813
6199
  }
5814
6200
  return this.hide;
5815
6201
  }
5816
- /** Updates the position of the current popover. */
6202
+ /** Updates the position of the current popover.
6203
+ * @docs-private */
5817
6204
  updatePosition(reapplyPosition = false) {
5818
6205
  this.overlayRef = this.createOverlay();
5819
6206
  this.subscribeOnClosingActions();
@@ -5824,21 +6211,24 @@ class KbqPopUpTrigger {
5824
6211
  setTimeout(() => position.reapplyLastPosition());
5825
6212
  }
5826
6213
  }
6214
+ /** Moves browser focus to the pop-up's native element.
6215
+ * @docs-private */
5827
6216
  focus() {
5828
6217
  this.getNativeElement().focus();
5829
6218
  }
5830
- /** @docs-private */
6219
+ /** Returns the element the pop-up is bound to: the external element when set, otherwise the host element.
6220
+ * @docs-private */
5831
6221
  getNativeElement() {
5832
6222
  return this.externalNativeElement || this.elementRef.nativeElement;
5833
6223
  }
5834
- /** @docs-private */
6224
+ /** Sets an external element to anchor and measure the pop-up against instead of the host element.
6225
+ * @docs-private */
5835
6226
  setExternalNativeElement(value) {
5836
6227
  this.externalNativeElement = value;
5837
6228
  }
5838
6229
  /**
5839
6230
  * Returns a list of positions that are aligned with the element's dimensions and offsets.
5840
- * @protected
5841
- */
6231
+ * @docs-private */
5842
6232
  getAdjustedPositions() {
5843
6233
  const res = [];
5844
6234
  for (const pos of this.getPrioritizedPositions()) {
@@ -5852,6 +6242,8 @@ class KbqPopUpTrigger {
5852
6242
  }
5853
6243
  return res;
5854
6244
  }
6245
+ /** Maps a priority placement value (or array of values) to the matching connected position pairs.
6246
+ * @docs-private */
5855
6247
  getPriorityPlacementStrategy(value) {
5856
6248
  const result = [];
5857
6249
  const possiblePositions = Object.keys(this.availablePositions);
@@ -5867,16 +6259,21 @@ class KbqPopUpTrigger {
5867
6259
  }
5868
6260
  return result;
5869
6261
  }
6262
+ /** Returns the positions to try: the custom `placementPriority` when set, otherwise the default strategy.
6263
+ * @docs-private */
5870
6264
  getPrioritizedPositions() {
5871
6265
  if (this.placementPriority) {
5872
6266
  return this.getPriorityPlacementStrategy(this.placementPriority);
5873
6267
  }
5874
6268
  return POSITION_PRIORITY_STRATEGY[this.placement];
5875
6269
  }
6270
+ /** Removes all bound host event listeners and clears the listener map.
6271
+ * @docs-private */
5876
6272
  clearListeners() {
5877
6273
  this.listeners.forEach(this.removeEventListener);
5878
6274
  this.listeners.clear();
5879
6275
  }
6276
+ /** Wraps a trigger handler so it records the active trigger name and mouse event before running. */
5880
6277
  createListener(name, listener) {
5881
6278
  return [
5882
6279
  name,
@@ -5887,11 +6284,13 @@ class KbqPopUpTrigger {
5887
6284
  }
5888
6285
  ];
5889
6286
  }
6287
+ /** Remembers the last mouse event on `mouseenter`, used for cursor-relative positioning. */
5890
6288
  saveMouseEvent(event) {
5891
6289
  if (this.triggerName === 'mouseenter') {
5892
6290
  this.mouseEvent = event;
5893
6291
  }
5894
6292
  }
6293
+ /** (Re)subscribes to the closing-action streams and hides the pop-up, ignoring prevented click events. */
5895
6294
  subscribeOnClosingActions() {
5896
6295
  this.closingActionsSubscription?.unsubscribe();
5897
6296
  this.closingActionsSubscription = this.closingActions()
@@ -6066,6 +6465,33 @@ class KbqAbstractSelect {
6066
6465
  constructor() {
6067
6466
  /** Overlay panel class. */
6068
6467
  this.overlayPanelClass = 'kbq-select-overlay';
6468
+ /** Width of the overlay panel. */
6469
+ this.overlayWidth = '';
6470
+ /** Minimum width of the overlay panel. */
6471
+ this.overlayMinWidth = '';
6472
+ }
6473
+ /**
6474
+ * Resolves the overlay panel size for the current trigger geometry and stores it for the
6475
+ * `cdkConnectedOverlay` width bindings.
6476
+ */
6477
+ updateOverlayWidth(panelWidth, panelMinWidth, origin) {
6478
+ const { width, minWidth } = kbqResolvePanelWidth(panelWidth, panelMinWidth, kbqGetPanelWidthOrigin(origin));
6479
+ this.overlayWidth = width;
6480
+ this.overlayMinWidth = minWidth;
6481
+ }
6482
+ /**
6483
+ * Freezes the panel at its rendered width so that filtering the options does not reflow it.
6484
+ * Does nothing when the width is already pinned.
6485
+ */
6486
+ lockOverlayWidthForSearch(panel) {
6487
+ // Compare against the unset sentinel rather than a truthy check — `overlayWidth` can
6488
+ // legitimately resolve to `0` for an explicit zero-width panel, which is falsy but pinned.
6489
+ if (this.overlayWidth !== '')
6490
+ return;
6491
+ const measuredPanelWidth = panel?.nativeElement.getBoundingClientRect().width;
6492
+ if (measuredPanelWidth) {
6493
+ this.overlayWidth = measuredPanelWidth;
6494
+ }
6069
6495
  }
6070
6496
  setOverlayPosition() {
6071
6497
  if (!this.overlayDir.overlayRef)
@@ -6166,6 +6592,7 @@ class KbqMeasureScrollbarService {
6166
6592
  }
6167
6593
  constructor() {
6168
6594
  this.document = inject(DOCUMENT);
6595
+ this.platform = inject(Platform);
6169
6596
  this.scrollbarMeasure = {
6170
6597
  position: 'absolute',
6171
6598
  top: '-9999px',
@@ -6176,6 +6603,10 @@ class KbqMeasureScrollbarService {
6176
6603
  this.initScrollBarWidth();
6177
6604
  }
6178
6605
  initScrollBarWidth() {
6606
+ if (!this.platform.isBrowser) {
6607
+ this._scrollBarWidth = 0;
6608
+ return;
6609
+ }
6179
6610
  const scrollDiv = this.document.createElement('div');
6180
6611
  for (const scrollProp in this.scrollbarMeasure) {
6181
6612
  if (this.scrollbarMeasure.hasOwnProperty(scrollProp)) {
@@ -6407,11 +6838,11 @@ const validationTooltipShowDelay = 10;
6407
6838
  */
6408
6839
  const validationTooltipHideDelay = 3000;
6409
6840
 
6410
- const VERSION = new Version('20.0.0+sha-17501d3');
6841
+ const VERSION = new Version('20.2.0+sha-ee9fb3c');
6411
6842
 
6412
6843
  /**
6413
6844
  * Generated bundle index. Do not edit.
6414
6845
  */
6415
6846
 
6416
- 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_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, KbqSelectFooter, KbqSelectMatcher, KbqSelectSearch, KbqSelectSearchEmptyResult, KbqSelectTrigger, 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, leftIconClassName, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, normalizeNumber, numberByParts, patchElementFocus, ptBRFormattersData, ptBRLocaleData, rightIconClassName, ruRUFormattersData, ruRULocaleData, selectEvents, tkTMFormattersData, tkTMLocaleData, typeInElement, validationTooltipHideDelay, validationTooltipShowDelay, wrappedErrorMessage };
6847
+ 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_CONNECTED_OVERLAY_ABOVE_CLASS, KBQ_CONNECTED_OVERLAY_BELOW_CLASS, 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_PANEL_DEFAULT_MIN_WIDTH, 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, kbqGetPanelWidthOrigin, kbqHighlightBackgroundMark, kbqHighlightMark, kbqInjectNativeElement, kbqLocaleServiceLangAttrNameProvider, kbqResolvePanelWidth, 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 };
6417
6848
  //# sourceMappingURL=koobiq-components-core.mjs.map