@koobiq/components 20.0.0 → 20.2.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 +1 -1
- package/accordion/accordion-tokens.scss +1 -0
- package/accordion/{accordion-trigger.component.scss → accordion-trigger.scss} +4 -18
- package/accordion/{accordion.component.scss → accordion.scss} +12 -5
- package/accordion/index.d.ts +215 -119
- package/actions-panel/index.d.ts +1 -0
- package/alert/_alert-theme.scss +14 -4
- package/alert/alert-tokens.scss +4 -4
- package/alert/alert.component.scss +24 -13
- package/alert/index.d.ts +63 -29
- package/app-switcher/app-switcher-dropdown-app.scss +2 -0
- package/autocomplete/autocomplete.scss +2 -1
- package/autocomplete/index.d.ts +35 -29
- package/badge/index.d.ts +2 -3
- package/breadcrumbs/breadcrumbs.scss +4 -0
- package/breadcrumbs/index.d.ts +2 -1
- package/button/button-group.scss +42 -2
- package/button-toggle/button-toggle.scss +23 -0
- package/button-toggle/index.d.ts +3 -1
- package/checkbox/checkbox.scss +5 -4
- package/clamped-text/index.d.ts +4 -2
- package/core/index.d.ts +515 -21
- package/core/styles/_core.scss +2 -0
- package/core/styles/common/_animation.scss +35 -24
- package/core/styles/common/_connected-overlay.scss +36 -0
- package/core/styles/common/_select.scss +7 -2
- package/core/styles/theming/_components-theming.scss +1 -1
- package/core/styles/theming/_scrollbar-theme.scss +4 -0
- package/datepicker/_datepicker-theme.scss +1 -1
- package/datepicker/datepicker-toggle.scss +3 -3
- package/dl/index.d.ts +1 -0
- package/dropdown/dropdown-item.scss +16 -0
- package/dropdown/dropdown-tokens.scss +2 -1
- package/dropdown/dropdown.scss +11 -2
- package/dropdown/index.d.ts +73 -6
- package/fesm2022/koobiq-components-accordion.mjs +406 -303
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +15 -6
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +88 -48
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +7 -7
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +37 -23
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +5 -4
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +6 -4
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +9 -6
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +4 -4
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +2 -2
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +9 -0
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +5 -1
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +544 -113
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +13 -10
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +3 -2
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +105 -31
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +33 -22
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +1169 -782
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +66 -0
- package/fesm2022/koobiq-components-flag.mjs.map +1 -0
- package/fesm2022/koobiq-components-form-field.mjs +6 -6
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +16 -7
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +30 -7
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +39 -20
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +9 -5
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +123 -27
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +193 -19
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +12 -4
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +9 -4
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +3 -7
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +43 -8
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +72 -59
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +4 -0
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +3 -3
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +2 -2
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +5 -12
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +6 -2
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +8 -6
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +42 -18
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +8 -1
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +7 -14
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +4 -4
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +3 -4
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +9 -5
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +132 -14
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +1 -1
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +2 -2
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +168 -8
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +79 -38
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +67 -41
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +16 -3
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/file-upload-tokens.scss +1 -0
- package/file-upload/index.d.ts +10 -7
- package/filter-bar/_filter-bar-theme.scss +82 -0
- package/filter-bar/filter-bar-tokens.scss +9 -0
- package/filter-bar/filter-bar.scss +10 -4
- package/filter-bar/filter-refresher.scss +1 -1
- package/filter-bar/filters.scss +25 -20
- package/filter-bar/index.d.ts +764 -336
- package/filter-bar/pipes/base-pipe.scss +12 -44
- package/filter-bar/pipes/pipe-date.scss +20 -14
- package/filter-bar/pipes/pipe-input.scss +10 -0
- package/filter-bar/pipes/pipe-multi-tree-select.scss +5 -3
- package/filter-bar/pipes/pipe-multiselect.scss +5 -3
- package/filter-bar/pipes/pipe-readonly.scss +4 -13
- package/filter-bar/pipes/pipe-select.scss +3 -1
- package/filter-bar/pipes/pipe-tree-select.scss +3 -1
- package/flag/flag.scss +53 -0
- package/flag/index.d.ts +44 -0
- package/icon/icon-button.scss +3 -1
- package/icon/icon-item-tokens.scss +1 -1
- package/icon/index.d.ts +15 -2
- package/inline-edit/index.d.ts +5 -0
- package/inline-edit/inline-edit.scss +7 -7
- package/link/link-tokens.scss +2 -2
- package/list/index.d.ts +11 -2
- package/loader-overlay/loader-overlay-tokens.scss +1 -1
- package/modal/_modal-animation.scss +6 -6
- package/modal/_modal-theme.scss +5 -0
- package/modal/index.d.ts +3 -1
- package/modal/modal.scss +15 -0
- package/navbar/_navbar-item_vertical.scss +7 -5
- package/navbar/index.d.ts +39 -4
- package/navbar/navbar-brand.scss +17 -7
- package/navbar/navbar-item.scss +9 -0
- package/notification-center/_notification-center-theme.scss +2 -1
- package/notification-center/index.d.ts +89 -3
- package/notification-center/notification-center.scss +42 -4
- package/notification-center/notification-item.scss +3 -2
- package/overflow-items/index.d.ts +1 -0
- package/package.json +7 -3
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/progress-bar.scss +4 -0
- package/progress-spinner/progress-spinner.scss +5 -1
- package/radio/index.d.ts +1 -5
- package/radio/radio.scss +18 -4
- package/schematics/collection.json +15 -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/filter-bar-signals/README.md +66 -0
- package/schematics/migrations/filter-bar-signals/data.js +72 -0
- package/schematics/migrations/filter-bar-signals/index.js +316 -0
- package/schematics/migrations/filter-bar-signals/schema.json +20 -0
- package/schematics/migrations.json +15 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/utils/angular-parsing.js +11 -2
- package/search-expandable/index.d.ts +3 -0
- package/select/index.d.ts +59 -24
- package/sidebar/index.d.ts +1 -0
- package/skeleton/skeleton.scss +4 -0
- package/split-button/_split-button-theme.scss +2 -2
- package/splitter/_splitter-theme.scss +2 -2
- package/splitter/index.d.ts +1 -0
- package/table/_table-theme.scss +4 -0
- package/table/index.d.ts +3 -2
- package/tabs/_tabs-common.scss +60 -31
- package/tabs/_tabs-theme.scss +12 -0
- package/tabs/index.d.ts +4 -2
- package/tabs/tab-header.scss +15 -0
- package/tabs/tab-nav-bar.scss +4 -0
- package/tabs/tabs-tokens.scss +2 -1
- package/textarea/index.d.ts +0 -1
- package/time-range/time-range.scss +0 -8
- package/timepicker/timepicker.scss +2 -2
- package/timezone/index.d.ts +2 -3
- package/title/index.d.ts +92 -2
- package/tooltip/index.d.ts +124 -7
- package/tree/_tree-theme.scss +2 -7
- package/tree/index.d.ts +19 -4
- package/tree/toggle.scss +5 -0
- package/tree/tree-option.scss +0 -4
- package/tree-select/_tree-select-theme.scss +1 -1
- package/tree-select/index.d.ts +53 -22
- package/username/index.d.ts +20 -2
package/filter-bar/index.d.ts
CHANGED
|
@@ -1,20 +1,125 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import {
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
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, KbqPseudoCheckboxState } from '@koobiq/components/core';
|
|
5
|
-
import {
|
|
4
|
+
import { PopUpPlacements, KbqComponentColors, PopUpSizes, KbqOption, DateAdapter, DateFormatter, KbqPseudoCheckboxState } from '@koobiq/components/core';
|
|
5
|
+
import { Subject, BehaviorSubject, Observable } from 'rxjs';
|
|
6
6
|
import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
|
|
7
|
-
import {
|
|
7
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
8
8
|
import { KbqButtonStyles, KbqButton } from '@koobiq/components/button';
|
|
9
9
|
import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
|
|
10
10
|
import { KbqPopoverTrigger } from '@koobiq/components/popover';
|
|
11
11
|
import { KbqSelect } from '@koobiq/components/select';
|
|
12
|
-
import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
|
|
13
12
|
import { KbqListSelection } from '@koobiq/components/list';
|
|
14
|
-
import {
|
|
13
|
+
import { KbqInput } from '@koobiq/components/input';
|
|
14
|
+
import { FlatTreeControl, KbqTreeFlattener, KbqTreeFlatDataSource, KbqTreeSelection, KbqTreeOption } from '@koobiq/components/tree';
|
|
15
15
|
import { KbqTreeSelect } from '@koobiq/components/tree-select';
|
|
16
16
|
|
|
17
|
-
/**
|
|
17
|
+
/** Injection Token for providing configuration of filter-bar */
|
|
18
|
+
declare const KBQ_PIPE_DATA: InjectionToken<unknown>;
|
|
19
|
+
/** function to get unique identifier of an element */
|
|
20
|
+
declare function getId(item: KbqPipeTemplate): KbqPipeType | string | number;
|
|
21
|
+
declare abstract class KbqBasePipe<V> implements AfterViewInit {
|
|
22
|
+
/** changes of state */
|
|
23
|
+
readonly stateChanges: Subject<void>;
|
|
24
|
+
/** pipe data. Provided from subclass */
|
|
25
|
+
readonly data: KbqPipeData<V>;
|
|
26
|
+
/** KbqFilterBar instance
|
|
27
|
+
* @docs-private */
|
|
28
|
+
protected readonly filterBar: KbqFilterBarHost | null;
|
|
29
|
+
/** @docs-private */
|
|
30
|
+
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
31
|
+
/** @docs-private */
|
|
32
|
+
protected readonly destroyRef: DestroyRef;
|
|
33
|
+
/** @docs-private */
|
|
34
|
+
protected readonly focusMonitor: FocusMonitor;
|
|
35
|
+
/** @docs-private */
|
|
36
|
+
protected readonly elementRef: ElementRef<HTMLElement>;
|
|
37
|
+
private readonly inputModalityDetector;
|
|
38
|
+
private readonly document;
|
|
39
|
+
/** Last known focus origin within the pipe. Used to preserve the keyboard focus ring on restore. */
|
|
40
|
+
private focusOrigin;
|
|
41
|
+
/**
|
|
42
|
+
* Whether this pipe has been destroyed. Guards deferred (`setTimeout`) work that could otherwise
|
|
43
|
+
* read view queries or mutate `data` after the pipe was removed or the filter switched.
|
|
44
|
+
* @docs-private
|
|
45
|
+
*/
|
|
46
|
+
protected destroyed: boolean;
|
|
47
|
+
/** values to select from the pipe template */
|
|
48
|
+
protected values: any;
|
|
49
|
+
/** TemplateRef for selecting an option */
|
|
50
|
+
protected valueTemplate?: TemplateRef<any> | string;
|
|
51
|
+
/**
|
|
52
|
+
* Optional equality comparator forwarded from the pipe template to the underlying `kbq-select`.
|
|
53
|
+
* Only consumed by the select / multi-select pipe components; when unset they fall back to their
|
|
54
|
+
* own id-based `compareByValue`.
|
|
55
|
+
*/
|
|
56
|
+
protected optionCompareWith?: (o1: KbqSelectValue | null | undefined, o2: KbqSelectValue | null | undefined) => boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Whether the current platform is a Mac.
|
|
59
|
+
*
|
|
60
|
+
* @docs-private
|
|
61
|
+
*/
|
|
62
|
+
isMac: boolean;
|
|
63
|
+
/** Data for the pipe.
|
|
64
|
+
* @docs-private */
|
|
65
|
+
$implicit: unknown;
|
|
66
|
+
/** Whether the current pipe is empty. Used for apply style modifier */
|
|
67
|
+
get isEmpty(): boolean;
|
|
68
|
+
/** Whether the current pipe is removable or cleanable. Used for apply style modifier */
|
|
69
|
+
get showRemoveButton(): boolean;
|
|
70
|
+
/** localized data
|
|
71
|
+
* @docs-private */
|
|
72
|
+
get localeData(): KbqFilterBarConfiguration;
|
|
73
|
+
constructor();
|
|
74
|
+
ngAfterViewInit(): void;
|
|
75
|
+
/** templateRef checker utility */
|
|
76
|
+
isTemplateRef(value: unknown): boolean;
|
|
77
|
+
/** updates values for selection and value template */
|
|
78
|
+
updateTemplates: (templates: KbqPipeTemplate[] | null) => void;
|
|
79
|
+
/** removes pipe from filter-bar and triggers changes */
|
|
80
|
+
onRemove(): void;
|
|
81
|
+
/** clears the pipe and triggers changes */
|
|
82
|
+
onClear(): void;
|
|
83
|
+
/**
|
|
84
|
+
* Restores focus to the pipe's trigger button after a value is chosen or the panel closes.
|
|
85
|
+
* Focuses via {@link FocusMonitor} with the captured origin so a keyboard-driven interaction
|
|
86
|
+
* keeps its focus ring, while a mouse-driven one does not.
|
|
87
|
+
*
|
|
88
|
+
* @docs-private
|
|
89
|
+
*/
|
|
90
|
+
protected restoreTriggerFocus(): void;
|
|
91
|
+
/** @docs-private */
|
|
92
|
+
abstract open(): void;
|
|
93
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqBasePipe<any>, never>;
|
|
94
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqBasePipe<any>, never, never, {}, {}, never, never, true, never>;
|
|
95
|
+
}
|
|
96
|
+
declare class KbqPipeMinWidth {
|
|
97
|
+
/** KbqFilterBar instance */
|
|
98
|
+
protected readonly filterBar: KbqFilterBarHost | null;
|
|
99
|
+
/** @docs-private */
|
|
100
|
+
protected readonly elementRef: ElementRef<HTMLElement>;
|
|
101
|
+
/** @docs-private */
|
|
102
|
+
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
103
|
+
/** @docs-private */
|
|
104
|
+
protected minWidth: string;
|
|
105
|
+
/** maximal symbols for apply fit-content to min-width */
|
|
106
|
+
maxSymbolsForFitContent: number;
|
|
107
|
+
/** current length of text */
|
|
108
|
+
get textLength(): number;
|
|
109
|
+
constructor();
|
|
110
|
+
update: () => void;
|
|
111
|
+
/** Schedules a deferred min-width recompute and returns the effect-cleanup that cancels it. */
|
|
112
|
+
private scheduleMinWidthUpdate;
|
|
113
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeMinWidth, never>;
|
|
114
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqPipeMinWidth, "[kbqPipeMinWidth]", never, {}, {}, never, never, true, never>;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Default localized strings for the filter-bar, used when no `KBQ_LOCALE_SERVICE` (nor an explicit
|
|
119
|
+
* `KBQ_FILTER_BAR_CONFIGURATION`) is provided. These are the Russian (`ru-RU`) strings, matching the
|
|
120
|
+
* library-wide default-locale convention (every `KBQ_*_DEFAULT_CONFIGURATION` resolves to `ruRULocaleData`).
|
|
121
|
+
* Provide `KBQ_LOCALE_SERVICE` at the application root to localize the filter-bar for other locales.
|
|
122
|
+
*/
|
|
18
123
|
declare const KBQ_FILTER_BAR_DEFAULT_CONFIGURATION: {
|
|
19
124
|
reset: {
|
|
20
125
|
buttonName: string;
|
|
@@ -39,9 +144,15 @@ declare const KBQ_FILTER_BAR_DEFAULT_CONFIGURATION: {
|
|
|
39
144
|
errorHint: string;
|
|
40
145
|
saveButton: string;
|
|
41
146
|
cancelButton: string;
|
|
147
|
+
actionsTooltip: string;
|
|
42
148
|
};
|
|
43
149
|
add: {
|
|
44
150
|
tooltip: string;
|
|
151
|
+
addedAnnouncement: string;
|
|
152
|
+
};
|
|
153
|
+
refresher: {
|
|
154
|
+
refresh: string;
|
|
155
|
+
settings: string;
|
|
45
156
|
};
|
|
46
157
|
pipe: {
|
|
47
158
|
clearButtonTooltip: string;
|
|
@@ -58,16 +169,118 @@ declare const KBQ_FILTER_BAR_DEFAULT_CONFIGURATION: {
|
|
|
58
169
|
backToPeriodSelection: string;
|
|
59
170
|
};
|
|
60
171
|
};
|
|
172
|
+
/** Shape of the localized strings consumed by the filter-bar and its pipes. */
|
|
173
|
+
type KbqFilterBarConfiguration = typeof KBQ_FILTER_BAR_DEFAULT_CONFIGURATION;
|
|
61
174
|
/** Injection Token for providing configuration of filter-bar */
|
|
62
|
-
declare const KBQ_FILTER_BAR_CONFIGURATION: InjectionToken<
|
|
175
|
+
declare const KBQ_FILTER_BAR_CONFIGURATION: InjectionToken<{
|
|
176
|
+
reset: {
|
|
177
|
+
buttonName: string;
|
|
178
|
+
};
|
|
179
|
+
search: {
|
|
180
|
+
tooltip: string;
|
|
181
|
+
placeholder: string;
|
|
182
|
+
};
|
|
183
|
+
filters: {
|
|
184
|
+
defaultName: string;
|
|
185
|
+
saveNewFilterTooltip: string;
|
|
186
|
+
searchPlaceholder: string;
|
|
187
|
+
searchEmptyResult: string;
|
|
188
|
+
saveAsNewFilter: string;
|
|
189
|
+
saveChanges: string;
|
|
190
|
+
saveAsNew: string;
|
|
191
|
+
change: string;
|
|
192
|
+
resetChanges: string;
|
|
193
|
+
remove: string;
|
|
194
|
+
name: string;
|
|
195
|
+
error: string;
|
|
196
|
+
errorHint: string;
|
|
197
|
+
saveButton: string;
|
|
198
|
+
cancelButton: string;
|
|
199
|
+
actionsTooltip: string;
|
|
200
|
+
};
|
|
201
|
+
add: {
|
|
202
|
+
tooltip: string;
|
|
203
|
+
addedAnnouncement: string;
|
|
204
|
+
};
|
|
205
|
+
refresher: {
|
|
206
|
+
refresh: string;
|
|
207
|
+
settings: string;
|
|
208
|
+
};
|
|
209
|
+
pipe: {
|
|
210
|
+
clearButtonTooltip: string;
|
|
211
|
+
removeButtonTooltip: string;
|
|
212
|
+
applyButton: string;
|
|
213
|
+
emptySearchResult: string;
|
|
214
|
+
selectAll: string;
|
|
215
|
+
};
|
|
216
|
+
datePipe: {
|
|
217
|
+
customPeriod: string;
|
|
218
|
+
customPeriodFrom: string;
|
|
219
|
+
customPeriodTo: string;
|
|
220
|
+
customPeriodErrorHint: string;
|
|
221
|
+
backToPeriodSelection: string;
|
|
222
|
+
};
|
|
223
|
+
}>;
|
|
224
|
+
/**
|
|
225
|
+
* Contract a pipe (or filter-bar sub-component) depends on instead of the concrete `KbqFilterBar`.
|
|
226
|
+
* `KbqFilterBar` provides itself as {@link KBQ_FILTER_BAR_HOST}, so a pipe can be unit-tested against a
|
|
227
|
+
* lightweight mock of this seam rather than a full bar. Members mirror the current `KbqFilterBar` surface;
|
|
228
|
+
* they are expected to slim down once the state model moves to signals.
|
|
229
|
+
*/
|
|
230
|
+
interface KbqFilterBarHost {
|
|
231
|
+
/** Localized strings and configuration for the filter-bar and its pipes. */
|
|
232
|
+
configuration: KbqFilterBarConfiguration;
|
|
233
|
+
/** Currently selected filter. A two-way-bindable `model()`: read via `filter()`, write via `filter.set()`. */
|
|
234
|
+
readonly filter: ModelSignal<KbqFilter | null>;
|
|
235
|
+
/** Templates used when adding a pipe (also hold the option lists). Read via `pipeTemplates()`. */
|
|
236
|
+
readonly pipeTemplates: Signal<KbqPipeTemplate[]>;
|
|
237
|
+
/** Whether selecting all options counts as selecting nothing. */
|
|
238
|
+
readonly selectedAllEqualsSelectedNothing: Signal<boolean>;
|
|
239
|
+
/** Whether the current filter is saved. */
|
|
240
|
+
readonly isSaved: Signal<boolean>;
|
|
241
|
+
/** Whether the current filter is changed. */
|
|
242
|
+
readonly isChanged: Signal<boolean>;
|
|
243
|
+
/** Whether the current filter is both saved and changed. */
|
|
244
|
+
readonly isSavedAndChanged: Signal<boolean>;
|
|
245
|
+
/** Whether the current filter is readonly. */
|
|
246
|
+
readonly isReadOnly: Signal<boolean>;
|
|
247
|
+
/**
|
|
248
|
+
* Emits whenever a pipe value changes.
|
|
249
|
+
* (The two-way-bound `filter` value is emitted by the `filter` model's `filterChange` output.)
|
|
250
|
+
*/
|
|
251
|
+
readonly onChangePipe: OutputEmitterRef<KbqPipe>;
|
|
252
|
+
/** Emits whenever a pipe is cleared. */
|
|
253
|
+
readonly onClearPipe: OutputEmitterRef<KbqPipe>;
|
|
254
|
+
/** Emits whenever a select/multiselect pipe closes. */
|
|
255
|
+
readonly onClosePipe: OutputEmitterRef<KbqPipe>;
|
|
256
|
+
/** Internal filter changes. */
|
|
257
|
+
readonly internalFilterChanges: BehaviorSubject<KbqFilter | null>;
|
|
258
|
+
/** Internal pipe-template changes. */
|
|
259
|
+
readonly internalTemplatesChanges: BehaviorSubject<KbqPipeTemplate[] | null>;
|
|
260
|
+
/** Requests opening a pipe after it is added. */
|
|
261
|
+
readonly openPipe: BehaviorSubject<string | number | null>;
|
|
262
|
+
/** Emits when the filter is reset. */
|
|
263
|
+
readonly onResetFilter: BehaviorSubject<boolean>;
|
|
264
|
+
/** Removes a pipe from the current filter and emits the change. */
|
|
265
|
+
removePipe(pipe: KbqPipe): void;
|
|
266
|
+
/** Clears the current filter's "changed" flag. */
|
|
267
|
+
resetFilterChangedState(): void;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Injection token exposing the {@link KbqFilterBarHost} seam. `KbqFilterBar` provides itself via
|
|
271
|
+
* `useExisting`, so pipes `inject(KBQ_FILTER_BAR_HOST)` instead of depending on the concrete bar.
|
|
272
|
+
*/
|
|
273
|
+
declare const KBQ_FILTER_BAR_HOST: InjectionToken<KbqFilterBarHost>;
|
|
63
274
|
/** Injection Token for providing pipes in filter-bar */
|
|
64
|
-
declare const KBQ_FILTER_BAR_PIPES: InjectionToken<
|
|
275
|
+
declare const KBQ_FILTER_BAR_PIPES: InjectionToken<Map<KbqPipeType, Type<KbqBasePipe<unknown>>>>;
|
|
65
276
|
/** Utility provider for `KBQ_FILTER_BAR_PIPES`. */
|
|
66
277
|
declare const kbqFilterBarPipesProvider: () => Provider;
|
|
67
278
|
/** list of pipe types available out of the box */
|
|
68
279
|
declare enum KbqPipeTypes {
|
|
69
280
|
ReadOnly = "readonly",
|
|
70
281
|
Text = "text",
|
|
282
|
+
/** Renders a bare input: no popover, never opens. Commits while typing (debounced), on Enter and on blur. */
|
|
283
|
+
Input = "input",
|
|
71
284
|
Select = "select",
|
|
72
285
|
TreeSelect = "tree-select",
|
|
73
286
|
MultiSelect = "multiselect",
|
|
@@ -75,9 +288,9 @@ declare enum KbqPipeTypes {
|
|
|
75
288
|
Date = "date",
|
|
76
289
|
Datetime = "datetime"
|
|
77
290
|
}
|
|
78
|
-
type KbqPipeType = `${KbqPipeTypes}` | string;
|
|
291
|
+
type KbqPipeType = `${KbqPipeTypes}` | (string & {});
|
|
79
292
|
/** list of pipes available out of the box. */
|
|
80
|
-
declare const defaultFilterBarPipes: [
|
|
293
|
+
declare const defaultFilterBarPipes: [KbqPipeType, Type<KbqBasePipe<unknown>>][];
|
|
81
294
|
interface KbqDateTimeValue {
|
|
82
295
|
name?: string;
|
|
83
296
|
start?: string;
|
|
@@ -86,6 +299,8 @@ interface KbqDateTimeValue {
|
|
|
86
299
|
interface KbqSelectValue {
|
|
87
300
|
name: string;
|
|
88
301
|
value: unknown;
|
|
302
|
+
/** Optional stable identifier used by the select/multi-select pipe comparators. */
|
|
303
|
+
id?: string | number;
|
|
89
304
|
}
|
|
90
305
|
interface KbqFilter {
|
|
91
306
|
name: string;
|
|
@@ -121,6 +336,12 @@ interface KbqPipeData<V> extends KbqPipe {
|
|
|
121
336
|
interface KbqPipeTemplate extends Omit<KbqPipe, 'value'> {
|
|
122
337
|
values?: unknown[];
|
|
123
338
|
valueTemplate?: TemplateRef<any> | string;
|
|
339
|
+
/**
|
|
340
|
+
* Custom equality comparator forwarded to the underlying `kbq-select` of the `select` /
|
|
341
|
+
* `multiselect` pipes. When omitted, the pipe's default id-based comparator (`compareByValue`)
|
|
342
|
+
* is used. Ignored by other pipe types.
|
|
343
|
+
*/
|
|
344
|
+
compareWith?: (o1: KbqSelectValue | null | undefined, o2: KbqSelectValue | null | undefined) => boolean;
|
|
124
345
|
}
|
|
125
346
|
interface KbqSaveFilterError {
|
|
126
347
|
text?: string;
|
|
@@ -154,19 +375,96 @@ interface KbqTreeSelectNode {
|
|
|
154
375
|
* Build the file structure tree. The `value` is the Json object, or a sub-tree of a Json object.
|
|
155
376
|
* The return value is the list of extends `KbqTreeSelectNode`.
|
|
156
377
|
*/
|
|
157
|
-
declare function kbqBuildTree<T extends KbqTreeSelectNode>(value:
|
|
378
|
+
declare function kbqBuildTree<T extends KbqTreeSelectNode>(value: Record<string, unknown>, level: number): T[];
|
|
158
379
|
|
|
159
380
|
declare class KbqFilterReset {
|
|
160
|
-
/** KbqFilterBar
|
|
381
|
+
/** KbqFilterBar host seam */
|
|
161
382
|
private readonly filterBar;
|
|
162
383
|
/** Event that is generated whenever the user reset a filter. */
|
|
163
|
-
readonly onResetFilter:
|
|
384
|
+
readonly onResetFilter: _angular_core.OutputEmitterRef<KbqFilter | null>;
|
|
164
385
|
/** localized data
|
|
165
386
|
* @docs-private */
|
|
166
|
-
get localeData():
|
|
387
|
+
get localeData(): string;
|
|
167
388
|
protected resetFilter(): void;
|
|
168
|
-
static ɵfac:
|
|
169
|
-
static ɵcmp:
|
|
389
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqFilterReset, never>;
|
|
390
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqFilterReset, "kbq-filter-reset", never, {}, { "onResetFilter": "onResetFilter"; }, never, ["*"], true, never>;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* The "save / rename filter" popover, extracted from `KbqFilters` (SRP). Owns the save form state, the
|
|
395
|
+
* name control, validation/error display and the save/rename flow. It declares the popover's header,
|
|
396
|
+
* content and footer templates and pushes them imperatively onto the trigger it is given (via the
|
|
397
|
+
* `popoverTrigger` input), so there is no cross-component template binding on the parent (which would
|
|
398
|
+
* otherwise risk `ExpressionChangedAfterItHasBeenCheckedError`). `KbqFilters` keeps the trigger (on its
|
|
399
|
+
* main button), focus management and the public `filterSavedSuccessfully`/`filterSavedUnsuccessfully` API,
|
|
400
|
+
* delegating to this component.
|
|
401
|
+
*
|
|
402
|
+
* @docs-private
|
|
403
|
+
*/
|
|
404
|
+
declare class KbqFilterSavePopover implements AfterViewInit {
|
|
405
|
+
private readonly changeDetectorRef;
|
|
406
|
+
/** Popover trigger owned by the parent (`KbqFilters` main button). */
|
|
407
|
+
readonly popoverTrigger: _angular_core.InputSignal<KbqPopoverTrigger>;
|
|
408
|
+
/** Filter bar, used for the save payload, the current filter and localized strings. */
|
|
409
|
+
readonly filterBar: _angular_core.InputSignal<KbqFilterBar>;
|
|
410
|
+
/** Emits when the user saves/renames a filter. */
|
|
411
|
+
readonly save: _angular_core.OutputEmitterRef<KbqSaveFilterEvent>;
|
|
412
|
+
/** Emits when the popover closes; the boolean requests focus restoration by the parent. */
|
|
413
|
+
readonly closed: _angular_core.OutputEmitterRef<boolean>;
|
|
414
|
+
/** @docs-private */
|
|
415
|
+
readonly headerTemplate: _angular_core.Signal<TemplateRef<unknown>>;
|
|
416
|
+
/** @docs-private */
|
|
417
|
+
readonly contentTemplate: _angular_core.Signal<TemplateRef<unknown>>;
|
|
418
|
+
/** @docs-private */
|
|
419
|
+
readonly footerTemplate: _angular_core.Signal<TemplateRef<unknown>>;
|
|
420
|
+
private readonly newFilterName;
|
|
421
|
+
private readonly saveFilterButton;
|
|
422
|
+
/** new filter name for saving */
|
|
423
|
+
filterName: FormControl<string | null>;
|
|
424
|
+
/** true if saving a new filter, false if saving changes in filter */
|
|
425
|
+
saveNewFilter: boolean;
|
|
426
|
+
showFilterSavingError: boolean;
|
|
427
|
+
/** Custom error text passed to `showError()`; `null` when the locale-derived default should be used. */
|
|
428
|
+
private customErrorText;
|
|
429
|
+
isSaving: boolean;
|
|
430
|
+
/** localized data
|
|
431
|
+
* @docs-private */
|
|
432
|
+
get localeData(): {
|
|
433
|
+
defaultName: string;
|
|
434
|
+
saveNewFilterTooltip: string;
|
|
435
|
+
searchPlaceholder: string;
|
|
436
|
+
searchEmptyResult: string;
|
|
437
|
+
saveAsNewFilter: string;
|
|
438
|
+
saveChanges: string;
|
|
439
|
+
saveAsNew: string;
|
|
440
|
+
change: string;
|
|
441
|
+
resetChanges: string;
|
|
442
|
+
remove: string;
|
|
443
|
+
name: string;
|
|
444
|
+
error: string;
|
|
445
|
+
errorHint: string;
|
|
446
|
+
saveButton: string;
|
|
447
|
+
cancelButton: string;
|
|
448
|
+
actionsTooltip: string;
|
|
449
|
+
};
|
|
450
|
+
/** Filter saving error text (custom or locale-derived).
|
|
451
|
+
* @docs-private */
|
|
452
|
+
get filterSavingErrorText(): string;
|
|
453
|
+
/** header of popover. Depends on the mode */
|
|
454
|
+
get popoverHeader(): string;
|
|
455
|
+
ngAfterViewInit(): void;
|
|
456
|
+
openSaveAsNewFilterPopover(): void;
|
|
457
|
+
openChangeFilterNamePopover(): void;
|
|
458
|
+
saveAsNew(event?: Event): void;
|
|
459
|
+
showError(error?: KbqSaveFilterError): void;
|
|
460
|
+
close: (restoreFocus?: boolean) => void;
|
|
461
|
+
/** Hide the popover on a successful save. Focus restoration is handled by the parent. */
|
|
462
|
+
savedSuccessfully(): void;
|
|
463
|
+
/** Release the saving state after a failed save (the error itself is shown by the host via `showError`). */
|
|
464
|
+
savedUnsuccessfully(): void;
|
|
465
|
+
private preparePopover;
|
|
466
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqFilterSavePopover, never>;
|
|
467
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqFilterSavePopover, "kbq-filter-save-popover", never, { "popoverTrigger": { "alias": "popoverTrigger"; "required": true; "isSignal": true; }; "filterBar": { "alias": "filterBar"; "required": true; "isSignal": true; }; }, { "save": "save"; "closed": "closed"; }, never, never, true, never>;
|
|
170
468
|
}
|
|
171
469
|
|
|
172
470
|
declare class KbqFilters implements OnInit {
|
|
@@ -187,79 +485,89 @@ declare class KbqFilters implements OnInit {
|
|
|
187
485
|
/** @docs-private */
|
|
188
486
|
private readonly changeDetectorRef;
|
|
189
487
|
/** @docs-private */
|
|
190
|
-
protected readonly mainButton:
|
|
488
|
+
protected readonly mainButton: _angular_core.Signal<KbqButton>;
|
|
191
489
|
/** @docs-private */
|
|
192
|
-
protected readonly saveNewFilterButton:
|
|
490
|
+
protected readonly saveNewFilterButton: _angular_core.Signal<KbqButton>;
|
|
193
491
|
/** @docs-private */
|
|
194
|
-
protected readonly filterActionsButton:
|
|
492
|
+
protected readonly filterActionsButton: _angular_core.Signal<KbqButton>;
|
|
195
493
|
/** @docs-private */
|
|
196
|
-
protected readonly popover:
|
|
494
|
+
protected readonly popover: _angular_core.Signal<KbqPopoverTrigger>;
|
|
197
495
|
/** @docs-private */
|
|
198
|
-
protected readonly dropdown:
|
|
496
|
+
protected readonly dropdown: _angular_core.Signal<KbqDropdownTrigger>;
|
|
199
497
|
/** @docs-private */
|
|
200
|
-
protected readonly filterActionsDropdown:
|
|
498
|
+
protected readonly filterActionsDropdown: _angular_core.Signal<KbqDropdownTrigger | undefined>;
|
|
499
|
+
/** @docs-private */
|
|
500
|
+
protected readonly savePopover: _angular_core.Signal<KbqFilterSavePopover>;
|
|
201
501
|
private readonly search;
|
|
202
|
-
private readonly newFilterName;
|
|
203
|
-
private readonly saveFilterButton;
|
|
204
502
|
/** control for search filter */
|
|
205
|
-
searchControl:
|
|
503
|
+
readonly searchControl: FormControl<string | null>;
|
|
206
504
|
/** filtered by search filters */
|
|
207
505
|
filteredOptions: Observable<KbqFilter[]>;
|
|
208
506
|
/** @docs-private */
|
|
209
|
-
popoverSize
|
|
507
|
+
protected readonly popoverSize = PopUpSizes.Medium;
|
|
210
508
|
/** @docs-private */
|
|
211
|
-
popoverOffset: number;
|
|
212
|
-
|
|
213
|
-
filterName: FormControl<string | null>;
|
|
214
|
-
/** true if saving a new filter, false if saving changes in filter */
|
|
215
|
-
saveNewFilter: boolean;
|
|
216
|
-
showFilterSavingError: boolean;
|
|
217
|
-
filterSavingErrorText: string;
|
|
218
|
-
isSaving: boolean;
|
|
219
|
-
readonly filters: i0.InputSignal<KbqFilter[]>;
|
|
509
|
+
protected readonly popoverOffset: number;
|
|
510
|
+
readonly filters: _angular_core.InputSignal<KbqFilter[]>;
|
|
220
511
|
/** Event that is generated whenever the user selects a filter. */
|
|
221
|
-
readonly onSelectFilter:
|
|
222
|
-
/**
|
|
223
|
-
|
|
512
|
+
readonly onSelectFilter: _angular_core.OutputEmitterRef<KbqFilter>;
|
|
513
|
+
/**
|
|
514
|
+
* Event that is generated whenever the user save a filter.
|
|
515
|
+
*
|
|
516
|
+
* The emitted `filter` shares its pipe objects with the live filter by design (so the rendered pipes keep
|
|
517
|
+
* their identity across a save instead of being destroyed and recreated). Consumers that persist
|
|
518
|
+
* `event.filter` as an immutable record should snapshot it first (e.g. via `KbqFilterBar.saveFilterState`
|
|
519
|
+
* or a structural copy) — otherwise later in-place pipe edits will mutate the stored reference.
|
|
520
|
+
*/
|
|
521
|
+
readonly onSave: _angular_core.OutputEmitterRef<KbqSaveFilterEvent>;
|
|
224
522
|
/** Event that is generated whenever the user change a filter. */
|
|
225
|
-
readonly onChangeFilter:
|
|
523
|
+
readonly onChangeFilter: _angular_core.OutputEmitterRef<KbqSaveFilterEvent>;
|
|
226
524
|
/** Event that is generated whenever the user remove a filter. */
|
|
227
|
-
readonly onRemoveFilter:
|
|
525
|
+
readonly onRemoveFilter: _angular_core.OutputEmitterRef<KbqFilter>;
|
|
228
526
|
/** Event that is generated whenever the user reset a filter changes. */
|
|
229
|
-
readonly onResetFilterChanges:
|
|
230
|
-
/** header of popover. Depends on the mode */
|
|
231
|
-
get popoverHeader(): string;
|
|
527
|
+
readonly onResetFilterChanges: _angular_core.OutputEmitterRef<KbqFilter | null>;
|
|
232
528
|
/** Component state. true if opened dropdown or popup */
|
|
233
529
|
get opened(): boolean;
|
|
234
530
|
/** Component state. true if opened dropdown or popup of filterActions */
|
|
235
531
|
get filterActionsOpened(): boolean;
|
|
236
|
-
/** Selected filter */
|
|
532
|
+
/** Selected filter. Kept as a plain getter facade over the bar's `filter` model. */
|
|
237
533
|
get filter(): KbqFilter | null;
|
|
238
534
|
/** Component state. True if 'filters' input contains no elements. */
|
|
239
535
|
get isEmpty(): boolean;
|
|
240
536
|
/** localized data
|
|
241
537
|
* @docs-private */
|
|
242
|
-
get localeData():
|
|
538
|
+
get localeData(): {
|
|
539
|
+
defaultName: string;
|
|
540
|
+
saveNewFilterTooltip: string;
|
|
541
|
+
searchPlaceholder: string;
|
|
542
|
+
searchEmptyResult: string;
|
|
543
|
+
saveAsNewFilter: string;
|
|
544
|
+
saveChanges: string;
|
|
545
|
+
saveAsNew: string;
|
|
546
|
+
change: string;
|
|
547
|
+
resetChanges: string;
|
|
548
|
+
remove: string;
|
|
549
|
+
name: string;
|
|
550
|
+
error: string;
|
|
551
|
+
errorHint: string;
|
|
552
|
+
saveButton: string;
|
|
553
|
+
cancelButton: string;
|
|
554
|
+
actionsTooltip: string;
|
|
555
|
+
};
|
|
243
556
|
/** Current focus origin state.
|
|
244
557
|
* @docs-private */
|
|
245
558
|
get focusOrigin(): FocusOrigin;
|
|
246
559
|
private _focusOrigin;
|
|
247
560
|
private focusedElementBeforeOpen;
|
|
248
|
-
constructor();
|
|
249
561
|
ngOnInit(): void;
|
|
250
562
|
/** @docs-private */
|
|
251
563
|
focusedElementBeforeIs(button: KbqButton): boolean;
|
|
252
564
|
selectFilter(filter: KbqFilter): void;
|
|
253
565
|
saveChanges(): void;
|
|
254
|
-
saveAsNew(event?: Event): void;
|
|
255
|
-
showError(error?: KbqSaveFilterError): void;
|
|
256
566
|
restoreFocus(): void;
|
|
257
|
-
preparePopover(): void;
|
|
258
|
-
openSaveAsNewFilterPopover(): void;
|
|
259
|
-
openChangeFilterNamePopover(): void;
|
|
260
567
|
/** @docs-private */
|
|
261
568
|
saveFocusedElement(button?: KbqButton): void;
|
|
262
|
-
|
|
569
|
+
/** Restore focus when the save popover reports it closed. @docs-private */
|
|
570
|
+
onSavePopoverClosed(restoreFocus: boolean): void;
|
|
263
571
|
/** @docs-private */
|
|
264
572
|
stopEventPropagation(event: Event): void;
|
|
265
573
|
/** @docs-private */
|
|
@@ -273,64 +581,142 @@ declare class KbqFilters implements OnInit {
|
|
|
273
581
|
filterSavedSuccessfully(): void;
|
|
274
582
|
/** Shows an error. Use this method in the onSave or onChangeFilter events if saving data failed. */
|
|
275
583
|
filterSavedUnsuccessfully(error?: KbqSaveFilterError): void;
|
|
584
|
+
/** @docs-private */
|
|
585
|
+
get filterName(): FormControl<string | null>;
|
|
586
|
+
/** @docs-private */
|
|
587
|
+
get saveNewFilter(): boolean;
|
|
588
|
+
/** @docs-private */
|
|
589
|
+
set saveNewFilter(value: boolean);
|
|
590
|
+
/** @docs-private */
|
|
591
|
+
get isSaving(): boolean;
|
|
592
|
+
/** @docs-private */
|
|
593
|
+
set isSaving(value: boolean);
|
|
594
|
+
/** @docs-private */
|
|
595
|
+
get showFilterSavingError(): boolean;
|
|
596
|
+
/** @docs-private */
|
|
597
|
+
set showFilterSavingError(value: boolean);
|
|
598
|
+
/** @docs-private */
|
|
599
|
+
get filterSavingErrorText(): string;
|
|
600
|
+
/** header of popover. Depends on the mode
|
|
601
|
+
* @docs-private */
|
|
602
|
+
get popoverHeader(): string;
|
|
603
|
+
/** @docs-private */
|
|
604
|
+
openSaveAsNewFilterPopover(): void;
|
|
605
|
+
/** @docs-private */
|
|
606
|
+
openChangeFilterNamePopover(): void;
|
|
607
|
+
/** @docs-private */
|
|
608
|
+
saveAsNew(event?: Event): void;
|
|
609
|
+
/** @docs-private */
|
|
610
|
+
showError(error?: KbqSaveFilterError): void;
|
|
611
|
+
/** @docs-private */
|
|
612
|
+
closePopover(restoreFocus?: boolean): void;
|
|
276
613
|
private getFilteredOptions;
|
|
277
|
-
static ɵfac:
|
|
278
|
-
static ɵcmp:
|
|
614
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqFilters, never>;
|
|
615
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqFilters, "kbq-filters", ["kbqFilters"], { "filters": { "alias": "filters"; "required": true; "isSignal": true; }; }, { "onSelectFilter": "onSelectFilter"; "onSave": "onSave"; "onChangeFilter": "onChangeFilter"; "onRemoveFilter": "onRemoveFilter"; "onResetFilterChanges": "onResetFilterChanges"; }, never, ["*"], true, never>;
|
|
279
616
|
}
|
|
280
617
|
|
|
281
|
-
declare class KbqFilterBar {
|
|
618
|
+
declare class KbqFilterBar implements KbqFilterBarHost {
|
|
282
619
|
/** @docs-private */
|
|
283
620
|
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
284
621
|
/** @docs-private */
|
|
285
622
|
protected readonly localeService: _koobiq_components_core.KbqLocaleService | null;
|
|
286
|
-
readonly externalConfiguration:
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
623
|
+
readonly externalConfiguration: {
|
|
624
|
+
reset: {
|
|
625
|
+
buttonName: string;
|
|
626
|
+
};
|
|
627
|
+
search: {
|
|
628
|
+
tooltip: string;
|
|
629
|
+
placeholder: string;
|
|
630
|
+
};
|
|
631
|
+
filters: {
|
|
632
|
+
defaultName: string;
|
|
633
|
+
saveNewFilterTooltip: string;
|
|
634
|
+
searchPlaceholder: string;
|
|
635
|
+
searchEmptyResult: string;
|
|
636
|
+
saveAsNewFilter: string;
|
|
637
|
+
saveChanges: string;
|
|
638
|
+
saveAsNew: string;
|
|
639
|
+
change: string;
|
|
640
|
+
resetChanges: string;
|
|
641
|
+
remove: string;
|
|
642
|
+
name: string;
|
|
643
|
+
error: string;
|
|
644
|
+
errorHint: string;
|
|
645
|
+
saveButton: string;
|
|
646
|
+
cancelButton: string;
|
|
647
|
+
actionsTooltip: string;
|
|
648
|
+
};
|
|
649
|
+
add: {
|
|
650
|
+
tooltip: string;
|
|
651
|
+
addedAnnouncement: string;
|
|
652
|
+
};
|
|
653
|
+
refresher: {
|
|
654
|
+
refresh: string;
|
|
655
|
+
settings: string;
|
|
656
|
+
};
|
|
657
|
+
pipe: {
|
|
658
|
+
clearButtonTooltip: string;
|
|
659
|
+
removeButtonTooltip: string;
|
|
660
|
+
applyButton: string;
|
|
661
|
+
emptySearchResult: string;
|
|
662
|
+
selectAll: string;
|
|
663
|
+
};
|
|
664
|
+
datePipe: {
|
|
665
|
+
customPeriod: string;
|
|
666
|
+
customPeriodFrom: string;
|
|
667
|
+
customPeriodTo: string;
|
|
668
|
+
customPeriodErrorHint: string;
|
|
669
|
+
backToPeriodSelection: string;
|
|
670
|
+
};
|
|
671
|
+
} | null;
|
|
672
|
+
/** Localized strings and configuration for the filter-bar and its pipes. */
|
|
673
|
+
get configuration(): KbqFilterBarConfiguration;
|
|
674
|
+
set configuration(value: KbqFilterBarConfiguration);
|
|
675
|
+
private readonly _configuration;
|
|
676
|
+
/** @docs-private */
|
|
677
|
+
readonly filters: _angular_core.Signal<KbqFilters | undefined>;
|
|
678
|
+
/** @docs-private */
|
|
679
|
+
readonly filterReset: _angular_core.Signal<KbqFilterReset | undefined>;
|
|
292
680
|
/**
|
|
293
681
|
* This is special logic that unselect all items when all selected because "all selected = nothing selected".
|
|
294
682
|
* Default is true
|
|
295
683
|
* */
|
|
296
|
-
readonly selectedAllEqualsSelectedNothing:
|
|
297
|
-
/** Filter that is currently selected */
|
|
298
|
-
get filter(): KbqFilter | null;
|
|
299
|
-
set filter(value: KbqFilter | null);
|
|
300
|
-
private _filter;
|
|
301
|
-
/** An array of templates that are used when adding a pipe. Also contains lists of options to select (values). */
|
|
302
|
-
get pipeTemplates(): KbqPipeTemplate[];
|
|
303
|
-
set pipeTemplates(value: KbqPipeTemplate[]);
|
|
304
|
-
private _templates;
|
|
684
|
+
readonly selectedAllEqualsSelectedNothing: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
305
685
|
/**
|
|
306
|
-
*
|
|
307
|
-
*
|
|
308
|
-
*
|
|
686
|
+
* Filter that is currently selected. A two-way-bindable `model()`: derived state (`isSaved`/`isChanged`/…)
|
|
687
|
+
* is exposed via `computed()` off it and change detection is driven by signal reactivity. `model()`
|
|
688
|
+
* auto-provides the `filterChange` output for `[(filter)]` two-way binding.
|
|
309
689
|
*/
|
|
310
|
-
readonly
|
|
690
|
+
readonly filter: _angular_core.ModelSignal<KbqFilter | null>;
|
|
691
|
+
/** An array of templates that are used when adding a pipe. Also contains lists of options to select (values). */
|
|
692
|
+
readonly pipeTemplates: _angular_core.InputSignal<KbqPipeTemplate[]>;
|
|
311
693
|
/** Event that emits whenever the value of the pipe changes. */
|
|
312
|
-
readonly onChangePipe:
|
|
694
|
+
readonly onChangePipe: _angular_core.OutputEmitterRef<KbqPipe>;
|
|
313
695
|
/** Event that emits whenever the pipe deleted. */
|
|
314
|
-
readonly onRemovePipe:
|
|
696
|
+
readonly onRemovePipe: _angular_core.OutputEmitterRef<KbqPipe>;
|
|
315
697
|
/** Event that emits whenever the pipe cleared. */
|
|
316
|
-
readonly onClearPipe:
|
|
698
|
+
readonly onClearPipe: _angular_core.OutputEmitterRef<KbqPipe>;
|
|
317
699
|
/** Event that emits whenever the select or multiselect pipe closed. */
|
|
318
|
-
readonly onClosePipe:
|
|
319
|
-
/** Whether the current filter is saved and changed */
|
|
320
|
-
get isSavedAndChanged(): boolean;
|
|
700
|
+
readonly onClosePipe: _angular_core.OutputEmitterRef<KbqPipe>;
|
|
321
701
|
/** Whether the current filter is saved */
|
|
322
|
-
|
|
702
|
+
readonly isSaved: _angular_core.Signal<boolean>;
|
|
323
703
|
/** Whether the current filter is changed */
|
|
324
|
-
|
|
704
|
+
readonly isChanged: _angular_core.Signal<boolean>;
|
|
705
|
+
/** Whether the current filter is saved and changed */
|
|
706
|
+
readonly isSavedAndChanged: _angular_core.Signal<boolean>;
|
|
325
707
|
/** Whether the current filter is readonly */
|
|
326
|
-
|
|
708
|
+
readonly isReadOnly: _angular_core.Signal<boolean>;
|
|
327
709
|
/** Whether the current filter is disabled */
|
|
328
|
-
|
|
710
|
+
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
329
711
|
private savedFilter;
|
|
712
|
+
/**
|
|
713
|
+
* All changes.
|
|
714
|
+
* @deprecated noop. Reactivity is driven by the `filter` signal now; this never emits and will be
|
|
715
|
+
* removed in the next major.
|
|
716
|
+
*/
|
|
717
|
+
readonly changes: BehaviorSubject<void>;
|
|
330
718
|
/** Event that emits whenever the filter is reset. */
|
|
331
719
|
readonly onResetFilter: BehaviorSubject<boolean>;
|
|
332
|
-
/** all changes */
|
|
333
|
-
readonly changes: BehaviorSubject<void>;
|
|
334
720
|
/** internal filter changes */
|
|
335
721
|
readonly internalFilterChanges: BehaviorSubject<KbqFilter | null>;
|
|
336
722
|
/** internal changes in templates */
|
|
@@ -341,48 +727,118 @@ declare class KbqFilterBar {
|
|
|
341
727
|
constructor();
|
|
342
728
|
/** Remove pipe from current filter and emit event */
|
|
343
729
|
removePipe(pipe: KbqPipe): void;
|
|
344
|
-
/**
|
|
730
|
+
/**
|
|
731
|
+
* Save current state of filter.
|
|
732
|
+
*
|
|
733
|
+
* Deep-clones the filter via `structuredClone`, so any pipe `value` payload handed to save/restore must be
|
|
734
|
+
* structured-cloneable (plain data — no functions, DOM nodes, class instances or `TemplateRef`s), otherwise
|
|
735
|
+
* `structuredClone` throws `DataCloneError`. All built-in pipes produce cloneable values.
|
|
736
|
+
*/
|
|
345
737
|
saveFilterState(filter?: KbqFilter): void;
|
|
346
|
-
/**
|
|
738
|
+
/**
|
|
739
|
+
* Restore previously saved filter state.
|
|
740
|
+
*
|
|
741
|
+
* @see `saveFilterState` — pipe `value` payloads must be structured-cloneable.
|
|
742
|
+
*/
|
|
347
743
|
restoreFilterState(filter?: KbqFilter): void;
|
|
348
744
|
/** Set the filter state "changed" to false */
|
|
349
745
|
resetFilterChangedState(): void;
|
|
350
746
|
private updateLocaleParams;
|
|
351
747
|
private initDefaultParams;
|
|
352
|
-
static ɵfac:
|
|
353
|
-
static ɵcmp:
|
|
748
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqFilterBar, never>;
|
|
749
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqFilterBar, "kbq-filter-bar, [kbq-filter-bar]", never, { "selectedAllEqualsSelectedNothing": { "alias": "selectedAllEqualsSelectedNothing"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "pipeTemplates": { "alias": "pipeTemplates"; "required": false; "isSignal": true; }; }, { "filter": "filterChange"; "onChangePipe": "onChangePipe"; "onRemovePipe": "onRemovePipe"; "onClearPipe": "onClearPipe"; "onClosePipe": "onClosePipe"; }, ["filters", "filterReset"], ["kbq-filters", "*", "kbq-pipe-add", "kbq-filter-reset", "kbq-search-expandable", "kbq-filter-refresher, [kbq-filter-refresher]"], true, never>;
|
|
354
750
|
}
|
|
355
751
|
|
|
356
752
|
declare class KbqFilterBarButton {
|
|
357
753
|
private readonly button;
|
|
358
|
-
/** KbqFilterBar
|
|
754
|
+
/** KbqFilterBar host seam */
|
|
359
755
|
private readonly filterBar;
|
|
360
756
|
/** KbqFilters instance */
|
|
361
757
|
protected readonly filters: KbqFilters;
|
|
362
758
|
constructor();
|
|
363
759
|
/** @docs-private */
|
|
364
760
|
saveFocusedElement(): void;
|
|
365
|
-
static ɵfac:
|
|
366
|
-
static ɵdir:
|
|
761
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqFilterBarButton, never>;
|
|
762
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqFilterBarButton, "[kbqFilterBarButton]", never, {}, {}, never, never, true, never>;
|
|
367
763
|
}
|
|
368
764
|
|
|
369
|
-
declare class
|
|
370
|
-
|
|
371
|
-
|
|
765
|
+
declare class KbqFilterRefresher {
|
|
766
|
+
/** KbqFilterBar host seam */
|
|
767
|
+
private readonly filterBar;
|
|
768
|
+
/** localized data
|
|
769
|
+
* @docs-private */
|
|
770
|
+
protected get localeData(): {
|
|
771
|
+
reset: {
|
|
772
|
+
buttonName: string;
|
|
773
|
+
};
|
|
774
|
+
search: {
|
|
775
|
+
tooltip: string;
|
|
776
|
+
placeholder: string;
|
|
777
|
+
};
|
|
778
|
+
filters: {
|
|
779
|
+
defaultName: string;
|
|
780
|
+
saveNewFilterTooltip: string;
|
|
781
|
+
searchPlaceholder: string;
|
|
782
|
+
searchEmptyResult: string;
|
|
783
|
+
saveAsNewFilter: string;
|
|
784
|
+
saveChanges: string;
|
|
785
|
+
saveAsNew: string;
|
|
786
|
+
change: string;
|
|
787
|
+
resetChanges: string;
|
|
788
|
+
remove: string;
|
|
789
|
+
name: string;
|
|
790
|
+
error: string;
|
|
791
|
+
errorHint: string;
|
|
792
|
+
saveButton: string;
|
|
793
|
+
cancelButton: string;
|
|
794
|
+
actionsTooltip: string;
|
|
795
|
+
};
|
|
796
|
+
add: {
|
|
797
|
+
tooltip: string;
|
|
798
|
+
addedAnnouncement: string;
|
|
799
|
+
};
|
|
800
|
+
refresher: {
|
|
801
|
+
refresh: string;
|
|
802
|
+
settings: string;
|
|
803
|
+
};
|
|
804
|
+
pipe: {
|
|
805
|
+
clearButtonTooltip: string;
|
|
806
|
+
removeButtonTooltip: string;
|
|
807
|
+
applyButton: string;
|
|
808
|
+
emptySearchResult: string;
|
|
809
|
+
selectAll: string;
|
|
810
|
+
};
|
|
811
|
+
datePipe: {
|
|
812
|
+
customPeriod: string;
|
|
813
|
+
customPeriodFrom: string;
|
|
814
|
+
customPeriodTo: string;
|
|
815
|
+
customPeriodErrorHint: string;
|
|
816
|
+
backToPeriodSelection: string;
|
|
817
|
+
};
|
|
818
|
+
};
|
|
819
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqFilterRefresher, never>;
|
|
820
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqFilterRefresher, "kbq-filter-refresher, [kbq-filter-refresher]", never, {}, {}, never, never, true, never>;
|
|
372
821
|
}
|
|
373
822
|
|
|
374
823
|
declare class KbqPipeAdd {
|
|
375
824
|
/** KbqFilterBar instance */
|
|
376
|
-
protected readonly filterBar:
|
|
825
|
+
protected readonly filterBar: KbqFilterBarHost;
|
|
377
826
|
/** @docs-private */
|
|
378
|
-
readonly select:
|
|
827
|
+
readonly select: _angular_core.Signal<KbqSelect>;
|
|
379
828
|
/** Event that is generated after add pipe. */
|
|
380
|
-
readonly onAddPipe:
|
|
829
|
+
readonly onAddPipe: _angular_core.OutputEmitterRef<KbqPipeTemplate>;
|
|
381
830
|
/** template of filter */
|
|
382
|
-
readonly filterTemplate:
|
|
383
|
-
/**
|
|
384
|
-
|
|
385
|
-
|
|
831
|
+
readonly filterTemplate: _angular_core.InputSignal<KbqFilter>;
|
|
832
|
+
/**
|
|
833
|
+
* Ids of the pipes already added to the current filter. Used to open an already-added pipe.
|
|
834
|
+
* Derived from the `filter` signal so it stays in sync without the retired `changes` bus.
|
|
835
|
+
*/
|
|
836
|
+
readonly addedPipes: _angular_core.Signal<(string | number | (string & {}))[]>;
|
|
837
|
+
/**
|
|
838
|
+
* Visually-hidden live-region text announcing a newly-added pipe to assistive tech (WCAG 4.1.3).
|
|
839
|
+
* @docs-private
|
|
840
|
+
*/
|
|
841
|
+
protected readonly announcement: _angular_core.WritableSignal<string>;
|
|
386
842
|
addPipeFromTemplate(option: KbqOption): void;
|
|
387
843
|
/**
|
|
388
844
|
* Function to compare the option values with the selected values. The first argument
|
|
@@ -390,135 +846,45 @@ declare class KbqPipeAdd {
|
|
|
390
846
|
* should be returned.
|
|
391
847
|
*/
|
|
392
848
|
compareWith(o1: KbqPipe, o2: string): boolean;
|
|
393
|
-
static ɵfac:
|
|
394
|
-
static ɵcmp:
|
|
849
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeAdd, never>;
|
|
850
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeAdd, "kbq-pipe-add", never, { "filterTemplate": { "alias": "filterTemplate"; "required": false; "isSignal": true; }; }, { "onAddPipe": "onAddPipe"; }, never, never, true, never>;
|
|
395
851
|
}
|
|
396
852
|
|
|
397
853
|
declare class KbqPipeDirective<T extends KbqPipe> implements AfterContentInit {
|
|
398
854
|
private injector;
|
|
399
855
|
private pipes;
|
|
400
856
|
private viewContainerRef;
|
|
401
|
-
readonly pipe:
|
|
857
|
+
readonly pipe: _angular_core.InputSignal<T>;
|
|
402
858
|
ngAfterContentInit(): void;
|
|
403
859
|
private getInjector;
|
|
404
|
-
static ɵfac:
|
|
405
|
-
static ɵdir:
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
/** Injection Token for providing configuration of filter-bar */
|
|
409
|
-
declare const KBQ_PIPE_DATA: InjectionToken<unknown>;
|
|
410
|
-
/** function to get unique identifier of an element */
|
|
411
|
-
declare function getId(item: KbqPipeTemplate): KbqPipeType | string | number;
|
|
412
|
-
declare abstract class KbqBasePipe<V> implements AfterViewInit {
|
|
413
|
-
/** changes of state */
|
|
414
|
-
readonly stateChanges: Subject<void>;
|
|
415
|
-
/** pipe data. Provided from subclass */
|
|
416
|
-
readonly data: KbqPipeData<V>;
|
|
417
|
-
/** KbqFilterBar instance
|
|
418
|
-
* @docs-private */
|
|
419
|
-
protected readonly filterBar: KbqFilterBar | null;
|
|
420
|
-
/** @docs-private */
|
|
421
|
-
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
422
|
-
/** @docs-private */
|
|
423
|
-
protected readonly destroyRef: DestroyRef;
|
|
424
|
-
/** values to select from the pipe template */
|
|
425
|
-
protected values: any;
|
|
426
|
-
/** TemplateRef for selecting an option */
|
|
427
|
-
protected valueTemplate?: TemplateRef<any> | string;
|
|
428
|
-
/**
|
|
429
|
-
* Whether the current platform is a Mac.
|
|
430
|
-
*
|
|
431
|
-
* @docs-private
|
|
432
|
-
*/
|
|
433
|
-
isMac: boolean;
|
|
434
|
-
/** Data for the pipe.
|
|
435
|
-
* @docs-private */
|
|
436
|
-
$implicit: unknown;
|
|
437
|
-
/** Whether the current pipe is empty. Used for apply style modifier */
|
|
438
|
-
get isEmpty(): boolean;
|
|
439
|
-
/** Whether the current pipe is removable or cleanable. Used for apply style modifier */
|
|
440
|
-
get showRemoveButton(): boolean;
|
|
441
|
-
/** localized data
|
|
442
|
-
* @docs-private */
|
|
443
|
-
get localeData(): any;
|
|
444
|
-
constructor();
|
|
445
|
-
ngAfterViewInit(): void;
|
|
446
|
-
/** templateRef checker utility */
|
|
447
|
-
isTemplateRef(value: unknown): boolean;
|
|
448
|
-
/** updates values for selection and value template */
|
|
449
|
-
updateTemplates: (templates: KbqPipeTemplate[] | null) => void;
|
|
450
|
-
/** removes pipe from filter-bar and triggers changes */
|
|
451
|
-
onRemove(): void;
|
|
452
|
-
/** clears the pipe and triggers changes */
|
|
453
|
-
onClear(): void;
|
|
454
|
-
/** @docs-private */
|
|
455
|
-
abstract open(): void;
|
|
456
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<KbqBasePipe<any>, never>;
|
|
457
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqBasePipe<any>, never, never, {}, {}, never, never, true, never>;
|
|
458
|
-
}
|
|
459
|
-
declare class KbqPipeMinWidth {
|
|
460
|
-
/** KbqFilterBar instance */
|
|
461
|
-
protected readonly filterBar: KbqFilterBar | null;
|
|
462
|
-
/** @docs-private */
|
|
463
|
-
protected readonly elementRef: ElementRef<HTMLElement>;
|
|
464
|
-
/** @docs-private */
|
|
465
|
-
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
466
|
-
/** @docs-private */
|
|
467
|
-
protected minWidth: string;
|
|
468
|
-
/** maximal symbols for apply fit-content to min-width */
|
|
469
|
-
maxSymbolsForFitContent: number;
|
|
470
|
-
/** current length of text */
|
|
471
|
-
get textLength(): number;
|
|
472
|
-
constructor();
|
|
473
|
-
update: () => void;
|
|
474
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeMinWidth, never>;
|
|
475
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqPipeMinWidth, "[kbqPipeMinWidth]", never, {}, {}, never, never, true, never>;
|
|
860
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeDirective<any>, never>;
|
|
861
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqPipeDirective<any>, "[kbqPipe]", never, { "pipe": { "alias": "kbqPipe"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
476
862
|
}
|
|
477
863
|
|
|
478
864
|
declare class KbqPipeButton {
|
|
479
865
|
/** KbqPipe instance */
|
|
480
866
|
protected readonly pipe: KbqBasePipe<any>;
|
|
481
867
|
/** KbqFilterBar instance */
|
|
482
|
-
protected readonly filterBar:
|
|
868
|
+
protected readonly filterBar: KbqFilterBarHost;
|
|
483
869
|
/** @docs-private */
|
|
484
870
|
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
485
871
|
/** enables/disables read-only state */
|
|
486
|
-
readonly readonly:
|
|
872
|
+
readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
487
873
|
/** localized data
|
|
488
874
|
* @docs-private */
|
|
489
|
-
get localeData():
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
private componentInstance;
|
|
497
|
-
get isOverflown(): boolean;
|
|
498
|
-
readonly viewValue: i0.InputSignal<TemplateRef<any>>;
|
|
499
|
-
get parent(): HTMLElement;
|
|
500
|
-
get child(): HTMLElement;
|
|
501
|
-
readonly resizeStream: Subject<Event>;
|
|
502
|
-
private readonly debounceInterval;
|
|
503
|
-
private resizeSubscription;
|
|
504
|
-
private mutationSubscription;
|
|
505
|
-
private focusMonitorSubscription;
|
|
506
|
-
private childContainer;
|
|
507
|
-
private parentContainer;
|
|
875
|
+
get localeData(): {
|
|
876
|
+
clearButtonTooltip: string;
|
|
877
|
+
removeButtonTooltip: string;
|
|
878
|
+
applyButton: string;
|
|
879
|
+
emptySearchResult: string;
|
|
880
|
+
selectAll: string;
|
|
881
|
+
};
|
|
508
882
|
constructor();
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
handleElementEnter(): void;
|
|
512
|
-
hideTooltip(): void;
|
|
513
|
-
private listenToMutationObserver;
|
|
514
|
-
private createMutationObserver;
|
|
515
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeTitleDirective, never>;
|
|
516
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqPipeTitleDirective, "[kbqPipeTitle]", ["kbqPipeTitle"], { "viewValue": { "alias": "kbqPipeTitle"; "required": false; "isSignal": true; }; }, {}, ["parentContainer", "childContainer"], never, true, never>;
|
|
883
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeButton, never>;
|
|
884
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeButton, "kbq-pipe-button", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
517
885
|
}
|
|
518
886
|
|
|
519
|
-
declare class KbqPipeState<T>
|
|
520
|
-
/** @docs-private */
|
|
521
|
-
private readonly destroyRef;
|
|
887
|
+
declare class KbqPipeState<T> {
|
|
522
888
|
/** @docs-private */
|
|
523
889
|
private readonly button;
|
|
524
890
|
/** @docs-private */
|
|
@@ -526,25 +892,29 @@ declare class KbqPipeState<T> implements OnInit {
|
|
|
526
892
|
/** KbqFilterBar instance
|
|
527
893
|
* @docs-private */
|
|
528
894
|
private readonly filterBar;
|
|
529
|
-
/**
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
private _state;
|
|
533
|
-
ngOnInit(): void;
|
|
895
|
+
/** Pipe state used to calculate/update the button style. */
|
|
896
|
+
readonly state: _angular_core.InputSignal<T | null>;
|
|
897
|
+
constructor();
|
|
534
898
|
private updateState;
|
|
535
|
-
static ɵfac:
|
|
536
|
-
static ɵdir:
|
|
899
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeState<any>, never>;
|
|
900
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqPipeState<any>, "[kbqPipeState]", never, { "state": { "alias": "kbqPipeState"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
537
901
|
}
|
|
538
902
|
|
|
539
903
|
declare class KbqFilterBarModule {
|
|
540
|
-
static ɵfac:
|
|
541
|
-
static ɵmod:
|
|
542
|
-
static ɵinj:
|
|
904
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqFilterBarModule, never>;
|
|
905
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<KbqFilterBarModule, never, [typeof KbqFilterBar, typeof KbqFilters, typeof KbqFilterRefresher, typeof KbqFilterBarButton, typeof KbqFilterReset, typeof KbqPipeAdd, typeof KbqPipeDirective, typeof KbqPipeButton, typeof KbqPipeState], [typeof KbqFilterBar, typeof KbqFilters, typeof KbqFilterRefresher, typeof KbqFilterBarButton, typeof KbqFilterReset, typeof KbqPipeAdd, typeof KbqPipeDirective, typeof KbqPipeButton, typeof KbqPipeState]>;
|
|
906
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<KbqFilterBarModule>;
|
|
543
907
|
}
|
|
544
908
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
909
|
+
/**
|
|
910
|
+
* Shared implementation for the `date` and `datetime` pipes. The two pipes differ only in how a range
|
|
911
|
+
* is formatted and in their default start/end values, exposed here as the {@link formatRange},
|
|
912
|
+
* {@link getDefaultStart} and {@link getDefaultEnd} hooks. Everything else — the period list / custom
|
|
913
|
+
* period flow, calendar handling and form group — is common.
|
|
914
|
+
*/
|
|
915
|
+
declare abstract class KbqPipeDateBaseComponent<D> extends KbqBasePipe<KbqDateTimeValue> implements AfterViewInit {
|
|
916
|
+
protected readonly adapter: DateAdapter<any>;
|
|
917
|
+
protected readonly formatter: DateFormatter<any>;
|
|
548
918
|
/** @docs-private */
|
|
549
919
|
protected readonly placements: typeof PopUpPlacements;
|
|
550
920
|
/** @docs-private */
|
|
@@ -559,6 +929,12 @@ declare class KbqPipeDateComponent<D> extends KbqBasePipe<KbqDateTimeValue> impl
|
|
|
559
929
|
protected showStartCalendar: boolean;
|
|
560
930
|
/** @docs-private */
|
|
561
931
|
protected showEndCalendar: boolean;
|
|
932
|
+
/** @docs-private */
|
|
933
|
+
readonly popover: _angular_core.Signal<KbqPopoverTrigger>;
|
|
934
|
+
/** @docs-private */
|
|
935
|
+
readonly listSelection: _angular_core.Signal<KbqListSelection | undefined>;
|
|
936
|
+
/** @docs-private */
|
|
937
|
+
readonly returnButton: _angular_core.Signal<KbqButton>;
|
|
562
938
|
/** formatted value for period */
|
|
563
939
|
get formattedValue(): string;
|
|
564
940
|
/** Whether the current pipe is disabled. */
|
|
@@ -573,12 +949,6 @@ declare class KbqPipeDateComponent<D> extends KbqBasePipe<KbqDateTimeValue> impl
|
|
|
573
949
|
get defaultEnd(): D;
|
|
574
950
|
/** Whether the current pipe is empty. */
|
|
575
951
|
get isEmpty(): boolean;
|
|
576
|
-
/** @docs-private */
|
|
577
|
-
readonly popover: i0.Signal<KbqPopoverTrigger>;
|
|
578
|
-
/** @docs-private */
|
|
579
|
-
listSelection: i0.Signal<KbqListSelection>;
|
|
580
|
-
/** @docs-private */
|
|
581
|
-
returnButton: i0.Signal<KbqButton>;
|
|
582
952
|
ngAfterViewInit(): void;
|
|
583
953
|
/** keydown handler
|
|
584
954
|
* @docs-private */
|
|
@@ -594,78 +964,80 @@ declare class KbqPipeDateComponent<D> extends KbqBasePipe<KbqDateTimeValue> impl
|
|
|
594
964
|
onFocusStartInput(): void;
|
|
595
965
|
onFocusEndInput(): void;
|
|
596
966
|
hideCalendars(): void;
|
|
967
|
+
/** Formats the selected range for display. */
|
|
968
|
+
protected abstract formatRange(start: D, end: D): string;
|
|
969
|
+
/** Default start value used when the pipe has no stored `start`. */
|
|
970
|
+
protected abstract getDefaultStart(): D;
|
|
971
|
+
/** Default end value used when the pipe has no stored `start`. */
|
|
972
|
+
protected abstract getDefaultEnd(): D;
|
|
597
973
|
private initFormGroup;
|
|
598
|
-
static ɵfac:
|
|
599
|
-
static
|
|
974
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeDateBaseComponent<any>, never>;
|
|
975
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqPipeDateBaseComponent<any>, never, never, {}, {}, never, never, true, never>;
|
|
600
976
|
}
|
|
601
977
|
|
|
602
|
-
declare class
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
protected
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
978
|
+
declare class KbqPipeDateComponent<D> extends KbqPipeDateBaseComponent<D> {
|
|
979
|
+
protected formatRange(start: D, end: D): string;
|
|
980
|
+
protected getDefaultStart(): D;
|
|
981
|
+
protected getDefaultEnd(): D;
|
|
982
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeDateComponent<any>, never>;
|
|
983
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeDateComponent<any>, "kbq-pipe-date", never, {}, {}, never, never, true, never>;
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
declare class KbqPipeDatetimeComponent<D> extends KbqPipeDateBaseComponent<D> {
|
|
987
|
+
protected formatRange(start: D, end: D): string;
|
|
988
|
+
protected getDefaultStart(): D;
|
|
989
|
+
protected getDefaultEnd(): D;
|
|
990
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeDatetimeComponent<any>, never>;
|
|
991
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeDatetimeComponent<any>, "kbq-pipe-datetime", never, {}, {}, never, never, true, never>;
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
declare class KbqPipeInputComponent extends KbqBasePipe<string | null> implements OnInit {
|
|
617
995
|
/** @docs-private */
|
|
618
|
-
protected
|
|
619
|
-
/**
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
/**
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
996
|
+
protected readonly input: _angular_core.Signal<KbqInput>;
|
|
997
|
+
/**
|
|
998
|
+
* Input control.
|
|
999
|
+
*
|
|
1000
|
+
* Must stay nullable: `reset()` — all `KbqFormField.clearValue()` and its Escape handler ever call —
|
|
1001
|
+
* resolves to `defaultValue`, which is `null` only while `nonNullable` is unset. `{ nonNullable: true }`
|
|
1002
|
+
* would make `reset()` yield `''` and silently break the cleaner bridge below.
|
|
1003
|
+
*/
|
|
1004
|
+
readonly control: FormControl<string | null>;
|
|
1005
|
+
/**
|
|
1006
|
+
* Debounce in milliseconds between the last keystroke and the typed value being applied to the filter.
|
|
1007
|
+
* Matches `defaultEmitValueTimeout` of `kbq-search-expandable`, so both search fields of a bar feel the
|
|
1008
|
+
* same. `Enter` and blur apply immediately and cancel a pending apply.
|
|
1009
|
+
*/
|
|
1010
|
+
debounceTime: number;
|
|
1011
|
+
/**
|
|
1012
|
+
* Minimum number of characters before typing applies the value to the filter. Anything shorter —
|
|
1013
|
+
* including an emptied field — is applied as `null`, so the filter never keeps text the user has
|
|
1014
|
+
* already erased. `Enter` and blur ignore the threshold. Set to `0` to apply every keystroke.
|
|
1015
|
+
*/
|
|
1016
|
+
minLength: number;
|
|
1017
|
+
/** Cancels a pending debounced apply once the value has been applied (or cleared) through another path. */
|
|
1018
|
+
private readonly cancelPendingApply;
|
|
1019
|
+
/** Whether the current pipe is empty. Used for apply style modifier */
|
|
632
1020
|
get isEmpty(): boolean;
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
/** @docs-private */
|
|
638
|
-
returnButton: i0.Signal<KbqButton>;
|
|
639
|
-
ngAfterViewInit(): void;
|
|
640
|
-
/** keydown handler
|
|
641
|
-
* @docs-private */
|
|
642
|
-
onKeydown($event: KeyboardEvent): void;
|
|
643
|
-
/** @docs-private */
|
|
644
|
-
onApplyPeriod(): void;
|
|
645
|
-
onSelect(item: KbqDateTimeValue): void;
|
|
646
|
-
showPeriod(): void;
|
|
647
|
-
showList(): void;
|
|
648
|
-
/** opens popover */
|
|
1021
|
+
ngOnInit(): void;
|
|
1022
|
+
/** clears the pipe and triggers changes */
|
|
1023
|
+
onClear(): void;
|
|
1024
|
+
/** focuses the input */
|
|
649
1025
|
open(): void;
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
hideCalendars(): void;
|
|
655
|
-
private initFormGroup;
|
|
656
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeDatetimeComponent<any>, never>;
|
|
657
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KbqPipeDatetimeComponent<any>, "kbq-pipe-datetime", never, {}, {}, never, never, true, never>;
|
|
1026
|
+
/** Commits a value to `data` and notifies the filter-bar. */
|
|
1027
|
+
private commit;
|
|
1028
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeInputComponent, never>;
|
|
1029
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeInputComponent, "kbq-pipe-input", never, {}, {}, never, never, true, never>;
|
|
658
1030
|
}
|
|
659
1031
|
|
|
660
1032
|
declare class KbqPipeMultiSelectComponent extends KbqBasePipe<KbqSelectValue[]> implements AfterViewInit, OnInit {
|
|
661
1033
|
/** control for search options */
|
|
662
|
-
searchControl:
|
|
1034
|
+
readonly searchControl: FormControl<string | null>;
|
|
663
1035
|
/** filtered by search options */
|
|
664
|
-
filteredOptions: Observable<
|
|
1036
|
+
filteredOptions: Observable<KbqSelectValue[]>;
|
|
665
1037
|
/** @docs-private */
|
|
666
|
-
readonly select:
|
|
1038
|
+
readonly select: _angular_core.Signal<KbqSelect>;
|
|
667
1039
|
/** @docs-private */
|
|
668
|
-
readonly options:
|
|
1040
|
+
readonly options: _angular_core.Signal<readonly KbqOption[]>;
|
|
669
1041
|
/** selected value */
|
|
670
1042
|
get selected(): KbqSelectValue[] | null;
|
|
671
1043
|
/** Whether the current pipe is empty. */
|
|
@@ -679,7 +1051,7 @@ declare class KbqPipeMultiSelectComponent extends KbqBasePipe<KbqSelectValue[]>
|
|
|
679
1051
|
get selectedAllEqualsSelectedNothing(): boolean;
|
|
680
1052
|
private get visibleOptions();
|
|
681
1053
|
private selectionAllInProgress;
|
|
682
|
-
private
|
|
1054
|
+
private readonly multiSelect;
|
|
683
1055
|
/** @docs-private */
|
|
684
1056
|
ngOnInit(): void;
|
|
685
1057
|
ngAfterViewInit(): void;
|
|
@@ -691,34 +1063,108 @@ declare class KbqPipeMultiSelectComponent extends KbqBasePipe<KbqSelectValue[]>
|
|
|
691
1063
|
toggleSelectionAllByEnterKey(): void;
|
|
692
1064
|
/** @docs-private */
|
|
693
1065
|
toggleSelectionAll(emitEvent?: boolean): void;
|
|
694
|
-
/** Comparator of selected options */
|
|
695
|
-
compareByValue: (o1:
|
|
1066
|
+
/** Comparator of selected options. Two null/absent values never match (aligned with the select pipe). */
|
|
1067
|
+
compareByValue: (o1: Pick<KbqSelectValue, "id"> | null, o2: Pick<KbqSelectValue, "id"> | null) => boolean;
|
|
696
1068
|
/** handler for select all options in select */
|
|
697
1069
|
selectAllHandler: (event: KeyboardEvent) => void;
|
|
698
1070
|
/** @docs-private */
|
|
699
1071
|
onClose(): void;
|
|
700
1072
|
/** opens select */
|
|
701
1073
|
open(): void;
|
|
702
|
-
private updateInternalSelected;
|
|
703
|
-
private emitChangePipeEvent;
|
|
704
1074
|
private getFilteredOptions;
|
|
705
|
-
static ɵfac:
|
|
706
|
-
static ɵcmp:
|
|
1075
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeMultiSelectComponent, never>;
|
|
1076
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeMultiSelectComponent, "kbq-pipe-multi-select", never, {}, {}, never, never, true, never>;
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
/**
|
|
1080
|
+
* Shared scaffolding for the tree-based select pipes (`kbq-pipe-tree-select`,
|
|
1081
|
+
* `kbq-pipe-multi-tree-select`): the flat-tree control / flattener / data source, the node accessors,
|
|
1082
|
+
* search-driven filtering and open handling. Subclasses provide the value-specific pieces (`selected`,
|
|
1083
|
+
* `isEmpty`, `onSelect`, `updateTemplates`).
|
|
1084
|
+
*
|
|
1085
|
+
* The `internalTemplatesChanges` subscription is intentionally left in each subclass constructor: it must
|
|
1086
|
+
* be set up after the subclass's `updateTemplates` field initializer runs, so the initial `BehaviorSubject`
|
|
1087
|
+
* replay dispatches to the subclass override (which writes `dataSource.data`) rather than the base one.
|
|
1088
|
+
*/
|
|
1089
|
+
declare abstract class KbqTreeSelectPipeBase<V> extends KbqBasePipe<V> implements OnInit, AfterViewInit {
|
|
1090
|
+
/** control for search options */
|
|
1091
|
+
readonly searchControl: FormControl<string | null>;
|
|
1092
|
+
treeControl: FlatTreeControl<KbqTreeSelectFlatNode>;
|
|
1093
|
+
treeFlattener: KbqTreeFlattener<KbqTreeSelectNode, KbqTreeSelectFlatNode>;
|
|
1094
|
+
dataSource: KbqTreeFlatDataSource<KbqTreeSelectNode, KbqTreeSelectFlatNode>;
|
|
1095
|
+
/** @docs-private */
|
|
1096
|
+
readonly select: _angular_core.Signal<KbqTreeSelect>;
|
|
1097
|
+
constructor();
|
|
1098
|
+
ngOnInit(): void;
|
|
1099
|
+
ngAfterViewInit(): void;
|
|
1100
|
+
/** tree-node predicate: whether the node has children */
|
|
1101
|
+
hasChild(_: number, nodeData: KbqTreeSelectFlatNode): boolean;
|
|
1102
|
+
/** opens the tree-select panel */
|
|
1103
|
+
open(): void;
|
|
1104
|
+
/** @docs-private */
|
|
1105
|
+
onOpen(): void;
|
|
1106
|
+
protected transformer: (node: KbqTreeSelectNode, level: number, parent: KbqTreeSelectFlatNode | null) => KbqTreeSelectFlatNode;
|
|
1107
|
+
protected getLevel: (node: KbqTreeSelectFlatNode) => number;
|
|
1108
|
+
protected isExpandable: (node: KbqTreeSelectFlatNode) => boolean;
|
|
1109
|
+
protected getChildren: (node: KbqTreeSelectNode) => KbqTreeSelectNode[] | null;
|
|
1110
|
+
protected getValue: (node: KbqTreeSelectFlatNode) => unknown;
|
|
1111
|
+
protected getViewValue: (node: KbqTreeSelectFlatNode) => string;
|
|
1112
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqTreeSelectPipeBase<any>, never>;
|
|
1113
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqTreeSelectPipeBase<any>, never, never, {}, {}, never, never, true, never>;
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
declare class KbqPipeMultiTreeSelectComponent extends KbqTreeSelectPipeBase<KbqSelectValue[]> implements OnInit {
|
|
1117
|
+
/** @docs-private */
|
|
1118
|
+
readonly tree: _angular_core.Signal<KbqTreeSelection>;
|
|
1119
|
+
/** selected value */
|
|
1120
|
+
get selected(): KbqSelectValue[] | null;
|
|
1121
|
+
/** Whether the current pipe is empty. */
|
|
1122
|
+
get isEmpty(): boolean;
|
|
1123
|
+
get selectAllCheckboxState(): KbqPseudoCheckboxState;
|
|
1124
|
+
get numberOfSelectedLeaves(): number;
|
|
1125
|
+
/** true if all options selected */
|
|
1126
|
+
get allOptionsSelected(): boolean;
|
|
1127
|
+
get selectedAllEqualsSelectedNothing(): boolean;
|
|
1128
|
+
/** true if all visible options selected */
|
|
1129
|
+
get allVisibleOptionsSelected(): boolean;
|
|
1130
|
+
private readonly multiSelect;
|
|
1131
|
+
constructor();
|
|
1132
|
+
ngOnInit(): void;
|
|
1133
|
+
isNodeSelectAll(_: number, nodeData: KbqTreeSelectFlatNode): boolean;
|
|
1134
|
+
onSelect({ value: option }: {
|
|
1135
|
+
value: any;
|
|
1136
|
+
}): void;
|
|
1137
|
+
searchKeydownHandler(): void;
|
|
1138
|
+
toggleSelectAllNode(emitEvent?: boolean): void;
|
|
1139
|
+
/**
|
|
1140
|
+
* Populates the tree data source from the pipe template. The shared `values`/`valueTemplate`
|
|
1141
|
+
* assignment is already performed by the base subscription, so this override only does the
|
|
1142
|
+
* tree-specific work and avoids a redundant double assignment.
|
|
1143
|
+
*/
|
|
1144
|
+
updateTemplates: (templates: KbqPipeTemplate[] | null) => void;
|
|
1145
|
+
onClear(): void;
|
|
1146
|
+
/** @docs-private */
|
|
1147
|
+
onClose(): void;
|
|
1148
|
+
/** handler for select all options in select */
|
|
1149
|
+
selectAllHandler: (event: KeyboardEvent) => void;
|
|
1150
|
+
private toggleParents;
|
|
1151
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeMultiTreeSelectComponent, never>;
|
|
1152
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeMultiTreeSelectComponent, "kbq-pipe-multi-tree-select", never, {}, {}, never, never, true, never>;
|
|
707
1153
|
}
|
|
708
1154
|
|
|
709
1155
|
declare class KbqPipeReadonlyComponent extends KbqBasePipe<string | null> {
|
|
710
1156
|
open(): void;
|
|
711
|
-
static ɵfac:
|
|
712
|
-
static ɵcmp:
|
|
1157
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeReadonlyComponent, never>;
|
|
1158
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeReadonlyComponent, "kbq-pipe-readonly", never, {}, {}, never, never, true, never>;
|
|
713
1159
|
}
|
|
714
1160
|
|
|
715
1161
|
declare class KbqPipeSelectComponent extends KbqBasePipe<KbqSelectValue> implements AfterViewInit, OnInit {
|
|
716
1162
|
/** control for search options */
|
|
717
|
-
searchControl:
|
|
1163
|
+
readonly searchControl: FormControl<string | null>;
|
|
718
1164
|
/** filtered by search options */
|
|
719
|
-
filteredOptions: Observable<
|
|
1165
|
+
filteredOptions: Observable<KbqSelectValue[]>;
|
|
720
1166
|
/** @docs-private */
|
|
721
|
-
readonly select:
|
|
1167
|
+
readonly select: _angular_core.Signal<KbqSelect>;
|
|
722
1168
|
/** selected value */
|
|
723
1169
|
get selected(): KbqSelectValue | null;
|
|
724
1170
|
/** Whether the current pipe is empty. */
|
|
@@ -728,18 +1174,18 @@ declare class KbqPipeSelectComponent extends KbqBasePipe<KbqSelectValue> impleme
|
|
|
728
1174
|
ngAfterViewInit(): void;
|
|
729
1175
|
onSelect(item: KbqSelectValue): void;
|
|
730
1176
|
/** Comparator of selected options */
|
|
731
|
-
compareByValue: (o1:
|
|
1177
|
+
compareByValue: (o1: Pick<KbqSelectValue, "id"> | null, o2: Pick<KbqSelectValue, "id"> | null) => boolean;
|
|
732
1178
|
/** opens select */
|
|
733
1179
|
open(): void;
|
|
734
1180
|
private getFilteredOptions;
|
|
735
|
-
static ɵfac:
|
|
736
|
-
static ɵcmp:
|
|
1181
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeSelectComponent, never>;
|
|
1182
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeSelectComponent, "kbq-pipe-select", never, {}, {}, never, never, true, never>;
|
|
737
1183
|
}
|
|
738
1184
|
|
|
739
1185
|
declare class KbqPipeTextComponent extends KbqBasePipe<string | null> implements AfterViewInit, OnInit {
|
|
740
1186
|
readonly placements: typeof PopUpPlacements;
|
|
741
1187
|
/** @docs-private */
|
|
742
|
-
readonly popover:
|
|
1188
|
+
readonly popover: _angular_core.Signal<KbqPopoverTrigger>;
|
|
743
1189
|
/** Whether the current pipe is disabled. */
|
|
744
1190
|
get disabled(): boolean;
|
|
745
1191
|
/** textarea control */
|
|
@@ -753,44 +1199,26 @@ declare class KbqPipeTextComponent extends KbqBasePipe<string | null> implements
|
|
|
753
1199
|
onClear(): void;
|
|
754
1200
|
/** opens popover */
|
|
755
1201
|
open(): void;
|
|
756
|
-
static ɵfac:
|
|
757
|
-
static ɵcmp:
|
|
1202
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeTextComponent, never>;
|
|
1203
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeTextComponent, "kbq-pipe-text", never, {}, {}, never, never, true, never>;
|
|
758
1204
|
}
|
|
759
1205
|
|
|
760
|
-
declare class KbqPipeTreeSelectComponent extends
|
|
761
|
-
/** control for search options */
|
|
762
|
-
searchControl: UntypedFormControl;
|
|
763
|
-
/** filtered by search options */
|
|
764
|
-
filteredOptions: Observable<any[]>;
|
|
765
|
-
treeControl: FlatTreeControl<KbqTreeSelectFlatNode>;
|
|
766
|
-
treeFlattener: KbqTreeFlattener<KbqTreeSelectNode, KbqTreeSelectFlatNode>;
|
|
767
|
-
dataSource: KbqTreeFlatDataSource<KbqTreeSelectNode, KbqTreeSelectFlatNode>;
|
|
768
|
-
template: any;
|
|
769
|
-
/** @docs-private */
|
|
770
|
-
readonly select: i0.Signal<KbqTreeSelect>;
|
|
1206
|
+
declare class KbqPipeTreeSelectComponent extends KbqTreeSelectPipeBase<KbqSelectValue> {
|
|
771
1207
|
/** selected value */
|
|
772
1208
|
get selected(): KbqSelectValue | null;
|
|
773
1209
|
/** Whether the current pipe is empty. */
|
|
774
1210
|
get isEmpty(): boolean;
|
|
775
1211
|
constructor();
|
|
776
|
-
ngOnInit(): void;
|
|
777
|
-
ngAfterViewInit(): void;
|
|
778
|
-
hasChild(_: number, nodeData: any): any;
|
|
779
1212
|
onSelect(item: KbqTreeOption): void;
|
|
780
|
-
/**
|
|
1213
|
+
/**
|
|
1214
|
+
* Populates the tree data source from the pipe template. The shared `values`/`valueTemplate`
|
|
1215
|
+
* assignment is already performed by the base subscription, so this override only does the
|
|
1216
|
+
* tree-specific work and avoids a redundant double assignment.
|
|
1217
|
+
*/
|
|
781
1218
|
updateTemplates: (templates: KbqPipeTemplate[] | null) => void;
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
onOpen(): void;
|
|
785
|
-
private transformer;
|
|
786
|
-
private getLevel;
|
|
787
|
-
private isExpandable;
|
|
788
|
-
private getChildren;
|
|
789
|
-
private getValue;
|
|
790
|
-
private getViewValue;
|
|
791
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeTreeSelectComponent, never>;
|
|
792
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KbqPipeTreeSelectComponent, "kbq-pipe-tree-select", never, {}, {}, never, never, true, never>;
|
|
1219
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqPipeTreeSelectComponent, never>;
|
|
1220
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqPipeTreeSelectComponent, "kbq-pipe-tree-select", never, {}, {}, never, never, true, never>;
|
|
793
1221
|
}
|
|
794
1222
|
|
|
795
|
-
export { KBQ_FILTER_BAR_CONFIGURATION, KBQ_FILTER_BAR_DEFAULT_CONFIGURATION, KBQ_FILTER_BAR_PIPES, KBQ_PIPE_DATA, KbqBasePipe, KbqFilterBar, KbqFilterBarButton, KbqFilterBarModule, KbqFilterBarRefresher, KbqFilterReset, KbqFilters, KbqPipeAdd, KbqPipeButton, KbqPipeDateComponent, KbqPipeDatetimeComponent, KbqPipeDirective, KbqPipeMinWidth, KbqPipeMultiSelectComponent, KbqPipeReadonlyComponent, KbqPipeSelectComponent, KbqPipeState, KbqPipeTextComponent,
|
|
796
|
-
export type { KbqDateTimeValue, KbqFilter, KbqPipe, KbqPipeData, KbqPipeTemplate, KbqPipeType, KbqSaveFilterError, KbqSaveFilterEvent, KbqSelectValue, KbqTreeSelectNode };
|
|
1223
|
+
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 };
|
|
1224
|
+
export type { KbqDateTimeValue, KbqFilter, KbqFilterBarConfiguration, KbqFilterBarHost, KbqPipe, KbqPipeData, KbqPipeTemplate, KbqPipeType, KbqSaveFilterError, KbqSaveFilterEvent, KbqSelectValue, KbqTreeSelectNode };
|