@koobiq/components 18.22.0 → 18.24.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/alert/_alert-theme.scss +4 -0
- package/alert/alert-tokens.scss +1 -1
- package/alert/alert.component.d.ts +8 -2
- package/badge/badge-tokens.scss +2 -2
- package/checkbox/checkbox.d.ts +6 -6
- package/code-block/code-block-highlight.d.ts +1 -1
- package/code-block/code-block.d.ts +2 -2
- package/core/animation/animation.d.ts +5 -2
- package/core/common-behaviors/checkbox.d.ts +5 -0
- package/core/common-behaviors/index.d.ts +1 -0
- package/core/formatters/date/formatter.d.ts +4 -3
- package/core/pop-up/pop-up-trigger.d.ts +9 -1
- package/core/utils/utils.d.ts +2 -0
- package/esm2022/actions-panel/actions-panel-container.mjs +1 -1
- package/esm2022/actions-panel/actions-panel.mjs +1 -1
- package/esm2022/alert/alert.component.mjs +11 -5
- package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +1 -1
- package/esm2022/badge/badge.component.mjs +2 -2
- package/esm2022/breadcrumbs/breadcrumbs.mjs +1 -1
- package/esm2022/button/button.component.mjs +3 -2
- package/esm2022/button-toggle/button-toggle.component.mjs +1 -1
- package/esm2022/checkbox/checkbox.mjs +5 -5
- package/esm2022/code-block/code-block-highlight.mjs +7 -6
- package/esm2022/code-block/code-block.mjs +7 -7
- package/esm2022/core/animation/animation.mjs +4 -1
- package/esm2022/core/common-behaviors/checkbox.mjs +2 -0
- package/esm2022/core/common-behaviors/color.mjs +1 -1
- package/esm2022/core/common-behaviors/index.mjs +2 -1
- package/esm2022/core/formatters/date/formatter.mjs +5 -10
- package/esm2022/core/formatters/number/formatter.mjs +1 -1
- package/esm2022/core/forms/validators.mjs +1 -1
- package/esm2022/core/line/line.mjs +1 -1
- package/esm2022/core/overlay/overlay-position-map.mjs +1 -1
- package/esm2022/core/pop-up/pop-up-trigger.mjs +26 -11
- package/esm2022/core/pop-up/pop-up.mjs +1 -4
- package/esm2022/core/select/common.mjs +1 -1
- package/esm2022/core/services/measure-scrollbar.service.mjs +1 -1
- package/esm2022/core/utils/utils.mjs +5 -1
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/datepicker/calendar-header.component.mjs +1 -1
- package/esm2022/datepicker/datepicker-input.directive.mjs +1 -1
- package/esm2022/datepicker/datepicker.component.mjs +1 -1
- package/esm2022/datepicker/month-view.component.mjs +1 -1
- package/esm2022/dropdown/dropdown-item.component.mjs +1 -1
- package/esm2022/dropdown/dropdown-trigger.directive.mjs +1 -1
- package/esm2022/dropdown/dropdown.component.mjs +1 -1
- package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +1 -1
- package/esm2022/file-upload/file-drop.mjs +1 -1
- package/esm2022/file-upload/file-upload.mjs +1 -1
- package/esm2022/file-upload/single-file-upload.component.mjs +1 -1
- package/esm2022/filter-bar/filter-bar-button.mjs +2 -1
- package/esm2022/filter-bar/filter-bar.mjs +14 -1
- package/esm2022/filter-bar/filter-bar.module.mjs +5 -3
- package/esm2022/filter-bar/filter-bar.types.mjs +27 -2
- package/esm2022/filter-bar/filter-reset.mjs +15 -5
- package/esm2022/filter-bar/filter-search.mjs +18 -5
- package/esm2022/filter-bar/filters.mjs +22 -6
- package/esm2022/filter-bar/pipe-add.mjs +14 -4
- package/esm2022/filter-bar/pipe.directive.mjs +7 -25
- package/esm2022/filter-bar/pipes/base-pipe.mjs +31 -6
- package/esm2022/filter-bar/pipes/pipe-button.mjs +12 -6
- package/esm2022/filter-bar/pipes/pipe-date.mjs +26 -8
- package/esm2022/filter-bar/pipes/pipe-datetime.mjs +27 -8
- package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +8 -3
- package/esm2022/filter-bar/pipes/pipe-select.mjs +8 -3
- package/esm2022/filter-bar/pipes/pipe-state.mjs +2 -1
- package/esm2022/filter-bar/pipes/pipe-text.mjs +12 -3
- package/esm2022/filter-bar/pipes/pipe-title.mjs +2 -1
- package/esm2022/form-field/form-field.mjs +1 -1
- package/esm2022/form-field/validate.directive.mjs +1 -1
- package/esm2022/input/input-number.mjs +1 -1
- package/esm2022/list/list-selection.component.mjs +1 -1
- package/esm2022/markdown/markdown.component.mjs +2 -2
- package/esm2022/modal/modal.component.mjs +1 -1
- package/esm2022/modal/modal.service.mjs +1 -1
- package/esm2022/navbar/navbar.component.mjs +9 -12
- package/esm2022/navbar/vertical-navbar.component.mjs +9 -13
- package/esm2022/overflow-items/overflow-items.mjs +1 -1
- package/esm2022/popover/popover-confirm.component.mjs +1 -1
- package/esm2022/radio/radio.component.mjs +3 -3
- package/esm2022/scrollbar/scrollbar.component.mjs +1 -1
- package/esm2022/scrollbar/scrollbar.directive.mjs +1 -1
- package/esm2022/select/select.component.mjs +1 -1
- package/esm2022/sidepanel/sidepanel.service.mjs +1 -1
- package/esm2022/splitter/splitter.component.mjs +1 -1
- package/esm2022/tabs/paginated-tab-header.mjs +1 -1
- package/esm2022/tabs/tab-body.component.mjs +1 -1
- package/esm2022/tabs/tab-group.component.mjs +1 -1
- package/esm2022/tags/tag-input.mjs +1 -1
- package/esm2022/tags/tag-list.component.mjs +1 -1
- package/esm2022/tags/tag.component.mjs +1 -1
- package/esm2022/textarea/textarea.component.mjs +1 -1
- package/esm2022/timepicker/timepicker.directive.mjs +1 -1
- package/esm2022/toggle/toggle.component.mjs +95 -16
- package/esm2022/tree/control/base-tree-control.mjs +1 -1
- package/esm2022/tree/control/flat-tree-control.filters.mjs +1 -1
- package/esm2022/tree/control/nested-tree-control.mjs +1 -1
- package/esm2022/tree/data-source/flat-data-source.mjs +1 -1
- package/esm2022/tree/padding.directive.mjs +1 -1
- package/esm2022/tree/tree-base.mjs +1 -1
- package/esm2022/tree/tree-selection.component.mjs +1 -1
- package/esm2022/tree-select/tree-select.component.mjs +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +10 -4
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +2 -2
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +2 -1
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +4 -4
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +12 -11
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +36 -23
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +1481 -1323
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +2 -2
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +15 -22
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +2 -2
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +94 -15
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/filter-bar/filter-bar-button.d.ts +1 -0
- package/filter-bar/filter-bar.d.ts +14 -0
- package/filter-bar/filter-bar.types.d.ts +13 -3
- package/filter-bar/filter-reset.d.ts +6 -2
- package/filter-bar/filter-search.d.ts +17 -10
- package/filter-bar/filters.d.ts +26 -11
- package/filter-bar/pipe-add.d.ts +10 -0
- package/filter-bar/pipe.directive.d.ts +5 -5
- package/filter-bar/pipes/base-pipe.d.ts +31 -3
- package/filter-bar/pipes/pipe-button.d.ts +6 -1
- package/filter-bar/pipes/pipe-date.d.ts +30 -10
- package/filter-bar/pipes/pipe-date.scss +29 -27
- package/filter-bar/pipes/pipe-datetime.d.ts +31 -10
- package/filter-bar/pipes/pipe-multi-select.d.ts +7 -0
- package/filter-bar/pipes/pipe-select.d.ts +7 -0
- package/filter-bar/pipes/pipe-state.d.ts +1 -0
- package/filter-bar/pipes/pipe-text.d.ts +7 -0
- package/link/_link-theme.scss +14 -0
- package/markdown/markdown.scss +1 -5
- package/navbar/navbar.component.d.ts +2 -2
- package/navbar/vertical-navbar.component.d.ts +3 -3
- package/package.json +5 -5
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/radio/radio.scss +0 -1
- package/schematics/ng-add/index.js +3 -3
- package/toggle/_toggle-theme.scss +12 -3
- package/toggle/toggle-tokens.scss +2 -2
- package/toggle/toggle.component.d.ts +22 -4
- package/toggle/toggle.scss +37 -0
|
@@ -5,11 +5,15 @@ import { KbqFilterReset } from './filter-reset';
|
|
|
5
5
|
import { KbqFilters } from './filters';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class KbqFilterBar {
|
|
8
|
+
/** @docs-private */
|
|
8
9
|
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
10
|
+
/** @docs-private */
|
|
9
11
|
protected readonly localeService: import("@koobiq/components/core").KbqLocaleService | null;
|
|
10
12
|
readonly externalConfiguration: unknown;
|
|
11
13
|
configuration: any;
|
|
14
|
+
/** @docs-private */
|
|
12
15
|
filters: KbqFilters;
|
|
16
|
+
/** @docs-private */
|
|
13
17
|
filterReset: KbqFilterReset;
|
|
14
18
|
/** Filter that is currently selected */
|
|
15
19
|
get filter(): KbqFilter | null;
|
|
@@ -29,15 +33,25 @@ export declare class KbqFilterBar {
|
|
|
29
33
|
readonly onChangePipe: EventEmitter<KbqPipe>;
|
|
30
34
|
/** Event that emits whenever the pipe deleted. */
|
|
31
35
|
readonly onRemovePipe: EventEmitter<KbqPipe>;
|
|
36
|
+
/** Whether the current filter is saved and changed */
|
|
32
37
|
get isSavedAndChanged(): boolean;
|
|
38
|
+
/** Whether the current filter is saved */
|
|
33
39
|
get isSaved(): boolean;
|
|
40
|
+
/** Whether the current filter is changed */
|
|
34
41
|
get isChanged(): boolean;
|
|
42
|
+
/** Whether the current filter is readonly */
|
|
35
43
|
get isReadOnly(): boolean;
|
|
44
|
+
/** Whether the current filter is disabled */
|
|
36
45
|
get isDisabled(): boolean;
|
|
37
46
|
private savedFilter;
|
|
47
|
+
/** all changes */
|
|
38
48
|
readonly changes: BehaviorSubject<void>;
|
|
49
|
+
/** internal filter changes */
|
|
39
50
|
readonly internalFilterChanges: BehaviorSubject<KbqFilter | null>;
|
|
51
|
+
/** internal changes in templates */
|
|
40
52
|
readonly internalTemplatesChanges: BehaviorSubject<KbqPipeTemplate[] | null>;
|
|
53
|
+
/** this subject need for opens pipe after adding
|
|
54
|
+
* @docs-private */
|
|
41
55
|
readonly openPipe: BehaviorSubject<string | number | null>;
|
|
42
56
|
constructor();
|
|
43
57
|
/** Remove pipe from current filter and emit event */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { InjectionToken, TemplateRef } from '@angular/core';
|
|
1
|
+
import { InjectionToken, Provider, TemplateRef } from '@angular/core';
|
|
2
2
|
import { KbqFilterBar } from './filter-bar';
|
|
3
|
-
|
|
3
|
+
/**default configuration of filter-bar */
|
|
4
4
|
export declare const KBQ_FILTER_BAR_DEFAULT_CONFIGURATION: {
|
|
5
5
|
reset: {
|
|
6
6
|
buttonName: string;
|
|
@@ -43,6 +43,13 @@ export declare const KBQ_FILTER_BAR_DEFAULT_CONFIGURATION: {
|
|
|
43
43
|
backToPeriodSelection: string;
|
|
44
44
|
};
|
|
45
45
|
};
|
|
46
|
+
/** Injection Token for providing configuration of filter-bar */
|
|
47
|
+
export declare const KBQ_FILTER_BAR_CONFIGURATION: InjectionToken<unknown>;
|
|
48
|
+
/** Injection Token for providing pipes in filter-bar */
|
|
49
|
+
export declare const KBQ_FILTER_BAR_PIPES: InjectionToken<any>;
|
|
50
|
+
/** Utility provider for `KBQ_FILTER_BAR_PIPES`. */
|
|
51
|
+
export declare const kbqFilterBarPipesProvider: () => Provider;
|
|
52
|
+
/** list of pipe types available out of the box */
|
|
46
53
|
export declare enum KbqPipeTypes {
|
|
47
54
|
Text = "text",
|
|
48
55
|
Select = "select",
|
|
@@ -50,6 +57,9 @@ export declare enum KbqPipeTypes {
|
|
|
50
57
|
Date = "date",
|
|
51
58
|
Datetime = "datetime"
|
|
52
59
|
}
|
|
60
|
+
export type KbqPipeType = `${KbqPipeTypes}` | string;
|
|
61
|
+
/** list of pipes available out of the box. */
|
|
62
|
+
export declare const defaultFilterBarPipes: [string, unknown][];
|
|
53
63
|
export interface KbqDateTimeValue {
|
|
54
64
|
name?: string;
|
|
55
65
|
start?: string;
|
|
@@ -70,7 +80,7 @@ export interface KbqFilter {
|
|
|
70
80
|
export interface KbqPipe {
|
|
71
81
|
name: string;
|
|
72
82
|
id?: string | number;
|
|
73
|
-
type:
|
|
83
|
+
type: KbqPipeType;
|
|
74
84
|
value: unknown | null;
|
|
75
85
|
search?: boolean;
|
|
76
86
|
required: boolean;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { KbqFilterBar } from './filter-bar';
|
|
3
2
|
import { KbqFilter } from './filter-bar.types';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
export declare class KbqFilterReset {
|
|
6
|
-
|
|
5
|
+
/** KbqFilterBar instance */
|
|
6
|
+
private readonly filterBar;
|
|
7
7
|
/** Event that is generated whenever the user reset a filter. */
|
|
8
8
|
readonly onResetFilter: EventEmitter<KbqFilter | null>;
|
|
9
|
+
/** localized data
|
|
10
|
+
* @docs-private */
|
|
11
|
+
get localeData(): any;
|
|
12
|
+
protected resetFilter(): void;
|
|
9
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqFilterReset, never>;
|
|
10
14
|
static ɵcmp: i0.ɵɵComponentDeclaration<KbqFilterReset, "kbq-filter-reset", never, {}, { "onResetFilter": "onResetFilter"; }, never, ["*"], true, never>;
|
|
11
15
|
}
|
|
@@ -1,24 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { UntypedFormControl } from '@angular/forms';
|
|
3
|
-
import { KbqButton } from '@koobiq/components/button';
|
|
4
|
-
import { KbqInput } from '@koobiq/components/input';
|
|
5
|
-
import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
|
|
6
|
-
import { KbqFilterBar } from './filter-bar';
|
|
7
3
|
import * as i0 from "@angular/core";
|
|
8
4
|
export declare class KbqFilterBarSearch {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
/** KbqFilterBar instance */
|
|
6
|
+
private readonly filterBar;
|
|
7
|
+
private readonly changeDetectorRef;
|
|
8
|
+
private input;
|
|
9
|
+
private button;
|
|
10
|
+
private tooltip;
|
|
11
|
+
/** control for search */
|
|
14
12
|
searchControl: UntypedFormControl;
|
|
13
|
+
/** Whether the search active */
|
|
15
14
|
isSearchActive: boolean;
|
|
15
|
+
/** localized data
|
|
16
|
+
* @docs-private */
|
|
17
|
+
get localeData(): any;
|
|
18
|
+
/** event that is generated whenever a user performs a search. */
|
|
16
19
|
readonly onSearch: EventEmitter<string>;
|
|
17
20
|
constructor();
|
|
18
21
|
openSearch(): void;
|
|
22
|
+
/** @docs-private */
|
|
19
23
|
onBlur(): void;
|
|
24
|
+
/** @docs-private */
|
|
20
25
|
onEscape(): void;
|
|
26
|
+
/** @docs-private */
|
|
21
27
|
onClear(): void;
|
|
28
|
+
/** @docs-private */
|
|
22
29
|
onReset: () => void;
|
|
23
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqFilterBarSearch, never>;
|
|
24
31
|
static ɵcmp: i0.ɵɵComponentDeclaration<KbqFilterBarSearch, "kbq-filter-search, [kbq-filter-search]", never, {}, { "onSearch": "onSearch"; }, never, never, true, never>;
|
package/filter-bar/filters.d.ts
CHANGED
|
@@ -1,28 +1,36 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
2
|
import { FormControl, UntypedFormControl } from '@angular/forms';
|
|
3
|
-
import {
|
|
3
|
+
import { KbqButtonStyles } from '@koobiq/components/button';
|
|
4
4
|
import { KbqComponentColors, PopUpPlacements, PopUpSizes } from '@koobiq/components/core';
|
|
5
|
-
import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
|
|
6
|
-
import { KbqPopoverTrigger } from '@koobiq/components/popover';
|
|
7
5
|
import { Observable } from 'rxjs';
|
|
8
6
|
import { KbqFilterBar } from './filter-bar';
|
|
9
7
|
import { KbqFilter, KbqSaveFilterError, KbqSaveFilterEvent } from './filter-bar.types';
|
|
10
8
|
import * as i0 from "@angular/core";
|
|
11
9
|
export declare class KbqFilters implements OnInit {
|
|
10
|
+
/** @docs-private */
|
|
12
11
|
protected readonly placements: typeof PopUpPlacements;
|
|
13
|
-
|
|
14
|
-
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
15
|
-
button: KbqButton;
|
|
16
|
-
popover: KbqPopoverTrigger;
|
|
17
|
-
dropdown: KbqDropdownTrigger;
|
|
18
|
-
search: ElementRef;
|
|
19
|
-
newFilterName: ElementRef;
|
|
12
|
+
/** @docs-private */
|
|
20
13
|
protected readonly styles: typeof KbqButtonStyles;
|
|
14
|
+
/** @docs-private */
|
|
21
15
|
protected readonly colors: typeof KbqComponentColors;
|
|
16
|
+
/** KbqFilterBar instance */
|
|
17
|
+
protected readonly filterBar: KbqFilterBar;
|
|
18
|
+
/** @docs-private */
|
|
19
|
+
private readonly changeDetectorRef;
|
|
20
|
+
private button;
|
|
21
|
+
private popover;
|
|
22
|
+
private dropdown;
|
|
23
|
+
private search;
|
|
24
|
+
private newFilterName;
|
|
25
|
+
/** control for search filter */
|
|
22
26
|
searchControl: UntypedFormControl;
|
|
27
|
+
/** filtered by search filters */
|
|
23
28
|
filteredOptions: Observable<KbqFilter[]>;
|
|
29
|
+
/** @docs-private */
|
|
24
30
|
popoverSize: PopUpSizes;
|
|
31
|
+
/** new filter name for saving */
|
|
25
32
|
filterName: FormControl<string | null>;
|
|
33
|
+
/** true if saving a new filter, false if saving changes in filter */
|
|
26
34
|
saveNewFilter: boolean;
|
|
27
35
|
showFilterSavingError: boolean;
|
|
28
36
|
filterSavingErrorText: string;
|
|
@@ -39,6 +47,7 @@ export declare class KbqFilters implements OnInit {
|
|
|
39
47
|
readonly onRemoveFilter: EventEmitter<KbqFilter>;
|
|
40
48
|
/** Event that is generated whenever the user reset a filter changes. */
|
|
41
49
|
readonly onResetFilterChanges: EventEmitter<KbqFilter | null>;
|
|
50
|
+
/** header of popover. Depends on the mode */
|
|
42
51
|
get popoverHeader(): string;
|
|
43
52
|
/** Component state. true if opened dropdown or popup */
|
|
44
53
|
get opened(): boolean;
|
|
@@ -46,6 +55,9 @@ export declare class KbqFilters implements OnInit {
|
|
|
46
55
|
get filter(): KbqFilter | null;
|
|
47
56
|
/** Component state. True if 'filters' input contains no elements. */
|
|
48
57
|
get isEmpty(): boolean;
|
|
58
|
+
/** localized data
|
|
59
|
+
* @docs-private */
|
|
60
|
+
get localeData(): any;
|
|
49
61
|
constructor();
|
|
50
62
|
ngOnInit(): void;
|
|
51
63
|
selectFilter(filter: KbqFilter): void;
|
|
@@ -57,8 +69,11 @@ export declare class KbqFilters implements OnInit {
|
|
|
57
69
|
openSaveAsNewFilterPopover(): void;
|
|
58
70
|
openChangeFilterNamePopover(): void;
|
|
59
71
|
closePopover: () => void;
|
|
72
|
+
/** @docs-private */
|
|
60
73
|
stopEventPropagation(event: Event): void;
|
|
74
|
+
/** @docs-private */
|
|
61
75
|
searchKeydownHandler(event: KeyboardEvent): void;
|
|
76
|
+
/** @docs-private */
|
|
62
77
|
onDropdownOpen(): void;
|
|
63
78
|
resetFilterChanges(): void;
|
|
64
79
|
/** Hide the popup and restore focus.
|
package/filter-bar/pipe-add.d.ts
CHANGED
|
@@ -5,13 +5,23 @@ import { KbqFilterBar } from './filter-bar';
|
|
|
5
5
|
import { KbqFilter, KbqPipe, KbqPipeTemplate } from './filter-bar.types';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class KbqPipeAdd {
|
|
8
|
+
/** KbqFilterBar instance */
|
|
8
9
|
protected readonly filterBar: KbqFilterBar;
|
|
10
|
+
/** @docs-private */
|
|
9
11
|
select: KbqSelect;
|
|
12
|
+
/** Event that is generated after add pipe. */
|
|
10
13
|
readonly onAddPipe: EventEmitter<KbqPipeTemplate>;
|
|
14
|
+
/** template of filter */
|
|
11
15
|
filterTemplate: KbqFilter;
|
|
16
|
+
/** already added pipes. Used to open an already added pipe. */
|
|
12
17
|
addedPipes: (string | number)[];
|
|
13
18
|
constructor();
|
|
14
19
|
addPipeFromTemplate(option: KbqOption): void;
|
|
20
|
+
/**
|
|
21
|
+
* Function to compare the option values with the selected values. The first argument
|
|
22
|
+
* is a value from an option. The second is a value from the selection. A boolean
|
|
23
|
+
* should be returned.
|
|
24
|
+
*/
|
|
15
25
|
compareWith(o1: KbqPipe, o2: string): boolean;
|
|
16
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeAdd, never>;
|
|
17
27
|
static ɵcmp: i0.ɵɵComponentDeclaration<KbqPipeAdd, "kbq-pipe-add", never, { "filterTemplate": { "alias": "filterTemplate"; "required": false; }; }, { "onAddPipe": "onAddPipe"; }, never, never, true, never>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { AfterContentInit
|
|
2
|
-
import { KbqPipe
|
|
1
|
+
import { AfterContentInit } from '@angular/core';
|
|
2
|
+
import { KbqPipe } from './filter-bar.types';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class KbqPipeDirective<T extends KbqPipe> implements AfterContentInit {
|
|
5
5
|
private injector;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
private pipes;
|
|
7
|
+
private viewContainerRef;
|
|
8
8
|
pipe: T;
|
|
9
9
|
ngAfterContentInit(): void;
|
|
10
|
-
getInjector
|
|
10
|
+
private getInjector;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeDirective<any>, never>;
|
|
12
12
|
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqPipeDirective<any>, "[kbqPipe]", never, { "pipe": { "alias": "kbqPipe"; "required": false; }; }, {}, never, never, true, never>;
|
|
13
13
|
}
|
|
@@ -1,37 +1,65 @@
|
|
|
1
1
|
import { AfterViewInit, ChangeDetectorRef, ElementRef, InjectionToken, TemplateRef } from '@angular/core';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import { KbqFilterBar } from '../filter-bar';
|
|
4
|
-
import { KbqPipeData, KbqPipeTemplate } from '../filter-bar.types';
|
|
4
|
+
import { KbqPipeData, KbqPipeTemplate, KbqPipeType } from '../filter-bar.types';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
/** Injection Token for providing configuration of filter-bar */
|
|
6
7
|
export declare const KBQ_PIPE_DATA: InjectionToken<unknown>;
|
|
8
|
+
/** function to get unique identifier of an element */
|
|
9
|
+
export declare function getId(item: KbqPipeTemplate): KbqPipeType | string | number;
|
|
7
10
|
export declare abstract class KbqBasePipe<V> implements AfterViewInit {
|
|
11
|
+
/** changes of state */
|
|
8
12
|
readonly stateChanges: Subject<void>;
|
|
13
|
+
/** pipe data. Provided from subclass */
|
|
9
14
|
readonly data: KbqPipeData<V>;
|
|
15
|
+
/** KbqFilterBar instance
|
|
16
|
+
* @docs-private */
|
|
10
17
|
protected readonly filterBar: KbqFilterBar | null;
|
|
18
|
+
/** @docs-private */
|
|
11
19
|
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
20
|
+
/** values to select from the pipe template */
|
|
12
21
|
protected values: any;
|
|
22
|
+
/** TemplateRef for selecting an option */
|
|
13
23
|
protected valueTemplate?: TemplateRef<any> | string;
|
|
24
|
+
/** Whether the current platform is a Mac. */
|
|
14
25
|
isMac: boolean;
|
|
26
|
+
/** Data for the pipe.
|
|
27
|
+
* @docs-private */
|
|
15
28
|
$implicit: unknown;
|
|
29
|
+
/** Whether the current pipe is empty. Used for apply style modifier */
|
|
16
30
|
get isEmpty(): boolean;
|
|
31
|
+
/** Whether the current pipe is removable or cleanable. Used for apply style modifier */
|
|
17
32
|
get showRemoveButton(): boolean;
|
|
33
|
+
/** localized data
|
|
34
|
+
* @docs-private */
|
|
18
35
|
get localeData(): any;
|
|
19
36
|
constructor();
|
|
20
37
|
ngAfterViewInit(): void;
|
|
21
|
-
|
|
38
|
+
/** templateRef checker utility */
|
|
39
|
+
isTemplateRef(value: unknown): boolean;
|
|
40
|
+
/** updates values for selection and value template */
|
|
22
41
|
updateTemplates: (templates: KbqPipeTemplate[] | null) => void;
|
|
42
|
+
/** removes pipe from filter-bar and triggers changes */
|
|
23
43
|
onRemove(): void;
|
|
44
|
+
/** clears the pipe and triggers changes */
|
|
24
45
|
onClear(): void;
|
|
46
|
+
/** @docs-private */
|
|
25
47
|
abstract open(): void;
|
|
26
48
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqBasePipe<any>, never>;
|
|
27
49
|
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqBasePipe<any>, never, never, {}, {}, never, never, true, never>;
|
|
28
50
|
}
|
|
29
51
|
export declare class KbqPipeMinWidth {
|
|
52
|
+
/** KbqFilterBar instance */
|
|
30
53
|
protected readonly filterBar: KbqFilterBar | null;
|
|
54
|
+
/** @docs-private */
|
|
31
55
|
protected readonly elementRef: ElementRef<any>;
|
|
56
|
+
/** @docs-private */
|
|
32
57
|
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
33
|
-
|
|
58
|
+
/** @docs-private */
|
|
59
|
+
protected minWidth: string;
|
|
60
|
+
/** maximal symbols for apply fit-content to min-width */
|
|
34
61
|
maxSymbolsForFitContent: number;
|
|
62
|
+
/** current length of text */
|
|
35
63
|
get textLength(): number;
|
|
36
64
|
constructor();
|
|
37
65
|
update: () => void;
|
|
@@ -3,9 +3,14 @@ import { KbqFilterBar } from '../filter-bar';
|
|
|
3
3
|
import { KbqBasePipe } from './base-pipe';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class KbqPipeButton {
|
|
6
|
+
/** KbqPipe instance */
|
|
6
7
|
protected readonly pipe: KbqBasePipe<any>;
|
|
7
|
-
|
|
8
|
+
/** KbqFilterBar instance */
|
|
9
|
+
protected readonly filterBar: KbqFilterBar;
|
|
10
|
+
/** @docs-private */
|
|
8
11
|
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
12
|
+
/** localized data
|
|
13
|
+
* @docs-private */
|
|
9
14
|
get localeData(): any;
|
|
10
15
|
constructor();
|
|
11
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeButton, never>;
|
|
@@ -1,36 +1,56 @@
|
|
|
1
1
|
import { FormGroup } from '@angular/forms';
|
|
2
2
|
import { KbqButton, KbqButtonStyles } from '@koobiq/components/button';
|
|
3
|
-
import {
|
|
3
|
+
import { KbqComponentColors, PopUpPlacements } from '@koobiq/components/core';
|
|
4
4
|
import { KbqListSelection } from '@koobiq/components/list';
|
|
5
5
|
import { KbqPopoverTrigger } from '@koobiq/components/popover';
|
|
6
6
|
import { KbqDateTimeValue } from '../filter-bar.types';
|
|
7
7
|
import { KbqBasePipe } from './base-pipe';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export declare class KbqPipeDateComponent<D> extends KbqBasePipe<KbqDateTimeValue> {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
private readonly adapter;
|
|
11
|
+
private readonly formatter;
|
|
12
|
+
/** @docs-private */
|
|
12
13
|
protected readonly placements: typeof PopUpPlacements;
|
|
14
|
+
/** @docs-private */
|
|
13
15
|
protected readonly styles: typeof KbqButtonStyles;
|
|
16
|
+
/** @docs-private */
|
|
14
17
|
protected readonly colors: typeof KbqComponentColors;
|
|
15
|
-
|
|
18
|
+
/** Whether the current state is list of periods. When false will displayed control for set custom period */
|
|
19
|
+
protected isListMode: boolean;
|
|
20
|
+
/** @docs-private */
|
|
16
21
|
protected formGroup: FormGroup;
|
|
22
|
+
/** @docs-private */
|
|
17
23
|
protected showStartCalendar: boolean;
|
|
24
|
+
/** @docs-private */
|
|
18
25
|
protected showEndCalendar: boolean;
|
|
26
|
+
/** formatted value for period */
|
|
19
27
|
get formattedValue(): string;
|
|
28
|
+
/** Whether the current pipe is disabled. */
|
|
20
29
|
get disabled(): boolean;
|
|
21
|
-
|
|
22
|
-
get
|
|
23
|
-
|
|
24
|
-
get
|
|
30
|
+
/** parsed start */
|
|
31
|
+
get start(): D;
|
|
32
|
+
/** default object for start */
|
|
33
|
+
get defaultStart(): D;
|
|
34
|
+
/** parsed end */
|
|
35
|
+
get end(): D;
|
|
36
|
+
/** default object for end */
|
|
37
|
+
get defaultEnd(): D;
|
|
38
|
+
/** Whether the current pipe is empty. */
|
|
25
39
|
get isEmpty(): boolean;
|
|
40
|
+
/** @docs-private */
|
|
26
41
|
popover: KbqPopoverTrigger;
|
|
42
|
+
/** @docs-private */
|
|
27
43
|
listSelection: import("@angular/core").Signal<KbqListSelection>;
|
|
44
|
+
/** @docs-private */
|
|
28
45
|
returnButton: import("@angular/core").Signal<KbqButton>;
|
|
46
|
+
/** keydown handler
|
|
47
|
+
* @docs-private */
|
|
29
48
|
onKeydown($event: KeyboardEvent): void;
|
|
30
49
|
onApplyPeriod(): void;
|
|
31
50
|
onSelect(item: KbqDateTimeValue): void;
|
|
32
|
-
|
|
33
|
-
|
|
51
|
+
showPeriod(): void;
|
|
52
|
+
showList(): void;
|
|
53
|
+
/** opens popover */
|
|
34
54
|
open(): void;
|
|
35
55
|
onSelectStartDate(value: D): void;
|
|
36
56
|
onSelectEndDate(value: D): void;
|
|
@@ -4,10 +4,6 @@
|
|
|
4
4
|
@use '../../datepicker/datepicker-tokens' as *;
|
|
5
5
|
|
|
6
6
|
.kbq-pipe-date__popover {
|
|
7
|
-
&.kbq-popover.kbq-popover_medium {
|
|
8
|
-
margin-top: var(--kbq-size-xxs);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
7
|
& .kbq-popover__container {
|
|
12
8
|
max-height: unset;
|
|
13
9
|
}
|
|
@@ -56,14 +52,17 @@
|
|
|
56
52
|
}
|
|
57
53
|
|
|
58
54
|
& .kbq-date-period__content {
|
|
59
|
-
display:
|
|
60
|
-
|
|
55
|
+
display: grid;
|
|
56
|
+
grid-auto-columns: minmax(min-content, 1fr);
|
|
57
|
+
grid-template-columns: min-content;
|
|
61
58
|
|
|
62
59
|
padding: 0;
|
|
63
60
|
|
|
64
61
|
gap: var(--kbq-size-s);
|
|
65
62
|
|
|
66
63
|
& .kbq-date-period__content-header {
|
|
64
|
+
grid-column: 2 span;
|
|
65
|
+
|
|
67
66
|
padding-top: var(--kbq-size-s);
|
|
68
67
|
padding-left: var(--kbq-size-l);
|
|
69
68
|
padding-right: var(--kbq-size-l);
|
|
@@ -71,42 +70,43 @@
|
|
|
71
70
|
color: var(--kbq-foreground-contrast-secondary);
|
|
72
71
|
}
|
|
73
72
|
|
|
74
|
-
& .kbq-
|
|
73
|
+
& .kbq-form__label {
|
|
75
74
|
padding-left: var(--kbq-size-l);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
& .kbq-form__control {
|
|
76
78
|
padding-right: var(--kbq-size-l);
|
|
79
|
+
}
|
|
77
80
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
81
|
+
& .kbq-date-period__date,
|
|
82
|
+
& .kbq-date-period__time {
|
|
83
|
+
flex: 1;
|
|
84
|
+
}
|
|
82
85
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
max-width: 45%;
|
|
86
|
+
& .kbq-form__row_with-time {
|
|
87
|
+
display: flex;
|
|
86
88
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
& .kbq-date-period__date {
|
|
90
|
+
& .kbq-form-field__container {
|
|
91
|
+
border-top-right-radius: unset;
|
|
92
|
+
border-bottom-right-radius: unset;
|
|
91
93
|
}
|
|
94
|
+
}
|
|
92
95
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
max-width: 45%;
|
|
96
|
+
& .kbq-date-period__time {
|
|
97
|
+
margin-left: -1px;
|
|
96
98
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
99
|
+
& .kbq-form-field__container {
|
|
100
|
+
border-top-left-radius: unset;
|
|
101
|
+
border-bottom-left-radius: unset;
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
}
|
|
104
105
|
|
|
105
106
|
& .kbq-calendar {
|
|
106
107
|
position: relative;
|
|
107
|
-
|
|
108
|
+
grid-column: 2 span;
|
|
108
109
|
padding: var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);
|
|
109
|
-
|
|
110
110
|
background-color: var(--kbq-background-bg-tertiary);
|
|
111
111
|
|
|
112
112
|
&.kbq-calendar_hidden {
|
|
@@ -115,6 +115,8 @@
|
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
& .kbq-hint {
|
|
118
|
+
grid-column: 2 span;
|
|
119
|
+
|
|
118
120
|
padding-left: var(--kbq-size-m);
|
|
119
121
|
padding-right: var(--kbq-size-m);
|
|
120
122
|
}
|
|
@@ -1,36 +1,57 @@
|
|
|
1
1
|
import { FormGroup } from '@angular/forms';
|
|
2
2
|
import { KbqButton, KbqButtonStyles } from '@koobiq/components/button';
|
|
3
|
-
import {
|
|
3
|
+
import { KbqComponentColors, PopUpPlacements } from '@koobiq/components/core';
|
|
4
4
|
import { KbqListSelection } from '@koobiq/components/list';
|
|
5
5
|
import { KbqPopoverTrigger } from '@koobiq/components/popover';
|
|
6
6
|
import { KbqDateTimeValue } from '../filter-bar.types';
|
|
7
7
|
import { KbqBasePipe } from './base-pipe';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export declare class KbqPipeDatetimeComponent<D> extends KbqBasePipe<KbqDateTimeValue> {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
private readonly adapter;
|
|
11
|
+
private readonly formatter;
|
|
12
|
+
/** @docs-private */
|
|
12
13
|
protected readonly placements: typeof PopUpPlacements;
|
|
14
|
+
/** @docs-private */
|
|
13
15
|
protected readonly styles: typeof KbqButtonStyles;
|
|
16
|
+
/** @docs-private */
|
|
14
17
|
protected readonly colors: typeof KbqComponentColors;
|
|
15
|
-
|
|
18
|
+
/** Whether the current state is list of periods. When false will displayed control for set custom period */
|
|
19
|
+
protected isListMode: boolean;
|
|
20
|
+
/** @docs-private */
|
|
16
21
|
protected formGroup: FormGroup;
|
|
22
|
+
/** @docs-private */
|
|
17
23
|
protected showStartCalendar: boolean;
|
|
24
|
+
/** @docs-private */
|
|
18
25
|
protected showEndCalendar: boolean;
|
|
26
|
+
/** formatted value for period */
|
|
19
27
|
get formattedValue(): string;
|
|
28
|
+
/** Whether the current pipe is disabled. */
|
|
20
29
|
get disabled(): boolean;
|
|
21
|
-
|
|
22
|
-
get
|
|
23
|
-
|
|
24
|
-
get
|
|
30
|
+
/** parsed start */
|
|
31
|
+
get start(): D;
|
|
32
|
+
/** default object for start */
|
|
33
|
+
get defaultStart(): D;
|
|
34
|
+
/** parsed end */
|
|
35
|
+
get end(): D;
|
|
36
|
+
/** default object for end */
|
|
37
|
+
get defaultEnd(): D;
|
|
38
|
+
/** Whether the current pipe is empty. */
|
|
25
39
|
get isEmpty(): boolean;
|
|
40
|
+
/** @docs-private */
|
|
26
41
|
popover: KbqPopoverTrigger;
|
|
42
|
+
/** @docs-private */
|
|
27
43
|
listSelection: import("@angular/core").Signal<KbqListSelection>;
|
|
44
|
+
/** @docs-private */
|
|
28
45
|
returnButton: import("@angular/core").Signal<KbqButton>;
|
|
46
|
+
/** keydown handler
|
|
47
|
+
* @docs-private */
|
|
29
48
|
onKeydown($event: KeyboardEvent): void;
|
|
49
|
+
/** @docs-private */
|
|
30
50
|
onApplyPeriod(): void;
|
|
31
51
|
onSelect(item: KbqDateTimeValue): void;
|
|
32
|
-
|
|
33
|
-
|
|
52
|
+
showPeriod(): void;
|
|
53
|
+
showList(): void;
|
|
54
|
+
/** opens popover */
|
|
34
55
|
open(): void;
|
|
35
56
|
onSelectStartDate(value: D): void;
|
|
36
57
|
onSelectEndDate(value: D): void;
|
|
@@ -6,15 +6,22 @@ import { KbqSelectValue } from '../filter-bar.types';
|
|
|
6
6
|
import { KbqBasePipe } from './base-pipe';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class KbqPipeMultiSelectComponent extends KbqBasePipe<KbqSelectValue[]> implements OnInit {
|
|
9
|
+
/** control for search options */
|
|
9
10
|
searchControl: UntypedFormControl;
|
|
11
|
+
/** filtered by search options */
|
|
10
12
|
filteredOptions: Observable<any[]>;
|
|
13
|
+
/** @docs-private */
|
|
11
14
|
select: KbqSelect;
|
|
15
|
+
/** selected value */
|
|
12
16
|
get selected(): KbqSelectValue[] | null;
|
|
17
|
+
/** Whether the current pipe is empty. */
|
|
13
18
|
get isEmpty(): boolean;
|
|
14
19
|
ngOnInit(): void;
|
|
15
20
|
onSelect(item: KbqSelectValue[]): void;
|
|
16
21
|
onClear(): void;
|
|
22
|
+
/** Comparator of selected options */
|
|
17
23
|
compareByValue: (o1: any, o2: any) => boolean;
|
|
24
|
+
/** opens select */
|
|
18
25
|
open(): void;
|
|
19
26
|
private getFilteredOptions;
|
|
20
27
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeMultiSelectComponent, never>;
|
|
@@ -6,14 +6,21 @@ import { KbqSelectValue } from '../filter-bar.types';
|
|
|
6
6
|
import { KbqBasePipe } from './base-pipe';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class KbqPipeSelectComponent extends KbqBasePipe<KbqSelectValue> implements OnInit {
|
|
9
|
+
/** control for search options */
|
|
9
10
|
searchControl: UntypedFormControl;
|
|
11
|
+
/** filtered by search options */
|
|
10
12
|
filteredOptions: Observable<any[]>;
|
|
13
|
+
/** @docs-private */
|
|
11
14
|
select: KbqSelect;
|
|
15
|
+
/** selected value */
|
|
12
16
|
get selected(): KbqSelectValue | null;
|
|
17
|
+
/** Whether the current pipe is empty. */
|
|
13
18
|
get isEmpty(): boolean;
|
|
14
19
|
ngOnInit(): void;
|
|
15
20
|
onSelect(item: KbqSelectValue): void;
|
|
21
|
+
/** Comparator of selected options */
|
|
16
22
|
compareByValue: (o1: any, o2: any) => boolean;
|
|
23
|
+
/** opens select */
|
|
17
24
|
open(): void;
|
|
18
25
|
private getFilteredOptions;
|
|
19
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeSelectComponent, never>;
|
|
@@ -4,6 +4,7 @@ export declare class KbqPipeState<T> implements OnInit {
|
|
|
4
4
|
private readonly destroyRef;
|
|
5
5
|
private readonly button;
|
|
6
6
|
private readonly pipe;
|
|
7
|
+
/** calculates and updates styles of button from pipe state */
|
|
7
8
|
set state(pipe: T | null);
|
|
8
9
|
get state(): T | null;
|
|
9
10
|
private _state;
|