@koobiq/components 19.5.0 → 19.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-content.directive.d.ts +4 -0
- package/accordion/accordion-trigger.directive.d.ts +4 -0
- package/actions-panel/actions-panel-container.scss +6 -0
- package/actions-panel/actions-panel-tokens.scss +4 -1
- package/autocomplete/autocomplete.component.d.ts +6 -1
- package/autocomplete/autocomplete.module.d.ts +1 -1
- package/autocomplete/autocomplete.scss +14 -3
- package/badge/badge-tokens.scss +3 -3
- package/breadcrumbs/breadcrumbs.scss +0 -4
- package/button/button-group.d.ts +45 -0
- package/button/button-group.scss +17 -0
- package/button/button.component.d.ts +3 -0
- package/button/button.module.d.ts +2 -1
- package/button/public-api.d.ts +1 -0
- package/button-toggle/button-toggle-tokens.scss +1 -1
- package/checkbox/checkbox.d.ts +5 -4
- package/code-block/code-block-highlight.d.ts +1 -0
- package/code-block/code-block-tokens.scss +35 -16
- package/code-block/code-block.d.ts +8 -3
- package/core/error/error-state-matcher.d.ts +10 -0
- package/core/forms/_forms.scss +10 -3
- package/core/option/_option-action-theme.scss +1 -0
- package/core/option/action-container.scss +4 -6
- package/core/option/option.d.ts +8 -0
- package/core/option/option.scss +5 -0
- package/core/pop-up/pop-up-trigger.d.ts +1 -1
- package/core/select/common.d.ts +4 -4
- package/core/styles/common/_groups-mixins.scss +79 -0
- package/core/styles/common/_groups.scss +4 -34
- package/core/styles/common/_overlay.scss +4 -0
- package/core/styles/common/_select.scss +4 -0
- package/core/styles/theming/scrollbar-tokens.scss +6 -6
- package/core/styles/visual/_layout.scss +0 -2
- package/core/utils/utils.d.ts +2 -0
- package/core/validation/validation.d.ts +1 -1
- package/datepicker/datepicker-input.directive.d.ts +1 -0
- package/dropdown/dropdown-trigger.directive.d.ts +5 -0
- package/ellipsis-center/ellipsis-center.directive.d.ts +0 -1
- package/fesm2022/koobiq-components-accordion.mjs +52 -30
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +12 -12
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +16 -16
- package/fesm2022/koobiq-components-app-switcher.mjs +25 -25
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +39 -23
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +14 -14
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +26 -26
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +12 -12
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +146 -24
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +17 -19
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +13 -13
- package/fesm2022/koobiq-components-code-block.mjs +43 -27
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +28 -28
- package/fesm2022/koobiq-components-core.mjs +290 -250
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +40 -64
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +7 -7
- package/fesm2022/koobiq-components-dl.mjs +13 -13
- package/fesm2022/koobiq-components-dropdown.mjs +38 -21
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
- package/fesm2022/koobiq-components-ellipsis-center.mjs +8 -9
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-empty-state.mjs +19 -19
- package/fesm2022/koobiq-components-file-upload.mjs +39 -39
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +109 -97
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +67 -60
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +31 -27
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +108 -68
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +22 -22
- package/fesm2022/koobiq-components-link.mjs +17 -17
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +19 -19
- package/fesm2022/koobiq-components-loader-overlay.mjs +28 -19
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +54 -22
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +40 -32
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar-ic.mjs +34 -34
- package/fesm2022/koobiq-components-navbar.mjs +45 -45
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +16 -16
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +16 -16
- package/fesm2022/koobiq-components-popover.mjs +52 -23
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
- package/fesm2022/koobiq-components-progress-spinner.mjs +14 -14
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +10 -10
- package/fesm2022/koobiq-components-resizer.mjs +10 -10
- package/fesm2022/koobiq-components-risk-level.mjs +7 -7
- package/fesm2022/koobiq-components-scrollbar.mjs +12 -12
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +17 -8
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +368 -63
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +13 -13
- package/fesm2022/koobiq-components-sidepanel.mjs +27 -27
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +51 -18
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +9 -9
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +16 -16
- package/fesm2022/koobiq-components-table.mjs +10 -10
- package/fesm2022/koobiq-components-tabs.mjs +52 -52
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +79 -64
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +7 -7
- package/fesm2022/koobiq-components-time-range.mjs +24 -24
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +10 -10
- package/fesm2022/koobiq-components-timezone.mjs +26 -26
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +8 -9
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +16 -16
- package/fesm2022/koobiq-components-toggle.mjs +12 -9
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +84 -51
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +15 -15
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +12 -10
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +41 -42
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +28 -28
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/filter-bar/filter-search.d.ts +10 -1
- package/filter-bar/pipes/pipe-date.scss +2 -1
- package/form-field/_form-field-theme.scss +10 -2
- package/form-field/form-field-tokens.scss +1 -0
- package/form-field/form-field.d.ts +19 -1
- package/form-field/form-field.scss +41 -2
- package/icon/icon-button.component.d.ts +3 -0
- package/inline-edit/inline-edit-tokens.scss +3 -3
- package/inline-edit/inline-edit.d.ts +30 -11
- package/inline-edit/inline-edit.scss +28 -30
- package/link/_link-theme.scss +3 -1
- package/link/link-tokens.scss +7 -6
- package/link/link.component.d.ts +5 -4
- package/loader-overlay/_loader-overlay-theme.scss +12 -0
- package/loader-overlay/loader-overlay-tokens.scss +1 -0
- package/loader-overlay/loader-overlay.component.d.ts +7 -1
- package/markdown/_markdown-theme.scss +3 -31
- package/markdown/markdown-tokens.scss +0 -11
- package/markdown/markdown.component.d.ts +11 -6
- package/markdown/markdown.scss +0 -11
- package/navbar/navbar.scss +3 -0
- package/package.json +4 -5
- package/popover/popover.component.d.ts +15 -2
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/progress-spinner/progress-spinner.scss +1 -0
- package/schematics/ng-add/index.js +4 -5
- package/scrollbar/scrollbar-tokens.scss +7 -7
- package/search-expandable/search-expandable.d.ts +6 -2
- package/select/public-api.d.ts +1 -0
- package/select/select-common.d.ts +30 -0
- package/select/select-tokens.scss +2 -2
- package/select/select.component.d.ts +201 -29
- package/select/select.module.d.ts +3 -2
- package/sidepanel/sidepanel-config.d.ts +6 -1
- package/skeleton/skeleton.d.ts +8 -4
- package/skeleton/skeleton.scss +19 -5
- package/split-button/_split-button-theme.scss +2 -1
- package/tags/tag-list.component.d.ts +15 -11
- package/tags/tag-tokens.scss +4 -4
- package/tags/tag.component.d.ts +5 -2
- package/timezone/timezone-option-tokens.scss +0 -10
- package/title/title.directive.d.ts +0 -1
- package/toggle/toggle.component.d.ts +4 -3
- package/tooltip/_tooltip-theme.scss +5 -1
- package/tooltip/tooltip-tokens.scss +4 -4
- package/tooltip/tooltip.component.d.ts +20 -2
- package/top-bar/top-bar.scss +3 -0
- package/tree/tree-option.scss +7 -0
|
@@ -39,9 +39,13 @@ export declare class KbqSearchExpandable implements ControlValueAccessor, AfterV
|
|
|
39
39
|
isEmitValueByEnterEnabled: boolean;
|
|
40
40
|
/** Timeout in milliseconds for emit event. The default value is taken from defaultEmitValueTimeout */
|
|
41
41
|
emitValueTimeout: number;
|
|
42
|
+
/** Tooltip text for the search button. When set, overrides localeData.tooltip */
|
|
43
|
+
get tooltipText(): string;
|
|
44
|
+
set tooltipText(value: string | null);
|
|
45
|
+
private _tooltipText;
|
|
42
46
|
/** Placeholder for input when expanded */
|
|
43
47
|
get placeholder(): string;
|
|
44
|
-
set placeholder(value: string);
|
|
48
|
+
set placeholder(value: string | null);
|
|
45
49
|
private _placeholder;
|
|
46
50
|
get disabled(): boolean;
|
|
47
51
|
set disabled(value: boolean);
|
|
@@ -77,7 +81,7 @@ export declare class KbqSearchExpandable implements ControlValueAccessor, AfterV
|
|
|
77
81
|
private runFocusMonitor;
|
|
78
82
|
private stopFocusMonitor;
|
|
79
83
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqSearchExpandable, never>;
|
|
80
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KbqSearchExpandable, "kbq-search-expandable", never, { "isOpened": { "alias": "isOpened"; "required": false; }; "isEmitValueByEnterEnabled": { "alias": "isEmitValueByEnterEnabled"; "required": false; }; "emitValueTimeout": { "alias": "emitValueTimeout"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "isOpenedChange": "isOpenedChange"; }, never, never, true, never>;
|
|
84
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqSearchExpandable, "kbq-search-expandable", never, { "isOpened": { "alias": "isOpened"; "required": false; }; "isEmitValueByEnterEnabled": { "alias": "isEmitValueByEnterEnabled"; "required": false; }; "emitValueTimeout": { "alias": "emitValueTimeout"; "required": false; }; "tooltipText": { "alias": "tooltipText"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "isOpenedChange": "isOpenedChange"; }, never, never, true, never>;
|
|
81
85
|
static ngAcceptInputType_isOpened: unknown;
|
|
82
86
|
static ngAcceptInputType_emitValueTimeout: unknown;
|
|
83
87
|
static ngAcceptInputType_disabled: unknown;
|
package/select/public-api.d.ts
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class KbqSelectLoading {
|
|
3
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectLoading, never>;
|
|
4
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelectLoading, "kbq-select-loading, [kbq-select-loading]", ["kbqSelectLoading"], {}, {}, never, ["kbq-progress-spinner"], true, never>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* This component renders the error for a Select component.
|
|
8
|
+
* The error message can be displayed in two visual variants: a default centered layout (when [paging] is falsy)
|
|
9
|
+
* or a variant with left‑aligned text suitable for pagination controls (when [paging] is truthy).
|
|
10
|
+
*/
|
|
11
|
+
export declare class KbqSelectError {
|
|
12
|
+
/** Indicates whether styles for pagination controls should be used. */
|
|
13
|
+
paging: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectError, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelectError, "kbq-select-error, [kbq-select-error]", ["kbqSelectError"], { "paging": { "alias": "paging"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Marks an element as the error text container for a *KbqSelect* component.
|
|
19
|
+
*/
|
|
20
|
+
export declare class KbqSelectErrorText {
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectErrorText, never>;
|
|
22
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSelectErrorText, "[kbq-select-error-text]", ["kbqSelectErrorText"], {}, {}, never, never, true, never>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Component that represents the empty state of a select dropdown.
|
|
26
|
+
*/
|
|
27
|
+
export declare class KbqSelectNoOptions {
|
|
28
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectNoOptions, never>;
|
|
29
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelectNoOptions, "kbq-select-no-options, [kbq-select-no-options]", ["kbqSelectNoOptions"], {}, {}, never, ["*"], true, never>;
|
|
30
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
.kbq-select,
|
|
2
2
|
.kbq-tree-select,
|
|
3
3
|
.kbq-select__panel {
|
|
4
|
-
--kbq-select-size-single-padding-left:
|
|
5
|
-
--kbq-select-size-single-padding-right:
|
|
4
|
+
--kbq-select-size-single-padding-left: 0;
|
|
5
|
+
--kbq-select-size-single-padding-right: 0;
|
|
6
6
|
--kbq-select-size-single-padding-vertical: var(--kbq-size-xs);
|
|
7
7
|
--kbq-select-size-single-content-gap: var(--kbq-size-xxs);
|
|
8
8
|
--kbq-select-size-multiple-padding-left: 0;
|
|
@@ -5,7 +5,7 @@ import { CdkVirtualForOf } from '@angular/cdk/scrolling';
|
|
|
5
5
|
import { AfterContentInit, ChangeDetectorRef, DestroyRef, DoCheck, ElementRef, EventEmitter, InjectionToken, NgZone, OnDestroy, OnInit, Provider, QueryList, Renderer2, TemplateRef } from '@angular/core';
|
|
6
6
|
import { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';
|
|
7
7
|
import { ActiveDescendantKeyManager } from '@koobiq/cdk/a11y';
|
|
8
|
-
import { CanUpdateErrorState, ErrorStateMatcher, KbqAbstractSelect, KbqComponentColors, KbqLocaleService, KbqOptgroup, KbqOption, KbqOptionBase, KbqOptionSelectionChange, KbqSelectMatcher, KbqSelectSearch, KbqSelectTrigger } from '@koobiq/components/core';
|
|
8
|
+
import { CanUpdateErrorState, ErrorStateMatcher, KbqAbstractSelect, KbqComponentColors, KbqLocaleService, KbqOptgroup, KbqOption, KbqOptionBase, KbqOptionSelectionChange, KbqSelectMatcher, KbqSelectSearch, KbqSelectSearchEmptyResult, KbqSelectTrigger } from '@koobiq/components/core';
|
|
9
9
|
import { KbqCleaner, KbqFormField, KbqFormFieldControl } from '@koobiq/components/form-field';
|
|
10
10
|
import { KbqTag } from '@koobiq/components/tags';
|
|
11
11
|
import { Observable, Subject } from 'rxjs';
|
|
@@ -60,6 +60,10 @@ export declare const KBQ_SELECT_OPTIONS: InjectionToken<Partial<{
|
|
|
60
60
|
}>>;
|
|
61
61
|
/** Utility provider for `KBQ_SELECT_OPTIONS`. */
|
|
62
62
|
export declare const kbqSelectOptionsProvider: (options: KbqSelectOptions) => Provider;
|
|
63
|
+
/** Delay in milliseconds before displaying a result when there are no options. */
|
|
64
|
+
export declare const delayBeforeDisplayingResultWithoutOptions = 101;
|
|
65
|
+
/** Minimum time in milliseconds to display the loading state. */
|
|
66
|
+
export declare const minimumTimeToDisplayLoading = 300;
|
|
63
67
|
export declare class KbqSelect extends KbqAbstractSelect implements AfterContentInit, OnDestroy, OnInit, DoCheck, ControlValueAccessor, KbqFormFieldControl<any>, CanUpdateErrorState {
|
|
64
68
|
private readonly _changeDetectorRef;
|
|
65
69
|
private readonly _ngZone;
|
|
@@ -111,14 +115,15 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
|
|
|
111
115
|
hiddenItems: number;
|
|
112
116
|
/** The last measured value for the trigger's client bounding rect. */
|
|
113
117
|
triggerRect: DOMRect;
|
|
114
|
-
/** The cached font-size of the trigger element. */
|
|
118
|
+
/** The cached font-size of the trigger element in pixels. */
|
|
115
119
|
triggerFontSize: number;
|
|
116
|
-
/** Deals with the selection logic. */
|
|
120
|
+
/** Deals with the selection logic. Manages selected options and their states. */
|
|
117
121
|
selectionModel: SelectionModel<KbqOptionBase>;
|
|
122
|
+
/** Previously selected options before the current selection was made. */
|
|
118
123
|
previousSelectionModelSelected: KbqOptionBase[];
|
|
119
124
|
/** Manages keyboard events for options in the panel. */
|
|
120
125
|
keyManager: ActiveDescendantKeyManager<KbqOption>;
|
|
121
|
-
/** The value of the select panel's transform-origin property. */
|
|
126
|
+
/** The value of the select panel's transform-origin property for animations. */
|
|
122
127
|
transformOrigin: string;
|
|
123
128
|
/** Emits when the panel element is finished transforming in. */
|
|
124
129
|
panelDoneAnimatingStream: Subject<string>;
|
|
@@ -126,7 +131,7 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
|
|
|
126
131
|
scrollStrategy: any;
|
|
127
132
|
/**
|
|
128
133
|
* The y-offset of the overlay panel in relation to the trigger's top start corner.
|
|
129
|
-
* This must be adjusted to align the selected option text over the trigger text
|
|
134
|
+
* This must be adjusted to align the selected option text over the trigger text
|
|
130
135
|
* when the panel opens. Will change based on the y-position of the selected option.
|
|
131
136
|
*/
|
|
132
137
|
offsetY: number;
|
|
@@ -141,27 +146,50 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
|
|
|
141
146
|
* Trigger - is a clickable field to open select dropdown panel
|
|
142
147
|
*/
|
|
143
148
|
trigger: ElementRef;
|
|
149
|
+
/** Reference to the overlay panel element. */
|
|
144
150
|
panel: ElementRef;
|
|
151
|
+
/** Reference to the container element that holds the options. */
|
|
145
152
|
optionsContainer: ElementRef;
|
|
153
|
+
/** Reference to the CDK connected overlay directive. */
|
|
146
154
|
overlayDir: CdkConnectedOverlay;
|
|
155
|
+
/** Reference to the optional footer element in the panel. */
|
|
147
156
|
footer?: ElementRef;
|
|
157
|
+
/** Reference to the CDK virtual scroll directive for virtual scrolling support. */
|
|
148
158
|
cdkVirtualForOf?: CdkVirtualForOf<any>;
|
|
159
|
+
/** Query list of tags displayed in multiple selection mode. */
|
|
149
160
|
tags: QueryList<KbqTag>;
|
|
150
|
-
/** User-supplied override of the trigger element. */
|
|
161
|
+
/** User-supplied override of the trigger element for custom rendering. */
|
|
151
162
|
customTrigger: KbqSelectTrigger;
|
|
163
|
+
/** User-supplied matcher component for custom value matching logic. */
|
|
152
164
|
customMatcher: KbqSelectMatcher;
|
|
165
|
+
/** Custom template reference for rendering tag content. */
|
|
153
166
|
customTagTemplateRef: TemplateRef<any>;
|
|
167
|
+
/** Reference to the optional cleaner element for clearing selection. */
|
|
154
168
|
cleaner: KbqCleaner;
|
|
155
169
|
/** All of the defined select options. */
|
|
156
170
|
options: QueryList<KbqOption>;
|
|
157
171
|
/** All of the defined groups of options. */
|
|
158
172
|
optionGroups: QueryList<KbqOptgroup>;
|
|
173
|
+
/** Reference to the optional search component. */
|
|
159
174
|
search: KbqSelectSearch;
|
|
175
|
+
/** Reference to the optional empty search result component. */
|
|
176
|
+
searchEmpty: KbqSelectSearchEmptyResult;
|
|
177
|
+
/** Template string for hidden items text. Supports {{ number }} placeholder. */
|
|
160
178
|
hiddenItemsText: string;
|
|
179
|
+
/** Determines whether preselected values are displayed. */
|
|
180
|
+
showPreselectedValues: boolean;
|
|
181
|
+
/**
|
|
182
|
+
* Specifies the maximum number of trigger values allowed.
|
|
183
|
+
* This constant limits the size of the trigger values array to ensure performance
|
|
184
|
+
* and prevent excessive memory usage.
|
|
185
|
+
* A value of `0` indicates that there is no limit.
|
|
186
|
+
*/
|
|
187
|
+
triggerValuesLimit: number;
|
|
161
188
|
/** Classes to be passed to the select panel. Supports the same syntax as `ngClass`. */
|
|
162
189
|
panelClass: string | string[] | Set<string> | {
|
|
163
190
|
[key: string]: any;
|
|
164
191
|
};
|
|
192
|
+
/** Classes to be passed to the overlay backdrop. */
|
|
165
193
|
backdropClass: string;
|
|
166
194
|
/** Object used to control when error messages are shown. */
|
|
167
195
|
errorStateMatcher: ErrorStateMatcher;
|
|
@@ -171,13 +199,14 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
|
|
|
171
199
|
*/
|
|
172
200
|
sortComparator: (a: KbqOptionBase, b: KbqOptionBase, options: KbqOptionBase[]) => number;
|
|
173
201
|
/**
|
|
174
|
-
* Whether to use a multiline matcher or not. Default is false
|
|
202
|
+
* Whether to use a multiline matcher or not. Default is false.
|
|
203
|
+
* When true, allows multiple lines of text in the selected value display.
|
|
175
204
|
*/
|
|
176
205
|
multiline: boolean;
|
|
177
206
|
/**
|
|
178
207
|
* Controls when the search functionality is displayed based on the number of available options.
|
|
179
208
|
*
|
|
180
|
-
* Automatically enables search hiding if value provided, even if `defaultOptions.
|
|
209
|
+
* Automatically enables search hiding if value provided, even if `defaultOptions.searchMinOptionsThreshold` is provided.
|
|
181
210
|
* @default undefined
|
|
182
211
|
*/
|
|
183
212
|
set searchMinOptionsThreshold(value: 'auto' | number | undefined);
|
|
@@ -185,8 +214,10 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
|
|
|
185
214
|
private _searchMinOptionsThreshold;
|
|
186
215
|
/** Combined stream of all of the child options' change events. */
|
|
187
216
|
readonly optionSelectionChanges: Observable<KbqOptionSelectionChange>;
|
|
188
|
-
/** Event emitted when the select panel has been toggled. */
|
|
217
|
+
/** Event emitted when the select panel has been toggled. Emits true when opened, false when closed. */
|
|
189
218
|
readonly openedChange: EventEmitter<boolean>;
|
|
219
|
+
/** Event emitted before the select panel starts opening. */
|
|
220
|
+
readonly beforeOpened: import("@angular/core").OutputEmitterRef<void>;
|
|
190
221
|
/** Event emitted when the select has been opened. */
|
|
191
222
|
readonly openedStream: Observable<void>;
|
|
192
223
|
/** Event emitted when the select has been closed. */
|
|
@@ -199,27 +230,47 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
|
|
|
199
230
|
* @docs-private
|
|
200
231
|
*/
|
|
201
232
|
readonly valueChange: EventEmitter<any>;
|
|
233
|
+
/**
|
|
234
|
+
* Whether the overlay should have a backdrop.
|
|
235
|
+
* When true, clicking the backdrop will close the select.
|
|
236
|
+
*/
|
|
202
237
|
get hasBackdrop(): boolean;
|
|
203
238
|
set hasBackdrop(value: boolean);
|
|
204
239
|
private _hasBackdrop;
|
|
240
|
+
/**
|
|
241
|
+
* Placeholder text to be shown when no value is selected.
|
|
242
|
+
* Displayed in the trigger when the select is closed and no value is selected.
|
|
243
|
+
*/
|
|
205
244
|
get placeholder(): string;
|
|
206
245
|
set placeholder(value: string);
|
|
207
246
|
private _placeholder;
|
|
247
|
+
/**
|
|
248
|
+
* Whether the select is required. Affects validation and display of placeholder.
|
|
249
|
+
*/
|
|
208
250
|
get required(): boolean;
|
|
209
251
|
set required(value: boolean);
|
|
210
252
|
private _required;
|
|
253
|
+
/**
|
|
254
|
+
* Whether multiple options can be selected.
|
|
255
|
+
* Note: This cannot be changed dynamically after initialization.
|
|
256
|
+
*/
|
|
211
257
|
get multiple(): boolean;
|
|
212
258
|
set multiple(value: boolean);
|
|
213
259
|
private _multiple;
|
|
214
260
|
/**
|
|
215
|
-
* Function to compare the option values with the selected values.
|
|
216
|
-
*
|
|
217
|
-
*
|
|
261
|
+
* Function to compare the option values with the selected values.
|
|
262
|
+
* The first argument is a value from an option.
|
|
263
|
+
* The second is a value from the selection.
|
|
264
|
+
* Should return true if the values match.
|
|
265
|
+
* Defaults to strict equality comparison.
|
|
218
266
|
*/
|
|
219
267
|
get compareWith(): (o1: any, o2: any) => boolean;
|
|
220
268
|
set compareWith(fn: (o1: any, o2: any) => boolean);
|
|
221
269
|
/**
|
|
222
|
-
* Function for handling the
|
|
270
|
+
* Function for handling the Ctrl + A (select all) keyboard combination.
|
|
271
|
+
* By default, the internal handler selects all options.
|
|
272
|
+
* @param event The keyboard event that triggered the handler.
|
|
273
|
+
* @param select Reference to this select component.
|
|
223
274
|
*/
|
|
224
275
|
get selectAllHandler(): (event: KeyboardEvent, select: KbqSelect) => void;
|
|
225
276
|
set selectAllHandler(fn: (event: KeyboardEvent, select: KbqSelect) => void);
|
|
@@ -229,71 +280,126 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
|
|
|
229
280
|
*/
|
|
230
281
|
panelWidth: KbqSelectPanelWidth;
|
|
231
282
|
/**
|
|
232
|
-
* Minimum width of the panel.
|
|
283
|
+
* Minimum width of the panel in pixels.
|
|
233
284
|
* If minWidth is larger than window width, it will be ignored.
|
|
234
285
|
*/
|
|
235
286
|
panelMinWidth: Exclude<KbqSelectPanelWidth, 'auto'>;
|
|
236
|
-
/** Value of the select control. */
|
|
287
|
+
/** Value of the select control. Can be a single value or array of values for multiple selection. */
|
|
237
288
|
get value(): any;
|
|
238
289
|
set value(newValue: any);
|
|
239
290
|
private _value;
|
|
291
|
+
/**
|
|
292
|
+
* Unique identifier for the select component.
|
|
293
|
+
* Auto-generates an ID if not provided.
|
|
294
|
+
*/
|
|
240
295
|
get id(): string;
|
|
241
296
|
set id(value: string);
|
|
242
297
|
private _id;
|
|
298
|
+
/**
|
|
299
|
+
* Sets the tabIndex of the select element.
|
|
300
|
+
* Automatically set to -1 when disabled.
|
|
301
|
+
*/
|
|
243
302
|
get tabIndex(): number;
|
|
244
303
|
set tabIndex(value: number);
|
|
245
304
|
private _tabIndex;
|
|
305
|
+
/**
|
|
306
|
+
* Whether the select is disabled.
|
|
307
|
+
* When disabled, the select cannot be opened and its value cannot be changed.
|
|
308
|
+
*/
|
|
246
309
|
get disabled(): boolean;
|
|
247
310
|
set disabled(value: boolean);
|
|
248
311
|
private _disabled;
|
|
249
312
|
/** Whether the select is focused. */
|
|
250
313
|
get focused(): boolean;
|
|
251
314
|
set focused(value: boolean);
|
|
315
|
+
/** Whether the select panel is currently open. */
|
|
252
316
|
panelOpen: boolean;
|
|
253
|
-
/**
|
|
317
|
+
/** Whether virtual scrolling is enabled for the options panel. */
|
|
254
318
|
withVirtualScroll: boolean;
|
|
255
319
|
private _focused;
|
|
320
|
+
/** Whether the search returned no results. */
|
|
256
321
|
get isEmptySearchResult(): boolean;
|
|
322
|
+
/** Whether the cleaner (clear button) should be shown. */
|
|
257
323
|
get canShowCleaner(): boolean;
|
|
324
|
+
/** Returns the currently selected option(s). Single value or array for multiple selection. */
|
|
258
325
|
get selected(): KbqOptionBase | KbqOptionBase[];
|
|
326
|
+
/** Returns the display value for the trigger element. */
|
|
259
327
|
get triggerValue(): string;
|
|
328
|
+
/** Returns all selected options in display order. */
|
|
260
329
|
get triggerValues(): KbqOptionBase[];
|
|
330
|
+
/** Whether no option is currently selected. */
|
|
261
331
|
get empty(): boolean;
|
|
332
|
+
/** Whether there are no options available. */
|
|
333
|
+
get noOptions(): boolean;
|
|
334
|
+
/** Returns the first selected option that is not disabled. */
|
|
262
335
|
get firstSelected(): KbqOptionBase | null;
|
|
336
|
+
/** Whether the first selected option is filtered (not visible in the list). */
|
|
263
337
|
get firstFiltered(): boolean;
|
|
264
338
|
/** @docs-private */
|
|
265
339
|
get colorForState(): KbqComponentColors;
|
|
266
|
-
/** Whether multiple choice is enabled
|
|
340
|
+
/** Whether multiple choice is enabled. True if multiple or multiline mode is active. */
|
|
267
341
|
get multiSelection(): boolean;
|
|
342
|
+
/** Subscription to the close event of the overlay. */
|
|
268
343
|
private closeSubscription;
|
|
269
344
|
/** The scroll position of the overlay panel, calculated to center the selected option. */
|
|
270
345
|
private scrollTop;
|
|
271
|
-
/** Unique id for this input. */
|
|
346
|
+
/** Unique id for this input. Auto-incremented for each instance. */
|
|
272
347
|
private readonly uid;
|
|
348
|
+
/** Subject that emits when the component visibility changes. */
|
|
273
349
|
private visibleChanges;
|
|
274
|
-
/** Width of the overlay panel. */
|
|
350
|
+
/** Width of the overlay panel in pixels or as a string. */
|
|
275
351
|
protected overlayWidth: string | number;
|
|
276
|
-
/**
|
|
352
|
+
/** Minimum width of the overlay panel in pixels. */
|
|
277
353
|
protected overlayMinWidth: string | number;
|
|
278
|
-
/** Origin for the overlay panel. */
|
|
354
|
+
/** Origin element for the overlay panel positioning. */
|
|
279
355
|
protected overlayOrigin?: CdkOverlayOrigin | ElementRef;
|
|
356
|
+
/** Flag indicating if the dropdown class has been added to the overlay container. */
|
|
357
|
+
private classAddedToOverlayContainer;
|
|
358
|
+
private openPanelTimeout;
|
|
280
359
|
constructor(_changeDetectorRef: ChangeDetectorRef, _ngZone: NgZone, _renderer: Renderer2, defaultErrorStateMatcher: ErrorStateMatcher, elementRef: ElementRef<HTMLElement>, overlayContainer: OverlayContainer, _dir: Directionality, parentForm: NgForm, parentFormGroup: FormGroupDirective, parentFormField: KbqFormField, ngControl: NgControl, scrollStrategyFactory: any, localeService?: KbqLocaleService | undefined);
|
|
360
|
+
/** Lifecycle hook called after component initialization. Initializes selection model and subscriptions. */
|
|
281
361
|
ngOnInit(): void;
|
|
362
|
+
/** Lifecycle hook for change detection. Updates visibility and error state. */
|
|
282
363
|
ngDoCheck(): void;
|
|
364
|
+
/** Lifecycle hook after content initialization. Sets up key manager and option subscriptions. */
|
|
283
365
|
ngAfterContentInit(): void;
|
|
366
|
+
/** Lifecycle hook when component is destroyed. Cleans up subscriptions. */
|
|
284
367
|
ngOnDestroy(): void;
|
|
368
|
+
/** Updates the error state based on the error state matcher. */
|
|
285
369
|
updateErrorState(): void;
|
|
370
|
+
/**
|
|
371
|
+
* Formats the hidden items text with the number of hidden items.
|
|
372
|
+
* @param hiddenItemsText Template string with {{ number }} placeholder.
|
|
373
|
+
* @param hiddenItems Number of hidden items to display.
|
|
374
|
+
* @returns Formatted string with the number of hidden items.
|
|
375
|
+
*/
|
|
286
376
|
hiddenItemsTextFormatter(hiddenItemsText: string, hiddenItems: number): string;
|
|
377
|
+
/**
|
|
378
|
+
* Clears the current selection.
|
|
379
|
+
* @param $event Mouse event to prevent default behavior.
|
|
380
|
+
*/
|
|
287
381
|
clearValue($event: any): void;
|
|
288
382
|
/** `View -> model callback called when value changes` */
|
|
289
383
|
onChange: (value: any) => void;
|
|
290
384
|
/** `View -> model callback called when select has been touched` */
|
|
291
385
|
onTouched: () => void;
|
|
386
|
+
/** Resets the search component if present. */
|
|
292
387
|
resetSearch(): void;
|
|
293
388
|
/** Toggles the overlay panel open or closed. */
|
|
294
389
|
toggle(): void;
|
|
295
|
-
/**
|
|
390
|
+
/**
|
|
391
|
+
* Triggers the opening of the panel component.
|
|
392
|
+
* If the component is disabled or the panel is already open, the call is ignored.
|
|
393
|
+
* Otherwise, the (beforeOpened) event is emitted.
|
|
394
|
+
* When no options are available, the panel is opened after a short delay;
|
|
395
|
+
* if options exist, it opens immediately.
|
|
396
|
+
*/
|
|
296
397
|
open(): void;
|
|
398
|
+
/**
|
|
399
|
+
* Internal method to open the panel. Handles overlay positioning and sizing.
|
|
400
|
+
* Sets up the overlay dimensions based on trigger size and configured options.
|
|
401
|
+
*/
|
|
402
|
+
openPanel(): void;
|
|
297
403
|
/** Closes the overlay panel and focuses the host element. */
|
|
298
404
|
close(): void;
|
|
299
405
|
/**
|
|
@@ -326,8 +432,18 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
|
|
|
326
432
|
* @param isDisabled Sets whether the component is disabled.
|
|
327
433
|
*/
|
|
328
434
|
setDisabledState(isDisabled: boolean): void;
|
|
435
|
+
/**
|
|
436
|
+
* Checks if the current direction is RTL (right-to-left).
|
|
437
|
+
* @returns True if RTL mode is active, false otherwise.
|
|
438
|
+
*/
|
|
329
439
|
isRtl(): boolean;
|
|
440
|
+
/**
|
|
441
|
+
* Handles all keyboard events for the select.
|
|
442
|
+
* Delegates to appropriate handler based on panel state.
|
|
443
|
+
* @param event The keyboard event to handle.
|
|
444
|
+
*/
|
|
330
445
|
handleKeydown(event: KeyboardEvent): void;
|
|
446
|
+
/** Handles focus event on the select element. */
|
|
331
447
|
onFocus(): void;
|
|
332
448
|
/**
|
|
333
449
|
* Calls the touched callback only if the panel is closed. Otherwise, the trigger will
|
|
@@ -336,9 +452,10 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
|
|
|
336
452
|
onBlur(): void;
|
|
337
453
|
/**
|
|
338
454
|
* Callback that is invoked when the overlay panel has been attached.
|
|
455
|
+
* Sets up position change subscription and closing actions.
|
|
339
456
|
*/
|
|
340
457
|
onAttached(): void;
|
|
341
|
-
/** Returns the theme to be used on the panel. */
|
|
458
|
+
/** Returns the theme to be used on the panel based on parent form field color. */
|
|
342
459
|
getPanelTheme(): string;
|
|
343
460
|
/** Focuses the select element. */
|
|
344
461
|
focus(): void;
|
|
@@ -347,34 +464,77 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
|
|
|
347
464
|
* @docs-private
|
|
348
465
|
*/
|
|
349
466
|
onContainerClick(): void;
|
|
350
|
-
/**
|
|
467
|
+
/**
|
|
468
|
+
* Handles removal of a matched item in the trigger.
|
|
469
|
+
* @param option The option to remove from selection.
|
|
470
|
+
* @param $event The mouse event that triggered the removal.
|
|
471
|
+
*/
|
|
351
472
|
onRemoveMatcherItem(option: KbqOptionBase, $event: any): void;
|
|
473
|
+
/**
|
|
474
|
+
* Calculates the number of hidden items in multiple selection mode.
|
|
475
|
+
* Updates the hiddenItems property and triggers change detection.
|
|
476
|
+
*/
|
|
352
477
|
calculateHiddenItems: () => void;
|
|
478
|
+
/**
|
|
479
|
+
* Gets the height of a single option item.
|
|
480
|
+
* @returns The height in pixels of the first option, or 0 if no options exist.
|
|
481
|
+
*/
|
|
353
482
|
getItemHeight(): number;
|
|
483
|
+
/**
|
|
484
|
+
* Handles click events on the select.
|
|
485
|
+
* Closes the panel if click is inside the footer.
|
|
486
|
+
* @param $event The mouse event to handle.
|
|
487
|
+
*/
|
|
354
488
|
handleClick($event: MouseEvent): void;
|
|
355
489
|
/** @docs-private */
|
|
356
490
|
setSelectedOptionsByClick(option: KbqOption): void;
|
|
357
491
|
/** @docs-private */
|
|
358
492
|
protected shouldShowSearch(): boolean;
|
|
493
|
+
/** Updates locale parameters from the locale service. */
|
|
359
494
|
private updateLocaleParams;
|
|
495
|
+
/** Checks if the component is currently visible in the viewport. */
|
|
360
496
|
private isVisible;
|
|
497
|
+
/** Gets the current overlay position index in the container. */
|
|
361
498
|
private currentOverlayPosition;
|
|
499
|
+
/** Gets the position index of modal overlay in the container. */
|
|
362
500
|
private modalOverlayPosition;
|
|
501
|
+
/**
|
|
502
|
+
* Creates an observable of actions that should close the select panel.
|
|
503
|
+
* Includes outside pointer events and overlay detachments.
|
|
504
|
+
*/
|
|
363
505
|
private closingActions;
|
|
506
|
+
/** Gets the height of the options container element. */
|
|
364
507
|
private getHeightOfOptionsContainer;
|
|
508
|
+
/** Updates the keyboard manager scroll size based on options container height. */
|
|
365
509
|
private updateScrollSize;
|
|
510
|
+
/** Calculates the total width of all selected items in the matcher. */
|
|
366
511
|
private getTotalItemsWidthInMatcher;
|
|
512
|
+
/**
|
|
513
|
+
* Calculates the width of a single item including margins.
|
|
514
|
+
* @param element The DOM element to measure.
|
|
515
|
+
* @returns Total width including margins and gap.
|
|
516
|
+
*/
|
|
367
517
|
private getItemWidth;
|
|
368
518
|
/** Handles keyboard events while the select is closed. */
|
|
369
519
|
private handleClosedKeydown;
|
|
370
|
-
/** Handles keyboard events when the
|
|
520
|
+
/** Handles keyboard events when the select is open. */
|
|
371
521
|
private handleOpenKeydown;
|
|
522
|
+
/**
|
|
523
|
+
* Initializes the selection based on the current value.
|
|
524
|
+
* Defers execution to avoid change detection errors.
|
|
525
|
+
*/
|
|
372
526
|
private initializeSelection;
|
|
373
527
|
/**
|
|
374
|
-
* Sets the selected option based on a value.
|
|
375
|
-
* found with the designated value, the select trigger is cleared.
|
|
528
|
+
* Sets the selected option based on a value.
|
|
529
|
+
* If no option can be found with the designated value, the select trigger is cleared.
|
|
530
|
+
* @param value The value to select. Can be a single value or array for multiple selection.
|
|
376
531
|
*/
|
|
377
532
|
private setSelectionByValue;
|
|
533
|
+
/**
|
|
534
|
+
* Finds the option that corresponds to the given value.
|
|
535
|
+
* @param value The value to find.
|
|
536
|
+
* @returns The matching option or undefined if not found.
|
|
537
|
+
*/
|
|
378
538
|
private getCorrespondOption;
|
|
379
539
|
/**
|
|
380
540
|
* Finds and selects and option based on its value.
|
|
@@ -387,7 +547,7 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
|
|
|
387
547
|
private resetOptions;
|
|
388
548
|
/** Invoked when an option is clicked. */
|
|
389
549
|
private onSelect;
|
|
390
|
-
/** Sorts the selected values
|
|
550
|
+
/** Sorts the selected values based on their order in the panel. */
|
|
391
551
|
private sortValues;
|
|
392
552
|
/** Emits change event to set the model value. */
|
|
393
553
|
private propagateChanges;
|
|
@@ -404,10 +564,22 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
|
|
|
404
564
|
private _compareWith;
|
|
405
565
|
/** Function for handling the combination Ctrl + A (select all). By default, the internal handler is used. */
|
|
406
566
|
private _selectAllHandler;
|
|
567
|
+
/**
|
|
568
|
+
* Calculates the total width and count of visible items.
|
|
569
|
+
* @returns Tuple of [totalVisibleItemsWidth, visibleItemsCount].
|
|
570
|
+
*/
|
|
407
571
|
private getTotalVisibleItems;
|
|
572
|
+
/**
|
|
573
|
+
* Creates a hidden clone of the trigger element for width calculations.
|
|
574
|
+
* @returns Clone of the trigger element positioned off-screen.
|
|
575
|
+
*/
|
|
408
576
|
private buildTriggerClone;
|
|
577
|
+
/** Adds the dropdown class to the overlay container when first select opens. */
|
|
578
|
+
private addClassToOverlayContainer;
|
|
579
|
+
/** Removes the dropdown class from the overlay container when select closes. */
|
|
580
|
+
private removeClassFromOverlayContainer;
|
|
409
581
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelect, [null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; host: true; }, { optional: true; self: true; }, null, { optional: true; }]>;
|
|
410
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelect, "kbq-select", ["kbqSelect"], { "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "multiline": { "alias": "multiline"; "required": false; }; "searchMinOptionsThreshold": { "alias": "searchMinOptionsThreshold"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "selectAllHandler": { "alias": "selectAllHandler"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "panelMinWidth": { "alias": "panelMinWidth"; "required": false; }; "value": { "alias": "value"; "required": false; }; "id": { "alias": "id"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["footer", "cdkVirtualForOf", "customTrigger", "customMatcher", "customTagTemplateRef", "cleaner", "search", "options", "optionGroups"], ["kbq-select-matcher, [kbq-select-matcher]", "kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "*", "kbq-select-footer,[kbq-select-footer]"], true, never>;
|
|
582
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelect, "kbq-select", ["kbqSelect"], { "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "showPreselectedValues": { "alias": "showPreselectedValues"; "required": false; }; "triggerValuesLimit": { "alias": "triggerValuesLimit"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "multiline": { "alias": "multiline"; "required": false; }; "searchMinOptionsThreshold": { "alias": "searchMinOptionsThreshold"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "selectAllHandler": { "alias": "selectAllHandler"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "panelMinWidth": { "alias": "panelMinWidth"; "required": false; }; "value": { "alias": "value"; "required": false; }; "id": { "alias": "id"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "beforeOpened": "beforeOpened"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["footer", "cdkVirtualForOf", "customTrigger", "customMatcher", "customTagTemplateRef", "cleaner", "search", "searchEmpty", "options", "optionGroups"], ["kbq-select-matcher, [kbq-select-matcher]", "kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "*", "kbq-select-footer,[kbq-select-footer]"], true, never>;
|
|
411
583
|
static ngAcceptInputType_multiline: unknown;
|
|
412
584
|
static ngAcceptInputType_multiple: unknown;
|
|
413
585
|
static ngAcceptInputType_panelMinWidth: unknown;
|
|
@@ -8,9 +8,10 @@ import * as i6 from "@angular/common";
|
|
|
8
8
|
import * as i7 from "@angular/cdk/a11y";
|
|
9
9
|
import * as i8 from "./select.component";
|
|
10
10
|
import * as i9 from "./select-option.directive";
|
|
11
|
-
import * as i10 from "
|
|
11
|
+
import * as i10 from "./select-common";
|
|
12
|
+
import * as i11 from "@koobiq/components/form-field";
|
|
12
13
|
export declare class KbqSelectModule {
|
|
13
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectModule, never>;
|
|
14
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<KbqSelectModule, never, [typeof i1.OverlayModule, typeof i2.KbqOptionModule, typeof i3.KbqIconModule, typeof i4.KbqTagsModule, typeof i5.KbqToolTipModule, typeof i2.KbqSelectSearch, typeof i2.KbqSelectFooter, typeof i2.KbqSelectMatcher, typeof i2.KbqSelectTrigger, typeof i2.KbqSelectSearchEmptyResult, typeof i6.NgClass, typeof i6.NgTemplateOutlet, typeof i7.A11yModule, typeof i8.KbqSelect, typeof i9.KbqOptionTooltip], [typeof i8.KbqSelect, typeof i9.KbqOptionTooltip, typeof i2.KbqOptionModule, typeof i2.KbqSelectSearch, typeof i2.KbqSelectFooter, typeof i2.KbqSelectMatcher, typeof i2.KbqSelectTrigger, typeof i2.KbqSelectSearchEmptyResult, typeof i10.KbqFormFieldModule]>;
|
|
15
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<KbqSelectModule, never, [typeof i1.OverlayModule, typeof i2.KbqOptionModule, typeof i3.KbqIconModule, typeof i4.KbqTagsModule, typeof i5.KbqToolTipModule, typeof i2.KbqSelectSearch, typeof i2.KbqSelectFooter, typeof i2.KbqSelectMatcher, typeof i2.KbqSelectTrigger, typeof i2.KbqSelectSearchEmptyResult, typeof i6.NgClass, typeof i6.NgTemplateOutlet, typeof i7.A11yModule, typeof i8.KbqSelect, typeof i9.KbqOptionTooltip, typeof i10.KbqSelectLoading, typeof i10.KbqSelectError, typeof i10.KbqSelectNoOptions, typeof i10.KbqSelectErrorText], [typeof i8.KbqSelect, typeof i9.KbqOptionTooltip, typeof i2.KbqOptionModule, typeof i2.KbqSelectSearch, typeof i2.KbqSelectFooter, typeof i2.KbqSelectMatcher, typeof i2.KbqSelectTrigger, typeof i2.KbqSelectSearchEmptyResult, typeof i10.KbqSelectLoading, typeof i11.KbqFormFieldModule, typeof i10.KbqSelectError, typeof i10.KbqSelectNoOptions, typeof i10.KbqSelectErrorText]>;
|
|
15
16
|
static ɵinj: i0.ɵɵInjectorDeclaration<KbqSelectModule>;
|
|
16
17
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
1
|
+
import { InjectionToken, Injector } from '@angular/core';
|
|
2
2
|
/** Injection token that can be used to access the data that was passed in to a sidepanel. */
|
|
3
3
|
export declare const KBQ_SIDEPANEL_DATA: InjectionToken<any>;
|
|
4
4
|
export declare enum KbqSidepanelPosition {
|
|
@@ -35,4 +35,9 @@ export declare class KbqSidepanelConfig<D = any> {
|
|
|
35
35
|
disableClose?: boolean;
|
|
36
36
|
/** Custom class for the overlay pane. */
|
|
37
37
|
overlayPanelClass?: string | string[];
|
|
38
|
+
/**
|
|
39
|
+
* Injector used for the instantiation of the component to be attached.
|
|
40
|
+
* Allows to pass a custom injector to provide a dependency injection hierarchy for the sidepanel content.
|
|
41
|
+
*/
|
|
42
|
+
injector?: Injector;
|
|
38
43
|
}
|
package/skeleton/skeleton.d.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
|
+
import { OnDestroy } from '@angular/core';
|
|
1
2
|
import * as i0 from "@angular/core";
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
+
* Directive representing a skeleton placeholder.
|
|
4
5
|
*/
|
|
5
|
-
export declare class KbqSkeleton {
|
|
6
|
+
export declare class KbqSkeleton implements OnDestroy {
|
|
7
|
+
private readonly styleLoader;
|
|
6
8
|
private readonly element;
|
|
7
9
|
private readonly window;
|
|
8
|
-
|
|
10
|
+
/** Whether the skeleton is enabled. */
|
|
11
|
+
readonly enabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
9
12
|
constructor();
|
|
13
|
+
ngOnDestroy(): void;
|
|
10
14
|
private syncAnimation;
|
|
11
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqSkeleton, never>;
|
|
12
|
-
static
|
|
16
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSkeleton, "kbq-skeleton, [kbqSkeleton]", ["kbqSkeleton"], { "enabled": { "alias": "kbqSkeleton"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
13
17
|
}
|
package/skeleton/skeleton.scss
CHANGED
|
@@ -8,22 +8,35 @@
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
.kbq-skeleton {
|
|
11
|
+
.kbq-skeleton:not(.kbq-skeleton_disabled) {
|
|
12
12
|
--kbq-skeleton-min-height: var(--kbq-size-l);
|
|
13
13
|
--kbq-skeleton-animation-duration: 1200ms;
|
|
14
14
|
--kbq-skeleton-animation-delay: 0ms;
|
|
15
15
|
--kbq-skeleton-border-radius: var(--kbq-size-xxs);
|
|
16
16
|
--kbq-skeleton-wave-width: 100px;
|
|
17
|
+
--kbq-skeleton-z-index: 1;
|
|
18
|
+
|
|
19
|
+
&:is(kbq-skeleton) {
|
|
20
|
+
display: flex;
|
|
21
|
+
min-height: var(--kbq-skeleton-min-height);
|
|
22
|
+
border-radius: var(--kbq-skeleton-border-radius);
|
|
23
|
+
}
|
|
17
24
|
|
|
18
25
|
position: relative;
|
|
19
|
-
display: flex;
|
|
20
|
-
min-height: var(--kbq-skeleton-min-height);
|
|
21
|
-
border-radius: var(--kbq-skeleton-border-radius);
|
|
22
|
-
background-color: var(--kbq-skeleton-background);
|
|
23
26
|
overflow: hidden;
|
|
24
27
|
clip-path: inset(0);
|
|
25
28
|
user-select: none;
|
|
26
29
|
pointer-events: none;
|
|
30
|
+
border-color: transparent;
|
|
31
|
+
outline-color: transparent;
|
|
32
|
+
|
|
33
|
+
&::before {
|
|
34
|
+
content: '';
|
|
35
|
+
position: absolute;
|
|
36
|
+
inset: 0;
|
|
37
|
+
background-color: var(--kbq-skeleton-background);
|
|
38
|
+
z-index: var(--kbq-skeleton-z-index);
|
|
39
|
+
}
|
|
27
40
|
|
|
28
41
|
&::after {
|
|
29
42
|
content: '';
|
|
@@ -31,6 +44,7 @@
|
|
|
31
44
|
inset-block: 0;
|
|
32
45
|
left: calc(var(--kbq-skeleton-wave-width) * -1);
|
|
33
46
|
width: var(--kbq-skeleton-wave-width);
|
|
47
|
+
z-index: var(--kbq-skeleton-z-index);
|
|
34
48
|
background: linear-gradient(
|
|
35
49
|
90deg,
|
|
36
50
|
var(--kbq-skeleton-animation-wave-start) 0%,
|