Selector: [kbqNormalizeWhitespace]

Methods
onCopy
Replace thin-space with space on copy event

Shared directive to count lines inside a text area, such as a list item. Line elements can be extracted with a @ContentChildren(KbqLine) query, then counted by checking the query list's length.

Selector: [kbq-line], [mcLine]

Selector: kbq-action-container

Exported as: kbqActionContainer

Selector: .kbq-form__row, .kbq-form__fieldset, .kbq-form__legend

Exported as: kbqFormElement
Properties
Name Description
elements: Signal
hasLegend: boolean
isFieldSet: boolean
isHorizontal: boolean
isRow: boolean
margin: boolean
Properties
Name Description
read: BehaviorSubject
timeToRead: number
timestamp: number
Methods
mouseenterHandler
mouseleaveHandler

Component that is used to group instances of `kbq-option`. When options aren't provided as `ng-content`, used as a Group Header with styling.

Selector: kbq-optgroup

Exported as: kbqOptgroup
Properties
Name Description
@Input()
disabled: boolean
@Input()
label: InputSignal
labelId: string Unique id for the underlying label.
Properties
Name Description
collapsed: boolean
isBrowser: boolean
nativeElement: HTMLElement
state: Subject
Methods
getOuterElementWidth

Selector: kbq-select-trigger, [kbq-select-trigger]

Properties
Name Description
arrow: boolean
changeDetectorRef: ChangeDetectorRef
classMap: {}
closeOnInteraction: boolean
content: string | TemplateRef
context: { $implicit: any; }
defaultPaddings: boolean
destroyRef: DestroyRef
elementRef: ElementRef
header: string | TemplateRef
hovered: BehaviorSubject Stream that emits when the popup item is hovered.
offset: number
onHideSubject: Subject Subject for notifying that the tooltip has been hidden from the view
prefix: string
renderer: Renderer2
trigger: KbqPopUpTrigger
visibility: PopUpVisibility
visibleChange: EventEmitter
warning: boolean
Methods
addEventListenerForHide
afterHidden
Returns an observable that notifies when the tooltip has been hidden from view.
animationDone
animationStart
detectChanges
handleBodyInteraction
hide
Hides the popup after a specified delay. The hide timeout triggers the hiding of the popup by updating visibility and emitting relevant events. Also, it marks for check to ensure proper change detection, especially for parent components with OnPush strategy.
isTemplateRef
isVisible
markForCheck
setStickPosition
show
updateClassMap

Selector: kbq-select-matcher, [kbq-select-matcher]

Properties
Name Description
@Input()
useDefaultHandlers: InputSignalWithTransform

Selector: [kbq-select-search-empty-result]

Exported as: kbqSelectSearchEmptyResult

Selector: kbq-option-action

Exported as: kbqOptionAction
Properties
Name Description
@Input()
disabled: boolean
active: boolean
hasFocus: boolean
Methods
focus
onClick
onKeyDown

Selector: kbq-select-footer, [kbq-select-footer]

Selector: .kbq-form-vertical, .kbq-form-horizontal

Exported as: kbqForm
Properties
Name Description
elements: Signal
Methods
handleElements

Selector: [kbqSelectSearch]

Exported as: kbqSelectSearch
Properties
Name Description
changes: EventEmitter
formField: KbqFormFieldRef
isSearchChanged: boolean
ngControl: any
Methods
focus
handleKeydown
hasPlaceholder
reset
setPlaceholder
value

Container directive that sits on the scrollable element. Listens for scroll events and keeps the `overflow` signal up to date, which is then read by `KbqOverflowShadowTop` and `KbqOverflowShadowBottom`. The scroll source is auto-detected: if `KBQ_OVERFLOW_SHADOW_SOURCE` is provided in the host's DI, that source is used; otherwise the native `scroll` event on the host element is observed. In addition to scroll events, the directive observes the scroll source's box-size changes via CDK's `SharedResizeObserver` — this covers layout changes that happen without a scroll and alter the viewport size (modal open/close animation, window resize, reflow that resizes the element). Content that only grows `scrollHeight` without changing the element's box size is not detected by the resize observer; call `checkOverflow()` manually for those cases.

Selector: [kbqOverflowShadowContainer]

Exported as: kbqOverflowShadowContainer
Properties
Name Description
@Input()
debounce: InputSignalWithTransform
Optional debounce for scroll events, in milliseconds. Default is 0.
overflow: WritableSignal Current shadow state. Updated on every scroll event.
Methods
checkOverflow
Force-rechecks overflow and updates the signal. Calling this manually is normally not necessary — scroll events plus `SharedResizeObserver` cover the standard scenarios. Kept for rare cases when external code knows about a layout change more precisely than the browser observers (e.g. content that only grows `scrollHeight`).
Properties
Name Description
@Input()
color: string
colorClassName: string current class name of color
Methods
setDefaultColor
this color will be used as a default value. For example [color]="'' | false | undefined | null".

Abstract base directive for hover/focus/click-triggered pop-ups (e.g. tooltip and popover). It manages the CDK overlay lifecycle, binds the trigger event listeners, resolves placement via a flexible connected position strategy, and controls show/hide timing. Concrete subclasses supply the pop-up component type, its content, and the overlay configuration.

Properties
Name Description
isOpen: boolean Whether the pop-up overlay is currently open.

Single option inside of a `` element.

Selector: kbq-option

Exported as: kbqOption
Properties
Name Description
@Input()
disabled: any
@Input()
selectable: InputSignalWithTransform
@Input()
showCheckbox: boolean
@Input()
userSelect: InputSignalWithTransform
@Input()
value: any
The form value of the option.
@Input()
viewValue: string
The displayed value of the option. It is necessary to show the selected option in the select's trigger.
@Output('onSelectionChange')
onSelectionChange: EventEmitter>
Event emitted when the option is selected or deselected.
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.
group: KbqOptgroup
id: string
multiple: boolean Whether the wrapping component is in multiple selection mode.
parent: KbqOptionParentComponent
selected: boolean
stateChanges: Subject Emits when the state of the option changes and any parents have to be notified.
textElement: ElementRef
Methods
deselect
emitSelectionChangeEvent
Emits the selection change event.
focus
getHostElement
getLabel
Gets the label to be used when determining whether the option should be focused.
getTabIndex
handleKeydown
Ensures the option is selected when activated from the keyboard.
select
selectViaInteraction
`Selects the option while indicating the selection came from the user. Used to determine if the select's view -> model callback should be invoked.`
setActiveStyles
This method sets display styles on the option to make it appear active. This is used by the ActiveDescendantKeyManager so key events will display the proper options as active on arrow key events.
setInactiveStyles
This method removes display styles on the option that made it appear active. This is used by the ActiveDescendantKeyManager so key events will display the proper options as active on arrow key events.

Marker directive for the top-shadow indicator. Linked to the container directive via a template ref: `

`. Sets an inline `box-shadow` on the host element using the value from the `shadow` input (the Koobiq token by default). Consumers can override the shadow from the outside by overriding the token `--kbq-shadow-overflow-normal-bottom` (or whichever token is passed via the `shadow` input) in the relevant cascade scope.

Selector: [kbqOverflowShadowTop]

