@koobiq/components 20.2.0 → 20.3.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 (212) hide show
  1. package/accordion/_accordion-theme.scss +5 -1
  2. package/accordion/accordion-tokens.scss +2 -0
  3. package/accordion/accordion-trigger.scss +6 -0
  4. package/accordion/accordion.scss +21 -0
  5. package/accordion/index.d.ts +55 -8
  6. package/actions-panel/index.d.ts +25 -13
  7. package/app-switcher/app-switcher-dropdown-app.scss +7 -5
  8. package/app-switcher/app-switcher-dropdown-site.scss +6 -4
  9. package/app-switcher/index.d.ts +41 -4
  10. package/app-switcher/kbq-app-switcher-list-item.scss +6 -8
  11. package/autocomplete/index.d.ts +24 -9
  12. package/breadcrumbs/index.d.ts +1 -1
  13. package/button/index.d.ts +2 -2
  14. package/button-toggle/button-toggle-tokens.scss +2 -0
  15. package/button-toggle/button-toggle.scss +9 -0
  16. package/button-toggle/index.d.ts +5 -0
  17. package/checkbox/index.d.ts +33 -29
  18. package/clamped-text/index.d.ts +1 -1
  19. package/code-block/index.d.ts +24 -19
  20. package/content-panel/index.d.ts +1 -1
  21. package/core/index.d.ts +1125 -199
  22. package/core/option/_action-container-mixins.scss +28 -0
  23. package/core/option/_option-theme.scss +24 -0
  24. package/core/option/action.scss +7 -0
  25. package/core/styles/_koobiq-theme.scss +2 -0
  26. package/core/styles/_tokens.scss +1 -0
  27. package/core/styles/common/_connected-overlay.scss +6 -3
  28. package/core/styles/common/_select.scss +12 -0
  29. package/core/styles/common/_tokens.scss +0 -9
  30. package/core/styles/theming/_index.scss +0 -1
  31. package/core/styles/theming/_theming.scss +34 -5
  32. package/datepicker/index.d.ts +46 -15
  33. package/dl/dl.scss +26 -0
  34. package/dl/index.d.ts +8 -1
  35. package/dropdown/_dropdown-theme.scss +28 -2
  36. package/dropdown/dropdown-item.scss +13 -0
  37. package/dropdown/dropdown.scss +7 -1
  38. package/dropdown/index.d.ts +264 -17
  39. package/dynamic-translation/index.d.ts +1 -1
  40. package/fesm2022/koobiq-components-accordion.mjs +106 -46
  41. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  42. package/fesm2022/koobiq-components-actions-panel.mjs +57 -46
  43. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  44. package/fesm2022/koobiq-components-alert.mjs +16 -16
  45. package/fesm2022/koobiq-components-app-switcher.mjs +233 -38
  46. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-autocomplete.mjs +54 -31
  48. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-badge.mjs +13 -13
  50. package/fesm2022/koobiq-components-breadcrumbs.mjs +25 -25
  51. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  52. package/fesm2022/koobiq-components-button-toggle.mjs +17 -12
  53. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  54. package/fesm2022/koobiq-components-button.mjs +25 -25
  55. package/fesm2022/koobiq-components-checkbox.mjs +69 -92
  56. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  57. package/fesm2022/koobiq-components-clamped-text.mjs +13 -13
  58. package/fesm2022/koobiq-components-code-block.mjs +56 -69
  59. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  60. package/fesm2022/koobiq-components-content-panel.mjs +29 -29
  61. package/fesm2022/koobiq-components-core.mjs +2445 -789
  62. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  63. package/fesm2022/koobiq-components-datepicker.mjs +160 -121
  64. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  65. package/fesm2022/koobiq-components-divider.mjs +7 -7
  66. package/fesm2022/koobiq-components-dl.mjs +23 -15
  67. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  68. package/fesm2022/koobiq-components-dropdown.mjs +754 -155
  69. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
  71. package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -7
  72. package/fesm2022/koobiq-components-empty-state.mjs +19 -19
  73. package/fesm2022/koobiq-components-file-upload.mjs +74 -42
  74. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  75. package/fesm2022/koobiq-components-filter-bar.mjs +605 -192
  76. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  77. package/fesm2022/koobiq-components-flag.mjs +7 -7
  78. package/fesm2022/koobiq-components-form-field.mjs +346 -158
  79. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-icon.mjs +39 -21
  81. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-inline-edit.mjs +172 -27
  83. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-input.mjs +41 -24
  85. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-link.mjs +8 -8
  87. package/fesm2022/koobiq-components-list.mjs +657 -143
  88. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  89. package/fesm2022/koobiq-components-loader-overlay.mjs +16 -16
  90. package/fesm2022/koobiq-components-markdown.mjs +14 -11
  91. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-modal.mjs +59 -35
  93. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-navbar.mjs +69 -54
  95. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-notification-center.mjs +23 -22
  97. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-overflow-items.mjs +16 -17
  99. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-popover.mjs +26 -21
  101. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
  103. package/fesm2022/koobiq-components-progress-spinner.mjs +13 -13
  104. package/fesm2022/koobiq-components-radio.mjs +10 -10
  105. package/fesm2022/koobiq-components-resizer.mjs +33 -14
  106. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-scrollbar.mjs +10 -10
  108. package/fesm2022/koobiq-components-search-expandable.mjs +7 -7
  109. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-select.mjs +419 -106
  111. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-sidebar.mjs +14 -14
  113. package/fesm2022/koobiq-components-sidepanel.mjs +26 -26
  114. package/fesm2022/koobiq-components-skeleton.mjs +10 -10
  115. package/fesm2022/koobiq-components-split-button.mjs +7 -7
  116. package/fesm2022/koobiq-components-splitter.mjs +17 -17
  117. package/fesm2022/koobiq-components-table.mjs +15 -13
  118. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-tabs.mjs +54 -54
  120. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-tags.mjs +283 -122
  122. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-textarea.mjs +13 -8
  124. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-time-range.mjs +29 -24
  126. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  127. package/fesm2022/koobiq-components-timepicker.mjs +58 -26
  128. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-timezone.mjs +76 -39
  130. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-title.mjs +7 -7
  132. package/fesm2022/koobiq-components-toast.mjs +51 -26
  133. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-toggle.mjs +72 -64
  135. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-tooltip.mjs +115 -36
  137. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-top-bar.mjs +13 -13
  139. package/fesm2022/koobiq-components-tree-select.mjs +189 -55
  140. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  141. package/fesm2022/koobiq-components-tree.mjs +302 -81
  142. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  143. package/fesm2022/koobiq-components-username.mjs +27 -27
  144. package/file-upload/index.d.ts +25 -6
  145. package/file-upload/multiple-file-upload.component.scss +14 -0
  146. package/filter-bar/_filter-bar-theme.scss +0 -6
  147. package/filter-bar/index.d.ts +222 -9
  148. package/filter-bar/pipes/pipe-multi-tree-select.scss +0 -6
  149. package/filter-bar/pipes/pipe-multiselect.scss +0 -6
  150. package/filter-bar/pipes/pipe-tree-select.scss +0 -6
  151. package/form-field/_form-field-theme.scss +76 -20
  152. package/form-field/fieldset.scss +10 -0
  153. package/form-field/form-field-tokens.scss +15 -1
  154. package/form-field/form-field.scss +15 -19
  155. package/form-field/index.d.ts +147 -65
  156. package/icon/index.d.ts +31 -6
  157. package/inline-edit/index.d.ts +57 -4
  158. package/inline-edit/inline-edit.scss +10 -0
  159. package/input/index.d.ts +17 -2
  160. package/list/_list-theme.scss +42 -10
  161. package/list/index.d.ts +326 -79
  162. package/list/list-tokens.scss +43 -8
  163. package/list/list.scss +186 -12
  164. package/markdown/index.d.ts +1 -1
  165. package/modal/index.d.ts +21 -4
  166. package/modal/modal-tokens.scss +1 -1
  167. package/navbar/index.d.ts +16 -1
  168. package/navbar/navbar-brand.scss +6 -0
  169. package/navbar/vertical-navbar.scss +6 -0
  170. package/notification-center/notification-item.scss +6 -0
  171. package/package.json +3 -6
  172. package/popover/index.d.ts +2 -2
  173. package/prebuilt-themes/dark-theme.css +1 -1
  174. package/prebuilt-themes/light-theme.css +1 -1
  175. package/prebuilt-themes/theme.css +1 -1
  176. package/resizer/index.d.ts +12 -0
  177. package/schematics/migrations/deprecated-icons/README.md +29 -4
  178. package/schematics/migrations/deprecated-icons/data.js +7 -0
  179. package/schematics/migrations/deprecated-icons/index.js +62 -35
  180. package/schematics/migrations/new-icons-pack/README.md +37 -2
  181. package/schematics/migrations/new-icons-pack/data.js +8 -0
  182. package/schematics/migrations/new-icons-pack/index.js +144 -53
  183. package/schematics/ng-add/index.js +3 -3
  184. package/schematics/utils/angular-parsing.js +30 -12
  185. package/schematics/utils/ast.js +31 -0
  186. package/schematics/utils/icon-migration.js +530 -0
  187. package/schematics/utils/typescript.js +44 -0
  188. package/scrollbar/index.d.ts +1 -1
  189. package/select/index.d.ts +163 -18
  190. package/select/select-tokens.scss +0 -1
  191. package/select/select.scss +0 -2
  192. package/splitter/index.d.ts +1 -1
  193. package/table/_table-theme.scss +4 -0
  194. package/table/index.d.ts +2 -1
  195. package/table/table.scss +8 -0
  196. package/tags/index.d.ts +128 -29
  197. package/textarea/index.d.ts +5 -0
  198. package/time-range/index.d.ts +1 -1
  199. package/timepicker/index.d.ts +4 -0
  200. package/timezone/index.d.ts +9 -5
  201. package/toast/index.d.ts +26 -3
  202. package/toggle/index.d.ts +34 -14
  203. package/tooltip/index.d.ts +54 -11
  204. package/tree/_tree-theme.scss +25 -5
  205. package/tree/index.d.ts +71 -3
  206. package/tree/tree-option.scss +2 -8
  207. package/tree-select/_tree-select-theme.scss +22 -0
  208. package/tree-select/index.d.ts +83 -16
  209. package/core/styles/_tokens.kbq.import.scss +0 -4
  210. package/core/styles/theming/_components-theming.scss +0 -1927
  211. package/filter-bar/pipes/pipe-select.scss +0 -5
  212. package/overflow-items/overflow-items.scss +0 -20
package/core/index.d.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
- import { QueryList, ElementRef, Type, Provider, InjectionToken, ModelSignal, PipeTransform, AfterContentInit, EventEmitter, AfterViewInit, OnDestroy, AfterViewChecked, OnInit, NgZone, ViewContainerRef, DestroyRef, TemplateRef, Renderer2, ChangeDetectorRef, RendererFactory2, Version } from '@angular/core';
2
+ import { QueryList, Signal, InjectionToken, Provider, ElementRef, Type, ModelSignal, PipeTransform, AfterContentInit, EventEmitter, AfterViewInit, OnDestroy, AfterViewChecked, OnInit, NgZone, ViewContainerRef, DestroyRef, TemplateRef, Renderer2, ChangeDetectorRef, RendererFactory2, Version } from '@angular/core';
3
3
  import { Subject, BehaviorSubject, Observable, Subscription } from 'rxjs';
4
4
  import { FocusOrigin, FocusTrapInertStrategy } from '@angular/cdk/a11y';
5
5
  import { AnimationTriggerMetadata, AnimationEvent } from '@angular/animations';
6
- import { DateAdapter as DateAdapter$1, DateFormats } from '@koobiq/date-adapter';
7
- import { AbstractControl, FormGroupDirective, NgForm, NgControl, ValidatorFn } from '@angular/forms';
6
+ import { DateAdapter as DateAdapter$1, DateFormats, DurationUnit } from '@koobiq/date-adapter';
7
+ import { ControlValueAccessor, AbstractControl, FormGroupDirective, NgForm, NgControl, ValidatorFn } from '@angular/forms';
8
8
  import { FormatterDurationTemplate, DateFormatter as DateFormatter$1, DateTimeOptions } from '@koobiq/date-formatter';
9
- import { ConnectionPositionPair, Overlay, ScrollStrategy, CdkOverlayOrigin, OverlayContainer, ScrollDispatcher, CdkScrollable, OverlayRef, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, CdkConnectedOverlay, RepositionScrollStrategy } from '@angular/cdk/overlay';
9
+ import { ScrollStrategy, ScrollDispatcher, OverlayRef, ConnectionPositionPair, Overlay, CdkOverlayOrigin, OverlayContainer, CdkScrollable, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, CdkConnectedOverlay, ConnectedPosition, RepositionScrollStrategy } from '@angular/cdk/overlay';
10
+ import { ViewportRuler } from '@angular/cdk/scrolling';
10
11
  import { Directionality } from '@angular/cdk/bidi';
11
12
  import { ComponentPortal } from '@angular/cdk/portal';
12
- import { ViewportRuler } from '@angular/cdk/scrolling';
13
13
  import { AsyncScheduler } from 'rxjs/internal/scheduler/AsyncScheduler';
14
14
 
