@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
package/filter-bar/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { AfterViewInit, ChangeDetectorRef, DestroyRef, ElementRef, TemplateRef, InjectionToken, ModelSignal, Signal, OutputEmitterRef, Type, Provider, OnInit, AfterContentInit } from '@angular/core';
|
|
3
3
|
import * as _koobiq_components_core from '@koobiq/components/core';
|
|
4
|
-
import { PopUpPlacements, KbqComponentColors, PopUpSizes, KbqOption, DateAdapter, DateFormatter, KbqPseudoCheckboxState } from '@koobiq/components/core';
|
|
4
|
+
import { KbqPanelMaxHeight, PopUpPlacements, KbqComponentColors, PopUpSizes, KbqOption, DateAdapter, DateFormatter, KbqPseudoCheckboxState } from '@koobiq/components/core';
|
|
5
5
|
import { Subject, BehaviorSubject, Observable } from 'rxjs';
|
|
6
6
|
import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
|
|
7
7
|
import { FormControl, FormGroup } from '@angular/forms';
|
|
@@ -10,6 +10,7 @@ import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
|
|
|
10
10
|
import { KbqPopoverTrigger } from '@koobiq/components/popover';
|
|
11
11
|
import { KbqSelect } from '@koobiq/components/select';
|
|
12
12
|
import { KbqListSelection } from '@koobiq/components/list';
|
|
13
|
+
import { KbqInput } from '@koobiq/components/input';
|
|
13
14
|
import { FlatTreeControl, KbqTreeFlattener, KbqTreeFlatDataSource, KbqTreeSelection, KbqTreeOption } from '@koobiq/components/tree';
|
|
14
15
|
import { KbqTreeSelect } from '@koobiq/components/tree-select';
|
|
15
16
|
|
|
@@ -35,8 +36,6 @@ declare abstract class KbqBasePipe<V> implements AfterViewInit {
|
|
|
35
36
|
protected readonly elementRef: ElementRef<HTMLElement>;
|
|
36
37
|
private readonly inputModalityDetector;
|
|
37
38
|
private readonly document;
|
|
38
|
-
/** Last known focus origin within the pipe. Used to preserve the keyboard focus ring on restore. */
|
|
39
|
-
private focusOrigin;
|
|
40
39
|
/**
|
|
41
40
|
* Whether this pipe has been destroyed. Guards deferred (`setTimeout`) work that could otherwise
|
|
42
41
|
* read view queries or mutate `data` after the pipe was removed or the filter switched.
|
|
@@ -47,6 +46,23 @@ declare abstract class KbqBasePipe<V> implements AfterViewInit {
|
|
|
47
46
|
protected values: any;
|
|
48
47
|
/** TemplateRef for selecting an option */
|
|
49
48
|
protected valueTemplate?: TemplateRef<any> | string;
|
|
49
|
+
/**
|
|
50
|
+
* Optional equality comparator forwarded from the pipe template to the underlying `kbq-select`.
|
|
51
|
+
* Only consumed by the select / multi-select pipe components; when unset they fall back to their
|
|
52
|
+
* own id-based `compareByValue`.
|
|
53
|
+
*/
|
|
54
|
+
protected optionCompareWith?: (o1: KbqSelectValue | null | undefined, o2: KbqSelectValue | null | undefined) => boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Values forwarded from the pipe template whose selection the user cannot remove. Only consumed by
|
|
57
|
+
* the multi-select pipe components; other pipe types ignore it.
|
|
58
|
+
*/
|
|
59
|
+
protected lockedValues?: unknown[];
|
|
60
|
+
/**
|
|
61
|
+
* Maximum height of the dropdown panel's scrollable list, forwarded from the pipe template to the
|
|
62
|
+
* underlying `kbq-select` / `kbq-tree-select`. Only consumed by the select-family pipe components;
|
|
63
|
+
* `undefined` leaves the list at the select-family default of 256px.
|
|
64
|
+
*/
|
|
65
|
+
protected panelMaxHeight?: KbqPanelMaxHeight;
|
|
50
66
|
/**
|
|
51
67
|
* Whether the current platform is a Mac.
|
|
52
68
|
*
|
|
@@ -73,10 +89,33 @@ declare abstract class KbqBasePipe<V> implements AfterViewInit {
|
|
|
73
89
|
onRemove(): void;
|
|
74
90
|
/** clears the pipe and triggers changes */
|
|
75
91
|
onClear(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Value a cleared pipe is left with. Overridden by pipes that keep part of their value across a clear
|
|
94
|
+
* — the multi-select pipes hold on to their locked options.
|
|
95
|
+
*
|
|
96
|
+
* @docs-private
|
|
97
|
+
*/
|
|
98
|
+
protected clearedValue(): V | null;
|
|
99
|
+
/**
|
|
100
|
+
* Focus origin to hand to {@link FocusMonitor} whenever this pipe moves focus programmatically, so the
|
|
101
|
+
* `.cdk-keyboard-focused` ring is painted for keyboard navigation only and never for a mouse-driven one.
|
|
102
|
+
*
|
|
103
|
+
* `InputModalityDetector.mostRecentModality` reflects what the user is doing *right now*, and is the
|
|
104
|
+
* only source that stays correct while a panel is open: panel content lives in the CDK overlay
|
|
105
|
+
* container, which is not a DOM descendant of the pipe host, so a focus origin captured on the host
|
|
106
|
+
* itself would freeze at "how the trigger was focused" and couldn't tell a click inside the panel apart
|
|
107
|
+
* from the keypress that opened it. The detector reacts only to `keydown`/`mousedown`/`touchstart`
|
|
108
|
+
* (never to hover or scroll), so merely moving the mouse cannot strip a keyboard user's ring, and it
|
|
109
|
+
* maps a screen reader's synthetic mousedown to `keyboard`. It falls back to `'program'` only before any
|
|
110
|
+
* such interaction has ever occurred on the page — at which point no ring should be shown anyway.
|
|
111
|
+
*
|
|
112
|
+
* @docs-private
|
|
113
|
+
*/
|
|
114
|
+
protected get currentFocusOrigin(): NonNullable<FocusOrigin>;
|
|
76
115
|
/**
|
|
77
116
|
* Restores focus to the pipe's trigger button after a value is chosen or the panel closes.
|
|
78
|
-
* Focuses via {@link FocusMonitor} with
|
|
79
|
-
*
|
|
117
|
+
* Focuses via {@link FocusMonitor} with `currentFocusOrigin` so a keyboard-driven interaction keeps
|
|
118
|
+
* its focus ring, while a mouse-driven one does not.
|
|
80
119
|
*
|
|
81
120
|
* @docs-private
|
|
82
121
|
*/
|
|
@@ -159,6 +198,8 @@ declare const KBQ_FILTER_BAR_DEFAULT_CONFIGURATION: {
|
|
|
159
198
|
customPeriodFrom: string;
|
|
160
199
|
customPeriodTo: string;
|
|
161
200
|
customPeriodErrorHint: string;
|
|
201
|
+
customPeriodMinIntervalErrorHint: string;
|
|
202
|
+
customPeriodMaxIntervalErrorHint: string;
|
|
162
203
|
backToPeriodSelection: string;
|
|
163
204
|
};
|
|
164
205
|
};
|
|
@@ -211,6 +252,8 @@ declare const KBQ_FILTER_BAR_CONFIGURATION: InjectionToken<{
|
|
|
211
252
|
customPeriodFrom: string;
|
|
212
253
|
customPeriodTo: string;
|
|
213
254
|
customPeriodErrorHint: string;
|
|
255
|
+
customPeriodMinIntervalErrorHint: string;
|
|
256
|
+
customPeriodMaxIntervalErrorHint: string;
|
|
214
257
|
backToPeriodSelection: string;
|
|
215
258
|
};
|
|
216
259
|
}>;
|
|
@@ -272,6 +315,8 @@ declare const kbqFilterBarPipesProvider: () => Provider;
|
|
|
272
315
|
declare enum KbqPipeTypes {
|
|
273
316
|
ReadOnly = "readonly",
|
|
274
317
|
Text = "text",
|
|
318
|
+
/** Renders a bare input: no popover, never opens. Commits while typing (debounced), on Enter and on blur. */
|
|
319
|
+
Input = "input",
|
|
275
320
|
Select = "select",
|
|
276
321
|
TreeSelect = "tree-select",
|
|
277
322
|
MultiSelect = "multiselect",
|
|
@@ -327,6 +372,65 @@ interface KbqPipeData<V> extends KbqPipe {
|
|
|
327
372
|
interface KbqPipeTemplate extends Omit<KbqPipe, 'value'> {
|
|
328
373
|
values?: unknown[];
|
|
329
374
|
valueTemplate?: TemplateRef<any> | string;
|
|
375
|
+
/**
|
|
376
|
+
* Custom equality comparator forwarded to the underlying `kbq-select` of the `select` /
|
|
377
|
+
* `multiselect` pipes. When omitted, the pipe's default id-based comparator (`compareByValue`)
|
|
378
|
+
* is used. Ignored by other pipe types.
|
|
379
|
+
*/
|
|
380
|
+
compareWith?: (o1: KbqSelectValue | null | undefined, o2: KbqSelectValue | null | undefined) => boolean;
|
|
381
|
+
/**
|
|
382
|
+
* Options whose selection cannot be removed by the user: they are always selected, render as
|
|
383
|
+
* `disabled` with a checked checkbox, and survive both "select all" toggling and clearing the pipe.
|
|
384
|
+
*
|
|
385
|
+
* Entries have the same shape as the entries of the owning pipe's `value`: `KbqSelectValue` objects
|
|
386
|
+
* for the `multiselect` pipe (matched with `compareWith`, falling back to the pipe's id-based
|
|
387
|
+
* comparator), and raw node values for the `multi-tree-select` pipe. Locking a tree branch locks its
|
|
388
|
+
* whole subtree. Ignored by other pipe types.
|
|
389
|
+
*/
|
|
390
|
+
lockedValues?: unknown[];
|
|
391
|
+
/**
|
|
392
|
+
* Maximum height of the dropdown panel's scrollable list, in pixels, forwarded to the underlying
|
|
393
|
+
* `kbq-select` / `kbq-tree-select` of the `select`, `multiselect`, `tree-select` and `multi-tree-select`
|
|
394
|
+
* pipes. Omitting it — or passing `null` — keeps the select-family default of 256px, i.e. exactly eight
|
|
395
|
+
* 32px options.
|
|
396
|
+
*
|
|
397
|
+
* The cap covers the scrollable list only, and the list's own padding is added on top of it, so a
|
|
398
|
+
* multiple of the option height fits without a scrollbar. The pipe's search field is rendered above the
|
|
399
|
+
* list and adds to the panel's total height, while the "select all" row scrolls with the options and is
|
|
400
|
+
* counted by the cap. A value taller than the room left in the viewport is clipped by the overlay rather
|
|
401
|
+
* than scrolled. Ignored by other pipe types.
|
|
402
|
+
*/
|
|
403
|
+
panelMaxHeight?: KbqPanelMaxHeight;
|
|
404
|
+
/**
|
|
405
|
+
* Earliest selectable instant for the `date` / `datetime` pipe custom period. Accepts any value the
|
|
406
|
+
* configured `DateAdapter` can deserialize (with the default Luxon adapter: an ISO-8601 string, a
|
|
407
|
+
* `Date`, or a `DateTime`). The `date` pipe uses only its day (pinned to the start of day). Ignored by
|
|
408
|
+
* other pipe types.
|
|
409
|
+
*/
|
|
410
|
+
minDateTime?: unknown;
|
|
411
|
+
/**
|
|
412
|
+
* Latest selectable instant for the `date` / `datetime` pipe custom period. See
|
|
413
|
+
* {@link KbqPipeTemplate.minDateTime}. The `date` pipe uses only its day (pinned to the end of day).
|
|
414
|
+
* Ignored by other pipe types.
|
|
415
|
+
*/
|
|
416
|
+
maxDateTime?: unknown;
|
|
417
|
+
/**
|
|
418
|
+
* Minimum length of the `date` / `datetime` pipe custom period (`end − start`), as a Luxon
|
|
419
|
+
* duration-like object, e.g. `{ days: 1 }` or `{ hours: 2 }`. When the selected period is shorter, the
|
|
420
|
+
* editor shows an error and disables Apply. Ignored by other pipe types.
|
|
421
|
+
*
|
|
422
|
+
* Unlike {@link KbqPipeTemplate.minDateTime}, this value is NOT deserialized through the configured
|
|
423
|
+
* `DateAdapter` — it is applied directly via the date value's own `.plus()`, so this option currently
|
|
424
|
+
* assumes the default Luxon adapter and is not portable to other `DateAdapter` implementations (e.g.
|
|
425
|
+
* the Moment adapter).
|
|
426
|
+
*/
|
|
427
|
+
minInterval?: unknown;
|
|
428
|
+
/**
|
|
429
|
+
* Maximum length of the `date` / `datetime` pipe custom period (`end − start`). See
|
|
430
|
+
* {@link KbqPipeTemplate.minInterval}. When the selected period is longer, the editor shows an error and
|
|
431
|
+
* disables Apply. Ignored by other pipe types.
|
|
432
|
+
*/
|
|
433
|
+
maxInterval?: unknown;
|
|
330
434
|
}
|
|
331
435
|
interface KbqSaveFilterError {
|
|
332
436
|
text?: string;
|
|
@@ -388,6 +492,8 @@ declare class KbqFilterReset {
|
|
|
388
492
|
*/
|
|
389
493
|
declare class KbqFilterSavePopover implements AfterViewInit {
|
|
390
494
|
private readonly changeDetectorRef;
|
|
495
|
+
private readonly focusMonitor;
|
|
496
|
+
private readonly inputModalityDetector;
|
|
391
497
|
/** Popover trigger owned by the parent (`KbqFilters` main button). */
|
|
392
498
|
readonly popoverTrigger: _angular_core.InputSignal<KbqPopoverTrigger>;
|
|
393
499
|
/** Filter bar, used for the save payload, the current filter and localized strings. */
|
|
@@ -409,7 +515,8 @@ declare class KbqFilterSavePopover implements AfterViewInit {
|
|
|
409
515
|
/** true if saving a new filter, false if saving changes in filter */
|
|
410
516
|
saveNewFilter: boolean;
|
|
411
517
|
showFilterSavingError: boolean;
|
|
412
|
-
|
|
518
|
+
/** Custom error text passed to `showError()`; `null` when the locale-derived default should be used. */
|
|
519
|
+
private customErrorText;
|
|
413
520
|
isSaving: boolean;
|
|
414
521
|
/** localized data
|
|
415
522
|
* @docs-private */
|
|
@@ -431,6 +538,9 @@ declare class KbqFilterSavePopover implements AfterViewInit {
|
|
|
431
538
|
cancelButton: string;
|
|
432
539
|
actionsTooltip: string;
|
|
433
540
|
};
|
|
541
|
+
/** Filter saving error text (custom or locale-derived).
|
|
542
|
+
* @docs-private */
|
|
543
|
+
get filterSavingErrorText(): string;
|
|
434
544
|
/** header of popover. Depends on the mode */
|
|
435
545
|
get popoverHeader(): string;
|
|
436
546
|
ngAfterViewInit(): void;
|
|
@@ -647,11 +757,15 @@ declare class KbqFilterBar implements KbqFilterBarHost {
|
|
|
647
757
|
customPeriodFrom: string;
|
|
648
758
|
customPeriodTo: string;
|
|
649
759
|
customPeriodErrorHint: string;
|
|
760
|
+
customPeriodMinIntervalErrorHint: string;
|
|
761
|
+
customPeriodMaxIntervalErrorHint: string;
|
|
650
762
|
backToPeriodSelection: string;
|
|
651
763
|
};
|
|
652
764
|
} | null;
|
|
653
765
|
/** Localized strings and configuration for the filter-bar and its pipes. */
|
|
654
|
-
configuration: KbqFilterBarConfiguration;
|
|
766
|
+
get configuration(): KbqFilterBarConfiguration;
|
|
767
|
+
set configuration(value: KbqFilterBarConfiguration);
|
|
768
|
+
private readonly _configuration;
|
|
655
769
|
/** @docs-private */
|
|
656
770
|
readonly filters: _angular_core.Signal<KbqFilters | undefined>;
|
|
657
771
|
/** @docs-private */
|
|
@@ -792,6 +906,8 @@ declare class KbqFilterRefresher {
|
|
|
792
906
|
customPeriodFrom: string;
|
|
793
907
|
customPeriodTo: string;
|
|
794
908
|
customPeriodErrorHint: string;
|
|
909
|
+
customPeriodMinIntervalErrorHint: string;
|
|
910
|
+
customPeriodMaxIntervalErrorHint: string;
|
|
795
911
|
backToPeriodSelection: string;
|
|
796
912
|
};
|
|
797
913
|
};
|
|
@@ -908,12 +1024,53 @@ declare abstract class KbqPipeDateBaseComponent<D> extends KbqBasePipe<KbqDateTi
|
|
|
908
1024
|
protected showStartCalendar: boolean;
|
|
909
1025
|
/** @docs-private */
|
|
910
1026
|
protected showEndCalendar: boolean;
|
|
1027
|
+
/**
|
|
1028
|
+
* Lower bound instant applied to the calendars, date inputs and (datetime) timepickers.
|
|
1029
|
+
* @docs-private
|
|
1030
|
+
*/
|
|
1031
|
+
protected min: any;
|
|
1032
|
+
/**
|
|
1033
|
+
* Upper bound instant applied to the calendars, date inputs and (datetime) timepickers.
|
|
1034
|
+
* @docs-private
|
|
1035
|
+
*/
|
|
1036
|
+
protected max: any;
|
|
1037
|
+
/** Minimum length of the custom period (`end − start`), resolved from the template as a duration-like object. */
|
|
1038
|
+
private minInterval?;
|
|
1039
|
+
/** Maximum length of the custom period (`end − start`), resolved from the template as a duration-like object. */
|
|
1040
|
+
private maxInterval?;
|
|
1041
|
+
/** Canonical duration units (largest-first) used to render an interval limit faithfully to its config. */
|
|
1042
|
+
private static readonly INTERVAL_UNITS;
|
|
911
1043
|
/** @docs-private */
|
|
912
1044
|
readonly popover: _angular_core.Signal<KbqPopoverTrigger>;
|
|
913
1045
|
/** @docs-private */
|
|
914
|
-
readonly listSelection: _angular_core.Signal<KbqListSelection | undefined>;
|
|
1046
|
+
readonly listSelection: _angular_core.Signal<KbqListSelection<any> | undefined>;
|
|
915
1047
|
/** @docs-private */
|
|
916
1048
|
readonly returnButton: _angular_core.Signal<KbqButton>;
|
|
1049
|
+
/** Resolves the `minDateTime` / `maxDateTime` bounds from the pipe template matching this pipe. */
|
|
1050
|
+
private updateDateBounds;
|
|
1051
|
+
/**
|
|
1052
|
+
* Deserializes a `minDateTime` / `maxDateTime` template value, treating an unset (`null`/`undefined`)
|
|
1053
|
+
* value and an unparseable one alike as "no bound", so call sites need no own null-check.
|
|
1054
|
+
*/
|
|
1055
|
+
private toValidDate;
|
|
1056
|
+
/**
|
|
1057
|
+
* Validates a `minInterval` / `maxInterval` template value, treating anything that isn't a genuine
|
|
1058
|
+
* duration-like object — or that resolves to an invalid or sub-second span — as "no constraint"
|
|
1059
|
+
* instead of letting it crash `validateInterval`/`formatInterval` downstream (both call `.plus()` on
|
|
1060
|
+
* it directly). A bare number is rejected too: Luxon would silently read it as milliseconds, which
|
|
1061
|
+
* would otherwise disable the constraint without any error (e.g. a `{ days: 5 }` typo'd as `5`).
|
|
1062
|
+
*/
|
|
1063
|
+
private toValidInterval;
|
|
1064
|
+
/** Clamps `value` into the configured `[min, max]` bounds using full-instant comparison. */
|
|
1065
|
+
private clampToBounds;
|
|
1066
|
+
/**
|
|
1067
|
+
* Cross-field validator flagging the custom period when its length (`end − start`) is outside the
|
|
1068
|
+
* configured `[minInterval, maxInterval]`. Intervals are applied via `DateTime.plus`, so calendar units
|
|
1069
|
+
* (months/years) are respected; unset intervals impose no constraint.
|
|
1070
|
+
*/
|
|
1071
|
+
private validateInterval;
|
|
1072
|
+
/** Formats a duration-like interval as a locale-aware human string via the formatter, e.g. "7 дней". */
|
|
1073
|
+
private formatInterval;
|
|
917
1074
|
/** formatted value for period */
|
|
918
1075
|
get formattedValue(): string;
|
|
919
1076
|
/** Whether the current pipe is disabled. */
|
|
@@ -926,6 +1083,42 @@ declare abstract class KbqPipeDateBaseComponent<D> extends KbqBasePipe<KbqDateTi
|
|
|
926
1083
|
get end(): D;
|
|
927
1084
|
/** default object for end */
|
|
928
1085
|
get defaultEnd(): D;
|
|
1086
|
+
/**
|
|
1087
|
+
* Computes the default `start`/`end` pair used when the pipe has no stored value, clamped into
|
|
1088
|
+
* `[min, max]` and, unlike a plain clamp, also reconciled against `[minInterval, maxInterval]`: `end`
|
|
1089
|
+
* is extended or shrunk to fit, falling back to pulling `start` back when `[min, max]` doesn't leave
|
|
1090
|
+
* enough room past `start` to satisfy `minInterval`. If `[min, max]` is itself narrower than
|
|
1091
|
+
* `minInterval`, the result may still violate it — that's a contradictory host configuration (the
|
|
1092
|
+
* same class of issue as `min` configured later than `max`), not something to further engineer around.
|
|
1093
|
+
*/
|
|
1094
|
+
private computeDefaultRange;
|
|
1095
|
+
/**
|
|
1096
|
+
* Upper bound for the START date input: the earlier of the END value and the configured `max`.
|
|
1097
|
+
* @docs-private
|
|
1098
|
+
*/
|
|
1099
|
+
get startMax(): any;
|
|
1100
|
+
/**
|
|
1101
|
+
* Whether the period is invalid specifically because it runs backwards (`start` later than `end`) —
|
|
1102
|
+
* the one case `customPeriodErrorHint` actually describes. Deliberately compares the values rather
|
|
1103
|
+
* than keying off the START control's `kbqDatepickerMax` error: `startMax` is `min(max, end)`, so that
|
|
1104
|
+
* error fires both for a backwards period AND for a start beyond the configured `max`, and cannot
|
|
1105
|
+
* tell them apart. Everything else that can invalidate a control here — a value outside
|
|
1106
|
+
* `[min, max]` (`kbqDatepickerMin`/`kbqDatepickerMax`, `kbqTimepickerLowerThenMin`/
|
|
1107
|
+
* `kbqTimepickerHigherThenMax`) or unparseable typed text (`kbqDatepickerParse`/`kbqTimepickerParse`)
|
|
1108
|
+
* — is left to the field's own error styling instead of being mislabelled as an ordering problem.
|
|
1109
|
+
* @docs-private
|
|
1110
|
+
*/
|
|
1111
|
+
protected get isPeriodInverted(): boolean;
|
|
1112
|
+
/**
|
|
1113
|
+
* Localized "period too short" hint with the `minInterval` limit interpolated and locale-formatted.
|
|
1114
|
+
* @docs-private
|
|
1115
|
+
*/
|
|
1116
|
+
get minIntervalErrorHint(): string;
|
|
1117
|
+
/**
|
|
1118
|
+
* Localized "period too long" hint with the `maxInterval` limit interpolated and locale-formatted.
|
|
1119
|
+
* @docs-private
|
|
1120
|
+
*/
|
|
1121
|
+
get maxIntervalErrorHint(): string;
|
|
929
1122
|
/** Whether the current pipe is empty. */
|
|
930
1123
|
get isEmpty(): boolean;
|
|
931
1124
|
ngAfterViewInit(): void;
|
|
@@ -943,6 +1136,11 @@ declare abstract class KbqPipeDateBaseComponent<D> extends KbqBasePipe<KbqDateTi
|
|
|
943
1136
|
onFocusStartInput(): void;
|
|
944
1137
|
onFocusEndInput(): void;
|
|
945
1138
|
hideCalendars(): void;
|
|
1139
|
+
/**
|
|
1140
|
+
* Whether this pipe edits the time part (`datetime`) or only the date (`date`). Gates whether the
|
|
1141
|
+
* `minDateTime` / `maxDateTime` bounds keep their time or are pinned to day edges.
|
|
1142
|
+
*/
|
|
1143
|
+
protected abstract usesTime(): boolean;
|
|
946
1144
|
/** Formats the selected range for display. */
|
|
947
1145
|
protected abstract formatRange(start: D, end: D): string;
|
|
948
1146
|
/** Default start value used when the pipe has no stored `start`. */
|
|
@@ -955,6 +1153,7 @@ declare abstract class KbqPipeDateBaseComponent<D> extends KbqBasePipe<KbqDateTi
|
|
|
955
1153
|
}
|
|
956
1154
|
|
|
957
1155
|
declare class KbqPipeDateComponent<D> extends KbqPipeDateBaseComponent<D> {
|
|
1156
|
+
protected usesTime(): boolean;
|
|
958
1157
|
protected formatRange(start: D, end: D): string;
|
|
959
1158
|
protected getDefaultStart(): D;
|
|
960
1159
|
protected getDefaultEnd(): D;
|
|
@@ -963,6 +1162,7 @@ declare class KbqPipeDateComponent<D> extends KbqPipeDateBaseComponent<D> {
|
|
|
963
1162
|
}
|
|
964
1163
|
|
|
965
1164
|
declare class KbqPipeDatetimeComponent<D> extends KbqPipeDateBaseComponent<D> {
|
|
1165
|
+
protected usesTime(): boolean;
|
|
966
1166
|
protected formatRange(start: D, end: D): string;
|
|
967
1167
|
protected getDefaultStart(): D;
|
|
968
1168
|
protected getDefaultEnd(): D;
|
|
@@ -970,6 +1170,44 @@ declare class KbqPipeDatetimeComponent<D> extends KbqPipeDateBaseComponent<D> {
|
|
|
970
1170
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeDatetimeComponent<any>, "kbq-pipe-datetime", never, {}, {}, never, never, true, never>;
|
|
971
1171
|
}
|
|
972
1172
|
|
|
1173
|
+
declare class KbqPipeInputComponent extends KbqBasePipe<string | null> implements OnInit {
|
|
1174
|
+
/** @docs-private */
|
|
1175
|
+
protected readonly input: _angular_core.Signal<KbqInput>;
|
|
1176
|
+
/**
|
|
1177
|
+
* Input control.
|
|
1178
|
+
*
|
|
1179
|
+
* Must stay nullable: `KbqCleaner` resets the control, and `reset()` resolves to `defaultValue`, which is
|
|
1180
|
+
* `null` only while `nonNullable` is unset. `{ nonNullable: true }` would make `reset()` yield `''` and silently
|
|
1181
|
+
* break the cleaner bridge below.
|
|
1182
|
+
*/
|
|
1183
|
+
readonly control: FormControl<string | null>;
|
|
1184
|
+
/**
|
|
1185
|
+
* Debounce in milliseconds between the last keystroke and the typed value being applied to the filter.
|
|
1186
|
+
* Matches `defaultEmitValueTimeout` of `kbq-search-expandable`, so both search fields of a bar feel the
|
|
1187
|
+
* same. `Enter` and blur apply immediately and cancel a pending apply.
|
|
1188
|
+
*/
|
|
1189
|
+
debounceTime: number;
|
|
1190
|
+
/**
|
|
1191
|
+
* Minimum number of characters before typing applies the value to the filter. Anything shorter —
|
|
1192
|
+
* including an emptied field — is applied as `null`, so the filter never keeps text the user has
|
|
1193
|
+
* already erased. `Enter` and blur ignore the threshold. Set to `0` to apply every keystroke.
|
|
1194
|
+
*/
|
|
1195
|
+
minLength: number;
|
|
1196
|
+
/** Cancels a pending debounced apply once the value has been applied (or cleared) through another path. */
|
|
1197
|
+
private readonly cancelPendingApply;
|
|
1198
|
+
/** Whether the current pipe is empty. Used for apply style modifier */
|
|
1199
|
+
get isEmpty(): boolean;
|
|
1200
|
+
ngOnInit(): void;
|
|
1201
|
+
/** clears the pipe and triggers changes */
|
|
1202
|
+
onClear(): void;
|
|
1203
|
+
/** focuses the input */
|
|
1204
|
+
open(): void;
|
|
1205
|
+
/** Commits a value to `data` and notifies the filter-bar. */
|
|
1206
|
+
private commit;
|
|
1207
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeInputComponent, never>;
|
|
1208
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeInputComponent, "kbq-pipe-input", never, {}, {}, never, never, true, never>;
|
|
1209
|
+
}
|
|
1210
|
+
|
|
973
1211
|
declare class KbqPipeMultiSelectComponent extends KbqBasePipe<KbqSelectValue[]> implements AfterViewInit, OnInit {
|
|
974
1212
|
/** control for search options */
|
|
975
1213
|
readonly searchControl: FormControl<string | null>;
|
|
@@ -989,15 +1227,24 @@ declare class KbqPipeMultiSelectComponent extends KbqBasePipe<KbqSelectValue[]>
|
|
|
989
1227
|
get allVisibleOptionsSelected(): boolean;
|
|
990
1228
|
/** true if all options selected */
|
|
991
1229
|
get allOptionsSelected(): boolean;
|
|
1230
|
+
/**
|
|
1231
|
+
* Selection tally restricted to the options the user can actually toggle — the one place the
|
|
1232
|
+
* "ignore the locked options" rule of "select all" is expressed. `null` while there is nothing to
|
|
1233
|
+
* tally: no options came from the pipe template yet, or the view is not up.
|
|
1234
|
+
*/
|
|
1235
|
+
private get unlockedTally();
|
|
992
1236
|
get selectedAllEqualsSelectedNothing(): boolean;
|
|
993
1237
|
private get visibleOptions();
|
|
994
1238
|
private selectionAllInProgress;
|
|
995
1239
|
private readonly multiSelect;
|
|
1240
|
+
constructor();
|
|
996
1241
|
/** @docs-private */
|
|
997
1242
|
ngOnInit(): void;
|
|
998
1243
|
ngAfterViewInit(): void;
|
|
999
1244
|
/** @docs-private */
|
|
1000
1245
|
onSelect(item: KbqSelectValue[]): void;
|
|
1246
|
+
/** Whether the option cannot be deselected by the user. Template-only. */
|
|
1247
|
+
protected isLocked(item: KbqSelectValue): boolean;
|
|
1001
1248
|
/** @docs-private */
|
|
1002
1249
|
onClear(): void;
|
|
1003
1250
|
/** @docs-private */
|
|
@@ -1065,12 +1312,27 @@ declare class KbqPipeMultiTreeSelectComponent extends KbqTreeSelectPipeBase<KbqS
|
|
|
1065
1312
|
get numberOfSelectedLeaves(): number;
|
|
1066
1313
|
/** true if all options selected */
|
|
1067
1314
|
get allOptionsSelected(): boolean;
|
|
1315
|
+
/**
|
|
1316
|
+
* Selection tally restricted to the nodes the user can actually toggle — the one place the "ignore the
|
|
1317
|
+
* locked nodes" rule of "select all" is expressed. `null` until the tree data has been built.
|
|
1318
|
+
*
|
|
1319
|
+
* `triggerValues` is derived from the very same selection model as `selected`, so either would do.
|
|
1320
|
+
*/
|
|
1321
|
+
private get unlockedTally();
|
|
1068
1322
|
get selectedAllEqualsSelectedNothing(): boolean;
|
|
1069
1323
|
/** true if all visible options selected */
|
|
1070
1324
|
get allVisibleOptionsSelected(): boolean;
|
|
1325
|
+
/** Flat nodes whose selection the user cannot remove, the subtree of a locked branch included. */
|
|
1326
|
+
private get lockedDataNodes();
|
|
1327
|
+
/**
|
|
1328
|
+
* Values of every locked node, the subtree of a locked branch included. Resolved once per template
|
|
1329
|
+
* change rather than on demand — `isEmpty` reads it on every change-detection pass.
|
|
1330
|
+
*/
|
|
1331
|
+
private lockedNodeValues;
|
|
1071
1332
|
private readonly multiSelect;
|
|
1072
1333
|
constructor();
|
|
1073
1334
|
ngOnInit(): void;
|
|
1335
|
+
ngAfterViewInit(): void;
|
|
1074
1336
|
isNodeSelectAll(_: number, nodeData: KbqTreeSelectFlatNode): boolean;
|
|
1075
1337
|
onSelect({ value: option }: {
|
|
1076
1338
|
value: any;
|
|
@@ -1084,10 +1346,20 @@ declare class KbqPipeMultiTreeSelectComponent extends KbqTreeSelectPipeBase<KbqS
|
|
|
1084
1346
|
*/
|
|
1085
1347
|
updateTemplates: (templates: KbqPipeTemplate[] | null) => void;
|
|
1086
1348
|
onClear(): void;
|
|
1349
|
+
/** Clearing keeps the locked values; with none configured the pipe resets to `null` as before. */
|
|
1350
|
+
protected clearedValue(): KbqSelectValue[] | null;
|
|
1087
1351
|
/** @docs-private */
|
|
1088
1352
|
onClose(): void;
|
|
1089
1353
|
/** handler for select all options in select */
|
|
1090
1354
|
selectAllHandler: (event: KeyboardEvent) => void;
|
|
1355
|
+
/**
|
|
1356
|
+
* Whether the node cannot be deselected: either its own value is locked, or it descends from a locked
|
|
1357
|
+
* branch. Locking a branch has to lock its subtree — deselecting a child would otherwise switch the
|
|
1358
|
+
* locked parent's own checkbox off.
|
|
1359
|
+
*/
|
|
1360
|
+
private isLockedNode;
|
|
1361
|
+
/** Puts back every locked node the tree's own cascades may have deselected. */
|
|
1362
|
+
private enforceLockedNodes;
|
|
1091
1363
|
private toggleParents;
|
|
1092
1364
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeMultiTreeSelectComponent, never>;
|
|
1093
1365
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeMultiTreeSelectComponent, "kbq-pipe-multi-tree-select", never, {}, {}, never, never, true, never>;
|
|
@@ -1161,5 +1433,5 @@ declare class KbqPipeTreeSelectComponent extends KbqTreeSelectPipeBase<KbqSelect
|
|
|
1161
1433
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeTreeSelectComponent, "kbq-pipe-tree-select", never, {}, {}, never, never, true, never>;
|
|
1162
1434
|
}
|
|
1163
1435
|
|
|
1164
|
-
export { KBQ_FILTER_BAR_CONFIGURATION, KBQ_FILTER_BAR_DEFAULT_CONFIGURATION, KBQ_FILTER_BAR_HOST, KBQ_FILTER_BAR_PIPES, KBQ_PIPE_DATA, KbqBasePipe, KbqFilterBar, KbqFilterBarButton, KbqFilterBarModule, KbqFilterRefresher as KbqFilterBarRefresher, KbqFilterRefresher, KbqFilterReset, KbqFilterSavePopover, KbqFilters, KbqPipeAdd, KbqPipeButton, KbqPipeDateBaseComponent, KbqPipeDateComponent, KbqPipeDatetimeComponent, KbqPipeDirective, KbqPipeMinWidth, KbqPipeMultiSelectComponent, KbqPipeMultiTreeSelectComponent, KbqPipeReadonlyComponent, KbqPipeSelectComponent, KbqPipeState, KbqPipeTextComponent, KbqPipeTreeSelectComponent, KbqPipeTypes, KbqSaveFilterStatuses, KbqTreeSelectFlatNode, KbqTreeSelectPipeBase, defaultFilterBarPipes, getId, kbqBuildTree, kbqFilterBarPipesProvider };
|
|
1436
|
+
export { KBQ_FILTER_BAR_CONFIGURATION, KBQ_FILTER_BAR_DEFAULT_CONFIGURATION, KBQ_FILTER_BAR_HOST, KBQ_FILTER_BAR_PIPES, KBQ_PIPE_DATA, KbqBasePipe, KbqFilterBar, KbqFilterBarButton, KbqFilterBarModule, KbqFilterRefresher as KbqFilterBarRefresher, KbqFilterRefresher, KbqFilterReset, KbqFilterSavePopover, KbqFilters, KbqPipeAdd, KbqPipeButton, KbqPipeDateBaseComponent, KbqPipeDateComponent, KbqPipeDatetimeComponent, KbqPipeDirective, KbqPipeInputComponent, KbqPipeMinWidth, KbqPipeMultiSelectComponent, KbqPipeMultiTreeSelectComponent, KbqPipeReadonlyComponent, KbqPipeSelectComponent, KbqPipeState, KbqPipeTextComponent, KbqPipeTreeSelectComponent, KbqPipeTypes, KbqSaveFilterStatuses, KbqTreeSelectFlatNode, KbqTreeSelectPipeBase, defaultFilterBarPipes, getId, kbqBuildTree, kbqFilterBarPipesProvider };
|
|
1165
1437
|
export type { KbqDateTimeValue, KbqFilter, KbqFilterBarConfiguration, KbqFilterBarHost, KbqPipe, KbqPipeData, KbqPipeTemplate, KbqPipeType, KbqSaveFilterError, KbqSaveFilterEvent, KbqSelectValue, KbqTreeSelectNode };
|
|
@@ -31,17 +31,6 @@
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
.kbq-pipe__separator {
|
|
35
|
-
z-index: 1;
|
|
36
|
-
|
|
37
|
-
margin-inline-start: -1px;
|
|
38
|
-
margin-inline-end: 0;
|
|
39
|
-
|
|
40
|
-
height: var(--kbq-size-l);
|
|
41
|
-
|
|
42
|
-
align-self: center;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
34
|
.kbq-select:not(:hover, .kbq-active),
|
|
46
35
|
.kbq-tree-select:not(:hover, .kbq-active),
|
|
47
36
|
.kbq-button:not(:hover, .kbq-active, [disabled]) {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
.kbq-pipe.kbq-pipe__input {
|
|
2
|
+
// Fall back like base-pipe.scss does for --kbq-filter-bar-pipe-max-width: the token is declared on
|
|
3
|
+
// .kbq-filter-bar, which a pipe rendered outside a bar never sees.
|
|
4
|
+
width: var(--kbq-filter-bar-pipe-input-width, 240px);
|
|
5
|
+
flex: none;
|
|
6
|
+
|
|
7
|
+
.kbq-form-field {
|
|
8
|
+
width: 100%;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
@use '../filter-bar-theme' as *;
|
|
2
|
-
|
|
3
1
|
.kbq-pipe__multi-tree-select {
|
|
4
2
|
.kbq-pipe__value {
|
|
5
3
|
margin-inline-start: var(--kbq-size-xxs);
|
|
@@ -15,7 +13,3 @@
|
|
|
15
13
|
height: unset;
|
|
16
14
|
}
|
|
17
15
|
}
|
|
18
|
-
|
|
19
|
-
.kbq-pipe-multi-tree-select__panel .kbq-select__content {
|
|
20
|
-
@include kbq-filter-bar-panel-content-max-height();
|
|
21
|
-
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
@use '../filter-bar-theme' as *;
|
|
2
|
-
|
|
3
1
|
.kbq-pipe__multiselect {
|
|
4
2
|
.kbq-pipe__value {
|
|
5
3
|
margin-inline-start: var(--kbq-size-xxs);
|
|
@@ -11,7 +9,3 @@
|
|
|
11
9
|
margin-inline-start: var(--kbq-size-xs);
|
|
12
10
|
}
|
|
13
11
|
}
|
|
14
|
-
|
|
15
|
-
.kbq-pipe-multiselect__panel .kbq-select__content {
|
|
16
|
-
@include kbq-filter-bar-panel-content-max-height();
|
|
17
|
-
}
|