Exported as: kbqOverflowShadowTop
Properties
Name Description
@Input('kbqOverflowShadowTop')
ref: InputSignal
Reference to the container directive. May be `undefined` if the container has not been rendered yet (e.g. the indicator lives in one
@Input()
shadow: InputSignal
Value of `box-shadow` when the shadow is active. Defaults to the standard Koobiq token.

Marker directive for the bottom-shadow indicator. Linked to the container directive via a template ref: `

`. Sets an inline `box-shadow` on the host element. See {@link KbqOverflowShadowTop}.

Selector: [kbqOverflowShadowBottom]

Exported as: kbqOverflowShadowBottom
Properties
Name Description
@Input('kbqOverflowShadowBottom')
ref: InputSignal
Reference to the container directive. See {@link KbqOverflowShadowTop.ref}.
@Input()
shadow: InputSignal
Value of `box-shadow` when the shadow is active. Defaults to the standard Koobiq token.
Methods
allowFocus
preventFocus

Provides a set of validators for password form controls.

Methods
maxLength
Validator that requires the control's value length to be at most `max` characters. `max` - number of characters. ## Usage: ```typescript const control = new FormControl('password', PasswordValidators.maxLength(6)); console.log(control.errors); // {maxLength: {max: 6, actual: 8}} ```
minLength
Validator that requires the control's value length to be at least `min` characters. `min` - number of characters. ## Usage: ```typescript const control = new FormControl('password', PasswordValidators.minLength(10)); console.log(control.errors); // {minLength: {min: 10, actual: 8}} ```
minLowercase
Validator that requires the control's value to be at least `min` lowercase characters. `min` - number of lowercase characters. ### Usage: ```typescript const control = new FormControl('PASSWORD', PasswordValidators.minLowercase()); console.log(control.errors); // {minLowercase: {min: 1, actual: 0}} ```
minNumber
Validator that requires the control's value to be at least `min` number characters. `min` - number of number characters. ### Usage: ```typescript const control = new FormControl('passw0rd', PasswordValidators.minNumber(2)); console.log(control.errors); // {minNumber: {min: 2, actual: 1}} ```
minSpecial
Validator that requires the control's value to be at least `min` special characters. `min` - number of special characters. ### Special characters: ```js ['!','@','#','$','%','^','&','*'] ``` ### Usage: ```typescript const control = new FormControl('pa$sword', PasswordValidators.minSpecial(2)); console.log(control.errors); // {minSpecial: {min: 2, actual: 1}} ```
minUppercase
Validator that requires the control's value to be at least `min` uppercase characters. `min` - number of uppercase characters. ### Usage: ```typescript const control = new FormControl('Password', PasswordValidators.minUppercase(2)); console.log(control.errors); // {minUppercase: {min: 2, actual: 1}} ```
Properties
Name Description
document: Document
scrollBarWidth: number
Methods
initScrollBarWidth
Properties
Name Description
adapter: DateAdapter
formatter: DateFormatter
Properties
Name Description
adapter: DateAdapter
config: FormatterConfig
invalidDateErrorText: string
localeService: KbqLocaleService
messageFormat: MessageFormat<"string">
Methods
absoluteDate
absoluteLongDate
absoluteLongDateTime
absoluteShortDate
absoluteShortDateTime
duration
durationLong
durationShort
durationShortest
openedRangeDate
openedRangeDateTime
rangeDate
rangeDateTime
rangeLongDate
rangeLongDateTime
rangeMiddleDateTime
rangeShortDate
rangeShortDateTime
relativeDate
relativeLongDate
relativeLongDateTime
relativeShortDate
relativeShortDateTime
setLocale
Properties
Name Description
activeItem: T
activeItemIndex: number
change: Subject Stream that emits whenever the active item of the list manager changes.
previousActiveItemIndex: number
tabOut: Subject Stream that emits any time the TAB key is pressed, so components can react when focus is shifted off of the list.
Methods
getFocusOrigin
isTyping
Gets whether the user is currently typing into the manager using the typeahead feature.
onKeydown
Sets the active item depending on the key event passed in.
setActiveItem
setFirstItemActive
setFocusOrigin
Sets the focus origin that will be passed in to the items for any subsequent `focus` calls.
setLastItemActive
setNextItemActive
setNextPageItemActive
setPreviousItemActive
setPreviousPageItemActive
skipPredicate
Sets the predicate function that determines which items should be skipped by the list key manager.
updateActiveItem
withAllowedModifierKeys
Modifier keys which are allowed to be held down and whose default actions will be prevented as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.
withHomeAndEnd
Configures the key manager to activate the first and last items respectively when the Home or End key is pressed.
withHorizontalOrientation
Configures the key manager to move the selection horizontally. Passing in `null` will disable horizontal movement.
withScrollSize
withTypeAhead
Turns on typeahead mode which allows users to set the active item by typing.
withVerticalOrientation
Configures whether the key manager should be able to move the selection vertically.
withWrap
Turns on wrapping mode, which ensures that the active item will wrap to the other end of list when there are no more items in the given direction.
Properties
Name Description
config: DateAdapterConfig
locale: any The locale to use for all dates.
localeChanges: Observable A stream that emits when the locale changes.
Methods
addCalendarDays
Adds the given number of days to the date. Days are counted as if moving one cell on the calendar for each day.
addCalendarMonths
Adds the given number of months to the date. Months are counted as if flipping a page on the calendar for each month and then finding the closest date in the new month. For example when adding 1 month to Jan 31, 2017, the resulting date will be Feb 28, 2017.
addCalendarUnits
Adds calendar units to a date.
addCalendarYears
Adds the given number of years to the date. Years are counted as if flipping 12 pages on the calendar for each year and then finding the closest date in the new month. For example when adding 1 year to Feb 29, 2016, the resulting date will be Feb 28, 2017.
clampDate
Clamp the given date between min and max dates.
clone
Clones the given date.
compareDate
Compares two dates.
compareDateTime
Compares two dates.
createDate
Creates a date with the given year, month, and date. Does not allow over/under-flow of the month and date.
createDateTime
Creates a date time with the given year, month, date, hours, minutes, seconds and milliseconds. Does not allow over/under-flow of the month and date.
daysFromToday
deserialize
Attempts to deserialize a value to a valid date object. This is different from parsing in that deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601 string). The default implementation does not allow any deserialization, it simply checks that the given value is already a valid date object or null. The `` will call this method on all of it's `@Input()` properties that accept dates. It is therefore possible to support passing values from your backend directly to these properties by overriding this method to also deserialize the format used by your backend.
diffNow
durationAs
durationFormat
durationObjectFromDates
format
Formats a date as a string according to the given format.
getDate
Gets the date of the month component of the given date.
getDateNames
Gets a list of names for the dates of the month.
getDayOfWeek
Gets the day of the week component of the given date.
getDayOfWeekNames
Gets a list of names for the days of the week.
getFirstDayOfWeek
Gets the first day of the week.
getHours
Gets the hours component of the given date.
getMilliseconds
Gets the milliseconds component of the given date.
getMinutes
Gets the minutes component of the given date.
getMonth
Gets the month component of the given date.
getMonthNames
Gets a list of names for the months.
getNumDaysInMonth
Gets the number of days in the month of the given date.
getSeconds
Gets the seconds component of the given date.
getTime
Gets returns the number of milliseconds since the Unix Epoch of the given date.
getYear
Gets the year component of the given date.
getYearName
Gets the name for the year of the given date.
hasSame
invalid
Gets date instance that is not valid.
isDateInstance
Checks whether the given object is considered a date instance by this DateAdapter.
isValid
Checks whether the given date is valid.
parse
Parses a date from a user-provided value.
sameDate
Checks if two dates are equal.
setLocale
Sets the locale used for all dates.
startOf
"Set" given date to the beginning of the given unit.
toIso8601
Gets the RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339) for the given date. This method is used to generate date strings that are compatible with native HTML attributes such as the `min` or `max` attribute of an ``.
today
Gets today's date.
Properties
Name Description
activeItem: T
activeItemIndex: number
change: Subject Stream that emits whenever the active item of the list manager changes.
previousActiveItemIndex: number
tabOut: Subject Stream that emits any time the TAB key is pressed, so components can react when focus is shifted off of the list.
Methods
isTyping
Gets whether the user is currently typing into the manager using the typeahead feature.
onKeydown
Sets the active item depending on the key event passed in.
setActiveItem
This method sets the active item to the item at the specified index. It also adds active styles to the newly active item and removes active styles from the previously active item.
setFirstItemActive
setLastItemActive
setNextItemActive
setNextPageItemActive
setPreviousItemActive
setPreviousPageItemActive
skipPredicate
Sets the predicate function that determines which items should be skipped by the list key manager.
updateActiveItem
withAllowedModifierKeys
Modifier keys which are allowed to be held down and whose default actions will be prevented as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.
withHomeAndEnd
Configures the key manager to activate the first and last items respectively when the Home or End key is pressed.
withHorizontalOrientation
Configures the key manager to move the selection horizontally. Passing in `null` will disable horizontal movement.
withScrollSize
withTypeAhead
Turns on typeahead mode which allows users to set the active item by typing.
withVerticalOrientation
Configures whether the key manager should be able to move the selection vertically.
withWrap
Turns on wrapping mode, which ensures that the active item will wrap to the other end of list when there are no more items in the given direction.

Error state matcher that matches when a control is invalid and form is submitted. Requires use FormGroupDirective or NgForm.

Methods
isErrorState

This class manages keyboard events for selectable lists. If you pass it a query list of items, it will set the active item correctly when arrow events occur.