15
15
  interface ListKeyManagerOption {
@@ -235,12 +235,116 @@ declare const kbqSelectAnimations: {
235
235
  readonly fadeInContent: AnimationTriggerMetadata;
236
236
  };
237
237
 
238
+ /**
239
+ * Tracks whether the current control's value was filled in by the browser, as a signal.
240
+ *
241
+ * Call it from an injection context on a directive whose host is the element the browser actually
242
+ * fills — a text `<input>` or a `<textarea>`. Every `KbqFormFieldControl` that can be autofilled
243
+ * exposes the result as its `autofilled` member.
244
+ *
245
+ * This is a hook for application code, not the mechanism behind the autofill styling. The styling
246
+ * keys on `:autofill` in CSS, which matches in the same style pass the browser fills the field;
247
+ * detection here goes through a zero-length keyframe animation and an `animationstart` listener, so
248
+ * it lands a frame or two later — too late to paint with, and early enough for anything a component
249
+ * wants to do about it.
250
+ *
251
+ * `monitor()` returns EMPTY off the browser platform, so this needs no `Platform` guard.
252
+ */
253
+ declare const kbqInjectAutofilled: () => Signal<boolean>;
254
+
238
255
  /**
239
256
  * Tri-state checkbox values
240
257
  * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-checked
241
258
  */
242
259
  type KbqCheckedState = 'true' | 'false' | 'mixed';
243
260
 
261
+ /**
262
+ * Provider Expression that allows `KbqCheckable` to register as a `ControlValueAccessor`, so any host
263
+ * applying it via `hostDirectives` gets `[(ngModel)]`/`formControl` support without wiring up its own.
264
+ * @docs-private
265
+ */
266
+ declare const KBQ_CHECKABLE_CONTROL_VALUE_ACCESSOR: Provider;
267
+ /**
268
+ * Click action shared by checkable controls (checkbox, toggle, and custom checkbox-like primitives).
269
+ * noop: Do not toggle checked or indeterminate.
270
+ * check: Only toggle checked status, ignore indeterminate.
271
+ * check-indeterminate: Toggle checked status, set indeterminate to false. Default behavior.
272
+ * undefined: Same as `check-indeterminate`.
273
+ */
274
+ type KbqCheckableClickAction = 'noop' | 'check' | 'check-indeterminate' | undefined;
275
+ /** Injection token that can be used to specify the default click behavior for checkable controls. */
276
+ declare const KBQ_CHECKABLE_CLICK_ACTION: InjectionToken<KbqCheckableClickAction>;
277
+ /**
278
+ * Represents the different states that require custom transitions between them.
279
+ * @docs-private
280
+ */
281
+ declare enum TransitionCheckState {
282
+ /** The initial state of the component before any user interaction. */
283
+ Init = "init",
284
+ /** The state representing the component when it's becoming checked. */
285
+ Checked = "checked",
286
+ /** The state representing the component when it's becoming unchecked. */
287
+ Unchecked = "unchecked",
288
+ /** The state representing the component when it's becoming indeterminate. */
289
+ Indeterminate = "indeterminate"
290
+ }
291
+ /** Result of resolving a click on a checkable control's native input. See {@link KbqCheckable.resolveClick}. */
292
+ interface KbqCheckableClickResult {
293
+ /** Whether `checked` should be toggled and a `change` event emitted. */
294
+ readonly shouldToggle: boolean;
295
+ /** Whether `indeterminate` should be cleared and an `indeterminateChange` event emitted. */
296
+ readonly shouldClearIndeterminate: boolean;
297
+ }
298
+ /**
299
+ * Shared behavior for checkbox-like controls: checked/disabled/indeterminate/tabIndex state, the click-to-toggle
300
+ * algorithm, ARIA-checked computation, and `ControlValueAccessor` change plumbing.
301
+ *
302
+ * Meant to be applied via `hostDirectives` by components that render their own native `<input type="checkbox">`
303
+ * and markup (e.g. `KbqCheckbox`, `KbqToggleComponent`, or custom checkbox-like primitives). Hosts stay
304
+ * responsible for their own public inputs/outputs, `FocusMonitor` wiring, and emitting their own typed
305
+ * `change` event - this directive only centralizes the state and decisions behind them.
306
+ */
307
+ declare class KbqCheckable implements ControlValueAccessor {
308
+ private controlValueAccessorChangeFn;
309
+ /**
310
+ * Called when the control is blurred. Needed to properly implement `ControlValueAccessor`.
311
+ * @docs-private
312
+ */
313
+ onTouched: () => any;
314
+ /** @docs-private */
315
+ readonly currentCheckState: i0.WritableSignal<TransitionCheckState>;
316
+ readonly checked: i0.ModelSignal<boolean>;
317
+ readonly disabled: i0.ModelSignal<boolean>;
318
+ readonly indeterminate: i0.ModelSignal<boolean>;
319
+ /** Raw tab index as set by the caller, ignoring `disabled`. Use `effectiveTabIndex` to read the applied value. */
320
+ readonly tabIndex: i0.ModelSignal<number>;
321
+ /** The tab index actually applied to the native input: forced to `-1` while disabled. */
322
+ readonly effectiveTabIndex: i0.Signal<number>;
323
+ /** Returns the ARIA-checked value: `'true'`, `'false'`, or `'mixed'` when indeterminate. */
324
+ getAriaChecked(): KbqCheckedState;
325
+ /** Toggles the `checked` state and notifies the registered `ControlValueAccessor` change handler. */
326
+ toggle(): void;
327
+ /**
328
+ * Resolves what a click on the native input should do, based on the current state and `clickAction`.
329
+ * Pure - does not mutate state. Callers apply `checked`/`indeterminate` themselves and own emitting
330
+ * their own change events, so timing/order stays identical to a hand-written click handler.
331
+ */
332
+ resolveClick(clickAction: KbqCheckableClickAction): KbqCheckableClickResult;
333
+ /** Resets the native input to match the current `checked`/`indeterminate` state (used for the `noop` click action). */
334
+ resetNativeInput(nativeInput: HTMLInputElement): void;
335
+ /** Transitions the animation state, ignoring no-op transitions. @docs-private */
336
+ transitionCheckState(newState: TransitionCheckState): void;
337
+ writeValue(value: any): void;
338
+ /** Stores the `ControlValueAccessor` change handler to be notified by `notifyFormValueChange`. */
339
+ registerOnChange(fn: (value: any) => void): void;
340
+ registerOnTouched(fn: any): void;
341
+ setDisabledState(isDisabled: boolean): void;
342
+ /** Notifies the registered `ControlValueAccessor` change handler. */
343
+ notifyFormValueChange(value: boolean): void;
344
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqCheckable, never>;
345
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqCheckable, "[kbqCheckable]", ["kbqCheckable"], { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "disabled": "disabledChange"; "indeterminate": "indeterminateChange"; "tabIndex": "tabIndexChange"; }, never, never, true, never>;
346
+ }
347
+
244
348
  declare class KbqNormalizeWhitespace {
245
349
  /** @docs-private */
246
350
  protected readonly elementRef: ElementRef<HTMLElement>;
@@ -461,6 +565,73 @@ declare abstract class DateAdapter<D> extends DateAdapter$1<D> {
461
565
  declare const KBQ_DATE_FORMATS: InjectionToken<DateFormats>;
462
566
  type KbqDateFormats = DateFormats;
463
567
 
568
+ /**
569
+ * Time zone the library renders dates in.
570
+ *
571
+ * Accepts an IANA name (`'Europe/Moscow'`), a fixed offset — in minutes east of UTC (`180`) or as a
572
+ * string (`'+03:00'`, `'UTC+3'`, `'03:00:00'`) — `'utc'`, or `'system'` for the zone of the host the code
573
+ * runs on.
574
+ *
575
+ * The `string & {}` arm keeps IANA names open while still offering the special values as completions.
576
+ */
577
+ type KbqTimezoneLike = 'system' | 'utc' | number | (string & {});
578
+ /**
579
+ * InjectionToken for the time zone every date the library formats is rendered in.
580
+ *
581
+ * Read once, by the {@link KbqDateTimezoneService} constructor, out of the injector that created the
582
+ * service — call {@link KbqDateTimezoneService.setTimezone} to change the zone afterwards. Defaults to
583
+ * `'system'`, the zone of the host the code runs on.
584
+ */
585
+ declare const KBQ_DATE_TIMEZONE: InjectionToken<KbqTimezoneLike>;
586
+ /**
587
+ * Offset of `timezone` at `timestamp`, in minutes east of UTC. `null` means "leave the date in the host
588
+ * zone" — either because `timezone` is `'system'`, or because it is a name no `Intl` implementation knows.
589
+ *
590
+ * Takes the instant because an IANA zone has no single offset: `'Europe/Berlin'` is +60 in January and
591
+ * +120 in July, and one list of dates can span the change.
592
+ */
593
+ declare const kbqResolveTimezoneOffset: (timezone: KbqTimezoneLike, timestamp: number) => number | null;
594
+ /**
595
+ * Holds the time zone every date the library creates, parses and formats is rendered in.
596
+ *
597
+ * Provided in root, so {@link KBQ_DATE_TIMEZONE} in the application providers configures the whole
598
+ * application. To scope a zone to one subtree, list {@link kbqDateTimezoneProvider} in that component's
599
+ * `providers` together with the date adapter and the `DateFormatter`: the adapter captures the service of
600
+ * the injector that created it, and keeps using it.
601
+ */
602
+ declare class KbqDateTimezoneService {
603
+ /** Active time zone. */
604
+ readonly timezone: Signal<KbqTimezoneLike>;
605
+ /**
606
+ * Emits when the active time zone changes.
607
+ *
608
+ * The counterpart of `DateAdapter.localeChanges`, for the surfaces that render a date once instead of
609
+ * through an impure pipe — the date inputs and the calendar.
610
+ */
611
+ readonly changes: Observable<KbqTimezoneLike>;
612
+ private readonly _timezone;
613
+ private readonly _changes;
614
+ constructor();
615
+ /** Activates a time zone. */
616
+ setTimezone(timezone: KbqTimezoneLike): void;
617
+ /**
618
+ * Offset of the active zone at `timestamp`, in minutes east of UTC, or `null` when dates are left in
619
+ * the host zone.
620
+ */
621
+ offsetAt(timestamp: number): number | null;
622
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqDateTimezoneService, never>;
623
+ static ɵprov: i0.ɵɵInjectableDeclaration<KbqDateTimezoneService>;
624
+ }
625
+ /**
626
+ * Utility provider for the time zone dates are rendered in.
627
+ *
628
+ * Provides {@link KbqDateTimezoneService} alongside the token, so listing it in a component's `providers`
629
+ * scopes the zone to that subtree instead of resolving the root service and silently doing nothing.
630
+ *
631
+ * @see KBQ_DATE_TIMEZONE
632
+ */
633
+ declare const kbqDateTimezoneProvider: (timezone: KbqTimezoneLike) => Provider[];
634
+
464
635
  /**
465
636
  * Emulates [`field-sizing: content`](https://developer.mozilla.org/en-US/docs/Web/CSS/field-sizing) CSS property for
466
637
  * browsers that do not support it natively.
@@ -476,7 +647,6 @@ declare class KbqFieldSizingContent {
476
647
  constructor();
477
648
  private emulate;
478
649
  private setupWidth;
479
- private createRuler;
480
650
  private calculateWidth;
481
651
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqFieldSizingContent, never>;
482
652
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqFieldSizingContent, "[kbqFieldSizingContent]", ["kbqFieldSizingContent"], {}, {}, never, never, true, never>;
@@ -486,9 +656,12 @@ declare class KbqFieldSizingContent {
486
656
  * Internal contract for `KbqFormField` used by code that cannot import the form-field
487
657
  * class directly because of a circular dependency (e.g. `core/select/common.ts`).
488
658
  *
659
+ * @deprecated Use KbqFormField from `@koobiq/components/form-field`.
660
+ *
489
661
  * @docs-private
490
662
  */
491
663
  interface KbqFormFieldRef {
664
+ /** @see KbqFormField.control */
492
665
  control: any;
493
666
  canCleanerClearByEsc: boolean;
494
667
  /** Use when KbqFormField is in an overlay container. */
@@ -500,13 +673,228 @@ interface KbqFormFieldRef {
500
673
  * as alternative token to the actual `KbqFormField` class which would cause unnecessary
501
674
  * retention of the `KbqFormField` class and its component metadata.
502
675
  *
503
- * @TODO move into form-field.ts, add correct type for `InjectionToken<KbqFormField>` (#DS-2915)
676
+ * @deprecated Use `KBQ_FORM_FIELD` from `@koobiq/components/form-field`.
677
+ *
678
+ * @docs-private
504
679
  */
505
680
  declare const KBQ_FORM_FIELD_REF: InjectionToken<KbqFormFieldRef>;
681
+ /**
682
+ * Contract for an ancestor that wants to override where overlays opened by a nested
683
+ * `KbqFormField`'s control (e.g. a select's dropdown, a datepicker's calendar) are
684
+ * anchored, instead of the form-field's own container.
685
+ */
686
+ interface KbqConnectedOverlayOriginProvider {
687
+ /**
688
+ * Element the overlay should be positioned and sized against, or `undefined` to fall
689
+ * back to the form-field's own container.
690
+ */
691
+ getConnectedOverlayOrigin(): ElementRef | undefined;
692
+ }
693
+ /**
694
+ * Injection token for `KbqConnectedOverlayOriginProvider`. Provide it on an ancestor
695
+ * component to redirect where a nested `KbqFormField`'s control positions its overlay.
696
+ */
697
+ declare const KBQ_CONNECTED_OVERLAY_ORIGIN: InjectionToken<KbqConnectedOverlayOriginProvider>;
698
+
699
+ /**
700
+ * Scrolls a text field horizontally so that its current selection is visible.
701
+ *
702
+ * Browsers scroll a field to the caret only for edits the user makes: a selection set from script leaves
703
+ * the field at whatever offset the last keystroke produced. A masked field re-renders its value and moves
704
+ * the caret between value parts on every keystroke, so without this the field keeps the offset of the part
705
+ * that was edited before and clips the one being edited now.
706
+ *
707
+ * Leaves the field alone when it is not focused, when it renders something other than its value, and in
708
+ * right-to-left text, where the browser's own caret following is already correct.
709
+ */
710
+ declare const kbqRevealSelection: (element: HTMLInputElement) => void;
711
+ /**
712
+ * Selects the `[start, end]` range of a text field and keeps it visible.
713
+ *
714
+ * @see {@link kbqRevealSelection}
715
+ */
716
+ declare const kbqSetSelectionRange: (element: HTMLInputElement, start: number, end: number) => void;
717
+
718
+ /**
719
+ * Text the library exposes to assistive tech only: accessible names for the icon-only buttons it
720
+ * renders itself, and live-region announcements.
721
+ *
722
+ * An icon carries no text, so without one of these a button has no accessible name at all (AXE
723
+ * `button-name`). None of these strings are ever displayed.
724
+ */
725
+ type KbqA11yLocaleConfiguration = {
726
+ /** Close button of a modal, popover, sidepanel, content panel or notification center. */
727
+ close: string;
728
+ /** Confirm button of an inline edit. */
729
+ save: string;
730
+ /** Discard button of an inline edit. */
731
+ cancel: string;
732
+ /** Button removing every notification at once. */
733
+ removeAll: string;
734
+ /** Breadcrumbs button revealing the items hidden by overflow. */
735
+ expandBreadcrumbs: string;
736
+ /** Calendar button switching to the previous month. */
737
+ previousMonth: string;
738
+ /** Calendar button switching back to the current date. */
739
+ currentDate: string;
740
+ /** Calendar button switching to the next month. */
741
+ nextMonth: string;
742
+ /** Form field button that clears the control value. */
743
+ clear: string;
744
+ /** Password form field button that reveals the password. */
745
+ showPassword: string;
746
+ /** Password form field button that masks the password. */
747
+ hidePassword: string;
748
+ /** Separator that resizes the columns of a description list. */
749
+ resizeColumns: string;
750
+ };
751
+ /** Locale configuration for `KbqCodeBlockModule`. */
752
+ type KbqCodeBlockLocaleConfiguration = {
753
+ softWrapOnTooltip: string;
754
+ softWrapOffTooltip: string;
755
+ downloadTooltip: string;
756
+ copiedTooltip: string;
757
+ copyTooltip: string;
758
+ viewAllText: string;
759
+ viewLessText: string;
760
+ openExternalSystemTooltip: string;
761
+ };
762
+ /**
763
+ * Locale configuration for `KbqActionsPanelModule`.
764
+ */
765
+ type KbqActionsPanelLocaleConfiguration = {
766
+ closeTooltip: string;
767
+ };
768
+ /**
769
+ * Locale configuration shared by `KbqSelectModule` and `KbqTreeModule`: `hiddenItemsText` is read by
770
+ * `KbqSelectModule` (`kbq-select`) only, while `selectAll` is read by both `KbqSelectModule` and
771
+ * `KbqTreeModule` (`kbq-tree-selection`, including standalone usage outside `KbqTreeSelectModule`).
772
+ */
773
+ type KbqSelectLocaleConfiguration = {
774
+ /** Counter of the selected values that did not fit into the trigger. Supports the `{{ number }}` placeholder. */
775
+ hiddenItemsText: string;
776
+ /** Label of the "select all" master checkbox rendered by the `selectAll` input. */
777
+ selectAll: string;
778
+ };
779
+ /** Options for overriding locale-based number formatting */
780
+ type KbqNumberFormatOptions = {
781
+ /** Overrides the default group separator in the formatted output */
782
+ viewGroupSeparator?: string;
783
+ };
784
+ /**
785
+ * Locale configuration for number rounding used by `KbqRoundDecimalPipe`.
786
+ *
787
+ * Maps each rounding unit to its localized label and carries the surrounding
788
+ * formatting options.
789
+ * @docs-private
790
+ */
791
+ type KbqNumberRoundingLocaleConfig = {
792
+ /** Separator placed between the number and its rounding unit label. */
793
+ separator: string;
794
+ /** Separator placed between the integer and fractional parts. */
795
+ groupSeparator: string;
796
+ /** Label for the thousand unit. */
797
+ thousand: string;
798
+ /** Label for the million unit. */
799
+ million: string;
800
+ /** Label for the billion unit. */
801
+ billion: string;
802
+ /** Label for the trillion unit (always provided). */
803
+ trillion: string;
804
+ };
805
+ /** Locale configuration for `KbqNumberInput`. */
806
+ type KbqNumberInputLocaleConfig = {
807
+ /** Characters recognized as group (thousands) separators. */
808
+ groupSeparator: string[];
809
+ /** Character used for the decimal separator */
810
+ fractionSeparator: string;
811
+ /** Number of digits before applying group separators */
812
+ startFormattingFrom?: number;
813
+ } & KbqNumberFormatOptions;
814
+ /** Locale configuration for `KbqClampedText` */
815
+ type KbqClampedTextLocaleConfig = {
816
+ openText: string;
817
+ closeText: string;
818
+ showMoreText: string;
819
+ moreText: string;
820
+ };
821
+ /** Locale configuration for `KbqTimeRange` */
822
+ type KbqTimeRangeLocaleConfig = {
823
+ title: {
824
+ for: string;
825
+ placeholder: string;
826
+ };
827
+ editor: {
828
+ from: string;
829
+ to: string;
830
+ apply: string;
831
+ cancel: string;
832
+ rangeLabel: string;
833
+ allTime: string;
834
+ currentQuarter: string;
835
+ currentYear: string;
836
+ /** Label for the `allTime` option in the presets list, as opposed to the trigger label in `allTime` */
837
+ allTimeOption?: string;
838
+ /** Label for the `currentQuarter` option in the presets list, as opposed to the trigger label in `currentQuarter` */
839
+ currentQuarterOption?: string;
840
+ /** Label for the `currentYear` option in the presets list, as opposed to the trigger label in `currentYear` */
841
+ currentYearOption?: string;
842
+ };
843
+ durationTemplate: {
844
+ title: FormatterDurationTemplate;
845
+ option: FormatterDurationTemplate;
846
+ };
847
+ };
848
+ interface KbqBaseFileUploadLocaleConfig {
849
+ captionText: string;
850
+ captionTextOnlyFolder: string;
851
+ captionTextWithFolder: string;
852
+ browseLink: string;
853
+ browseLinkFolder: string;
854
+ browseLinkFolderMixed?: string;
855
+ }
856
+ interface KbqMultipleFileUploadLocaleConfig extends KbqBaseFileUploadLocaleConfig {
857
+ captionTextWhenSelected: string;
858
+ captionTextForCompactSize: string;
859
+ title: string;
860
+ }
861
+ type KbqFileUploadLocaleConfig = {
862
+ single: KbqBaseFileUploadLocaleConfig;
863
+ multiple: KbqMultipleFileUploadLocaleConfig;
864
+ };
865
+
866
+ /** Localization configuration for the accessible names of the icon-only buttons the library renders itself. */
867
+ declare const KBQ_A11Y_LOCALE_CONFIGURATION: InjectionToken<KbqA11yLocaleConfiguration>;
868
+ /** Utility provider for `KBQ_A11Y_LOCALE_CONFIGURATION`. */
869
+ declare const kbqA11yLocaleConfigurationProvider: (configuration: KbqA11yLocaleConfiguration) => Provider;
870
+ /**
871
+ * Reactive accessible names for the icon-only buttons the library renders itself.
872
+ *
873
+ * Follows `KbqLocaleService` when one is provided, and otherwise stays on whatever
874
+ * `KBQ_A11Y_LOCALE_CONFIGURATION` resolves to.
875
+ *
876
+ * @docs-private
877
+ */
878
+ declare function kbqInjectA11yLocaleConfiguration(): Signal<KbqA11yLocaleConfiguration>;
506
879
 
507
880
  declare const enUSLocaleData: {
881
+ a11y: {
882
+ close: string;
883
+ save: string;
884
+ cancel: string;
885
+ removeAll: string;
886
+ expandBreadcrumbs: string;
887
+ previousMonth: string;
888
+ currentDate: string;
889
+ nextMonth: string;
890
+ clear: string;
891
+ showPassword: string;
892
+ hidePassword: string;
893
+ resizeColumns: string;
894
+ };
508
895
  select: {
509
896
  hiddenItemsText: string;
897
+ selectAll: string;
510
898
  };
511
899
  datepicker: {
512
900
  placeholder: string;
@@ -601,6 +989,8 @@ declare const enUSLocaleData: {
601
989
  customPeriodFrom: string;
602
990
  customPeriodTo: string;
603
991
  customPeriodErrorHint: string;
992
+ customPeriodMinIntervalErrorHint: string;
993
+ customPeriodMaxIntervalErrorHint: string;
604
994
  backToPeriodSelection: string;
605
995
  };
606
996
  };
@@ -691,8 +1081,23 @@ declare const enUSLocaleData: {
691
1081
  };
692
1082
 
693
1083
  declare const esLALocaleData: {
1084
+ a11y: {
1085
+ close: string;
1086
+ save: string;
1087
+ cancel: string;
1088
+ removeAll: string;
1089
+ expandBreadcrumbs: string;
1090
+ previousMonth: string;
1091
+ currentDate: string;
1092
+ nextMonth: string;
1093
+ clear: string;
1094
+ showPassword: string;
1095
+ hidePassword: string;
1096
+ resizeColumns: string;
1097
+ };
694
1098
  select: {
695
1099
  hiddenItemsText: string;
1100
+ selectAll: string;
696
1101
  };
697
1102
  datepicker: {
698
1103
  placeholder: string;
@@ -786,6 +1191,8 @@ declare const esLALocaleData: {
786
1191
  customPeriodFrom: string;
787
1192
  customPeriodTo: string;
788
1193
  customPeriodErrorHint: string;
1194
+ customPeriodMinIntervalErrorHint: string;
1195
+ customPeriodMaxIntervalErrorHint: string;
789
1196
  backToPeriodSelection: string;
790
1197
  };
791
1198
  };
@@ -876,8 +1283,23 @@ declare const esLALocaleData: {
876
1283
  };
877
1284
 
878
1285
  declare const ptBRLocaleData: {
1286
+ a11y: {
1287
+ close: string;
1288
+ save: string;
1289
+ cancel: string;
1290
+ removeAll: string;
1291
+ expandBreadcrumbs: string;
1292
+ previousMonth: string;
1293
+ currentDate: string;
1294
+ nextMonth: string;
1295
+ clear: string;
1296
+ showPassword: string;
1297
+ hidePassword: string;
1298
+ resizeColumns: string;
1299
+ };
879
1300
  select: {
880
1301
  hiddenItemsText: string;
1302
+ selectAll: string;
881
1303
  };
882
1304
  datepicker: {
883
1305
  placeholder: string;
@@ -971,6 +1393,8 @@ declare const ptBRLocaleData: {
971
1393
  customPeriodFrom: string;
972
1394
  customPeriodTo: string;
973
1395
  customPeriodErrorHint: string;
1396
+ customPeriodMinIntervalErrorHint: string;
1397
+ customPeriodMaxIntervalErrorHint: string;
974
1398
  backToPeriodSelection: string;
975
1399
  };
976
1400
  };
@@ -1061,8 +1485,23 @@ declare const ptBRLocaleData: {
1061
1485
  };
1062
1486
 
1063
1487
  declare const ruRULocaleData: {
1488
+ a11y: {
1489
+ close: string;
1490
+ save: string;
1491
+ cancel: string;
1492
+ removeAll: string;
1493
+ expandBreadcrumbs: string;
1494
+ previousMonth: string;
1495
+ currentDate: string;
1496
+ nextMonth: string;
1497
+ clear: string;
1498
+ showPassword: string;
1499
+ hidePassword: string;
1500
+ resizeColumns: string;
1501
+ };
1064
1502
  select: {
1065
1503
  hiddenItemsText: string;
1504
+ selectAll: string;
1066
1505
  };
1067
1506
  datepicker: {
1068
1507
  placeholder: string;
@@ -1157,6 +1596,8 @@ declare const ruRULocaleData: {
1157
1596
  customPeriodFrom: string;
1158
1597
  customPeriodTo: string;
1159
1598
  customPeriodErrorHint: string;
1599
+ customPeriodMinIntervalErrorHint: string;
1600
+ customPeriodMaxIntervalErrorHint: string;
1160
1601
  backToPeriodSelection: string;
1161
1602
  };
1162
1603
  };
@@ -1247,8 +1688,23 @@ declare const ruRULocaleData: {
1247
1688
  };
1248
1689
 
1249
1690
  declare const tkTMLocaleData: {
1691
+ a11y: {
1692
+ close: string;
1693
+ save: string;
1694
+ cancel: string;
1695
+ removeAll: string;
1696
+ expandBreadcrumbs: string;
1697
+ previousMonth: string;
1698
+ currentDate: string;
1699
+ nextMonth: string;
1700
+ clear: string;
1701
+ showPassword: string;
1702
+ hidePassword: string;
1703
+ resizeColumns: string;
1704
+ };
1250
1705
  select: {
1251
1706
  hiddenItemsText: string;
1707
+ selectAll: string;
1252
1708
  };
1253
1709
  datepicker: {
1254
1710
  placeholder: string;
@@ -1343,6 +1799,8 @@ declare const tkTMLocaleData: {
1343
1799
  customPeriodFrom: string;
1344
1800
  customPeriodTo: string;
1345
1801
  customPeriodErrorHint: string;
1802
+ customPeriodMinIntervalErrorHint: string;
1803
+ customPeriodMaxIntervalErrorHint: string;
1346
1804
  backToPeriodSelection: string;
1347
1805
  };
1348
1806
  };
@@ -1623,110 +2081,6 @@ declare const tkTMFormattersData: {
1623
2081
  };
1624
2082
  };
1625
2083
 
1626
- /** Locale configuration for `KbqCodeBlockModule`. */
1627
- type KbqCodeBlockLocaleConfiguration = {
1628
- softWrapOnTooltip: string;
1629
- softWrapOffTooltip: string;
1630
- downloadTooltip: string;
1631
- copiedTooltip: string;
1632
- copyTooltip: string;
1633
- viewAllText: string;
1634
- viewLessText: string;
1635
- openExternalSystemTooltip: string;
1636
- };
1637
- /**
1638
- * Locale configuration for `KbqActionsPanelModule`.
1639
- */
1640
- type KbqActionsPanelLocaleConfiguration = {
1641
- closeTooltip: string;
1642
- };
1643
- /** Options for overriding locale-based number formatting */
1644
- type KbqNumberFormatOptions = {
1645
- /** Overrides the default group separator in the formatted output */
1646
- viewGroupSeparator?: string;
1647
- };
1648
- /**
1649
- * Locale configuration for number rounding used by `KbqRoundDecimalPipe`.
1650
- *
1651
- * Maps each rounding unit to its localized label and carries the surrounding
1652
- * formatting options.
1653
- * @docs-private
1654
- */
1655
- type KbqNumberRoundingLocaleConfig = {
1656
- /** Separator placed between the number and its rounding unit label. */
1657
- separator: string;
1658
- /** Separator placed between the integer and fractional parts. */
1659
- groupSeparator: string;
1660
- /** Label for the thousand unit. */
1661
- thousand: string;
1662
- /** Label for the million unit. */
1663
- million: string;
1664
- /** Label for the billion unit. */
1665
- billion: string;
1666
- /** Label for the trillion unit (always provided). */
1667
- trillion: string;
1668
- };
1669
- /** Locale configuration for `KbqNumberInput`. */
1670
- type KbqNumberInputLocaleConfig = {
1671
- /** Characters recognized as group (thousands) separators. */
1672
- groupSeparator: string[];
1673
- /** Character used for the decimal separator */
1674
- fractionSeparator: string;
1675
- /** Number of digits before applying group separators */
1676
- startFormattingFrom?: number;
1677
- } & KbqNumberFormatOptions;
1678
- /** Locale configuration for `KbqClampedText` */
1679
- type KbqClampedTextLocaleConfig = {
1680
- openText: string;
1681
- closeText: string;
1682
- showMoreText: string;
1683
- moreText: string;
1684
- };
1685
- /** Locale configuration for `KbqTimeRange` */
1686
- type KbqTimeRangeLocaleConfig = {
1687
- title: {
1688
- for: string;
1689
- placeholder: string;
1690
- };
1691
- editor: {
1692
- from: string;
1693
- to: string;
1694
- apply: string;
1695
- cancel: string;
1696
- rangeLabel: string;
1697
- allTime: string;
1698
- currentQuarter: string;
1699
- currentYear: string;
1700
- /** Label for the `allTime` option in the presets list, as opposed to the trigger label in `allTime` */
1701
- allTimeOption?: string;
1702
- /** Label for the `currentQuarter` option in the presets list, as opposed to the trigger label in `currentQuarter` */
1703
- currentQuarterOption?: string;
1704
- /** Label for the `currentYear` option in the presets list, as opposed to the trigger label in `currentYear` */
1705
- currentYearOption?: string;
1706
- };
1707
- durationTemplate: {
1708
- title: FormatterDurationTemplate;
1709
- option: FormatterDurationTemplate;
1710
- };
1711
- };
1712
- interface KbqBaseFileUploadLocaleConfig {
1713
- captionText: string;
1714
- captionTextOnlyFolder: string;
1715
- captionTextWithFolder: string;
1716
- browseLink: string;
1717
- browseLinkFolder: string;
1718
- browseLinkFolderMixed?: string;
1719
- }
1720
- interface KbqMultipleFileUploadLocaleConfig extends KbqBaseFileUploadLocaleConfig {
1721
- captionTextWhenSelected: string;
1722
- captionTextForCompactSize: string;
1723
- title: string;
1724
- }
1725
- type KbqFileUploadLocaleConfig = {
1726
- single: KbqBaseFileUploadLocaleConfig;
1727
- multiple: KbqMultipleFileUploadLocaleConfig;
1728
- };
1729
-
1730
2084
  declare const KBQ_LOCALE_ID: InjectionToken<string>;
1731
2085
  declare const KBQ_DEFAULT_LOCALE_ID = "ru-RU";
1732
2086
  declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
@@ -1769,8 +2123,23 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
1769
2123
  };
1770
2124
  };
1771
2125
  };
2126
+ a11y: {
2127
+ close: string;
2128
+ save: string;
2129
+ cancel: string;
2130
+ removeAll: string;
2131
+ expandBreadcrumbs: string;
2132
+ previousMonth: string;
2133
+ currentDate: string;
2134
+ nextMonth: string;
2135
+ clear: string;
2136
+ showPassword: string;
2137
+ hidePassword: string;
2138
+ resizeColumns: string;
2139
+ };
1772
2140
  select: {
1773
2141
  hiddenItemsText: string;
2142
+ selectAll: string;
1774
2143
  };
1775
2144
  datepicker: {
1776
2145
  placeholder: string;
@@ -1865,6 +2234,8 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
1865
2234
  customPeriodFrom: string;
1866
2235
  customPeriodTo: string;
1867
2236
  customPeriodErrorHint: string;
2237
+ customPeriodMinIntervalErrorHint: string;
2238
+ customPeriodMaxIntervalErrorHint: string;
1868
2239
  backToPeriodSelection: string;
1869
2240
  };
1870
2241
  };
@@ -1992,8 +2363,23 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
1992
2363
  };
1993
2364
  };
1994
2365
  };
2366
+ a11y: {
2367
+ close: string;
2368
+ save: string;
2369
+ cancel: string;
2370
+ removeAll: string;
2371
+ expandBreadcrumbs: string;
2372
+ previousMonth: string;
2373
+ currentDate: string;
2374
+ nextMonth: string;
2375
+ clear: string;
2376
+ showPassword: string;
2377
+ hidePassword: string;
2378
+ resizeColumns: string;
2379
+ };
1995
2380
  select: {
1996
2381
  hiddenItemsText: string;
2382
+ selectAll: string;
1997
2383
  };
1998
2384
  datepicker: {
1999
2385
  placeholder: string;
@@ -2087,6 +2473,8 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
2087
2473
  customPeriodFrom: string;
2088
2474
  customPeriodTo: string;
2089
2475
  customPeriodErrorHint: string;
2476
+ customPeriodMinIntervalErrorHint: string;
2477
+ customPeriodMaxIntervalErrorHint: string;
2090
2478
  backToPeriodSelection: string;
2091
2479
  };
2092
2480
  };
@@ -2210,8 +2598,23 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
2210
2598
  };
2211
2599
  };
