@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
|
@@ -2,18 +2,32 @@ import { FocusMonitor, A11yModule } from '@angular/cdk/a11y';
|
|
|
2
2
|
import { Clipboard } from '@angular/cdk/clipboard';
|
|
3
3
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
4
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
5
|
+
import * as i1 from '@angular/cdk/drag-drop';
|
|
6
|
+
import { CdkDropList, CdkDrag, CDK_DRAG_HANDLE, CdkDragPreview, CdkDragHandle } from '@angular/cdk/drag-drop';
|
|
5
7
|
import { Platform } from '@angular/cdk/platform';
|
|
6
8
|
import * as i0 from '@angular/core';
|
|
7
|
-
import { forwardRef, inject, ElementRef, ChangeDetectorRef, output, EventEmitter, input, booleanAttribute, DestroyRef, HostAttributeToken, Input, Output, ContentChildren, ViewEncapsulation, ChangeDetectionStrategy, Component, Directive,
|
|
9
|
+
import { forwardRef, inject, ElementRef, ChangeDetectorRef, output, EventEmitter, input, booleanAttribute, DestroyRef, NgZone, signal, HostAttributeToken, effect, isDevMode, Input, Output, ContentChildren, ViewEncapsulation, ChangeDetectionStrategy, Component, Directive, contentChild, contentChildren, viewChild, ViewChild, ContentChild, NgModule } from '@angular/core';
|
|
8
10
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
9
11
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
10
|
-
import { MultipleMode, FocusKeyManager, SPACE, ENTER, LEFT_ARROW, RIGHT_ARROW, isVerticalMovement, isSelectAll, isCopy, TAB, DOWN_ARROW, UP_ARROW, HOME, END, PAGE_UP, PAGE_DOWN, hasModifierKey, toggleSelectAll, KbqOptgroup, KbqOptionActionComponent, KbqPseudoCheckbox, KbqActionContainer, KBQ_OPTION_ACTION_PARENT, KBQ_TITLE_TEXT_REF, KbqLineSetter, KbqLine, KbqOptionModule, KbqPseudoCheckboxModule } from '@koobiq/components/core';
|
|
12
|
+
import { MultipleMode, getKbqSelectNonFunctionValueError, KBQ_WINDOW, FocusKeyManager, SPACE, ENTER, LEFT_ARROW, RIGHT_ARROW, isVerticalMovement, isSelectAll, isCopy, TAB, DOWN_ARROW, UP_ARROW, HOME, END, PAGE_UP, PAGE_DOWN, hasModifierKey, runCompareWith, toggleSelectAll, KbqOptgroup, KbqOptionActionComponent, KbqPseudoCheckbox, kbqFocusOptionActionOnTab, KbqActionContainer, KBQ_OPTION_ACTION_PARENT, KBQ_TITLE_TEXT_REF, KbqLineSetter, KbqLine, KbqOptionModule, KbqPseudoCheckboxModule } from '@koobiq/components/core';
|
|
11
13
|
import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
|
|
12
14
|
import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
|
|
13
|
-
import { merge, Subject } from 'rxjs';
|
|
14
|
-
import { startWith, take } from 'rxjs/operators';
|
|
15
|
+
import { merge, fromEvent, Subject } from 'rxjs';
|
|
16
|
+
import { startWith, auditTime, switchMap, take } from 'rxjs/operators';
|
|
15
17
|
import { KbqIconModule } from '@koobiq/components/icon';
|
|
16
18
|
|
|
19
|
+
/** How long consecutive `window.resize` ticks are collapsed before the scroll size is recalculated. */
|
|
20
|
+
const RESIZE_AUDIT_TIME = 100;
|
|
21
|
+
/**
|
|
22
|
+
* Marks the dragged option while the pointer is over no list that would take it. Styling reads it from the
|
|
23
|
+
* body, which is what resolves the cursor once the options are out of hit testing.
|
|
24
|
+
*/
|
|
25
|
+
const DROP_FORBIDDEN_CLASS = 'kbq-list-option_drop-forbidden';
|
|
26
|
+
/**
|
|
27
|
+
* Put on the drag preview whichever shape it takes, so styling has one hook that survives the
|
|
28
|
+
* `dragPreview` mode switch.
|
|
29
|
+
*/
|
|
30
|
+
const DRAG_PREVIEW_CLASS = 'kbq-list-drag-preview';
|
|
17
31
|
const KBQ_SELECTION_LIST_VALUE_ACCESSOR = {
|
|
18
32
|
provide: NG_VALUE_ACCESSOR,
|
|
19
33
|
useExisting: forwardRef(() => KbqListSelection),
|
|
@@ -47,27 +61,46 @@ class KbqListCopyEvent {
|
|
|
47
61
|
}
|
|
48
62
|
}
|
|
49
63
|
class KbqListSelection {
|
|
50
|
-
|
|
51
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Whether clicking an option clears the rest of the selection.
|
|
66
|
+
* Stays an accessor input: the constructor turns it off for `multiple="checkbox"`, which a
|
|
67
|
+
* signal `input()` cannot do (inputs are read-only from inside the component).
|
|
68
|
+
*/
|
|
52
69
|
get autoSelect() {
|
|
53
70
|
return this._autoSelect;
|
|
54
71
|
}
|
|
55
72
|
set autoSelect(value) {
|
|
56
73
|
this._autoSelect = coerceBooleanProperty(value);
|
|
57
74
|
}
|
|
58
|
-
|
|
59
|
-
|
|
75
|
+
/**
|
|
76
|
+
* Whether the last selected option can be deselected.
|
|
77
|
+
* Stays an accessor input for the same reason as {@link autoSelect}.
|
|
78
|
+
*/
|
|
60
79
|
get noUnselectLast() {
|
|
61
80
|
return this._noUnselectLast;
|
|
62
81
|
}
|
|
63
82
|
set noUnselectLast(value) {
|
|
64
83
|
this._noUnselectLast = coerceBooleanProperty(value);
|
|
65
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Whether options can be reordered by dragging them.
|
|
87
|
+
* Reordering never mutates the data — handle the `dropped` event and move the item yourself.
|
|
88
|
+
*/
|
|
89
|
+
get draggable() {
|
|
90
|
+
return this._draggable && !this.disabled;
|
|
91
|
+
}
|
|
92
|
+
set draggable(value) {
|
|
93
|
+
this._draggable = value;
|
|
94
|
+
this.syncDraggableState();
|
|
95
|
+
}
|
|
66
96
|
get multiple() {
|
|
67
97
|
return !!this.multipleMode;
|
|
68
98
|
}
|
|
69
|
-
|
|
70
|
-
|
|
99
|
+
/**
|
|
100
|
+
* Tab index of the list.
|
|
101
|
+
* Stays an accessor input: the getter is derived from {@link disabled} and the setter also
|
|
102
|
+
* records the user-provided value, which the roving focus logic restores after `tabOut`.
|
|
103
|
+
*/
|
|
71
104
|
get tabIndex() {
|
|
72
105
|
return this.disabled ? -1 : this._tabIndex;
|
|
73
106
|
}
|
|
@@ -75,14 +108,18 @@ class KbqListSelection {
|
|
|
75
108
|
this.userTabIndex = value;
|
|
76
109
|
this._tabIndex = value;
|
|
77
110
|
}
|
|
78
|
-
|
|
79
|
-
|
|
111
|
+
/**
|
|
112
|
+
* Whether the list is disabled.
|
|
113
|
+
* Stays an accessor input: `setDisabledState` writes it from the `ControlValueAccessor`, which a
|
|
114
|
+
* signal `input()` cannot do.
|
|
115
|
+
*/
|
|
80
116
|
get disabled() {
|
|
81
117
|
return this._disabled;
|
|
82
118
|
}
|
|
83
119
|
set disabled(value) {
|
|
84
120
|
if (value !== this.disabled) {
|
|
85
121
|
this._disabled = value;
|
|
122
|
+
this.syncDraggableState();
|
|
86
123
|
}
|
|
87
124
|
}
|
|
88
125
|
get showCheckbox() {
|
|
@@ -100,9 +137,35 @@ class KbqListSelection {
|
|
|
100
137
|
this.clipboard = inject(Clipboard, { optional: true });
|
|
101
138
|
this.focusMonitor = inject(FocusMonitor);
|
|
102
139
|
this.onSelectAll = output();
|
|
140
|
+
/**
|
|
141
|
+
* Kept as a decorator `@Output()`/`EventEmitter` on purpose: `copyActiveOption` branches on
|
|
142
|
+
* `onCopy.observed` to decide between the consumer handler and the built-in clipboard copy.
|
|
143
|
+
* `output()` exposes no subscriber introspection, so migrating it would silently run both
|
|
144
|
+
* paths for every existing `(onCopy)` consumer. Mirrors `KbqTreeSelection.onCopy`.
|
|
145
|
+
*/
|
|
103
146
|
this.onCopy = new EventEmitter();
|
|
104
147
|
this._autoSelect = true;
|
|
105
148
|
this._noUnselectLast = true;
|
|
149
|
+
this._draggable = false;
|
|
150
|
+
/**
|
|
151
|
+
* Lists that options of this list can be moved into. Accepts `KbqListSelection` instances or the
|
|
152
|
+
* `id` of another list. `cdkDropListGroup` on a common ancestor connects lists automatically.
|
|
153
|
+
*/
|
|
154
|
+
this.connectedTo = input([], ...(ngDevMode ? [{ debugName: "connectedTo" }] : []));
|
|
155
|
+
/**
|
|
156
|
+
* What the option's floating copy looks like while it is dragged. Defaults to `text`: a compact
|
|
157
|
+
* plate carrying the option's label and caption, capped at a readable width. Use `full` to drag a
|
|
158
|
+
* clone of the whole row, checkbox, icons and action button included.
|
|
159
|
+
*/
|
|
160
|
+
this.dragPreview = input('text', ...(ngDevMode ? [{ debugName: "dragPreview" }] : []));
|
|
161
|
+
/**
|
|
162
|
+
* Whether a draggable option shows the grab cursor over the whole row. Defaults to `auto`, which
|
|
163
|
+
* leaves the row the cursor it has anyway. Use `grab` where the whole row is meant to read as a
|
|
164
|
+
* handle. An option carrying a projected `cdkDragHandle` ignores this — the handle keeps the grab.
|
|
165
|
+
*/
|
|
166
|
+
this.dragCursor = input('auto', ...(ngDevMode ? [{ debugName: "dragCursor" }] : []));
|
|
167
|
+
/** Emits when an option changes its position by dragging. */
|
|
168
|
+
this.dropped = output();
|
|
106
169
|
/** When `true`, a repeated Ctrl/Cmd+A deselects all options. Off by default (Ctrl+A only selects). */
|
|
107
170
|
this.selectAllToggle = input(false, ...(ngDevMode ? [{ debugName: "selectAllToggle", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
108
171
|
this.horizontal = input(false, ...(ngDevMode ? [{ debugName: "horizontal", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
@@ -112,17 +175,52 @@ class KbqListSelection {
|
|
|
112
175
|
* Function used for comparing an option against the selected value when determining which
|
|
113
176
|
* options should appear as selected. The first argument is the value of an options. The second
|
|
114
177
|
* one is a value from the selected value. A boolean must be returned.
|
|
178
|
+
*
|
|
179
|
+
* Bind a stable reference — a field or a bound method. An expression that builds a new function on
|
|
180
|
+
* every change detection pass makes the list re-resolve every value against every option each pass.
|
|
115
181
|
*/
|
|
116
|
-
this.compareWith = input((a1, a2) => a1 === a2, ...(ngDevMode ? [{ debugName: "compareWith"
|
|
182
|
+
this.compareWith = input((a1, a2) => a1 === a2, ...(ngDevMode ? [{ debugName: "compareWith",
|
|
183
|
+
// Mirrors `KbqSelect`, which throws from its setter: a comparator that is not callable would
|
|
184
|
+
// otherwise surface as an empty selection and a warning per option.
|
|
185
|
+
transform: (fn) => {
|
|
186
|
+
if (typeof fn !== 'function') {
|
|
187
|
+
throw getKbqSelectNonFunctionValueError();
|
|
188
|
+
}
|
|
189
|
+
return fn;
|
|
190
|
+
} }] : [{
|
|
191
|
+
// Mirrors `KbqSelect`, which throws from its setter: a comparator that is not callable would
|
|
192
|
+
// otherwise surface as an empty selection and a warning per option.
|
|
193
|
+
transform: (fn) => {
|
|
194
|
+
if (typeof fn !== 'function') {
|
|
195
|
+
throw getKbqSelectNonFunctionValueError();
|
|
196
|
+
}
|
|
197
|
+
return fn;
|
|
198
|
+
}
|
|
199
|
+
}]));
|
|
117
200
|
this.userTabIndex = null;
|
|
118
201
|
// Emits a change event whenever the selected state of an option changes.
|
|
119
202
|
this.selectionChange = output();
|
|
120
203
|
this.destroyRef = inject(DestroyRef);
|
|
121
204
|
this.platform = inject(Platform);
|
|
205
|
+
this.ngZone = inject(NgZone);
|
|
206
|
+
this.window = inject(KBQ_WINDOW);
|
|
207
|
+
this.dropList = inject(CdkDropList, { host: true });
|
|
208
|
+
/**
|
|
209
|
+
* Distance from the list's content box to the gap the dragged option would land in, or `null`
|
|
210
|
+
* while no drag is hovering this list. Drives the insertion indicator.
|
|
211
|
+
*/
|
|
212
|
+
this.dropIndicatorOffset = signal(null, ...(ngDevMode ? [{ debugName: "dropIndicatorOffset" }] : []));
|
|
213
|
+
/** Gap the indicator currently marks, used as `currentIndex` when the drag is dropped here. */
|
|
214
|
+
this.dropIndex = null;
|
|
215
|
+
this.hasWarnedOnDragContainer = false;
|
|
216
|
+
/** Whether a deferred {@link initializeSelection} pass is already queued for this microtask turn. */
|
|
217
|
+
this.pendingSelectionInit = false;
|
|
218
|
+
/** Whether a form control has ever written to the list, i.e. whether {@link _value} speaks for a model. */
|
|
219
|
+
this.hasWrittenValue = false;
|
|
122
220
|
// View to model callback that should be called if the list or its options lost focus.
|
|
123
221
|
this.onTouched = () => { };
|
|
124
222
|
// View to model callback that should be called whenever the selected options change.
|
|
125
|
-
this.onChange = (
|
|
223
|
+
this.onChange = () => { };
|
|
126
224
|
const multiple = inject(new HostAttributeToken('multiple'), { optional: true });
|
|
127
225
|
if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {
|
|
128
226
|
this.multipleMode = multiple;
|
|
@@ -135,6 +233,13 @@ class KbqListSelection {
|
|
|
135
233
|
this.noUnselectLast = false;
|
|
136
234
|
}
|
|
137
235
|
this.selectionModel = new SelectionModel(this.multiple);
|
|
236
|
+
// A different comparator means a different set of options can match the model value. `compareWith`
|
|
237
|
+
// is a signal input, so there is no setter to re-run matching from the way `KbqSelect` does.
|
|
238
|
+
effect(() => {
|
|
239
|
+
this.compareWith();
|
|
240
|
+
this.initializeSelection();
|
|
241
|
+
});
|
|
242
|
+
this.setupDropListInitialProperties();
|
|
138
243
|
}
|
|
139
244
|
ngAfterContentInit() {
|
|
140
245
|
this.keyManager = new FocusKeyManager(this.options)
|
|
@@ -148,9 +253,13 @@ class KbqListSelection {
|
|
|
148
253
|
this.changeDetectorRef.markForCheck();
|
|
149
254
|
});
|
|
150
255
|
});
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
256
|
+
// The initial value is applied by the `options.changes` subscription below, which starts with the
|
|
257
|
+
// options already present. Applying it synchronously here instead would settle the selection after
|
|
258
|
+
// the parent view was checked and raise NG0100.
|
|
259
|
+
// Repairs each option's `_selected` mirror after the model changes on its own — single-selection
|
|
260
|
+
// mode drops the previous winner whenever another option is selected. Deliberately not moved
|
|
261
|
+
// earlier: writes that happen during input binding would flip a host binding mid-pass (NG0100).
|
|
262
|
+
// `setSelected` consults the model too, so a write that lands before this is still recoverable.
|
|
154
263
|
this.selectionModel.changed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {
|
|
155
264
|
for (const item of event.added) {
|
|
156
265
|
item.selected = true;
|
|
@@ -159,14 +268,23 @@ class KbqListSelection {
|
|
|
159
268
|
item.selected = false;
|
|
160
269
|
}
|
|
161
270
|
});
|
|
271
|
+
this.listenToOptionsFocus();
|
|
162
272
|
this.options.changes.pipe(startWith(null), takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
163
|
-
this.resetOptions();
|
|
164
273
|
this.updateTabIndex();
|
|
165
274
|
this.initializeSelection();
|
|
166
275
|
});
|
|
167
276
|
if (!this.platform.isBrowser)
|
|
168
277
|
return;
|
|
278
|
+
this.warnOnUnsupportedDragContainer();
|
|
169
279
|
this.updateScrollSize();
|
|
280
|
+
// `updateScrollSize` only feeds the key manager's page size — nothing rendered depends on it,
|
|
281
|
+
// so the listener stays outside the zone and never schedules change detection. `auditTime`
|
|
282
|
+
// collapses a resize drag into one pair of forced layout reads per interval.
|
|
283
|
+
this.ngZone.runOutsideAngular(() => {
|
|
284
|
+
fromEvent(this.window, 'resize')
|
|
285
|
+
.pipe(auditTime(RESIZE_AUDIT_TIME), takeUntilDestroyed(this.destroyRef))
|
|
286
|
+
.subscribe(() => this.updateScrollSize());
|
|
287
|
+
});
|
|
170
288
|
}
|
|
171
289
|
ngAfterViewInit() {
|
|
172
290
|
this.focusMonitor.monitor(this.elementRef, true);
|
|
@@ -185,6 +303,7 @@ class KbqListSelection {
|
|
|
185
303
|
this.keyManager.setFirstItemActive();
|
|
186
304
|
}
|
|
187
305
|
}
|
|
306
|
+
/** Clears the active key-manager item (unless an option is still focused) and marks the list as touched. */
|
|
188
307
|
blur() {
|
|
189
308
|
if (!this.hasFocusedOption()) {
|
|
190
309
|
this.keyManager.setActiveItem(-1);
|
|
@@ -192,10 +311,12 @@ class KbqListSelection {
|
|
|
192
311
|
this.onTouched();
|
|
193
312
|
this.changeDetectorRef.markForCheck();
|
|
194
313
|
}
|
|
314
|
+
/** Selects every non-disabled option and reports the new value to the `ControlValueAccessor`. */
|
|
195
315
|
selectAll() {
|
|
196
316
|
this.options.forEach((option) => option.setSelected(true));
|
|
197
317
|
this.reportValueChange();
|
|
198
318
|
}
|
|
319
|
+
/** Deselects every option and reports the new value to the `ControlValueAccessor`. */
|
|
199
320
|
deselectAll() {
|
|
200
321
|
this.options.forEach((option) => option.setSelected(false));
|
|
201
322
|
this.reportValueChange();
|
|
@@ -204,7 +325,13 @@ class KbqListSelection {
|
|
|
204
325
|
if (this.horizontal() || !this.options.first) {
|
|
205
326
|
return;
|
|
206
327
|
}
|
|
207
|
-
|
|
328
|
+
const optionHeight = this.options.first.getHeight();
|
|
329
|
+
// `getHeight()` is 0 whenever the option is not laid out (SSR, jsdom, `display: none`);
|
|
330
|
+
// dividing by it would hand the key manager a `NaN` page size.
|
|
331
|
+
if (!optionHeight) {
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
this.keyManager.withScrollSize(Math.floor(this.getHeight() / optionHeight));
|
|
208
335
|
}
|
|
209
336
|
setSelectedOptionsByClick(option, shiftKey, ctrlKey) {
|
|
210
337
|
if (shiftKey && this.multiple) {
|
|
@@ -248,10 +375,12 @@ class KbqListSelection {
|
|
|
248
375
|
const options = this.options.toArray();
|
|
249
376
|
let fromIndex = this.keyManager.previousActiveItemIndex;
|
|
250
377
|
let toIndex = (this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex);
|
|
251
|
-
|
|
252
|
-
|
|
378
|
+
// `previousActiveItemIndex` stays -1 until the key manager has moved at least once, so a
|
|
379
|
+
// shift + click before any keyboard navigation has no anchor to extend the range from.
|
|
380
|
+
if (toIndex === fromIndex || !this.isValidIndex(fromIndex) || !this.isValidIndex(toIndex)) {
|
|
253
381
|
return;
|
|
254
382
|
}
|
|
383
|
+
const selectedOptionState = options[fromIndex].selected;
|
|
255
384
|
if (fromIndex > toIndex) {
|
|
256
385
|
[fromIndex, toIndex] = [toIndex, fromIndex];
|
|
257
386
|
}
|
|
@@ -267,9 +396,12 @@ class KbqListSelection {
|
|
|
267
396
|
}
|
|
268
397
|
// Implemented as part of ControlValueAccessor.
|
|
269
398
|
writeValue(values) {
|
|
270
|
-
this.
|
|
399
|
+
this.hasWrittenValue = true;
|
|
400
|
+
// A form control may push a bare value instead of an array; normalize it here so that
|
|
401
|
+
// `_value` always matches its declared type and stays safe to iterate over.
|
|
402
|
+
this._value = values == null ? null : Array.isArray(values) ? values : [values];
|
|
271
403
|
if (this.options) {
|
|
272
|
-
this.setOptionsFromValues(
|
|
404
|
+
this.setOptionsFromValues(this._value ?? []);
|
|
273
405
|
}
|
|
274
406
|
}
|
|
275
407
|
// Implemented as part of ControlValueAccessor.
|
|
@@ -282,10 +414,12 @@ class KbqListSelection {
|
|
|
282
414
|
}
|
|
283
415
|
// Implemented as a part of ControlValueAccessor.
|
|
284
416
|
setDisabledState(isDisabled) {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
417
|
+
// `KbqListOption.disabled` reads the list through its getter, so disabling the list cascades
|
|
418
|
+
// to every option without overwriting their own `disabled` inputs.
|
|
419
|
+
this.disabled = isDisabled;
|
|
420
|
+
this.changeDetectorRef.markForCheck();
|
|
288
421
|
}
|
|
422
|
+
/** Values of the currently selected options. */
|
|
289
423
|
getSelectedOptionValues() {
|
|
290
424
|
return this.options.filter((option) => option.selected).map((option) => option.value);
|
|
291
425
|
}
|
|
@@ -294,7 +428,7 @@ class KbqListSelection {
|
|
|
294
428
|
const focusedIndex = this.keyManager.activeItemIndex;
|
|
295
429
|
if (focusedIndex != null && this.isValidIndex(focusedIndex)) {
|
|
296
430
|
const focusedOption = this.options.toArray()[focusedIndex];
|
|
297
|
-
if (focusedOption && this.canDeselectLast(focusedOption)) {
|
|
431
|
+
if (focusedOption && !focusedOption.disabled && this.canDeselectLast(focusedOption)) {
|
|
298
432
|
focusedOption.toggle();
|
|
299
433
|
// Emit a change event because the focused option changed its state through user interaction.
|
|
300
434
|
this.emitChangeEvent(focusedOption);
|
|
@@ -302,12 +436,16 @@ class KbqListSelection {
|
|
|
302
436
|
}
|
|
303
437
|
}
|
|
304
438
|
}
|
|
439
|
+
/** Whether `listOption` is allowed to be deselected, given {@link noUnselectLast}. */
|
|
305
440
|
canDeselectLast(listOption) {
|
|
306
441
|
return !(this.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);
|
|
307
442
|
}
|
|
308
|
-
/**
|
|
443
|
+
/**
|
|
444
|
+
* Rendered height of the element, or 0 when it is not laid out (SSR, jsdom, `display: none`).
|
|
445
|
+
* @docs-private
|
|
446
|
+
*/
|
|
309
447
|
getHeight() {
|
|
310
|
-
return this.elementRef.nativeElement.getClientRects()[0]?.height ?? 0;
|
|
448
|
+
return this.elementRef.nativeElement.getClientRects()?.[0]?.height ?? 0;
|
|
311
449
|
}
|
|
312
450
|
// Removes an option from the selection list and updates the active item.
|
|
313
451
|
removeOptionFromList(option) {
|
|
@@ -345,10 +483,10 @@ class KbqListSelection {
|
|
|
345
483
|
this.keyManager.tabOut.next();
|
|
346
484
|
return;
|
|
347
485
|
}
|
|
348
|
-
else if (keyCode === DOWN_ARROW) {
|
|
486
|
+
else if (this.horizontal() ? keyCode === RIGHT_ARROW : keyCode === DOWN_ARROW) {
|
|
349
487
|
this.keyManager.setNextItemActive();
|
|
350
488
|
}
|
|
351
|
-
else if (keyCode === UP_ARROW) {
|
|
489
|
+
else if (this.horizontal() ? keyCode === LEFT_ARROW : keyCode === UP_ARROW) {
|
|
352
490
|
this.keyManager.setPreviousItemActive();
|
|
353
491
|
}
|
|
354
492
|
else if (keyCode === HOME) {
|
|
@@ -363,12 +501,25 @@ class KbqListSelection {
|
|
|
363
501
|
else if (keyCode === PAGE_DOWN) {
|
|
364
502
|
this.keyManager.setNextPageItemActive();
|
|
365
503
|
}
|
|
366
|
-
|
|
504
|
+
else {
|
|
505
|
+
// Everything the list does not navigate on itself goes to the key manager, which is what
|
|
506
|
+
// drives type-ahead. Arrow keys never reach it — the branches above own them — so the
|
|
507
|
+
// manager's own orientation config cannot double-handle them.
|
|
508
|
+
this.keyManager.onKeydown(event);
|
|
509
|
+
}
|
|
510
|
+
if (this.keyManager.activeItem && this.isNavigationKey(event)) {
|
|
367
511
|
this.setSelectedOptionsByKey(this.keyManager.activeItem, hasModifierKey(event, 'shiftKey'),
|
|
368
512
|
// ctrlKey is for Windows, metaKey is for MacOS
|
|
369
513
|
hasModifierKey(event, 'ctrlKey', 'metaKey'));
|
|
370
514
|
}
|
|
371
515
|
}
|
|
516
|
+
/** Whether the key just handled moved the active option, taking the list orientation into account. */
|
|
517
|
+
isNavigationKey(event) {
|
|
518
|
+
if (this.horizontal() && [LEFT_ARROW, RIGHT_ARROW].includes(event.keyCode)) {
|
|
519
|
+
return true;
|
|
520
|
+
}
|
|
521
|
+
return isVerticalMovement(event);
|
|
522
|
+
}
|
|
372
523
|
// Reports a value change to the ControlValueAccessor
|
|
373
524
|
reportValueChange() {
|
|
374
525
|
if (this.options) {
|
|
@@ -382,11 +533,22 @@ class KbqListSelection {
|
|
|
382
533
|
this.selectionChange.emit(new KbqListSelectionChange(this, option));
|
|
383
534
|
}
|
|
384
535
|
initializeSelection() {
|
|
536
|
+
// Several triggers land in the same turn — `options.changes`, the comparator effect, a form write.
|
|
537
|
+
// They would all apply the identical value, so the first one queued does the work for all of them.
|
|
538
|
+
if (this.pendingSelectionInit) {
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
this.pendingSelectionInit = true;
|
|
385
542
|
// Defer setting the value in order to avoid the "Expression
|
|
386
543
|
// has changed after it was checked" errors from Angular.
|
|
387
544
|
Promise.resolve().then(() => {
|
|
388
|
-
|
|
389
|
-
|
|
545
|
+
this.pendingSelectionInit = false;
|
|
546
|
+
// `options` is a content query: the comparator effect can reach this before it has settled.
|
|
547
|
+
// Once a form control has written, an empty value applies as an empty selection instead of
|
|
548
|
+
// being skipped, so that swapping the comparator also clears what the previous one matched.
|
|
549
|
+
// Without a control the list has no model to speak for, and `[selected]` options stand.
|
|
550
|
+
if (this.options && (this._value || this.hasWrittenValue)) {
|
|
551
|
+
this.setOptionsFromValues(this._value ?? []);
|
|
390
552
|
}
|
|
391
553
|
});
|
|
392
554
|
}
|
|
@@ -395,30 +557,24 @@ class KbqListSelection {
|
|
|
395
557
|
this._tabIndex = this.userTabIndex || (this.options.length === 0 ? -1 : 0);
|
|
396
558
|
}
|
|
397
559
|
onCopyDefaultHandler() {
|
|
398
|
-
this.clipboard?.copy(this.keyManager.activeItem.value);
|
|
399
|
-
}
|
|
400
|
-
resetOptions() {
|
|
401
|
-
this.dropSubscriptions();
|
|
402
|
-
this.listenToOptionsFocus();
|
|
403
|
-
}
|
|
404
|
-
dropSubscriptions() {
|
|
405
|
-
if (this.optionFocusSubscription) {
|
|
406
|
-
this.optionFocusSubscription.unsubscribe();
|
|
407
|
-
this.optionFocusSubscription = null;
|
|
408
|
-
}
|
|
409
|
-
if (this.optionBlurSubscription) {
|
|
410
|
-
this.optionBlurSubscription.unsubscribe();
|
|
411
|
-
this.optionBlurSubscription = null;
|
|
412
|
-
}
|
|
560
|
+
this.clipboard?.copy(String(this.keyManager.activeItem.value));
|
|
413
561
|
}
|
|
562
|
+
/**
|
|
563
|
+
* Re-points the focus/blur streams at the current options every time the query list changes.
|
|
564
|
+
* `switchMap` tears down the previous `merge` for us, so no manual subscription bookkeeping.
|
|
565
|
+
*/
|
|
414
566
|
listenToOptionsFocus() {
|
|
415
|
-
this.
|
|
567
|
+
this.options.changes
|
|
568
|
+
.pipe(startWith(null), switchMap(() => this.optionFocusChanges), takeUntilDestroyed(this.destroyRef))
|
|
569
|
+
.subscribe((event) => {
|
|
416
570
|
const index = this.options.toArray().indexOf(event.option);
|
|
417
571
|
if (this.isValidIndex(index)) {
|
|
418
572
|
this.keyManager.updateActiveItem(index);
|
|
419
573
|
}
|
|
420
574
|
});
|
|
421
|
-
this.
|
|
575
|
+
this.options.changes
|
|
576
|
+
.pipe(startWith(null), switchMap(() => this.optionBlurChanges), takeUntilDestroyed(this.destroyRef))
|
|
577
|
+
.subscribe(() => this.blur());
|
|
422
578
|
}
|
|
423
579
|
/** Checks whether any of the options is focused. */
|
|
424
580
|
hasFocusedOption() {
|
|
@@ -426,15 +582,19 @@ class KbqListSelection {
|
|
|
426
582
|
}
|
|
427
583
|
// Returns the option with the specified value.
|
|
428
584
|
getOptionByValue(value) {
|
|
429
|
-
|
|
585
|
+
const compareWith = this.compareWith();
|
|
586
|
+
// `null`/`undefined` are left to the comparator rather than rejected here: an option declared
|
|
587
|
+
// without a `[value]` reports `undefined` back through the form control, and has to be able to
|
|
588
|
+
// find itself again when that value is re-applied.
|
|
589
|
+
return this.options.find((option) => runCompareWith(compareWith, option.value, value));
|
|
430
590
|
}
|
|
431
591
|
// Sets the selected options based on the specified values.
|
|
432
592
|
setOptionsFromValues(values) {
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
593
|
+
// Resolved up front and applied as a delta: `setSelected` early-returns on an unchanged state, so
|
|
594
|
+
// re-applying the same value writes nothing to the `SelectionModel` and schedules no change
|
|
595
|
+
// detection. Deselecting everything first would churn both on every call.
|
|
596
|
+
const selection = new Set(values.map((value) => this.getOptionByValue(value)));
|
|
597
|
+
this.options.forEach((option) => option.setSelected(selection.has(option)));
|
|
438
598
|
}
|
|
439
599
|
/**
|
|
440
600
|
* Utility to ensure all indexes are valid.
|
|
@@ -448,6 +608,194 @@ class KbqListSelection {
|
|
|
448
608
|
getOptionIndex(option) {
|
|
449
609
|
return this.options.toArray().indexOf(option);
|
|
450
610
|
}
|
|
611
|
+
setupDropListInitialProperties() {
|
|
612
|
+
// Lets the `dropped` handler map a `CdkDropList` back to the list that owns it.
|
|
613
|
+
this.dropList.data = this;
|
|
614
|
+
// The drop position is shown by an insertion indicator instead of by opening a gap, so CDK must
|
|
615
|
+
// not sort: the options stay put and the dragged one keeps its slot as a faded placeholder.
|
|
616
|
+
// Both flags are re-read from the directive on every drag start, so assigning once is enough.
|
|
617
|
+
this.dropList.sortingDisabled = true;
|
|
618
|
+
// Without an anchor the placeholder follows the option into the connected list, leaving the
|
|
619
|
+
// origin list with a hole instead of the faded row.
|
|
620
|
+
this.dropList.hasAnchor = true;
|
|
621
|
+
this.syncDraggableState();
|
|
622
|
+
effect(() => {
|
|
623
|
+
this.dropList.orientation = this.horizontal() ? 'horizontal' : 'vertical';
|
|
624
|
+
// `CdkDropList` resolves its siblings on every drag start, so a late assignment is picked up.
|
|
625
|
+
this.dropList.connectedTo = this.resolveConnectedDropLists();
|
|
626
|
+
});
|
|
627
|
+
// `enter()` is not gated on `sortingDisabled`, so the placeholder follows the option into
|
|
628
|
+
// whichever list it is dragged over and pushes that list's options apart. Only the list the
|
|
629
|
+
// drag started in may show it — there it is the faded row left behind. Toggled imperatively
|
|
630
|
+
// because the placeholder is already in the DOM by the time this runs, and waiting for change
|
|
631
|
+
// detection would let the shifted layout paint for a frame.
|
|
632
|
+
this.dropList.entered.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(({ item }) => {
|
|
633
|
+
item.getPlaceholderElement().classList.toggle('kbq-list-option_foreign-placeholder', item.dropContainer.data !== this);
|
|
634
|
+
});
|
|
635
|
+
this.dropList.dropped
|
|
636
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
637
|
+
.subscribe(({ previousIndex, previousContainer, container, item, event }) => {
|
|
638
|
+
const { option } = item.data;
|
|
639
|
+
const target = container.data;
|
|
640
|
+
// Sorting is disabled, so CDK reports the untouched starting index. The gap the indicator
|
|
641
|
+
// marked is the real target; without one the pointer was either outside every list we know
|
|
642
|
+
// or over the place the option already occupies, and both resolve to a move that changes
|
|
643
|
+
// nothing.
|
|
644
|
+
const currentIndex = target.dropIndex ?? previousIndex;
|
|
645
|
+
this.clearDropIndicators(option);
|
|
646
|
+
this.dropped.emit({
|
|
647
|
+
option,
|
|
648
|
+
previousIndex,
|
|
649
|
+
currentIndex,
|
|
650
|
+
previousContainer: previousContainer.data,
|
|
651
|
+
container: target,
|
|
652
|
+
event
|
|
653
|
+
});
|
|
654
|
+
this.followMovedOption(option, target);
|
|
655
|
+
});
|
|
656
|
+
}
|
|
657
|
+
/**
|
|
658
|
+
* `CdkDropList` numbers only the options it has rendered, so inside a virtual scroll the indices
|
|
659
|
+
* `dropped` reports do not address the consumer's backing array and the move silently lands on the
|
|
660
|
+
* wrong item. Warn instead of letting it pass unnoticed.
|
|
661
|
+
*/
|
|
662
|
+
warnOnUnsupportedDragContainer() {
|
|
663
|
+
// Runs on every `draggable`/`disabled` change as well as on init, so it has to tolerate being
|
|
664
|
+
// called before the content children exist and to stay quiet once it has had its say.
|
|
665
|
+
if (this.hasWarnedOnDragContainer || !isDevMode() || !this.draggable || !this.platform.isBrowser) {
|
|
666
|
+
return;
|
|
667
|
+
}
|
|
668
|
+
const insideVirtualScroll = !!this.elementRef.nativeElement.querySelector('cdk-virtual-scroll-viewport');
|
|
669
|
+
if (insideVirtualScroll) {
|
|
670
|
+
// eslint-disable-next-line no-console
|
|
671
|
+
console.warn('KbqListSelection: `draggable` is not supported inside `cdk-virtual-scroll-viewport`. The ' +
|
|
672
|
+
'indices reported by `dropped` count only the rendered options.');
|
|
673
|
+
}
|
|
674
|
+
this.hasWarnedOnDragContainer = insideVirtualScroll;
|
|
675
|
+
}
|
|
676
|
+
/** Keeps the underlying CDK directives in sync with the resolved `draggable` state. */
|
|
677
|
+
syncDraggableState() {
|
|
678
|
+
this.dropList.disabled = !this.draggable;
|
|
679
|
+
this.options?.forEach((option) => option.syncDraggableState());
|
|
680
|
+
this.warnOnUnsupportedDragContainer();
|
|
681
|
+
this.changeDetectorRef.markForCheck();
|
|
682
|
+
}
|
|
683
|
+
normalizeConnectedTo() {
|
|
684
|
+
const connectedTo = this.connectedTo();
|
|
685
|
+
return Array.isArray(connectedTo) ? connectedTo : [connectedTo];
|
|
686
|
+
}
|
|
687
|
+
resolveConnectedLists() {
|
|
688
|
+
return this.normalizeConnectedTo().filter((item) => typeof item !== 'string');
|
|
689
|
+
}
|
|
690
|
+
resolveConnectedDropLists() {
|
|
691
|
+
return this.normalizeConnectedTo().map((item) => (typeof item === 'string' ? item : item.dropList));
|
|
692
|
+
}
|
|
693
|
+
/**
|
|
694
|
+
* Tracks the dragged option and paints the insertion indicator in whichever list the pointer is
|
|
695
|
+
* over. Lists connected by `id` alone cannot be resolved to an instance, so they never light up.
|
|
696
|
+
*
|
|
697
|
+
* @docs-private
|
|
698
|
+
*/
|
|
699
|
+
onOptionDragMoved(option, pointer) {
|
|
700
|
+
const lists = [this, ...this.resolveConnectedLists()];
|
|
701
|
+
const hovered = lists.find((list) => list.containsPoint(pointer));
|
|
702
|
+
for (const list of lists) {
|
|
703
|
+
if (list !== hovered) {
|
|
704
|
+
list.clearDropIndicator();
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
hovered?.showDropIndicator(option, pointer);
|
|
708
|
+
// Toggled on the element rather than through a signal: `moved` arrives outside the Angular zone,
|
|
709
|
+
// and the cursor may not lag a frame behind the pointer.
|
|
710
|
+
option.getHostElement().classList.toggle(DROP_FORBIDDEN_CLASS, !hovered);
|
|
711
|
+
}
|
|
712
|
+
/**
|
|
713
|
+
* Drops the indicator in every list that could be showing one for this drag.
|
|
714
|
+
*
|
|
715
|
+
* @docs-private
|
|
716
|
+
*/
|
|
717
|
+
clearDropIndicators(option) {
|
|
718
|
+
const lists = [this, ...this.resolveConnectedLists(), option.listSelection];
|
|
719
|
+
for (const list of lists) {
|
|
720
|
+
list.clearDropIndicator();
|
|
721
|
+
}
|
|
722
|
+
option.getHostElement().classList.remove(DROP_FORBIDDEN_CLASS);
|
|
723
|
+
}
|
|
724
|
+
clearDropIndicator() {
|
|
725
|
+
this.dropIndex = null;
|
|
726
|
+
this.dropIndicatorOffset.set(null);
|
|
727
|
+
}
|
|
728
|
+
containsPoint({ x, y }) {
|
|
729
|
+
if (!this.draggable) {
|
|
730
|
+
return false;
|
|
731
|
+
}
|
|
732
|
+
const { top, right, bottom, left } = this.elementRef.nativeElement.getBoundingClientRect();
|
|
733
|
+
return x >= left && x <= right && y >= top && y <= bottom;
|
|
734
|
+
}
|
|
735
|
+
/**
|
|
736
|
+
* Resolves the gap the pointer sits in and positions the indicator on it. Geometry is read on every
|
|
737
|
+
* move rather than cached at drag start: nothing in the list reflows while dragging, but CDK
|
|
738
|
+
* auto-scrolls near the edges, which would silently invalidate a cache.
|
|
739
|
+
*/
|
|
740
|
+
showDropIndicator(dragged, pointer) {
|
|
741
|
+
const horizontal = this.horizontal();
|
|
742
|
+
// The dragged option is left out on purpose: CDK pulls its host element out of the flow, and
|
|
743
|
+
// excluding it makes the resulting gap index directly usable as `currentIndex` — that is exactly
|
|
744
|
+
// the index space `moveItemInArray` and `transferArrayItem` expect.
|
|
745
|
+
const rects = this.options
|
|
746
|
+
.filter((option) => option !== dragged)
|
|
747
|
+
.map((option) => option.getHostElement().getBoundingClientRect());
|
|
748
|
+
const startOf = (rect) => (horizontal ? rect.left : rect.top);
|
|
749
|
+
const endOf = (rect) => (horizontal ? rect.right : rect.bottom);
|
|
750
|
+
const midpointOf = (rect) => (startOf(rect) + endOf(rect)) / 2;
|
|
751
|
+
const position = horizontal ? pointer.x : pointer.y;
|
|
752
|
+
const index = rects.filter((rect) => position >= midpointOf(rect)).length;
|
|
753
|
+
// The dragged option is not among `rects`, so the gaps above and below it collapse into the one
|
|
754
|
+
// carrying its own index — the place it already occupies. Marking it would promise a move that
|
|
755
|
+
// changes nothing, so the indicator stays hidden and the drop falls back to `previousIndex`.
|
|
756
|
+
if (index === this.getOptionIndex(dragged)) {
|
|
757
|
+
this.clearDropIndicator();
|
|
758
|
+
return;
|
|
759
|
+
}
|
|
760
|
+
const container = this.elementRef.nativeElement.getBoundingClientRect();
|
|
761
|
+
const scrolled = horizontal
|
|
762
|
+
? this.elementRef.nativeElement.scrollLeft
|
|
763
|
+
: this.elementRef.nativeElement.scrollTop;
|
|
764
|
+
// The gap sits before the first option, or right after the one that precedes it. An empty list
|
|
765
|
+
// has no options to measure, so the indicator goes to the top of its content box.
|
|
766
|
+
let boundary = startOf(container);
|
|
767
|
+
if (rects.length) {
|
|
768
|
+
boundary = index === 0 ? startOf(rects[0]) : endOf(rects[index - 1]);
|
|
769
|
+
}
|
|
770
|
+
this.dropIndex = index;
|
|
771
|
+
this.dropIndicatorOffset.set(boundary - startOf(container) + scrolled);
|
|
772
|
+
this.changeDetectorRef.markForCheck();
|
|
773
|
+
}
|
|
774
|
+
/**
|
|
775
|
+
* Points the key manager at the option's new place, but only once the consumer has actually applied
|
|
776
|
+
* the move — the list never reorders its own content, so nothing happens if `dropped` is left
|
|
777
|
+
* unhandled. `setActiveItem` also re-anchors `previousActiveItemIndex`, which `options.changes`
|
|
778
|
+
* leaves behind on the slot the option came from and shift-range selection would extend from.
|
|
779
|
+
*/
|
|
780
|
+
followMovedOption(option, container) {
|
|
781
|
+
const { value } = option;
|
|
782
|
+
// Tracked on the list the move is awaited on, so that a move into a connected list does not
|
|
783
|
+
// cancel one still pending here. A move that is never applied leaves its subscription pending,
|
|
784
|
+
// so drop the previous one first.
|
|
785
|
+
container.pendingMoveSubscription?.unsubscribe();
|
|
786
|
+
container.pendingMoveSubscription = container.options.changes
|
|
787
|
+
.pipe(take(1), takeUntilDestroyed(container.destroyRef))
|
|
788
|
+
.subscribe(() => {
|
|
789
|
+
const options = container.options.toArray();
|
|
790
|
+
// Reordering within a list keeps the instance; moving between lists recreates it.
|
|
791
|
+
const index = options.includes(option)
|
|
792
|
+
? options.indexOf(option)
|
|
793
|
+
: options.findIndex((item) => runCompareWith(container.compareWith(), item.value, value));
|
|
794
|
+
if (index !== -1) {
|
|
795
|
+
container.keyManager.setActiveItem(index);
|
|
796
|
+
}
|
|
797
|
+
});
|
|
798
|
+
}
|
|
451
799
|
/**
|
|
452
800
|
* Function for handling the combination Ctrl + A (select all). By default, the internal handler is used,
|
|
453
801
|
* which toggles the selection of all non-disabled options.
|
|
@@ -487,24 +835,45 @@ class KbqListSelection {
|
|
|
487
835
|
}
|
|
488
836
|
option.preventBlur = false;
|
|
489
837
|
}
|
|
490
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
491
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
838
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqListSelection, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
839
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.30", type: KbqListSelection, isStandalone: true, selector: "kbq-list-selection", inputs: { autoSelect: { classPropertyName: "autoSelect", publicName: "autoSelect", isSignal: false, isRequired: false, transformFunction: null }, noUnselectLast: { classPropertyName: "noUnselectLast", publicName: "noUnselectLast", isSignal: false, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, connectedTo: { classPropertyName: "connectedTo", publicName: "connectedTo", isSignal: true, isRequired: false, transformFunction: null }, dragPreview: { classPropertyName: "dragPreview", publicName: "dragPreview", isSignal: true, isRequired: false, transformFunction: null }, dragCursor: { classPropertyName: "dragCursor", publicName: "dragCursor", isSignal: true, isRequired: false, transformFunction: null }, selectAllToggle: { classPropertyName: "selectAllToggle", publicName: "selectAllToggle", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null }, selectAllHandler: { classPropertyName: "selectAllHandler", publicName: "selectAllHandler", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onSelectAll: "onSelectAll", onCopy: "onCopy", dropped: "dropped", selectionChange: "selectionChange" }, host: { attributes: { "role": "listbox" }, listeners: { "keydown": "onKeyDown($event)", "focus": "focus()", "blur": "blur()" }, properties: { "class.kbq-disabled": "disabled", "class.kbq-list-selection_horizontal": "horizontal()", "class.kbq-list-selection_draggable": "draggable", "attr.aria-multiselectable": "multiple", "attr.aria-orientation": "horizontal() ? \"horizontal\" : null", "attr.aria-disabled": "disabled || null", "attr.tabindex": "tabIndex" }, classAttribute: "kbq-list-selection" }, providers: [KBQ_SELECTION_LIST_VALUE_ACCESSOR], queries: [{ propertyName: "options", predicate: i0.forwardRef(() => KbqListOption), descendants: true }], exportAs: ["kbqListSelection"], hostDirectives: [{ directive: i1.CdkDropList, inputs: ["id", "id"] }], ngImport: i0, template: `
|
|
492
840
|
<ng-content />
|
|
493
|
-
`, isInline: true, styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-list,.kbq-list-selection{display:block;outline:none}.kbq-list-item,.kbq-list-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-list-item .kbq-list-text>*,.kbq-list-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-list-item .kbq-list-text:empty,.kbq-list-option .kbq-list-text:empty{display:none}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-list-item .kbq-list-option-caption,.kbq-list-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-list-item,.kbq-list-option{border-radius:var(--kbq-size-border-radius)}.kbq-list-item:is(.kbq-selected):has(+:is(.kbq-selected)),.kbq-list-option:is(.kbq-selected):has(+:is(.kbq-selected)){border-bottom-left-radius:unset;border-bottom-right-radius:unset}.kbq-list-item:is(.kbq-selected)+:is(.kbq-selected),.kbq-list-option:is(.kbq-selected)+:is(.kbq-selected){border-top-left-radius:unset;border-top-right-radius:unset}.kbq-list-item:not(.kbq-disabled),.kbq-list-option:not(.kbq-disabled){cursor:pointer}.kbq-list-item:not(.kbq-disabled).kbq-hovered .kbq-action-container,.kbq-list-item:not(.kbq-disabled):hover .kbq-action-container,.kbq-list-item:not(.kbq-disabled).kbq-focused .kbq-action-container,.kbq-list-item:not(.kbq-disabled).kbq-action-button-focused .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-hovered .kbq-action-container,.kbq-list-option:not(.kbq-disabled):hover .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-focused .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-action-button-focused .kbq-action-container{display:flex}.kbq-list-option{--kbq-option-background: var(--kbq-list-default-container-background);background:var(--kbq-list-default-container-background)}.kbq-list-option .kbq-list-text{color:var(--kbq-list-default-text-color)}.kbq-list-option .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-color)}.kbq-list-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color)}.kbq-list-option .kbq-list-option-caption{color:var(--kbq-list-default-caption-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled),.kbq-list-option:hover:not(.kbq-disabled),.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-hover-container-background);background:var(--kbq-list-states-hover-container-background)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-text,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-text,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-hover-text-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-hover-caption-color)}.kbq-list-option.kbq-active:not(.kbq-disabled),.kbq-list-option:active:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-active-container-background);background:var(--kbq-list-states-active-container-background)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-list-text,.kbq-list-option:active:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-active-text-color)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option:active:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-active-icon-color)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option:active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-active-icon-button-color)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option:active:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-active-caption-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-selected-container-background);background:var(--kbq-list-states-selected-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-selected-text-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-selected-caption-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-states-selected-hover-container-background);background:var(--kbq-list-states-selected-hover-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-states-selected-hover-text-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-states-selected-hover-caption-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-states-selected-active-container-background);background:var(--kbq-list-states-selected-active-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-text,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-list-text{color:var(--kbq-list-states-selected-active-text-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-active-icon-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-active-icon-button-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-option-caption,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-list-option-caption{color:var(--kbq-list-states-selected-active-caption-color)}.kbq-list-option.kbq-disabled{--kbq-option-background: var(--kbq-list-states-disabled-container-background);background:var(--kbq-list-states-disabled-container-background)}.kbq-list-option.kbq-disabled .kbq-list-text{color:var(--kbq-list-states-disabled-text-color)}.kbq-list-option.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-color)}.kbq-list-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color)}.kbq-list-option.kbq-disabled .kbq-list-option-caption{color:var(--kbq-list-states-disabled-caption-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-multiple-states-selected-container-background);background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-multiple-states-selected-text-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-multiple-states-selected-hover-container-background);background:var(--kbq-list-multiple-states-selected-hover-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-multiple-states-selected-hover-text-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-multiple-states-selected-active-container-background);background:var(--kbq-list-multiple-states-selected-active-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-text,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-list-text{color:var(--kbq-list-multiple-states-selected-active-text-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-active-icon-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-active-icon-button-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-option-caption,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-active-caption-color)}.kbq-list-selection.cdk-keyboard-focused .kbq-list-option.kbq-focused{border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-list-item,.kbq-list-option{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-list-item .kbq-list-text .kbq-list-option-caption,.kbq-list-option .kbq-list-text .kbq-list-option-caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-list,.kbq-list-selection{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-size-header-padding-top: var(--kbq-size-s);--kbq-list-size-header-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-header-padding-horizontal: var(--kbq-size-m);--kbq-list-size-subheading-padding-top: var(--kbq-size-m);--kbq-list-size-subheading-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-subheading-padding-horizontal: var(--kbq-size-m);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
841
|
+
@if (dropIndicatorOffset() !== null) {
|
|
842
|
+
<!-- Purely decorative: the drop target is a pointer affordance, not a status message. -->
|
|
843
|
+
<div
|
|
844
|
+
class="kbq-list-selection__drop-indicator"
|
|
845
|
+
aria-hidden="true"
|
|
846
|
+
[style.--kbq-list-drop-indicator-offset.px]="dropIndicatorOffset()"
|
|
847
|
+
></div>
|
|
848
|
+
}
|
|
849
|
+
`, isInline: true, styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-list,.kbq-list-selection{display:block;outline:none}.kbq-list-selection_horizontal{display:flex;flex-direction:row}.kbq-list-selection_horizontal .kbq-list-option{flex:0 0 auto}.kbq-list-selection{position:relative}.kbq-list-item,.kbq-list-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-list-item .kbq-list-text>*,.kbq-list-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-list-item .kbq-list-text:empty,.kbq-list-option .kbq-list-text:empty{display:none}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-list-item .kbq-list-option-caption,.kbq-list-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-list-item,.kbq-list-option{border-width:var(--kbq-list-size-container-focus-outline-width, var(--kbq-size-3xs));border-radius:var(--kbq-size-border-radius);gap:var(--kbq-list-size-container-content-gap-horizontal, var(--kbq-size-s));padding-top:var(--kbq-list-size-container-padding-vertical, var(--kbq-size-xxs));padding-right:calc(var(--kbq-list-size-container-padding-right, var(--kbq-size-m)) - var(--kbq-list-size-container-focus-outline-width, var(--kbq-size-3xs)));padding-bottom:var(--kbq-list-size-container-padding-vertical, var(--kbq-size-xxs));padding-left:calc(var(--kbq-list-size-container-padding-left, var(--kbq-size-m)) - var(--kbq-list-size-container-focus-outline-width, var(--kbq-size-3xs)))}.kbq-list-item .kbq-list-option-caption,.kbq-list-option .kbq-list-option-caption{padding-top:var(--kbq-list-size-container-content-gap-vertical, var(--kbq-size-3xs))}.kbq-list-item:not(.kbq-disabled),.kbq-list-option:not(.kbq-disabled){cursor:pointer}body:has(.kbq-list-drag-preview){cursor:grabbing}body:has(.kbq-list-drag-preview) .kbq-list-option.kbq-list-option_draggable,body:has(.kbq-list-drag-preview) .kbq-list-option_draggable .cdk-drag-handle{cursor:grabbing}body:has(.kbq-list-drag-preview) .kbq-list-option{pointer-events:none}body:has(.kbq-list-drag-preview) .kbq-optgroup-label{cursor:inherit}body:has(.kbq-list-drag-preview):has(.kbq-list-option_drop-forbidden){cursor:no-drop}.kbq-list-option:is(.kbq-selected):has(+:is(.kbq-selected)){border-bottom-left-radius:unset;border-bottom-right-radius:unset}.kbq-list-option:is(.kbq-selected)+:is(.kbq-selected){border-top-left-radius:unset;border-top-right-radius:unset}.kbq-list-option:not(.kbq-disabled):hover .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-hovered .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-action-button-focused .kbq-action-container{display:flex}.kbq-list-selection.cdk-keyboard-focused .kbq-list-option:not(.kbq-disabled).kbq-focused .kbq-action-container{display:flex}.kbq-list-option.kbq-list-option_draggable .cdk-drag-handle{cursor:grab}.kbq-list-option.kbq-list-option_grab-cursor:not(:has(.cdk-drag-handle)){cursor:grab}.kbq-list-option.cdk-drag-placeholder,.kbq-list-option.cdk-drag-anchor{opacity:var(--kbq-opacity-disabled)}.kbq-list-option.kbq-list-option_foreign-placeholder{display:none}.kbq-list-selection__drop-indicator{position:absolute;background:var(--kbq-list-states-dragged-indicator-color);pointer-events:none}.kbq-list-selection:not(.kbq-list-selection_horizontal) .kbq-list-selection__drop-indicator{left:0;right:0;top:calc(var(--kbq-list-drop-indicator-offset, 0px) - var(--kbq-list-size-dragged-indicator-thickness) / 2);block-size:var(--kbq-list-size-dragged-indicator-thickness)}.kbq-list-selection_horizontal .kbq-list-selection__drop-indicator{top:0;bottom:0;left:calc(var(--kbq-list-drop-indicator-offset, 0px) - var(--kbq-list-size-dragged-indicator-thickness) / 2);inline-size:var(--kbq-list-size-dragged-indicator-thickness)}.kbq-list-option{--kbq-option-background: var(--kbq-list-default-container-background, transparent);background:var(--kbq-list-default-container-background, transparent)}.kbq-list-option .kbq-list-text{color:var(--kbq-list-default-text-color, var(--kbq-list-default-text-color))}.kbq-list-option .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option .kbq-list-option-caption{color:var(--kbq-list-default-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled),.kbq-list-option:hover:not(.kbq-disabled),.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-hover-container-background, transparent);background:var(--kbq-list-states-hover-container-background, transparent)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-text,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-text,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-hover-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-hover-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-active:not(.kbq-disabled),.kbq-list-option:active:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-active-container-background);background:var(--kbq-list-states-active-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-selected-container-background, transparent);background:var(--kbq-list-states-selected-container-background, transparent)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-selected-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-selected-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-states-selected-hover-container-background, transparent);background:var(--kbq-list-states-selected-hover-container-background, transparent)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-states-selected-hover-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-states-selected-hover-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-states-selected-active-container-background);background:var(--kbq-list-states-selected-active-container-background)}.kbq-list-option.kbq-disabled{--kbq-option-background: var(--kbq-list-states-disabled-container-background, transparent);background:var(--kbq-list-states-disabled-container-background, transparent)}.kbq-list-option.kbq-disabled .kbq-list-text{color:var(--kbq-list-states-disabled-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-disabled .kbq-list-option-caption{color:var(--kbq-list-states-disabled-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-selected.kbq-disabled{--kbq-option-background: var(--kbq-list-states-selected-container-background);background:var(--kbq-list-states-selected-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-multiple-states-selected-container-background, transparent);background:var(--kbq-list-multiple-states-selected-container-background, transparent)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-multiple-states-selected-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-multiple-states-selected-hover-container-background, transparent);background:var(--kbq-list-multiple-states-selected-hover-container-background, transparent)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-multiple-states-selected-hover-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-multiple-states-selected-active-container-background);background:var(--kbq-list-multiple-states-selected-active-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected.kbq-disabled{--kbq-option-background: var(--kbq-list-multiple-states-selected-container-background);background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-list-selection.cdk-keyboard-focused .kbq-list-option.kbq-focused{border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-list-item,.kbq-list-option,.kbq-list-drag-preview_text{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-list-item .kbq-list-text .kbq-list-option-caption,.kbq-list-option .kbq-list-text .kbq-list-option-caption,.kbq-list-drag-preview_text .kbq-list-text .kbq-list-option-caption,.kbq-list-item .kbq-list-drag-preview__caption,.kbq-list-option .kbq-list-drag-preview__caption,.kbq-list-drag-preview_text .kbq-list-drag-preview__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-list-option.cdk-drag-preview{background:var(--kbq-list-states-dragged-container-background);box-shadow:var(--kbq-list-states-dragged-container-shadow)}.kbq-list-drag-preview_text{box-sizing:border-box;max-inline-size:var(--kbq-list-size-drag-preview-max-width);border-radius:var(--kbq-size-border-radius);padding:var(--kbq-list-size-container-padding-vertical) var(--kbq-list-size-container-padding-right) var(--kbq-list-size-container-padding-vertical) var(--kbq-list-size-container-padding-left);background:var(--kbq-list-states-drag-preview-background);box-shadow:var(--kbq-list-states-dragged-container-shadow);color:var(--kbq-list-default-text-color)}.kbq-list-drag-preview_text .kbq-list-drag-preview__label,.kbq-list-drag-preview_text .kbq-list-drag-preview__caption{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kbq-list-drag-preview_text .kbq-list-drag-preview__caption{color:var(--kbq-list-default-caption-color);padding-top:var(--kbq-list-size-container-content-gap-vertical)}\n", "@charset \"UTF-8\";.kbq-list,.kbq-list-selection,.kbq-list-option.cdk-drag-preview,.kbq-list-drag-preview_text{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xxs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-hover-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-multiple-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-multiple-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-multiple-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-multiple-states-selected-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-multiple-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-multiple-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-multiple-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-multiple-states-selected-hover-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled);--kbq-list-states-dragged-container-background: var(--kbq-background-card);--kbq-list-states-dragged-container-shadow: var(--kbq-shadow-popup)}.kbq-list-selection{--kbq-list-size-dragged-indicator-thickness: var(--kbq-size-3xs);--kbq-list-states-dragged-indicator-color: var(--kbq-line-theme)}.kbq-list-drag-preview_text{--kbq-list-size-drag-preview-max-width: 480px;--kbq-list-states-drag-preview-background: color-mix( in srgb, var(--kbq-background-card) calc(var(--kbq-opacity-overlay) * 100%), transparent )}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
494
850
|
}
|
|
495
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
851
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqListSelection, decorators: [{
|
|
496
852
|
type: Component,
|
|
497
853
|
args: [{ selector: 'kbq-list-selection', template: `
|
|
498
854
|
<ng-content />
|
|
855
|
+
@if (dropIndicatorOffset() !== null) {
|
|
856
|
+
<!-- Purely decorative: the drop target is a pointer affordance, not a status message. -->
|
|
857
|
+
<div
|
|
858
|
+
class="kbq-list-selection__drop-indicator"
|
|
859
|
+
aria-hidden="true"
|
|
860
|
+
[style.--kbq-list-drop-indicator-offset.px]="dropIndicatorOffset()"
|
|
861
|
+
></div>
|
|
862
|
+
}
|
|
499
863
|
`, providers: [KBQ_SELECTION_LIST_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
500
864
|
class: 'kbq-list-selection',
|
|
865
|
+
role: 'listbox',
|
|
866
|
+
'[class.kbq-disabled]': 'disabled',
|
|
867
|
+
'[class.kbq-list-selection_horizontal]': 'horizontal()',
|
|
868
|
+
'[class.kbq-list-selection_draggable]': 'draggable',
|
|
869
|
+
'[attr.aria-multiselectable]': 'multiple',
|
|
870
|
+
'[attr.aria-orientation]': 'horizontal() ? "horizontal" : null',
|
|
871
|
+
'[attr.aria-disabled]': 'disabled || null',
|
|
501
872
|
'[attr.tabindex]': 'tabIndex',
|
|
502
|
-
'[attr.disabled]': 'disabled || null',
|
|
503
873
|
'(keydown)': 'onKeyDown($event)',
|
|
504
874
|
'(focus)': 'focus()',
|
|
505
|
-
'(blur)': 'blur()'
|
|
506
|
-
'(window:resize)': 'updateScrollSize()'
|
|
507
|
-
}, exportAs: 'kbqListSelection', preserveWhitespaces: false, styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-list,.kbq-list-selection{display:block;outline:none}.kbq-list-item,.kbq-list-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-list-item .kbq-list-text>*,.kbq-list-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-list-item .kbq-list-text:empty,.kbq-list-option .kbq-list-text:empty{display:none}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-list-item .kbq-list-option-caption,.kbq-list-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-list-item,.kbq-list-option{border-radius:var(--kbq-size-border-radius)}.kbq-list-item:is(.kbq-selected):has(+:is(.kbq-selected)),.kbq-list-option:is(.kbq-selected):has(+:is(.kbq-selected)){border-bottom-left-radius:unset;border-bottom-right-radius:unset}.kbq-list-item:is(.kbq-selected)+:is(.kbq-selected),.kbq-list-option:is(.kbq-selected)+:is(.kbq-selected){border-top-left-radius:unset;border-top-right-radius:unset}.kbq-list-item:not(.kbq-disabled),.kbq-list-option:not(.kbq-disabled){cursor:pointer}.kbq-list-item:not(.kbq-disabled).kbq-hovered .kbq-action-container,.kbq-list-item:not(.kbq-disabled):hover .kbq-action-container,.kbq-list-item:not(.kbq-disabled).kbq-focused .kbq-action-container,.kbq-list-item:not(.kbq-disabled).kbq-action-button-focused .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-hovered .kbq-action-container,.kbq-list-option:not(.kbq-disabled):hover .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-focused .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-action-button-focused .kbq-action-container{display:flex}.kbq-list-option{--kbq-option-background: var(--kbq-list-default-container-background);background:var(--kbq-list-default-container-background)}.kbq-list-option .kbq-list-text{color:var(--kbq-list-default-text-color)}.kbq-list-option .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-color)}.kbq-list-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color)}.kbq-list-option .kbq-list-option-caption{color:var(--kbq-list-default-caption-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled),.kbq-list-option:hover:not(.kbq-disabled),.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-hover-container-background);background:var(--kbq-list-states-hover-container-background)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-text,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-text,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-hover-text-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-hover-caption-color)}.kbq-list-option.kbq-active:not(.kbq-disabled),.kbq-list-option:active:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-active-container-background);background:var(--kbq-list-states-active-container-background)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-list-text,.kbq-list-option:active:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-active-text-color)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option:active:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-active-icon-color)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option:active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-active-icon-button-color)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option:active:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-active-caption-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-selected-container-background);background:var(--kbq-list-states-selected-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-selected-text-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-selected-caption-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-states-selected-hover-container-background);background:var(--kbq-list-states-selected-hover-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-states-selected-hover-text-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-states-selected-hover-caption-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-states-selected-active-container-background);background:var(--kbq-list-states-selected-active-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-text,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-list-text{color:var(--kbq-list-states-selected-active-text-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-active-icon-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-active-icon-button-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-option-caption,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-list-option-caption{color:var(--kbq-list-states-selected-active-caption-color)}.kbq-list-option.kbq-disabled{--kbq-option-background: var(--kbq-list-states-disabled-container-background);background:var(--kbq-list-states-disabled-container-background)}.kbq-list-option.kbq-disabled .kbq-list-text{color:var(--kbq-list-states-disabled-text-color)}.kbq-list-option.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-color)}.kbq-list-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color)}.kbq-list-option.kbq-disabled .kbq-list-option-caption{color:var(--kbq-list-states-disabled-caption-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-multiple-states-selected-container-background);background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-multiple-states-selected-text-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-multiple-states-selected-hover-container-background);background:var(--kbq-list-multiple-states-selected-hover-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-multiple-states-selected-hover-text-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-multiple-states-selected-active-container-background);background:var(--kbq-list-multiple-states-selected-active-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-text,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-list-text{color:var(--kbq-list-multiple-states-selected-active-text-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-active-icon-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-active-icon-button-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-option-caption,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-active-caption-color)}.kbq-list-selection.cdk-keyboard-focused .kbq-list-option.kbq-focused{border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-list-item,.kbq-list-option{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-list-item .kbq-list-text .kbq-list-option-caption,.kbq-list-option .kbq-list-text .kbq-list-option-caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-list,.kbq-list-selection{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-size-header-padding-top: var(--kbq-size-s);--kbq-list-size-header-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-header-padding-horizontal: var(--kbq-size-m);--kbq-list-size-subheading-padding-top: var(--kbq-size-m);--kbq-list-size-subheading-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-subheading-padding-horizontal: var(--kbq-size-m);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}\n"] }]
|
|
875
|
+
'(blur)': 'blur()'
|
|
876
|
+
}, hostDirectives: [{ directive: CdkDropList, inputs: ['id'] }], exportAs: 'kbqListSelection', preserveWhitespaces: false, styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-list,.kbq-list-selection{display:block;outline:none}.kbq-list-selection_horizontal{display:flex;flex-direction:row}.kbq-list-selection_horizontal .kbq-list-option{flex:0 0 auto}.kbq-list-selection{position:relative}.kbq-list-item,.kbq-list-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-list-item .kbq-list-text>*,.kbq-list-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-list-item .kbq-list-text:empty,.kbq-list-option .kbq-list-text:empty{display:none}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-list-item .kbq-list-option-caption,.kbq-list-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-list-item,.kbq-list-option{border-width:var(--kbq-list-size-container-focus-outline-width, var(--kbq-size-3xs));border-radius:var(--kbq-size-border-radius);gap:var(--kbq-list-size-container-content-gap-horizontal, var(--kbq-size-s));padding-top:var(--kbq-list-size-container-padding-vertical, var(--kbq-size-xxs));padding-right:calc(var(--kbq-list-size-container-padding-right, var(--kbq-size-m)) - var(--kbq-list-size-container-focus-outline-width, var(--kbq-size-3xs)));padding-bottom:var(--kbq-list-size-container-padding-vertical, var(--kbq-size-xxs));padding-left:calc(var(--kbq-list-size-container-padding-left, var(--kbq-size-m)) - var(--kbq-list-size-container-focus-outline-width, var(--kbq-size-3xs)))}.kbq-list-item .kbq-list-option-caption,.kbq-list-option .kbq-list-option-caption{padding-top:var(--kbq-list-size-container-content-gap-vertical, var(--kbq-size-3xs))}.kbq-list-item:not(.kbq-disabled),.kbq-list-option:not(.kbq-disabled){cursor:pointer}body:has(.kbq-list-drag-preview){cursor:grabbing}body:has(.kbq-list-drag-preview) .kbq-list-option.kbq-list-option_draggable,body:has(.kbq-list-drag-preview) .kbq-list-option_draggable .cdk-drag-handle{cursor:grabbing}body:has(.kbq-list-drag-preview) .kbq-list-option{pointer-events:none}body:has(.kbq-list-drag-preview) .kbq-optgroup-label{cursor:inherit}body:has(.kbq-list-drag-preview):has(.kbq-list-option_drop-forbidden){cursor:no-drop}.kbq-list-option:is(.kbq-selected):has(+:is(.kbq-selected)){border-bottom-left-radius:unset;border-bottom-right-radius:unset}.kbq-list-option:is(.kbq-selected)+:is(.kbq-selected){border-top-left-radius:unset;border-top-right-radius:unset}.kbq-list-option:not(.kbq-disabled):hover .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-hovered .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-action-button-focused .kbq-action-container{display:flex}.kbq-list-selection.cdk-keyboard-focused .kbq-list-option:not(.kbq-disabled).kbq-focused .kbq-action-container{display:flex}.kbq-list-option.kbq-list-option_draggable .cdk-drag-handle{cursor:grab}.kbq-list-option.kbq-list-option_grab-cursor:not(:has(.cdk-drag-handle)){cursor:grab}.kbq-list-option.cdk-drag-placeholder,.kbq-list-option.cdk-drag-anchor{opacity:var(--kbq-opacity-disabled)}.kbq-list-option.kbq-list-option_foreign-placeholder{display:none}.kbq-list-selection__drop-indicator{position:absolute;background:var(--kbq-list-states-dragged-indicator-color);pointer-events:none}.kbq-list-selection:not(.kbq-list-selection_horizontal) .kbq-list-selection__drop-indicator{left:0;right:0;top:calc(var(--kbq-list-drop-indicator-offset, 0px) - var(--kbq-list-size-dragged-indicator-thickness) / 2);block-size:var(--kbq-list-size-dragged-indicator-thickness)}.kbq-list-selection_horizontal .kbq-list-selection__drop-indicator{top:0;bottom:0;left:calc(var(--kbq-list-drop-indicator-offset, 0px) - var(--kbq-list-size-dragged-indicator-thickness) / 2);inline-size:var(--kbq-list-size-dragged-indicator-thickness)}.kbq-list-option{--kbq-option-background: var(--kbq-list-default-container-background, transparent);background:var(--kbq-list-default-container-background, transparent)}.kbq-list-option .kbq-list-text{color:var(--kbq-list-default-text-color, var(--kbq-list-default-text-color))}.kbq-list-option .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option .kbq-list-option-caption{color:var(--kbq-list-default-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled),.kbq-list-option:hover:not(.kbq-disabled),.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-hover-container-background, transparent);background:var(--kbq-list-states-hover-container-background, transparent)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-text,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-text,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-hover-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-hover-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-active:not(.kbq-disabled),.kbq-list-option:active:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-active-container-background);background:var(--kbq-list-states-active-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-selected-container-background, transparent);background:var(--kbq-list-states-selected-container-background, transparent)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-selected-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-selected-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-states-selected-hover-container-background, transparent);background:var(--kbq-list-states-selected-hover-container-background, transparent)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-states-selected-hover-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-states-selected-hover-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-states-selected-active-container-background);background:var(--kbq-list-states-selected-active-container-background)}.kbq-list-option.kbq-disabled{--kbq-option-background: var(--kbq-list-states-disabled-container-background, transparent);background:var(--kbq-list-states-disabled-container-background, transparent)}.kbq-list-option.kbq-disabled .kbq-list-text{color:var(--kbq-list-states-disabled-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-disabled .kbq-list-option-caption{color:var(--kbq-list-states-disabled-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-selected.kbq-disabled{--kbq-option-background: var(--kbq-list-states-selected-container-background);background:var(--kbq-list-states-selected-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-multiple-states-selected-container-background, transparent);background:var(--kbq-list-multiple-states-selected-container-background, transparent)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-multiple-states-selected-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-multiple-states-selected-hover-container-background, transparent);background:var(--kbq-list-multiple-states-selected-hover-container-background, transparent)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-multiple-states-selected-hover-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-multiple-states-selected-active-container-background);background:var(--kbq-list-multiple-states-selected-active-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected.kbq-disabled{--kbq-option-background: var(--kbq-list-multiple-states-selected-container-background);background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-list-selection.cdk-keyboard-focused .kbq-list-option.kbq-focused{border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-list-item,.kbq-list-option,.kbq-list-drag-preview_text{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-list-item .kbq-list-text .kbq-list-option-caption,.kbq-list-option .kbq-list-text .kbq-list-option-caption,.kbq-list-drag-preview_text .kbq-list-text .kbq-list-option-caption,.kbq-list-item .kbq-list-drag-preview__caption,.kbq-list-option .kbq-list-drag-preview__caption,.kbq-list-drag-preview_text .kbq-list-drag-preview__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-list-option.cdk-drag-preview{background:var(--kbq-list-states-dragged-container-background);box-shadow:var(--kbq-list-states-dragged-container-shadow)}.kbq-list-drag-preview_text{box-sizing:border-box;max-inline-size:var(--kbq-list-size-drag-preview-max-width);border-radius:var(--kbq-size-border-radius);padding:var(--kbq-list-size-container-padding-vertical) var(--kbq-list-size-container-padding-right) var(--kbq-list-size-container-padding-vertical) var(--kbq-list-size-container-padding-left);background:var(--kbq-list-states-drag-preview-background);box-shadow:var(--kbq-list-states-dragged-container-shadow);color:var(--kbq-list-default-text-color)}.kbq-list-drag-preview_text .kbq-list-drag-preview__label,.kbq-list-drag-preview_text .kbq-list-drag-preview__caption{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kbq-list-drag-preview_text .kbq-list-drag-preview__caption{color:var(--kbq-list-default-caption-color);padding-top:var(--kbq-list-size-container-content-gap-vertical)}\n", "@charset \"UTF-8\";.kbq-list,.kbq-list-selection,.kbq-list-option.cdk-drag-preview,.kbq-list-drag-preview_text{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xxs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-hover-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-multiple-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-multiple-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-multiple-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-multiple-states-selected-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-multiple-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-multiple-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-multiple-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-multiple-states-selected-hover-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled);--kbq-list-states-dragged-container-background: var(--kbq-background-card);--kbq-list-states-dragged-container-shadow: var(--kbq-shadow-popup)}.kbq-list-selection{--kbq-list-size-dragged-indicator-thickness: var(--kbq-size-3xs);--kbq-list-states-dragged-indicator-color: var(--kbq-line-theme)}.kbq-list-drag-preview_text{--kbq-list-size-drag-preview-max-width: 480px;--kbq-list-states-drag-preview-background: color-mix( in srgb, var(--kbq-background-card) calc(var(--kbq-opacity-overlay) * 100%), transparent )}\n"] }]
|
|
508
877
|
}], ctorParameters: () => [], propDecorators: { options: [{
|
|
509
878
|
type: ContentChildren,
|
|
510
879
|
args: [forwardRef(() => KbqListOption), { descendants: true }]
|
|
@@ -514,7 +883,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
514
883
|
type: Input
|
|
515
884
|
}], noUnselectLast: [{
|
|
516
885
|
type: Input
|
|
517
|
-
}],
|
|
886
|
+
}], draggable: [{
|
|
887
|
+
type: Input,
|
|
888
|
+
args: [{ transform: booleanAttribute }]
|
|
889
|
+
}], connectedTo: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectedTo", required: false }] }], dragPreview: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragPreview", required: false }] }], dragCursor: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragCursor", required: false }] }], dropped: [{ type: i0.Output, args: ["dropped"] }], selectAllToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectAllToggle", required: false }] }], horizontal: [{ type: i0.Input, args: [{ isSignal: true, alias: "horizontal", required: false }] }], tabIndex: [{
|
|
518
890
|
type: Input
|
|
519
891
|
}], disabled: [{
|
|
520
892
|
type: Input,
|
|
@@ -522,11 +894,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
522
894
|
}], compareWith: [{ type: i0.Input, args: [{ isSignal: true, alias: "compareWith", required: false }] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], selectAllHandler: [{
|
|
523
895
|
type: Input
|
|
524
896
|
}] } });
|
|
897
|
+
/**
|
|
898
|
+
* Marker directive for the secondary line of a `kbq-list-option`.
|
|
899
|
+
*
|
|
900
|
+
* Purely a styling hook: it adds the `kbq-list-option-caption` class the list theme keys its
|
|
901
|
+
* muted caption typography and per-state colors off.
|
|
902
|
+
*/
|
|
525
903
|
class KbqListOptionCaption {
|
|
526
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
527
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
904
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqListOptionCaption, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
905
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.30", type: KbqListOptionCaption, isStandalone: true, selector: "[kbq-list-option-caption]", host: { classAttribute: "kbq-list-option-caption" }, ngImport: i0 }); }
|
|
528
906
|
}
|
|
529
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
907
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqListOptionCaption, decorators: [{
|
|
530
908
|
type: Directive,
|
|
531
909
|
args: [{
|
|
532
910
|
selector: '[kbq-list-option-caption]',
|
|
@@ -541,43 +919,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
541
919
|
* if the current item is selected.
|
|
542
920
|
*/
|
|
543
921
|
class KbqListOption {
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
this.listSelection = inject(KbqListSelection);
|
|
549
|
-
this.group = inject(KbqOptgroup, { optional: true });
|
|
550
|
-
this.hasFocus = false;
|
|
551
|
-
this.preventBlur = false;
|
|
552
|
-
this.onFocus = new Subject();
|
|
553
|
-
this.onBlur = new Subject();
|
|
554
|
-
this.actionButton = contentChild(KbqOptionActionComponent, ...(ngDevMode ? [{ debugName: "actionButton" }] : []));
|
|
555
|
-
this.pseudoCheckbox = contentChild(KbqPseudoCheckbox, ...(ngDevMode ? [{ debugName: "pseudoCheckbox" }] : []));
|
|
556
|
-
this.text = viewChild.required('text');
|
|
557
|
-
// Whether the label should appear before or after the checkbox. Defaults to 'after'
|
|
558
|
-
this.checkboxPosition = input(undefined, ...(ngDevMode ? [{ debugName: "checkboxPosition" }] : []));
|
|
559
|
-
/**
|
|
560
|
-
* This is set to true after the first OnChanges cycle so we don't clear the value of `selected`
|
|
561
|
-
* in the first cycle.
|
|
562
|
-
*/
|
|
563
|
-
this.inputsInitialized = false;
|
|
564
|
-
this._disabled = false;
|
|
565
|
-
this._selected = false;
|
|
566
|
-
}
|
|
567
|
-
// TODO: Skipped for migration because:
|
|
568
|
-
// Accessor inputs cannot be migrated as they are too complex.
|
|
922
|
+
/**
|
|
923
|
+
* Value of the option, reported through the list's `ControlValueAccessor`.
|
|
924
|
+
* Stays an accessor input: the setter drops the selection when the value is replaced.
|
|
925
|
+
*/
|
|
569
926
|
get value() {
|
|
570
927
|
return this._value;
|
|
571
928
|
}
|
|
572
929
|
set value(newValue) {
|
|
573
|
-
|
|
930
|
+
// An equal-but-new object — an immutable refetch, a `@for` tracked by id — must not drop the
|
|
931
|
+
// selection, so the incoming value is put to the model rather than to the value it replaces.
|
|
932
|
+
// That keeps the comparator in its documented `(optionValue, modelValue)` order, which an
|
|
933
|
+
// asymmetric comparator (options carry objects, the model carries ids) depends on.
|
|
934
|
+
//
|
|
935
|
+
// The reference check ahead of it is not just a fast path: it is what keeps an unchanged value
|
|
936
|
+
// from being dropped when the comparator throws, since a swallowed throw also reads as "no match".
|
|
937
|
+
const modelValues = this.listSelection._value;
|
|
938
|
+
if (this.inputsInitialized &&
|
|
939
|
+
this.selected &&
|
|
940
|
+
newValue !== this._value &&
|
|
941
|
+
modelValues != null &&
|
|
942
|
+
!modelValues.some((modelValue) => runCompareWith(this.listSelection.compareWith(), newValue, modelValue))) {
|
|
574
943
|
this.selected = false;
|
|
575
944
|
}
|
|
576
945
|
this._value = newValue;
|
|
577
946
|
}
|
|
578
|
-
/**
|
|
579
|
-
|
|
580
|
-
|
|
947
|
+
/**
|
|
948
|
+
* Whether the option is disabled.
|
|
949
|
+
* Stays an accessor input: the getter also reports the disabled state inherited from the list
|
|
950
|
+
* and the option group, which a signal `input()` cannot express.
|
|
951
|
+
*/
|
|
581
952
|
get disabled() {
|
|
582
953
|
const listSelectionDisabled = this.listSelection && this.listSelection.disabled;
|
|
583
954
|
const groupDisabled = this.group && this.group.disabled;
|
|
@@ -586,19 +957,38 @@ class KbqListOption {
|
|
|
586
957
|
set disabled(value) {
|
|
587
958
|
if (value !== this._disabled) {
|
|
588
959
|
this._disabled = value;
|
|
589
|
-
this.
|
|
960
|
+
this.syncDraggableState();
|
|
590
961
|
}
|
|
591
962
|
}
|
|
592
|
-
|
|
593
|
-
|
|
963
|
+
/**
|
|
964
|
+
* Whether the option can be reordered by dragging. Set it to `false` to pin a single option while
|
|
965
|
+
* the rest of the list stays draggable. Unrelated to `disabled`: the option keeps taking focus and
|
|
966
|
+
* selection.
|
|
967
|
+
*
|
|
968
|
+
* Stays an accessor input: the getter reports the resolved state, which the option can only narrow —
|
|
969
|
+
* the list gates its whole drop list, so an option cannot opt back in on its own.
|
|
970
|
+
*/
|
|
971
|
+
get draggable() {
|
|
972
|
+
return this._draggable && this.listSelection.draggable && !this.disabled;
|
|
973
|
+
}
|
|
974
|
+
set draggable(value) {
|
|
975
|
+
this._draggable = value;
|
|
976
|
+
this.syncDraggableState();
|
|
977
|
+
}
|
|
978
|
+
/**
|
|
979
|
+
* Whether the option renders a pseudo-checkbox.
|
|
980
|
+
* Stays an accessor input: when unset the getter falls back to the list's own mode.
|
|
981
|
+
*/
|
|
594
982
|
get showCheckbox() {
|
|
595
983
|
return this._showCheckbox !== undefined ? this._showCheckbox : this.listSelection.showCheckbox;
|
|
596
984
|
}
|
|
597
985
|
set showCheckbox(value) {
|
|
598
986
|
this._showCheckbox = coerceBooleanProperty(value);
|
|
599
987
|
}
|
|
600
|
-
|
|
601
|
-
|
|
988
|
+
/**
|
|
989
|
+
* Whether the option is selected.
|
|
990
|
+
* Stays an accessor input: the state lives in the list's `SelectionModel`, not on the option.
|
|
991
|
+
*/
|
|
602
992
|
get selected() {
|
|
603
993
|
return this.listSelection.selectionModel?.isSelected(this) || false;
|
|
604
994
|
}
|
|
@@ -613,11 +1003,82 @@ class KbqListOption {
|
|
|
613
1003
|
get externalPseudoCheckbox() {
|
|
614
1004
|
return !!this.pseudoCheckbox();
|
|
615
1005
|
}
|
|
1006
|
+
/**
|
|
1007
|
+
* Whether the row itself advertises the grab. Gated on `draggable` so that a pinned option inside a
|
|
1008
|
+
* `dragCursor="grab"` list does not promise a pick-up it would refuse. The handle case is left to
|
|
1009
|
+
* CSS, which already hands the grab over to a projected `cdkDragHandle`.
|
|
1010
|
+
*/
|
|
1011
|
+
get showsGrabCursor() {
|
|
1012
|
+
return this.draggable && this.listSelection.dragCursor() === 'grab';
|
|
1013
|
+
}
|
|
1014
|
+
constructor() {
|
|
1015
|
+
this.elementRef = inject(ElementRef);
|
|
1016
|
+
this.changeDetector = inject(ChangeDetectorRef);
|
|
1017
|
+
this.ngZone = inject(NgZone);
|
|
1018
|
+
this.drag = inject(CdkDrag, { host: true });
|
|
1019
|
+
this.destroyRef = inject(DestroyRef);
|
|
1020
|
+
this.listSelection = inject(KbqListSelection);
|
|
1021
|
+
this.group = inject(KbqOptgroup, { optional: true });
|
|
1022
|
+
this.hasFocus = false;
|
|
1023
|
+
this.preventBlur = false;
|
|
1024
|
+
this.onFocus = new Subject();
|
|
1025
|
+
this.onBlur = new Subject();
|
|
1026
|
+
this.actionButton = contentChild(KbqOptionActionComponent, ...(ngDevMode ? [{ debugName: "actionButton" }] : []));
|
|
1027
|
+
this.pseudoCheckbox = contentChild(KbqPseudoCheckbox, ...(ngDevMode ? [{ debugName: "pseudoCheckbox" }] : []));
|
|
1028
|
+
/**
|
|
1029
|
+
* Drag handles the consumer has projected into the option. Nothing else reads them — `CdkDrag`
|
|
1030
|
+
* collects its own through DI — they only tell the option whether the whole row starts a drag.
|
|
1031
|
+
*/
|
|
1032
|
+
this.dragHandles = contentChildren(CDK_DRAG_HANDLE, ...(ngDevMode ? [{ debugName: "dragHandles", descendants: true }] : [{ descendants: true }]));
|
|
1033
|
+
this.text = viewChild.required('text');
|
|
1034
|
+
// Whether the label should appear before or after the checkbox. Defaults to 'after'
|
|
1035
|
+
this.checkboxPosition = input(undefined, ...(ngDevMode ? [{ debugName: "checkboxPosition" }] : []));
|
|
1036
|
+
/**
|
|
1037
|
+
* This is set to true after the first OnChanges cycle so we don't clear the value of `selected`
|
|
1038
|
+
* in the first cycle.
|
|
1039
|
+
*/
|
|
1040
|
+
this.inputsInitialized = false;
|
|
1041
|
+
this._disabled = false;
|
|
1042
|
+
this._draggable = true;
|
|
1043
|
+
this._selected = false;
|
|
1044
|
+
this.syncDraggableState();
|
|
1045
|
+
// The only class that lands on the preview in both modes: the text one is a plate of our own,
|
|
1046
|
+
// the full one a clone of the option. Styling keys "a drag is in progress" off it.
|
|
1047
|
+
this.drag.previewClass = DRAG_PREVIEW_CLASS;
|
|
1048
|
+
// Without a projected handle the whole row starts the drag, so a touch has to lose to a scroll
|
|
1049
|
+
// gesture first. A handle is unambiguous and may start immediately. `CdkDrag` re-reads the delay
|
|
1050
|
+
// on every `beforeStarted`, so assigning it whenever the query settles is enough.
|
|
1051
|
+
effect(() => {
|
|
1052
|
+
this.drag.dragStartDelay = this.dragHandles().length ? 0 : { touch: 300, mouse: 0 };
|
|
1053
|
+
});
|
|
1054
|
+
// Assigned lazily: referencing `this` while the host directive is still being constructed
|
|
1055
|
+
// would capture a half-initialized option.
|
|
1056
|
+
// Nothing is cleared on `ended`: it fires *before* `dropped`, so tearing the indicator down
|
|
1057
|
+
// there would take the resolved target index with it and turn every drop into a no-op.
|
|
1058
|
+
this.drag.started.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
1059
|
+
this.drag.data = { option: this };
|
|
1060
|
+
this.listSelection.clearDropIndicators(this);
|
|
1061
|
+
});
|
|
1062
|
+
// Sorting is disabled, so CDK gives no running feedback about where the option would land —
|
|
1063
|
+
// the owning list derives it from the pointer and paints the insertion indicator itself.
|
|
1064
|
+
this.drag.moved.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(({ pointerPosition }) => {
|
|
1065
|
+
this.listSelection.onOptionDragMoved(this, pointerPosition);
|
|
1066
|
+
});
|
|
1067
|
+
}
|
|
1068
|
+
/**
|
|
1069
|
+
* Keeps the underlying `CdkDrag` in sync with the resolved `draggable` state.
|
|
1070
|
+
*
|
|
1071
|
+
* @docs-private
|
|
1072
|
+
*/
|
|
1073
|
+
syncDraggableState() {
|
|
1074
|
+
this.drag.disabled = !this.draggable;
|
|
1075
|
+
this.changeDetector.markForCheck();
|
|
1076
|
+
}
|
|
616
1077
|
ngOnInit() {
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
1078
|
+
// Resolving the model value is the list's job, not the option's. An option that matched itself
|
|
1079
|
+
// here answered a different question than `getOptionByValue` does — every match self-selected,
|
|
1080
|
+
// while the list picks the first — so a comparator that matches more than one option produced a
|
|
1081
|
+
// different selection depending on which path ran. The list re-resolves on `options.changes`.
|
|
621
1082
|
const wasSelected = this._selected;
|
|
622
1083
|
// List options that are selected at initialization can't be reported properly to the form
|
|
623
1084
|
// control. This is because it takes some time until the selection-list knows about all
|
|
@@ -640,15 +1101,45 @@ class KbqListOption {
|
|
|
640
1101
|
}
|
|
641
1102
|
this.listSelection.removeOptionFromList(this);
|
|
642
1103
|
}
|
|
1104
|
+
/** Toggles the selected state of this option. */
|
|
643
1105
|
toggle() {
|
|
644
1106
|
this.selected = !this.selected;
|
|
645
1107
|
}
|
|
646
1108
|
getLabel() {
|
|
647
1109
|
const text = this.text();
|
|
648
|
-
return text ? text.nativeElement.textContent : '';
|
|
1110
|
+
return text ? (text.nativeElement.textContent ?? '') : '';
|
|
649
1111
|
}
|
|
1112
|
+
/**
|
|
1113
|
+
* Splits the option's text into the two lines the `text` drag preview shows. The caption is
|
|
1114
|
+
* projected into the same container as the label, so the label is whatever that container holds
|
|
1115
|
+
* apart from the caption — subtracting one string from the other would be guesswork.
|
|
1116
|
+
*
|
|
1117
|
+
* Taken off a clone rather than by walking the container's children, the way `KbqDropdownItem`
|
|
1118
|
+
* drops icons out of its own label: `textContent` on an element skips the comment nodes Angular
|
|
1119
|
+
* leaves behind for its anchors, while reading one of those nodes directly would hand back the
|
|
1120
|
+
* anchor's name.
|
|
1121
|
+
*
|
|
1122
|
+
* Trimmed because `htmlWhitespaceSensitivity: 'ignore'` lets the indentation of the consumer's
|
|
1123
|
+
* template into the projected text.
|
|
1124
|
+
*
|
|
1125
|
+
* @docs-private
|
|
1126
|
+
*/
|
|
1127
|
+
getDragPreviewText() {
|
|
1128
|
+
const clone = this.text().nativeElement.cloneNode(true);
|
|
1129
|
+
const caption = clone.querySelector('.kbq-list-option-caption');
|
|
1130
|
+
caption?.remove();
|
|
1131
|
+
return { label: (clone.textContent ?? '').trim(), caption: (caption?.textContent ?? '').trim() };
|
|
1132
|
+
}
|
|
1133
|
+
/** Sets the selected state directly on the list's `SelectionModel`, bypassing the `selected` input setter. */
|
|
650
1134
|
setSelected(selected) {
|
|
651
|
-
|
|
1135
|
+
const { selectionModel } = this.listSelection;
|
|
1136
|
+
if (!selectionModel) {
|
|
1137
|
+
return;
|
|
1138
|
+
}
|
|
1139
|
+
// The model is consulted alongside the mirror so that an option the model dropped behind the
|
|
1140
|
+
// mirror's back — single-selection mode does that whenever another option is selected — can still
|
|
1141
|
+
// be re-applied instead of being early-returned away.
|
|
1142
|
+
if (this._selected === selected && selectionModel.isSelected(this) === selected) {
|
|
652
1143
|
return;
|
|
653
1144
|
}
|
|
654
1145
|
this._selected = selected;
|
|
@@ -660,9 +1151,12 @@ class KbqListOption {
|
|
|
660
1151
|
}
|
|
661
1152
|
this.changeDetector.markForCheck();
|
|
662
1153
|
}
|
|
663
|
-
/**
|
|
1154
|
+
/**
|
|
1155
|
+
* Rendered height of the element, or 0 when it is not laid out (SSR, jsdom, `display: none`).
|
|
1156
|
+
* @docs-private
|
|
1157
|
+
*/
|
|
664
1158
|
getHeight() {
|
|
665
|
-
return this.elementRef.nativeElement.getClientRects()[0]?.height ?? 0;
|
|
1159
|
+
return this.elementRef.nativeElement.getClientRects()?.[0]?.height ?? 0;
|
|
666
1160
|
}
|
|
667
1161
|
/** Handles click events on the list option. */
|
|
668
1162
|
handleClick($event) {
|
|
@@ -673,16 +1167,11 @@ class KbqListOption {
|
|
|
673
1167
|
// ctrlKey is for Windows, metaKey is for MacOS
|
|
674
1168
|
hasModifierKey($event, 'ctrlKey', 'metaKey'));
|
|
675
1169
|
}
|
|
1170
|
+
/** Handles keydown events on the list option. */
|
|
676
1171
|
onKeydown($event) {
|
|
677
|
-
|
|
678
|
-
if (!actionButton) {
|
|
679
|
-
return;
|
|
680
|
-
}
|
|
681
|
-
if ($event.keyCode === TAB && !$event.shiftKey && !actionButton.hasFocus) {
|
|
682
|
-
actionButton.focus();
|
|
683
|
-
$event.preventDefault();
|
|
684
|
-
}
|
|
1172
|
+
kbqFocusOptionActionOnTab($event, this.actionButton());
|
|
685
1173
|
}
|
|
1174
|
+
/** Moves DOM focus to this option, unless it is disabled or already focused. */
|
|
686
1175
|
focus() {
|
|
687
1176
|
if (this.disabled || this.hasFocus || this.actionButton()?.hasFocus) {
|
|
688
1177
|
return;
|
|
@@ -694,6 +1183,7 @@ class KbqListOption {
|
|
|
694
1183
|
this.changeDetector.markForCheck();
|
|
695
1184
|
});
|
|
696
1185
|
}
|
|
1186
|
+
/** Marks this option as blurred once the zone stabilizes, unless {@link preventBlur} is set. */
|
|
697
1187
|
blur() {
|
|
698
1188
|
if (this.preventBlur) {
|
|
699
1189
|
return;
|
|
@@ -715,18 +1205,20 @@ class KbqListOption {
|
|
|
715
1205
|
});
|
|
716
1206
|
});
|
|
717
1207
|
}
|
|
1208
|
+
/** The option's host DOM element. */
|
|
718
1209
|
getHostElement() {
|
|
719
1210
|
return this.elementRef.nativeElement;
|
|
720
1211
|
}
|
|
721
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
722
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
1212
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqListOption, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1213
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.30", type: KbqListOption, isStandalone: true, selector: "kbq-list-option", inputs: { checkboxPosition: { classPropertyName: "checkboxPosition", publicName: "checkboxPosition", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: false, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: false, isRequired: false, transformFunction: booleanAttribute } }, host: { attributes: { "role": "option" }, listeners: { "focusin": "focus()", "blur": "blur()", "click": "handleClick($event)", "keydown": "onKeydown($event)" }, properties: { "class.kbq-selected": "selected", "class.kbq-list-option_multiple": "listSelection.multiple", "class.kbq-list-option_draggable": "draggable", "class.kbq-list-option_grab-cursor": "showsGrabCursor", "class.kbq-disabled": "disabled", "class.kbq-focused": "hasFocus", "class.kbq-action-button-focused": "actionButton()?.active", "attr.aria-selected": "selected", "attr.aria-disabled": "disabled || null", "attr.tabindex": "tabIndex" }, classAttribute: "kbq-list-option" }, providers: [
|
|
723
1214
|
{ provide: KBQ_OPTION_ACTION_PARENT, useExisting: KbqListOption },
|
|
724
1215
|
{ provide: KBQ_TITLE_TEXT_REF, useExisting: KbqListOption }
|
|
725
|
-
], queries: [{ propertyName: "actionButton", first: true, predicate: KbqOptionActionComponent, descendants: true, isSignal: true }, { propertyName: "pseudoCheckbox", first: true, predicate: KbqPseudoCheckbox, descendants: true, isSignal: true }, { propertyName: "tooltipTrigger", first: true, predicate: KbqTooltipTrigger, descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: KbqDropdownTrigger, descendants: true }], viewQueries: [{ propertyName: "text", first: true, predicate: ["text"], descendants: true, isSignal: true }, { propertyName: "textElement", first: true, predicate: ["kbqTitleText"], descendants: true }], exportAs: ["kbqListOption"], ngImport: i0, template: "@if (externalPseudoCheckbox) {\n <ng-content select=\"kbq-pseudo-checkbox\" />\n} @else if (showCheckbox) {\n <kbq-pseudo-checkbox [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n}\n\n<ng-content select=\"[kbq-icon]\" />\n\n<div #kbqTitleText #text class=\"kbq-list-text\">\n <ng-content />\n <ng-content select=\"[kbq-list-option-caption]\" />\n</div>\n\n@if (actionButton()) {\n <kbq-action-container>\n <ng-content select=\"kbq-option-action\" />\n </kbq-action-container>\n}\n", dependencies: [{ kind: "component", type: KbqPseudoCheckbox, selector: "kbq-pseudo-checkbox", inputs: ["big", "state", "disabled"] }, { kind: "component", type: KbqActionContainer, selector: "kbq-action-container", exportAs: ["kbqActionContainer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1216
|
+
], queries: [{ propertyName: "actionButton", first: true, predicate: KbqOptionActionComponent, descendants: true, isSignal: true }, { propertyName: "pseudoCheckbox", first: true, predicate: KbqPseudoCheckbox, descendants: true, isSignal: true }, { propertyName: "dragHandles", predicate: CDK_DRAG_HANDLE, descendants: true, isSignal: true }, { propertyName: "tooltipTrigger", first: true, predicate: KbqTooltipTrigger, descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: KbqDropdownTrigger, descendants: true }], viewQueries: [{ propertyName: "text", first: true, predicate: ["text"], descendants: true, isSignal: true }, { propertyName: "textElement", first: true, predicate: ["kbqTitleText"], descendants: true }], exportAs: ["kbqListOption"], hostDirectives: [{ directive: i1.CdkDrag }], ngImport: i0, template: "@if (externalPseudoCheckbox) {\n <ng-content select=\"kbq-pseudo-checkbox\" />\n} @else if (showCheckbox) {\n <!-- Decorative: assistive technology reads the selected state from the option's own aria-selected. -->\n <kbq-pseudo-checkbox aria-hidden=\"true\" [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n}\n\n<ng-content select=\"[kbq-icon]\" />\n\n<div #kbqTitleText #text class=\"kbq-list-text\">\n <ng-content />\n <ng-content select=\"[kbq-list-option-caption]\" />\n</div>\n\n@if (actionButton()) {\n <kbq-action-container>\n <ng-content select=\"kbq-option-action\" />\n </kbq-action-container>\n}\n\n@if (listSelection.dragPreview() === 'text') {\n <!--\n Registers with the host `CdkDrag` through `CDK_DRAG_PARENT`, not through a content query, which\n is why it can live in the option's own view. The template body is a single element and nothing\n else: CDK wraps the view in a plain div otherwise, and that wrapper \u2014 not this plate \u2014 would\n become the preview. The plate is decorative, it repeats text the listbox already exposes.\n -->\n <ng-template cdkDragPreview>\n <div class=\"kbq-list-drag-preview_text\" aria-hidden=\"true\">\n <!-- Read on render rather than cached on `started`: CDK builds the preview before it emits. -->\n @let text = getDragPreviewText();\n <div class=\"kbq-list-drag-preview__label\">{{ text.label }}</div>\n @if (text.caption) {\n <div class=\"kbq-list-drag-preview__caption\">{{ text.caption }}</div>\n }\n </div>\n </ng-template>\n}\n", dependencies: [{ kind: "directive", type: CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "component", type: KbqPseudoCheckbox, selector: "kbq-pseudo-checkbox", inputs: ["big", "state", "disabled"] }, { kind: "component", type: KbqActionContainer, selector: "kbq-action-container", exportAs: ["kbqActionContainer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
726
1217
|
}
|
|
727
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqListOption, decorators: [{
|
|
728
1219
|
type: Component,
|
|
729
1220
|
args: [{ selector: 'kbq-list-option', imports: [
|
|
1221
|
+
CdkDragPreview,
|
|
730
1222
|
KbqPseudoCheckbox,
|
|
731
1223
|
KbqActionContainer
|
|
732
1224
|
], providers: [
|
|
@@ -734,25 +1226,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
734
1226
|
{ provide: KBQ_TITLE_TEXT_REF, useExisting: KbqListOption }
|
|
735
1227
|
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
736
1228
|
class: 'kbq-list-option',
|
|
1229
|
+
role: 'option',
|
|
737
1230
|
'[class.kbq-selected]': 'selected',
|
|
738
1231
|
'[class.kbq-list-option_multiple]': 'listSelection.multiple',
|
|
1232
|
+
'[class.kbq-list-option_draggable]': 'draggable',
|
|
1233
|
+
'[class.kbq-list-option_grab-cursor]': 'showsGrabCursor',
|
|
739
1234
|
'[class.kbq-disabled]': 'disabled',
|
|
740
1235
|
'[class.kbq-focused]': 'hasFocus',
|
|
741
1236
|
'[class.kbq-action-button-focused]': 'actionButton()?.active',
|
|
1237
|
+
'[attr.aria-selected]': 'selected',
|
|
1238
|
+
'[attr.aria-disabled]': 'disabled || null',
|
|
742
1239
|
'[attr.tabindex]': 'tabIndex',
|
|
743
|
-
'[attr.disabled]': 'disabled || null',
|
|
744
1240
|
'(focusin)': 'focus()',
|
|
745
1241
|
'(blur)': 'blur()',
|
|
746
1242
|
'(click)': 'handleClick($event)',
|
|
747
1243
|
'(keydown)': 'onKeydown($event)'
|
|
748
|
-
}, exportAs: 'kbqListOption', preserveWhitespaces: false, template: "@if (externalPseudoCheckbox) {\n <ng-content select=\"kbq-pseudo-checkbox\" />\n} @else if (showCheckbox) {\n <kbq-pseudo-checkbox [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n}\n\n<ng-content select=\"[kbq-icon]\" />\n\n<div #kbqTitleText #text class=\"kbq-list-text\">\n <ng-content />\n <ng-content select=\"[kbq-list-option-caption]\" />\n</div>\n\n@if (actionButton()) {\n <kbq-action-container>\n <ng-content select=\"kbq-option-action\" />\n </kbq-action-container>\n}\n" }]
|
|
749
|
-
}], propDecorators: { actionButton: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqOptionActionComponent), { isSignal: true }] }], tooltipTrigger: [{
|
|
1244
|
+
}, hostDirectives: [CdkDrag], exportAs: 'kbqListOption', preserveWhitespaces: false, template: "@if (externalPseudoCheckbox) {\n <ng-content select=\"kbq-pseudo-checkbox\" />\n} @else if (showCheckbox) {\n <!-- Decorative: assistive technology reads the selected state from the option's own aria-selected. -->\n <kbq-pseudo-checkbox aria-hidden=\"true\" [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n}\n\n<ng-content select=\"[kbq-icon]\" />\n\n<div #kbqTitleText #text class=\"kbq-list-text\">\n <ng-content />\n <ng-content select=\"[kbq-list-option-caption]\" />\n</div>\n\n@if (actionButton()) {\n <kbq-action-container>\n <ng-content select=\"kbq-option-action\" />\n </kbq-action-container>\n}\n\n@if (listSelection.dragPreview() === 'text') {\n <!--\n Registers with the host `CdkDrag` through `CDK_DRAG_PARENT`, not through a content query, which\n is why it can live in the option's own view. The template body is a single element and nothing\n else: CDK wraps the view in a plain div otherwise, and that wrapper \u2014 not this plate \u2014 would\n become the preview. The plate is decorative, it repeats text the listbox already exposes.\n -->\n <ng-template cdkDragPreview>\n <div class=\"kbq-list-drag-preview_text\" aria-hidden=\"true\">\n <!-- Read on render rather than cached on `started`: CDK builds the preview before it emits. -->\n @let text = getDragPreviewText();\n <div class=\"kbq-list-drag-preview__label\">{{ text.label }}</div>\n @if (text.caption) {\n <div class=\"kbq-list-drag-preview__caption\">{{ text.caption }}</div>\n }\n </div>\n </ng-template>\n}\n" }]
|
|
1245
|
+
}], ctorParameters: () => [], propDecorators: { actionButton: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqOptionActionComponent), { isSignal: true }] }], tooltipTrigger: [{
|
|
750
1246
|
type: ContentChild,
|
|
751
1247
|
args: [KbqTooltipTrigger]
|
|
752
1248
|
}], dropdownTrigger: [{
|
|
753
1249
|
type: ContentChild,
|
|
754
1250
|
args: [KbqDropdownTrigger]
|
|
755
|
-
}], pseudoCheckbox: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqPseudoCheckbox), { isSignal: true }] }], text: [{ type: i0.ViewChild, args: ['text', { isSignal: true }] }], textElement: [{
|
|
1251
|
+
}], pseudoCheckbox: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqPseudoCheckbox), { isSignal: true }] }], dragHandles: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => CDK_DRAG_HANDLE), { ...{ descendants: true }, isSignal: true }] }], text: [{ type: i0.ViewChild, args: ['text', { isSignal: true }] }], textElement: [{
|
|
756
1252
|
type: ViewChild,
|
|
757
1253
|
args: ['kbqTitleText', { static: false }]
|
|
758
1254
|
}], checkboxPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "checkboxPosition", required: false }] }], value: [{
|
|
@@ -760,6 +1256,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
760
1256
|
}], disabled: [{
|
|
761
1257
|
type: Input,
|
|
762
1258
|
args: [{ transform: booleanAttribute }]
|
|
1259
|
+
}], draggable: [{
|
|
1260
|
+
type: Input,
|
|
1261
|
+
args: [{ transform: booleanAttribute }]
|
|
763
1262
|
}], showCheckbox: [{
|
|
764
1263
|
type: Input
|
|
765
1264
|
}], selected: [{
|
|
@@ -767,15 +1266,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
767
1266
|
args: [{ transform: booleanAttribute }]
|
|
768
1267
|
}] } });
|
|
769
1268
|
|
|
770
|
-
|
|
1269
|
+
/**
|
|
1270
|
+
* A plain, non-selectable list container.
|
|
1271
|
+
*
|
|
1272
|
+
* Intentionally carries no ARIA role: it is used both as a semantic list (consumers add
|
|
1273
|
+
* `role="list"` themselves, as `kbq-file-upload` does) and as a purely visual grouping.
|
|
1274
|
+
* For a selectable listbox use `kbq-list-selection` instead.
|
|
1275
|
+
*/
|
|
771
1276
|
class KbqList {
|
|
772
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
773
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: KbqList, isStandalone: true, selector: "kbq-list", host: { classAttribute: "kbq-list" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-list,.kbq-list-selection{display:block;outline:none}.kbq-list-item,.kbq-list-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-list-item .kbq-list-text>*,.kbq-list-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-list-item .kbq-list-text:empty,.kbq-list-option .kbq-list-text:empty{display:none}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-list-item .kbq-list-option-caption,.kbq-list-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-list-item,.kbq-list-option{border-radius:var(--kbq-size-border-radius)}.kbq-list-item:is(.kbq-selected):has(+:is(.kbq-selected)),.kbq-list-option:is(.kbq-selected):has(+:is(.kbq-selected)){border-bottom-left-radius:unset;border-bottom-right-radius:unset}.kbq-list-item:is(.kbq-selected)+:is(.kbq-selected),.kbq-list-option:is(.kbq-selected)+:is(.kbq-selected){border-top-left-radius:unset;border-top-right-radius:unset}.kbq-list-item:not(.kbq-disabled),.kbq-list-option:not(.kbq-disabled){cursor:pointer}.kbq-list-item:not(.kbq-disabled).kbq-hovered .kbq-action-container,.kbq-list-item:not(.kbq-disabled):hover .kbq-action-container,.kbq-list-item:not(.kbq-disabled).kbq-focused .kbq-action-container,.kbq-list-item:not(.kbq-disabled).kbq-action-button-focused .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-hovered .kbq-action-container,.kbq-list-option:not(.kbq-disabled):hover .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-focused .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-action-button-focused .kbq-action-container{display:flex}.kbq-list-option{--kbq-option-background: var(--kbq-list-default-container-background);background:var(--kbq-list-default-container-background)}.kbq-list-option .kbq-list-text{color:var(--kbq-list-default-text-color)}.kbq-list-option .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-color)}.kbq-list-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color)}.kbq-list-option .kbq-list-option-caption{color:var(--kbq-list-default-caption-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled),.kbq-list-option:hover:not(.kbq-disabled),.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-hover-container-background);background:var(--kbq-list-states-hover-container-background)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-text,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-text,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-hover-text-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-hover-caption-color)}.kbq-list-option.kbq-active:not(.kbq-disabled),.kbq-list-option:active:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-active-container-background);background:var(--kbq-list-states-active-container-background)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-list-text,.kbq-list-option:active:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-active-text-color)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option:active:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-active-icon-color)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option:active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-active-icon-button-color)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option:active:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-active-caption-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-selected-container-background);background:var(--kbq-list-states-selected-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-selected-text-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-selected-caption-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-states-selected-hover-container-background);background:var(--kbq-list-states-selected-hover-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-states-selected-hover-text-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-states-selected-hover-caption-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-states-selected-active-container-background);background:var(--kbq-list-states-selected-active-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-text,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-list-text{color:var(--kbq-list-states-selected-active-text-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-active-icon-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-active-icon-button-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-option-caption,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-list-option-caption{color:var(--kbq-list-states-selected-active-caption-color)}.kbq-list-option.kbq-disabled{--kbq-option-background: var(--kbq-list-states-disabled-container-background);background:var(--kbq-list-states-disabled-container-background)}.kbq-list-option.kbq-disabled .kbq-list-text{color:var(--kbq-list-states-disabled-text-color)}.kbq-list-option.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-color)}.kbq-list-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color)}.kbq-list-option.kbq-disabled .kbq-list-option-caption{color:var(--kbq-list-states-disabled-caption-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-multiple-states-selected-container-background);background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-multiple-states-selected-text-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-multiple-states-selected-hover-container-background);background:var(--kbq-list-multiple-states-selected-hover-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-multiple-states-selected-hover-text-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-multiple-states-selected-active-container-background);background:var(--kbq-list-multiple-states-selected-active-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-text,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-list-text{color:var(--kbq-list-multiple-states-selected-active-text-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-active-icon-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-active-icon-button-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-option-caption,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-active-caption-color)}.kbq-list-selection.cdk-keyboard-focused .kbq-list-option.kbq-focused{border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-list-item,.kbq-list-option{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-list-item .kbq-list-text .kbq-list-option-caption,.kbq-list-option .kbq-list-text .kbq-list-option-caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-list,.kbq-list-selection{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-size-header-padding-top: var(--kbq-size-s);--kbq-list-size-header-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-header-padding-horizontal: var(--kbq-size-m);--kbq-list-size-subheading-padding-top: var(--kbq-size-m);--kbq-list-size-subheading-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-subheading-padding-horizontal: var(--kbq-size-m);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1277
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqList, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1278
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.30", type: KbqList, isStandalone: true, selector: "kbq-list", host: { classAttribute: "kbq-list" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-list,.kbq-list-selection{display:block;outline:none}.kbq-list-selection_horizontal{display:flex;flex-direction:row}.kbq-list-selection_horizontal .kbq-list-option{flex:0 0 auto}.kbq-list-selection{position:relative}.kbq-list-item,.kbq-list-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-list-item .kbq-list-text>*,.kbq-list-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-list-item .kbq-list-text:empty,.kbq-list-option .kbq-list-text:empty{display:none}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-list-item .kbq-list-option-caption,.kbq-list-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-list-item,.kbq-list-option{border-width:var(--kbq-list-size-container-focus-outline-width, var(--kbq-size-3xs));border-radius:var(--kbq-size-border-radius);gap:var(--kbq-list-size-container-content-gap-horizontal, var(--kbq-size-s));padding-top:var(--kbq-list-size-container-padding-vertical, var(--kbq-size-xxs));padding-right:calc(var(--kbq-list-size-container-padding-right, var(--kbq-size-m)) - var(--kbq-list-size-container-focus-outline-width, var(--kbq-size-3xs)));padding-bottom:var(--kbq-list-size-container-padding-vertical, var(--kbq-size-xxs));padding-left:calc(var(--kbq-list-size-container-padding-left, var(--kbq-size-m)) - var(--kbq-list-size-container-focus-outline-width, var(--kbq-size-3xs)))}.kbq-list-item .kbq-list-option-caption,.kbq-list-option .kbq-list-option-caption{padding-top:var(--kbq-list-size-container-content-gap-vertical, var(--kbq-size-3xs))}.kbq-list-item:not(.kbq-disabled),.kbq-list-option:not(.kbq-disabled){cursor:pointer}body:has(.kbq-list-drag-preview){cursor:grabbing}body:has(.kbq-list-drag-preview) .kbq-list-option.kbq-list-option_draggable,body:has(.kbq-list-drag-preview) .kbq-list-option_draggable .cdk-drag-handle{cursor:grabbing}body:has(.kbq-list-drag-preview) .kbq-list-option{pointer-events:none}body:has(.kbq-list-drag-preview) .kbq-optgroup-label{cursor:inherit}body:has(.kbq-list-drag-preview):has(.kbq-list-option_drop-forbidden){cursor:no-drop}.kbq-list-option:is(.kbq-selected):has(+:is(.kbq-selected)){border-bottom-left-radius:unset;border-bottom-right-radius:unset}.kbq-list-option:is(.kbq-selected)+:is(.kbq-selected){border-top-left-radius:unset;border-top-right-radius:unset}.kbq-list-option:not(.kbq-disabled):hover .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-hovered .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-action-button-focused .kbq-action-container{display:flex}.kbq-list-selection.cdk-keyboard-focused .kbq-list-option:not(.kbq-disabled).kbq-focused .kbq-action-container{display:flex}.kbq-list-option.kbq-list-option_draggable .cdk-drag-handle{cursor:grab}.kbq-list-option.kbq-list-option_grab-cursor:not(:has(.cdk-drag-handle)){cursor:grab}.kbq-list-option.cdk-drag-placeholder,.kbq-list-option.cdk-drag-anchor{opacity:var(--kbq-opacity-disabled)}.kbq-list-option.kbq-list-option_foreign-placeholder{display:none}.kbq-list-selection__drop-indicator{position:absolute;background:var(--kbq-list-states-dragged-indicator-color);pointer-events:none}.kbq-list-selection:not(.kbq-list-selection_horizontal) .kbq-list-selection__drop-indicator{left:0;right:0;top:calc(var(--kbq-list-drop-indicator-offset, 0px) - var(--kbq-list-size-dragged-indicator-thickness) / 2);block-size:var(--kbq-list-size-dragged-indicator-thickness)}.kbq-list-selection_horizontal .kbq-list-selection__drop-indicator{top:0;bottom:0;left:calc(var(--kbq-list-drop-indicator-offset, 0px) - var(--kbq-list-size-dragged-indicator-thickness) / 2);inline-size:var(--kbq-list-size-dragged-indicator-thickness)}.kbq-list-option{--kbq-option-background: var(--kbq-list-default-container-background, transparent);background:var(--kbq-list-default-container-background, transparent)}.kbq-list-option .kbq-list-text{color:var(--kbq-list-default-text-color, var(--kbq-list-default-text-color))}.kbq-list-option .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option .kbq-list-option-caption{color:var(--kbq-list-default-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled),.kbq-list-option:hover:not(.kbq-disabled),.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-hover-container-background, transparent);background:var(--kbq-list-states-hover-container-background, transparent)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-text,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-text,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-hover-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-hover-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-active:not(.kbq-disabled),.kbq-list-option:active:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-active-container-background);background:var(--kbq-list-states-active-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-selected-container-background, transparent);background:var(--kbq-list-states-selected-container-background, transparent)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-selected-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-selected-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-states-selected-hover-container-background, transparent);background:var(--kbq-list-states-selected-hover-container-background, transparent)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-states-selected-hover-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-states-selected-hover-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-states-selected-active-container-background);background:var(--kbq-list-states-selected-active-container-background)}.kbq-list-option.kbq-disabled{--kbq-option-background: var(--kbq-list-states-disabled-container-background, transparent);background:var(--kbq-list-states-disabled-container-background, transparent)}.kbq-list-option.kbq-disabled .kbq-list-text{color:var(--kbq-list-states-disabled-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-disabled .kbq-list-option-caption{color:var(--kbq-list-states-disabled-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-selected.kbq-disabled{--kbq-option-background: var(--kbq-list-states-selected-container-background);background:var(--kbq-list-states-selected-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-multiple-states-selected-container-background, transparent);background:var(--kbq-list-multiple-states-selected-container-background, transparent)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-multiple-states-selected-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-multiple-states-selected-hover-container-background, transparent);background:var(--kbq-list-multiple-states-selected-hover-container-background, transparent)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-multiple-states-selected-hover-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-multiple-states-selected-active-container-background);background:var(--kbq-list-multiple-states-selected-active-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected.kbq-disabled{--kbq-option-background: var(--kbq-list-multiple-states-selected-container-background);background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-list-selection.cdk-keyboard-focused .kbq-list-option.kbq-focused{border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-list-item,.kbq-list-option,.kbq-list-drag-preview_text{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-list-item .kbq-list-text .kbq-list-option-caption,.kbq-list-option .kbq-list-text .kbq-list-option-caption,.kbq-list-drag-preview_text .kbq-list-text .kbq-list-option-caption,.kbq-list-item .kbq-list-drag-preview__caption,.kbq-list-option .kbq-list-drag-preview__caption,.kbq-list-drag-preview_text .kbq-list-drag-preview__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-list-option.cdk-drag-preview{background:var(--kbq-list-states-dragged-container-background);box-shadow:var(--kbq-list-states-dragged-container-shadow)}.kbq-list-drag-preview_text{box-sizing:border-box;max-inline-size:var(--kbq-list-size-drag-preview-max-width);border-radius:var(--kbq-size-border-radius);padding:var(--kbq-list-size-container-padding-vertical) var(--kbq-list-size-container-padding-right) var(--kbq-list-size-container-padding-vertical) var(--kbq-list-size-container-padding-left);background:var(--kbq-list-states-drag-preview-background);box-shadow:var(--kbq-list-states-dragged-container-shadow);color:var(--kbq-list-default-text-color)}.kbq-list-drag-preview_text .kbq-list-drag-preview__label,.kbq-list-drag-preview_text .kbq-list-drag-preview__caption{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kbq-list-drag-preview_text .kbq-list-drag-preview__caption{color:var(--kbq-list-default-caption-color);padding-top:var(--kbq-list-size-container-content-gap-vertical)}\n", "@charset \"UTF-8\";.kbq-list,.kbq-list-selection,.kbq-list-option.cdk-drag-preview,.kbq-list-drag-preview_text{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xxs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-hover-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-multiple-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-multiple-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-multiple-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-multiple-states-selected-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-multiple-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-multiple-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-multiple-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-multiple-states-selected-hover-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled);--kbq-list-states-dragged-container-background: var(--kbq-background-card);--kbq-list-states-dragged-container-shadow: var(--kbq-shadow-popup)}.kbq-list-selection{--kbq-list-size-dragged-indicator-thickness: var(--kbq-size-3xs);--kbq-list-states-dragged-indicator-color: var(--kbq-line-theme)}.kbq-list-drag-preview_text{--kbq-list-size-drag-preview-max-width: 480px;--kbq-list-states-drag-preview-background: color-mix( in srgb, var(--kbq-background-card) calc(var(--kbq-opacity-overlay) * 100%), transparent )}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
774
1279
|
}
|
|
775
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1280
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqList, decorators: [{
|
|
776
1281
|
type: Component,
|
|
777
|
-
args: [{ selector: 'kbq-list', template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'kbq-list' }, styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-list,.kbq-list-selection{display:block;outline:none}.kbq-list-item,.kbq-list-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-list-item .kbq-list-text>*,.kbq-list-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-list-item .kbq-list-text:empty,.kbq-list-option .kbq-list-text:empty{display:none}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-list-item .kbq-list-option-caption,.kbq-list-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-list-item,.kbq-list-option{border-radius:var(--kbq-size-border-radius)}.kbq-list-item:is(.kbq-selected):has(+:is(.kbq-selected)),.kbq-list-option:is(.kbq-selected):has(+:is(.kbq-selected)){border-bottom-left-radius:unset;border-bottom-right-radius:unset}.kbq-list-item:is(.kbq-selected)+:is(.kbq-selected),.kbq-list-option:is(.kbq-selected)+:is(.kbq-selected){border-top-left-radius:unset;border-top-right-radius:unset}.kbq-list-item:not(.kbq-disabled),.kbq-list-option:not(.kbq-disabled){cursor:pointer}.kbq-list-item:not(.kbq-disabled).kbq-hovered .kbq-action-container,.kbq-list-item:not(.kbq-disabled):hover .kbq-action-container,.kbq-list-item:not(.kbq-disabled).kbq-focused .kbq-action-container,.kbq-list-item:not(.kbq-disabled).kbq-action-button-focused .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-hovered .kbq-action-container,.kbq-list-option:not(.kbq-disabled):hover .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-focused .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-action-button-focused .kbq-action-container{display:flex}.kbq-list-option{--kbq-option-background: var(--kbq-list-default-container-background);background:var(--kbq-list-default-container-background)}.kbq-list-option .kbq-list-text{color:var(--kbq-list-default-text-color)}.kbq-list-option .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-color)}.kbq-list-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color)}.kbq-list-option .kbq-list-option-caption{color:var(--kbq-list-default-caption-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled),.kbq-list-option:hover:not(.kbq-disabled),.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-hover-container-background);background:var(--kbq-list-states-hover-container-background)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-text,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-text,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-hover-text-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-hover-caption-color)}.kbq-list-option.kbq-active:not(.kbq-disabled),.kbq-list-option:active:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-active-container-background);background:var(--kbq-list-states-active-container-background)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-list-text,.kbq-list-option:active:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-active-text-color)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option:active:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-active-icon-color)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option:active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-active-icon-button-color)}.kbq-list-option.kbq-active:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option:active:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-active-caption-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-selected-container-background);background:var(--kbq-list-states-selected-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-selected-text-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-selected-caption-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-states-selected-hover-container-background);background:var(--kbq-list-states-selected-hover-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-states-selected-hover-text-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-states-selected-hover-caption-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-states-selected-active-container-background);background:var(--kbq-list-states-selected-active-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-text,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-list-text{color:var(--kbq-list-states-selected-active-text-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-active-icon-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-active-icon-button-color)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-option-caption,.kbq-list-option.kbq-selected:not(.kbq-disabled):active .kbq-list-option-caption{color:var(--kbq-list-states-selected-active-caption-color)}.kbq-list-option.kbq-disabled{--kbq-option-background: var(--kbq-list-states-disabled-container-background);background:var(--kbq-list-states-disabled-container-background)}.kbq-list-option.kbq-disabled .kbq-list-text{color:var(--kbq-list-states-disabled-text-color)}.kbq-list-option.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-color)}.kbq-list-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color)}.kbq-list-option.kbq-disabled .kbq-list-option-caption{color:var(--kbq-list-states-disabled-caption-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-multiple-states-selected-container-background);background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-multiple-states-selected-text-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-multiple-states-selected-hover-container-background);background:var(--kbq-list-multiple-states-selected-hover-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-multiple-states-selected-hover-text-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-multiple-states-selected-active-container-background);background:var(--kbq-list-multiple-states-selected-active-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-text,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-list-text{color:var(--kbq-list-multiple-states-selected-active-text-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-active-icon-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-active-icon-button-color)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-list-option-caption,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-active-caption-color)}.kbq-list-selection.cdk-keyboard-focused .kbq-list-option.kbq-focused{border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-list-item,.kbq-list-option{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-list-item .kbq-list-text .kbq-list-option-caption,.kbq-list-option .kbq-list-text .kbq-list-option-caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-list,.kbq-list-selection{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-size-header-padding-top: var(--kbq-size-s);--kbq-list-size-header-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-header-padding-horizontal: var(--kbq-size-m);--kbq-list-size-subheading-padding-top: var(--kbq-size-m);--kbq-list-size-subheading-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-subheading-padding-horizontal: var(--kbq-size-m);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}\n"] }]
|
|
1282
|
+
args: [{ selector: 'kbq-list', template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'kbq-list' }, styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-list,.kbq-list-selection{display:block;outline:none}.kbq-list-selection_horizontal{display:flex;flex-direction:row}.kbq-list-selection_horizontal .kbq-list-option{flex:0 0 auto}.kbq-list-selection{position:relative}.kbq-list-item,.kbq-list-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-list-item .kbq-list-text>*,.kbq-list-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-list-item .kbq-list-text:empty,.kbq-list-option .kbq-list-text:empty{display:none}.kbq-list-item .kbq-list-text,.kbq-list-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-list-item .kbq-list-option-caption,.kbq-list-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-list-item,.kbq-list-option{border-width:var(--kbq-list-size-container-focus-outline-width, var(--kbq-size-3xs));border-radius:var(--kbq-size-border-radius);gap:var(--kbq-list-size-container-content-gap-horizontal, var(--kbq-size-s));padding-top:var(--kbq-list-size-container-padding-vertical, var(--kbq-size-xxs));padding-right:calc(var(--kbq-list-size-container-padding-right, var(--kbq-size-m)) - var(--kbq-list-size-container-focus-outline-width, var(--kbq-size-3xs)));padding-bottom:var(--kbq-list-size-container-padding-vertical, var(--kbq-size-xxs));padding-left:calc(var(--kbq-list-size-container-padding-left, var(--kbq-size-m)) - var(--kbq-list-size-container-focus-outline-width, var(--kbq-size-3xs)))}.kbq-list-item .kbq-list-option-caption,.kbq-list-option .kbq-list-option-caption{padding-top:var(--kbq-list-size-container-content-gap-vertical, var(--kbq-size-3xs))}.kbq-list-item:not(.kbq-disabled),.kbq-list-option:not(.kbq-disabled){cursor:pointer}body:has(.kbq-list-drag-preview){cursor:grabbing}body:has(.kbq-list-drag-preview) .kbq-list-option.kbq-list-option_draggable,body:has(.kbq-list-drag-preview) .kbq-list-option_draggable .cdk-drag-handle{cursor:grabbing}body:has(.kbq-list-drag-preview) .kbq-list-option{pointer-events:none}body:has(.kbq-list-drag-preview) .kbq-optgroup-label{cursor:inherit}body:has(.kbq-list-drag-preview):has(.kbq-list-option_drop-forbidden){cursor:no-drop}.kbq-list-option:is(.kbq-selected):has(+:is(.kbq-selected)){border-bottom-left-radius:unset;border-bottom-right-radius:unset}.kbq-list-option:is(.kbq-selected)+:is(.kbq-selected){border-top-left-radius:unset;border-top-right-radius:unset}.kbq-list-option:not(.kbq-disabled):hover .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-hovered .kbq-action-container,.kbq-list-option:not(.kbq-disabled).kbq-action-button-focused .kbq-action-container{display:flex}.kbq-list-selection.cdk-keyboard-focused .kbq-list-option:not(.kbq-disabled).kbq-focused .kbq-action-container{display:flex}.kbq-list-option.kbq-list-option_draggable .cdk-drag-handle{cursor:grab}.kbq-list-option.kbq-list-option_grab-cursor:not(:has(.cdk-drag-handle)){cursor:grab}.kbq-list-option.cdk-drag-placeholder,.kbq-list-option.cdk-drag-anchor{opacity:var(--kbq-opacity-disabled)}.kbq-list-option.kbq-list-option_foreign-placeholder{display:none}.kbq-list-selection__drop-indicator{position:absolute;background:var(--kbq-list-states-dragged-indicator-color);pointer-events:none}.kbq-list-selection:not(.kbq-list-selection_horizontal) .kbq-list-selection__drop-indicator{left:0;right:0;top:calc(var(--kbq-list-drop-indicator-offset, 0px) - var(--kbq-list-size-dragged-indicator-thickness) / 2);block-size:var(--kbq-list-size-dragged-indicator-thickness)}.kbq-list-selection_horizontal .kbq-list-selection__drop-indicator{top:0;bottom:0;left:calc(var(--kbq-list-drop-indicator-offset, 0px) - var(--kbq-list-size-dragged-indicator-thickness) / 2);inline-size:var(--kbq-list-size-dragged-indicator-thickness)}.kbq-list-option{--kbq-option-background: var(--kbq-list-default-container-background, transparent);background:var(--kbq-list-default-container-background, transparent)}.kbq-list-option .kbq-list-text{color:var(--kbq-list-default-text-color, var(--kbq-list-default-text-color))}.kbq-list-option .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option .kbq-list-option-caption{color:var(--kbq-list-default-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled),.kbq-list-option:hover:not(.kbq-disabled),.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-hover-container-background, transparent);background:var(--kbq-list-states-hover-container-background, transparent)}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-text,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-text,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-hover-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option:hover:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-hovered:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option:hover:not(.kbq-disabled) .kbq-list-option-caption,.kbq-list-option.kbq-action-button-focused:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-hover-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-active:not(.kbq-disabled),.kbq-list-option:active:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-active-container-background);background:var(--kbq-list-states-active-container-background)}.kbq-list-option.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-states-selected-container-background, transparent);background:var(--kbq-list-states-selected-container-background, transparent)}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-states-selected-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-states-selected-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-states-selected-hover-container-background, transparent);background:var(--kbq-list-states-selected-hover-container-background, transparent)}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-states-selected-hover-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-states-selected-hover-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-states-selected-active-container-background);background:var(--kbq-list-states-selected-active-container-background)}.kbq-list-option.kbq-disabled{--kbq-option-background: var(--kbq-list-states-disabled-container-background, transparent);background:var(--kbq-list-states-disabled-container-background, transparent)}.kbq-list-option.kbq-disabled .kbq-list-text{color:var(--kbq-list-states-disabled-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-disabled .kbq-list-option-caption{color:var(--kbq-list-states-disabled-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-selected.kbq-disabled{--kbq-option-background: var(--kbq-list-states-selected-container-background);background:var(--kbq-list-states-selected-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled){--kbq-option-background: var(--kbq-list-multiple-states-selected-container-background, transparent);background:var(--kbq-list-multiple-states-selected-container-background, transparent)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-text{color:var(--kbq-list-multiple-states-selected-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled) .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover{--kbq-option-background: var(--kbq-list-multiple-states-selected-hover-container-background, transparent);background:var(--kbq-list-multiple-states-selected-hover-container-background, transparent)}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-text,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-text{color:var(--kbq-list-multiple-states-selected-hover-text-color, var(--kbq-list-default-text-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-color, var(--kbq-list-default-icon-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-option-action .kbq-icon.kbq-empty,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color, var(--kbq-list-default-icon-button-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-hovered .kbq-list-option-caption,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):hover .kbq-list-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color, var(--kbq-list-default-caption-color))}.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled).kbq-active,.kbq-list-option.kbq-list-option_multiple.kbq-selected:not(.kbq-disabled):active{--kbq-option-background: var(--kbq-list-multiple-states-selected-active-container-background);background:var(--kbq-list-multiple-states-selected-active-container-background)}.kbq-list-option.kbq-list-option_multiple.kbq-selected.kbq-disabled{--kbq-option-background: var(--kbq-list-multiple-states-selected-container-background);background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-list-selection.cdk-keyboard-focused .kbq-list-option.kbq-focused{border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-list-item,.kbq-list-option,.kbq-list-drag-preview_text{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-list-item .kbq-list-text .kbq-list-option-caption,.kbq-list-option .kbq-list-text .kbq-list-option-caption,.kbq-list-drag-preview_text .kbq-list-text .kbq-list-option-caption,.kbq-list-item .kbq-list-drag-preview__caption,.kbq-list-option .kbq-list-drag-preview__caption,.kbq-list-drag-preview_text .kbq-list-drag-preview__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-list-option.cdk-drag-preview{background:var(--kbq-list-states-dragged-container-background);box-shadow:var(--kbq-list-states-dragged-container-shadow)}.kbq-list-drag-preview_text{box-sizing:border-box;max-inline-size:var(--kbq-list-size-drag-preview-max-width);border-radius:var(--kbq-size-border-radius);padding:var(--kbq-list-size-container-padding-vertical) var(--kbq-list-size-container-padding-right) var(--kbq-list-size-container-padding-vertical) var(--kbq-list-size-container-padding-left);background:var(--kbq-list-states-drag-preview-background);box-shadow:var(--kbq-list-states-dragged-container-shadow);color:var(--kbq-list-default-text-color)}.kbq-list-drag-preview_text .kbq-list-drag-preview__label,.kbq-list-drag-preview_text .kbq-list-drag-preview__caption{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kbq-list-drag-preview_text .kbq-list-drag-preview__caption{color:var(--kbq-list-default-caption-color);padding-top:var(--kbq-list-size-container-content-gap-vertical)}\n", "@charset \"UTF-8\";.kbq-list,.kbq-list-selection,.kbq-list-option.cdk-drag-preview,.kbq-list-drag-preview_text{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xxs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-hover-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-multiple-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-multiple-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-multiple-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-multiple-states-selected-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-multiple-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-multiple-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-multiple-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-multiple-states-selected-hover-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled);--kbq-list-states-dragged-container-background: var(--kbq-background-card);--kbq-list-states-dragged-container-shadow: var(--kbq-shadow-popup)}.kbq-list-selection{--kbq-list-size-dragged-indicator-thickness: var(--kbq-size-3xs);--kbq-list-states-dragged-indicator-color: var(--kbq-line-theme)}.kbq-list-drag-preview_text{--kbq-list-size-drag-preview-max-width: 480px;--kbq-list-states-drag-preview-background: color-mix( in srgb, var(--kbq-background-card) calc(var(--kbq-opacity-overlay) * 100%), transparent )}\n"] }]
|
|
778
1283
|
}] });
|
|
1284
|
+
/** A single row of a `kbq-list`. Non-selectable — see `kbq-list-option` for the selectable variant. */
|
|
779
1285
|
class KbqListItem {
|
|
780
1286
|
constructor() {
|
|
781
1287
|
this.elementRef = inject(ElementRef);
|
|
@@ -783,19 +1289,19 @@ class KbqListItem {
|
|
|
783
1289
|
ngAfterContentInit() {
|
|
784
1290
|
new KbqLineSetter(this.lines, this.elementRef);
|
|
785
1291
|
}
|
|
1292
|
+
getHostElement() {
|
|
1293
|
+
return this.elementRef.nativeElement;
|
|
1294
|
+
}
|
|
786
1295
|
handleFocus() {
|
|
787
1296
|
this.elementRef.nativeElement.classList.add('kbq-focused');
|
|
788
1297
|
}
|
|
789
1298
|
handleBlur() {
|
|
790
1299
|
this.elementRef.nativeElement.classList.remove('kbq-focused');
|
|
791
1300
|
}
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
}
|
|
795
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqListItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
796
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: KbqListItem, isStandalone: true, selector: "kbq-list-item, a[kbq-list-item]", host: { listeners: { "focus": "handleFocus()", "blur": "handleBlur()" }, classAttribute: "kbq-list-item" }, queries: [{ propertyName: "lines", predicate: KbqLine }], ngImport: i0, template: "<ng-content select=\"[kbq-list-icon], [mcListIcon]\" />\n\n<div class=\"kbq-list-text\">\n <ng-content select=\"[kbq-line], [mcLine]\" />\n</div>\n\n<ng-content />\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1301
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqListItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1302
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.30", type: KbqListItem, isStandalone: true, selector: "kbq-list-item, a[kbq-list-item]", host: { listeners: { "focus": "handleFocus()", "blur": "handleBlur()" }, classAttribute: "kbq-list-item" }, queries: [{ propertyName: "lines", predicate: KbqLine }], ngImport: i0, template: "<ng-content select=\"[kbq-list-icon], [mcListIcon]\" />\n\n<div class=\"kbq-list-text\">\n <ng-content select=\"[kbq-line], [mcLine]\" />\n</div>\n\n<ng-content />\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
797
1303
|
}
|
|
798
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1304
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqListItem, decorators: [{
|
|
799
1305
|
type: Component,
|
|
800
1306
|
args: [{ selector: 'kbq-list-item, a[kbq-list-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
801
1307
|
class: 'kbq-list-item',
|
|
@@ -808,8 +1314,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
808
1314
|
}] } });
|
|
809
1315
|
|
|
810
1316
|
class KbqListModule {
|
|
811
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
812
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
1317
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1318
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.30", ngImport: i0, type: KbqListModule, imports: [A11yModule,
|
|
1319
|
+
// Re-exported so that a drag handle can be projected into an option without the consumer
|
|
1320
|
+
// reaching into `@angular/cdk/drag-drop` — the list hides CDK everywhere else.
|
|
1321
|
+
CdkDragHandle,
|
|
813
1322
|
KbqPseudoCheckboxModule,
|
|
814
1323
|
KbqLine,
|
|
815
1324
|
KbqOptionModule,
|
|
@@ -819,24 +1328,28 @@ class KbqListModule {
|
|
|
819
1328
|
KbqListSelection,
|
|
820
1329
|
KbqListItem,
|
|
821
1330
|
KbqListOption,
|
|
822
|
-
KbqListOptionCaption], exports: [
|
|
1331
|
+
KbqListOptionCaption], exports: [CdkDragHandle,
|
|
1332
|
+
KbqList,
|
|
823
1333
|
KbqListSelection,
|
|
824
1334
|
KbqListItem,
|
|
825
1335
|
KbqListOption,
|
|
826
1336
|
KbqListOptionCaption,
|
|
827
1337
|
KbqOptionModule] }); }
|
|
828
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
1338
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqListModule, imports: [A11yModule,
|
|
829
1339
|
KbqPseudoCheckboxModule,
|
|
830
1340
|
KbqOptionModule,
|
|
831
1341
|
KbqActionContainer,
|
|
832
1342
|
KbqIconModule,
|
|
833
1343
|
KbqListOption, KbqOptionModule] }); }
|
|
834
1344
|
}
|
|
835
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1345
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqListModule, decorators: [{
|
|
836
1346
|
type: NgModule,
|
|
837
1347
|
args: [{
|
|
838
1348
|
imports: [
|
|
839
1349
|
A11yModule,
|
|
1350
|
+
// Re-exported so that a drag handle can be projected into an option without the consumer
|
|
1351
|
+
// reaching into `@angular/cdk/drag-drop` — the list hides CDK everywhere else.
|
|
1352
|
+
CdkDragHandle,
|
|
840
1353
|
KbqPseudoCheckboxModule,
|
|
841
1354
|
KbqLine,
|
|
842
1355
|
KbqOptionModule,
|
|
@@ -849,6 +1362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
849
1362
|
KbqListOptionCaption
|
|
850
1363
|
],
|
|
851
1364
|
exports: [
|
|
1365
|
+
CdkDragHandle,
|
|
852
1366
|
KbqList,
|
|
853
1367
|
KbqListSelection,
|
|
854
1368
|
KbqListItem,
|