Properties
Name Description
activeItem: T
activeItemIndex: number
change: Subject Stream that emits whenever the active item of the list manager changes.
previousActiveItemIndex: number
tabOut: Subject Stream that emits any time the TAB key is pressed, so components can react when focus is shifted off of the list.
Methods
isTyping
Gets whether the user is currently typing into the manager using the typeahead feature.
onKeydown
Sets the active item depending on the key event passed in.
setActiveItem
Sets the active item to the item at the index specified.
setFirstItemActive
setLastItemActive
setNextItemActive
setNextPageItemActive
setPreviousItemActive
setPreviousPageItemActive
skipPredicate
Sets the predicate function that determines which items should be skipped by the list key manager.
updateActiveItem
withAllowedModifierKeys
Modifier keys which are allowed to be held down and whose default actions will be prevented as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.
withHomeAndEnd
Configures the key manager to activate the first and last items respectively when the Home or End key is pressed.
withHorizontalOrientation
Configures the key manager to move the selection horizontally. Passing in `null` will disable horizontal movement.
withScrollSize
withTypeAhead
Turns on typeahead mode which allows users to set the active item by typing.
withVerticalOrientation
Configures whether the key manager should be able to move the selection vertically.
withWrap
Turns on wrapping mode, which ensures that the active item will wrap to the other end of list when there are no more items in the given direction.

Event object emitted by KbqOption when selected or deselected.

Properties
Name Description
isUserInput: boolean
source: T

Error state matcher with split behavior based on error's type: - `required` errors are shown only after the form is submitted. - All other errors are shown as soon as the control is invalid and touched.

Methods
isErrorState
Properties
Name Description
current: BehaviorSubject
document: Document
renderer: Renderer2
rendererFactory: RendererFactory2
subscription: Subscription
themes: T[]
update: ([prev, current]: T[]) => void
Methods
getTheme
setTheme
setThemes

`OverlayContainer` that places the `.cdk-overlay-container` inside a shadow root instead of `document.body`. The default CDK `OverlayContainer` always appends its container to `document.body`. When the application is rendered inside a shadow root (e.g. a Module Federation micro-frontend), overlays — toasts, modals, dropdowns, tooltips, etc. — escape the shadow tree into the light DOM. There they lose access to the styles and theme tokens scoped to the shadow root (Koobiq theme tokens are defined on the `.kbq-light` / `.kbq-dark` ancestor), which results in unstyled overlays. This container resolves the target shadow root from {@link KBQ_SHADOW_DOM_OVERLAY_HOST} (or the root component when the token is absent) and relocates the overlay container into it. After relocating, it also clones CDK's own structural overlay stylesheet (`position`/`z-index`/backdrop, `.cdk-overlay-container:empty`) into the shadow root, since those `document.head` styles do not cross the shadow boundary. If no shadow root is found — the common case for an app rendered directly in the light DOM — the container is left on `document.body`, so it is safe to provide unconditionally. Only **open** shadow roots can be resolved: a closed shadow root exposes neither `Element.shadowRoot` nor a `ShadowRoot` from `getRootNode()`, so pass an element that already lives inside the closed tree if you must use one. Note: this fixes the overlay container *placement* and delivers the CDK structural overlay styles. The host application is still responsible for delivering the **Koobiq component/theme styles** (the `.kbq-light` / `.kbq-dark` tokens and component CSS) into the shadow root, since global `document.head` stylesheets do not cascade across a shadow boundary.

Methods
getContainerElement
This method returns the overlay container element. It will lazily create the element the first time it is called to facilitate using the container in non-browser environments.

Error state matcher that matches when a control is invalid and dirty or form is submitted.

Methods
isErrorState
Properties
Name Description
disabled: boolean
onSelectionChange: EventEmitter>
value: any
viewValue: string
Methods
deselect
emitSelectionChangeEvent
Emits the selection change event.
select

Provider that defines how form controls behave with regards to displaying error messages. Error state matcher that matches when a control is invalid and touched or form is submitted.

Methods
isErrorState

Event emitted by the `onSelectAll` outputs when the select-all toggle runs.

Properties
Name Description
options: T[] The selectable options affected by the toggle.
selected: boolean `true` when all options were selected, `false` when all were deselected.
source: S Component that emitted the event.
Properties
Name Description
changes: BehaviorSubject
current: any
id: string
locales: any
Methods
addLocale
getParams
setLocale
Properties
Name Description
disabled: any
onSelectionChange: EventEmitter>
selected: boolean
value: any
viewValue: string
Methods
deselect
emitSelectionChangeEvent
Emits the selection change event.
select

Provides a set of validators for file-related form controls.

Methods
isCorrectExtension
Validator that checks whether file's name or MIME type matches one of the accepted extensions or MIME types.
maxFileSize
Validator that checks if the file size is less than or equal to the provided `maxSize`.

Adapter describing how a component reads and writes selection state for a set of items, so the shared select-all logic can operate regardless of how selection is stored (per-option setter, `SelectionModel` on data nodes, etc.).

Properties
Name Description
isSelectable: (item: T) => boolean Whether the item may participate (e.g. not disabled, and — for tree — `selectable()`).
isSelected: (item: T) => boolean Current selected state of the item.
items: readonly T[] All candidate items, in render/model order.
setSelected: (item: T, selected: boolean) => void Applies the new selected state to the item.
Properties
Name Description
parentTextElement: ElementRef
textElement: ElementRef

This is the interface for highlightable items (used by the ActiveDescendantKeyManager). Each item must know how to style itself as active or inactive and whether or not it is currently disabled.

Properties
Name Description
disabled: boolean
Methods
getLabel
setActiveStyles
setInactiveStyles

This is the interface for focusable items (used by the FocusKeyManager). Each item must know how to focus itself, whether or not it is currently disabled and be able to supply it's label.

Properties
Name Description
disabled: boolean
Methods
focus
getLabel
Properties
Name Description
color: string
Properties
Name Description
disabled: boolean
Properties
Name Description
closedStream: Observable
Properties
Name Description
className: string
name: string
selected: boolean
Properties
Name Description
disabled: boolean
Methods
getLabel
Properties
Name Description
abbreviations: string[]
base: number
power: number

Shadow visibility state — which of the two shadows should be rendered.

Properties
Name Description
bottom: boolean Whether the bottom (footer) shadow should be visible — more content remains below the fold.
top: boolean Whether the top (header) shadow should be visible — content is scrolled past the top.
Properties
Name Description
dropdownTrigger: { opened: boolean; restoreFocus: boolean; dropdownClosed: EventEmitter; lastDestroyReason: void | "click" | "keydown" | "tab"; openedBy: "touch" | "mouse" | "keyboard"; toggle(): void; }
tooltipTrigger: { disabled: boolean; }
Methods
focus

Configuration for file size formatting options. Defines the default unit system, precision, and available unit systems.

Properties
Name Description
defaultPrecision: number Default number of decimal places to display in formatted output.
defaultUnitSystem: "SI" | "IEC" Default unit system to use (e.g., 'SI' or 'IEC').
unitSystems: { SI: KbqUnitSystem; IEC: KbqUnitSystem; }

Options for {@link toggleSelectAll}.

Properties
Name Description
allowDeselect: boolean When `true`, a repeated toggle deselects everything once all selectable items are already selected. When `false` (default), the toggle only ever selects.

Source of scroll events and scroll metrics. Can be provided by a component that wraps the scrollable element (e.g. `KbqScrollbar`) so that `KbqOverflowShadowContainer` does not have to subscribe to the native `scroll` event directly.

Properties
Name Description
onScroll: Observable Emits whenever the wrapped element scrolls.
Methods
getScrollElement
The element whose `scrollTop`/`clientHeight`/`scrollHeight` drive the shadows, or `null` if not ready yet.

Special contract between `KbqDecimalPipe` and `KbqTableNumberPipe`, so they can be interchangeable in the cases of usage

Methods
transform

Handler that will update scroll position of elements inside overlay

Methods
scrollActiveOptionIntoView
Scrolls the active option into view.
Properties
Name Description
browseLink: string
browseLinkFolder: string
browseLinkFolderMixed: string
captionText: string
captionTextOnlyFolder: string
captionTextWithFolder: string
Properties
Name Description
browseLink: string
browseLinkFolder: string
browseLinkFolderMixed: string
captionText: string
captionTextForCompactSize: string
captionTextOnlyFolder: string
captionTextWhenSelected: string
captionTextWithFolder: string
title: string

Creates a browser MouseEvent with the specified options.

const createMouseEvent(type: string, x?: number, y?: number, button?: number): MouseEvent;
Parameters Description
type: string
x?: number
y?: number
button?: number
const wrappedErrorMessage(e: Error): RegExp;
Parameters Description
e: Error
const isBoolean(value: unknown): value is boolean;
Parameters Description
value: unknown

Patches an elements focus and blur methods to emit events consistently and predictably. This is necessary, because some browsers, like IE11, will call the focus handlers asynchronously, while others won't fire them at all if the browser window is not focused.

const patchElementFocus(element: HTMLElement): void;
Parameters Description
element: HTMLElement

Focuses an input, sets its value and dispatches the `input` event, simulating the user typing.