2212
2600
  };
2601
+ a11y: {
2602
+ close: string;
2603
+ save: string;
2604
+ cancel: string;
2605
+ removeAll: string;
2606
+ expandBreadcrumbs: string;
2607
+ previousMonth: string;
2608
+ currentDate: string;
2609
+ nextMonth: string;
2610
+ clear: string;
2611
+ showPassword: string;
2612
+ hidePassword: string;
2613
+ resizeColumns: string;
2614
+ };
2213
2615
  select: {
2214
2616
  hiddenItemsText: string;
2617
+ selectAll: string;
2215
2618
  };
2216
2619
  datepicker: {
2217
2620
  placeholder: string;
@@ -2305,6 +2708,8 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
2305
2708
  customPeriodFrom: string;
2306
2709
  customPeriodTo: string;
2307
2710
  customPeriodErrorHint: string;
2711
+ customPeriodMinIntervalErrorHint: string;
2712
+ customPeriodMaxIntervalErrorHint: string;
2308
2713
  backToPeriodSelection: string;
2309
2714
  };
2310
2715
  };
@@ -2433,8 +2838,23 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
2433
2838
  };
2434
2839
  };
2435
2840
  };
2841
+ a11y: {
2842
+ close: string;
2843
+ save: string;
2844
+ cancel: string;
2845
+ removeAll: string;
2846
+ expandBreadcrumbs: string;
2847
+ previousMonth: string;
2848
+ currentDate: string;
2849
+ nextMonth: string;
2850
+ clear: string;
2851
+ showPassword: string;
2852
+ hidePassword: string;
2853
+ resizeColumns: string;
2854
+ };
2436
2855
  select: {
2437
2856
  hiddenItemsText: string;
2857
+ selectAll: string;
2438
2858
  };
2439
2859
  datepicker: {
2440
2860
  placeholder: string;
@@ -2529,6 +2949,8 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
2529
2949
  customPeriodFrom: string;
2530
2950
  customPeriodTo: string;
2531
2951
  customPeriodErrorHint: string;
2952
+ customPeriodMinIntervalErrorHint: string;
2953
+ customPeriodMaxIntervalErrorHint: string;
2532
2954
  backToPeriodSelection: string;
2533
2955
  };
2534
2956
  };
@@ -2653,8 +3075,23 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
2653
3075
  };
2654
3076
  };
2655
3077
  };
3078
+ a11y: {
3079
+ close: string;
3080
+ save: string;
3081
+ cancel: string;
3082
+ removeAll: string;
3083
+ expandBreadcrumbs: string;
3084
+ previousMonth: string;
3085
+ currentDate: string;
3086
+ nextMonth: string;
3087
+ clear: string;
3088
+ showPassword: string;
3089
+ hidePassword: string;
3090
+ resizeColumns: string;
3091
+ };
2656
3092
  select: {
2657
3093
  hiddenItemsText: string;
3094
+ selectAll: string;
2658
3095
  };
2659
3096
  datepicker: {
2660
3097
  placeholder: string;
@@ -2749,6 +3186,8 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
2749
3186
  customPeriodFrom: string;
2750
3187
  customPeriodTo: string;
2751
3188
  customPeriodErrorHint: string;
3189
+ customPeriodMinIntervalErrorHint: string;
3190
+ customPeriodMaxIntervalErrorHint: string;
2752
3191
  backToPeriodSelection: string;
2753
3192
  };
2754
3193
  };
@@ -2905,14 +3344,15 @@ declare class BaseFormatterPipe<D> {
2905
3344
  protected readonly formatter: DateFormatter<D>;
2906
3345
  }
2907
3346
  /**
2908
- * Base class for impure date-formatter pipes that recompute their result
2909
- * whenever the active locale changes via `KbqLocaleService`.
3347
+ * Base class for impure date-formatter pipes that recompute their result whenever the active locale
3348
+ * changes via `KbqLocaleService`, or the active time zone via `KbqDateTimezoneService`.
2910
3349
  *
2911
3350
  * The base class owns:
2912
- * - a subscription to `KbqLocaleService.changes` that invalidates the cache and
2913
- * marks the host for check (the same approach the built-in `AsyncPipe` uses);
2914
- * - caching by `(value, args, localeId)`, so the impure `transform()` only does
2915
- * real work when an input or the active locale actually changed.
3351
+ * - a subscription to `KbqLocaleService.changes` and an `effect` on the active time zone, each of which
3352
+ * invalidates the cache and marks the host for check (the same approach the built-in `AsyncPipe` uses);
3353
+ * - caching by `(value, args, localeId, timezone)`, so the impure `transform()` only does
3354
+ * real work when an input, the active locale or the active time zone actually changed — see
3355
+ * `shallowEqual` for how the comparison works and its limits.
2916
3356
  *
2917
3357
  * Subclasses implement `format()`, which receives the raw pipe input(s) — a
2918
3358
  * single value for absolute/relative pipes, or a `[from, to]` tuple for range
@@ -2921,12 +3361,14 @@ declare class BaseFormatterPipe<D> {
2921
3361
  *
2922
3362
  * @docs-private
2923
3363
  */
