@ngneers/controls 0.0.1-next.1 → 0.0.1-next.2
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-api-ng.mjs +11 -18
- package/fesm2022/ngneers-controls-api-ng.mjs.map +1 -1
- package/fesm2022/ngneers-controls-badge.mjs +160 -0
- package/fesm2022/ngneers-controls-badge.mjs.map +1 -0
- package/fesm2022/ngneers-controls-base.mjs +85 -8
- package/fesm2022/ngneers-controls-base.mjs.map +1 -1
- package/fesm2022/{ngneers-controls-calendar-time-CJT5AFlA.mjs → ngneers-controls-calendar-time-paM6WVpV.mjs} +2 -2
- package/fesm2022/{ngneers-controls-calendar-time-CJT5AFlA.mjs.map → ngneers-controls-calendar-time-paM6WVpV.mjs.map} +1 -1
- package/fesm2022/ngneers-controls-calendar.mjs +13 -6
- package/fesm2022/ngneers-controls-calendar.mjs.map +1 -1
- package/fesm2022/ngneers-controls-checkbox.mjs +3 -3
- package/fesm2022/ngneers-controls-checkbox.mjs.map +1 -1
- package/fesm2022/ngneers-controls-color-picker.mjs +336 -0
- package/fesm2022/ngneers-controls-color-picker.mjs.map +1 -0
- package/fesm2022/ngneers-controls-default-icons.mjs +5 -0
- package/fesm2022/ngneers-controls-default-icons.mjs.map +1 -1
- package/fesm2022/ngneers-controls-directives.mjs +64 -7
- package/fesm2022/ngneers-controls-directives.mjs.map +1 -1
- package/fesm2022/ngneers-controls-edit-inplace.mjs +15 -5
- package/fesm2022/ngneers-controls-edit-inplace.mjs.map +1 -1
- package/fesm2022/ngneers-controls-errors.mjs +203 -148
- package/fesm2022/ngneers-controls-errors.mjs.map +1 -1
- package/fesm2022/ngneers-controls-filter.mjs +2 -2
- package/fesm2022/ngneers-controls-filter.mjs.map +1 -1
- package/fesm2022/ngneers-controls-hint.mjs +18 -1
- package/fesm2022/ngneers-controls-hint.mjs.map +1 -1
- package/fesm2022/ngneers-controls-i18n-translations-de.mjs +14 -0
- package/fesm2022/ngneers-controls-i18n-translations-de.mjs.map +1 -1
- package/fesm2022/ngneers-controls-i18n-translations-en.mjs +16 -0
- package/fesm2022/ngneers-controls-i18n-translations-en.mjs.map +1 -1
- package/fesm2022/ngneers-controls-icon.mjs +23 -6
- package/fesm2022/ngneers-controls-icon.mjs.map +1 -1
- package/fesm2022/ngneers-controls-input-field.mjs +18 -2
- package/fesm2022/ngneers-controls-input-field.mjs.map +1 -1
- package/fesm2022/ngneers-controls-input.mjs +49 -9
- package/fesm2022/ngneers-controls-input.mjs.map +1 -1
- package/fesm2022/ngneers-controls-list-box.mjs +2 -2
- package/fesm2022/ngneers-controls-list-box.mjs.map +1 -1
- package/fesm2022/ngneers-controls-mask-input.mjs +4 -1
- package/fesm2022/ngneers-controls-mask-input.mjs.map +1 -1
- package/fesm2022/ngneers-controls-number-input.mjs +4 -4
- package/fesm2022/ngneers-controls-number-input.mjs.map +1 -1
- package/fesm2022/ngneers-controls-otp.mjs +16 -4
- package/fesm2022/ngneers-controls-otp.mjs.map +1 -1
- package/fesm2022/ngneers-controls-paginator.mjs +36 -9
- package/fesm2022/ngneers-controls-paginator.mjs.map +1 -1
- package/fesm2022/ngneers-controls-radio.mjs +4 -4
- package/fesm2022/ngneers-controls-radio.mjs.map +1 -1
- package/fesm2022/ngneers-controls-rating.mjs +180 -0
- package/fesm2022/ngneers-controls-rating.mjs.map +1 -0
- package/fesm2022/ngneers-controls-scroll-shadow.mjs +33 -7
- package/fesm2022/ngneers-controls-scroll-shadow.mjs.map +1 -1
- package/fesm2022/ngneers-controls-scroller.mjs +4 -2
- package/fesm2022/ngneers-controls-scroller.mjs.map +1 -1
- package/fesm2022/ngneers-controls-select-button.mjs +2 -1
- package/fesm2022/ngneers-controls-select-button.mjs.map +1 -1
- package/fesm2022/ngneers-controls-select.mjs +24 -4
- package/fesm2022/ngneers-controls-select.mjs.map +1 -1
- package/fesm2022/ngneers-controls-slider.mjs +3 -3
- package/fesm2022/ngneers-controls-slider.mjs.map +1 -1
- package/fesm2022/ngneers-controls-stepper.mjs +142 -0
- package/fesm2022/ngneers-controls-stepper.mjs.map +1 -0
- package/fesm2022/ngneers-controls-switch.mjs +3 -3
- package/fesm2022/ngneers-controls-switch.mjs.map +1 -1
- package/fesm2022/ngneers-controls-table.mjs +282 -15
- package/fesm2022/ngneers-controls-table.mjs.map +1 -1
- package/fesm2022/ngneers-controls-tabs.mjs +2 -2
- package/fesm2022/ngneers-controls-tabs.mjs.map +1 -1
- package/fesm2022/ngneers-controls-toggle-button.mjs +3 -3
- package/fesm2022/ngneers-controls-toggle-button.mjs.map +1 -1
- package/fesm2022/ngneers-controls-tooltip.mjs +16 -28
- package/fesm2022/ngneers-controls-tooltip.mjs.map +1 -1
- package/fesm2022/ngneers-controls-tree.mjs +2 -2
- package/fesm2022/ngneers-controls-tree.mjs.map +1 -1
- package/fesm2022/ngneers-controls-utils.mjs +138 -1
- package/fesm2022/ngneers-controls-utils.mjs.map +1 -1
- package/package.json +18 -2
- package/types/ngneers-controls-api-ng.d.ts +12 -9
- package/types/ngneers-controls-badge.d.ts +67 -0
- package/types/ngneers-controls-base.d.ts +61 -4
- package/types/ngneers-controls-breadcrumb.d.ts +14 -0
- package/types/ngneers-controls-calendar.d.ts +21 -6
- package/types/ngneers-controls-chip.d.ts +14 -0
- package/types/ngneers-controls-color-picker.d.ts +119 -0
- package/types/ngneers-controls-dialog.d.ts +14 -0
- package/types/ngneers-controls-directives.d.ts +31 -2
- package/types/ngneers-controls-drawer.d.ts +14 -0
- package/types/ngneers-controls-edit-inplace.d.ts +20 -0
- package/types/ngneers-controls-errors.d.ts +105 -16
- package/types/ngneers-controls-filter.d.ts +27 -13
- package/types/ngneers-controls-hint.d.ts +8 -1
- package/types/ngneers-controls-i18n-translations-de.d.ts +14 -0
- package/types/ngneers-controls-i18n-translations-en.d.ts +14 -0
- package/types/ngneers-controls-i18n.d.ts +14 -0
- package/types/ngneers-controls-icon.d.ts +2 -2
- package/types/ngneers-controls-input-field.d.ts +25 -2
- package/types/ngneers-controls-input.d.ts +35 -3
- package/types/ngneers-controls-list-box.d.ts +14 -0
- package/types/ngneers-controls-mask-input.d.ts +14 -0
- package/types/ngneers-controls-otp.d.ts +19 -0
- package/types/ngneers-controls-paginator.d.ts +31 -3
- package/types/ngneers-controls-rating.d.ts +69 -0
- package/types/ngneers-controls-scroll-shadow.d.ts +11 -2
- package/types/ngneers-controls-scroller.d.ts +3 -1
- package/types/ngneers-controls-select.d.ts +27 -3
- package/types/ngneers-controls-snackbar.d.ts +14 -0
- package/types/ngneers-controls-splitter.d.ts +14 -0
- package/types/ngneers-controls-state.d.ts +2 -2
- package/types/ngneers-controls-stepper.d.ts +68 -0
- package/types/ngneers-controls-table.d.ts +273 -169
- package/types/ngneers-controls-toast.d.ts +14 -0
- package/types/ngneers-controls-tooltip.d.ts +0 -1
- package/types/ngneers-controls-tree.d.ts +14 -0
- package/types/ngneers-controls-upload.d.ts +14 -0
- package/types/ngneers-controls-utils.d.ts +27 -2
|
@@ -179,6 +179,8 @@ declare class NgnOtp extends ValueControlBase<'otp', string | null> {
|
|
|
179
179
|
selectedCount: string;
|
|
180
180
|
page: string;
|
|
181
181
|
resultCount: string;
|
|
182
|
+
retry: string;
|
|
183
|
+
loadError: string;
|
|
182
184
|
};
|
|
183
185
|
state: {
|
|
184
186
|
loading: string;
|
|
@@ -187,6 +189,18 @@ declare class NgnOtp extends ValueControlBase<'otp', string | null> {
|
|
|
187
189
|
error: string;
|
|
188
190
|
cancelled: string;
|
|
189
191
|
};
|
|
192
|
+
errors: {
|
|
193
|
+
pending: string;
|
|
194
|
+
required: string;
|
|
195
|
+
email: string;
|
|
196
|
+
minlength: string;
|
|
197
|
+
maxlength: string;
|
|
198
|
+
minLength: string;
|
|
199
|
+
maxLength: string;
|
|
200
|
+
min: string;
|
|
201
|
+
max: string;
|
|
202
|
+
pattern: string;
|
|
203
|
+
};
|
|
190
204
|
}, "_">;
|
|
191
205
|
/**
|
|
192
206
|
* The number of character cells the code is split across.
|
|
@@ -229,6 +243,11 @@ declare class NgnOtp extends ValueControlBase<'otp', string | null> {
|
|
|
229
243
|
protected onBeforeInput(index: number, event: InputEvent): void;
|
|
230
244
|
protected onKeyDown(index: number, event: KeyboardEvent): void;
|
|
231
245
|
protected onPaste(event: ClipboardEvent): void;
|
|
246
|
+
/**
|
|
247
|
+
* Mark touched once focus leaves the whole group — moving between cells keeps
|
|
248
|
+
* the host focused, so those intra-cell hops don't count as a blur.
|
|
249
|
+
*/
|
|
250
|
+
protected onFocusOut(event: FocusEvent): void;
|
|
232
251
|
/** Clears every cell (also serves a surrounding field's clear button). */
|
|
233
252
|
clearValue(): boolean;
|
|
234
253
|
private _setCell;
|
|
@@ -202,6 +202,8 @@ declare class NgnPaginator extends NgnBase<'paginator'> {
|
|
|
202
202
|
selectedCount: string;
|
|
203
203
|
page: string;
|
|
204
204
|
resultCount: string;
|
|
205
|
+
retry: string;
|
|
206
|
+
loadError: string;
|
|
205
207
|
};
|
|
206
208
|
state: {
|
|
207
209
|
loading: string;
|
|
@@ -210,15 +212,41 @@ declare class NgnPaginator extends NgnBase<'paginator'> {
|
|
|
210
212
|
error: string;
|
|
211
213
|
cancelled: string;
|
|
212
214
|
};
|
|
215
|
+
errors: {
|
|
216
|
+
pending: string;
|
|
217
|
+
required: string;
|
|
218
|
+
email: string;
|
|
219
|
+
minlength: string;
|
|
220
|
+
maxlength: string;
|
|
221
|
+
minLength: string;
|
|
222
|
+
maxLength: string;
|
|
223
|
+
min: string;
|
|
224
|
+
max: string;
|
|
225
|
+
pattern: string;
|
|
226
|
+
};
|
|
213
227
|
}, "_">;
|
|
214
228
|
/**
|
|
215
|
-
* Total number of items to paginate.
|
|
229
|
+
* Total number of items to paginate. Required in `'pages'` mode (drives the
|
|
230
|
+
* page count); ignored in `'compact'` mode.
|
|
216
231
|
*/
|
|
217
|
-
readonly totalItems: _angular_core.InputSignal<number>;
|
|
232
|
+
readonly totalItems: _angular_core.InputSignal<number | undefined>;
|
|
218
233
|
/**
|
|
219
234
|
* Number of items per page. If not set, the first value from {@link possiblePageSizes} is used.
|
|
220
235
|
*/
|
|
221
236
|
readonly pageSize: _angular_core.ModelSignal<number | undefined>;
|
|
237
|
+
/**
|
|
238
|
+
* Layout mode.
|
|
239
|
+
* - `'pages'`: full paginator with numbered page buttons (needs {@link totalItems}).
|
|
240
|
+
* - `'compact'`: prev/next buttons only, no page indicators, no total required.
|
|
241
|
+
* @default 'pages'
|
|
242
|
+
*/
|
|
243
|
+
readonly mode: _angular_core.InputSignal<"pages" | "compact">;
|
|
244
|
+
/**
|
|
245
|
+
* `'compact'` mode only: whether a next page exists. Disables the "next" button
|
|
246
|
+
* when `false`. Bind to a lazy data source's `hasMore`.
|
|
247
|
+
* @default true
|
|
248
|
+
*/
|
|
249
|
+
readonly hasNext: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
222
250
|
/**
|
|
223
251
|
* Possible page sizes to choose from.
|
|
224
252
|
* @default [5, 10, 25, 50]
|
|
@@ -251,7 +279,7 @@ declare class NgnPaginator extends NgnBase<'paginator'> {
|
|
|
251
279
|
[klass: string]: string;
|
|
252
280
|
};
|
|
253
281
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnPaginator, never>;
|
|
254
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnPaginator, "ngn-paginator", never, { "totalItems": { "alias": "totalItems"; "required":
|
|
282
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnPaginator, "ngn-paginator", never, { "totalItems": { "alias": "totalItems"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "hasNext": { "alias": "hasNext"; "required": false; "isSignal": true; }; "possiblePageSizes": { "alias": "possiblePageSizes"; "required": false; "isSignal": true; }; "fixedPageSize": { "alias": "fixedPageSize"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; }, { "pageSize": "pageSizeChange"; "value": "value"; "page": "pageChange"; }, never, never, true, never>;
|
|
255
283
|
}
|
|
256
284
|
|
|
257
285
|
export { NgnPaginator };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
|
|
2
|
+
import * as _iconify_types from '@iconify/types';
|
|
3
|
+
import * as _angular_core from '@angular/core';
|
|
4
|
+
import { TemplateRef } from '@angular/core';
|
|
5
|
+
import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
|
|
6
|
+
import * as _ngneers_controls_themes from '@ngneers/controls-themes';
|
|
7
|
+
import { ValueControlBase } from '@ngneers/controls/base';
|
|
8
|
+
|
|
9
|
+
/** Context for a custom {@link NgnRating} symbol template. */
|
|
10
|
+
interface RatingIndicatorContext {
|
|
11
|
+
/** Fill ratio for this symbol, 0..1. */
|
|
12
|
+
$implicit: number;
|
|
13
|
+
/** Zero-based symbol index. */
|
|
14
|
+
index: number;
|
|
15
|
+
}
|
|
16
|
+
declare abstract class RatingTemplates extends ValueControlBase<'rating', number | null> {
|
|
17
|
+
private readonly _userIndicatorTemplate;
|
|
18
|
+
/**
|
|
19
|
+
* Custom template for a single symbol. Receives the fill ratio (`$implicit`,
|
|
20
|
+
* 0..1) and `index`. Can also be set with an `<ng-template #indicator>`.
|
|
21
|
+
* When set, it replaces the default full/empty icon rendering per symbol.
|
|
22
|
+
*/
|
|
23
|
+
readonly indicatorTemplate: _angular_core.InputSignal<TemplateRef<RatingIndicatorContext> | null>;
|
|
24
|
+
protected readonly resolvedIndicatorTemplate: _angular_core.Signal<TemplateRef<RatingIndicatorContext> | null>;
|
|
25
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RatingTemplates, never>;
|
|
26
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RatingTemplates, never, never, { "indicatorTemplate": { "alias": "indicatorTemplate"; "required": false; "isSignal": true; }; }, {}, ["_userIndicatorTemplate"], never, true, never>;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @category control
|
|
31
|
+
*/
|
|
32
|
+
declare class NgnRating extends RatingTemplates {
|
|
33
|
+
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"rating", ["root", "symbol", "full", "empty", "invalid", "readonly", "disabled"], readonly []>>;
|
|
34
|
+
private readonly _hover;
|
|
35
|
+
/** Number of symbols. @default 5 */
|
|
36
|
+
readonly count: _angular_core.InputSignal<number>;
|
|
37
|
+
/** The value increment; supports fractions (e.g. 0.5). @default 1 */
|
|
38
|
+
readonly step: _angular_core.InputSignal<number>;
|
|
39
|
+
/** The filled symbol icon. Falls back to a filled star ({@link https://tabler.io/icons}). */
|
|
40
|
+
readonly iconFull: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
|
|
41
|
+
/** The empty symbol icon. Falls back to an outline star. */
|
|
42
|
+
readonly iconEmpty: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
|
|
43
|
+
/** Clicking the current value clears the rating back to `null`. @default true */
|
|
44
|
+
readonly clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
45
|
+
/** Accessible value text; overrides the numeric readout. */
|
|
46
|
+
readonly valueText: _angular_core.InputSignal<string | undefined>;
|
|
47
|
+
/** Function producing accessible value text from the value. */
|
|
48
|
+
readonly valueTextFn: _angular_core.InputSignal<((value: number) => string) | undefined>;
|
|
49
|
+
/** The value the UI should paint: hover preview when hovering, else the model value. */
|
|
50
|
+
protected readonly displayValue: _angular_core.Signal<number>;
|
|
51
|
+
/** Zero-based indices for the symbols. */
|
|
52
|
+
protected readonly symbols: _angular_core.Signal<number[]>;
|
|
53
|
+
protected readonly valueTextValue: _angular_core.Signal<string | null>;
|
|
54
|
+
/** Fill ratio 0..1 for symbol `index` given the current display value (hover ?? value). */
|
|
55
|
+
protected fillRatio(index: number): number;
|
|
56
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
57
|
+
/** Pointer moved over symbol `index` at fractional `offset` (0..1 within the symbol). */
|
|
58
|
+
protected onPointerMove(event: PointerEvent, index: number): void;
|
|
59
|
+
protected clearHover(): void;
|
|
60
|
+
protected onClick(event: PointerEvent, index: number): void;
|
|
61
|
+
/** Resolve the stepped value for a pointer position within symbol `index`. */
|
|
62
|
+
private valueAt;
|
|
63
|
+
private clamp;
|
|
64
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnRating, never>;
|
|
65
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnRating, "ngn-rating", never, { "count": { "alias": "count"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "iconFull": { "alias": "iconFull"; "required": false; "isSignal": true; }; "iconEmpty": { "alias": "iconEmpty"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "valueText": { "alias": "valueText"; "required": false; "isSignal": true; }; "valueTextFn": { "alias": "valueTextFn"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export { NgnRating, RatingTemplates };
|
|
69
|
+
export type { RatingIndicatorContext };
|
|
@@ -3,9 +3,10 @@ import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
|
|
|
3
3
|
import * as _ngneers_controls_themes from '@ngneers/controls-themes';
|
|
4
4
|
|
|
5
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 []>>;
|
|
6
|
+
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"scrollShadow", ["root", "scrolled-start", "scrolled-end", "scrolled-top", "scrolled-bottom", "overlay", "surface", "unstyled"], readonly []>>;
|
|
7
7
|
private readonly _el;
|
|
8
8
|
private readonly _injector;
|
|
9
|
+
private readonly _renderer;
|
|
9
10
|
/**
|
|
10
11
|
* Which scroll axis to track and add shadow classes for.
|
|
11
12
|
* @default 'horizontal'
|
|
@@ -17,9 +18,17 @@ declare class NgnScrollShadow {
|
|
|
17
18
|
* @default undefined
|
|
18
19
|
*/
|
|
19
20
|
readonly scrollShadowTarget: _angular_core.InputSignal<HTMLElement | undefined>;
|
|
21
|
+
/**
|
|
22
|
+
* Suppress the built-in edge-shadow overlay's styling (the theme hides it). The overlay element
|
|
23
|
+
* is still injected but rendered inert, so it never disturbs the scroll container's layout.
|
|
24
|
+
* Set this when the consumer paints its own shadows off the `scrolled-*` classes — e.g. the
|
|
25
|
+
* table anchors them to its sticky-column edges, reusing the shared `--ngn-scroll-shadow-color`.
|
|
26
|
+
* @default false
|
|
27
|
+
*/
|
|
28
|
+
readonly unstyled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
20
29
|
constructor();
|
|
21
30
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnScrollShadow, never>;
|
|
22
|
-
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>;
|
|
31
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgnScrollShadow, "[ngnScrollShadow]", never, { "ngnScrollShadow": { "alias": "ngnScrollShadow"; "required": false; "isSignal": true; }; "scrollShadowTarget": { "alias": "scrollShadowTarget"; "required": false; "isSignal": true; }; "unstyled": { "alias": "ngnScrollShadowUnstyled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
23
32
|
}
|
|
24
33
|
|
|
25
34
|
export { NgnScrollShadow };
|
|
@@ -48,6 +48,8 @@ declare class NgnScroller<T> extends ScrollerTemplates<T> {
|
|
|
48
48
|
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"scroller", ["root", "virtual", "item", "item-sticky"], readonly []>>;
|
|
49
49
|
private readonly _el;
|
|
50
50
|
private readonly _scrollAmount;
|
|
51
|
+
/** Remaining vertical scroll distance to the bottom (px). Proxied from the host scroll directive. */
|
|
52
|
+
readonly distanceFromEnd: _angular_core.Signal<number>;
|
|
51
53
|
/**
|
|
52
54
|
* The items to be displayed in the scroller.
|
|
53
55
|
* This is a required input and should be an array of items of type {@link T}.
|
|
@@ -131,7 +133,7 @@ declare class NgnScroller<T> extends ScrollerTemplates<T> {
|
|
|
131
133
|
index: number;
|
|
132
134
|
}): unknown;
|
|
133
135
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnScroller<any>, never>;
|
|
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,
|
|
136
|
+
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, ["*"], true, [{ directive: typeof i1.NgnScrollAmount; inputs: { "ngnScrollAmountContainer": "scrollContainer"; }; outputs: {}; }]>;
|
|
135
137
|
}
|
|
136
138
|
|
|
137
139
|
declare class NgnScrollerItem implements AfterViewInit {
|
|
@@ -109,7 +109,7 @@ type SelectFilterFn<T extends object> = FilterFn<NgnItem<T>>;
|
|
|
109
109
|
*/
|
|
110
110
|
declare class NgnSelect<V, Editable extends boolean = false, Multiple extends boolean = false> extends SelectTemplates<V, Editable, Multiple> {
|
|
111
111
|
readonly isFieldControl = true;
|
|
112
|
-
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"select", ["root", "combobox", "input", "icon", "input-editable", "popover-content", "filter-icon", "list-box-empty"], readonly [{
|
|
112
|
+
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"select", ["root", "combobox", "empty", "placeholder", "input", "icon", "input-editable", "popover-content", "filter-icon", "list-box-empty"], readonly [{
|
|
113
113
|
readonly class: "popover";
|
|
114
114
|
readonly template: _ngneers_controls_themes.ControlTemplate<"popover", ["root", "content", "content-closing"], readonly []>;
|
|
115
115
|
}, {
|
|
@@ -123,7 +123,7 @@ declare class NgnSelect<V, Editable extends boolean = false, Multiple extends bo
|
|
|
123
123
|
}]>;
|
|
124
124
|
}, {
|
|
125
125
|
readonly class: "filter";
|
|
126
|
-
readonly template: _ngneers_controls_themes.ControlTemplate<"input-field", ["root", "host", "disabled", "readonly", "invalid", "label", "clear-button", `labelKind-${string}`], readonly [{
|
|
126
|
+
readonly template: _ngneers_controls_themes.ControlTemplate<"input-field", ["root", "host", "filled", "disabled", "readonly", "invalid", "label", "clear-button", `labelKind-${string}`, `kind-${string}`], readonly [{
|
|
127
127
|
readonly class: "input";
|
|
128
128
|
readonly template: _ngneers_controls_themes.ControlTemplate<"input", ["root", "invalid", "empty"], readonly []>;
|
|
129
129
|
readonly projected: true;
|
|
@@ -285,6 +285,8 @@ declare class NgnSelect<V, Editable extends boolean = false, Multiple extends bo
|
|
|
285
285
|
selectedCount: string;
|
|
286
286
|
page: string;
|
|
287
287
|
resultCount: string;
|
|
288
|
+
retry: string;
|
|
289
|
+
loadError: string;
|
|
288
290
|
};
|
|
289
291
|
state: {
|
|
290
292
|
loading: string;
|
|
@@ -293,6 +295,18 @@ declare class NgnSelect<V, Editable extends boolean = false, Multiple extends bo
|
|
|
293
295
|
error: string;
|
|
294
296
|
cancelled: string;
|
|
295
297
|
};
|
|
298
|
+
errors: {
|
|
299
|
+
pending: string;
|
|
300
|
+
required: string;
|
|
301
|
+
email: string;
|
|
302
|
+
minlength: string;
|
|
303
|
+
maxlength: string;
|
|
304
|
+
minLength: string;
|
|
305
|
+
maxLength: string;
|
|
306
|
+
min: string;
|
|
307
|
+
max: string;
|
|
308
|
+
pattern: string;
|
|
309
|
+
};
|
|
296
310
|
}, "_">;
|
|
297
311
|
private readonly _popover;
|
|
298
312
|
private readonly _field;
|
|
@@ -377,7 +391,17 @@ declare class NgnSelect<V, Editable extends boolean = false, Multiple extends bo
|
|
|
377
391
|
* @default multiple()
|
|
378
392
|
*/
|
|
379
393
|
readonly checkbox: _angular_core.InputSignal<boolean | undefined>;
|
|
394
|
+
/**
|
|
395
|
+
* Text shown in the trigger when no value is selected.
|
|
396
|
+
* @default undefined
|
|
397
|
+
*/
|
|
398
|
+
readonly placeholder: _angular_core.InputSignal<string | undefined>;
|
|
380
399
|
protected readonly maybeCallback: typeof maybeCallback;
|
|
400
|
+
/**
|
|
401
|
+
* Whether the control holds no value. Drives the empty status class and lets a
|
|
402
|
+
* wrapping {@link NgnInputField} float its label. See {@link value}.
|
|
403
|
+
*/
|
|
404
|
+
readonly empty: Signal<boolean>;
|
|
381
405
|
private readonly _listbox;
|
|
382
406
|
private _userChangedEditableInput;
|
|
383
407
|
protected get anchorElement(): HTMLElement;
|
|
@@ -405,7 +429,7 @@ declare class NgnSelect<V, Editable extends boolean = false, Multiple extends bo
|
|
|
405
429
|
protected onEditableChange(value: string | null): void;
|
|
406
430
|
protected potentiallyBlurred(): void;
|
|
407
431
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnSelect<any, any, any>, never>;
|
|
408
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnSelect<any, any, any>, "ngn-select", never, { "popoverOptions": { "alias": "popoverOptions"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "filterText": { "alias": "filterText"; "required": false; "isSignal": true; }; "iconFilter": { "alias": "iconFilter"; "required": false; "isSignal": true; }; "iconDropdown": { "alias": "iconDropdown"; "required": false; "isSignal": true; }; "virtual": { "alias": "virtual"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "editableAutoFilter": { "alias": "editableAutoFilter"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "scrollToSelectedItemOnOpen": { "alias": "scrollToSelectedItemOnOpen"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "checkbox": { "alias": "checkbox"; "required": false; "isSignal": true; }; }, {}, ["_customEditableInput"], ["[ngnInput]"], true, never>;
|
|
432
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnSelect<any, any, any>, "ngn-select", never, { "popoverOptions": { "alias": "popoverOptions"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "filterText": { "alias": "filterText"; "required": false; "isSignal": true; }; "iconFilter": { "alias": "iconFilter"; "required": false; "isSignal": true; }; "iconDropdown": { "alias": "iconDropdown"; "required": false; "isSignal": true; }; "virtual": { "alias": "virtual"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "editableAutoFilter": { "alias": "editableAutoFilter"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "scrollToSelectedItemOnOpen": { "alias": "scrollToSelectedItemOnOpen"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "checkbox": { "alias": "checkbox"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, {}, ["_customEditableInput"], ["[ngnInput]"], true, never>;
|
|
409
433
|
}
|
|
410
434
|
|
|
411
435
|
export { NgnSelect };
|
|
@@ -224,6 +224,8 @@ declare class NgnSnackbar extends SnackbarTemplates implements OnInit {
|
|
|
224
224
|
selectedCount: string;
|
|
225
225
|
page: string;
|
|
226
226
|
resultCount: string;
|
|
227
|
+
retry: string;
|
|
228
|
+
loadError: string;
|
|
227
229
|
};
|
|
228
230
|
state: {
|
|
229
231
|
loading: string;
|
|
@@ -232,6 +234,18 @@ declare class NgnSnackbar extends SnackbarTemplates implements OnInit {
|
|
|
232
234
|
error: string;
|
|
233
235
|
cancelled: string;
|
|
234
236
|
};
|
|
237
|
+
errors: {
|
|
238
|
+
pending: string;
|
|
239
|
+
required: string;
|
|
240
|
+
email: string;
|
|
241
|
+
minlength: string;
|
|
242
|
+
maxlength: string;
|
|
243
|
+
minLength: string;
|
|
244
|
+
maxLength: string;
|
|
245
|
+
min: string;
|
|
246
|
+
max: string;
|
|
247
|
+
pattern: string;
|
|
248
|
+
};
|
|
235
249
|
}, "_">;
|
|
236
250
|
private readonly _host;
|
|
237
251
|
/** Heading text shown at the top of the snackbar. Overridden by {@link templateHeader}. */
|
|
@@ -336,6 +336,8 @@ declare class NgnSplitter extends NgnBase<'splitter'> implements OnDestroy {
|
|
|
336
336
|
selectedCount: string;
|
|
337
337
|
page: string;
|
|
338
338
|
resultCount: string;
|
|
339
|
+
retry: string;
|
|
340
|
+
loadError: string;
|
|
339
341
|
};
|
|
340
342
|
state: {
|
|
341
343
|
loading: string;
|
|
@@ -344,6 +346,18 @@ declare class NgnSplitter extends NgnBase<'splitter'> implements OnDestroy {
|
|
|
344
346
|
error: string;
|
|
345
347
|
cancelled: string;
|
|
346
348
|
};
|
|
349
|
+
errors: {
|
|
350
|
+
pending: string;
|
|
351
|
+
required: string;
|
|
352
|
+
email: string;
|
|
353
|
+
minlength: string;
|
|
354
|
+
maxlength: string;
|
|
355
|
+
minLength: string;
|
|
356
|
+
maxLength: string;
|
|
357
|
+
min: string;
|
|
358
|
+
max: string;
|
|
359
|
+
pattern: string;
|
|
360
|
+
};
|
|
347
361
|
}, "_">;
|
|
348
362
|
/**
|
|
349
363
|
* The layout of the splitter.
|
|
@@ -75,7 +75,7 @@ declare class NgnState extends NgnBase<'state'> {
|
|
|
75
75
|
readonly projected: true;
|
|
76
76
|
}, {
|
|
77
77
|
readonly class: "input-field";
|
|
78
|
-
readonly template: _ngneers_controls_themes.ControlTemplate<"input-field", ["root", "host", "disabled", "readonly", "invalid", "label", "clear-button", `labelKind-${string}`], readonly [{
|
|
78
|
+
readonly template: _ngneers_controls_themes.ControlTemplate<"input-field", ["root", "host", "filled", "disabled", "readonly", "invalid", "label", "clear-button", `labelKind-${string}`, `kind-${string}`], readonly [{
|
|
79
79
|
readonly class: "input";
|
|
80
80
|
readonly template: _ngneers_controls_themes.ControlTemplate<"input", ["root", "invalid", "empty"], readonly []>;
|
|
81
81
|
readonly projected: true;
|
|
@@ -83,7 +83,7 @@ declare class NgnState extends NgnBase<'state'> {
|
|
|
83
83
|
readonly projected: true;
|
|
84
84
|
}]>>;
|
|
85
85
|
protected readonly icon: _angular_core.Signal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
|
|
86
|
-
protected readonly defaultIcon: _angular_core.Signal<"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" | "hint-info" | "hint-success" | "hint-warning" | "hint-error" | "input-clear" | "menu-submenu" | "paginator-previous" | "paginator-next" | "search" | "sort-neutral" | "sort-ascending" | "sort-descending" | "spin-decrement" | "spin-increment" | "table-group-toggle" | "tabs-scroll-left" | "tabs-scroll-right" | "toast-close" | "snackbar-close" | "upload-trigger" | "upload-done" | "upload-failed" | "upload-retry" | "upload-cancel" | "upload-remove" | undefined>;
|
|
86
|
+
protected readonly defaultIcon: _angular_core.Signal<"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" | "hint-info" | "hint-success" | "hint-warning" | "hint-error" | "input-clear" | "menu-submenu" | "paginator-previous" | "paginator-next" | "rating-full" | "rating-empty" | "search" | "sort-neutral" | "sort-ascending" | "sort-descending" | "spin-decrement" | "spin-increment" | "stepper-completed" | "table-group-toggle" | "tabs-scroll-left" | "tabs-scroll-right" | "toast-close" | "snackbar-close" | "upload-trigger" | "upload-done" | "upload-failed" | "upload-retry" | "upload-cancel" | "upload-remove" | undefined>;
|
|
87
87
|
/**
|
|
88
88
|
* Accessible label for the current state: the explicit {@link label} input,
|
|
89
89
|
* else a localized default for the applied kind. `undefined` when the
|
|
@@ -0,0 +1,68 @@
|
|
|
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
|
+
import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
|
|
7
|
+
import * as _iconify_types from '@iconify/types';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A single step within an `ngn-stepper`. Declares the step's header metadata and
|
|
11
|
+
* projects its content via `<ng-template #content>`.
|
|
12
|
+
* @category control
|
|
13
|
+
*/
|
|
14
|
+
declare class NgnStep extends NgnBase<'stepper'> {
|
|
15
|
+
protected readonly theme: null;
|
|
16
|
+
/** The step's header label. */
|
|
17
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
18
|
+
/** Custom marker icon; when unset the 1-based step number is shown. */
|
|
19
|
+
readonly iconStep: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
|
|
20
|
+
/** Marks the step optional (shown as a hint; skippable in linear mode). @default false */
|
|
21
|
+
readonly optional: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
22
|
+
/** Disables navigation to this step. @default false */
|
|
23
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
24
|
+
/** Renders the step's marker in an error state. @default false */
|
|
25
|
+
readonly error: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
26
|
+
/**
|
|
27
|
+
* Whether the step is complete. The app sets this; in linear mode it gates
|
|
28
|
+
* forward navigation past this step. @default false
|
|
29
|
+
*/
|
|
30
|
+
readonly completed: _angular_core.ModelSignal<boolean>;
|
|
31
|
+
readonly content: _angular_core.Signal<TemplateRef<unknown> | undefined>;
|
|
32
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnStep, never>;
|
|
33
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnStep, "ngn-step", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "iconStep": { "alias": "iconStep"; "required": false; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "completed": { "alias": "completed"; "required": false; "isSignal": true; }; }, { "completed": "completedChange"; }, ["content"], never, true, never>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @category control
|
|
38
|
+
*/
|
|
39
|
+
declare class NgnStepper extends NgnBase<'stepper'> {
|
|
40
|
+
protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"stepper", ["root", "header", "step", "marker", "marker-index", "marker-icon", "connector", "label", "optional", "content", "active", "completed", "error", "disabled"], readonly []>>;
|
|
41
|
+
protected readonly steps: _angular_core.Signal<readonly NgnStep[]>;
|
|
42
|
+
/** The header buttons' roving items, in step order (one per step; connectors are plain spans). */
|
|
43
|
+
private readonly _rovingItems;
|
|
44
|
+
/** The active step index (zero-based). @default 0 */
|
|
45
|
+
readonly active: _angular_core.ModelSignal<number>;
|
|
46
|
+
/** Gate forward navigation on prior steps being `completed`. @default false */
|
|
47
|
+
readonly linear: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
48
|
+
/** Lazily render step content (forwarded to `ngn-defer`). @default true */
|
|
49
|
+
readonly lazy: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
50
|
+
/** Keep opened step content in the DOM to preserve state (forwarded to `ngn-defer`). @default true */
|
|
51
|
+
readonly cache: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
52
|
+
/**
|
|
53
|
+
* Index of the first step that is not yet completed (the furthest reachable in linear mode).
|
|
54
|
+
* Optional steps are exempt — an incomplete optional step never blocks forward progress.
|
|
55
|
+
*/
|
|
56
|
+
private readonly _firstIncomplete;
|
|
57
|
+
constructor();
|
|
58
|
+
/** Whether navigation to `index` is currently permitted. */
|
|
59
|
+
canGoTo(index: number): boolean;
|
|
60
|
+
goTo(index: number): void;
|
|
61
|
+
next(): void;
|
|
62
|
+
previous(): void;
|
|
63
|
+
protected onHeaderActivate(index: number): void;
|
|
64
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnStepper, never>;
|
|
65
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnStepper, "ngn-stepper", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "cache": { "alias": "cache"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; }, ["steps"], never, true, never>;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export { NgnStep, NgnStepper };
|