const typeInElement(value: string, element: HTMLInputElement): void;
Parameters Description
value: string Value to be set on the input.
element: HTMLInputElement Element onto which to set the value.

Utility to dispatch any event on a Node.

const dispatchEvent(node: Node | Window, event: Event): Event;
Parameters Description
node: Node | Window
event: Event

Converts a byte value into locale-independent file size parts: numeric value and unit abbreviation.

const getFormattedSizeParts(value: number, system: KbqUnitSystem): { value: string; unit: string; };
Parameters Description
value: number - size in bytes.
system: KbqUnitSystem - unit system defining abbreviations and base scaling (SI/IEC).

Escapes characters in the specified string that have special meaning in a regular expression.

const escapeRegExp(value: string): string;
Parameters Description
value: string

Shorthand to dispatch a fake event on a specified node.

const dispatchFakeEvent(node: Node | Window, type: string, canBubble?: boolean): Event;
Parameters Description
node: Node | Window
type: string
canBubble?: boolean
const mixinDisabled(base: T): Constructor<CanDisable> & Function & { prototype: CanDisable; } & T;
Parameters Description
base: T
const mixinTabIndex(base: T, defaultTabIndex?: number): Constructor<HasTabIndex> & Function & { prototype: HasTabIndex; } & T;
Parameters Description
base: T
defaultTabIndex?: number

Shorthand to dispatch a keyboard event with a specified key code.

const dispatchKeyboardEvent(node: Node, type: string, keyCode: number, target?: Element): KeyboardEvent;
Parameters Description
node: Node
type: string
keyCode: number
target?: Element

Formats a number value according to locale and formatting options

const formatNumberWithLocale(value: unknown, formatter: NumberFormat, options?: KbqNumberFormatOptions): string;
Parameters Description
value: unknown
formatter: NumberFormat
options?: KbqNumberFormatOptions

Creates a browser TouchEvent with the specified pointer coordinates.

const createTouchEvent(type: string, pageX?: number, pageY?: number): UIEvent;
Parameters Description
type: string
pageX?: number
pageY?: number

Returns an exception to be thrown when assigning a non-function value to the comparator used to determine if a value corresponds to an option. Note that whether the function actually takes two values and returns a boolean is not checked.