2924
- declare abstract class BaseLocaleAwareFormatterPipe<D, Value = D | string, Args extends unknown[] = unknown[]> extends BaseFormatterPipe<D> {
3364
+ declare abstract class BaseLocaleAwareFormatterPipe<D, Value = D | string | null | undefined, Args extends unknown[] = unknown[]> extends BaseFormatterPipe<D> {
2925
3365
  private readonly changeDetectorRef;
2926
3366
  private readonly localeService;
3367
+ private readonly timezoneService;
2927
3368
  private cachedValue;
2928
3369
  private cachedArgs;
2929
3370
  private cachedLocaleId;
3371
+ private cachedTimezone;
2930
3372
  private cachedResult;
2931
3373
  private hasCache;
2932
3374
  constructor();
@@ -2935,213 +3377,315 @@ declare abstract class BaseLocaleAwareFormatterPipe<D, Value = D | string, Args
2935
3377
  private argsEqual;
2936
3378
  }
2937
3379
  declare class AbsoluteDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
2938
- transform(value: D | string, currYear?: boolean): string;
3380
+ transform(value: D | string | null | undefined, currYear?: boolean): string;
2939
3381
  static ɵfac: i0.ɵɵFactoryDeclaration<AbsoluteDateFormatterPipe<any>, never>;
2940
3382
  static ɵpipe: i0.ɵɵPipeDeclaration<AbsoluteDateFormatterPipe<any>, "absoluteLongDate", true>;
2941
3383
  }
2942
3384
  declare class AbsoluteDateFormatterImpurePipe<D> extends AbsoluteDateFormatterPipe<D> {
2943
- transform(value: string | D, currYear?: boolean): string;
3385
+ transform(value: D | string | null | undefined, currYear?: boolean): string;
2944
3386
  static ɵfac: i0.ɵɵFactoryDeclaration<AbsoluteDateFormatterImpurePipe<any>, never>;
2945
3387
  static ɵpipe: i0.ɵɵPipeDeclaration<AbsoluteDateFormatterImpurePipe<any>, "absoluteLongDateImpurePipe", true>;
2946
3388
  }
2947
3389
  declare class AbsoluteDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
2948
- transform(value: D | string, options?: DateTimeOptions): string;
3390
+ transform(value: D | string | null | undefined, options?: DateTimeOptions): string;
2949
3391
  static ɵfac: i0.ɵɵFactoryDeclaration<AbsoluteDateTimeFormatterPipe<any>, never>;
2950
3392
  static ɵpipe: i0.ɵɵPipeDeclaration<AbsoluteDateTimeFormatterPipe<any>, "absoluteLongDateTime", true>;
2951
3393
  }
2952
3394
  declare class AbsoluteDateTimeFormatterImpurePipe<D> extends AbsoluteDateTimeFormatterPipe<D> {
2953
- transform(value: string | D, options?: DateTimeOptions): string;
3395
+ transform(value: D | string | null | undefined, options?: DateTimeOptions): string;
2954
3396
  static ɵfac: i0.ɵɵFactoryDeclaration<AbsoluteDateTimeFormatterImpurePipe<any>, never>;
2955
3397
  static ɵpipe: i0.ɵɵPipeDeclaration<AbsoluteDateTimeFormatterImpurePipe<any>, "absoluteLongDateTimeImpurePipe", true>;
2956
3398
  }
2957
3399
  declare class AbsoluteDateShortFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
2958
- transform(value: D | string, currYear?: boolean): string;
3400
+ transform(value: D | string | null | undefined, currYear?: boolean): string;
2959
3401
  static ɵfac: i0.ɵɵFactoryDeclaration<AbsoluteDateShortFormatterPipe<any>, never>;
2960
3402
  static ɵpipe: i0.ɵɵPipeDeclaration<AbsoluteDateShortFormatterPipe<any>, "absoluteShortDate", true>;
2961
3403
  }
2962
3404
  declare class AbsoluteDateShortFormatterImpurePipe<D> extends AbsoluteDateShortFormatterPipe<D> {
2963
- transform(value: string | D, currYear?: boolean): string;
3405
+ transform(value: D | string | null | undefined, currYear?: boolean): string;
2964
3406
  static ɵfac: i0.ɵɵFactoryDeclaration<AbsoluteDateShortFormatterImpurePipe<any>, never>;
2965
3407
  static ɵpipe: i0.ɵɵPipeDeclaration<AbsoluteDateShortFormatterImpurePipe<any>, "absoluteShortDateImpurePipe", true>;
2966
3408
  }
2967
3409
  declare class AbsoluteShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
2968
- transform(value: D | string, options?: DateTimeOptions): string;
3410
+ transform(value: D | string | null | undefined, options?: DateTimeOptions): string;
2969
3411
  static ɵfac: i0.ɵɵFactoryDeclaration<AbsoluteShortDateTimeFormatterPipe<any>, never>;
2970
3412
  static ɵpipe: i0.ɵɵPipeDeclaration<AbsoluteShortDateTimeFormatterPipe<any>, "absoluteShortDateTime", true>;
2971
3413
  }
2972
3414
  declare class AbsoluteShortDateTimeFormatterImpurePipe<D> extends AbsoluteShortDateTimeFormatterPipe<D> {
2973
- transform(value: string | D, options?: DateTimeOptions): string;
3415
+ transform(value: D | string | null | undefined, options?: DateTimeOptions): string;
2974
3416
  static ɵfac: i0.ɵɵFactoryDeclaration<AbsoluteShortDateTimeFormatterImpurePipe<any>, never>;
2975
3417
  static ɵpipe: i0.ɵɵPipeDeclaration<AbsoluteShortDateTimeFormatterImpurePipe<any>, "absoluteShortDateTimeImpurePipe", true>;
2976
3418
  }
2977
3419
  declare class RelativeDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
2978
- transform(value: D | string): string;
3420
+ transform(value: D | string | null | undefined): string;
2979
3421
  static ɵfac: i0.ɵɵFactoryDeclaration<RelativeDateFormatterPipe<any>, never>;
2980
3422
  static ɵpipe: i0.ɵɵPipeDeclaration<RelativeDateFormatterPipe<any>, "relativeLongDate", true>;
2981
3423
  }
2982
3424
  declare class RelativeDateFormatterImpurePipe<D> extends RelativeDateFormatterPipe<D> {
2983
- transform(value: string | D): string;
3425
+ transform(value: D | string | null | undefined): string;
2984
3426
  static ɵfac: i0.ɵɵFactoryDeclaration<RelativeDateFormatterImpurePipe<any>, never>;
2985
3427
  static ɵpipe: i0.ɵɵPipeDeclaration<RelativeDateFormatterImpurePipe<any>, "relativeLongDateImpurePipe", true>;
2986
3428
  }
2987
3429
  declare class RelativeDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
2988
- transform(value: D | string, options?: DateTimeOptions): string;
3430
+ transform(value: D | string | null | undefined, options?: DateTimeOptions): string;
2989
3431
  static ɵfac: i0.ɵɵFactoryDeclaration<RelativeDateTimeFormatterPipe<any>, never>;
2990
3432
  static ɵpipe: i0.ɵɵPipeDeclaration<RelativeDateTimeFormatterPipe<any>, "relativeLongDateTime", true>;
2991
3433
  }
2992
3434
  declare class RelativeDateTimeFormatterImpurePipe<D> extends RelativeDateTimeFormatterPipe<D> {
2993
- transform(value: string | D, options?: DateTimeOptions): string;
3435
+ transform(value: D | string | null | undefined, options?: DateTimeOptions): string;
2994
3436
  static ɵfac: i0.ɵɵFactoryDeclaration<RelativeDateTimeFormatterImpurePipe<any>, never>;
2995
3437
  static ɵpipe: i0.ɵɵPipeDeclaration<RelativeDateTimeFormatterImpurePipe<any>, "relativeLongDateTimeImpurePipe", true>;
2996
3438
  }
2997
3439
  declare class RelativeShortDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
2998
- transform(value: D | string): string;
3440
+ transform(value: D | string | null | undefined): string;
2999
3441
  static ɵfac: i0.ɵɵFactoryDeclaration<RelativeShortDateFormatterPipe<any>, never>;
3000
3442
  static ɵpipe: i0.ɵɵPipeDeclaration<RelativeShortDateFormatterPipe<any>, "relativeShortDate", true>;
3001
3443
  }
3002
3444
  declare class RelativeShortDateFormatterImpurePipe<D> extends RelativeShortDateFormatterPipe<D> {
3003
- transform(value: string | D): string;
3445
+ transform(value: D | string | null | undefined): string;
3004
3446
  static ɵfac: i0.ɵɵFactoryDeclaration<RelativeShortDateFormatterImpurePipe<any>, never>;
3005
3447
  static ɵpipe: i0.ɵɵPipeDeclaration<RelativeShortDateFormatterImpurePipe<any>, "relativeShortDateImpurePipe", true>;
3006
3448
  }
3007
3449
  declare class RelativeShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
3008
- transform(value: D | string, options?: DateTimeOptions): string;
3450
+ transform(value: D | string | null | undefined, options?: DateTimeOptions): string;
3009
3451
  static ɵfac: i0.ɵɵFactoryDeclaration<RelativeShortDateTimeFormatterPipe<any>, never>;
3010
3452
  static ɵpipe: i0.ɵɵPipeDeclaration<RelativeShortDateTimeFormatterPipe<any>, "relativeShortDateTime", true>;
3011
3453
  }
3012
3454
  declare class RelativeShortDateTimeFormatterImpurePipe<D> extends RelativeShortDateTimeFormatterPipe<D> {
3013
- transform(value: string | D, options?: DateTimeOptions): string;
3455
+ transform(value: D | string | null | undefined, options?: DateTimeOptions): string;
3014
3456
  static ɵfac: i0.ɵɵFactoryDeclaration<RelativeShortDateTimeFormatterImpurePipe<any>, never>;
3015
3457
  static ɵpipe: i0.ɵɵPipeDeclaration<RelativeShortDateTimeFormatterImpurePipe<any>, "relativeShortDateTimeImpurePipe", true>;
3016
3458
  }
3017
3459
  declare class RangeDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
3018
- transform([value1, value2]: D[] | string[]): string;
3460
+ transform(value: D[] | string[] | null | undefined): string;
3019
3461
  static ɵfac: i0.ɵɵFactoryDeclaration<RangeDateFormatterPipe<any>, never>;
3020
3462
  static ɵpipe: i0.ɵɵPipeDeclaration<RangeDateFormatterPipe<any>, "rangeLongDate", true>;
3021
3463
  }
3022
3464
  declare class RangeDateFormatterImpurePipe<D> extends RangeDateFormatterPipe<D> {
3023
- transform([value1, value2]: D[] | string[]): string;
3465
+ transform(value: D[] | string[] | null | undefined): string;
3024
3466
  static ɵfac: i0.ɵɵFactoryDeclaration<RangeDateFormatterImpurePipe<any>, never>;
3025
3467
  static ɵpipe: i0.ɵɵPipeDeclaration<RangeDateFormatterImpurePipe<any>, "rangeLongDateImpurePipe", true>;
3026
3468
  }
3027
3469
  declare class RangeShortDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
3028
- transform([value1, value2]: D[] | string[]): string;
3470
+ transform(value: D[] | string[] | null | undefined): string;
3029
3471
  static ɵfac: i0.ɵɵFactoryDeclaration<RangeShortDateFormatterPipe<any>, never>;
3030
3472
  static ɵpipe: i0.ɵɵPipeDeclaration<RangeShortDateFormatterPipe<any>, "rangeShortDate", true>;
3031
3473
  }
3032
3474
  declare class RangeShortDateFormatterImpurePipe<D> extends RangeShortDateFormatterPipe<D> {
3033
- transform([value1, value2]: D[] | string[]): string;
3475
+ transform(value: D[] | string[] | null | undefined): string;
3034
3476
  static ɵfac: i0.ɵɵFactoryDeclaration<RangeShortDateFormatterImpurePipe<any>, never>;
3035
3477
  static ɵpipe: i0.ɵɵPipeDeclaration<RangeShortDateFormatterImpurePipe<any>, "rangeShortDateImpurePipe", true>;
3036
3478
  }
3037
3479
  declare class RangeDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
3038
- transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string;
3480
+ transform(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3039
3481
  static ɵfac: i0.ɵɵFactoryDeclaration<RangeDateTimeFormatterPipe<any>, never>;
3040
3482
  static ɵpipe: i0.ɵɵPipeDeclaration<RangeDateTimeFormatterPipe<any>, "rangeLongDateTime", true>;
3041
3483
  }
