@koobiq/components 20.1.0 → 20.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/_accordion-theme.scss +6 -2
- package/accordion/accordion-tokens.scss +3 -0
- package/accordion/{accordion-trigger.component.scss → accordion-trigger.scss} +10 -0
- package/accordion/accordion.scss +71 -0
- package/accordion/index.d.ts +264 -121
- package/actions-panel/index.d.ts +25 -13
- package/alert/_alert-theme.scss +14 -0
- package/alert/alert.component.scss +24 -13
- package/alert/index.d.ts +63 -29
- package/app-switcher/app-switcher-dropdown-app.scss +7 -5
- package/app-switcher/app-switcher-dropdown-site.scss +6 -4
- package/app-switcher/index.d.ts +41 -4
- package/app-switcher/kbq-app-switcher-list-item.scss +6 -8
- package/autocomplete/autocomplete.scss +2 -1
- package/autocomplete/index.d.ts +58 -37
- package/badge/index.d.ts +2 -3
- package/breadcrumbs/index.d.ts +1 -1
- package/button/index.d.ts +2 -2
- package/button-toggle/button-toggle-tokens.scss +2 -0
- package/button-toggle/button-toggle.scss +9 -0
- package/button-toggle/index.d.ts +5 -0
- package/checkbox/index.d.ts +33 -29
- package/clamped-text/index.d.ts +3 -2
- package/code-block/index.d.ts +24 -19
- package/content-panel/index.d.ts +1 -1
- package/core/index.d.ts +1217 -186
- package/core/option/_action-container-mixins.scss +28 -0
- package/core/option/_option-theme.scss +24 -0
- package/core/option/action.scss +7 -0
- package/core/styles/_core.scss +2 -0
- package/core/styles/_koobiq-theme.scss +2 -0
- package/core/styles/_tokens.scss +1 -0
- package/core/styles/common/_animation.scss +31 -24
- package/core/styles/common/_connected-overlay.scss +39 -0
- package/core/styles/common/_select.scss +19 -2
- package/core/styles/common/_tokens.scss +0 -9
- package/core/styles/theming/_index.scss +0 -1
- package/core/styles/theming/_theming.scss +34 -5
- package/datepicker/index.d.ts +46 -15
- package/dl/dl.scss +26 -0
- package/dl/index.d.ts +8 -1
- package/dropdown/_dropdown-theme.scss +28 -2
- package/dropdown/dropdown-item.scss +29 -0
- package/dropdown/dropdown-tokens.scss +2 -1
- package/dropdown/dropdown.scss +16 -1
- package/dropdown/index.d.ts +331 -17
- package/dynamic-translation/index.d.ts +1 -1
- package/fesm2022/koobiq-components-accordion.mjs +480 -317
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +57 -46
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +98 -58
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +233 -38
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +89 -52
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +18 -17
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +25 -25
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +17 -12
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +25 -25
- package/fesm2022/koobiq-components-checkbox.mjs +69 -92
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +18 -13
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +56 -69
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +29 -29
- package/fesm2022/koobiq-components-core.mjs +2485 -735
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +168 -126
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +7 -7
- package/fesm2022/koobiq-components-dl.mjs +23 -15
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +814 -136
- 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 +7 -7
- package/fesm2022/koobiq-components-empty-state.mjs +19 -19
- package/fesm2022/koobiq-components-file-upload.mjs +74 -42
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +783 -199
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +7 -7
- package/fesm2022/koobiq-components-form-field.mjs +350 -162
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +52 -25
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +175 -28
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +41 -24
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link.mjs +8 -8
- package/fesm2022/koobiq-components-list.mjs +657 -143
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +16 -16
- package/fesm2022/koobiq-components-markdown.mjs +14 -11
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +59 -35
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +177 -67
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +40 -24
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +16 -17
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +31 -21
- 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 +13 -13
- package/fesm2022/koobiq-components-radio.mjs +10 -10
- package/fesm2022/koobiq-components-resizer.mjs +33 -14
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar.mjs +10 -10
- package/fesm2022/koobiq-components-search-expandable.mjs +49 -14
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +450 -146
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +14 -14
- package/fesm2022/koobiq-components-sidepanel.mjs +26 -26
- package/fesm2022/koobiq-components-skeleton.mjs +10 -10
- package/fesm2022/koobiq-components-split-button.mjs +10 -17
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +17 -17
- package/fesm2022/koobiq-components-table.mjs +15 -13
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +80 -68
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +283 -122
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +13 -8
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +29 -24
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +61 -30
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +77 -42
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +7 -7
- package/fesm2022/koobiq-components-toast.mjs +51 -26
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +72 -64
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +219 -28
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +13 -13
- package/fesm2022/koobiq-components-tree-select.mjs +222 -80
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +302 -81
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +27 -27
- package/file-upload/index.d.ts +25 -6
- package/file-upload/multiple-file-upload.component.scss +14 -0
- package/filter-bar/_filter-bar-theme.scss +0 -10
- package/filter-bar/filter-bar-tokens.scss +3 -0
- package/filter-bar/filters.scss +3 -2
- package/filter-bar/index.d.ts +281 -9
- package/filter-bar/pipes/base-pipe.scss +0 -11
- package/filter-bar/pipes/pipe-input.scss +10 -0
- package/filter-bar/pipes/pipe-multi-tree-select.scss +0 -6
- package/filter-bar/pipes/pipe-multiselect.scss +0 -6
- package/filter-bar/pipes/pipe-tree-select.scss +0 -6
- package/form-field/_form-field-theme.scss +76 -20
- package/form-field/fieldset.scss +10 -0
- package/form-field/form-field-tokens.scss +15 -1
- package/form-field/form-field.scss +15 -19
- package/form-field/index.d.ts +147 -65
- package/icon/icon-button.scss +3 -1
- package/icon/index.d.ts +45 -7
- package/inline-edit/index.d.ts +57 -4
- package/inline-edit/inline-edit.scss +10 -0
- package/input/index.d.ts +17 -2
- package/list/_list-theme.scss +42 -10
- package/list/index.d.ts +326 -79
- package/list/list-tokens.scss +43 -8
- package/list/list.scss +186 -12
- package/markdown/index.d.ts +1 -1
- package/modal/index.d.ts +21 -4
- package/modal/modal-tokens.scss +1 -1
- package/navbar/_navbar-item_vertical.scss +7 -5
- package/navbar/index.d.ts +54 -5
- package/navbar/navbar-brand.scss +23 -7
- package/navbar/vertical-navbar.scss +6 -0
- package/notification-center/index.d.ts +2 -1
- package/notification-center/notification-item.scss +6 -0
- package/package.json +3 -6
- package/popover/index.d.ts +2 -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/resizer/index.d.ts +12 -0
- package/schematics/collection.json +10 -0
- package/schematics/migrations/alert-signals/README.md +64 -0
- package/schematics/migrations/alert-signals/data.js +70 -0
- package/schematics/migrations/alert-signals/index.js +350 -0
- package/schematics/migrations/alert-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +68 -0
- package/schematics/migrations/autocomplete-panel-width-auto/index.js +70 -0
- package/schematics/migrations/autocomplete-panel-width-auto/schema.json +15 -0
- package/schematics/migrations/deprecated-icons/README.md +29 -4
- package/schematics/migrations/deprecated-icons/data.js +7 -0
- package/schematics/migrations/deprecated-icons/index.js +62 -35
- package/schematics/migrations/filter-bar-signals/README.md +1 -1
- package/schematics/migrations/new-icons-pack/README.md +37 -2
- package/schematics/migrations/new-icons-pack/data.js +8 -0
- package/schematics/migrations/new-icons-pack/index.js +144 -53
- package/schematics/migrations.json +11 -1
- package/schematics/ng-add/index.js +3 -3
- package/schematics/utils/angular-parsing.js +41 -14
- package/schematics/utils/ast.js +31 -0
- package/schematics/utils/icon-migration.js +530 -0
- package/schematics/utils/typescript.js +44 -0
- package/scrollbar/index.d.ts +1 -1
- package/search-expandable/index.d.ts +3 -0
- package/select/index.d.ts +212 -40
- package/select/select-tokens.scss +0 -1
- package/select/select.scss +0 -2
- package/splitter/index.d.ts +1 -1
- package/table/_table-theme.scss +4 -0
- package/table/index.d.ts +2 -1
- package/table/table.scss +8 -0
- package/tabs/_tabs-common.scss +60 -31
- package/tabs/_tabs-theme.scss +12 -0
- package/tabs/index.d.ts +2 -2
- package/tabs/tab-header.scss +14 -0
- package/tabs/tab-nav-bar.scss +4 -0
- package/tabs/tabs-tokens.scss +1 -0
- package/tags/index.d.ts +128 -29
- package/textarea/index.d.ts +5 -0
- package/time-range/index.d.ts +1 -1
- package/timepicker/index.d.ts +4 -0
- package/timezone/index.d.ts +10 -8
- package/toast/index.d.ts +26 -3
- package/toggle/index.d.ts +34 -14
- package/tooltip/index.d.ts +119 -7
- package/tree/_tree-theme.scss +25 -5
- package/tree/index.d.ts +71 -3
- package/tree/tree-option.scss +2 -8
- package/tree-select/_tree-select-theme.scss +22 -0
- package/tree-select/index.d.ts +127 -36
- package/accordion/accordion.component.scss +0 -50
- package/core/styles/_tokens.kbq.import.scss +0 -4
- package/core/styles/theming/_components-theming.scss +0 -1927
- package/filter-bar/pipes/pipe-select.scss +0 -5
- package/overflow-items/overflow-items.scss +0 -20
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, Directive, InjectionToken, forwardRef, ViewContainerRef, ChangeDetectorRef, NgZone, input, afterNextRender, Input, DestroyRef, viewChild, TemplateRef, contentChildren,
|
|
2
|
+
import { inject, ElementRef, Directive, InjectionToken, forwardRef, ViewContainerRef, ChangeDetectorRef, NgZone, input, afterNextRender, Input, DestroyRef, viewChild, TemplateRef, contentChildren, numberAttribute, output, ContentChildren, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
3
|
import { Directionality } from '@angular/cdk/bidi';
|
|
4
4
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
5
|
import { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
@@ -7,12 +7,12 @@ import { _getFocusedElementPierceShadowDom, _getEventTarget } from '@angular/cdk
|
|
|
7
7
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
8
8
|
import { ViewportRuler } from '@angular/cdk/scrolling';
|
|
9
9
|
import { DOCUMENT } from '@angular/common';
|
|
10
|
+
import { toObservable, outputToObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
10
11
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
11
|
-
import { KBQ_WINDOW, KbqOptionSelectionChange, ESCAPE, ENTER, TAB, DOWN_ARROW, UP_ARROW, defaultOffsetY, KbqOptgroup, ActiveDescendantKeyManager, KbqOption, KBQ_OPTION_PARENT_COMPONENT, KbqOptionModule } from '@koobiq/components/core';
|
|
12
|
-
import {
|
|
12
|
+
import { KBQ_WINDOW, KbqOptionSelectionChange, ESCAPE, ENTER, TAB, DOWN_ARROW, UP_ARROW, defaultOffsetY, KBQ_CONNECTED_OVERLAY_BELOW_CLASS, KBQ_CONNECTED_OVERLAY_ABOVE_CLASS, kbqResolvePanelWidth, kbqGetPanelWidthOrigin, kbqSiblingPopupProvider, KbqOptgroup, KBQ_PANEL_DEFAULT_MIN_WIDTH, ActiveDescendantKeyManager, KbqOption, KBQ_OPTION_PARENT_COMPONENT, KbqOptionModule } from '@koobiq/components/core';
|
|
13
|
+
import { KBQ_FORM_FIELD } from '@koobiq/components/form-field';
|
|
13
14
|
import { defer, merge, Subscription, Subject, of, fromEvent } from 'rxjs';
|
|
14
15
|
import { take, switchMap, filter, map, tap, delay } from 'rxjs/operators';
|
|
15
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Directive applied to an element to make it usable
|
|
@@ -22,10 +22,10 @@ class KbqAutocompleteOrigin {
|
|
|
22
22
|
constructor() {
|
|
23
23
|
this.elementRef = inject(ElementRef);
|
|
24
24
|
}
|
|
25
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
26
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
25
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqAutocompleteOrigin, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.30", type: KbqAutocompleteOrigin, isStandalone: true, selector: "[kbqAutocompleteOrigin]", exportAs: ["kbqAutocompleteOrigin"], ngImport: i0 }); }
|
|
27
27
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqAutocompleteOrigin, decorators: [{
|
|
29
29
|
type: Directive,
|
|
30
30
|
args: [{
|
|
31
31
|
selector: '[kbqAutocompleteOrigin]',
|
|
@@ -34,14 +34,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
34
34
|
}] });
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
|
-
* The
|
|
38
|
-
*
|
|
39
|
-
*
|
|
37
|
+
* The total height of the autocomplete panel.
|
|
38
|
+
*
|
|
39
|
+
* @deprecated Unused — the panel is capped by `--kbq-autocomplete-size-panel-max-height` and reveals its
|
|
40
|
+
* active option through `KbqOption.focus`, so nothing computes a scroll offset from this. Will be removed
|
|
41
|
+
* in the next major release.
|
|
40
42
|
*/
|
|
41
|
-
/** The total height of the autocomplete panel. */
|
|
42
43
|
const AUTOCOMPLETE_PANEL_HEIGHT = 256;
|
|
43
|
-
/**
|
|
44
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Injection token that determines the scroll handling while the autocomplete panel is open. The root default
|
|
46
|
+
* keeps the trigger usable outside `KbqAutocompleteModule`'s injector; providing the token anywhere still wins
|
|
47
|
+
* over it.
|
|
48
|
+
*/
|
|
49
|
+
const KBQ_AUTOCOMPLETE_SCROLL_STRATEGY = new InjectionToken('kbq-autocomplete-scroll-strategy', {
|
|
50
|
+
providedIn: 'root',
|
|
51
|
+
factory: () => KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY(inject(Overlay))
|
|
52
|
+
});
|
|
45
53
|
function KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY(overlay) {
|
|
46
54
|
return () => overlay.scrollStrategies.reposition();
|
|
47
55
|
}
|
|
@@ -76,6 +84,10 @@ class KbqAutocompleteTrigger {
|
|
|
76
84
|
get panelOpen() {
|
|
77
85
|
return this.overlayAttached && this.autocomplete().showPanel;
|
|
78
86
|
}
|
|
87
|
+
/** Whether the autocomplete panel is currently on screen. Part of the `KbqSiblingPopup` contract. */
|
|
88
|
+
get isAttached() {
|
|
89
|
+
return this.overlayAttached;
|
|
90
|
+
}
|
|
79
91
|
/**
|
|
80
92
|
* Whether the autocomplete is disabled. When disabled, the element will
|
|
81
93
|
* act as a regular input and the user won't be able to open the panel.
|
|
@@ -95,7 +107,7 @@ class KbqAutocompleteTrigger {
|
|
|
95
107
|
this.overlay = inject(Overlay);
|
|
96
108
|
this.zone = inject(NgZone);
|
|
97
109
|
this.dir = inject(Directionality, { optional: true });
|
|
98
|
-
this.formField = inject(
|
|
110
|
+
this.formField = inject(KBQ_FORM_FIELD, { optional: true, host: true });
|
|
99
111
|
this.viewportRuler = inject(ViewportRuler);
|
|
100
112
|
this.document = inject(DOCUMENT);
|
|
101
113
|
this.optionSelections = defer(() => {
|
|
@@ -109,6 +121,14 @@ class KbqAutocompleteTrigger {
|
|
|
109
121
|
});
|
|
110
122
|
/** The autocomplete panel to be attached to this trigger. */
|
|
111
123
|
this.autocomplete = input(undefined, ...(ngDevMode ? [{ debugName: "autocomplete", alias: 'kbqAutocomplete' }] : [{ alias: 'kbqAutocomplete' }]));
|
|
124
|
+
/**
|
|
125
|
+
* Emits `true` when the panel opens and `false` when it closes. Part of the `KbqSiblingPopup`
|
|
126
|
+
* contract.
|
|
127
|
+
*
|
|
128
|
+
* Built on top of the `autocomplete` signal rather than read once: the panel is bound after the consumers
|
|
129
|
+
* of this stream are created (a tooltip on the same element subscribes in its constructor).
|
|
130
|
+
*/
|
|
131
|
+
this.openedChange = toObservable(this.autocomplete).pipe(filter(Boolean), switchMap((autocomplete) => merge(outputToObservable(autocomplete.opened).pipe(map(() => true)), outputToObservable(autocomplete.closed).pipe(map(() => false)))));
|
|
112
132
|
/**
|
|
113
133
|
* Reference relative to which to position the autocomplete panel.
|
|
114
134
|
* Defaults to the autocomplete trigger element.
|
|
@@ -170,7 +190,8 @@ class KbqAutocompleteTrigger {
|
|
|
170
190
|
const autocompleteValue = this.autocomplete();
|
|
171
191
|
if (this.panelOpen) {
|
|
172
192
|
this.scrollActiveOptionIntoView();
|
|
173
|
-
|
|
193
|
+
// Focus returns to the input on every arrow key; it must not drag the scroll with it.
|
|
194
|
+
this.elementRef.nativeElement.focus({ preventScroll: true });
|
|
174
195
|
}
|
|
175
196
|
else if (!this.panelOpen && autocompleteValue.keyManager.activeItem) {
|
|
176
197
|
autocompleteValue.keyManager.activeItem?.selectViaInteraction();
|
|
@@ -462,7 +483,13 @@ class KbqAutocompleteTrigger {
|
|
|
462
483
|
this.zone.onStable
|
|
463
484
|
.asObservable()
|
|
464
485
|
.pipe(take(1))
|
|
465
|
-
.subscribe(() =>
|
|
486
|
+
.subscribe(() => {
|
|
487
|
+
this.resetActiveItem();
|
|
488
|
+
// Overlay width may not be final on first open, so re-measure when the layout is stable.
|
|
489
|
+
if (this.panelOpen && this.overlayRef) {
|
|
490
|
+
this.overlayRef.updateSize(this.getOverlaySize());
|
|
491
|
+
}
|
|
492
|
+
});
|
|
466
493
|
}
|
|
467
494
|
getOverlayConfig() {
|
|
468
495
|
return new OverlayConfig({
|
|
@@ -478,20 +505,25 @@ class KbqAutocompleteTrigger {
|
|
|
478
505
|
.flexibleConnectedTo(this.getConnectedElement())
|
|
479
506
|
.withFlexibleDimensions(false)
|
|
480
507
|
.withPush(false)
|
|
508
|
+
// CDK measures the pane before the trigger↔panel gap padding (kbq-connected-overlay-gap) is
|
|
509
|
+
// applied, so a position can be judged "fits" without accounting for that extra space. Giving
|
|
510
|
+
// it a margin at least as big as the gap (defaultOffsetY) keeps the fit check conservative
|
|
511
|
+
// enough to absorb the padding that lands afterwards.
|
|
512
|
+
.withViewportMargin(defaultOffsetY)
|
|
481
513
|
.withPositions([
|
|
482
514
|
{
|
|
483
515
|
originX: 'start',
|
|
484
516
|
originY: 'bottom',
|
|
485
517
|
overlayX: 'start',
|
|
486
518
|
overlayY: 'top',
|
|
487
|
-
|
|
519
|
+
panelClass: KBQ_CONNECTED_OVERLAY_BELOW_CLASS
|
|
488
520
|
},
|
|
489
521
|
{
|
|
490
522
|
originX: 'start',
|
|
491
523
|
originY: 'top',
|
|
492
524
|
overlayX: 'start',
|
|
493
525
|
overlayY: 'bottom',
|
|
494
|
-
|
|
526
|
+
panelClass: KBQ_CONNECTED_OVERLAY_ABOVE_CLASS
|
|
495
527
|
}
|
|
496
528
|
]);
|
|
497
529
|
return this.positionStrategy;
|
|
@@ -503,15 +535,12 @@ class KbqAutocompleteTrigger {
|
|
|
503
535
|
}
|
|
504
536
|
return this.formField ? this.formField.getConnectedOverlayOrigin() : this.elementRef;
|
|
505
537
|
}
|
|
506
|
-
getPanelMinWidth() {
|
|
507
|
-
return Math.max(this.autocomplete().panelMinWidth, this.getHostWidth());
|
|
508
|
-
}
|
|
509
538
|
getOverlaySize() {
|
|
510
|
-
const
|
|
511
|
-
return panelWidth
|
|
539
|
+
const autocomplete = this.autocomplete();
|
|
540
|
+
return kbqResolvePanelWidth(autocomplete.panelWidth(), autocomplete.panelMinWidth(), this.getHostWidth());
|
|
512
541
|
}
|
|
513
542
|
getHostWidth() {
|
|
514
|
-
return this.getConnectedElement()
|
|
543
|
+
return kbqGetPanelWidthOrigin(this.getConnectedElement());
|
|
515
544
|
}
|
|
516
545
|
/**
|
|
517
546
|
* Resets the active item to -1 so arrow events will activate the
|
|
@@ -530,14 +559,14 @@ class KbqAutocompleteTrigger {
|
|
|
530
559
|
const element = this.elementRef.nativeElement;
|
|
531
560
|
return !element.readOnly && !element.disabled && !this._autocompleteDisabled;
|
|
532
561
|
}
|
|
533
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
534
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
562
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqAutocompleteTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
563
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.30", type: KbqAutocompleteTrigger, isStandalone: true, selector: "input[kbqAutocomplete], textarea[kbqAutocomplete]", inputs: { autocomplete: { classPropertyName: "autocomplete", publicName: "kbqAutocomplete", isSignal: true, isRequired: false, transformFunction: null }, connectedTo: { classPropertyName: "connectedTo", publicName: "kbqAutocompleteConnectedTo", isSignal: true, isRequired: false, transformFunction: null }, autocompleteAttribute: { classPropertyName: "autocompleteAttribute", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null }, autocompleteDisabled: { classPropertyName: "autocompleteDisabled", publicName: "kbqAutocompleteDisabled", isSignal: false, isRequired: false, transformFunction: null }, onInputBlur: { classPropertyName: "onInputBlur", publicName: "kbqAutocompleteOnBlur", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focusin": "handleFocus()", "blur": "onTouched()", "input": "handleInput($event)", "keydown": "handleKeydown($event)", "click": "handleClick($event)" }, properties: { "attr.autocomplete": "autocompleteAttribute()" }, classAttribute: "kbq-autocomplete-trigger" }, providers: [KBQ_AUTOCOMPLETE_VALUE_ACCESSOR, kbqSiblingPopupProvider(KbqAutocompleteTrigger)], exportAs: ["kbqAutocompleteTrigger"], ngImport: i0 }); }
|
|
535
564
|
}
|
|
536
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
565
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqAutocompleteTrigger, decorators: [{
|
|
537
566
|
type: Directive,
|
|
538
567
|
args: [{
|
|
539
568
|
selector: `input[kbqAutocomplete], textarea[kbqAutocomplete]`,
|
|
540
|
-
providers: [KBQ_AUTOCOMPLETE_VALUE_ACCESSOR],
|
|
569
|
+
providers: [KBQ_AUTOCOMPLETE_VALUE_ACCESSOR, kbqSiblingPopupProvider(KbqAutocompleteTrigger)],
|
|
541
570
|
host: {
|
|
542
571
|
class: 'kbq-autocomplete-trigger',
|
|
543
572
|
'[attr.autocomplete]': 'autocompleteAttribute()',
|
|
@@ -563,10 +592,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
563
592
|
let uniqueAutocompleteIdCounter = 0;
|
|
564
593
|
/** Footer that is rendered below the autocomplete options panel. */
|
|
565
594
|
class KbqAutocompleteFooter {
|
|
566
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
567
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
595
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqAutocompleteFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
596
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.30", type: KbqAutocompleteFooter, isStandalone: true, selector: "[kbqAutocompleteFooter], kbq-autocomplete-footer", host: { classAttribute: "kbq-autocomplete-footer" }, ngImport: i0 }); }
|
|
568
597
|
}
|
|
569
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
598
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqAutocompleteFooter, decorators: [{
|
|
570
599
|
type: Directive,
|
|
571
600
|
args: [{
|
|
572
601
|
selector: '[kbqAutocompleteFooter], kbq-autocomplete-footer',
|
|
@@ -635,7 +664,7 @@ class KbqAutocomplete {
|
|
|
635
664
|
constructor() {
|
|
636
665
|
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
637
666
|
this.elementRef = inject(ElementRef);
|
|
638
|
-
this.parentFormField = inject(
|
|
667
|
+
this.parentFormField = inject(KBQ_FORM_FIELD, { host: true, optional: true });
|
|
639
668
|
this.destroyRef = inject(DestroyRef);
|
|
640
669
|
/** Unique ID to be used by autocomplete trigger's "aria-owns" property. */
|
|
641
670
|
this.id = `kbq-autocomplete-${uniqueAutocompleteIdCounter++}`;
|
|
@@ -648,13 +677,24 @@ class KbqAutocomplete {
|
|
|
648
677
|
// TODO: Skipped for migration because:
|
|
649
678
|
// Your application code writes to the input. This prevents migration.
|
|
650
679
|
this.displayWith = null;
|
|
680
|
+
/**
|
|
681
|
+
* Specify the width of the autocomplete panel. If set to `auto`, the panel will match the width of
|
|
682
|
+
* its host, but will never be narrower than `panelMinWidth`. Any other CSS sizing value is used as an
|
|
683
|
+
* exact width, and `panelMinWidth` is not applied. When not set, the panel sizes to its content and is
|
|
684
|
+
* at least as wide as its host.
|
|
685
|
+
*/
|
|
686
|
+
this.panelWidth = input(undefined, ...(ngDevMode ? [{ debugName: "panelWidth" }] : []));
|
|
651
687
|
/**
|
|
652
688
|
* Minimum width of the panel in pixels.
|
|
653
689
|
* When panelWidth is not set, the panel will be at least as wide as its host and no less than panelMinWidth.
|
|
654
690
|
*/
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
691
|
+
this.panelMinWidth = input(KBQ_PANEL_DEFAULT_MIN_WIDTH, ...(ngDevMode ? [{ debugName: "panelMinWidth", transform: numberAttribute }] : [{ transform: numberAttribute }]));
|
|
692
|
+
/**
|
|
693
|
+
* Maximum width of the panel in pixels. Caps how far the panel grows with its content — it never makes
|
|
694
|
+
* the panel narrower than its host, and never clamps an explicit `panelWidth`.
|
|
695
|
+
* When null, the `--kbq-panel-size-width-max` token applies.
|
|
696
|
+
*/
|
|
697
|
+
this.panelMaxWidth = input(null, ...(ngDevMode ? [{ debugName: "panelMaxWidth", transform: numberAttribute }] : [{ transform: numberAttribute }]));
|
|
658
698
|
/** Event that is emitted whenever an option from the list is selected. */
|
|
659
699
|
this.optionSelected = output();
|
|
660
700
|
/** Event that is emitted when the autocomplete panel is opened. */
|
|
@@ -711,15 +751,15 @@ class KbqAutocomplete {
|
|
|
711
751
|
'cdk-keyboard-focused': this.parentFormField?.focusOrigin === 'keyboard'
|
|
712
752
|
};
|
|
713
753
|
}
|
|
714
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
715
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.
|
|
754
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqAutocomplete, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
755
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.30", type: KbqAutocomplete, isStandalone: true, selector: "kbq-autocomplete", inputs: { displayWith: { classPropertyName: "displayWith", publicName: "displayWith", isSignal: false, isRequired: false, transformFunction: null }, panelWidth: { classPropertyName: "panelWidth", publicName: "panelWidth", isSignal: true, isRequired: false, transformFunction: null }, panelMinWidth: { classPropertyName: "panelMinWidth", publicName: "panelMinWidth", isSignal: true, isRequired: false, transformFunction: null }, panelMaxWidth: { classPropertyName: "panelMaxWidth", publicName: "panelMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, classList: { classPropertyName: "classList", publicName: "class", isSignal: false, isRequired: false, transformFunction: null }, autoActiveFirstOption: { classPropertyName: "autoActiveFirstOption", publicName: "autoActiveFirstOption", isSignal: false, isRequired: false, transformFunction: null }, openOnFocus: { classPropertyName: "openOnFocus", publicName: "openOnFocus", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { optionSelected: "optionSelected", opened: "opened", closed: "closed" }, host: { styleAttribute: "display: none", classAttribute: "kbq-autocomplete" }, providers: [
|
|
716
756
|
{
|
|
717
757
|
provide: KBQ_OPTION_PARENT_COMPONENT,
|
|
718
758
|
useExisting: KbqAutocomplete
|
|
719
759
|
}
|
|
720
|
-
], queries: [{ propertyName: "optionGroups", predicate: KbqOptgroup, isSignal: true }, { propertyName: "options", predicate: KbqOption, descendants: true }], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }], exportAs: ["kbqAutocomplete"], ngImport: i0, template: "<ng-template>\n <div class=\"kbq-autocomplete-panel\" [id]=\"id\" [class]=\"classList\">\n <div #panel role=\"listbox\" class=\"kbq-autocomplete-panel__content kbq-scrollbar\">\n <ng-content />\n </div>\n <ng-content select=\"[kbqAutocompleteFooter], kbq-autocomplete-footer\" />\n </div>\n</ng-template>\n", styles: [".kbq-autocomplete-panel .kbq-autocomplete-footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;align-items:center;box-sizing:border-box;min-height:40px;border-top-width:1px;border-top-style:solid;padding:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-autocomplete-panel{visibility:hidden;position:relative;display:flex;flex-direction:column;box-sizing:border-box;min-width:100%;width:100%;max-width:
|
|
760
|
+
], queries: [{ propertyName: "optionGroups", predicate: KbqOptgroup, isSignal: true }, { propertyName: "options", predicate: KbqOption, descendants: true }], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }], exportAs: ["kbqAutocomplete"], ngImport: i0, template: "<ng-template>\n <div class=\"kbq-autocomplete-panel\" [id]=\"id\" [class]=\"classList\" [style.max-width.px]=\"panelMaxWidth()\">\n <div #panel role=\"listbox\" class=\"kbq-autocomplete-panel__content kbq-scrollbar\">\n <ng-content />\n </div>\n <ng-content select=\"[kbqAutocompleteFooter], kbq-autocomplete-footer\" />\n </div>\n</ng-template>\n", styles: [".kbq-autocomplete-panel .kbq-autocomplete-footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;align-items:center;box-sizing:border-box;min-height:40px;border-top-width:1px;border-top-style:solid;padding:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-autocomplete-panel{visibility:hidden;position:relative;display:flex;flex-direction:column;box-sizing:border-box;min-width:100%;width:100%;max-width:var(--kbq-panel-size-width-max, 640px);border-radius:var(--kbq-autocomplete-size-panel-border-radius, var(--kbq-size-border-radius));max-height:var(--kbq-autocomplete-size-panel-max-height)}.kbq-autocomplete-panel .kbq-autocomplete-panel__content{flex:1;padding:var(--kbq-size-xxs);overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.kbq-autocomplete-panel .kbq-autocomplete-footer{border-color:var(--kbq-line-contrast-less)}.kbq-autocomplete-panel.kbq-autocomplete_visible{visibility:visible}.kbq-autocomplete-panel.kbq-autocomplete_hidden{visibility:hidden}.kbq-autocomplete-panel .kbq-option{position:relative}.kbq-autocomplete-panel .kbq-option:before,.kbq-autocomplete-panel .kbq-option:after{position:absolute;content:\"\";width:var(--kbq-size-xxs);height:calc(100% + var(--kbq-size-3xs) * 2)}.kbq-autocomplete-panel .kbq-option:before{right:calc(100% + var(--kbq-size-3xs))}.kbq-autocomplete-panel .kbq-option:after{left:calc(100% + var(--kbq-size-3xs))}.kbq-autocomplete-panel .kbq-divider-horizontal{margin-top:-1px}.kbq-autocomplete-panel{box-shadow:var(--kbq-select-panel-dropdown-shadow);background:var(--kbq-select-panel-dropdown-background)}\n", ".kbq-autocomplete-panel{--kbq-autocomplete-size-panel-padding: var(--kbq-size-xxs) 0;--kbq-autocomplete-size-panel-max-height: 256px;--kbq-autocomplete-size-panel-border-radius: var(--kbq-size-border-radius);--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
721
761
|
}
|
|
722
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
762
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqAutocomplete, decorators: [{
|
|
723
763
|
type: Component,
|
|
724
764
|
args: [{ selector: 'kbq-autocomplete', imports: [], providers: [
|
|
725
765
|
{
|
|
@@ -727,19 +767,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
727
767
|
useExisting: KbqAutocomplete
|
|
728
768
|
}
|
|
729
769
|
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
730
|
-
class: 'kbq-autocomplete'
|
|
731
|
-
|
|
770
|
+
class: 'kbq-autocomplete',
|
|
771
|
+
// Remove the empty TemplatePortal host from layout entirely — it would otherwise contribute an
|
|
772
|
+
// inline box in normal flow, or a phantom item in a flex/grid container.
|
|
773
|
+
style: 'display: none'
|
|
774
|
+
}, exportAs: 'kbqAutocomplete', template: "<ng-template>\n <div class=\"kbq-autocomplete-panel\" [id]=\"id\" [class]=\"classList\" [style.max-width.px]=\"panelMaxWidth()\">\n <div #panel role=\"listbox\" class=\"kbq-autocomplete-panel__content kbq-scrollbar\">\n <ng-content />\n </div>\n <ng-content select=\"[kbqAutocompleteFooter], kbq-autocomplete-footer\" />\n </div>\n</ng-template>\n", styles: [".kbq-autocomplete-panel .kbq-autocomplete-footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;align-items:center;box-sizing:border-box;min-height:40px;border-top-width:1px;border-top-style:solid;padding:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-autocomplete-panel{visibility:hidden;position:relative;display:flex;flex-direction:column;box-sizing:border-box;min-width:100%;width:100%;max-width:var(--kbq-panel-size-width-max, 640px);border-radius:var(--kbq-autocomplete-size-panel-border-radius, var(--kbq-size-border-radius));max-height:var(--kbq-autocomplete-size-panel-max-height)}.kbq-autocomplete-panel .kbq-autocomplete-panel__content{flex:1;padding:var(--kbq-size-xxs);overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.kbq-autocomplete-panel .kbq-autocomplete-footer{border-color:var(--kbq-line-contrast-less)}.kbq-autocomplete-panel.kbq-autocomplete_visible{visibility:visible}.kbq-autocomplete-panel.kbq-autocomplete_hidden{visibility:hidden}.kbq-autocomplete-panel .kbq-option{position:relative}.kbq-autocomplete-panel .kbq-option:before,.kbq-autocomplete-panel .kbq-option:after{position:absolute;content:\"\";width:var(--kbq-size-xxs);height:calc(100% + var(--kbq-size-3xs) * 2)}.kbq-autocomplete-panel .kbq-option:before{right:calc(100% + var(--kbq-size-3xs))}.kbq-autocomplete-panel .kbq-option:after{left:calc(100% + var(--kbq-size-3xs))}.kbq-autocomplete-panel .kbq-divider-horizontal{margin-top:-1px}.kbq-autocomplete-panel{box-shadow:var(--kbq-select-panel-dropdown-shadow);background:var(--kbq-select-panel-dropdown-background)}\n", ".kbq-autocomplete-panel{--kbq-autocomplete-size-panel-padding: var(--kbq-size-xxs) 0;--kbq-autocomplete-size-panel-max-height: 256px;--kbq-autocomplete-size-panel-border-radius: var(--kbq-size-border-radius);--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"] }]
|
|
732
775
|
}], ctorParameters: () => [], propDecorators: { template: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }], panel: [{ type: i0.ViewChild, args: ['panel', { isSignal: true }] }], options: [{
|
|
733
776
|
type: ContentChildren,
|
|
734
777
|
args: [KbqOption, { descendants: true }]
|
|
735
778
|
}], optionGroups: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KbqOptgroup), { isSignal: true }] }], displayWith: [{
|
|
736
779
|
type: Input
|
|
737
|
-
}], panelWidth: [{
|
|
738
|
-
type: Input
|
|
739
|
-
}], panelMinWidth: [{
|
|
740
|
-
type: Input,
|
|
741
|
-
args: [{ transform: numberAttribute }]
|
|
742
|
-
}], optionSelected: [{ type: i0.Output, args: ["optionSelected"] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }], classList: [{
|
|
780
|
+
}], panelWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelWidth", required: false }] }], panelMinWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelMinWidth", required: false }] }], panelMaxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelMaxWidth", required: false }] }], optionSelected: [{ type: i0.Output, args: ["optionSelected"] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }], classList: [{
|
|
743
781
|
type: Input,
|
|
744
782
|
args: ['class']
|
|
745
783
|
}], autoActiveFirstOption: [{
|
|
@@ -749,8 +787,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
749
787
|
}] } });
|
|
750
788
|
|
|
751
789
|
class KbqAutocompleteModule {
|
|
752
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
753
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
790
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
791
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.30", ngImport: i0, type: KbqAutocompleteModule, imports: [KbqOptionModule,
|
|
754
792
|
OverlayModule,
|
|
755
793
|
KbqAutocomplete,
|
|
756
794
|
KbqAutocompleteTrigger,
|
|
@@ -760,10 +798,10 @@ class KbqAutocompleteModule {
|
|
|
760
798
|
KbqAutocompleteTrigger,
|
|
761
799
|
KbqAutocompleteOrigin,
|
|
762
800
|
KbqAutocompleteFooter] }); }
|
|
763
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
801
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqAutocompleteModule, imports: [KbqOptionModule,
|
|
764
802
|
OverlayModule, KbqOptionModule] }); }
|
|
765
803
|
}
|
|
766
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
804
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqAutocompleteModule, decorators: [{
|
|
767
805
|
type: NgModule,
|
|
768
806
|
args: [{
|
|
769
807
|
imports: [
|
|
@@ -774,7 +812,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
774
812
|
KbqAutocompleteOrigin,
|
|
775
813
|
KbqAutocompleteFooter
|
|
776
814
|
],
|
|
777
|
-
providers: [KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER],
|
|
778
815
|
exports: [
|
|
779
816
|
KbqAutocomplete,
|
|
780
817
|
KbqOptionModule,
|