const getKbqSelectNonFunctionValueError(): Error;
const KBQ_DEFAULT_LOCALE_DATA_FACTORY(): { items: { id: string; name: string; }[]; 'en-US': { formatters: { number: { rounding: { separator: string; groupSeparator: string; thousand: string; million: string; billion: string; trillion: string; }; }; }; input: { number: { groupSeparator: string[]; fractionSeparator: string; }; }; sizeUnits: { defaultUnitSystem: "SI"; defaultPrecision: number; unitSystems: { SI: { abbreviations: string[]; base: number; power: number; }; IEC: { abbreviations: string[]; base: number; power: number; }; }; }; select: { hiddenItemsText: string; }; datepicker: { placeholder: string; dateInput: string; }; timepicker: { placeholder: { full: string; short: string; }; }; fileUpload: { single: { captionText: string; captionTextOnlyFolder: string; captionTextWithFolder: string; browseLink: string; browseLinkFolder: string; browseLinkFolderMixed: string; }; multiple: { captionText: string; captionTextOnlyFolder: string; captionTextWithFolder: string; captionTextWhenSelected: string; captionTextForCompactSize: string; browseLink: string; browseLinkFolder: string; browseLinkFolderMixed: string; title: string; }; }; codeBlock: { softWrapOnTooltip: string; softWrapOffTooltip: string; downloadTooltip: string; copiedTooltip: string; copyTooltip: string; viewAllText: string; viewLessText: string; openExternalSystemTooltip: string; }; timezone: { searchPlaceholder: string; }; actionsPanel: { closeTooltip: string; }; filterBar: { reset: { buttonName: string; }; search: { tooltip: string; placeholder: string; }; filters: { defaultName: string; saveNewFilterTooltip: string; searchPlaceholder: string; searchEmptyResult: string; saveAsNewFilter: string; saveChanges: string; saveAsNew: string; change: string; resetChanges: string; remove: string; name: string; error: string; errorHint: string; saveButton: string; cancelButton: string; actionsTooltip: string; }; add: { tooltip: string; addedAnnouncement: string; }; refresher: { refresh: string; settings: string; }; pipe: { clearButtonTooltip: string; removeButtonTooltip: string; applyButton: string; emptySearchResult: string; selectAll: string; }; datePipe: { customPeriod: string; customPeriodFrom: string; customPeriodTo: string; customPeriodErrorHint: string; backToPeriodSelection: string; }; }; clampedText: { openText: string; closeText: string; showMoreText: string; moreText: string; }; navbarIc: { toggle: { pinButton: string; collapseButton: string; }; }; navbar: { toggle: { expand: string; collapse: string; }; }; searchExpandable: { tooltip: string; placeholder: string; }; appSwitcher: { searchPlaceholder: string; searchEmptyResult: string; sitesHeader: string; }; timeRange: { title: { for: string; placeholder: string; }; editor: { from: string; to: string; apply: string; cancel: string; rangeLabel: string; allTime: string; currentQuarter: string; currentYear: string; allTimeOption: string; currentQuarterOption: string; currentYearOption: string; }; durationTemplate: { title: { SEPARATOR: string; LAST_PART_SEPARATOR: string; YEARS: string; MONTHS: string; WEEKS: string; DAYS: string; HOURS: string; MINUTES: string; SECONDS: string; YEARS_FRACTION: string; MONTHS_FRACTION: string; }; option: { SEPARATOR: string; LAST_PART_SEPARATOR: string; YEARS: string; MONTHS: string; WEEKS: string; DAYS: string; HOURS: string; MINUTES: string; SECONDS: string; YEARS_FRACTION: string; MONTHS_FRACTION: string; }; }; }; notificationCenter: { notifications: string; remove: string; doNotDisturb: string; showPopUpNotifications: string; noNotifications: string; failedToLoadNotifications: string; repeat: string; loadingMore: string; }; }; 'es-LA': { formatters: { number: { rounding: { separator: string; groupSeparator: string; thousand: string; million: string; billion: string; trillion: string; }; decimal: { viewGroupSeparator: string; }; }; }; input: { number: { groupSeparator: string[]; fractionSeparator: string; viewGroupSeparator: string; }; }; sizeUnits: { defaultUnitSystem: string; defaultPrecision: number; unitSystems: { SI: { abbreviations: string[]; base: number; power: number; }; IEC: { abbreviations: string[]; base: number; power: number; }; }; }; select: { hiddenItemsText: string; }; datepicker: { placeholder: string; }; timepicker: { placeholder: { full: string; short: string; }; }; fileUpload: { single: { captionText: string; captionTextOnlyFolder: string; captionTextWithFolder: string; browseLink: string; browseLinkFolder: string; browseLinkFolderMixed: string; }; multiple: { captionText: string; captionTextOnlyFolder: string; captionTextWithFolder: string; captionTextWhenSelected: string; captionTextForCompactSize: string; browseLink: string; browseLinkFolder: string; browseLinkFolderMixed: string; title: string; }; }; codeBlock: { softWrapOnTooltip: string; softWrapOffTooltip: string; downloadTooltip: string; copiedTooltip: string; copyTooltip: string; viewAllText: string; viewLessText: string; openExternalSystemTooltip: string; }; timezone: { searchPlaceholder: string; }; actionsPanel: { closeTooltip: string; }; filterBar: { reset: { buttonName: string; }; search: { tooltip: string; placeholder: string; }; filters: { defaultName: string; saveNewFilterTooltip: string; searchPlaceholder: string; searchEmptyResult: string; saveAsNewFilter: string; saveChanges: string; saveAsNew: string; change: string; resetChanges: string; remove: string; name: string; error: string; errorHint: string; saveButton: string; cancelButton: string; actionsTooltip: string; }; add: { tooltip: string; addedAnnouncement: string; }; refresher: { refresh: string; settings: string; }; pipe: { clearButtonTooltip: string; removeButtonTooltip: string; applyButton: string; emptySearchResult: string; selectAll: string; }; datePipe: { customPeriod: string; customPeriodFrom: string; customPeriodTo: string; customPeriodErrorHint: string; backToPeriodSelection: string; }; }; clampedText: { openText: string; closeText: string; showMoreText: string; moreText: string; }; navbarIc: { toggle: { pinButton: string; collapseButton: string; }; }; navbar: { toggle: { expand: string; collapse: string; }; }; searchExpandable: { tooltip: string; placeholder: string; }; appSwitcher: { searchPlaceholder: string; searchEmptyResult: string; sitesHeader: string; }; timeRange: { title: { for: string; placeholder: string; }; editor: { from: string; to: string; apply: string; cancel: string; rangeLabel: string; allTime: string; currentQuarter: string; currentYear: string; allTimeOption: string; currentQuarterOption: string; currentYearOption: string; }; durationTemplate: { title: { SEPARATOR: string; LAST_PART_SEPARATOR: string; YEARS: string; MONTHS: string; WEEKS: string; DAYS: string; HOURS: string; MINUTES: string; SECONDS: string; YEARS_FRACTION: string; MONTHS_FRACTION: string; }; option: { SEPARATOR: string; LAST_PART_SEPARATOR: string; YEARS: string; MONTHS: string; WEEKS: string; DAYS: string; HOURS: string; MINUTES: string; SECONDS: string; YEARS_FRACTION: string; MONTHS_FRACTION: string; }; }; }; notificationCenter: { notifications: string; remove: string; doNotDisturb: string; showPopUpNotifications: string; noNotifications: string; failedToLoadNotifications: string; repeat: string; loadingMore: string; }; }; 'pt-BR': { formatters: { number: { rounding: { separator: string; groupSeparator: string; thousand: string; million: string; billion: string; trillion: string; }; }; }; input: { number: { groupSeparator: string[]; fractionSeparator: string; }; }; sizeUnits: { defaultUnitSystem: string; defaultPrecision: number; unitSystems: { SI: { abbreviations: string[]; base: number; power: number; }; IEC: { abbreviations: string[]; base: number; power: number; }; }; }; select: { hiddenItemsText: string; }; datepicker: { placeholder: string; }; timepicker: { placeholder: { full: string; short: string; }; }; fileUpload: { single: { captionText: string; captionTextOnlyFolder: string; captionTextWithFolder: string; browseLink: string; browseLinkFolder: string; browseLinkFolderMixed: string; }; multiple: { captionText: string; captionTextOnlyFolder: string; captionTextWithFolder: string; captionTextWhenSelected: string; captionTextForCompactSize: string; browseLink: string; browseLinkFolder: string; browseLinkFolderMixed: string; title: string; }; }; codeBlock: { softWrapOnTooltip: string; softWrapOffTooltip: string; downloadTooltip: string; copiedTooltip: string; copyTooltip: string; viewAllText: string; viewLessText: string; openExternalSystemTooltip: string; }; timezone: { searchPlaceholder: string; }; actionsPanel: { closeTooltip: string; }; filterBar: { reset: { buttonName: string; }; search: { tooltip: string; placeholder: string; }; filters: { defaultName: string; saveNewFilterTooltip: string; searchPlaceholder: string; searchEmptyResult: string; saveAsNewFilter: string; saveChanges: string; saveAsNew: string; change: string; resetChanges: string; remove: string; name: string; error: string; errorHint: string; saveButton: string; cancelButton: string; actionsTooltip: string; }; add: { tooltip: string; addedAnnouncement: string; }; refresher: { refresh: string; settings: string; }; pipe: { clearButtonTooltip: string; removeButtonTooltip: string; applyButton: string; emptySearchResult: string; selectAll: string; }; datePipe: { customPeriod: string; customPeriodFrom: string; customPeriodTo: string; customPeriodErrorHint: string; backToPeriodSelection: string; }; }; clampedText: { openText: string; closeText: string; showMoreText: string; moreText: string; }; navbarIc: { toggle: { pinButton: string; collapseButton: string; }; }; navbar: { toggle: { expand: string; collapse: string; }; }; searchExpandable: { tooltip: string; placeholder: string; }; appSwitcher: { searchPlaceholder: string; searchEmptyResult: string; sitesHeader: string; }; timeRange: { title: { for: string; placeholder: string; }; editor: { from: string; to: string; apply: string; cancel: string; rangeLabel: string; allTime: string; currentQuarter: string; currentYear: string; allTimeOption: string; currentQuarterOption: string; currentYearOption: string; }; durationTemplate: { title: { SEPARATOR: string; LAST_PART_SEPARATOR: string; YEARS: string; MONTHS: string; WEEKS: string; DAYS: string; HOURS: string; MINUTES: string; SECONDS: string; YEARS_FRACTION: string; MONTHS_FRACTION: string; }; option: { SEPARATOR: string; LAST_PART_SEPARATOR: string; YEARS: string; MONTHS: string; WEEKS: string; DAYS: string; HOURS: string; MINUTES: string; SECONDS: string; YEARS_FRACTION: string; MONTHS_FRACTION: string; }; }; }; notificationCenter: { notifications: string; remove: string; doNotDisturb: string; showPopUpNotifications: string; noNotifications: string; failedToLoadNotifications: string; repeat: string; loadingMore: string; }; }; 'ru-RU': { formatters: { number: { rounding: { separator: string; groupSeparator: string; thousand: string; million: string; billion: string; trillion: string; }; decimal: { viewGroupSeparator: string; }; }; }; input: { number: { groupSeparator: string[]; fractionSeparator: string; startFormattingFrom: number; viewGroupSeparator: string; }; }; sizeUnits: { defaultUnitSystem: string; defaultPrecision: number; unitSystems: { SI: { abbreviations: string[]; base: number; power: number; }; IEC: { abbreviations: string[]; base: number; power: number; }; }; }; select: { hiddenItemsText: string; }; datepicker: { placeholder: string; dateInput: string; }; timepicker: { placeholder: { full: string; short: string; }; }; fileUpload: { single: { captionText: string; captionTextOnlyFolder: string; captionTextWithFolder: string; browseLink: string; browseLinkFolder: string; browseLinkFolderMixed: string; }; multiple: { captionText: string; captionTextOnlyFolder: string; captionTextWithFolder: string; captionTextWhenSelected: string; captionTextForCompactSize: string; browseLink: string; browseLinkFolder: string; browseLinkFolderMixed: string; title: string; }; }; codeBlock: { softWrapOnTooltip: string; softWrapOffTooltip: string; downloadTooltip: string; copiedTooltip: string; copyTooltip: string; viewAllText: string; viewLessText: string; openExternalSystemTooltip: string; }; timezone: { searchPlaceholder: string; }; actionsPanel: { closeTooltip: string; }; filterBar: { reset: { buttonName: string; }; search: { tooltip: string; placeholder: string; }; filters: { defaultName: string; saveNewFilterTooltip: string; searchPlaceholder: string; searchEmptyResult: string; saveAsNewFilter: string; saveChanges: string; saveAsNew: string; change: string; resetChanges: string; remove: string; name: string; error: string; errorHint: string; saveButton: string; cancelButton: string; actionsTooltip: string; }; add: { tooltip: string; addedAnnouncement: string; }; refresher: { refresh: string; settings: string; }; pipe: { clearButtonTooltip: string; removeButtonTooltip: string; applyButton: string; emptySearchResult: string; selectAll: string; }; datePipe: { customPeriod: string; customPeriodFrom: string; customPeriodTo: string; customPeriodErrorHint: string; backToPeriodSelection: string; }; }; clampedText: { openText: string; closeText: string; showMoreText: string; moreText: string; }; navbarIc: { toggle: { pinButton: string; collapseButton: string; }; }; navbar: { toggle: { expand: string; collapse: string; }; }; searchExpandable: { tooltip: string; placeholder: string; }; appSwitcher: { searchPlaceholder: string; searchEmptyResult: string; sitesHeader: string; }; timeRange: { title: { for: string; placeholder: string; }; editor: { from: string; to: string; apply: string; cancel: string; rangeLabel: string; allTime: string; currentQuarter: string; currentYear: string; allTimeOption: string; currentQuarterOption: string; currentYearOption: string; }; durationTemplate: { title: { SEPARATOR: string; LAST_PART_SEPARATOR: string; YEARS: string; MONTHS: string; WEEKS: string; DAYS: string; HOURS: string; MINUTES: string; SECONDS: string; YEARS_FRACTION: string; MONTHS_FRACTION: string; }; option: { SEPARATOR: string; LAST_PART_SEPARATOR: string; YEARS: string; MONTHS: string; WEEKS: string; DAYS: string; HOURS: string; MINUTES: string; SECONDS: string; YEARS_FRACTION: string; MONTHS_FRACTION: string; }; }; }; notificationCenter: { notifications: string; remove: string; doNotDisturb: string; showPopUpNotifications: string; noNotifications: string; failedToLoadNotifications: string; repeat: string; loadingMore: string; }; }; 'tk-TM': { formatters: { number: { rounding: { separator: string; groupSeparator: string; thousand: string; million: string; billion: string; trillion: string; }; }; }; input: { number: { groupSeparator: string[]; fractionSeparator: string; viewGroupSeparator: string; }; }; sizeUnits: { defaultUnitSystem: string; defaultPrecision: number; unitSystems: { SI: { abbreviations: string[]; base: number; power: number; }; IEC: { abbreviations: string[]; base: number; power: number; }; }; }; select: { hiddenItemsText: string; }; datepicker: { placeholder: string; dateInput: string; }; timepicker: { placeholder: { full: string; short: string; }; }; fileUpload: { single: { captionText: string; captionTextOnlyFolder: string; captionTextWithFolder: string; browseLink: string; browseLinkFolder: string; browseLinkFolderMixed: string; }; multiple: { captionText: string; captionTextOnlyFolder: string; captionTextWithFolder: string; captionTextWhenSelected: string; captionTextForCompactSize: string; browseLink: string; browseLinkFolder: string; browseLinkFolderMixed: string; title: string; }; }; codeBlock: { softWrapOnTooltip: string; softWrapOffTooltip: string; downloadTooltip: string; copiedTooltip: string; copyTooltip: string; viewAllText: string; viewLessText: string; openExternalSystemTooltip: string; }; timezone: { searchPlaceholder: string; }; actionsPanel: { closeTooltip: string; }; filterBar: { reset: { buttonName: string; }; search: { tooltip: string; placeholder: string; }; filters: { defaultName: string; saveNewFilterTooltip: string; searchPlaceholder: string; searchEmptyResult: string; saveAsNewFilter: string; saveChanges: string; saveAsNew: string; change: string; resetChanges: string; remove: string; name: string; error: string; errorHint: string; saveButton: string; cancelButton: string; actionsTooltip: string; }; add: { tooltip: string; addedAnnouncement: string; }; refresher: { refresh: string; settings: string; }; pipe: { clearButtonTooltip: string; removeButtonTooltip: string; applyButton: string; emptySearchResult: string; selectAll: string; }; datePipe: { customPeriod: string; customPeriodFrom: string; customPeriodTo: string; customPeriodErrorHint: string; backToPeriodSelection: string; }; }; clampedText: { openText: string; closeText: string; showMoreText: string; moreText: string; }; navbarIc: { toggle: { pinButton: string; collapseButton: string; }; }; navbar: { toggle: { expand: string; collapse: string; }; }; searchExpandable: { tooltip: string; placeholder: string; }; appSwitcher: { searchPlaceholder: string; searchEmptyResult: string; sitesHeader: string; }; timeRange: { title: { for: string; placeholder: string; }; editor: { from: string; to: string; apply: string; cancel: string; rangeLabel: string; allTime: string; currentQuarter: string; currentYear: string; allTimeOption: string; currentQuarterOption: string; currentYearOption: string; }; durationTemplate: { title: { SEPARATOR: string; LAST_PART_SEPARATOR: string; YEARS: string; MONTHS: string; WEEKS: string; DAYS: string; HOURS: string; MINUTES: string; SECONDS: string; YEARS_FRACTION: string; MONTHS_FRACTION: string; }; option: { SEPARATOR: string; LAST_PART_SEPARATOR: string; YEARS: string; MONTHS: string; WEEKS: string; DAYS: string; HOURS: string; MINUTES: string; SECONDS: string; YEARS_FRACTION: string; MONTHS_FRACTION: string; }; }; }; notificationCenter: { notifications: string; remove: string; doNotDisturb: string; showPopUpNotifications: string; noNotifications: string; failedToLoadNotifications: string; repeat: string; loadingMore: string; }; }; };

