@ngneers/controls 0.0.1-pre1 → 0.0.1-pre2
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/LICENSE +21 -0
- package/fesm2022/ngneers-controls-accordion.mjs +194 -0
- package/fesm2022/ngneers-controls-accordion.mjs.map +1 -0
- package/fesm2022/ngneers-controls-api-ng.mjs +668 -0
- package/fesm2022/ngneers-controls-api-ng.mjs.map +1 -0
- package/fesm2022/ngneers-controls-api.mjs +256 -227
- package/fesm2022/ngneers-controls-api.mjs.map +1 -1
- package/fesm2022/ngneers-controls-avatar.mjs +70 -0
- package/fesm2022/ngneers-controls-avatar.mjs.map +1 -0
- package/fesm2022/ngneers-controls-base.mjs +397 -0
- package/fesm2022/ngneers-controls-base.mjs.map +1 -0
- package/fesm2022/ngneers-controls-breadcrumb.mjs +74 -0
- package/fesm2022/ngneers-controls-breadcrumb.mjs.map +1 -0
- package/fesm2022/ngneers-controls-button-group.mjs +51 -0
- package/fesm2022/ngneers-controls-button-group.mjs.map +1 -0
- package/fesm2022/ngneers-controls-button.mjs +62 -0
- package/fesm2022/ngneers-controls-button.mjs.map +1 -0
- package/fesm2022/ngneers-controls-calendar-time-C7UnIFzU.mjs +63 -0
- package/fesm2022/ngneers-controls-calendar-time-C7UnIFzU.mjs.map +1 -0
- package/fesm2022/ngneers-controls-calendar.mjs +468 -0
- package/fesm2022/ngneers-controls-calendar.mjs.map +1 -0
- package/fesm2022/ngneers-controls-checkbox.mjs +58 -0
- package/fesm2022/ngneers-controls-checkbox.mjs.map +1 -0
- package/fesm2022/ngneers-controls-chip.mjs +52 -0
- package/fesm2022/ngneers-controls-chip.mjs.map +1 -0
- package/fesm2022/ngneers-controls-defer.mjs +43 -0
- package/fesm2022/ngneers-controls-defer.mjs.map +1 -0
- package/fesm2022/ngneers-controls-dialog.mjs +329 -33
- package/fesm2022/ngneers-controls-dialog.mjs.map +1 -1
- package/fesm2022/ngneers-controls-directives.mjs +443 -0
- package/fesm2022/ngneers-controls-directives.mjs.map +1 -0
- package/fesm2022/ngneers-controls-drawer.mjs +232 -0
- package/fesm2022/ngneers-controls-drawer.mjs.map +1 -0
- package/fesm2022/ngneers-controls-edit-inplace.mjs +120 -0
- package/fesm2022/ngneers-controls-edit-inplace.mjs.map +1 -0
- package/fesm2022/ngneers-controls-filter.mjs +516 -0
- package/fesm2022/ngneers-controls-filter.mjs.map +1 -0
- package/fesm2022/ngneers-controls-i18n-de-CdTPeBiR.mjs +87 -0
- package/fesm2022/ngneers-controls-i18n-de-CdTPeBiR.mjs.map +1 -0
- package/fesm2022/ngneers-controls-i18n-en-Cfp2pOLY.mjs +87 -0
- package/fesm2022/ngneers-controls-i18n-en-Cfp2pOLY.mjs.map +1 -0
- package/fesm2022/ngneers-controls-i18n.mjs +57 -0
- package/fesm2022/ngneers-controls-i18n.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-calendar-z5xA9wTT.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-calendar-z5xA9wTT.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-check-DdAQ9k-T.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-check-DdAQ9k-T.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-chevron_down-HO-z-xOr.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-chevron_down-HO-z-xOr.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-chevron_left-CC5psi16.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-chevron_left-CC5psi16.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-chevron_right-BRxlzx4G.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-chevron_right-BRxlzx4G.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-chevron_up-cqhPO7g2.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-chevron_up-cqhPO7g2.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-ellipsis-DXIGA1sk.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-ellipsis-DXIGA1sk.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-filter-oU7E6Xgr.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-filter-oU7E6Xgr.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-filter_solid-CqIKuR4N.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-filter_solid-CqIKuR4N.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-magnifying_glass-T4Hzbkig.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-magnifying_glass-T4Hzbkig.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-minus-oGDEFO4E.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-minus-oGDEFO4E.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-sort-CRD4tafz.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-sort-CRD4tafz.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-sort_down-DiFB1P6R.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-sort_down-DiFB1P6R.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-sort_up-Bq_q3hIi.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-sort_up-Bq_q3hIi.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon-xmark-BZKZORiu.mjs +4 -0
- package/fesm2022/ngneers-controls-icon-xmark-BZKZORiu.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon.mjs +60 -18
- package/fesm2022/ngneers-controls-icon.mjs.map +1 -1
- package/fesm2022/ngneers-controls-inplace.mjs +107 -0
- package/fesm2022/ngneers-controls-inplace.mjs.map +1 -0
- package/fesm2022/ngneers-controls-input-field.mjs +141 -0
- package/fesm2022/ngneers-controls-input-field.mjs.map +1 -0
- package/fesm2022/ngneers-controls-input-mask.mjs +282 -0
- package/fesm2022/ngneers-controls-input-mask.mjs.map +1 -0
- package/fesm2022/ngneers-controls-input.mjs +69 -0
- package/fesm2022/ngneers-controls-input.mjs.map +1 -0
- package/fesm2022/ngneers-controls-item-view.mjs +441 -0
- package/fesm2022/ngneers-controls-item-view.mjs.map +1 -0
- package/fesm2022/ngneers-controls-list-box.mjs +157 -53
- package/fesm2022/ngneers-controls-list-box.mjs.map +1 -1
- package/fesm2022/ngneers-controls-menu.mjs +332 -0
- package/fesm2022/ngneers-controls-menu.mjs.map +1 -0
- package/fesm2022/ngneers-controls-message.mjs +29 -0
- package/fesm2022/ngneers-controls-message.mjs.map +1 -0
- package/fesm2022/ngneers-controls-paginator.mjs +111 -0
- package/fesm2022/ngneers-controls-paginator.mjs.map +1 -0
- package/fesm2022/ngneers-controls-popover.mjs +129 -40
- package/fesm2022/ngneers-controls-popover.mjs.map +1 -1
- package/fesm2022/ngneers-controls-progress.mjs +82 -0
- package/fesm2022/ngneers-controls-progress.mjs.map +1 -0
- package/fesm2022/ngneers-controls-scroller.mjs +155 -78
- package/fesm2022/ngneers-controls-scroller.mjs.map +1 -1
- package/fesm2022/ngneers-controls-select-button.mjs +55 -0
- package/fesm2022/ngneers-controls-select-button.mjs.map +1 -0
- package/fesm2022/ngneers-controls-select.mjs +313 -103
- package/fesm2022/ngneers-controls-select.mjs.map +1 -1
- package/fesm2022/ngneers-controls-slider.mjs +155 -0
- package/fesm2022/ngneers-controls-slider.mjs.map +1 -0
- package/fesm2022/ngneers-controls-spinner.mjs +169 -0
- package/fesm2022/ngneers-controls-spinner.mjs.map +1 -0
- package/fesm2022/ngneers-controls-splitter.mjs +717 -0
- package/fesm2022/ngneers-controls-splitter.mjs.map +1 -0
- package/fesm2022/ngneers-controls-switch.mjs +39 -0
- package/fesm2022/ngneers-controls-switch.mjs.map +1 -0
- package/fesm2022/ngneers-controls-table.mjs +379 -0
- package/fesm2022/ngneers-controls-table.mjs.map +1 -0
- package/fesm2022/ngneers-controls-tabs.mjs +287 -0
- package/fesm2022/ngneers-controls-tabs.mjs.map +1 -0
- package/fesm2022/ngneers-controls-tag.mjs +29 -0
- package/fesm2022/ngneers-controls-tag.mjs.map +1 -0
- package/fesm2022/ngneers-controls-toast.mjs +184 -0
- package/fesm2022/ngneers-controls-toast.mjs.map +1 -0
- package/fesm2022/ngneers-controls-toggle-button.mjs +65 -0
- package/fesm2022/ngneers-controls-toggle-button.mjs.map +1 -0
- package/fesm2022/ngneers-controls-tooltip.mjs +454 -0
- package/fesm2022/ngneers-controls-tooltip.mjs.map +1 -0
- package/fesm2022/ngneers-controls-utils-ng.mjs +227 -0
- package/fesm2022/ngneers-controls-utils-ng.mjs.map +1 -0
- package/fesm2022/ngneers-controls-utils.mjs +217 -60
- package/fesm2022/ngneers-controls-utils.mjs.map +1 -1
- package/fesm2022/ngneers-controls.mjs.map +1 -1
- package/package.json +167 -32
- package/types/ngneers-controls-accordion.d.ts +114 -0
- package/types/ngneers-controls-api-ng.d.ts +291 -0
- package/types/ngneers-controls-api.d.ts +99 -0
- package/types/ngneers-controls-avatar.d.ts +50 -0
- package/types/ngneers-controls-base.d.ts +166 -0
- package/types/ngneers-controls-breadcrumb.d.ts +86 -0
- package/types/ngneers-controls-button-group.d.ts +30 -0
- package/types/ngneers-controls-button.d.ts +34 -0
- package/types/ngneers-controls-calendar.d.ts +275 -0
- package/types/ngneers-controls-checkbox.d.ts +38 -0
- package/types/ngneers-controls-chip.d.ts +37 -0
- package/types/ngneers-controls-defer.d.ts +22 -0
- package/types/ngneers-controls-dialog.d.ts +218 -0
- package/types/ngneers-controls-directives.d.ts +146 -0
- package/types/ngneers-controls-drawer.d.ts +220 -0
- package/types/ngneers-controls-edit-inplace.d.ts +182 -0
- package/types/ngneers-controls-filter.d.ts +304 -0
- package/types/ngneers-controls-i18n.d.ts +108 -0
- package/types/ngneers-controls-icon.d.ts +74 -0
- package/types/ngneers-controls-inplace.d.ts +95 -0
- package/types/ngneers-controls-input-field.d.ts +159 -0
- package/types/ngneers-controls-input-mask.d.ts +83 -0
- package/types/ngneers-controls-input.d.ts +27 -0
- package/types/ngneers-controls-item-view.d.ts +211 -0
- package/types/ngneers-controls-list-box.d.ts +216 -0
- package/types/ngneers-controls-menu.d.ts +178 -0
- package/types/ngneers-controls-message.d.ts +19 -0
- package/types/ngneers-controls-paginator.d.ts +162 -0
- package/types/ngneers-controls-popover.d.ts +101 -0
- package/types/ngneers-controls-progress.d.ts +44 -0
- package/types/ngneers-controls-scroller.d.ts +137 -0
- package/types/ngneers-controls-select-button.d.ts +37 -0
- package/types/ngneers-controls-select.d.ts +314 -0
- package/types/ngneers-controls-slider.d.ts +53 -0
- package/types/ngneers-controls-spinner.d.ts +105 -0
- package/types/ngneers-controls-splitter.d.ts +391 -0
- package/types/ngneers-controls-switch.d.ts +18 -0
- package/types/ngneers-controls-table.d.ts +157 -0
- package/types/ngneers-controls-tabs.d.ts +106 -0
- package/types/ngneers-controls-tag.d.ts +19 -0
- package/types/ngneers-controls-toast.d.ts +70 -0
- package/types/ngneers-controls-toggle-button.d.ts +46 -0
- package/types/ngneers-controls-tooltip.d.ts +188 -0
- package/types/ngneers-controls-utils-ng.d.ts +57 -0
- package/types/ngneers-controls-utils.d.ts +130 -0
- package/api/index.d.ts +0 -134
- package/custom-types/index.d.ts +0 -7
- package/dialog/index.d.ts +0 -43
- package/fesm2022/ngneers-controls-custom-types.mjs +0 -4
- package/fesm2022/ngneers-controls-custom-types.mjs.map +0 -1
- package/fesm2022/ngneers-controls-form-field.mjs +0 -33
- package/fesm2022/ngneers-controls-form-field.mjs.map +0 -1
- package/fesm2022/ngneers-controls-lazy-cacher.mjs +0 -30
- package/fesm2022/ngneers-controls-lazy-cacher.mjs.map +0 -1
- package/fesm2022/ngneers-controls-text-field.mjs +0 -23
- package/fesm2022/ngneers-controls-text-field.mjs.map +0 -1
- package/form-field/index.d.ts +0 -19
- package/icon/index.d.ts +0 -30
- package/lazy-cacher/index.d.ts +0 -14
- package/list-box/index.d.ts +0 -58
- package/popover/index.d.ts +0 -41
- package/scroller/index.d.ts +0 -95
- package/select/index.d.ts +0 -86
- package/text-field/index.d.ts +0 -10
- package/utils/index.d.ts +0 -36
- /package/{index.d.ts → types/ngneers-controls.d.ts} +0 -0
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _ngneers_signal_translate from '@ngneers/signal-translate';
|
|
3
|
+
import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
|
|
4
|
+
import { Anchor } from '@ngneers/controls/api/ng';
|
|
5
|
+
import * as _ngneers_controls_themes from '@ngneers/controls-themes';
|
|
6
|
+
import { NgnItem } from '@ngneers/controls/api';
|
|
7
|
+
import { ValueControlBase } from '@ngneers/controls/base';
|
|
8
|
+
import { PopoverOptions } from '@ngneers/controls/popover';
|
|
9
|
+
|
|
10
|
+
type NgnFilterDataType = 'string' | 'number' | 'date' | 'dateTime' | 'boolean' | 'custom' | 'list';
|
|
11
|
+
type NgnFilterMode = 'inline' | 'input' | 'headless';
|
|
12
|
+
type NgnFilterMatchMode = 'any' | 'all';
|
|
13
|
+
type NgnFilterOperatorId = 'isEqual' | 'isNotEqual' | 'contains' | 'startsWith' | 'endsWith' | 'in' | 'isEmpty' | 'isNotEmpty' | 'greaterThan' | 'greaterThanOrEqual' | 'lessThan' | 'lessThanOrEqual' | 'isTrue' | 'isFalse' | 'custom';
|
|
14
|
+
/**
|
|
15
|
+
* A single configured filter condition.
|
|
16
|
+
* This is intentionally data-free and serializable (useful for server-side filtering).
|
|
17
|
+
*/
|
|
18
|
+
type NgnFilterConditionConfig = {
|
|
19
|
+
operator: NgnFilterOperatorId;
|
|
20
|
+
/** Raw user-entered value (string from the input), or null when empty. */
|
|
21
|
+
rawValue: string | null;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Complete filter configuration without any actual dataset/result.
|
|
25
|
+
*/
|
|
26
|
+
type NgnFilterConfig = {
|
|
27
|
+
/** The chosen datatype for the filter value. */
|
|
28
|
+
dataType: NgnFilterDataType;
|
|
29
|
+
/** How multiple conditions should be combined. */
|
|
30
|
+
matchMode: NgnFilterMatchMode;
|
|
31
|
+
/** Configured conditions (may include empty values depending on operator). */
|
|
32
|
+
conditions: readonly NgnFilterConditionConfig[];
|
|
33
|
+
};
|
|
34
|
+
type NgnFilterCondition = {
|
|
35
|
+
operator: NgnFilterOperatorId;
|
|
36
|
+
value: unknown;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Full client-side filter result (configuration + filtered dataset).
|
|
40
|
+
* Prefer {@link NgnFilterConfig} when you only need the config.
|
|
41
|
+
*/
|
|
42
|
+
type NgnFilterOutput<T> = NgnFilterConfig & {
|
|
43
|
+
/** The active (parsed) conditions used for local evaluation. */
|
|
44
|
+
activeConditions: readonly NgnFilterCondition[];
|
|
45
|
+
/** The filtered data result. */
|
|
46
|
+
filtered: readonly T[];
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @category control
|
|
51
|
+
*/
|
|
52
|
+
declare class NgnFilter<T = unknown> extends ValueControlBase<'filter', NgnFilterConfig | null> {
|
|
53
|
+
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"filter", ["root", "inline", "input-field", "summary", "icon", "popover-content", "rows", "row", "operator", "value", "row-actions", "match", "footer"], readonly [_ngneers_controls_themes.ControlTemplate<"popover", ["root", "content", "content-closing", "anim-in", "anim-out"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>, _ngneers_controls_themes.ControlTemplate<"input-field", ["root", "host", "disabled", "readonly", "invalid", "label", "clear-button", `labelKind-${string}`], readonly [_ngneers_controls_themes.ControlTemplate<"input", ["root", "invalid", "empty"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>]>, _ngneers_controls_themes.ControlTemplate<"input", ["root", "invalid", "empty"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>, _ngneers_controls_themes.ControlTemplate<"select", ["root", "combobox", "input", "icon", "input-editable", "popover-content", "filter", "filter-icon", "list-box", "list-box-empty"], readonly [_ngneers_controls_themes.ControlTemplate<"popover", ["root", "content", "content-closing", "anim-in", "anim-out"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>, _ngneers_controls_themes.ControlTemplate<"list-box", ["root", "empty", "invalid", "item", "group", "default-item", "default-group", "scroller", "item-selected", "item-highlighted"], readonly [_ngneers_controls_themes.ControlTemplate<"checkbox", ["root", "input", "box", "box-checked", "box-indeterminate", "box-icon", "anim-box-icon-enter", "anim-box-icon-leave", "invalid"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>, _ngneers_controls_themes.ControlTemplate<"scroller", ["root", "virtual", "item", "spacer", "item-sticky"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>]>, _ngneers_controls_themes.ControlTemplate<"input-field", ["root", "host", "disabled", "readonly", "invalid", "label", "clear-button", `labelKind-${string}`], readonly [_ngneers_controls_themes.ControlTemplate<"input", ["root", "invalid", "empty"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>]>]>, _ngneers_controls_themes.ControlTemplate<"button", ["root", "inline", "loading", `kind-${string}`, `color-${string}`], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>]>>;
|
|
54
|
+
protected readonly i18n: _ngneers_signal_translate.TranslationsSignal<{
|
|
55
|
+
calendar: {
|
|
56
|
+
today: string;
|
|
57
|
+
selectYear: string;
|
|
58
|
+
weekdays: {
|
|
59
|
+
monday: string;
|
|
60
|
+
tuesday: string;
|
|
61
|
+
wednesday: string;
|
|
62
|
+
thursday: string;
|
|
63
|
+
friday: string;
|
|
64
|
+
saturday: string;
|
|
65
|
+
sunday: string;
|
|
66
|
+
};
|
|
67
|
+
weekdaysShort: {
|
|
68
|
+
monday: string;
|
|
69
|
+
tuesday: string;
|
|
70
|
+
wednesday: string;
|
|
71
|
+
thursday: string;
|
|
72
|
+
friday: string;
|
|
73
|
+
saturday: string;
|
|
74
|
+
sunday: string;
|
|
75
|
+
};
|
|
76
|
+
months: {
|
|
77
|
+
january: string;
|
|
78
|
+
february: string;
|
|
79
|
+
march: string;
|
|
80
|
+
april: string;
|
|
81
|
+
may: string;
|
|
82
|
+
june: string;
|
|
83
|
+
july: string;
|
|
84
|
+
august: string;
|
|
85
|
+
september: string;
|
|
86
|
+
october: string;
|
|
87
|
+
november: string;
|
|
88
|
+
december: string;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
editInplace: {
|
|
92
|
+
placeholder: string;
|
|
93
|
+
};
|
|
94
|
+
filter: {
|
|
95
|
+
noFilter: string;
|
|
96
|
+
addCondition: string;
|
|
97
|
+
removeCondition: string;
|
|
98
|
+
clear: string;
|
|
99
|
+
matchModeLabel: string;
|
|
100
|
+
match: {
|
|
101
|
+
all: string;
|
|
102
|
+
any: string;
|
|
103
|
+
};
|
|
104
|
+
selected: string;
|
|
105
|
+
conditions: string;
|
|
106
|
+
operators: {
|
|
107
|
+
isEqual: string;
|
|
108
|
+
isNotEqual: string;
|
|
109
|
+
contains: string;
|
|
110
|
+
startsWith: string;
|
|
111
|
+
endsWith: string;
|
|
112
|
+
in: string;
|
|
113
|
+
isEmpty: string;
|
|
114
|
+
isNotEmpty: string;
|
|
115
|
+
greaterThan: string;
|
|
116
|
+
greaterThanOrEqual: string;
|
|
117
|
+
lessThan: string;
|
|
118
|
+
lessThanOrEqual: string;
|
|
119
|
+
after: string;
|
|
120
|
+
onOrAfter: string;
|
|
121
|
+
before: string;
|
|
122
|
+
onOrBefore: string;
|
|
123
|
+
isTrue: string;
|
|
124
|
+
isFalse: string;
|
|
125
|
+
custom: string;
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
splitter: {
|
|
129
|
+
handleLabel: string;
|
|
130
|
+
};
|
|
131
|
+
inputField: {
|
|
132
|
+
clearInput: string;
|
|
133
|
+
};
|
|
134
|
+
drawer: {
|
|
135
|
+
close: string;
|
|
136
|
+
};
|
|
137
|
+
}, "_">;
|
|
138
|
+
protected readonly unsafeI18n: (key: string) => _angular_core.Signal<string>;
|
|
139
|
+
/** Data to filter. */
|
|
140
|
+
readonly data: _angular_core.InputSignal<readonly T[]>;
|
|
141
|
+
/** Datatype of the values in {@link data}. */
|
|
142
|
+
readonly dataType: _angular_core.InputSignal<NgnFilterDataType>;
|
|
143
|
+
/** Allows multiple conditions and a match mode (any/all). */
|
|
144
|
+
readonly allowMultiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
145
|
+
/**
|
|
146
|
+
* Options for `dataType="list"`.
|
|
147
|
+
* When provided, they are used as-is. When `null` or `undefined`, options are derived from {@link data}.
|
|
148
|
+
*/
|
|
149
|
+
readonly listOptions: _angular_core.InputSignal<readonly string[] | null | undefined>;
|
|
150
|
+
/**
|
|
151
|
+
* Controls how the filter is rendered.
|
|
152
|
+
* - `inline`: renders the filter rows directly
|
|
153
|
+
* - `input`: renders an input-like trigger that opens a popover (default)
|
|
154
|
+
* - `headless`: renders only the popover and can be opened programmatically via {@link show}
|
|
155
|
+
*/
|
|
156
|
+
readonly mode: _angular_core.InputSignal<NgnFilterMode>;
|
|
157
|
+
/**
|
|
158
|
+
* Popover anchor used only in `headless` mode.
|
|
159
|
+
* In `input` mode the anchor is the internal input-field.
|
|
160
|
+
*/
|
|
161
|
+
readonly anchor: _angular_core.InputSignal<Anchor | null>;
|
|
162
|
+
/**
|
|
163
|
+
* When true, the component will filter {@link data} locally and emit the filtered result.
|
|
164
|
+
* When false, only the filter configuration is emitted (useful for server-side filtering).
|
|
165
|
+
*/
|
|
166
|
+
readonly filterLocally: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
167
|
+
/** Options for the popover (when {@link mode} is not `inline`). */
|
|
168
|
+
readonly popoverOptions: _angular_core.InputSignal<PopoverOptions>;
|
|
169
|
+
protected readonly appliedPopoverOptions: _angular_core.Signal<PopoverOptions>;
|
|
170
|
+
/** Emits whenever the filter configuration changes. */
|
|
171
|
+
readonly filterChange: _angular_core.OutputEmitterRef<NgnFilterConfig | null>;
|
|
172
|
+
/** Emits the filtered data whenever local filtering is enabled. */
|
|
173
|
+
readonly filterResultChange: _angular_core.OutputEmitterRef<readonly T[]>;
|
|
174
|
+
private readonly _popover;
|
|
175
|
+
private createCondition;
|
|
176
|
+
private defaultConfig;
|
|
177
|
+
/**
|
|
178
|
+
* Config used for UI rendering.
|
|
179
|
+
* Falls back to a default config when the actual {@link value} is null.
|
|
180
|
+
*/
|
|
181
|
+
protected readonly templateConfig: _angular_core.Signal<NgnFilterConfig>;
|
|
182
|
+
protected readonly templateListSelection: _angular_core.Signal<readonly string[]>;
|
|
183
|
+
protected readonly operatorDefs: _angular_core.Signal<[{
|
|
184
|
+
readonly id: "isEqual";
|
|
185
|
+
readonly labelKey: "filter_operators_isEqual";
|
|
186
|
+
readonly requiresValue: true;
|
|
187
|
+
}, {
|
|
188
|
+
readonly id: "isNotEqual";
|
|
189
|
+
readonly labelKey: "filter_operators_isNotEqual";
|
|
190
|
+
readonly requiresValue: true;
|
|
191
|
+
}, {
|
|
192
|
+
readonly id: "contains";
|
|
193
|
+
readonly labelKey: "filter_operators_contains";
|
|
194
|
+
readonly requiresValue: true;
|
|
195
|
+
}, {
|
|
196
|
+
readonly id: "startsWith";
|
|
197
|
+
readonly labelKey: "filter_operators_startsWith";
|
|
198
|
+
readonly requiresValue: true;
|
|
199
|
+
}, {
|
|
200
|
+
readonly id: "endsWith";
|
|
201
|
+
readonly labelKey: "filter_operators_endsWith";
|
|
202
|
+
readonly requiresValue: true;
|
|
203
|
+
}, {
|
|
204
|
+
readonly id: "isEmpty";
|
|
205
|
+
readonly labelKey: "filter_operators_isEmpty";
|
|
206
|
+
readonly requiresValue: false;
|
|
207
|
+
}, {
|
|
208
|
+
readonly id: "isNotEmpty";
|
|
209
|
+
readonly labelKey: "filter_operators_isNotEmpty";
|
|
210
|
+
readonly requiresValue: false;
|
|
211
|
+
}] | [{
|
|
212
|
+
readonly id: "isEqual";
|
|
213
|
+
readonly labelKey: "filter_operators_isEqual";
|
|
214
|
+
readonly requiresValue: true;
|
|
215
|
+
}, {
|
|
216
|
+
readonly id: "isNotEqual";
|
|
217
|
+
readonly labelKey: "filter_operators_isNotEqual";
|
|
218
|
+
readonly requiresValue: true;
|
|
219
|
+
}, {
|
|
220
|
+
readonly id: "greaterThan";
|
|
221
|
+
readonly labelKey: "filter_operators_greaterThan";
|
|
222
|
+
readonly requiresValue: true;
|
|
223
|
+
}, {
|
|
224
|
+
readonly id: "greaterThanOrEqual";
|
|
225
|
+
readonly labelKey: "filter_operators_greaterThanOrEqual";
|
|
226
|
+
readonly requiresValue: true;
|
|
227
|
+
}, {
|
|
228
|
+
readonly id: "lessThan";
|
|
229
|
+
readonly labelKey: "filter_operators_lessThan";
|
|
230
|
+
readonly requiresValue: true;
|
|
231
|
+
}, {
|
|
232
|
+
readonly id: "lessThanOrEqual";
|
|
233
|
+
readonly labelKey: "filter_operators_lessThanOrEqual";
|
|
234
|
+
readonly requiresValue: true;
|
|
235
|
+
}] | [{
|
|
236
|
+
readonly id: "isEqual";
|
|
237
|
+
readonly labelKey: "filter_operators_isEqual";
|
|
238
|
+
readonly requiresValue: true;
|
|
239
|
+
}, {
|
|
240
|
+
readonly id: "isNotEqual";
|
|
241
|
+
readonly labelKey: "filter_operators_isNotEqual";
|
|
242
|
+
readonly requiresValue: true;
|
|
243
|
+
}, {
|
|
244
|
+
readonly id: "greaterThan";
|
|
245
|
+
readonly labelKey: "filter_operators_after";
|
|
246
|
+
readonly requiresValue: true;
|
|
247
|
+
}, {
|
|
248
|
+
readonly id: "greaterThanOrEqual";
|
|
249
|
+
readonly labelKey: "filter_operators_onOrAfter";
|
|
250
|
+
readonly requiresValue: true;
|
|
251
|
+
}, {
|
|
252
|
+
readonly id: "lessThan";
|
|
253
|
+
readonly labelKey: "filter_operators_before";
|
|
254
|
+
readonly requiresValue: true;
|
|
255
|
+
}, {
|
|
256
|
+
readonly id: "lessThanOrEqual";
|
|
257
|
+
readonly labelKey: "filter_operators_onOrBefore";
|
|
258
|
+
readonly requiresValue: true;
|
|
259
|
+
}] | [{
|
|
260
|
+
readonly id: "isTrue";
|
|
261
|
+
readonly labelKey: "filter_operators_isTrue";
|
|
262
|
+
readonly requiresValue: false;
|
|
263
|
+
}, {
|
|
264
|
+
readonly id: "isFalse";
|
|
265
|
+
readonly labelKey: "filter_operators_isFalse";
|
|
266
|
+
readonly requiresValue: false;
|
|
267
|
+
}] | [{
|
|
268
|
+
readonly id: "custom";
|
|
269
|
+
readonly labelKey: "filter_operators_custom";
|
|
270
|
+
readonly requiresValue: true;
|
|
271
|
+
}] | [{
|
|
272
|
+
readonly id: "in";
|
|
273
|
+
readonly labelKey: "filter_operators_in";
|
|
274
|
+
readonly requiresValue: true;
|
|
275
|
+
}]>;
|
|
276
|
+
protected readonly operatorOptions: _angular_core.Signal<NgnItem[]>;
|
|
277
|
+
protected readonly autoListOptions: _angular_core.Signal<readonly NgnItem[]>;
|
|
278
|
+
protected readonly resolvedListOptions: _angular_core.Signal<readonly NgnItem[]>;
|
|
279
|
+
protected readonly matchModeOptions: readonly NgnItem[];
|
|
280
|
+
protected readonly inputType: _angular_core.Signal<"number" | "date" | "text" | "datetime-local">;
|
|
281
|
+
protected readonly summaryText: _angular_core.Signal<string | undefined>;
|
|
282
|
+
protected readonly activeConditionConfigs: _angular_core.Signal<readonly NgnFilterConditionConfig[]>;
|
|
283
|
+
protected readonly activeConditions: _angular_core.Signal<readonly NgnFilterCondition[]>;
|
|
284
|
+
protected readonly filteredData: _angular_core.Signal<readonly T[]>;
|
|
285
|
+
constructor();
|
|
286
|
+
protected setMatchMode(value: unknown): void;
|
|
287
|
+
protected operatorRequiresValue(operator: NgnFilterOperatorId): boolean;
|
|
288
|
+
protected setOperator(index: number, operator: NgnFilterOperatorId | null): void;
|
|
289
|
+
protected setRawValue(index: number, rawValue: string | null): void;
|
|
290
|
+
protected addCondition(): void;
|
|
291
|
+
protected removeCondition(index: number): void;
|
|
292
|
+
protected setListSelection(value: unknown): void;
|
|
293
|
+
protected clear(): void;
|
|
294
|
+
/** Shows the filter popup. Only works when {@link mode} is not `inline`. */
|
|
295
|
+
show(): void;
|
|
296
|
+
/** Hides the filter popup. Only works when {@link mode} is not `inline`. */
|
|
297
|
+
hide(): void;
|
|
298
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
299
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnFilter<any>, never>;
|
|
300
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnFilter<any>, "ngn-filter", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "dataType": { "alias": "dataType"; "required": false; "isSignal": true; }; "allowMultiple": { "alias": "allowMultiple"; "required": false; "isSignal": true; }; "listOptions": { "alias": "listOptions"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "anchor": { "alias": "anchor"; "required": false; "isSignal": true; }; "filterLocally": { "alias": "filterLocally"; "required": false; "isSignal": true; }; "popoverOptions": { "alias": "popoverOptions"; "required": false; "isSignal": true; }; }, { "filterChange": "filterChange"; "filterResultChange": "filterResultChange"; }, never, never, true, never>;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
export { NgnFilter };
|
|
304
|
+
export type { NgnFilterCondition, NgnFilterConditionConfig, NgnFilterConfig, NgnFilterDataType, NgnFilterMatchMode, NgnFilterMode, NgnFilterOperatorId, NgnFilterOutput };
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Signal } from '@angular/core';
|
|
3
|
+
import { BaseTranslateService } from '@ngneers/signal-translate';
|
|
4
|
+
|
|
5
|
+
declare const _default: {
|
|
6
|
+
calendar: {
|
|
7
|
+
today: string;
|
|
8
|
+
selectYear: string;
|
|
9
|
+
weekdays: {
|
|
10
|
+
monday: string;
|
|
11
|
+
tuesday: string;
|
|
12
|
+
wednesday: string;
|
|
13
|
+
thursday: string;
|
|
14
|
+
friday: string;
|
|
15
|
+
saturday: string;
|
|
16
|
+
sunday: string;
|
|
17
|
+
};
|
|
18
|
+
weekdaysShort: {
|
|
19
|
+
monday: string;
|
|
20
|
+
tuesday: string;
|
|
21
|
+
wednesday: string;
|
|
22
|
+
thursday: string;
|
|
23
|
+
friday: string;
|
|
24
|
+
saturday: string;
|
|
25
|
+
sunday: string;
|
|
26
|
+
};
|
|
27
|
+
months: {
|
|
28
|
+
january: string;
|
|
29
|
+
february: string;
|
|
30
|
+
march: string;
|
|
31
|
+
april: string;
|
|
32
|
+
may: string;
|
|
33
|
+
june: string;
|
|
34
|
+
july: string;
|
|
35
|
+
august: string;
|
|
36
|
+
september: string;
|
|
37
|
+
october: string;
|
|
38
|
+
november: string;
|
|
39
|
+
december: string;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
editInplace: {
|
|
43
|
+
placeholder: string;
|
|
44
|
+
};
|
|
45
|
+
filter: {
|
|
46
|
+
noFilter: string;
|
|
47
|
+
addCondition: string;
|
|
48
|
+
removeCondition: string;
|
|
49
|
+
clear: string;
|
|
50
|
+
matchModeLabel: string;
|
|
51
|
+
match: {
|
|
52
|
+
all: string;
|
|
53
|
+
any: string;
|
|
54
|
+
};
|
|
55
|
+
selected: string;
|
|
56
|
+
conditions: string;
|
|
57
|
+
operators: {
|
|
58
|
+
isEqual: string;
|
|
59
|
+
isNotEqual: string;
|
|
60
|
+
contains: string;
|
|
61
|
+
startsWith: string;
|
|
62
|
+
endsWith: string;
|
|
63
|
+
in: string;
|
|
64
|
+
isEmpty: string;
|
|
65
|
+
isNotEmpty: string;
|
|
66
|
+
greaterThan: string;
|
|
67
|
+
greaterThanOrEqual: string;
|
|
68
|
+
lessThan: string;
|
|
69
|
+
lessThanOrEqual: string;
|
|
70
|
+
after: string;
|
|
71
|
+
onOrAfter: string;
|
|
72
|
+
before: string;
|
|
73
|
+
onOrBefore: string;
|
|
74
|
+
isTrue: string;
|
|
75
|
+
isFalse: string;
|
|
76
|
+
custom: string;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
splitter: {
|
|
80
|
+
handleLabel: string;
|
|
81
|
+
};
|
|
82
|
+
inputField: {
|
|
83
|
+
clearInput: string;
|
|
84
|
+
};
|
|
85
|
+
drawer: {
|
|
86
|
+
close: string;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
declare const supportedLanguages: readonly ["en", "de"];
|
|
91
|
+
|
|
92
|
+
type SupportedLanguage = (typeof supportedLanguages)[number];
|
|
93
|
+
type Translations = typeof _default;
|
|
94
|
+
|
|
95
|
+
declare class I18n extends BaseTranslateService<Translations> {
|
|
96
|
+
constructor();
|
|
97
|
+
protected loadTranslations(lang: string): Promise<Translations>;
|
|
98
|
+
unsafe(key: string): Signal<string>;
|
|
99
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<I18n, never>;
|
|
100
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<I18n>;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
declare function registerCustomLanguage(language: string, translations: () => Promise<Translations>): void;
|
|
104
|
+
declare function registerCustomLanguages(languages: Record<string, () => Promise<Translations>>): void;
|
|
105
|
+
declare function loadLanguage(language: SupportedLanguage): Promise<Translations>;
|
|
106
|
+
|
|
107
|
+
export { I18n, loadLanguage, registerCustomLanguage, registerCustomLanguages, supportedLanguages };
|
|
108
|
+
export type { SupportedLanguage, Translations };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { TemplateRef, OnDestroy } from '@angular/core';
|
|
3
|
+
import { IconType } from '@ngneers/controls-custom-types';
|
|
4
|
+
import * as _ngneers_controls_icon from '@ngneers/controls/icon';
|
|
5
|
+
import * as _angular_platform_browser from '@angular/platform-browser';
|
|
6
|
+
import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
|
|
7
|
+
import * as _ngneers_controls_themes from '@ngneers/controls-themes';
|
|
8
|
+
import { NgnBase } from '@ngneers/controls/base';
|
|
9
|
+
|
|
10
|
+
declare const DEFAULT_ICONS: {
|
|
11
|
+
calendar: () => Promise<string>;
|
|
12
|
+
check: () => Promise<string>;
|
|
13
|
+
chevron_down: () => Promise<string>;
|
|
14
|
+
chevron_left: () => Promise<string>;
|
|
15
|
+
chevron_right: () => Promise<string>;
|
|
16
|
+
chevron_up: () => Promise<string>;
|
|
17
|
+
ellipsis: () => Promise<string>;
|
|
18
|
+
filter: () => Promise<string>;
|
|
19
|
+
filter_solid: () => Promise<string>;
|
|
20
|
+
magnifying_glass: () => Promise<string>;
|
|
21
|
+
minus: () => Promise<string>;
|
|
22
|
+
sort: () => Promise<string>;
|
|
23
|
+
sort_down: () => Promise<string>;
|
|
24
|
+
sort_up: () => Promise<string>;
|
|
25
|
+
xmark: () => Promise<string>;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
type IconTemplateContext = {
|
|
29
|
+
$implicit: {
|
|
30
|
+
icon: IconType;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
type DefaultIcon = keyof typeof DEFAULT_ICONS;
|
|
34
|
+
|
|
35
|
+
type IconTemplateType = TemplateRef<IconTemplateContext>;
|
|
36
|
+
declare class GlobalIconTemplate implements OnDestroy {
|
|
37
|
+
private readonly _globalIconTemplate;
|
|
38
|
+
readonly globalIconTemplate: _angular_core.Signal<IconTemplateType | null>;
|
|
39
|
+
setGlobalIconTemplate(template: IconTemplateType): void;
|
|
40
|
+
ngOnDestroy(): void;
|
|
41
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<GlobalIconTemplate, never>;
|
|
42
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<GlobalIconTemplate>;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @category control
|
|
47
|
+
*/
|
|
48
|
+
declare class NgnIcon extends NgnBase<'icon'> {
|
|
49
|
+
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"icon", ["root", "default"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>>;
|
|
50
|
+
private readonly _globalIconTemplate;
|
|
51
|
+
private readonly _sanitizer;
|
|
52
|
+
readonly defaultIcon: _angular_core.InputSignal<"calendar" | "filter" | "check" | "chevron_down" | "chevron_left" | "chevron_right" | "chevron_up" | "ellipsis" | "filter_solid" | "magnifying_glass" | "minus" | "sort" | "sort_down" | "sort_up" | "xmark" | undefined>;
|
|
53
|
+
readonly icon: _angular_core.InputSignal<string | undefined>;
|
|
54
|
+
protected readonly templateType: IconTemplateContext & {
|
|
55
|
+
$implicit: {
|
|
56
|
+
$implicit: Partial<{
|
|
57
|
+
icon: IconType;
|
|
58
|
+
}>;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
protected readonly defaultIconSvg: {
|
|
62
|
+
(): _angular_platform_browser.SafeHtml | null;
|
|
63
|
+
isRunning: _angular_core.Signal<boolean>;
|
|
64
|
+
firstRunCompleted: _angular_core.Signal<boolean>;
|
|
65
|
+
};
|
|
66
|
+
private readonly _defaultIconTemplate;
|
|
67
|
+
protected readonly usedIconTemplate: _angular_core.Signal<_ngneers_controls_icon.IconTemplateType>;
|
|
68
|
+
constructor();
|
|
69
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnIcon, never>;
|
|
70
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnIcon, "ngn-icon", never, { "defaultIcon": { "alias": "defaultIcon"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export { GlobalIconTemplate, NgnIcon };
|
|
74
|
+
export type { DefaultIcon, IconTemplateContext, IconTemplateType };
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { TemplateRef } from '@angular/core';
|
|
3
|
+
import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
|
|
4
|
+
import * as _ngneers_controls_themes from '@ngneers/controls-themes';
|
|
5
|
+
import { NgnBase } from '@ngneers/controls/base';
|
|
6
|
+
|
|
7
|
+
type ContentTemplateType = {
|
|
8
|
+
$implicit: {
|
|
9
|
+
close: () => void;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
declare abstract class InplaceTemplates extends NgnBase<'inplace'> {
|
|
14
|
+
private readonly _userDisplayTemplate;
|
|
15
|
+
/**
|
|
16
|
+
* Set a custom template for the display.
|
|
17
|
+
* Can also be set using an `<ng-template>` element with `#display` template reference variable.
|
|
18
|
+
*/
|
|
19
|
+
readonly templateDisplay: _angular_core.InputSignal<TemplateRef<unknown> | null>;
|
|
20
|
+
protected readonly displayTemplate: _angular_core.Signal<TemplateRef<unknown> | null>;
|
|
21
|
+
/**
|
|
22
|
+
* Context for the display template.
|
|
23
|
+
*/
|
|
24
|
+
readonly templateDisplayContext: _angular_core.InputSignal<unknown>;
|
|
25
|
+
private readonly _userContentTemplate;
|
|
26
|
+
/**
|
|
27
|
+
* Set a custom template for the content.
|
|
28
|
+
* Can also be set using an `<ng-template>` element with `#content` template reference variable.
|
|
29
|
+
*/
|
|
30
|
+
readonly templateContent: _angular_core.InputSignal<TemplateRef<ContentTemplateType> | null>;
|
|
31
|
+
protected readonly contentTemplate: _angular_core.Signal<TemplateRef<ContentTemplateType> | null>;
|
|
32
|
+
/**
|
|
33
|
+
* Context for the content template.
|
|
34
|
+
*/
|
|
35
|
+
readonly templateContentContext: _angular_core.InputSignal<unknown>;
|
|
36
|
+
/**
|
|
37
|
+
* Types for the drawer templates.
|
|
38
|
+
*/
|
|
39
|
+
readonly templateTypes: {
|
|
40
|
+
/**
|
|
41
|
+
* Type of the template variable for the display template.
|
|
42
|
+
*/
|
|
43
|
+
content: ContentTemplateType;
|
|
44
|
+
} & {
|
|
45
|
+
$implicit: {
|
|
46
|
+
content: Partial<ContentTemplateType>;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InplaceTemplates, never>;
|
|
50
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InplaceTemplates, never, never, { "templateDisplay": { "alias": "templateDisplay"; "required": false; "isSignal": true; }; "templateDisplayContext": { "alias": "templateDisplayContext"; "required": false; "isSignal": true; }; "templateContent": { "alias": "templateContent"; "required": false; "isSignal": true; }; "templateContentContext": { "alias": "templateContentContext"; "required": false; "isSignal": true; }; }, {}, ["_userDisplayTemplate", "_userContentTemplate"], never, true, never>;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @category control
|
|
55
|
+
*/
|
|
56
|
+
declare class NgnInplace extends InplaceTemplates {
|
|
57
|
+
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"inplace", ["root", "content", "display", "disabled"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>>;
|
|
58
|
+
protected readonly closeContent: () => void;
|
|
59
|
+
/**
|
|
60
|
+
* Controls the visibility of the content.
|
|
61
|
+
*/
|
|
62
|
+
readonly contentVisible: _angular_core.ModelSignal<boolean>;
|
|
63
|
+
/**
|
|
64
|
+
* Whether the content is loaded lazily.
|
|
65
|
+
* @default true
|
|
66
|
+
*/
|
|
67
|
+
readonly lazy: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
68
|
+
/**
|
|
69
|
+
* Whether the content is cached when closed.
|
|
70
|
+
* @default false
|
|
71
|
+
*/
|
|
72
|
+
readonly cache: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
73
|
+
/**
|
|
74
|
+
* Explicitly apply disabled state styling
|
|
75
|
+
* @default false
|
|
76
|
+
*/
|
|
77
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
78
|
+
/**
|
|
79
|
+
* Switches to the content view.
|
|
80
|
+
*/
|
|
81
|
+
switchToContent(): void;
|
|
82
|
+
/**
|
|
83
|
+
* Switches to the display view.
|
|
84
|
+
*/
|
|
85
|
+
switchToDisplay(): void;
|
|
86
|
+
/**
|
|
87
|
+
* Toggles between the display and content views.
|
|
88
|
+
*/
|
|
89
|
+
toggle(): void;
|
|
90
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnInplace, never>;
|
|
91
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnInplace, "ngn-inplace", never, { "contentVisible": { "alias": "contentVisible"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "cache": { "alias": "cache"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "contentVisible": "contentVisibleChange"; }, never, never, true, never>;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export { NgnInplace };
|
|
95
|
+
export type { ContentTemplateType };
|