@ngneers/controls 0.0.1-pre5 → 0.0.1-pre7
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/fesm2022/ngneers-controls-accordion.mjs +33 -33
- package/fesm2022/ngneers-controls-accordion.mjs.map +1 -1
- package/fesm2022/ngneers-controls-api-ng.mjs +22 -19
- package/fesm2022/ngneers-controls-api-ng.mjs.map +1 -1
- package/fesm2022/ngneers-controls-api-resize.mjs +706 -0
- package/fesm2022/ngneers-controls-api-resize.mjs.map +1 -0
- package/fesm2022/ngneers-controls-avatar.mjs +13 -13
- package/fesm2022/ngneers-controls-avatar.mjs.map +1 -1
- package/fesm2022/ngneers-controls-base.mjs +89 -64
- package/fesm2022/ngneers-controls-base.mjs.map +1 -1
- package/fesm2022/ngneers-controls-breadcrumb.mjs +19 -19
- package/fesm2022/ngneers-controls-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngneers-controls-button-group.mjs +8 -8
- package/fesm2022/ngneers-controls-button-group.mjs.map +1 -1
- package/fesm2022/ngneers-controls-button.mjs +15 -10
- package/fesm2022/ngneers-controls-button.mjs.map +1 -1
- package/fesm2022/{ngneers-controls-calendar-time-BEeJIqIX.mjs → ngneers-controls-calendar-time-CKAqRgOP.mjs} +9 -9
- package/fesm2022/{ngneers-controls-calendar-time-BEeJIqIX.mjs.map → ngneers-controls-calendar-time-CKAqRgOP.mjs.map} +1 -1
- package/fesm2022/ngneers-controls-calendar.mjs +56 -56
- package/fesm2022/ngneers-controls-calendar.mjs.map +1 -1
- package/fesm2022/ngneers-controls-checkbox.mjs +9 -9
- package/fesm2022/ngneers-controls-checkbox.mjs.map +1 -1
- package/fesm2022/ngneers-controls-chip.mjs +7 -7
- package/fesm2022/ngneers-controls-chip.mjs.map +1 -1
- package/fesm2022/ngneers-controls-default-icons.mjs +61 -0
- package/fesm2022/ngneers-controls-default-icons.mjs.map +1 -0
- package/fesm2022/ngneers-controls-defer.mjs +10 -10
- package/fesm2022/ngneers-controls-defer.mjs.map +1 -1
- package/fesm2022/ngneers-controls-dialog.mjs +38 -40
- package/fesm2022/ngneers-controls-dialog.mjs.map +1 -1
- package/fesm2022/ngneers-controls-directives.mjs +45 -39
- package/fesm2022/ngneers-controls-directives.mjs.map +1 -1
- package/fesm2022/ngneers-controls-drawer.mjs +29 -29
- package/fesm2022/ngneers-controls-drawer.mjs.map +1 -1
- package/fesm2022/ngneers-controls-edit-inplace.mjs +16 -16
- package/fesm2022/ngneers-controls-edit-inplace.mjs.map +1 -1
- package/fesm2022/ngneers-controls-filter.mjs +192 -44
- package/fesm2022/ngneers-controls-filter.mjs.map +1 -1
- package/fesm2022/{ngneers-controls-i18n-de-CdTPeBiR.mjs → ngneers-controls-i18n-de-CF0xTWEX.mjs} +9 -5
- package/fesm2022/ngneers-controls-i18n-de-CF0xTWEX.mjs.map +1 -0
- package/fesm2022/{ngneers-controls-i18n-en-Cfp2pOLY.mjs → ngneers-controls-i18n-en-8B7xAjH2.mjs} +9 -5
- package/fesm2022/ngneers-controls-i18n-en-8B7xAjH2.mjs.map +1 -0
- package/fesm2022/ngneers-controls-i18n.mjs +5 -5
- package/fesm2022/ngneers-controls-i18n.mjs.map +1 -1
- package/fesm2022/ngneers-controls-icon.mjs +111 -47
- package/fesm2022/ngneers-controls-icon.mjs.map +1 -1
- package/fesm2022/ngneers-controls-inplace.mjs +18 -18
- package/fesm2022/ngneers-controls-inplace.mjs.map +1 -1
- package/fesm2022/ngneers-controls-input-field.mjs +16 -16
- package/fesm2022/ngneers-controls-input-field.mjs.map +1 -1
- package/fesm2022/ngneers-controls-input-mask.mjs +8 -8
- package/fesm2022/ngneers-controls-input-mask.mjs.map +1 -1
- package/fesm2022/ngneers-controls-input.mjs +6 -6
- package/fesm2022/ngneers-controls-input.mjs.map +1 -1
- package/fesm2022/ngneers-controls-item-view.mjs +33 -33
- package/fesm2022/ngneers-controls-item-view.mjs.map +1 -1
- package/fesm2022/ngneers-controls-list-box.mjs +31 -31
- package/fesm2022/ngneers-controls-list-box.mjs.map +1 -1
- package/fesm2022/ngneers-controls-menu.mjs +33 -33
- package/fesm2022/ngneers-controls-menu.mjs.map +1 -1
- package/fesm2022/ngneers-controls-message.mjs +4 -4
- package/fesm2022/ngneers-controls-message.mjs.map +1 -1
- package/fesm2022/ngneers-controls-paginator.mjs +13 -13
- package/fesm2022/ngneers-controls-paginator.mjs.map +1 -1
- package/fesm2022/ngneers-controls-popover.mjs +21 -16
- package/fesm2022/ngneers-controls-popover.mjs.map +1 -1
- package/fesm2022/ngneers-controls-progress.mjs +16 -16
- package/fesm2022/ngneers-controls-progress.mjs.map +1 -1
- package/fesm2022/ngneers-controls-scroll-shadow.mjs +54 -0
- package/fesm2022/ngneers-controls-scroll-shadow.mjs.map +1 -0
- package/fesm2022/ngneers-controls-scroller.mjs +74 -39
- package/fesm2022/ngneers-controls-scroller.mjs.map +1 -1
- package/fesm2022/ngneers-controls-select-button.mjs +7 -7
- package/fesm2022/ngneers-controls-select-button.mjs.map +1 -1
- package/fesm2022/ngneers-controls-select.mjs +48 -47
- package/fesm2022/ngneers-controls-select.mjs.map +1 -1
- package/fesm2022/ngneers-controls-slider.mjs +11 -11
- package/fesm2022/ngneers-controls-slider.mjs.map +1 -1
- package/fesm2022/ngneers-controls-spinner.mjs +7 -7
- package/fesm2022/ngneers-controls-spinner.mjs.map +1 -1
- package/fesm2022/ngneers-controls-splitter.mjs +141 -328
- package/fesm2022/ngneers-controls-splitter.mjs.map +1 -1
- package/fesm2022/ngneers-controls-switch.mjs +3 -3
- package/fesm2022/ngneers-controls-switch.mjs.map +1 -1
- package/fesm2022/ngneers-controls-table.mjs +1456 -82
- package/fesm2022/ngneers-controls-table.mjs.map +1 -1
- package/fesm2022/ngneers-controls-tabs.mjs +41 -40
- package/fesm2022/ngneers-controls-tabs.mjs.map +1 -1
- package/fesm2022/ngneers-controls-tag.mjs +4 -4
- package/fesm2022/ngneers-controls-tag.mjs.map +1 -1
- package/fesm2022/ngneers-controls-toast.mjs +19 -19
- package/fesm2022/ngneers-controls-toast.mjs.map +1 -1
- package/fesm2022/ngneers-controls-toggle-button.mjs +10 -10
- package/fesm2022/ngneers-controls-toggle-button.mjs.map +1 -1
- package/fesm2022/ngneers-controls-tooltip.mjs +74 -38
- package/fesm2022/ngneers-controls-tooltip.mjs.map +1 -1
- package/fesm2022/ngneers-controls-utils-ng.mjs +9 -9
- package/fesm2022/ngneers-controls-utils-ng.mjs.map +1 -1
- package/fesm2022/ngneers-controls-utils.mjs +1 -1
- package/fesm2022/ngneers-controls-utils.mjs.map +1 -1
- package/package.json +34 -12
- package/types/ngneers-controls-accordion.d.ts +6 -4
- package/types/ngneers-controls-api-ng.d.ts +7 -2
- package/types/ngneers-controls-api-resize.d.ts +318 -0
- package/types/ngneers-controls-api.d.ts +2 -2
- package/types/ngneers-controls-base.d.ts +8 -0
- package/types/ngneers-controls-breadcrumb.d.ts +6 -4
- package/types/ngneers-controls-button.d.ts +13 -8
- package/types/ngneers-controls-calendar.d.ts +5 -1
- package/types/ngneers-controls-checkbox.d.ts +6 -4
- package/types/ngneers-controls-chip.d.ts +3 -1
- package/types/ngneers-controls-default-icons.d.ts +5 -0
- package/types/ngneers-controls-directives.d.ts +7 -1
- package/types/ngneers-controls-drawer.d.ts +7 -1
- package/types/ngneers-controls-edit-inplace.d.ts +4 -0
- package/types/ngneers-controls-filter.d.ts +52 -3
- package/types/ngneers-controls-i18n.d.ts +4 -0
- package/types/ngneers-controls-icon.d.ts +23 -40
- package/types/ngneers-controls-input-field.d.ts +7 -1
- package/types/ngneers-controls-item-view.d.ts +4 -2
- package/types/ngneers-controls-list-box.d.ts +5 -1
- package/types/ngneers-controls-menu.d.ts +4 -2
- package/types/ngneers-controls-message.d.ts +3 -1
- package/types/ngneers-controls-paginator.d.ts +4 -0
- package/types/ngneers-controls-popover.d.ts +2 -1
- package/types/ngneers-controls-scroll-shadow.d.ts +16 -0
- package/types/ngneers-controls-scroller.d.ts +12 -2
- package/types/ngneers-controls-select.d.ts +11 -12
- package/types/ngneers-controls-spinner.d.ts +1 -1
- package/types/ngneers-controls-splitter.d.ts +29 -59
- package/types/ngneers-controls-table.d.ts +380 -24
- package/types/ngneers-controls-tabs.d.ts +4 -2
- package/types/ngneers-controls-tag.d.ts +3 -1
- package/types/ngneers-controls-toast.d.ts +5 -3
- package/types/ngneers-controls-toggle-button.d.ts +5 -3
- package/types/ngneers-controls-tooltip.d.ts +7 -1
- package/fesm2022/ngneers-controls-i18n-de-CdTPeBiR.mjs.map +0 -1
- package/fesm2022/ngneers-controls-i18n-en-Cfp2pOLY.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-calendar-z5xA9wTT.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-calendar-z5xA9wTT.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-check-DdAQ9k-T.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-check-DdAQ9k-T.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-chevron_down-HO-z-xOr.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-chevron_down-HO-z-xOr.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-chevron_left-CC5psi16.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-chevron_left-CC5psi16.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-chevron_right-BRxlzx4G.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-chevron_right-BRxlzx4G.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-chevron_up-cqhPO7g2.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-chevron_up-cqhPO7g2.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-ellipsis-DXIGA1sk.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-ellipsis-DXIGA1sk.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-filter-oU7E6Xgr.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-filter-oU7E6Xgr.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-filter_solid-CqIKuR4N.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-filter_solid-CqIKuR4N.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-magnifying_glass-T4Hzbkig.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-magnifying_glass-T4Hzbkig.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-minus-oGDEFO4E.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-minus-oGDEFO4E.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-sort-CRD4tafz.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-sort-CRD4tafz.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-sort_down-DiFB1P6R.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-sort_down-DiFB1P6R.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-sort_up-Bq_q3hIi.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-sort_up-Bq_q3hIi.mjs.map +0 -1
- package/fesm2022/ngneers-controls-icon-xmark-BZKZORiu.mjs +0 -4
- package/fesm2022/ngneers-controls-icon-xmark-BZKZORiu.mjs.map +0 -1
|
@@ -50,7 +50,7 @@ type NgnFilterOutput<T> = NgnFilterConfig & {
|
|
|
50
50
|
* @category control
|
|
51
51
|
*/
|
|
52
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", "
|
|
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", "remove-btn", "condition-divider", "footer", "footer-actions", "active-indicator"], readonly [_ngneers_controls_themes.ControlTemplate<"popover", ["root", "content", "content-closing"], 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"], 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", "box-icon-visible", "invalid"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>, _ngneers_controls_themes.ControlTemplate<"scroller", ["root", "virtual", "item", "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[]>[]>, _ngneers_controls_themes.ControlTemplate<"calendar", ["root", "inline", "input", "input-field", "details", "header", "navigation", "days", "week-day", "day", "day-selected", "day-today", "day-other-month", "months", "month", "current-month", "current-year", "time", "next", "previous"], readonly [_ngneers_controls_themes.ControlTemplate<"button", ["root", "inline", "loading", `kind-${string}`, `color-${string}`], 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"], 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", "box-icon-visible", "invalid"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>, _ngneers_controls_themes.ControlTemplate<"scroller", ["root", "virtual", "item", "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<"input", ["root", "invalid", "empty"], 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[]>[]>]>]>]>>;
|
|
54
54
|
protected readonly i18n: _ngneers_signal_translate.TranslationsSignal<{
|
|
55
55
|
calendar: {
|
|
56
56
|
today: string;
|
|
@@ -96,10 +96,14 @@ declare class NgnFilter<T = unknown> extends ValueControlBase<'filter', NgnFilte
|
|
|
96
96
|
addCondition: string;
|
|
97
97
|
removeCondition: string;
|
|
98
98
|
clear: string;
|
|
99
|
+
apply: string;
|
|
100
|
+
cancel: string;
|
|
99
101
|
matchModeLabel: string;
|
|
100
102
|
match: {
|
|
101
103
|
all: string;
|
|
102
104
|
any: string;
|
|
105
|
+
and: string;
|
|
106
|
+
or: string;
|
|
103
107
|
};
|
|
104
108
|
selected: string;
|
|
105
109
|
conditions: string;
|
|
@@ -136,6 +140,7 @@ declare class NgnFilter<T = unknown> extends ValueControlBase<'filter', NgnFilte
|
|
|
136
140
|
};
|
|
137
141
|
}, "_">;
|
|
138
142
|
protected readonly unsafeI18n: (key: string) => _angular_core.Signal<string>;
|
|
143
|
+
private readonly _destroyRef;
|
|
139
144
|
/** Data to filter. */
|
|
140
145
|
readonly data: _angular_core.InputSignal<readonly T[]>;
|
|
141
146
|
/** Datatype of the values in {@link data}. */
|
|
@@ -164,6 +169,16 @@ declare class NgnFilter<T = unknown> extends ValueControlBase<'filter', NgnFilte
|
|
|
164
169
|
* When false, only the filter configuration is emitted (useful for server-side filtering).
|
|
165
170
|
*/
|
|
166
171
|
readonly filterLocally: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
172
|
+
/**
|
|
173
|
+
* When true (default), filters apply automatically as the user types/selects.
|
|
174
|
+
* When false, the user must click "Apply" to commit the filter.
|
|
175
|
+
*/
|
|
176
|
+
readonly autoApply: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
177
|
+
/**
|
|
178
|
+
* Debounce time in milliseconds for auto-apply mode.
|
|
179
|
+
* Only relevant when {@link autoApply} is `true`.
|
|
180
|
+
*/
|
|
181
|
+
readonly autoApplyDebounce: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
167
182
|
/** Options for the popover (when {@link mode} is not `inline`). */
|
|
168
183
|
readonly popoverOptions: _angular_core.InputSignal<PopoverOptions>;
|
|
169
184
|
protected readonly appliedPopoverOptions: _angular_core.Signal<PopoverOptions>;
|
|
@@ -172,11 +187,24 @@ declare class NgnFilter<T = unknown> extends ValueControlBase<'filter', NgnFilte
|
|
|
172
187
|
/** Emits the filtered data whenever local filtering is enabled. */
|
|
173
188
|
readonly filterResultChange: _angular_core.OutputEmitterRef<readonly T[]>;
|
|
174
189
|
private readonly _popover;
|
|
190
|
+
/**
|
|
191
|
+
* Internal working config that the template binds to.
|
|
192
|
+
* In auto-apply mode, this syncs to value() via debounce.
|
|
193
|
+
* In manual mode, only apply() commits this to value().
|
|
194
|
+
*/
|
|
195
|
+
protected readonly workingConfig: _angular_core.WritableSignal<NgnFilterConfig | null>;
|
|
196
|
+
/** Snapshot of value() taken when popover opens in manual mode, for cancel to restore. */
|
|
197
|
+
private _snapshotConfig;
|
|
198
|
+
/** Debounce timer handle for auto-apply. */
|
|
199
|
+
private _debounceTimer;
|
|
200
|
+
/** Whether there is an active filter applied. */
|
|
201
|
+
protected readonly hasActiveFilter: _angular_core.Signal<boolean>;
|
|
175
202
|
private createCondition;
|
|
176
203
|
private defaultConfig;
|
|
177
204
|
/**
|
|
178
205
|
* Config used for UI rendering.
|
|
179
|
-
*
|
|
206
|
+
* Always reads from workingConfig (the live editing state).
|
|
207
|
+
* Falls back to a default config when null.
|
|
180
208
|
*/
|
|
181
209
|
protected readonly templateConfig: _angular_core.Signal<NgnFilterConfig>;
|
|
182
210
|
protected readonly templateListSelection: _angular_core.Signal<readonly string[]>;
|
|
@@ -278,18 +306,39 @@ declare class NgnFilter<T = unknown> extends ValueControlBase<'filter', NgnFilte
|
|
|
278
306
|
protected readonly resolvedListOptions: _angular_core.Signal<readonly NgnItem[]>;
|
|
279
307
|
protected readonly matchModeOptions: readonly NgnItem[];
|
|
280
308
|
protected readonly inputType: _angular_core.Signal<"number" | "date" | "text" | "datetime-local">;
|
|
309
|
+
protected readonly isDateType: _angular_core.Signal<boolean>;
|
|
310
|
+
protected readonly isShowTime: _angular_core.Signal<boolean>;
|
|
311
|
+
/** Parse a rawValue string to a Date for the calendar component. */
|
|
312
|
+
protected parseRawDate(rawValue: string | null): Date | null;
|
|
313
|
+
/** Convert a Date from the calendar to a rawValue string. */
|
|
314
|
+
protected dateToRaw(date: Date | null): string | null;
|
|
281
315
|
protected readonly summaryText: _angular_core.Signal<string | undefined>;
|
|
282
316
|
protected readonly activeConditionConfigs: _angular_core.Signal<readonly NgnFilterConditionConfig[]>;
|
|
283
317
|
protected readonly activeConditions: _angular_core.Signal<readonly NgnFilterCondition[]>;
|
|
284
318
|
protected readonly filteredData: _angular_core.Signal<readonly T[]>;
|
|
319
|
+
/** The current match mode label for the condition divider */
|
|
320
|
+
protected readonly matchModeLabel: _angular_core.Signal<string>;
|
|
285
321
|
constructor();
|
|
322
|
+
/**
|
|
323
|
+
* Commits the working config to the actual value, with optional debounce.
|
|
324
|
+
* Called after every working config change.
|
|
325
|
+
*/
|
|
326
|
+
private commitWorkingConfig;
|
|
327
|
+
/** Updates the working config and optionally auto-applies. */
|
|
328
|
+
private updateWorkingConfig;
|
|
329
|
+
protected toggleMatchMode(): void;
|
|
286
330
|
protected setMatchMode(value: unknown): void;
|
|
287
331
|
protected operatorRequiresValue(operator: NgnFilterOperatorId): boolean;
|
|
288
332
|
protected setOperator(index: number, operator: NgnFilterOperatorId | null): void;
|
|
289
333
|
protected setRawValue(index: number, rawValue: string | null): void;
|
|
334
|
+
protected setDateValue(index: number, date: Date | null): void;
|
|
290
335
|
protected addCondition(): void;
|
|
291
336
|
protected removeCondition(index: number): void;
|
|
292
337
|
protected setListSelection(value: unknown): void;
|
|
338
|
+
/** Applies the working config (manual mode). */
|
|
339
|
+
protected apply(): void;
|
|
340
|
+
/** Cancels changes and restores the snapshot (manual mode). */
|
|
341
|
+
protected cancelChanges(): void;
|
|
293
342
|
protected clear(): void;
|
|
294
343
|
/** Shows the filter popup. Only works when {@link mode} is not `inline`. */
|
|
295
344
|
show(): void;
|
|
@@ -297,7 +346,7 @@ declare class NgnFilter<T = unknown> extends ValueControlBase<'filter', NgnFilte
|
|
|
297
346
|
hide(): void;
|
|
298
347
|
protected onKeyDown(event: KeyboardEvent): void;
|
|
299
348
|
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>;
|
|
349
|
+
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; }; "autoApply": { "alias": "autoApply"; "required": false; "isSignal": true; }; "autoApplyDebounce": { "alias": "autoApplyDebounce"; "required": false; "isSignal": true; }; "popoverOptions": { "alias": "popoverOptions"; "required": false; "isSignal": true; }; }, { "filterChange": "filterChange"; "filterResultChange": "filterResultChange"; }, never, never, true, never>;
|
|
301
350
|
}
|
|
302
351
|
|
|
303
352
|
export { NgnFilter };
|
|
@@ -47,10 +47,14 @@ declare const _default: {
|
|
|
47
47
|
addCondition: string;
|
|
48
48
|
removeCondition: string;
|
|
49
49
|
clear: string;
|
|
50
|
+
apply: string;
|
|
51
|
+
cancel: string;
|
|
50
52
|
matchModeLabel: string;
|
|
51
53
|
match: {
|
|
52
54
|
all: string;
|
|
53
55
|
any: string;
|
|
56
|
+
and: string;
|
|
57
|
+
or: string;
|
|
54
58
|
};
|
|
55
59
|
selected: string;
|
|
56
60
|
conditions: string;
|
|
@@ -1,36 +1,19 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { TemplateRef,
|
|
3
|
-
import { IconType } from '@ngneers/controls-custom-types';
|
|
2
|
+
import { OnDestroy, TemplateRef, InjectionToken, Provider } from '@angular/core';
|
|
3
|
+
import { IconType, NgnIconEntry } from '@ngneers/controls-custom-types';
|
|
4
|
+
export { NgnIconEntry } from '@ngneers/controls-custom-types';
|
|
4
5
|
import * as _ngneers_controls_icon from '@ngneers/controls/icon';
|
|
5
|
-
import * as _angular_platform_browser from '@angular/platform-browser';
|
|
6
6
|
import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
|
|
7
7
|
import * as _ngneers_controls_themes from '@ngneers/controls-themes';
|
|
8
|
+
import { SafeHtml } from '@angular/platform-browser';
|
|
8
9
|
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
|
-
};
|
|
10
|
+
import { IconifyIcon } from '@iconify/types';
|
|
27
11
|
|
|
28
12
|
type IconTemplateContext = {
|
|
29
13
|
$implicit: {
|
|
30
14
|
icon: IconType;
|
|
31
15
|
};
|
|
32
16
|
};
|
|
33
|
-
type DefaultIcon = keyof typeof DEFAULT_ICONS;
|
|
34
17
|
|
|
35
18
|
type IconTemplateType = TemplateRef<IconTemplateContext>;
|
|
36
19
|
declare class GlobalIconTemplate implements OnDestroy {
|
|
@@ -42,6 +25,14 @@ declare class GlobalIconTemplate implements OnDestroy {
|
|
|
42
25
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<GlobalIconTemplate>;
|
|
43
26
|
}
|
|
44
27
|
|
|
28
|
+
declare const NGN_ICON_KEYS: readonly ["accordion-collapse", "accordion-expand", "breadcrumb-separator", "breadcrumb-overflow", "calendar-trigger", "calendar-previous-month", "calendar-next-month", "checkbox-checked", "checkbox-indeterminate", "chip-remove", "dialog-close", "drawer-close", "dropdown-toggle", "edit-confirm", "filter-active", "filter-inactive", "filter-remove", "input-clear", "menu-submenu", "paginator-previous", "paginator-next", "search", "sort-neutral", "sort-ascending", "sort-descending", "table-group-toggle", "tabs-scroll-left", "tabs-scroll-right", "toast-close"];
|
|
29
|
+
type NgnIconKey = (typeof NGN_ICON_KEYS)[number];
|
|
30
|
+
type NgnIconRegistry = Record<NgnIconKey, IconifyIcon | NgnIconEntry>;
|
|
31
|
+
type NgnCustomIconRegistry = Record<NgnIconKey, IconType>;
|
|
32
|
+
declare const NGN_ICON_REGISTRY: InjectionToken<NgnIconRegistry | NgnCustomIconRegistry>;
|
|
33
|
+
declare const NGN_CUSTOM_ICONS: InjectionToken<boolean>;
|
|
34
|
+
declare function provideNgnCustomIcons(registry: NgnCustomIconRegistry): Provider[];
|
|
35
|
+
|
|
45
36
|
/**
|
|
46
37
|
* @category control
|
|
47
38
|
*/
|
|
@@ -49,26 +40,18 @@ declare class NgnIcon extends NgnBase<'icon'> {
|
|
|
49
40
|
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
41
|
private readonly _globalIconTemplate;
|
|
51
42
|
private readonly _sanitizer;
|
|
52
|
-
readonly
|
|
53
|
-
readonly
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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>;
|
|
43
|
+
private readonly _registry;
|
|
44
|
+
private readonly _isCustom;
|
|
45
|
+
readonly defaultIcon: _angular_core.InputSignal<"accordion-collapse" | "accordion-expand" | "breadcrumb-separator" | "breadcrumb-overflow" | "calendar-trigger" | "calendar-previous-month" | "calendar-next-month" | "checkbox-checked" | "checkbox-indeterminate" | "chip-remove" | "dialog-close" | "drawer-close" | "dropdown-toggle" | "edit-confirm" | "filter-active" | "filter-inactive" | "filter-remove" | "input-clear" | "menu-submenu" | "paginator-previous" | "paginator-next" | "search" | "sort-neutral" | "sort-ascending" | "sort-descending" | "table-group-toggle" | "tabs-scroll-left" | "tabs-scroll-right" | "toast-close" | undefined>;
|
|
46
|
+
readonly icon: _angular_core.InputSignal<IconifyIcon | NgnIconEntry | undefined>;
|
|
47
|
+
protected readonly iconSvg: _angular_core.Signal<SafeHtml | null>;
|
|
48
|
+
protected readonly defaultIconSvg: _angular_core.Signal<SafeHtml | null>;
|
|
49
|
+
protected readonly customDefaultIcon: _angular_core.Signal<IconifyIcon | NgnIconEntry | null>;
|
|
50
|
+
protected readonly iconTemplate: _angular_core.Signal<_ngneers_controls_icon.IconTemplateType>;
|
|
68
51
|
constructor();
|
|
69
52
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnIcon, never>;
|
|
70
53
|
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
54
|
}
|
|
72
55
|
|
|
73
|
-
export { GlobalIconTemplate, NgnIcon };
|
|
74
|
-
export type {
|
|
56
|
+
export { GlobalIconTemplate, NGN_CUSTOM_ICONS, NGN_ICON_KEYS, NGN_ICON_REGISTRY, NgnIcon, provideNgnCustomIcons };
|
|
57
|
+
export type { IconTemplateContext, IconTemplateType, NgnCustomIconRegistry, NgnIconKey, NgnIconRegistry };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
|
|
2
|
+
import * as _iconify_types from '@iconify/types';
|
|
1
3
|
import * as _angular_core from '@angular/core';
|
|
2
4
|
import { InjectionToken } from '@angular/core';
|
|
3
5
|
import * as _ngneers_signal_translate from '@ngneers/signal-translate';
|
|
@@ -55,10 +57,14 @@ declare class NgnInputField extends NgnBase<'inputField'> {
|
|
|
55
57
|
addCondition: string;
|
|
56
58
|
removeCondition: string;
|
|
57
59
|
clear: string;
|
|
60
|
+
apply: string;
|
|
61
|
+
cancel: string;
|
|
58
62
|
matchModeLabel: string;
|
|
59
63
|
match: {
|
|
60
64
|
all: string;
|
|
61
65
|
any: string;
|
|
66
|
+
and: string;
|
|
67
|
+
or: string;
|
|
62
68
|
};
|
|
63
69
|
selected: string;
|
|
64
70
|
conditions: string;
|
|
@@ -124,7 +130,7 @@ declare class NgnInputField extends NgnBase<'inputField'> {
|
|
|
124
130
|
/**
|
|
125
131
|
* Custom icon for the clear button. Use with `showClearButton`.
|
|
126
132
|
*/
|
|
127
|
-
readonly iconClearButton: _angular_core.InputSignal<
|
|
133
|
+
readonly iconClearButton: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
|
|
128
134
|
/**
|
|
129
135
|
* Tabindex for the input field itself.
|
|
130
136
|
* When another focusable (input) element is present inside the input field, this should be set to -1.
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
|
|
2
|
+
import { IconType } from '@ngneers/controls-custom-types';
|
|
3
|
+
import * as _iconify_types from '@iconify/types';
|
|
1
4
|
import * as _angular_core from '@angular/core';
|
|
2
5
|
import { TemplateRef, AfterViewInit } from '@angular/core';
|
|
3
6
|
import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
|
|
4
7
|
import * as _ngneers_controls_themes from '@ngneers/controls-themes';
|
|
5
8
|
import { NgnBase } from '@ngneers/controls/base';
|
|
6
|
-
import { IconType } from '@ngneers/controls-custom-types';
|
|
7
9
|
|
|
8
10
|
type OverflowStrategy = 'start' | 'end' | 'center' | 'aroundIndex';
|
|
9
11
|
|
|
@@ -158,7 +160,7 @@ declare class NgnItemView<T extends object, IdField extends keyof T> extends Ite
|
|
|
158
160
|
/**
|
|
159
161
|
* A separator icon to be displayed between items.
|
|
160
162
|
*/
|
|
161
|
-
readonly iconItemSeparator: _angular_core.InputSignal<
|
|
163
|
+
readonly iconItemSeparator: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
|
|
162
164
|
/**
|
|
163
165
|
* Strategy to use when there are more items than can be displayed in the available space.
|
|
164
166
|
* The value determines where the items should start to overflow.
|
|
@@ -126,10 +126,14 @@ declare class NgnListBox<Items extends readonly NgnItem[], Multiple extends bool
|
|
|
126
126
|
addCondition: string;
|
|
127
127
|
removeCondition: string;
|
|
128
128
|
clear: string;
|
|
129
|
+
apply: string;
|
|
130
|
+
cancel: string;
|
|
129
131
|
matchModeLabel: string;
|
|
130
132
|
match: {
|
|
131
133
|
all: string;
|
|
132
134
|
any: string;
|
|
135
|
+
and: string;
|
|
136
|
+
or: string;
|
|
133
137
|
};
|
|
134
138
|
selected: string;
|
|
135
139
|
conditions: string;
|
|
@@ -165,7 +169,7 @@ declare class NgnListBox<Items extends readonly NgnItem[], Multiple extends bool
|
|
|
165
169
|
close: string;
|
|
166
170
|
};
|
|
167
171
|
}, "_">;
|
|
168
|
-
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_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", "
|
|
172
|
+
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_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", "box-icon-visible", "invalid"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>, _ngneers_controls_themes.ControlTemplate<"scroller", ["root", "virtual", "item", "item-sticky"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>]>>;
|
|
169
173
|
private readonly _scroller;
|
|
170
174
|
readonly items: _angular_core.InputSignal<Items>;
|
|
171
175
|
readonly scrollToSelectedItemOnInit: _angular_core.InputSignal<boolean | ScrollLogicalPosition>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { OnDestroy, TemplateRef } from '@angular/core';
|
|
3
3
|
import { NgnActionItem } from '@ngneers/controls/api';
|
|
4
|
+
import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
|
|
5
|
+
import * as _iconify_types from '@iconify/types';
|
|
4
6
|
import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
|
|
5
7
|
import { Openable, Anchor } from '@ngneers/controls/api/ng';
|
|
6
8
|
import * as _ngneers_controls_themes from '@ngneers/controls-themes';
|
|
@@ -84,7 +86,7 @@ declare abstract class MenuTemplates extends NgnBase<'menu'> {
|
|
|
84
86
|
* @category control
|
|
85
87
|
*/
|
|
86
88
|
declare class NgnMenu extends MenuTemplates implements Openable {
|
|
87
|
-
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"menu", ["root", "submenu", "popover", "item", "item-opened", "icon-children", "separator"], readonly [_ngneers_controls_themes.ControlTemplate<"popover", ["root", "content", "content-closing"
|
|
89
|
+
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"menu", ["root", "submenu", "popover", "item", "item-opened", "icon-children", "separator"], readonly [_ngneers_controls_themes.ControlTemplate<"popover", ["root", "content", "content-closing"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>]>>;
|
|
88
90
|
protected readonly elementId: _angular_core.InputSignal<string>;
|
|
89
91
|
/**
|
|
90
92
|
* The element to which the menu is anchored. Required if `popover` is true.
|
|
@@ -111,7 +113,7 @@ declare class NgnMenu extends MenuTemplates implements Openable {
|
|
|
111
113
|
/**
|
|
112
114
|
* Icon type for children indicator (submenu indicator). If not set, a default icon will be used.
|
|
113
115
|
*/
|
|
114
|
-
readonly iconSubmenuIndicator: _angular_core.InputSignal<
|
|
116
|
+
readonly iconSubmenuIndicator: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
|
|
115
117
|
/**
|
|
116
118
|
* Whether this menu is a submenu. Used internally.
|
|
117
119
|
* @internal
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
+
import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
|
|
3
|
+
import * as _iconify_types from '@iconify/types';
|
|
2
4
|
import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
|
|
3
5
|
import * as _ngneers_controls_themes from '@ngneers/controls-themes';
|
|
4
6
|
import { NgnBase } from '@ngneers/controls/base';
|
|
@@ -11,7 +13,7 @@ declare class NgnMessage extends NgnBase<'message'> {
|
|
|
11
13
|
/**
|
|
12
14
|
* Set an icon to display before the text.
|
|
13
15
|
*/
|
|
14
|
-
readonly icon: i0.InputSignal<
|
|
16
|
+
readonly icon: i0.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
|
|
15
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgnMessage, never>;
|
|
16
18
|
static ɵcmp: i0.ɵɵComponentDeclaration<NgnMessage, "ngn-message", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
17
19
|
}
|
|
@@ -76,10 +76,14 @@ declare class NgnPaginator extends NgnBase<'paginator'> {
|
|
|
76
76
|
addCondition: string;
|
|
77
77
|
removeCondition: string;
|
|
78
78
|
clear: string;
|
|
79
|
+
apply: string;
|
|
80
|
+
cancel: string;
|
|
79
81
|
matchModeLabel: string;
|
|
80
82
|
match: {
|
|
81
83
|
all: string;
|
|
82
84
|
any: string;
|
|
85
|
+
and: string;
|
|
86
|
+
or: string;
|
|
83
87
|
};
|
|
84
88
|
selected: string;
|
|
85
89
|
conditions: string;
|
|
@@ -31,7 +31,7 @@ type PopoverOptions = {
|
|
|
31
31
|
* @category control
|
|
32
32
|
*/
|
|
33
33
|
declare class NgnPopover extends NgnBase<'popover'> implements Openable {
|
|
34
|
-
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"popover", ["root", "content", "content-closing"
|
|
34
|
+
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"popover", ["root", "content", "content-closing"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>>;
|
|
35
35
|
/**
|
|
36
36
|
* Emits when the popover has fully closed.
|
|
37
37
|
*/
|
|
@@ -76,6 +76,7 @@ declare class NgnPopover extends NgnBase<'popover'> implements Openable {
|
|
|
76
76
|
padding?: number;
|
|
77
77
|
}>;
|
|
78
78
|
private readonly _injector;
|
|
79
|
+
private readonly _cdr;
|
|
79
80
|
private readonly _popoverRef;
|
|
80
81
|
private readonly _popover;
|
|
81
82
|
private readonly _autoPos;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
|
|
3
|
+
import * as _ngneers_controls_themes from '@ngneers/controls-themes';
|
|
4
|
+
|
|
5
|
+
declare class NgnScrollShadow {
|
|
6
|
+
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"scrollShadow", ["root", "scrolled-start", "scrolled-end", "scrolled-top", "scrolled-bottom"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>>;
|
|
7
|
+
private readonly _el;
|
|
8
|
+
private readonly _injector;
|
|
9
|
+
readonly ngnScrollShadow: _angular_core.InputSignal<"horizontal" | "vertical" | "both">;
|
|
10
|
+
readonly scrollShadowTarget: _angular_core.InputSignal<HTMLElement | undefined>;
|
|
11
|
+
constructor();
|
|
12
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnScrollShadow, never>;
|
|
13
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgnScrollShadow, "[ngnScrollShadow]", never, { "ngnScrollShadow": { "alias": "ngnScrollShadow"; "required": false; "isSignal": true; }; "scrollShadowTarget": { "alias": "scrollShadowTarget"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { NgnScrollShadow };
|
|
@@ -86,8 +86,18 @@ declare class NgnScroller<T> extends ScrollerTemplates<T> {
|
|
|
86
86
|
* If set, the scroller will stick the items with a truthy value for the specified field to the top of the scroller.
|
|
87
87
|
*/
|
|
88
88
|
readonly fieldSticky: _angular_core.InputSignal<AllKeysOfUnion<T> | null>;
|
|
89
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Viewport size — tracks the scroll ancestor's dimensions so that virtual
|
|
91
|
+
* scrolling works when an outer element handles overflow (e.g. table wrapper).
|
|
92
|
+
*/
|
|
93
|
+
private readonly _viewportSize;
|
|
90
94
|
private readonly _itemHeightPx;
|
|
95
|
+
/**
|
|
96
|
+
* Vertical offset between the scroll container's top and the scroller element.
|
|
97
|
+
* Non-zero when a parent (e.g. table wrapper) owns the scroll and the scroller
|
|
98
|
+
* is positioned below other content (e.g. a sticky header row).
|
|
99
|
+
*/
|
|
100
|
+
private readonly _scrollOffset;
|
|
91
101
|
private readonly _visibleItemCount;
|
|
92
102
|
private readonly _scrollTop;
|
|
93
103
|
/**
|
|
@@ -121,7 +131,7 @@ declare class NgnScroller<T> extends ScrollerTemplates<T> {
|
|
|
121
131
|
index: number;
|
|
122
132
|
}): unknown;
|
|
123
133
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnScroller<any>, never>;
|
|
124
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnScroller<any>, "ngn-scroller, [ngn-scroller]", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "fieldId": { "alias": "fieldId"; "required": false; "isSignal": true; }; "virtual": { "alias": "virtual"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "virtualPadding": { "alias": "virtualPadding"; "required": false; "isSignal": true; }; "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; "fieldSticky": { "alias": "fieldSticky"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgnScrollAmount; inputs: {}; outputs: {}; }]>;
|
|
134
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnScroller<any>, "ngn-scroller, [ngn-scroller]", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "fieldId": { "alias": "fieldId"; "required": false; "isSignal": true; }; "virtual": { "alias": "virtual"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "virtualPadding": { "alias": "virtualPadding"; "required": false; "isSignal": true; }; "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; "fieldSticky": { "alias": "fieldSticky"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgnScrollAmount; inputs: { "scrollContainer": "scrollContainer"; }; outputs: {}; }]>;
|
|
125
135
|
}
|
|
126
136
|
|
|
127
137
|
declare class NgnScrollerItem implements AfterViewInit {
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
|
|
2
|
+
import * as _iconify_types from '@iconify/types';
|
|
1
3
|
import * as _angular_core from '@angular/core';
|
|
2
4
|
import { TemplateRef, Signal } from '@angular/core';
|
|
3
5
|
import * as _ngneers_signal_translate from '@ngneers/signal-translate';
|
|
4
6
|
import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
|
|
5
7
|
import * as _ngneers_controls_themes from '@ngneers/controls-themes';
|
|
6
|
-
import { NgnItem, FilterConfig,
|
|
8
|
+
import { NgnItem, FilterConfig, FilterFn, FilterConfigInternal } from '@ngneers/controls/api';
|
|
7
9
|
import { PopoverOptions } from '@ngneers/controls/popover';
|
|
8
10
|
import { InputGeneric, maybeCallback } from '@ngneers/controls/utils';
|
|
9
11
|
import { ValueControlBase } from '@ngneers/controls/base';
|
|
@@ -106,7 +108,7 @@ type SelectFilterFn<T extends object> = FilterFn<NgnItem<T>>;
|
|
|
106
108
|
* @category control
|
|
107
109
|
*/
|
|
108
110
|
declare class NgnSelect<V, Editable extends boolean = false, Multiple extends boolean = false> extends SelectTemplates<V, Editable, Multiple> {
|
|
109
|
-
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_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"
|
|
111
|
+
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_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"], 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", "box-icon-visible", "invalid"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>, _ngneers_controls_themes.ControlTemplate<"scroller", ["root", "virtual", "item", "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[]>[]>]>]>>;
|
|
110
112
|
protected readonly i18n: _ngneers_signal_translate.TranslationsSignal<{
|
|
111
113
|
calendar: {
|
|
112
114
|
today: string;
|
|
@@ -152,10 +154,14 @@ declare class NgnSelect<V, Editable extends boolean = false, Multiple extends bo
|
|
|
152
154
|
addCondition: string;
|
|
153
155
|
removeCondition: string;
|
|
154
156
|
clear: string;
|
|
157
|
+
apply: string;
|
|
158
|
+
cancel: string;
|
|
155
159
|
matchModeLabel: string;
|
|
156
160
|
match: {
|
|
157
161
|
all: string;
|
|
158
162
|
any: string;
|
|
163
|
+
and: string;
|
|
164
|
+
or: string;
|
|
159
165
|
};
|
|
160
166
|
selected: string;
|
|
161
167
|
conditions: string;
|
|
@@ -198,14 +204,7 @@ declare class NgnSelect<V, Editable extends boolean = false, Multiple extends bo
|
|
|
198
204
|
* Options for the popover.
|
|
199
205
|
*/
|
|
200
206
|
readonly popoverOptions: _angular_core.InputSignal<PopoverOptions>;
|
|
201
|
-
protected readonly appliedPopoverOptions: Signal<
|
|
202
|
-
sizeConstraints: {
|
|
203
|
-
width: number;
|
|
204
|
-
maxWidth: number;
|
|
205
|
-
minHeight: string;
|
|
206
|
-
maxHeight: string;
|
|
207
|
-
};
|
|
208
|
-
} & PopoverOptions>;
|
|
207
|
+
protected readonly appliedPopoverOptions: Signal<PopoverOptions>;
|
|
209
208
|
/**
|
|
210
209
|
* The available options to choose from. They can either be
|
|
211
210
|
* * A list of {@link NgnItem} objects
|
|
@@ -225,11 +224,11 @@ declare class NgnSelect<V, Editable extends boolean = false, Multiple extends bo
|
|
|
225
224
|
/**
|
|
226
225
|
* The icon to display in the filter input.
|
|
227
226
|
*/
|
|
228
|
-
readonly filterIcon: _angular_core.InputSignal<
|
|
227
|
+
readonly filterIcon: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
|
|
229
228
|
/**
|
|
230
229
|
* The icon to display in the dropdown.
|
|
231
230
|
*/
|
|
232
|
-
readonly dropdownIcon: _angular_core.InputSignal<
|
|
231
|
+
readonly dropdownIcon: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
|
|
233
232
|
/**
|
|
234
233
|
* Whether the select is virtualized.
|
|
235
234
|
* @default `false`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { ElementRef, Signal, Injector } from '@angular/core';
|
|
3
3
|
import { CustomColor } from '@ngneers/controls-custom-types';
|
|
4
4
|
import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
|
|
5
5
|
import * as _ngneers_controls_themes from '@ngneers/controls-themes';
|