Shorthand to dispatch a mouse event on the specified coordinates.

const dispatchMouseEvent(node: Node, type: string, x?: number, y?: number, event?: MouseEvent): MouseEvent;
Parameters Description
node: Node
type: string
x?: number
y?: number
event?: MouseEvent
const mixinColor(base: T, defaultColor?: KbqComponentColors | ThemePalette): Constructor<CanColor> & Function & { prototype: CanColor; } & T;
Parameters Description
base: T
defaultColor?: KbqComponentColors | ThemePalette

Canonical "select all / deselect all" toggle shared by the multi-select components (`Ctrl`/`Cmd` + `A`). Considers only selectable items and selects them all. When `allowDeselect` is `true` and every selectable item is already selected, deselects them all instead; otherwise a repeated call is a no-op. No-op when there are no selectable items.

const toggleSelectAll(adapter: KbqSelectAllAdapter<T>, options?: KbqToggleSelectAllOptions): T[];
Parameters Description
adapter: KbqSelectAllAdapter
options?: KbqToggleSelectAllOptions
const mixinErrorState(base: T): CanUpdateErrorStateCtor & T;
Parameters Description
base: T

Shorthand to dispatch a touch event on the specified coordinates.

const dispatchTouchEvent(node: Node, type: string, x?: number, y?: number): Event;
Parameters Description
node: Node
type: string
x?: number
y?: number

Whether the current platform is a Mac.

const isMac(): boolean;

Dispatches a keydown event from an element.

const createKeyboardEvent(type: string, keyCode: number, target?: Element, key?: string): any;
Parameters Description
type: string
keyCode: number
target?: Element
key?: string

Creates a fake event object with any desired event type.

const createFakeEvent(type: string, canBubble?: boolean, cancelable?: boolean): Event;
Parameters Description
type: string
canBubble?: boolean
cancelable?: boolean

Whether `Ctrl`/`Cmd` + `A` should select the text of a search `` rather than toggle options. Returns `true` only when the input has text that is not already fully selected (nothing selected, a partial selection, or just a caret). Returns `false` for an empty input (so select-all falls straight through to the options) and when the whole value is already selected (a second press then acts on the options).

const shouldSelectSearchText(input: HTMLInputElement): boolean;
Parameters Description
input: HTMLInputElement
const hasModifierKey(event: KeyboardEvent | MouseEvent, ...modifiers: ModifierKey[]): boolean;
Parameters Description
event: KeyboardEvent | MouseEvent
modifiers: ModifierKey[]
const isControl(event: KeyboardEvent): boolean;
Parameters Description
event: KeyboardEvent
const isNumberKey({ keyCode }: KeyboardEvent): boolean;
Parameters Description
{ keyCode }: KeyboardEvent
const isNumpadKey({ keyCode }: KeyboardEvent): boolean;
Parameters Description
{ keyCode }: KeyboardEvent
const isLetterKey({ keyCode }: KeyboardEvent): boolean;
Parameters Description
{ keyCode }: KeyboardEvent
const isFunctionKey({ keyCode }: KeyboardEvent): boolean;
Parameters Description
{ keyCode }: KeyboardEvent

Function that returns a string representation of a number without localized separators

const normalizeNumber(value: string, customConfig: Pick<KbqNumberInputLocaleConfig, "fractionSeparator" | "groupSeparator">): string;
Parameters Description
value: string
customConfig: Pick
const isVerticalMovement({ keyCode }: KeyboardEvent): boolean;
Parameters Description
{ keyCode }: KeyboardEvent
const isHorizontalMovement({ keyCode }: KeyboardEvent): boolean;
Parameters Description
{ keyCode }: KeyboardEvent
const isSelectAll(event: KeyboardEvent): boolean;
Parameters Description
event: KeyboardEvent
const isCopy(event: KeyboardEvent): boolean;
Parameters Description
event: KeyboardEvent
const isInput(event: Event): boolean;
Parameters Description
event: Event

Function that parse string and return a number. The string can be in any locale.

const checkAndNormalizeLocalizedNumber(num: string, locale?: string): number;
Parameters Description
num: string
locale?: string
const isLeftBracket(event: KeyboardEvent): boolean;
Parameters Description
event: KeyboardEvent
const isRightBracket(event: KeyboardEvent): boolean;
Parameters Description
event: KeyboardEvent
const isDigit({ keyCode }: KeyboardEvent): boolean;
Parameters Description
{ keyCode }: KeyboardEvent
const isWithin(startRange: number, endRange: number, valueToCheck: number): boolean;
Parameters Description
startRange: number
endRange: number
valueToCheck: number

Defines the available size options for Koobiq components.

type KbqDefaultSizes = 'compact' | 'normal' | 'big';

Tri-state checkbox values

type KbqCheckedState = 'true' | 'false' | 'mixed';

Controls the direction of flex items: horizontal (`'row'`) or vertical (`'column'`).

type KbqFlexDirection = 'row' | 'column';

Defines component orientation.

type KbqOrientation = 'horizontal' | 'vertical';

Locale configuration for `KbqCodeBlockModule`.

type KbqCodeBlockLocaleConfiguration = {
    softWrapOnTooltip: string;
    softWrapOffTooltip: string;

    downloadTooltip: string;

    copiedTooltip: string;
    copyTooltip: string;

    viewAllText: string;
    viewLessText: string;

    openExternalSystemTooltip: string;
};