3042
3484
  declare class RangeDateTimeFormatterImpurePipe<D> extends RangeDateTimeFormatterPipe<D> {
3043
- transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string;
3485
+ transform(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3044
3486
  static ɵfac: i0.ɵɵFactoryDeclaration<RangeDateTimeFormatterImpurePipe<any>, never>;
3045
3487
  static ɵpipe: i0.ɵɵPipeDeclaration<RangeDateTimeFormatterImpurePipe<any>, "rangeLongDateTimeImpurePipe", true>;
3046
3488
  }
3047
3489
  declare class RangeMiddleDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
3048
- transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string;
3490
+ transform(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3049
3491
  static ɵfac: i0.ɵɵFactoryDeclaration<RangeMiddleDateTimeFormatterPipe<any>, never>;
3050
3492
  static ɵpipe: i0.ɵɵPipeDeclaration<RangeMiddleDateTimeFormatterPipe<any>, "rangeMiddleDateTime", true>;
3051
3493
  }
3052
3494
  declare class RangeMiddleDateTimeFormatterImpurePipe<D> extends RangeMiddleDateTimeFormatterPipe<D> {
3053
- transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string;
3495
+ transform(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3054
3496
  static ɵfac: i0.ɵɵFactoryDeclaration<RangeMiddleDateTimeFormatterImpurePipe<any>, never>;
3055
3497
  static ɵpipe: i0.ɵɵPipeDeclaration<RangeMiddleDateTimeFormatterImpurePipe<any>, "rangeMiddleDateTimeImpurePipe", true>;
3056
3498
  }
3057
3499
  declare class RangeShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
3058
- transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string;
3500
+ transform(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3059
3501
  static ɵfac: i0.ɵɵFactoryDeclaration<RangeShortDateTimeFormatterPipe<any>, never>;
3060
3502
  static ɵpipe: i0.ɵɵPipeDeclaration<RangeShortDateTimeFormatterPipe<any>, "rangeShortDateTime", true>;
3061
3503
  }
3062
3504
  declare class RangeShortDateTimeFormatterImpurePipe<D> extends RangeShortDateTimeFormatterPipe<D> {
3063
- transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string;
3505
+ transform(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3064
3506
  static ɵfac: i0.ɵɵFactoryDeclaration<RangeShortDateTimeFormatterImpurePipe<any>, never>;
3065
3507
  static ɵpipe: i0.ɵɵPipeDeclaration<RangeShortDateTimeFormatterImpurePipe<any>, "rangeShortDateTimeImpurePipe", true>;
3066
3508
  }
3067
- declare class KbqAbsoluteLongDatePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string, [currYear?: boolean]> implements PipeTransform {
3068
- transform(value: D | string, currYear?: boolean): string;
3069
- protected format(value: D | string, currYear?: boolean): string;
3509
+ declare class DurationShortestFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
3510
+ transform(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3511
+ static ɵfac: i0.ɵɵFactoryDeclaration<DurationShortestFormatterPipe<any>, never>;
3512
+ static ɵpipe: i0.ɵɵPipeDeclaration<DurationShortestFormatterPipe<any>, "durationShortest", true>;
3513
+ }
3514
+ declare class DurationShortestFormatterImpurePipe<D> extends DurationShortestFormatterPipe<D> {
3515
+ transform(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3516
+ static ɵfac: i0.ɵɵFactoryDeclaration<DurationShortestFormatterImpurePipe<any>, never>;
3517
+ static ɵpipe: i0.ɵɵPipeDeclaration<DurationShortestFormatterImpurePipe<any>, "durationShortestImpurePipe", true>;
3518
+ }
3519
+ declare class DurationLongFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
3520
+ transform(value: D[] | string[] | null | undefined, units?: DurationUnit[], fraction?: boolean): string;
3521
+ static ɵfac: i0.ɵɵFactoryDeclaration<DurationLongFormatterPipe<any>, never>;
3522
+ static ɵpipe: i0.ɵɵPipeDeclaration<DurationLongFormatterPipe<any>, "durationLong", true>;
3523
+ }
3524
+ declare class DurationLongFormatterImpurePipe<D> extends DurationLongFormatterPipe<D> {
3525
+ transform(value: D[] | string[] | null | undefined, units?: DurationUnit[], fraction?: boolean): string;
3526
+ static ɵfac: i0.ɵɵFactoryDeclaration<DurationLongFormatterImpurePipe<any>, never>;
3527
+ static ɵpipe: i0.ɵɵPipeDeclaration<DurationLongFormatterImpurePipe<any>, "durationLongImpurePipe", true>;
3528
+ }
3529
+ declare class DurationShortFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {
3530
+ transform(value: D[] | string[] | null | undefined, units?: DurationUnit[], fraction?: boolean): string;
3531
+ static ɵfac: i0.ɵɵFactoryDeclaration<DurationShortFormatterPipe<any>, never>;
3532
+ static ɵpipe: i0.ɵɵPipeDeclaration<DurationShortFormatterPipe<any>, "durationShort", true>;
3533
+ }
3534
+ declare class DurationShortFormatterImpurePipe<D> extends DurationShortFormatterPipe<D> {
3535
+ transform(value: D[] | string[] | null | undefined, units?: DurationUnit[], fraction?: boolean): string;
3536
+ static ɵfac: i0.ɵɵFactoryDeclaration<DurationShortFormatterImpurePipe<any>, never>;
3537
+ static ɵpipe: i0.ɵɵPipeDeclaration<DurationShortFormatterImpurePipe<any>, "durationShortImpurePipe", true>;
3538
+ }
3539
+ declare class KbqAbsoluteLongDatePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string | null | undefined, [currYear?: boolean]> implements PipeTransform {
3540
+ transform(value: D | string | null | undefined, currYear?: boolean): string;
3541
+ protected format(value: D | string | null | undefined, currYear?: boolean): string;
3070
3542
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAbsoluteLongDatePipe<any>, never>;
3071
3543
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqAbsoluteLongDatePipe<any>, "kbqAbsoluteLongDate", true>;
3072
3544
  }
3073
- declare class KbqAbsoluteShortDatePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string, [currYear?: boolean]> implements PipeTransform {
3074
- transform(value: D | string, currYear?: boolean): string;
3075
- protected format(value: D | string, currYear?: boolean): string;
3545
+ declare class KbqAbsoluteShortDatePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string | null | undefined, [currYear?: boolean]> implements PipeTransform {
3546
+ transform(value: D | string | null | undefined, currYear?: boolean): string;
3547
+ protected format(value: D | string | null | undefined, currYear?: boolean): string;
3076
3548
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAbsoluteShortDatePipe<any>, never>;
3077
3549
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqAbsoluteShortDatePipe<any>, "kbqAbsoluteShortDate", true>;
3078
3550
  }
3079
- declare class KbqAbsoluteLongDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string, [options?: DateTimeOptions]> implements PipeTransform {
3080
- transform(value: D | string, options?: DateTimeOptions): string;
3081
- protected format(value: D | string, options?: DateTimeOptions): string;
3551
+ declare class KbqAbsoluteLongDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string | null | undefined, [options?: DateTimeOptions]> implements PipeTransform {
3552
+ transform(value: D | string | null | undefined, options?: DateTimeOptions): string;
3553
+ protected format(value: D | string | null | undefined, options?: DateTimeOptions): string;
3082
3554
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAbsoluteLongDateTimePipe<any>, never>;
3083
3555
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqAbsoluteLongDateTimePipe<any>, "kbqAbsoluteLongDateTime", true>;
3084
3556
  }
3085
- declare class KbqAbsoluteShortDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string, [options?: DateTimeOptions]> implements PipeTransform {
3086
- transform(value: D | string, options?: DateTimeOptions): string;
3087
- protected format(value: D | string, options?: DateTimeOptions): string;
3557
+ declare class KbqAbsoluteShortDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string | null | undefined, [options?: DateTimeOptions]> implements PipeTransform {
3558
+ transform(value: D | string | null | undefined, options?: DateTimeOptions): string;
3559
+ protected format(value: D | string | null | undefined, options?: DateTimeOptions): string;
3088
3560
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAbsoluteShortDateTimePipe<any>, never>;
3089
3561
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqAbsoluteShortDateTimePipe<any>, "kbqAbsoluteShortDateTime", true>;
3090
3562
  }
3091
- declare class KbqRelativeLongDatePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string, []> implements PipeTransform {
3092
- transform(value: D | string): string;
3093
- protected format(value: D | string): string;
3563
+ declare class KbqRelativeLongDatePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string | null | undefined, []> implements PipeTransform {
3564
+ transform(value: D | string | null | undefined): string;
3565
+ protected format(value: D | string | null | undefined): string;
3094
3566
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqRelativeLongDatePipe<any>, never>;
3095
3567
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqRelativeLongDatePipe<any>, "kbqRelativeLongDate", true>;
3096
3568
  }
3097
- declare class KbqRelativeShortDatePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string, []> implements PipeTransform {
3098
- transform(value: D | string): string;
3099
- protected format(value: D | string): string;
3569
+ declare class KbqRelativeShortDatePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string | null | undefined, []> implements PipeTransform {
3570
+ transform(value: D | string | null | undefined): string;
3571
+ protected format(value: D | string | null | undefined): string;
3100
3572
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqRelativeShortDatePipe<any>, never>;
3101
3573
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqRelativeShortDatePipe<any>, "kbqRelativeShortDate", true>;
3102
3574
  }
3103
- declare class KbqRelativeLongDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string, [options?: DateTimeOptions]> implements PipeTransform {
3104
- transform(value: D | string, options?: DateTimeOptions): string;
3105
- protected format(value: D | string, options?: DateTimeOptions): string;
3575
+ declare class KbqRelativeLongDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string | null | undefined, [options?: DateTimeOptions]> implements PipeTransform {
3576
+ transform(value: D | string | null | undefined, options?: DateTimeOptions): string;
3577
+ protected format(value: D | string | null | undefined, options?: DateTimeOptions): string;
3106
3578
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqRelativeLongDateTimePipe<any>, never>;
3107
3579
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqRelativeLongDateTimePipe<any>, "kbqRelativeLongDateTime", true>;
3108
3580
  }
3109
- declare class KbqRelativeShortDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string, [options?: DateTimeOptions]> implements PipeTransform {
3110
- transform(value: D | string, options?: DateTimeOptions): string;
3111
- protected format(value: D | string, options?: DateTimeOptions): string;
3581
+ declare class KbqRelativeShortDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D | string | null | undefined, [options?: DateTimeOptions]> implements PipeTransform {
3582
+ transform(value: D | string | null | undefined, options?: DateTimeOptions): string;
3583
+ protected format(value: D | string | null | undefined, options?: DateTimeOptions): string;
3112
3584
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqRelativeShortDateTimePipe<any>, never>;
3113
3585
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqRelativeShortDateTimePipe<any>, "kbqRelativeShortDateTime", true>;
3114
3586
  }
3115
- declare class KbqRangeLongDatePipe<D> extends BaseLocaleAwareFormatterPipe<D, D[] | string[], []> implements PipeTransform {
3116
- transform(value: D[] | string[]): string;
3117
- protected format([value1, value2]: D[] | string[]): string;
3587
+ declare class KbqRangeLongDatePipe<D> extends BaseLocaleAwareFormatterPipe<D, D[] | string[] | null | undefined, []> implements PipeTransform {
3588
+ transform(value: D[] | string[] | null | undefined): string;
3589
+ protected format(value: D[] | string[] | null | undefined): string;
3118
3590
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqRangeLongDatePipe<any>, never>;
3119
3591
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqRangeLongDatePipe<any>, "kbqRangeLongDate", true>;
3120
3592
  }
3121
- declare class KbqRangeShortDatePipe<D> extends BaseLocaleAwareFormatterPipe<D, D[] | string[], []> implements PipeTransform {
3122
- transform(value: D[] | string[]): string;
3123
- protected format([value1, value2]: D[] | string[]): string;
3593
+ declare class KbqRangeShortDatePipe<D> extends BaseLocaleAwareFormatterPipe<D, D[] | string[] | null | undefined, []> implements PipeTransform {
3594
+ transform(value: D[] | string[] | null | undefined): string;
3595
+ protected format(value: D[] | string[] | null | undefined): string;
3124
3596
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqRangeShortDatePipe<any>, never>;
3125
3597
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqRangeShortDatePipe<any>, "kbqRangeShortDate", true>;
3126
3598
  }
3127
- declare class KbqRangeLongDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D[] | string[], [options?: DateTimeOptions]> implements PipeTransform {
3128
- transform(value: D[] | string[], options?: DateTimeOptions): string;
3129
- protected format([value1, value2]: D[] | string[], options?: DateTimeOptions): string;
3599
+ declare class KbqRangeLongDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D[] | string[] | null | undefined, [options?: DateTimeOptions]> implements PipeTransform {
3600
+ transform(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3601
+ protected format(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3130
3602
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqRangeLongDateTimePipe<any>, never>;
3131
3603
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqRangeLongDateTimePipe<any>, "kbqRangeLongDateTime", true>;
3132
3604
  }
3133
- declare class KbqRangeMiddleDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D[] | string[], [options?: DateTimeOptions]> implements PipeTransform {
3134
- transform(value: D[] | string[], options?: DateTimeOptions): string;
3135
- protected format([value1, value2]: D[] | string[], options?: DateTimeOptions): string;
3605
+ declare class KbqRangeMiddleDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D[] | string[] | null | undefined, [options?: DateTimeOptions]> implements PipeTransform {
3606
+ transform(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3607
+ protected format(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3136
3608
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqRangeMiddleDateTimePipe<any>, never>;
3137
3609
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqRangeMiddleDateTimePipe<any>, "kbqRangeMiddleDateTime", true>;
3138
3610
  }
3139
- declare class KbqRangeShortDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D[] | string[], [options?: DateTimeOptions]> implements PipeTransform {
3140
- transform(value: D[] | string[], options?: DateTimeOptions): string;
3141
- protected format([value1, value2]: D[] | string[], options?: DateTimeOptions): string;
3611
+ declare class KbqRangeShortDateTimePipe<D> extends BaseLocaleAwareFormatterPipe<D, D[] | string[] | null | undefined, [options?: DateTimeOptions]> implements PipeTransform {
3612
+ transform(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3613
+ protected format(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3142
3614
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqRangeShortDateTimePipe<any>, never>;
3143
3615
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqRangeShortDateTimePipe<any>, "kbqRangeShortDateTime", true>;
3144
3616
  }
3617
+ /**
3618
+ * Formats the duration between two dates as a digital-clock value, e.g. `48:02:25`.
3619
+ *
3620
+ * Takes a `[from, to]` tuple, like the range pipes. `options.seconds` defaults to `true` and
3621
+ * `options.milliseconds` to `false`; `options.currYear` is not used by this format.
3622
+ *
3623
+ * Renders an empty string when the tuple itself or one of its bounds is missing or invalid, or when
3624
+ * `from` is later than `to`.
3625
+ *
3626
+ * @example
3627
+ * ```html
3628
+ * {{ [startedAt, finishedAt] | kbqDurationShortest }}
3629
+ * {{ [startedAt, finishedAt] | kbqDurationShortest: { seconds: false } }}
3630
+ * ```
3631
+ */
3632
+ declare class KbqDurationShortestPipe<D> extends BaseLocaleAwareFormatterPipe<D, D[] | string[] | null | undefined, [options?: DateTimeOptions]> implements PipeTransform {
3633
+ transform(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3634
+ protected format(value: D[] | string[] | null | undefined, options?: DateTimeOptions): string;
3635
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqDurationShortestPipe<any>, never>;
3636
+ static ɵpipe: i0.ɵɵPipeDeclaration<KbqDurationShortestPipe<any>, "kbqDurationShortest", true>;
3637
+ }
3638
+ /**
3639
+ * Formats the duration between two dates in the long text format, e.g. `2 дня и 4 часа`.
3640
+ *
3641
+ * Takes a `[from, to]` tuple, like the range pipes. `units` restricts the units to show (the
3642
+ * formatter picks them automatically when omitted), `fraction` adds a fractional part for years
3643
+ * and months.
3644
+ *
3645
+ * Renders an empty string when the tuple itself or one of its bounds is missing or invalid, or when
3646
+ * `from` is later than `to`.
3647
+ *
3648
+ * @example
3649
+ * ```html
3650
+ * {{ [startedAt, finishedAt] | kbqDurationLong }}
3651
+ * {{ [startedAt, finishedAt] | kbqDurationLong: ['hours', 'minutes'] }}
3652
+ * {{ [startedAt, finishedAt] | kbqDurationLong: ['years'] : true }}
3653
+ * ```
3654
+ */
3655
+ declare class KbqDurationLongPipe<D> extends BaseLocaleAwareFormatterPipe<D, D[] | string[] | null | undefined, [
3656
+ units?: DurationUnit[],
3657
+ fraction?: boolean
3658
+ ]> implements PipeTransform {
3659
+ transform(value: D[] | string[] | null | undefined, units?: DurationUnit[], fraction?: boolean): string;
3660
+ protected format(value: D[] | string[] | null | undefined, units?: DurationUnit[], fraction?: boolean): string;
3661
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqDurationLongPipe<any>, never>;
3662
+ static ɵpipe: i0.ɵɵPipeDeclaration<KbqDurationLongPipe<any>, "kbqDurationLong", true>;
3663
+ }
3664
+ /**
3665
+ * Formats the duration between two dates in the short text format, e.g. `2 д 4 ч`.
3666
+ *
3667
+ * Takes a `[from, to]` tuple, like the range pipes. `units` restricts the units to show (the
3668
+ * formatter picks them automatically when omitted), `fraction` adds a fractional part for years
3669
+ * and months.
3670
+ *
3671
+ * Renders an empty string when the tuple itself or one of its bounds is missing or invalid, or when
3672
+ * `from` is later than `to`.
3673
+ *
3674
+ * @example
3675
+ * ```html
3676
+ * {{ [startedAt, finishedAt] | kbqDurationShort }}
3677
+ * {{ [startedAt, finishedAt] | kbqDurationShort: ['seconds', 'milliseconds'] }}
3678
+ * ```
3679
+ */
3680
+ declare class KbqDurationShortPipe<D> extends BaseLocaleAwareFormatterPipe<D, D[] | string[] | null | undefined, [
3681
+ units?: DurationUnit[],
3682
+ fraction?: boolean
3683
+ ]> implements PipeTransform {
3684
+ transform(value: D[] | string[] | null | undefined, units?: DurationUnit[], fraction?: boolean): string;
3685
+ protected format(value: D[] | string[] | null | undefined, units?: DurationUnit[], fraction?: boolean): string;
3686
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqDurationShortPipe<any>, never>;
3687
+ static ɵpipe: i0.ɵɵPipeDeclaration<KbqDurationShortPipe<any>, "kbqDurationShort", true>;
3688
+ }
3145
3689
 
3146
3690
  /**
3147
3691
  * Available unit systems for file size formatting.
@@ -3327,7 +3871,7 @@ declare const getHumanizedBytes: (value: number, system: KbqUnitSystem, threshol
3327
3871
 
3328
3872
  declare class KbqFormattersModule {
3329
3873
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqFormattersModule, never>;
3330
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqFormattersModule, never, [typeof AbsoluteDateFormatterPipe, typeof AbsoluteDateTimeFormatterPipe, typeof AbsoluteDateShortFormatterPipe, typeof AbsoluteShortDateTimeFormatterPipe, typeof RelativeDateFormatterPipe, typeof RelativeDateTimeFormatterPipe, typeof RelativeShortDateFormatterPipe, typeof RelativeShortDateTimeFormatterPipe, typeof RangeDateFormatterPipe, typeof RangeShortDateFormatterPipe, typeof RangeDateTimeFormatterPipe, typeof RangeShortDateTimeFormatterPipe, typeof RangeMiddleDateTimeFormatterPipe, typeof AbsoluteDateFormatterImpurePipe, typeof AbsoluteDateTimeFormatterImpurePipe, typeof AbsoluteDateShortFormatterImpurePipe, typeof AbsoluteShortDateTimeFormatterImpurePipe, typeof RelativeDateFormatterImpurePipe, typeof RelativeDateTimeFormatterImpurePipe, typeof RelativeShortDateFormatterImpurePipe, typeof RelativeShortDateTimeFormatterImpurePipe, typeof RangeDateFormatterImpurePipe, typeof RangeShortDateFormatterImpurePipe, typeof RangeDateTimeFormatterImpurePipe, typeof RangeShortDateTimeFormatterImpurePipe, typeof RangeMiddleDateTimeFormatterImpurePipe, typeof KbqAbsoluteLongDatePipe, typeof KbqAbsoluteLongDateTimePipe, typeof KbqAbsoluteShortDatePipe, typeof KbqAbsoluteShortDateTimePipe, typeof KbqRelativeLongDatePipe, typeof KbqRelativeLongDateTimePipe, typeof KbqRelativeShortDatePipe, typeof KbqRelativeShortDateTimePipe, typeof KbqRangeLongDatePipe, typeof KbqRangeLongDateTimePipe, typeof KbqRangeMiddleDateTimePipe, typeof KbqRangeShortDatePipe, typeof KbqRangeShortDateTimePipe, typeof KbqDataSizePipe, typeof KbqDecimalPipe, typeof KbqRoundDecimalPipe, typeof KbqTableNumberPipe], [typeof KbqDecimalPipe, typeof KbqRoundDecimalPipe, typeof KbqTableNumberPipe, typeof AbsoluteDateFormatterPipe, typeof AbsoluteDateTimeFormatterPipe, typeof AbsoluteDateShortFormatterPipe, typeof AbsoluteShortDateTimeFormatterPipe, typeof RelativeDateFormatterPipe, typeof RelativeDateTimeFormatterPipe, typeof RelativeShortDateFormatterPipe, typeof RelativeShortDateTimeFormatterPipe, typeof RangeDateFormatterPipe, typeof RangeShortDateFormatterPipe, typeof RangeDateTimeFormatterPipe, typeof RangeShortDateTimeFormatterPipe, typeof RangeMiddleDateTimeFormatterPipe, typeof AbsoluteDateFormatterImpurePipe, typeof AbsoluteDateTimeFormatterImpurePipe, typeof AbsoluteDateShortFormatterImpurePipe, typeof AbsoluteShortDateTimeFormatterImpurePipe, typeof RelativeDateFormatterImpurePipe, typeof RelativeDateTimeFormatterImpurePipe, typeof RelativeShortDateFormatterImpurePipe, typeof RelativeShortDateTimeFormatterImpurePipe, typeof RangeDateFormatterImpurePipe, typeof RangeShortDateFormatterImpurePipe, typeof RangeDateTimeFormatterImpurePipe, typeof RangeShortDateTimeFormatterImpurePipe, typeof RangeMiddleDateTimeFormatterImpurePipe, typeof KbqAbsoluteLongDatePipe, typeof KbqAbsoluteLongDateTimePipe, typeof KbqAbsoluteShortDatePipe, typeof KbqAbsoluteShortDateTimePipe, typeof KbqRelativeLongDatePipe, typeof KbqRelativeLongDateTimePipe, typeof KbqRelativeShortDatePipe, typeof KbqRelativeShortDateTimePipe, typeof KbqRangeLongDatePipe, typeof KbqRangeLongDateTimePipe, typeof KbqRangeMiddleDateTimePipe, typeof KbqRangeShortDatePipe, typeof KbqRangeShortDateTimePipe, typeof KbqDataSizePipe]>;
3874
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqFormattersModule, never, [typeof AbsoluteDateFormatterPipe, typeof AbsoluteDateTimeFormatterPipe, typeof AbsoluteDateShortFormatterPipe, typeof AbsoluteShortDateTimeFormatterPipe, typeof RelativeDateFormatterPipe, typeof RelativeDateTimeFormatterPipe, typeof RelativeShortDateFormatterPipe, typeof RelativeShortDateTimeFormatterPipe, typeof RangeDateFormatterPipe, typeof RangeShortDateFormatterPipe, typeof RangeDateTimeFormatterPipe, typeof RangeShortDateTimeFormatterPipe, typeof RangeMiddleDateTimeFormatterPipe, typeof DurationShortestFormatterPipe, typeof DurationLongFormatterPipe, typeof DurationShortFormatterPipe, typeof AbsoluteDateFormatterImpurePipe, typeof AbsoluteDateTimeFormatterImpurePipe, typeof AbsoluteDateShortFormatterImpurePipe, typeof AbsoluteShortDateTimeFormatterImpurePipe, typeof RelativeDateFormatterImpurePipe, typeof RelativeDateTimeFormatterImpurePipe, typeof RelativeShortDateFormatterImpurePipe, typeof RelativeShortDateTimeFormatterImpurePipe, typeof RangeDateFormatterImpurePipe, typeof RangeShortDateFormatterImpurePipe, typeof RangeDateTimeFormatterImpurePipe, typeof RangeShortDateTimeFormatterImpurePipe, typeof RangeMiddleDateTimeFormatterImpurePipe, typeof DurationShortestFormatterImpurePipe, typeof DurationLongFormatterImpurePipe, typeof DurationShortFormatterImpurePipe, typeof KbqAbsoluteLongDatePipe, typeof KbqAbsoluteLongDateTimePipe, typeof KbqAbsoluteShortDatePipe, typeof KbqAbsoluteShortDateTimePipe, typeof KbqRelativeLongDatePipe, typeof KbqRelativeLongDateTimePipe, typeof KbqRelativeShortDatePipe, typeof KbqRelativeShortDateTimePipe, typeof KbqRangeLongDatePipe, typeof KbqRangeLongDateTimePipe, typeof KbqRangeMiddleDateTimePipe, typeof KbqRangeShortDatePipe, typeof KbqRangeShortDateTimePipe, typeof KbqDurationShortestPipe, typeof KbqDurationLongPipe, typeof KbqDurationShortPipe, typeof KbqDataSizePipe, typeof KbqDecimalPipe, typeof KbqRoundDecimalPipe, typeof KbqTableNumberPipe], [typeof KbqDecimalPipe, typeof KbqRoundDecimalPipe, typeof KbqTableNumberPipe, typeof AbsoluteDateFormatterPipe, typeof AbsoluteDateTimeFormatterPipe, typeof AbsoluteDateShortFormatterPipe, typeof AbsoluteShortDateTimeFormatterPipe, typeof RelativeDateFormatterPipe, typeof RelativeDateTimeFormatterPipe, typeof RelativeShortDateFormatterPipe, typeof RelativeShortDateTimeFormatterPipe, typeof RangeDateFormatterPipe, typeof RangeShortDateFormatterPipe, typeof RangeDateTimeFormatterPipe, typeof RangeShortDateTimeFormatterPipe, typeof RangeMiddleDateTimeFormatterPipe, typeof DurationShortestFormatterPipe, typeof DurationLongFormatterPipe, typeof DurationShortFormatterPipe, typeof AbsoluteDateFormatterImpurePipe, typeof AbsoluteDateTimeFormatterImpurePipe, typeof AbsoluteDateShortFormatterImpurePipe, typeof AbsoluteShortDateTimeFormatterImpurePipe, typeof RelativeDateFormatterImpurePipe, typeof RelativeDateTimeFormatterImpurePipe, typeof RelativeShortDateFormatterImpurePipe, typeof RelativeShortDateTimeFormatterImpurePipe, typeof RangeDateFormatterImpurePipe, typeof RangeShortDateFormatterImpurePipe, typeof RangeDateTimeFormatterImpurePipe, typeof RangeShortDateTimeFormatterImpurePipe, typeof RangeMiddleDateTimeFormatterImpurePipe, typeof DurationShortestFormatterImpurePipe, typeof DurationLongFormatterImpurePipe, typeof DurationShortFormatterImpurePipe, typeof KbqAbsoluteLongDatePipe, typeof KbqAbsoluteLongDateTimePipe, typeof KbqAbsoluteShortDatePipe, typeof KbqAbsoluteShortDateTimePipe, typeof KbqRelativeLongDatePipe, typeof KbqRelativeLongDateTimePipe, typeof KbqRelativeShortDatePipe, typeof KbqRelativeShortDateTimePipe, typeof KbqRangeLongDatePipe, typeof KbqRangeLongDateTimePipe, typeof KbqRangeMiddleDateTimePipe, typeof KbqRangeShortDatePipe, typeof KbqRangeShortDateTimePipe, typeof KbqDurationShortestPipe, typeof KbqDurationLongPipe, typeof KbqDurationShortPipe, typeof KbqDataSizePipe]>;
3331
3875
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqFormattersModule>;
3332
3876
  }
3333
3877
 
@@ -3480,7 +4024,7 @@ type KbqFileTypeSpecifier = Parameters<typeof FileValidators.isCorrectExtension>
3480
4024
  /** @docs-private */
3481
4025
  declare const kbqHighlightMark: (text: string) => string;
3482
4026
  declare class KbqHighlightPipe implements PipeTransform {
3483
- transform(value: unknown, keyword: unknown): string;
4027
+ transform(value: unknown, keyword: unknown, foldDiacritics?: boolean): string;
3484
4028
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqHighlightPipe, never>;
3485
4029
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqHighlightPipe, "mcHighlight", true>;
3486
4030
  }
@@ -3488,7 +4032,7 @@ declare class KbqHighlightPipe implements PipeTransform {
3488
4032
  /** @docs-private */
3489
4033
  declare const kbqHighlightBackgroundMark: (text: string) => string;
3490
4034
  declare class KbqHighlightBackgroundPipe implements PipeTransform {
3491
- transform(value: unknown, keyword: unknown): string;
4035
+ transform(value: unknown, keyword: unknown, foldDiacritics?: boolean): string;
3492
4036
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqHighlightBackgroundPipe, never>;
3493
4037
  static ɵpipe: i0.ɵɵPipeDeclaration<KbqHighlightBackgroundPipe, "kbqHighlightBackground", true>;
3494
4038
  }
@@ -3667,6 +4211,14 @@ declare class KbqRectangleItem {
3667
4211
  get collapsed(): boolean;
3668
4212
  set collapsed(value: boolean);
3669
4213
  private _collapsed;
4214
+ /**
4215
+ * Outer width of the item: its border box plus horizontal margins.
4216
+ *
4217
+ * `getComputedStyle().width` resolves to the used content-box width whatever `box-sizing` says,
4218
+ * so it silently drops padding and borders on the `border-box` elements this measures, and the
4219
+ * result would change again under a consuming application's global reset.
4220
+ * `getBoundingClientRect()` is always the border box, which makes it host-independent.
4221
+ */
3670
4222
  getOuterElementWidth(): number;
3671
4223
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqRectangleItem, never>;
3672
4224
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqRectangleItem, never, never, {}, {}, never, never, true, never>;
@@ -3707,6 +4259,15 @@ declare class KbqOptionActionComponent implements AfterViewInit, OnDestroy {
3707
4259
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqOptionActionComponent, "kbq-option-action", ["kbqOptionAction"], { "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["[kbq-icon]"], true, never>;
3708
4260
  static ngAcceptInputType_disabled: unknown;
3709
4261
  }
4262
+ /**
4263
+ * Moves focus from an option to its trailing action button on Tab.
4264
+ *
4265
+ * Shared by `KbqListOption` and `KbqTreeOption` so the two cannot drift apart. Tab is swallowed only
4266
+ * when focus actually landed: the action lives in a `display: none` container until the option is
4267
+ * hovered or keyboard-focused, and focusing a hidden element is a no-op, so suppressing Tab there
4268
+ * would trap focus on the option.
4269
+ */
4270
+ declare function kbqFocusOptionActionOnTab($event: KeyboardEvent, actionButton: KbqOptionActionComponent | undefined): void;
3710
4271
 
3711
4272
  declare class KbqActionContainer {
3712
4273
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqActionContainer, never>;
@@ -3835,19 +4396,18 @@ declare class KbqOption extends KbqOptionBase implements AfterViewChecked, OnDes
3835
4396
  private _active;
3836
4397
  private mostRecentViewValue;
3837
4398
  /**
3838
- * Flag that indicates whether the component is currently focused by a mouse interaction.
3839
- *
3840
- * When set to `true`, the component has focus resulting from a mouse click or
3841
- * other pointer event. It is automatically cleared when the component loses
3842
- * focus or if focus is obtained through keyboard navigation or programmatic means.
4399
+ * Whether the pointer is currently over this option. Cleared on `mouseleave` rather than when the
4400
+ * option is focused: hovering the option that is already active does not move the key manager's
4401
+ * index, so no focus follows and a flag cleared only there would stay armed indefinitely.
3843
4402
  */
3844
- private isFocusedByMouse;
4403
+ private hoveredByPointer;
3845
4404
  ngAfterViewChecked(): void;
3846
4405
  ngOnDestroy(): void;
3847
4406
  /** @docs-private */
3848
4407
  getHeight(): number;
3849
4408
  select(emitEvent?: boolean): void;
3850
4409
  deselect(emitEvent?: boolean): void;
4410
+ /** Moves keyboard focus to this option and reveals it — see {@link kbqFocusAndReveal}. */
3851
4411
  focus(): void;
3852
4412
  /**
3853
4413
  * This method sets display styles on the option to make it appear
@@ -3876,6 +4436,8 @@ declare class KbqOption extends KbqOptionBase implements AfterViewChecked, OnDes
3876
4436
  getHostElement(): HTMLElement;
3877
4437
  /** @docs-private */
3878
4438
  protected onMouseenter(): void;
4439
+ /** @docs-private */
4440
+ protected onMouseleave(): void;
3879
4441
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqOption, never>;
3880
4442
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqOption, "kbq-option", ["kbqOption"], { "value": { "alias": "value"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "userSelect": { "alias": "userSelect"; "required": false; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; }; "viewValue": { "alias": "viewValue"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "onSelectionChange": "onSelectionChange"; }, never, ["kbq-pseudo-checkbox", "*"], true, never>;
3881
4443
  }
@@ -3894,6 +4456,9 @@ declare function countGroupLabelsBeforeOption(optionIndex: number, options: Quer
3894
4456
  * @param currentScrollPosition Current scroll position of the panel.
3895
4457
  * @param panelHeight Height of the panel.
3896
4458
  * @docs-private
4459
+ * @deprecated Unused — an option reveals itself on focus through `KbqOption.focus`, which lets the
4460
+ * browser resolve the scroll container instead of computing an offset from a uniform row height. Will be
4461
+ * removed in the next major release.
3897
4462
  */
3898
4463
  declare function getOptionScrollPosition(optionIndex: number, optionHeight: number, currentScrollPosition: number, panelHeight: number): number;
3899
4464
 
@@ -4022,6 +4587,78 @@ declare class KbqOverflowShadowBottom {
4022
4587
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqOverflowShadowBottom, "[kbqOverflowShadowBottom]", ["kbqOverflowShadowBottom"], { "ref": { "alias": "kbqOverflowShadowBottom"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4023
4588
  }
4024
4589
 
4590
+ /** Configuration options for `KbqAutoHideScrollStrategy`. */
4591
+ interface KbqAutoHideScrollStrategyConfig {
4592
+ /**
4593
+ * Element whose position is tracked against ancestor scroll container boundaries.
4594
+ * When omitted, the overlay panel is checked against the viewport instead.
4595
+ */
4596
+ originElement?: HTMLElement;
4597
+ /** Scroll event throttle in ms. Defaults to 20. */
4598
+ scrollThrottle?: number;
4599
+ }
4600
+ /** Lifecycle hooks for `KbqAutoHideScrollStrategy`, passed via `kbqAutoHideScrollStrategyFactory`. */
4601
+ interface KbqAutoHideScrollStrategyHooks {
4602
+ /** Called (inside Angular zone) when the tracked element scrolls outside its scroll container boundary. */
4603
+ onHide?: () => void;
4604
+ }
4605
+ /**
4606
+ * Scroll strategy that repositions the overlay on scroll and reports when the tracked element
4607
+ * moves outside its boundary:
4608
+ *
4609
+ * - With `originElement`: tracks the origin against each ancestor `CdkScrollable` container.
4610
+ * - Without `originElement`: tracks the overlay panel against the viewport.
4611
+ *
4612
+ * Two ways to react to the out-of-bounds event, usable independently or together:
4613
+ * - Subscribe to `hide` — a handle for callers that don't control how this strategy is
4614
+ * constructed (e.g. reaching into an existing component's `overlayRef.getConfig().scrollStrategy`
4615
+ * from the outside).
4616
+ * - Pass `onHide` via the factory returned by `kbqAutoHideScrollStrategyFactory` — for callers
4617
+ * that construct the strategy themselves.
4618
+ */
4619
+ declare class KbqAutoHideScrollStrategy implements ScrollStrategy {
4620
+ private readonly scrollDispatcher;
4621
+ private readonly viewportRuler;
4622
+ private readonly ngZone;
4623
+ private readonly config;
4624
+ private hooks?;
4625
+ private readonly hideSubject;
4626
+ /** Emits once when the tracked element scrolls outside its boundary. */
4627
+ readonly hide: Observable<void>;
4628
+ private overlayRef;
4629
+ private scrollSubscription;
4630
+ private originElement;
4631
+ private ancestorScrollContainers;
4632
+ constructor(scrollDispatcher: ScrollDispatcher, viewportRuler: ViewportRuler, ngZone: NgZone, config?: KbqAutoHideScrollStrategyConfig, hooks?: KbqAutoHideScrollStrategyHooks | undefined);
4633
+ /** @docs-private */
4634
+ attach(overlayRef: OverlayRef): void;
4635
+ /** Subscribes to scroll events and starts repositioning / out-of-bounds detection. */
4636
+ enable(): void;
4637
+ /** Unsubscribes from scroll events. */
4638
+ disable(): void;
4639
+ /** Disables the strategy and completes `hide`. */
4640
+ detach(): void;
4641
+ private resolveOriginElement;
4642
+ private isOriginOutsideAncestors;
4643
+ private isOverlayOutsideViewport;
4644
+ private isOutsideBounds;
4645
+ private coerceOriginElement;
4646
+ }
4647
+ /**
4648
+ * Factory function for `KbqAutoHideScrollStrategy`. Use it directly as a `useFactory` value
4649
+ * when providing a component-level scroll strategy token (e.g. `KBQ_POPOVER_SCROLL_STRATEGY`).
4650
+ *
4651
+ * The returned function accepts an optional `hooks` object (see `KbqAutoHideScrollStrategyHooks`)
4652
+ * and an optional `config` (see `KbqAutoHideScrollStrategyConfig`).
4653
+ *
4654
+ * @example
4655
+ * ```ts
4656
+ * const createScrollStrategy = kbqAutoHideScrollStrategyFactory(scrollDispatcher, viewportRuler, ngZone);
4657
+ * const strategy = createScrollStrategy({ onHide: () => this.hide() }, { originElement });
4658
+ * ```
4659
+ */
4660
+ declare function kbqAutoHideScrollStrategyFactory(scrollDispatcher: ScrollDispatcher, viewportRuler: ViewportRuler, ngZone: NgZone): (hooks?: KbqAutoHideScrollStrategyHooks, config?: KbqAutoHideScrollStrategyConfig) => KbqAutoHideScrollStrategy;
4661
+
4025
4662
  declare const POSITION_MAP: {
4026
4663
  [key: string]: ConnectionPositionPair;
4027
4664
  };
@@ -4061,6 +4698,26 @@ declare const KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER: <T>(token: InjectionToken<T>,
4061
4698
  useFactory: (overlay: Overlay) => () => ScrollStrategy;
4062
4699
  };
4063
4700
 
4701
+ /**
4702
+ * Maximum height of an overlay panel's scrollable content, in pixels. `null` falls back to the
4703
+ * `--kbq-select-panel-size-max-height` design token.
4704
+ *
4705
+ * The cap covers the scrollable list only — a search field or a footer rendered beside it adds to the
4706
+ * panel's total height. With a `cdk-virtual-scroll-viewport` the value is an exact height rather than a
4707
+ * cap, because the viewport pins both its `min-height` and its `max-height` to the token.
4708
+ */
4709
+ type KbqPanelMaxHeight = number | null;
4710
+ /**
4711
+ * Renders `panelMaxHeight` as a CSS length for the `--kbq-select-panel-size-max-height` token.
4712
+ *
4713
+ * A non-finite value yields `null` so that Angular removes the inline custom property and the stylesheet
4714
+ * default applies again. A negative value is clamped to `0` because `max-height` rejects negative lengths
4715
+ * at computed-value time, which would drop the declaration and leave the list unbounded rather than at
4716
+ * its default height.
4717
+ * @docs-private
4718
+ */
4719
+ declare function kbqResolvePanelMaxHeightToken(panelMaxHeight: KbqPanelMaxHeight | undefined): string | null;
4720
+
4064
4721
  /**
4065
4722
  * Default minimum width of an overlay panel, in pixels.
4066
4723
  *
@@ -4120,6 +4777,44 @@ declare function kbqGetPanelWidthOrigin(origin: KbqPanelWidthOrigin): number;
4120
4777
  */
4121
4778
  declare function kbqResolvePanelWidth(panelWidth: KbqPanelWidth | undefined, panelMinWidth: KbqPanelMinWidth | undefined, triggerWidth: number): KbqResolvedPanelWidth;
4122
4779
 
4780
+ /**
4781
+ * A simple (x, y) coordinate. Picked from the DOM's own `DOMPointReadOnly` rather than hand-rolled, so
4782
+ * a plain `{ x, y }` literal (e.g. from a `MouseEvent`) satisfies it without constructing a `DOMPoint` —
4783
+ * `DOMPoint` isn't implemented in every runtime (e.g. jsdom).
4784
+ * @docs-private
4785
+ */
4786
+ type KbqPoint = Pick<DOMPointReadOnly, 'x' | 'y'>;
4787
+ /**
4788
+ * A triangle described by its three vertices.
4789
+ * @docs-private
4790
+ */
4791
+ interface KbqTriangle {
4792
+ a: KbqPoint;
4793
+ b: KbqPoint;
4794
+ c: KbqPoint;
4795
+ }
4796
+ /**
4797
+ * Whether `point` lies within (or on the edge of) `rect`.
4798
+ * @docs-private
4799
+ */
4800
+ declare function isPointInRect(point: KbqPoint, rect: DOMRect): boolean;
4801
+ /**
4802
+ * Whether `point` lies within (or on the edge of) `triangle`.
4803
+ *
4804
+ * Uses the sign of the cross product of each triangle edge with the point: the point is inside
4805
+ * only if it's consistently on the same side of all three edges.
4806
+ * @docs-private
4807
+ */
4808
+ declare function isPointInTriangle(point: KbqPoint, triangle: KbqTriangle): boolean;
4809
+ /**
4810
+ * Builds the "safe triangle" connecting `origin` (typically the pointer position where it left a
4811
+ * trigger) to the top and bottom corners of `targetRect` (typically a submenu panel) that are nearest
4812
+ * to `origin` — the submenu can open on either side of its trigger, so the nearest edge is picked by
4813
+ * comparing distances rather than assuming a fixed side.
4814
+ * @docs-private
4815
+ */
4816
+ declare function getSafeTriangleVertices(origin: KbqPoint, targetRect: DOMRect): KbqTriangle;
4817
+
4123
4818
  /**
4124
4819
  * Reference to the element used to locate the shadow root that should host the CDK overlay container.
4125
4820
  *
@@ -4204,6 +4899,18 @@ declare const kbqShadowDomOverlayProvider: (host?: KbqShadowDomOverlayHost) => P
4204
4899
  * Injects the native element for the current component.
4205
4900
  */
4206
4901
  declare const kbqInjectNativeElement: <T extends Element = HTMLElement>() => T;
4902
+ /**
4903
+ * Focuses `element` and scrolls it into view by the shortest distance, leaving a visible one alone.
4904
+ *
4905
+ * The reveal is explicit because the one `focus()` performs implicitly is not portable: WebKit defers it
4906
+ * to a later rendering update, where it lands after — and undoes — any scrolling the reader did in the
4907
+ * meantime. Letting the element reveal itself keeps every consumer working, whatever it uses as a scroll
4908
+ * container, and the browser resolves that container rather than the caller guessing at it.
4909
+ *
4910
+ * Pass `skipReveal` when the pointer caused the focus: the element is already under the cursor, so
4911
+ * revealing it would shift the list out from under it.
4912
+ */
4913
+ declare const kbqFocusAndReveal: (element: HTMLElement, skipReveal?: boolean) => void;
4207
4914
 
4208
4915
  declare function isBoolean(value: unknown): value is boolean;
4209
4916
  /** Whether the value is undefined. */
@@ -4232,6 +4939,35 @@ interface KbqParentPopup {
4232
4939
  * InjectionToken for providing component with popup. Used in select and tree-select for tooltip.
4233
4940
  */
4234
4941
  declare const KBQ_PARENT_POPUP: InjectionToken<KbqParentPopup>;
4942
+ /**
4943
+ * Contract of a pop-up anchored to the same element as a tooltip — a popover, a dropdown, a select and so on.
4944
+ *
4945
+ * A tooltip sharing its host with such a pop-up mutes itself while the pop-up is on screen, so the two never
4946
+ * compete for the same anchor and the focus restored by the closing pop-up does not re-open the tooltip.
4947
+ */
4948
+ interface KbqSiblingPopup {
4949
+ /**
4950
+ * Whether the pop-up overlay is currently attached. Unlike a visibility flag it must flip synchronously,
4951
+ * both when the overlay is attached and when it is detached.
4952
+ */
4953
+ readonly isAttached: boolean;
4954
+ /** Emits `true` when the pop-up opens and `false` when it closes. */
4955
+ readonly openedChange: Observable<boolean>;
4956
+ }
4957
+ /**
4958
+ * Element-level token for pop-ups sharing their trigger element with a tooltip. Multi-provided, so a single
4959
+ * element can carry several pop-ups at once — for example the filter-bar button with both a popover and a
4960
+ * dropdown attached to it.
4961
+ */
4962
+ declare const KBQ_SIBLING_POPUP: InjectionToken<readonly KbqSiblingPopup[]>;
4963
+ /**
4964
+ * Builds the multi-provider entry a pop-up trigger adds to its own `providers` to announce itself to a
4965
+ * tooltip on the same element.
4966
+ *
4967
+ * Every concrete trigger has to add it on its own: Angular copies `providers` to a subclass only when that
4968
+ * subclass has no decorator of its own, so inheriting from an already-announced trigger is not enough.
4969
+ */
4970
+ declare const kbqSiblingPopupProvider: (popup: Type<KbqSiblingPopup>) => Provider;
4235
4971
  declare enum PopUpPlacements {
4236
4972
  Top = "top",
4237
4973
  TopLeft = "topLeft",
@@ -4287,6 +5023,17 @@ declare const KBQ_CONNECTED_OVERLAY_BELOW_CLASS = "kbq-connected-overlay_below";
4287
5023
  * `padding-bottom` inside the pane so the flipped gap is not click/hover-through.
4288
5024
  */
4289
5025
  declare const KBQ_CONNECTED_OVERLAY_ABOVE_CLASS = "kbq-connected-overlay_above";
5026
+ /**
5027
+ * Pane class applied to a connected overlay whose panel is anchored to the FIRST ROW of a trigger it
5028
+ * OVERLAPS — a multiline select whose tag rows have made it taller than the panel itself, with too little
5029
+ * room to open on either side of it.
5030
+ *
5031
+ * The panel ends up where it would for a single-row trigger, so the gap is the same transparent
5032
+ * `padding-top` as {@link KBQ_CONNECTED_OVERLAY_BELOW_CLASS}. It is a separate class because the room left
5033
+ * for the panel has to be measured from the first row rather than from the trigger's bottom edge, and the
5034
+ * class is how the component tells the two apart.
5035
+ */
5036
+ declare const KBQ_CONNECTED_OVERLAY_OVERLAP_CLASS = "kbq-connected-overlay_overlap";
4290
5037
  /**
4291
5038
  * Variable used for offsetY(X) calculations when applying Angular Overlay
4292
5039
  *
@@ -4305,7 +5052,7 @@ declare class EmptyFocusTrapStrategy implements FocusTrapInertStrategy {
4305
5052
  * strategy, and controls show/hide timing. Concrete subclasses supply the pop-up component type, its content,
4306
5053
  * and the overlay configuration.
4307
5054
  */
4308
- declare abstract class KbqPopUpTrigger<T> implements OnInit, OnDestroy {
5055
+ declare abstract class KbqPopUpTrigger<T> implements OnInit, OnDestroy, KbqSiblingPopup {
4309
5056
  /** Stream that emits when the popupTrigger is hovered.
4310
5057
  * @docs-private */
4311
5058
  readonly hovered: BehaviorSubject<boolean>;
@@ -4352,6 +5099,16 @@ declare abstract class KbqPopUpTrigger<T> implements OnInit, OnDestroy {
4352
5099
  set isOpen(value: boolean);
4353
5100
  /** Backing field for `isOpen`. */
4354
5101
  private _isOpen;
5102
+ /**
5103
+ * Whether the pop-up overlay is currently attached.
5104
+ *
5105
+ * Unlike `isOpen`, which follows the visibility of the pop-up component and therefore lags a task behind
5106
+ * `show()`/`hide()`, this flips synchronously — it is the window during which the overlay (and its
5107
+ * backdrop) is present in the DOM. Part of the {@link KbqSiblingPopup} contract.
5108
+ */
5109
+ get isAttached(): boolean;
5110
+ /** Emits `true` when the pop-up opens and `false` when it closes. Part of the {@link KbqSiblingPopup} contract. */
5111
+ get openedChange(): Observable<boolean>;
4355
5112
  /** Delay in milliseconds before the pop-up is shown.
4356
5113
  * @docs-private */
4357
5114
  enterDelay: number;
@@ -4592,6 +5349,36 @@ declare abstract class KbqPopUp implements OnDestroy {
4592
5349
 
4593
5350
  declare const applyPopupMargins: (renderer: Renderer2, element: HTMLElement, name: string, value: string) => void;
4594
5351
 
5352
+ /**
5353
+ * Normalizes a string for case- and diacritic-insensitive search comparison: trims the ends,
5354
+ * decomposes accented characters (NFKD), strips the resulting combining marks (while preserving
5355
+ * `й`/`Й` as distinct letters), and lowercases using the current locale. Internal whitespace and
5356
+ * punctuation are left untouched.
5357
+ */
5358
+ declare function normalizeSearchValue(value: string): string;
5359
+ /**
5360
+ * Locates every case- and diacritic-insensitive match of `tokens` in `value`, returning `[start, end)`
5361
+ * ranges in `value`'s own (unfolded) coordinates — overlapping or adjacent ranges are merged. This is
5362
+ * what a highlighter needs to stay in sync with {@link createSearchPredicate}: matching a folded value
5363
+ * like `cafe` against `Café` only tells you *that* it matched, not *where* in the original string to
5364
+ * mark, since folding can change which letters look alike without changing the string's length.
5365
+ */
5366
+ declare function findSearchMatchRanges(value: string, tokens: readonly string[]): Array<[number, number]>;
5367
+ /**
5368
+ * Splits a raw query into tokens, treating whitespace as a separator and `"quoted phrases"` as
5369
+ * a single token (spaces inside the quotes are preserved). A `"` with no matching closing quote
5370
+ * stays part of its token instead of being dropped, so a half-open quote yields a token no
5371
+ * realistic haystack contains — and therefore no results — until the quote is closed.
5372
+ */
5373
+ declare function tokenizeSearchQuery(query: string): string[];
5374
+ /**
5375
+ * Builds a case- and diacritic-insensitive substring predicate for the given query. The query is
5376
+ * tokenized (bare words + `"quoted phrases"`) and every token must match (AND) against at least
5377
+ * one of the supplied haystacks (OR across fields) — pass a single string for a single-field
5378
+ * search, or an array for multi-field rows. An empty/whitespace-only query matches everything.
5379
+ */
5380
+ declare function createSearchPredicate(query: string): (value: string | readonly string[]) => boolean;
5381
+
4595
5382
  declare class KbqSelectTrigger {
4596
5383
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectTrigger, never>;
4597
5384
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSelectTrigger, "kbq-select-trigger, [kbq-select-trigger]", never, {}, {}, never, never, true, never>;
@@ -4636,12 +5423,49 @@ declare class KbqSelectSearch implements AfterContentInit, OnDestroy {
4636
5423
  declare abstract class KbqAbstractSelect {
4637
5424
  protected overlayDir: CdkConnectedOverlay;
4638
5425
  protected triggerRect: DOMRect;
5426
+ /** Positions the `cdkConnectedOverlayPositions` input reads. */
5427
+ abstract positions: ConnectedPosition[];
5428
+ /** Whether the trigger lays its selected values out in rows. */
5429
+ protected abstract readonly multiline: Signal<boolean>;
5430
+ /** Scrollable option list inside the panel. */
5431
+ protected abstract readonly optionsContainer: Signal<ElementRef<HTMLElement> | undefined>;
5432
+ /** Margin the overlay keeps from the viewport edge, i.e. `cdkConnectedOverlayViewportMargin`. */
5433
+ protected abstract readonly viewportMargin: number;
5434
+ /**
5435
+ * Row container of a multi-selection trigger. Absent for a single value, an empty trigger and a custom
5436
+ * matcher or trigger — all of which have no rows for the panel to anchor to.
5437
+ */
5438
+ protected readonly multilineMatchList: Signal<ElementRef<HTMLElement> | undefined>;
5439
+ protected readonly changeDetectorRef: ChangeDetectorRef;
5440
+ protected readonly window: Window;
5441
+ /** Whether the panel is open. Declared as a method because the two selects spell the state differently. */
5442
+ protected abstract isPanelOpen(): boolean;
5443
+ /** Element the overlay is positioned and sized against. */
5444
+ protected abstract getOverlayOriginElement(): HTMLElement | undefined;
4639
5445
  /** Overlay panel class. */
4640
5446
  protected readonly overlayPanelClass = "kbq-select-overlay";
4641
5447
  /** Width of the overlay panel. */
4642
5448
  protected overlayWidth: string | number;
4643
5449
  /** Minimum width of the overlay panel. */
4644
5450
  protected overlayMinWidth: string | number;
5451
+ /**
5452
+ * Height of everything in the panel that is not the option list — the trigger gap the pane pads itself
5453
+ * with, the list padding, a search field and a footer.
5454
+ *
5455
+ * The same for every anchor: the below and overlap panes pad the top, the above pane pads the bottom, and
5456
+ * all three pad by the same gap — which is what keeps the anchor decision from feeding back into itself.
5457
+ */
5458
+ private panelChromeHeight;
5459
+ /** Transparent gap the pane pads itself with, which the anchor has to be raised by. */
5460
+ private panelGapHeight;
5461
+ /**
5462
+ * Cap the option list is rendered with, in pixels. Measured off the panel rather than derived from
5463
+ * `panelMaxHeight`, because `--kbq-select-panel-size-max-height` is what the list actually obeys and a
5464
+ * consumer can override it. Seeded with the stylesheet's own default, which is what a DOM that computes
5465
+ * no layout — the server, jsdom — leaves in force.
5466
+ */
5467
+ private panelMaxHeightCap;
5468
+ private resizeSubscription;
4645
5469
  /**
4646
5470
  * Resolves the overlay panel size for the current trigger geometry and stores it for the
4647
5471
  * `cdkConnectedOverlay` width bindings.
@@ -4656,11 +5480,93 @@ declare abstract class KbqAbstractSelect {
4656
5480
  protected calculateOverlayOffsetX(baseOffsetX: number): number[];
4657
5481
  protected getOverlayRect(): DOMRect;
4658
5482
  protected resetOverlay(): void;
5483
+ /**
5484
+ * Returns `positions` with the first-row anchor added, updated or removed, or `null` when the array
5485
+ * already says what it should — so that the caller can skip the change detection an edit would need.
5486
+ *
5487
+ * The anchor goes LAST. The overlay returns on the first position that fits completely, so an entry at the
5488
+ * end is reached exactly when neither the below nor the above position works, which is the rule this
5489
+ * implements. Pass `null` to drop it again.
5490
+ *
5491
+ * The result is meant to be assigned to the field the `cdkConnectedOverlayPositions` input reads, NOT
5492
+ * handed to `withPositions()` on the strategy: `CdkConnectedOverlay.ngOnChanges` rebuilds the strategy
5493
+ * from that field on ANY input change — the width `lockOverlayWidthForSearch` pins is one — so a list
5494
+ * applied only to the strategy would be dropped again without a trace.
5495
+ */
5496
+ protected withOverlapPosition(positions: ConnectedPosition[], offsetY: number | null): ConnectedPosition[] | null;
5497
+ /**
5498
+ * Re-resolves the panel position with the first-row anchor brought up to date.
5499
+ *
5500
+ * Never call this from a `positionChange` subscriber: CDK records the position it applied AFTER the
5501
+ * subscriber returns, so an anchor resolved from inside that frame is overwritten by the pre-anchor
5502
+ * position, and `cdkConnectedOverlayLockPosition` then replays that stale one on the next scroll.
5503
+ */
5504
+ protected reanchorPanel(): void;
5505
+ /**
5506
+ * Re-resolves the anchor while the panel is open. A resize rewraps the trigger's rows and changes the
5507
+ * room beside it at once, and CDK re-applies the position on its own, so without this the anchor it
5508
+ * resolves against is the one measured for the old viewport.
5509
+ */
5510
+ protected subscribeToPanelResize(): void;
5511
+ /** Drops the resize subscription the open set up. */
5512
+ protected unsubscribeFromPanelResize(): void;
5513
+ /**
5514
+ * Keeps the first-row anchor in `positions`: a third position that puts the panel just below the
5515
+ * trigger's first row and over the rest of it, for a multiline trigger that has grown taller than the
5516
+ * panel and fits on neither side of it.
5517
+ *
5518
+ * The anchor goes last, and the overlay stops at the first position that fits completely, so it is
5519
+ * reached exactly when neither `below` nor `above` works. `kbqShouldAnchorPanelToFirstRow` holds the
5520
+ * rest of the rule.
5521
+ *
5522
+ * Returns whether the array changed, so that a caller can skip the reposition an unchanged anchor does
5523
+ * not need. Updating the array is all there is to do here — `setOverlayPosition()` rebuilds the strategy
5524
+ * and resolves the position again.
5525
+ */
5526
+ protected updatePanelAnchor(): boolean;
5527
+ /**
5528
+ * Distance from the origin's top edge to just below the trigger's first row, or `null` when there is no
5529
+ * row to anchor to.
5530
+ */
5531
+ private resolveFirstRowOffset;
5532
+ /**
5533
+ * Height the option list takes with no viewport clamp in force.
5534
+ *
5535
+ * Read from `scrollHeight`, which reports the whole content rather than what the pane happens to show
5536
+ * right now — the anchor decision runs on a pane the overlay may be about to move.
5537
+ */
5538
+ private measureNaturalListHeight;
5539
+ /**
5540
+ * Whether the option list renders at the cap whatever its content is, which a
5541
+ * `cdk-virtual-scroll-viewport` does by pinning both its `min-height` and its `max-height` to the token.
5542
+ */
5543
+ protected isListHeightPinnedToCap(): boolean;
5544
+ /** Geometry the panel height calculation needs, or `null` when there is nothing to measure against. */
5545
+ private resolvePanelSpaceContext;
5546
+ /** Whether the panel is currently drawn over the trigger, read from the class the overlay applies. */
5547
+ private isPanelAnchoredToFirstRow;
5548
+ /**
5549
+ * Records the part of the panel that is not the option list, the gap the pane pads itself with, and the
5550
+ * cap the list is rendered with. Returns `false` when the panel cannot be measured, which is the caller's
5551
+ * signal to leave the anchor alone rather than decide against a stale value.
5552
+ */
5553
+ private measurePanelChrome;
4659
5554
  protected resolveSearchMinOptionsThreshold(value?: 'auto' | number): number | undefined;
4660
5555
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAbstractSelect, never>;
4661
5556
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAbstractSelect, never, never, {}, {}, never, never, true, never>;
4662
5557
  }
4663
5558
 
5559
+ /**
5560
+ * Runs a consumer-supplied `compareWith` defensively: a comparator that throws is reported in dev mode
5561
+ * and treated as "no match", so one bad comparison cannot take a whole selection down with it.
5562
+ *
5563
+ * Callers own the `null` policy — `KbqSelect` refuses to match a `null` option value, `KbqListSelection`
5564
+ * lets the comparator decide — so nothing is filtered here.
5565
+ *
5566
+ * @docs-private
5567
+ */
5568
+ declare function runCompareWith<T>(compareWith: (o1: T, o2: T) => boolean, first: T, second: T): boolean;
5569
+
4664
5570
  /**
4665
5571
  * Minimum option count threshold for displaying select search.
4666
5572
  * Search is hidden when fewer options are available.
@@ -4671,7 +5577,14 @@ declare const KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD = 10;
4671
5577
  * this value or more away from the viewport boundary.
4672
5578
  */
4673
5579
  declare const SELECT_PANEL_VIEWPORT_PADDING = 8;
4674
- /** Injection token that determines the scroll handling while a select is open. */
5580
+ /**
5581
+ * Injection token that determines the scroll handling while a select is open.
5582
+ *
5583
+ * The root default keeps the select usable when it is reached outside `KbqSelectModule`'s injector - imported
5584
+ * as a bare standalone component, pulled in through another standalone component (`KbqTimezoneSelect`,
5585
+ * `KbqCalendarHeader`), or rendered in a component built from the root injector, as `KbqModalService` does.
5586
+ * Providing the token anywhere still wins over this default.
5587
+ */
4675
5588
  declare const KBQ_SELECT_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;
4676
5589
  /** @docs-private */
4677
5590
  declare function kbqSelectScrollStrategyProviderFactory(overlay: Overlay): () => RepositionScrollStrategy;
@@ -4727,7 +5640,12 @@ interface KbqSelectAllAdapter<T> {
4727
5640
  isSelectable: (item: T) => boolean;
4728
5641
  /** Current selected state of the item. */
4729
5642
  isSelected: (item: T) => boolean;
4730
- /** Applies the new selected state to the item. */
5643
+ /**
5644
+ * Applies the new selected state to the item. Must be idempotent — a no-op, with no further side
5645
+ * effects (no emitted events, no notifications) — when `selected` already matches the item's current
5646
+ * state: {@link toggleSelectAll} calls this for every selectable item, not just the ones whose state
5647
+ * actually changes, and relies on implementations to absorb the redundant calls silently.
5648
+ */
4731
5649
  setSelected: (item: T, selected: boolean) => void;
4732
5650
  }
4733
5651
  /** Options for {@link toggleSelectAll}. */
@@ -4748,6 +5666,14 @@ interface KbqToggleSelectAllOptions {
4748
5666
  * @returns the items whose selected state actually flipped, in input order.
4749
5667
  */
4750
5668
  declare function toggleSelectAll<T>(adapter: KbqSelectAllAdapter<T>, options?: KbqToggleSelectAllOptions): T[];
5669
+ /**
5670
+ * State of a "select all" master checkbox over the same items {@link toggleSelectAll} would act on.
5671
+ *
5672
+ * Considers only selectable items, so items the toggle cannot reach (disabled, non-selectable) never
5673
+ * pin the checkbox to `indeterminate`. An empty selectable set reads as `unchecked`: there is nothing
5674
+ * to select, and `[].every()` being `true` would otherwise report a full selection.
5675
+ */
5676
+ declare function getSelectAllState<T>(adapter: KbqSelectAllAdapter<T>): KbqPseudoCheckboxState;
4751
5677
  /** Event emitted by the `onSelectAll` outputs when the select-all toggle runs. */
4752
5678
  declare class KbqSelectAllEvent<T, S = unknown> {
4753
5679
  /** Component that emitted the event. */
@@ -4829,8 +5755,8 @@ declare class ThemeService<T extends KbqTheme | null = KbqTheme> implements OnDe
4829
5755
  declare function dispatchEvent(node: Node | Window, event: Event): Event;
4830
5756
  /** Shorthand to dispatch a fake event on a specified node. */
4831
5757
  declare function dispatchFakeEvent(node: Node | Window, type: string, canBubble?: boolean): Event;
4832
- /** Shorthand to dispatch a keyboard event with a specified key code. */
4833
- declare function dispatchKeyboardEvent(node: Node, type: string, keyCode: number, target?: Element): KeyboardEvent;
5758
+ /** Shorthand to dispatch a keyboard event with a specified key code and, optionally, a `KeyboardEvent.key`. */
5759
+ declare function dispatchKeyboardEvent(node: Node, type: string, keyCode: number, target?: Element, key?: string): KeyboardEvent;
4834
5760
  /** Shorthand to dispatch a mouse event on the specified coordinates. */
4835
5761
  declare function dispatchMouseEvent(node: Node, type: string, x?: number, y?: number, event?: MouseEvent): MouseEvent;
4836
5762
  /** Shorthand to dispatch a touch event on the specified coordinates. */
@@ -4895,5 +5821,5 @@ declare const validationTooltipHideDelay = 3000;
4895
5821
 
4896
5822
  declare const VERSION: Version;
4897
5823
 
4898
- 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 };
4899
- export type { CanColor, CanColorCtor, CanDisable, CanDisableCtor, CanUpdateErrorState, CanUpdateErrorStateCtor, HasTabIndex, HasTabIndexCtor, Highlightable, IFocusableOption, KbqActionsPanelLocaleConfiguration, KbqBaseFileUploadLocaleConfig, KbqCheckedState, KbqClampedTextLocaleConfig, KbqCodeBlockLocaleConfiguration, KbqDateFormats, KbqDefaultSizes, KbqEnumValues, KbqFileTypeSpecifier, KbqFileUploadLocaleConfig, KbqFlexDirection, KbqFlexWrap, KbqFormFieldRef, KbqMeasurementSystemType, KbqMultipleFileUploadLocaleConfig, KbqNumberFormatOptions, KbqNumberInputLocaleConfig, KbqNumberRoundingLocaleConfig, KbqNumericPipe, KbqOptionActionParent, KbqOptionParentComponent, KbqOrientation, KbqOverflowShadowSource, KbqOverflowShadowState, KbqPanelMaxWidth, KbqPanelMinWidth, KbqPanelWidth, KbqPanelWidthOrigin, KbqParentPopup, KbqPopUpPlacementValues, KbqPopUpSizeValues, KbqPseudoCheckboxState, KbqResolvedPanelWidth, KbqSelectAllAdapter, KbqShadowDomOverlayHost, KbqSizeUnitsConfig, KbqStickToWindowPlacementValues, KbqTheme, KbqTimeRangeLocaleConfig, KbqTitleTextRef, KbqToggleSelectAllOptions, KbqUnitSystem, KeyboardNavigationHandler, ListKeyManagerModifierKey, ListKeyManagerOption };
5824
+ 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, DurationLongFormatterImpurePipe, DurationLongFormatterPipe, DurationShortFormatterImpurePipe, DurationShortFormatterPipe, DurationShortestFormatterImpurePipe, DurationShortestFormatterPipe, 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_A11Y_LOCALE_CONFIGURATION, KBQ_CHECKABLE_CLICK_ACTION, KBQ_CHECKABLE_CONTROL_VALUE_ACCESSOR, KBQ_CONNECTED_OVERLAY_ABOVE_CLASS, KBQ_CONNECTED_OVERLAY_BELOW_CLASS, KBQ_CONNECTED_OVERLAY_ORIGIN, KBQ_CONNECTED_OVERLAY_OVERLAP_CLASS, KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER, KBQ_DATE_FORMATS, KBQ_DATE_LOCALE, KBQ_DATE_LOCALE_FACTORY, KBQ_DATE_TIMEZONE, 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_SIBLING_POPUP, KBQ_SIZE_UNITS_CONFIG, KBQ_SIZE_UNITS_DEFAULT_CONFIG, KBQ_TITLE_TEXT_REF, KBQ_WINDOW, KbqAbsoluteLongDatePipe, KbqAbsoluteLongDateTimePipe, KbqAbsoluteShortDatePipe, KbqAbsoluteShortDateTimePipe, KbqAbstractSelect, KbqActionContainer, KbqAnimationCurves, KbqAnimationDurations, KbqAutoHideScrollStrategy, KbqCheckable, KbqColorDirective, KbqComponentColors, KbqDataSizePipe, KbqDateTimezoneService, KbqDecimalPipe, KbqDefaultThemes, KbqDurationLongPipe, KbqDurationShortPipe, KbqDurationShortestPipe, 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, TransitionCheckState, U, UP_ARROW, V, VERSION, VOLUME_DOWN, VOLUME_UP, W, X, Y, Z, ZERO, applyPopupMargins, checkAndNormalizeLocalizedNumber, countGroupLabelsBeforeOption, createFakeEvent, createKeyboardEvent, createMouseEvent, createSearchPredicate, createTouchEvent, defaultOffsetY, dispatchEvent, dispatchFakeEvent, dispatchKeyboardEvent, dispatchMouseEvent, dispatchTouchEvent, enUSFormattersData, enUSLocaleData, esLAFormattersData, esLALocaleData, escapeRegExp, fadeAnimation, findSearchMatchRanges, formatNumberWithLocale, getFormattedSizeParts, getHumanizedBytes, getKbqSelectDynamicMultipleError, getKbqSelectNonArrayValueError, getKbqSelectNonFunctionValueError, getNodesWithoutComments, getOptionScrollPosition, getSafeTriangleVertices, getSelectAllState, hasModifierKey, isBoolean, isControl, isCopy, isDigit, isElement, isFunctionKey, isHorizontalMovement, isHtmlElement, isHtmlElementOrNull, isInput, isLeftBracket, isLetterKey, isMac, isNull, isNumberKey, isNumpadKey, isPointInRect, isPointInTriangle, isRightBracket, isSelectAll, isUndefined, isVerticalMovement, isWithin, kbqA11yLocaleConfigurationProvider, kbqAutoHideScrollStrategyFactory, kbqDateTimezoneProvider, kbqErrorStateMatcherProvider, kbqFilesizeFormatterConfigurationProvider, kbqFocusAndReveal, kbqFocusOptionActionOnTab, kbqGetPanelWidthOrigin, kbqHighlightBackgroundMark, kbqHighlightMark, kbqInjectA11yLocaleConfiguration, kbqInjectAutofilled, kbqInjectNativeElement, kbqLocaleServiceLangAttrNameProvider, kbqResolvePanelMaxHeightToken, kbqResolvePanelWidth, kbqResolveTimezoneOffset, kbqRevealSelection, kbqSelectAnimations, kbqSelectScrollStrategyProviderFactory, kbqSetSelectionRange, kbqShadowDomOverlayProvider, kbqSiblingPopupProvider, leftIconClassName, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, normalizeNumber, normalizeSearchValue, numberByParts, patchElementFocus, ptBRFormattersData, ptBRLocaleData, rightIconClassName, ruRUFormattersData, ruRULocaleData, runCompareWith, selectEvents, shouldSelectSearchText, tkTMFormattersData, tkTMLocaleData, toggleSelectAll, tokenizeSearchQuery, typeInElement, validationTooltipHideDelay, validationTooltipShowDelay, wrappedErrorMessage };
5825
+ export type { CanColor, CanColorCtor, CanDisable, CanDisableCtor, CanUpdateErrorState, CanUpdateErrorStateCtor, HasTabIndex, HasTabIndexCtor, Highlightable, IFocusableOption, KbqA11yLocaleConfiguration, KbqActionsPanelLocaleConfiguration, KbqAutoHideScrollStrategyConfig, KbqAutoHideScrollStrategyHooks, KbqBaseFileUploadLocaleConfig, KbqCheckableClickAction, KbqCheckableClickResult, KbqCheckedState, KbqClampedTextLocaleConfig, KbqCodeBlockLocaleConfiguration, KbqConnectedOverlayOriginProvider, KbqDateFormats, KbqDefaultSizes, KbqEnumValues, KbqFileTypeSpecifier, KbqFileUploadLocaleConfig, KbqFlexDirection, KbqFlexWrap, KbqFormFieldRef, KbqMeasurementSystemType, KbqMultipleFileUploadLocaleConfig, KbqNumberFormatOptions, KbqNumberInputLocaleConfig, KbqNumberRoundingLocaleConfig, KbqNumericPipe, KbqOptionActionParent, KbqOptionParentComponent, KbqOrientation, KbqOverflowShadowSource, KbqOverflowShadowState, KbqPanelMaxHeight, KbqPanelMaxWidth, KbqPanelMinWidth, KbqPanelWidth, KbqPanelWidthOrigin, KbqParentPopup, KbqPoint, KbqPopUpPlacementValues, KbqPopUpSizeValues, KbqPseudoCheckboxState, KbqResolvedPanelWidth, KbqSelectAllAdapter, KbqSelectLocaleConfiguration, KbqShadowDomOverlayHost, KbqSiblingPopup, KbqSizeUnitsConfig, KbqStickToWindowPlacementValues, KbqTheme, KbqTimeRangeLocaleConfig, KbqTimezoneLike, KbqTitleTextRef, KbqToggleSelectAllOptions, KbqTriangle, KbqUnitSystem, KeyboardNavigationHandler, ListKeyManagerModifierKey, ListKeyManagerOption };