import { KbqTimezoneModule } from '@koobiq/components/timezone';Selector: kbq-timezone-option
Exported as: kbqTimezoneOption| Name | Description |
|---|---|
@Input() foldDiacritics: InputSignal |
Whether `highlightText` was matched with diacritic folding (e.g. via `createSearchPredicate`) — see `kbqHighlightBackground`. |
@Input() highlightText: InputSignal |
|
@Input() timezone: KbqTimezoneZone
|
|
| active: boolean | Whether or not the option is currently active and ready to be selected. An active option displays styles as if it is focused, but the focus is actually retained somewhere else. This comes in handy for components like autocomplete where focus must remain on the input. |
| disabled: any | |
| group: KbqOptgroup | |
| id: string | |
| multiple: boolean | Whether the wrapping component is in multiple selection mode. |
| onSelectionChange: EventEmitter |
Event emitted when the option is selected or deselected. |
| parent: KbqOptionParentComponent | |
| selectable: InputSignalWithTransform |
|
| selected: boolean | |
| showCheckbox: boolean | |
| stateChanges: Subject |
Emits when the state of the option changes and any parents have to be notified. |
| textElement: ElementRef |
|
| tooltipContent: Signal |
|
| tooltipContentWrapper: Signal |
|
| userSelect: InputSignalWithTransform |
|
| value: any | The form value of the option. |
| viewValue: string |
Selector: kbq-timezone-option
| Name | Description |
|---|---|
| arrow: boolean | Input (`kbqTooltipArrow`) — whether to render the tooltip's arrow/pointer. Defaults to `false`. |
| color: string | Input (`kbqTooltipColor`) with the tooltip color theme; the getter returns the `kbq-`-prefixed CSS class. |
| content: string | TemplateRef |
Input (`kbqTooltip`) with the tooltip content — a string or a template. Updating it refreshes an open tooltip. |
| context: any | Input (`kbqTooltipContext`) with the context object passed to a template tooltip; updating it refreshes the open tooltip. |
| customClass: string | Input (`kbqTooltipClass`) with an extra CSS class applied to the tooltip; updating it refreshes the class map. |
| disabled: boolean | Input (`kbqTooltipDisabled`) controlling whether the tooltip is disabled; setting it to `true` hides it. |
| enterDelay: number | Input (`kbqEnterDelay`) — delay in milliseconds before the tooltip is shown. Defaults to `400`. |
| forDisabledComponent: InputSignal |
Input for controlling the disabled state of a component. The input expects a component containing `disabledSignal` property, which is a writable signal emitting boolean values. |
| header: string | TemplateRef |
Header text or template, rendered above the tooltip content. Only meaningful with `kbqTooltipModifier="extended"`. Replaces the removed `KbqExtendedTooltipTrigger.header`. |
| hideWithTimeout: boolean | Changes hiding behavior. By default, tooltip is hidden on mouseleave from trigger. Setting hideWithTimeout to true will delay tooltip hiding and will not hide when the mouse moves from trigger to tooltip. |
| ignoreTooltipPointerEvents: InputSignal |
Determines whether pointer events should be ignored on tooltips. When set to `true`, tooltip elements will not receive pointer events, allowing interactions to pass through to underlying elements. Defaults to `true`. |
| isAttached: boolean | Whether the pop-up overlay is currently attached. Unlike `isOpen`, which follows the visibility of the pop-up component and therefore lags a task behind `show()`/`hide()`, this flips synchronously — it is the window during which the overlay (and its backdrop) is present in the DOM. Part of the {@link KbqSiblingPopup} contract. |
| isOpen: boolean | Whether the pop-up overlay is currently open. |
| leaveDelay: number | Input (`kbqLeaveDelay`) — delay in milliseconds before the tooltip is hidden. Defaults to `0`. |
| modifier: "default" | "warning" | TooltipModifier | "extended" | Visual variant of the tooltip. Accepts `'default'` | `'warning'` | `'extended'`. Replaces the removed `KbqWarningTooltipTrigger` and `KbqExtendedTooltipTrigger` subclasses — to render a warning tooltip use `kbqTooltipModifier="warning"`, and `kbqTooltipModifier="extended"` for the extended variant (combine with `kbqTooltipHeader`). |
| offset: number | Input (`kbqTooltipOffset`) — distance in pixels between the tooltip and its trigger; `null` uses the default. |
| openedChange: Observable |
Emits `true` when the pop-up opens and `false` when it closes. Part of the {@link KbqSiblingPopup} contract. |
| placementChange: EventEmitter |
Output (`kbqPlacementChange`) that emits the new placement whenever the tooltip repositions. |
| relativeToPointer: boolean | Positions the tooltip relative to the mouse cursor. Only available for top and bottom kbqPlacement. Does not work with kbqPlacementPriority. |
| singleInstance: InputSignalWithTransform |
Whether the tooltip takes part in the "only one tooltip is visible at a time" group: showing it hides the previously visible tooltip, and it is hidden when another tooltip is shown. Defaults to `true`; the default can be changed application-wide with the `KBQ_TOOLTIP_SINGLE_INSTANCE_DEFAULT` token. Tooltips without an interactive `kbqTrigger` (`manual`, `none`, …) never take part in the group, regardless of this input — they are shown imperatively and are expected to stay pinned. |
| tooltipPlacement: "top" | "topLeft" | "topRight" | "right" | "rightTop" | "rightBottom" | "left" | "leftTop" | "leftBottom" | "bottom" | "bottomLeft" | "bottomRight" | Input (`kbqPlacement`) that sets the tooltip placement relative to its trigger; reflects the current `placement`. |
| tooltipPlacementPriority: string | string[] | Input (`kbqPlacementPriority`) that sets the ordered fallback placements; reflects the current `placementPriority`. |
| tooltipVisible: boolean | Input (`kbqVisible`) that programmatically shows or hides the tooltip; reflects the current `visible` state. |
| trigger: string | Input (`kbqTrigger`) with the comma-separated trigger events. An empty value resets to hover + focus and rebinds listeners. |
| visibleChange: EventEmitter |
Output (`kbqVisibleChange`) that emits when the tooltip's visibility changes. |
Selector: kbq-timezone-select-trigger
Selector: kbq-timezone-select
Exported as: kbqTimezoneSelect| Name | Description |
|---|---|
| allOptionsSelected: boolean | Whether every option "select all" can act on is selected. |
| backdropClass: InputSignal |
Classes to be passed to the overlay backdrop. |
| beforeOpened: OutputEmitterRef |
Event emitted before the select panel starts opening. |
| calculateHiddenItems: () => void | Calculates the number of hidden items in multiple selection mode. Updates the hiddenItems property and triggers change detection. |
| cdkVirtualForOf: Signal |
Reference to the CDK virtual scroll directive for virtual scrolling support. |
| changeDetectorRef: ChangeDetectorRef | |
| closedStream: Observable |
Event emitted when the select has been closed. |
| compareWith: (o1: any, o2: any) => boolean | Function to compare the option values with the selected values. The first argument is a value from an option. The second is a value from the selection. Should return true if the values match. Defaults to strict equality comparison. |
| controlType: string | A name for this control that can be used by `kbq-form-field`. |
| customMatcher: Signal |
User-supplied matcher component for custom value matching logic. |
| customTagTemplateRef: Signal |
Custom template reference for rendering tag content. |
| customTrigger: Signal |
|
| defaultErrorStateMatcher: ErrorStateMatcher | |
| defaultOptions: Partial<{ panelWidth: KbqPanelWidth; panelMinWidth: number; panelMaxWidth: number; panelMaxHeight: number; searchMinOptionsThreshold: number | "auto"; }> | |
| disabled: boolean | Whether the select is disabled. When disabled, the select cannot be opened and its value cannot be changed. |
| elementRef: ElementRef |
|
| empty: boolean | Whether no option is currently selected. |
| errorState: boolean | Whether the component is in an error state. |
| errorStateMatcher: ErrorStateMatcher | Object used to control when error messages are shown. |
| firstFiltered: boolean | Whether the first selected option is filtered (not visible in the list). |
| firstSelected: KbqOptionBase | Returns the first selected option that is not disabled. |
| focused: boolean | Whether the select is focused. |
| footer: Signal |
Reference to the optional footer element in the panel. |
| hasBackdrop: boolean | Whether the overlay should have a backdrop. When true, clicking the backdrop will close the select. |
| hiddenItems: number | |
| hiddenItemsText: string | Template string for hidden items text. Supports {{ number }} placeholder. |
| id: string | Unique identifier for the select component. Auto-generates an ID if not provided. |
| isAttached: boolean | Whether the overlay panel is currently on screen. Part of the `KbqSiblingPopup` contract. |
| isBrowser: boolean | |
| isEmptySearchResult: boolean | Whether the search returned no results. |
| keyManager: ActiveDescendantKeyManager |
Manages keyboard events for options in the panel. |
| localeService: KbqLocaleService | |
| multiSelection: boolean | Whether multiple choice is enabled. True if multiple or multiline mode is active. |
| multiline: InputSignalWithTransform |
Whether to use a multiline matcher or not. Default is false. When true, allows multiple lines of text in the selected value display. |
| multilineMatchList: Signal |
Row container of a multi-selection trigger. Absent for a single value, an empty trigger and a custom matcher or trigger — all of which have no rows for the panel to anchor to. |
| multiple: boolean | Whether multiple options can be selected. Note: This cannot be changed dynamically after initialization. |
| ngControl: NgControl | |
| noOptions: boolean | Whether there are no options available. |
| onChange: (value: any) => void | `View -> model callback called when value changes` |
| onSelectAll: OutputEmitterRef |
Event emitted when all options are selected or deselected via the Ctrl/Cmd + A shortcut. Not emitted when a custom `selectAllHandler` is supplied — the handler owns the behaviour then. |
| onTouched: () => void | `View -> model callback called when select has been touched` |
| openedChange: EventEmitter |
Event emitted when the select panel has been toggled. Emits true when opened, false when closed. Also serves as the `openedChange` member of the `KbqSiblingPopup` contract — a tooltip sharing this element's host reacts to it, so its emission timing (gated on `panelDoneAnimatingStream`, see `ngOnInit`) matters beyond this output's original consumers. |
| openedStream: Observable |
Event emitted when the select has been opened. |
| optionGroups: Signal |
All of the defined groups of options. |
| optionSelectionChanges: Observable |
Combined stream of all of the child options' change events. |
| options: QueryList |
All of the defined select options. |
| optionsContainer: Signal |
Reference to the container element that holds the options. |
| overlayDir: CdkConnectedOverlay | Reference to the CDK connected overlay directive. |
| overlayMinWidth: string | number | Minimum width of the overlay panel. |
| overlayOrigin: ElementRef |
Origin element for the overlay panel positioning. |
| overlayPanelClass: "kbq-select-overlay" | Overlay panel class. |
| overlayWidth: string | number | Width of the overlay panel. |
| panel: Signal |
Reference to the overlay panel element. |
| panelClass: InputSignal |
Classes to be passed to the select panel. Supports the same syntax as the `[class]` binding. |
| panelDoneAnimatingStream: Subject |
Emits when the panel element is finished transforming in. |
| panelMaxHeight: InputSignalWithTransform |
Maximum height of the panel's scrollable option list, in pixels. Applied as the `--kbq-select-panel-size-max-height` custom property on the panel, so it also drives the pinned height of a `cdk-virtual-scroll-viewport` — with virtual scroll the value is an exact height, not a cap. The search field and the footer sit outside the scrollable area and add to the panel's total height. When null, the token default (256px) applies. |
| panelMaxWidth: InputSignalWithTransform |
Maximum width of the panel in pixels. Caps how far the panel grows with its content — it never makes the panel narrower than the trigger, and never clamps an explicit `panelWidth`. When null, the `--kbq-panel-size-width-max` token applies. |
| panelMinWidth: InputSignalWithTransform |
Minimum width of the panel in pixels. If minWidth is larger than window width, it will be ignored. |
| panelOpen: boolean | Whether the select panel is currently open. |
| panelWidth: InputSignal |
Width of the panel. If set to `auto`, the panel will match the trigger width, but will never be narrower than `panelMinWidth`. If set to null or an empty string, the panel will grow to match the longest option's text. Any other value is used as an exact width, and `panelMinWidth` is not applied. |
| parentForm: NgForm | |
| parentFormGroup: FormGroupDirective | |
| placeholder: string | Placeholder text to be shown when no value is selected. Displayed in the trigger when the select is closed and no value is selected. |
| positions: ConnectedPosition[] | Opens the panel below the trigger, falling back to above it when it does not fit. A third position is appended at runtime by `updatePanelAnchor`: a multiline trigger that has grown taller than the panel gets it anchored to its first row and drawn over the rest of it. |
| previousSelectionModelSelected: KbqOptionBase[] | Previously selected options before the current selection was made. |
| required: boolean | Whether the select is required. Affects validation and display of placeholder. |
| scrollStrategy: ScrollStrategy | Strategy that will be used to handle scrolling while the select panel is open. |
| scrolledToBottom: OutputEmitterRef |
Emits when the options panel is scrolled to (or within `scrolledToBottomOffset` of) the bottom. |
| scrolledToBottomOffset: InputSignalWithTransform |
Distance in pixels from the bottom of the options panel at which `scrolledToBottom` fires. Default `0` — emits only when the panel is fully scrolled to the bottom. |
| search: Signal |
Reference to the optional search component. |
| searchEmpty: Signal |
Reference to the optional empty search result component. |
| searchMinOptionsThreshold: number | Controls when the search functionality is displayed based on the number of available options. Automatically enables search hiding if value provided, even if `defaultOptions.searchMinOptionsThreshold` is provided. |
| selectAll: InputSignalWithTransform |
Whether to render the "select all" master checkbox above the options. Multiple selection only. The row acts on the options the user can actually toggle — rendered, enabled and selectable. Since search filtering removes options from the DOM, "select all" under an active query selects only the matches. Enabling it also makes Ctrl/Cmd + A a two-way toggle, so the shortcut and the checkbox never disagree (`selectAllToggle` is implied). |
| selectAllHandler: (event: KeyboardEvent, select: KbqSelect) => void | Function for handling the Ctrl + A (select all) keyboard combination. By default, the internal handler selects all options. |
| selectAllOption: Signal |
Reference to the built-in "select all" row, rendered only while `selectAll` is on. |
| selectAllState: KbqPseudoCheckboxState | State of the "select all" master checkbox. |
| selectAllText: string | Label of the "select all" row. Kept in step with the locale service. |
| selectAllToggle: InputSignalWithTransform |
When `true`, a repeated Ctrl/Cmd+A deselects all options. Off by default (Ctrl+A only selects). |
| selected: KbqOptionBase | KbqOptionBase[] | Returns the currently selected option(s). Single value or array for multiple selection. |
| selectionChange: OutputEmitterRef |
Event emitted when the selected value has been changed by the user. |
| selectionModel: SelectionModel |
Deals with the selection logic. Manages selected options and their states. |
| showPreselectedValues: InputSignal |
Determines whether preselected values are displayed. |
| showSelectAll: boolean | Whether the "select all" row is currently rendered. Unsupported whenever a selected value can exist as a synthetic `KbqVirtualOption` instead of a real, projected `KbqOption` (see `selectValue`) — under `withVirtualScroll` or `showPreselectedValues`. `selectAllTargets` can only see `this.options`, the currently-rendered `KbqOption`s, so a checkbox built on top of it would misreport "everything selected" after only touching the values that happen to have a rendered option. |
| sortComparator: InputSignal<(a: KbqOptionBase, b: KbqOptionBase, options: KbqOptionBase[]) => number> | Function used to sort the values in a select in multiple mode. Follows the same logic as `Array.prototype.sort`. |
| tags: QueryList |
Query list of tags displayed in multiple selection mode. |
| transformOrigin: string | The value of the select panel's transform-origin property for animations. |
| trigger: Signal |
Trigger - is a clickable field to open select dropdown panel |
| triggerFontSize: number | The cached font-size of the trigger element in pixels. |
| triggerRect: DOMRect | The last measured value for the trigger's client bounding rect. |
| triggerValue: string | Returns the display value for the trigger element. |
| triggerValues: KbqOptionBase[] | Returns all selected options in display order. |
| triggerValuesLimit: InputSignal |
Specifies the maximum number of trigger values allowed. This constant limits the size of the trigger values array to ensure performance and prevent excessive memory usage. A value of `0` indicates that there is no limit. |
| value: any | Value of the select control. Can be a single value or array of values for multiple selection. |
| viewportMargin: number | Minimum space to keep between the overlay and the viewport edge. At least `defaultOffsetY` so CDK's fit check — which runs before the `kbq-connected-overlay_below/_above` gap padding is applied to the pane — stays conservative enough to absorb that padding instead of letting the panel overflow the viewport by the size of the gap. |
| virtualOptionFactory: InputSignal<(value: any) => KbqVirtualOption> | Factory used to construct a `KbqVirtualOption` for selected values whose `KbqOption` is not currently rendered (e.g. virtual scroll out of viewport, programmatically set initial value, `showPreselectedValues`). Required when option values are objects so the trigger (and tags in multiple mode) can render a human-readable label. Also lets consumers customise per-value `disabled` state or any future `KbqVirtualOption` fields without adding new `@Input`s. Defaults to `new KbqVirtualOption(value, this.disabled)`, which is correct for primitive values where `value` itself is the display label. |
| virtualScrollViewport: Signal |
Reference to the CDK virtual scroll viewport for tracking scroll position in virtual mode. |
| window: Window | |
| withVirtualScroll: boolean | Whether virtual scrolling is enabled for the options panel. |
Deprecated offsetY: number
|
The y-offset of the overlay panel in relation to the trigger. |
| Name | Description |
|---|---|
| cities: string | |
| city: string | |
| countryCode: string | |
| countryName: string | |
| id: string | |
| offset: string |
| Name | Description |
|---|---|
| countryCode: string | |
| countryName: string | |
| zones: KbqTimezoneZone[] |
Convert string timezone offset (formatted offset) to number (minutes)
const parseOffset(offset: string): number;
| Parameters | Description |
|---|---|
| offset: string |
Grouping timezones by countries
const getZonesGroupedByCountry(data: KbqTimezoneZone[], otherCountriesLabel?: string, priorityCountry?: string): KbqTimezoneGroup[];
| Parameters | Description |
|---|---|
| data: KbqTimezoneZone[] | |
| otherCountriesLabel?: string | |
| priorityCountry?: string |
const offset(value: any): string;
| Parameters | Description |
|---|---|
| value: any |
const offsetFormatter(value: string): string;
| Parameters | Description |
|---|---|
| value: string |
const offsetFormatterAsObject(value: string): { [UTC: string]: string; };
| Parameters | Description |
|---|---|
| value: string |
Comparator for timezone sorting. Sort by offset and country name
const timezonesSortComparator(first: KbqTimezoneZone, second: KbqTimezoneZone): number;
| Parameters | Description |
|---|---|
| first: KbqTimezoneZone | |
| second: KbqTimezoneZone |
Filtering timezone cities by search string. Accepts a single pattern or several (matching a city if it satisfies any one of them) — patterns that look like a bare UTC offset (e.g. `+3`) are ignored here, since they describe the zone rather than a city name.
const filterCitiesBySearchString(cities: string, searchPattern?: string | readonly string[]): string;
| Parameters | Description |
|---|---|
| cities: string | |
| searchPattern?: string | readonly string[] |
const TOOLTIP_VISIBLE_ROWS_COUNT: number;