Controls flex item wrapping: single-line (`'nowrap'`) or multi-line (`'wrap'`).

type KbqFlexWrap = 'nowrap' | 'wrap';
type KbqPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate' | boolean;

Reference to the element used to locate the shadow root that should host the CDK overlay container. It can be the shadow host element itself (the common case — the MFE root element) or any element that already lives inside the shadow tree. Provide it directly, as an `ElementRef`, or as a getter (useful when the element is created after the providers are declared, e.g. resolved lazily at bootstrap).

type KbqShadowDomOverlayHost = HTMLElement | ElementRef<HTMLElement> | (() => Element | null | undefined);
type KbqDateFormats = DateFormats;
type HasTabIndexCtor = Constructor<HasTabIndex> & AbstractConstructor<HasTabIndex>;

Unit systems as union type

type KbqMeasurementSystemType = keyof typeof KbqMeasurementSystem;

Locale configuration for `KbqActionsPanelModule`.

type KbqActionsPanelLocaleConfiguration = {
    closeTooltip: string;
};

Modifier keys handled by the ListKeyManager.

type ListKeyManagerModifierKey = 'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey';

Options for overriding locale-based number formatting

type KbqNumberFormatOptions = {
    /** Overrides the default group separator in the formatted output */
    viewGroupSeparator?: string;
};

Locale configuration for `KbqNumberInput`.

type KbqNumberInputLocaleConfig = {
    /** Characters recognized as group (thousands) separators. */
    groupSeparator: string[];
    /** Character used for the decimal separator */
    fractionSeparator: string;
    /** Number of digits before applying group separators */
    startFormattingFrom?: number;
} & KbqNumberFormatOptions;
type KbqPopUpPlacementValues = KbqEnumValues<PopUpPlacements>;
type KbqStickToWindowPlacementValues = KbqEnumValues<
    PopUpPlacements.Top | PopUpPlacements.Right | PopUpPlacements.Bottom | PopUpPlacements.Left
>;

Locale configuration for `KbqClampedText`

type KbqClampedTextLocaleConfig = {
    openText: string;
    closeText: string;
    showMoreText: string;
    moreText: string;
};

Converts an enumeration (enum) type into a string literal type containing all possible string representations of the values.

type KbqEnumValues = `${T}`;

Locale configuration for `KbqTimeRange`

type KbqTimeRangeLocaleConfig = {
    title: {
        for: string;
        placeholder: string;
    };
    editor: {
        from: string;
        to: string;
        apply: string;
        cancel: string;
        rangeLabel: string;
        allTime: string;
        currentQuarter: string;
        currentYear: string;
        /** Label for the `allTime` option in the presets list, as opposed to the trigger label in `allTime` */
        allTimeOption?: string;
        /** Label for the `currentQuarter` option in the presets list, as opposed to the trigger label in `currentQuarter` */
        currentQuarterOption?: string;
        /** Label for the `currentYear` option in the presets list, as opposed to the trigger label in `currentYear` */
        currentYearOption?: string;
    };
    durationTemplate: {
        title: FormatterDurationTemplate;
        option: FormatterDurationTemplate;
    };
};
type KbqPopUpSizeValues = KbqEnumValues<PopUpSizes>;
type KbqFileUploadLocaleConfig = {
    single: KbqBaseFileUploadLocaleConfig;
    multiple: KbqMultipleFileUploadLocaleConfig;
};

Type helper describing accepted file types, referring to:

type KbqFileTypeSpecifier = Parameters<typeof FileValidators.isCorrectExtension>[0];
const selectEvents: string;
const VERSION: Version;
const KBQ_INVALID_VALUE_ERROR: string;
const applyPopupMargins: (renderer: Renderer2, element: HTMLElement, name: string, value: string) => void;
const MAC_ENTER: number;
const BACKSPACE: number;
const KBQ_DATE_FORMATS: InjectionToken<DateFormats>;
const fadeAnimation: AnimationTriggerMetadata;
const TAB: number;

Injects the native element for the current component.

const kbqInjectNativeElement: <T extends Element = HTMLElement>() => T;
const enUSFormattersData: { formatters: { number: { rounding: { separator: string; groupSeparator: string; thousand: string; million: string; billion: string; trillion: string; }; }; }; input: { number: { groupSeparator: string[]; fractionSeparator: string; }; }; sizeUnits: { ...; }; };
const NUM_CENTER: number;
const POSITION_MAP: { [key: string]: ConnectionPositionPair; };

Whether the value is undefined.

const isUndefined: (value: unknown) => value is undefined;

An abstraction over the global `window` object.

const KBQ_WINDOW: InjectionToken<Window>;
const KBQ_TITLE_TEXT_REF: InjectionToken<KbqTitleTextRef>;
const ENTER: number;

Utility provider for `ErrorStateMatcher`.

const kbqErrorStateMatcherProvider: (errorStateMatcher: ErrorStateMatcher | Type<ErrorStateMatcher>) => Provider;
const SHIFT: number;
const enUSLocaleData: { select: { hiddenItemsText: string; }; datepicker: { placeholder: string; dateInput: string; }; timepicker: { placeholder: { full: string; short: string; }; }; fileUpload: { single: { captionText: string; ... 4 more ...; browseLinkFolderMixed: string; }; multiple: { ...; }; }; ... 10 more ...; notificationCenter: {...;
const esLALocaleData: { select: { hiddenItemsText: string; }; datepicker: { placeholder: string; }; timepicker: { placeholder: { full: string; short: string; }; }; fileUpload: { single: { captionText: string; captionTextOnlyFolder: string; captionTextWithFolder: string; browseLink: string; browseLinkFolder: string; browseLinkFolderMixed:...;
const ptBRLocaleData: { select: { hiddenItemsText: string; }; datepicker: { placeholder: string; }; timepicker: { placeholder: { full: string; short: string; }; }; fileUpload: { single: { captionText: string; captionTextOnlyFolder: string; captionTextWithFolder: string; browseLink: string; browseLinkFolder: string; browseLinkFolderMixed:...;
const ruRULocaleData: { select: { hiddenItemsText: string; }; datepicker: { placeholder: string; dateInput: string; }; timepicker: { placeholder: { full: string; short: string; }; }; fileUpload: { single: { captionText: string; ... 4 more ...; browseLinkFolderMixed: string; }; multiple: { ...; }; }; ... 10 more ...; notificationCenter: {...;
const tkTMLocaleData: { select: { hiddenItemsText: string; }; datepicker: { placeholder: string; dateInput: string; }; timepicker: { placeholder: { full: string; short: string; }; }; fileUpload: { single: { captionText: string; ... 4 more ...; browseLinkFolderMixed: string; }; multiple: { ...; }; }; ... 10 more ...; notificationCenter: {...;
const CONTROL: number;
const ALT: number;

The following are all the animations for the kbq-select component, with each const containing the metadata for one animation.

const kbqSelectAnimations: { readonly transformPanel: AnimationTriggerMetadata; readonly fadeInContent: AnimationTriggerMetadata; };

Minimum option count threshold for displaying select search. Search is hidden when fewer options are available.

const KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD: number;
const PAUSE: number;

InjectionToken for datepicker that can be used to override default locale code.

const KBQ_DATE_LOCALE: InjectionToken<string>;

Whether the value is null.

const isNull: (value: unknown) => value is null;
const CAPS_LOCK: number;
const KBQ_NUMBER_FORMATTER_OPTIONS: InjectionToken<ParsedDigitsInfo>;
const ESCAPE: number;
const SPACE: number;

InjectionToken for providing component with popup. Used in select and tree-select for tooltip.

const KBQ_PARENT_POPUP: InjectionToken<KbqParentPopup>;
const PAGE_UP: number;
const PAGE_DOWN: number;

Whether the value is HTMLElement.

const isHtmlElement: (value: unknown) => value is HTMLElement;
const KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS: ParsedDigitsInfo;
const END: number;
const HOME: number;

The select panel will only "fit" inside the viewport if it is positioned at this value or more away from the viewport boundary.

const SELECT_PANEL_VIEWPORT_PADDING: number;
const LEFT_ARROW: number;
const UP_ARROW: number;
const RIGHT_ARROW: number;
const DOWN_ARROW: number;

Whether the value is Element.

const isElement: (value: unknown) => value is Element;
const KBQ_LOCALE_ID: InjectionToken<string>;
const PLUS_SIGN: number;

Injection token that determines the scroll handling while a select is open.

const KBQ_SELECT_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;
const PRINT_SCREEN: number;
const KBQ_PARENT_ANIMATION_COMPONENT: InjectionToken<any>;
const KBQ_DEFAULT_LOCALE_ID: string;
const INSERT: number;
const DELETE: number;
const ZERO: number;

Whether the value is HTMLElement or null.

const isHtmlElementOrNull: (value: unknown) => value is HTMLElement;
const ONE: number;
const TWO: number;
const THREE: number;
const FOUR: number;

Injection token that can be used to inject an instances of `KbqFormField`. It serves as alternative token to the actual `KbqFormField` class which would cause unnecessary retention of the `KbqFormField` class and its component metadata.

const KBQ_FORM_FIELD_REF: InjectionToken<KbqFormFieldRef>;
const FIVE: number;
const KbqDefaultThemes: KbqTheme[];
const getNodesWithoutComments: (nodes: NodeList) => Node[];
const SIX: number;
const KBQ_OPTION_ACTION_PARENT: InjectionToken<KbqOptionActionParent>;
const SEVEN: number;
const EIGHT: number;

Converts bytes to Kb, Mb, Gb

const getHumanizedBytes: (value: number, system: KbqUnitSystem, threshold?: number) => { result: number; unit: string; };

Element used by {@link KbqShadowDomOverlayContainer} to locate the shadow root that should host overlays. When not provided, the container falls back to the application root component element.

const KBQ_SHADOW_DOM_OVERLAY_HOST: InjectionToken<KbqShadowDomOverlayHost>;
const NINE: number;
const FF_SEMICOLON: number;
const FF_EQUALS: number;
const esLAFormattersData: { formatters: { number: { rounding: { separator: string; groupSeparator: string; thousand: string; million: string; billion: string; trillion: string; }; decimal: { viewGroupSeparator: string; }; }; }; input: { ...; }; sizeUnits: { ...; }; };
const QUESTION_MARK: number;
const AT_SIGN: number;
const KBQ_SIZE_UNITS_DEFAULT_CONFIG: KbqSizeUnitsConfig;
const A: number;
const B: number;
const C: number;
const D: number;
const E: number;
const F: number;
const G: number;
const H: number;

Configuration for converting sizes in different unit systems.

const KBQ_SIZE_UNITS_CONFIG: InjectionToken<KbqSizeUnitsConfig>;
const KBQ_LOCALE_DATA: InjectionToken<any>;
const I: number;
const J: number;
const K: number;
const L: number;
const M: number;
const N: number;
const O: number;
const KBQ_LOCALE_SERVICE: InjectionToken<KbqLocaleService>;
const P: number;

Utility provider for `KBQ_SIZE_UNITS_CONFIG`.

const kbqFilesizeFormatterConfigurationProvider: (configuration: Partial<KbqSizeUnitsConfig>) => Provider;
const Q: number;
const R: number;

DI token a scrollable wrapper component can provide to expose itself as the scroll source for a co-located `KbqOverflowShadowContainer` (see `KbqScrollbar`).

const KBQ_OVERFLOW_SHADOW_SOURCE: InjectionToken<KbqOverflowShadowSource>;
const S: number;
const T: number;
const U: number;

Default value when configuring overlay in popups (Autocomplete, Datepicker, Dropdown, Select, Tags Autocomplete, Tags Input, Timezone, TreeSelect).

const defaultOffsetY: number;
const V: number;
const W: number;
const X: number;
const Y: number;
const Z: number;
const META: number;

Injection token used to provide the parent component to options.

const KBQ_OPTION_PARENT_COMPONENT: InjectionToken<KbqOptionParentComponent>;
const MAC_WK_CMD_LEFT: number;
const MAC_WK_CMD_RIGHT: number;
const NUMBER_FORMAT_REGEXP: RegExp;
const CONTEXT_MENU: number;
const NUMPAD_ZERO: number;
const NUMPAD_ONE: number;
const NUMPAD_TWO: number;
const NUMPAD_THREE: number;
const EXTENDED_OVERLAY_POSITIONS: ConnectionPositionPair[];
const NUMPAD_FOUR: number;
const NUMPAD_FIVE: number;
const NUMPAD_SIX: number;
const NUMPAD_SEVEN: number;
const NUMPAD_EIGHT: number;
const NUMPAD_NINE: number;
const NUMPAD_MULTIPLY: number;
const ptBRFormattersData: { formatters: { number: { rounding: { separator: string; groupSeparator: string; thousand: string; million: string; billion: string; trillion: string; }; }; }; input: { number: { groupSeparator: string[]; fractionSeparator: string; }; }; sizeUnits: { ...; }; };
const NUMPAD_PLUS: number;
const NUMPAD_MINUS: number;
const NUMPAD_PERIOD: number;
const NUMPAD_DIVIDE: number;
const F1: number;
const TOP_POSITION_PRIORITY: ConnectionPositionPair[];
const F2: number;
const F3: number;
const F4: number;
const F5: number;
const F6: number;
const F7: number;
const F8: number;
const F9: number;
const F10: number;
const F11: number;
const BOTTOM_POSITION_PRIORITY: ConnectionPositionPair[];
const F12: number;
const NUM_LOCK: number;
const SCROLL_LOCK: number;
const FIRST_MEDIA: number;
const FF_MINUS: number;
const MUTE: number;
const VOLUME_DOWN: number;
const RIGHT_POSITION_PRIORITY: ConnectionPositionPair[];
const VOLUME_UP: number;
const FF_MUTE: number;
const FF_VOLUME_DOWN: number;
const LAST_MEDIA: number;
const LEFT_POSITION_PRIORITY: ConnectionPositionPair[];
const FF_VOLUME_UP: number;
const ruRUFormattersData: { formatters: { number: { rounding: { separator: string; groupSeparator: string; thousand: string; million: string; billion: string; trillion: string; }; decimal: { viewGroupSeparator: string; }; }; }; input: { ...; }; sizeUnits: { ...; }; };
const SEMICOLON: number;
const EQUALS: number;
const COMMA: number;
const RIGHT_TOP_POSITION_PRIORITY: ConnectionPositionPair[];
const DASH: number;
const PERIOD: number;
const SLASH: number;
const APOSTROPHE: number;
const TILDE: number;
const OPEN_SQUARE_BRACKET: number;
const RIGHT_BOTTOM_POSITION_PRIORITY: ConnectionPositionPair[];
const BACKSLASH: number;
const CLOSE_SQUARE_BRACKET: number;
const SINGLE_QUOTE: number;
const MAC_META: number;
const LEFT_TOP_POSITION_PRIORITY: ConnectionPositionPair[];
const LEFT_BOTTOM_POSITION_PRIORITY: ConnectionPositionPair[];
const TOP_LEFT_POSITION_PRIORITY: ConnectionPositionPair[];
const tkTMFormattersData: { formatters: { number: { rounding: { separator: string; groupSeparator: string; thousand: string; million: string; billion: string; trillion: string; }; }; }; input: { number: { groupSeparator: string[]; fractionSeparator: string; viewGroupSeparator: string; }; }; sizeUnits: { ...; }; };
const TOP_RIGHT_POSITION_PRIORITY: ConnectionPositionPair[];
const BOTTOM_RIGHT_POSITION_PRIORITY: ConnectionPositionPair[];
const BOTTOM_LEFT_POSITION_PRIORITY: ConnectionPositionPair[];
const POSITION_PRIORITY_STRATEGY: { top: ConnectionPositionPair[]; topLeft: ConnectionPositionPair[]; topRight: ConnectionPositionPair[]; bottom: ConnectionPositionPair[]; ... 7 more ...; rightBottom: ConnectionPositionPair[]; };
const POSITION_TO_CSS_MAP: { [key: string]: string; };
const KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER: <T>(token: InjectionToken<T>, factory: (overlay: Overlay) => () => ScrollStrategy) => { provide: InjectionToken<T>; deps: (typeof Overlay)[]; useFactory: (overlay: Overlay) => () => ScrollStrategy; };

Providers that route all CDK overlays into a shadow root via {@link KbqShadowDomOverlayContainer}. Add it to the bootstrap providers of an application rendered inside a shadow root: ```ts bootstrapApplication(AppComponent, { providers: kbqShadowDomOverlayProvider(() => document.querySelector('my-mfe-root')!) }); ``` The provider replaces the global `OverlayContainer` token, so it cannot be combined with another custom `OverlayContainer` (e.g. CDK's `FullscreenOverlayContainer`) — the last provider wins. Apps that need both must subclass `KbqShadowDomOverlayContainer`.

const kbqShadowDomOverlayProvider: (host?: KbqShadowDomOverlayHost) => Provider[];
Suggestions for improvement
If you found a mistake or want to improve the article, create an issue on GitHub.