@ngrdt/forms 0.0.18

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/index.d.ts ADDED
@@ -0,0 +1,460 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnInit, OnDestroy, Injector, Signal, InjectionToken } from '@angular/core';
3
+ import * as _angular_forms from '@angular/forms';
4
+ import { ControlValueAccessor, AbstractControl, ValidationErrors, NgControl, FormControl, ValidatorFn } from '@angular/forms';
5
+ import { RdtInteractiveElementComponent } from '@ngrdt/core';
6
+ import { Nullable, RdtFile, RdtMimeType, RdtCombinedMimeType, AllEncodingAliases } from '@ngrdt/utils';
7
+ import * as _ngrdt_forms from '@ngrdt/forms';
8
+ import * as rxjs from 'rxjs';
9
+ import { Observable, Subscription } from 'rxjs';
10
+ import * as _ngrx_signals from '@ngrx/signals';
11
+ import { Highlightable } from '@angular/cdk/a11y';
12
+
13
+ declare abstract class RdtBaseFormInputComponent<TExt, TInt = TExt> extends RdtInteractiveElementComponent implements ControlValueAccessor, OnInit, OnDestroy {
14
+ readonly injector: Injector;
15
+ protected readonly _control: _angular_core.WritableSignal<AbstractControl<TExt, TExt, any> | null>;
16
+ readonly control: Signal<AbstractControl<TExt, TExt, any> | null>;
17
+ readonly label: _angular_core.InputSignal<string>;
18
+ readonly placeholder: _angular_core.InputSignal<string>;
19
+ readonly externalValue: _angular_core.ModelSignal<TExt | null>;
20
+ readonly internalValue: _angular_core.WritableSignal<TInt | null>;
21
+ readonly dataTestIdInput: _angular_core.InputSignal<undefined>;
22
+ readonly dataTestId: _angular_core.WritableSignal<string>;
23
+ protected readonly readonlyInput: _angular_core.InputSignalWithTransform<boolean | null, Nullable<string | number | boolean>>;
24
+ readonly requiredInput: _angular_core.InputSignalWithTransform<Nullable<boolean>, Nullable<string | number | boolean>>;
25
+ protected readonly requiredFromControl: _angular_core.WritableSignal<boolean>;
26
+ readonly required: _angular_core.WritableSignal<boolean>;
27
+ protected readonly touchedInternal: _angular_core.WritableSignal<boolean>;
28
+ readonly touched: Signal<any>;
29
+ readonly invalid: Signal<boolean>;
30
+ protected readonly requiredEffect: _angular_core.EffectRef;
31
+ private readonly requiredError;
32
+ private readonly controlErrors;
33
+ readonly errors: Signal<{
34
+ required: boolean;
35
+ } | ValidationErrors | null>;
36
+ readonly visibleErrors: Signal<ValidationErrors | null>;
37
+ get ngControl(): NgControl | null;
38
+ private _ngControl;
39
+ private _onChange;
40
+ private _onTouch;
41
+ private _onValidatorChange;
42
+ get onChange(): (value: any) => void;
43
+ get onTouch(): () => void;
44
+ get onValidatorChange(): () => void;
45
+ ngOnInit(): void;
46
+ ngOnDestroy(): void;
47
+ registerOnChange(fn: any): void;
48
+ registerOnTouched(fn: () => void): void;
49
+ writeValue(value: any): void;
50
+ validate(control: AbstractControl<TExt>): ValidationErrors | null;
51
+ registerOnValidatorChange(fn: () => void): void;
52
+ protected abstract isEmpty(value: TExt | null): boolean;
53
+ onInternalValueChange(value: TInt | null): void;
54
+ protected toExternalValue(internalValue: TInt | null): TExt | null;
55
+ protected toInternalValue(externalValue: TExt | null): TInt | null;
56
+ onBlur(): void;
57
+ private getRequiredError;
58
+ private static readonly REQUIRED_ERROR;
59
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtBaseFormInputComponent<any, any>, never>;
60
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdtBaseFormInputComponent<any, any>, never, never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "externalValue": { "alias": "value"; "required": false; "isSignal": true; }; "dataTestIdInput": { "alias": "dataTestId"; "required": false; "isSignal": true; }; "readonlyInput": { "alias": "readonly"; "required": false; "isSignal": true; }; "requiredInput": { "alias": "required"; "required": false; "isSignal": true; }; }, { "externalValue": "valueChange"; }, never, never, true, never>;
61
+ }
62
+
63
+ declare abstract class RdtCheckboxComponent<TTrue = true, TFalse = false> extends RdtBaseFormInputComponent<TTrue | TFalse, boolean> {
64
+ protected readonly trueValueInput: _angular_core.InputSignal<TTrue>;
65
+ readonly trueValue: _angular_core.WritableSignal<TTrue>;
66
+ readonly falseValueInput: _angular_core.InputSignal<TFalse>;
67
+ readonly falseValue: _angular_core.WritableSignal<TFalse>;
68
+ readonly indeterminate: _angular_core.InputSignalWithTransform<boolean, unknown>;
69
+ protected toExternalValue(internalValue: boolean | null): TTrue | TFalse | null;
70
+ protected toInternalValue(externalValue: TTrue | TFalse | null): boolean | null;
71
+ protected isEmpty(value: TTrue | TFalse | null): boolean;
72
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtCheckboxComponent<any, any>, never>;
73
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdtCheckboxComponent<any, any>, never, never, { "trueValueInput": { "alias": "trueValue"; "required": false; "isSignal": true; }; "falseValueInput": { "alias": "falseValue"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
74
+ }
75
+
76
+ type RdtDateType = 'date' | 'month' | 'week' | 'datetime-local' | 'time';
77
+
78
+ declare abstract class RdtDateComponent<TExt = string, TInt = TExt> extends RdtBaseFormInputComponent<TExt, TInt> {
79
+ readonly type: _angular_core.InputSignal<RdtDateType>;
80
+ protected readonly minInput: _angular_core.InputSignalWithTransform<Nullable<TExt>, TExt | null>;
81
+ readonly min: _angular_core.WritableSignal<TInt | null>;
82
+ protected readonly maxInput: _angular_core.InputSignalWithTransform<Nullable<TExt>, TExt | null>;
83
+ readonly max: _angular_core.WritableSignal<TInt | null>;
84
+ protected isEmpty(value: TExt | null): boolean;
85
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtDateComponent<any, any>, never>;
86
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdtDateComponent<any, any>, never, never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "minInput": { "alias": "minInput"; "required": false; "isSignal": true; }; "maxInput": { "alias": "maxInput"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
87
+ }
88
+
89
+ declare abstract class RdtFileReader<T> {
90
+ abstract extractData(files: File): Observable<T>;
91
+ read(file: File): Observable<RdtFile<T>>;
92
+ readAll(files: File[]): Observable<RdtFile<T>[]>;
93
+ }
94
+
95
+ type AcceptType = (RdtMimeType | RdtCombinedMimeType)[] | RdtMimeType | RdtCombinedMimeType;
96
+ declare abstract class RdtFileInputComponent<TExt = string> extends RdtBaseFormInputComponent<TExt> {
97
+ protected readonly defaultFileReader: RdtFileReader<unknown>;
98
+ protected readonly defaultMaxFileSize: `${number} B` | `${number} KB` | `${number} MB` | `${number} GB` | `${number} TB` | `${number} PB` | `${number} EB` | `${number} ZB` | `${number} YB`;
99
+ protected readonly defaultLabelFn: _ngrdt_forms.RdtFileLabelFn;
100
+ protected readonly readerInput: _angular_core.InputSignal<RdtFileReader<TExt>>;
101
+ readonly reader: _angular_core.WritableSignal<RdtFileReader<TExt>>;
102
+ protected readonly acceptInput: _angular_core.InputSignalWithTransform<AcceptType | undefined, Nullable<AcceptType>>;
103
+ readonly accept: _angular_core.WritableSignal<(RdtMimeType | RdtCombinedMimeType)[] | undefined>;
104
+ readonly jointAccept: _angular_core.Signal<string | undefined>;
105
+ protected readonly maxFileSizeInput: _angular_core.InputSignalWithTransform<Nullable<`${number} B` | `${number} KB` | `${number} MB` | `${number} GB` | `${number} TB` | `${number} PB` | `${number} EB` | `${number} ZB` | `${number} YB`>, `${number} B` | `${number} KB` | `${number} MB` | `${number} GB` | `${number} TB` | `${number} PB` | `${number} EB` | `${number} ZB` | `${number} YB` | undefined>;
106
+ readonly maxFileSize: _angular_core.WritableSignal<Nullable<`${number} B` | `${number} KB` | `${number} MB` | `${number} GB` | `${number} TB` | `${number} PB` | `${number} EB` | `${number} ZB` | `${number} YB`>>;
107
+ readonly maxFileSizeInBytes: _angular_core.Signal<number | null>;
108
+ readonly labelFn: _angular_core.InputSignal<_ngrdt_forms.RdtFileLabelFn>;
109
+ readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
110
+ protected labelCtrl: FormControl<string | null>;
111
+ readonly labelDataTestId: _angular_core.Signal<string>;
112
+ protected readonly touchedEffect: _angular_core.EffectRef;
113
+ protected readonly errorEffect: _angular_core.EffectRef;
114
+ ngOnInit(): void;
115
+ ngOnDestroy(): void;
116
+ protected onFileSelected(event: Event): void;
117
+ writeValue(value: any): void;
118
+ private setInnerValue;
119
+ protected clear(): void;
120
+ private _maxFileSizeValidator;
121
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtFileInputComponent<any>, never>;
122
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdtFileInputComponent<any>, never, never, { "readerInput": { "alias": "reader"; "required": false; "isSignal": true; }; "acceptInput": { "alias": "accept"; "required": false; "isSignal": true; }; "maxFileSizeInput": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "labelFn": { "alias": "labelFn"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
123
+ }
124
+
125
+ declare class RdtFileReaderArrayBuffer extends RdtFileReader<ArrayBuffer> {
126
+ extractData(file: File): rxjs.Observable<ArrayBuffer>;
127
+ }
128
+
129
+ declare class RdtFileReaderBase64 extends RdtFileReader<string> {
130
+ private removeDataPrefix;
131
+ constructor(removeDataPrefix?: boolean);
132
+ extractData(file: File): rxjs.Observable<string>;
133
+ }
134
+
135
+ declare class NoOpFileReader extends RdtFileReader<void> {
136
+ extractData(): rxjs.Observable<undefined>;
137
+ }
138
+ declare const NO_OP_FILE_READER: NoOpFileReader;
139
+
140
+ declare class VnshFileReaderText extends RdtFileReader<string> {
141
+ encoding?: AllEncodingAliases | undefined;
142
+ constructor(encoding?: AllEncodingAliases | undefined);
143
+ extractData(file: File): rxjs.Observable<string>;
144
+ }
145
+
146
+ declare const RDT_DEFAULT_FILE_READER: InjectionToken<RdtFileReader<unknown>>;
147
+
148
+ declare function czechFileLabelFn(files: RdtFile[]): string;
149
+ type RdtFileLabelFn = (files: RdtFile[]) => string;
150
+ declare const RDT_DEFAULT_FILE_LABEL_FN: InjectionToken<RdtFileLabelFn>;
151
+
152
+ declare const RDT_DEFAULT_MAX_FILE_SIZE: InjectionToken<`${number} B` | `${number} KB` | `${number} MB` | `${number} GB` | `${number} TB` | `${number} PB` | `${number} EB` | `${number} ZB` | `${number} YB`>;
153
+
154
+ type RdtAutocompleteGroup = 'shipping' | 'billing';
155
+ type RdtAutocompleteRecipientType = 'home' | 'work' | 'mobile' | 'fax' | 'page';
156
+ type RdtAutocompleteContactToken = 'tel' | 'tel-country-code' | 'tel-national' | 'tel-area-code' | 'tel-local' | 'tel-extension' | 'email' | 'impp';
157
+ type RdtAutocompleteDigitalContactWhole = `${RdtAutocompleteRecipientType} ${RdtAutocompleteContactToken}`;
158
+ type RdtAutocompleteNameToken = 'given-name' | 'additional-name' | 'family-name' | 'honorific-prefix' | 'honorific-suffix' | 'nickname';
159
+ type RdtAutocompleteLoginToken = 'username' | 'new-password' | 'current-password' | 'one-time-code';
160
+ type RdtAutocompleteAddressToken = 'organization-title' | 'organization' | 'street-address' | 'address-line1' | 'address-line2' | 'address-line3' | 'address-level1' | 'address-level2' | 'address-level3' | 'address-level4' | 'postal-code' | 'country' | 'region' | 'locality' | 'country-name' | 'postal-code';
161
+ type RdtAutocompleteCCToken = 'cc-name' | 'cc-given-name' | 'cc-additional-name' | 'cc-family-name' | 'cc-number' | 'cc-exp' | 'cc-exp-month' | 'cc-exp-year' | 'cc-csc' | 'cc-type' | 'transaction-currency' | 'transaction-amount';
162
+ type RdtAutocompleteOtherToken = 'language' | 'bday' | 'bday-day' | 'bday-month' | 'bday-year' | 'sex' | 'url' | 'photo' | 'webauthn';
163
+ type RdtAutocompleteDetailToken = RdtAutocompleteDigitalContactWhole | RdtAutocompleteNameToken | RdtAutocompleteLoginToken | RdtAutocompleteAddressToken | RdtAutocompleteCCToken | RdtAutocompleteOtherToken;
164
+ type RdtAutocompleteOptions = `${RdtAutocompleteGroup} ${RdtAutocompleteDetailToken}` | RdtAutocompleteDetailToken | 'off' | 'on';
165
+
166
+ declare abstract class RdtNumericInputComponent extends RdtBaseFormInputComponent<number | null> {
167
+ readonly min: _angular_core.InputSignalWithTransform<number | null | undefined, Nullable<string | number>>;
168
+ readonly max: _angular_core.InputSignalWithTransform<number | null | undefined, Nullable<string | number>>;
169
+ readonly step: _angular_core.InputSignalWithTransform<number | null | undefined, Nullable<string | number>>;
170
+ readonly autocomplete: _angular_core.InputSignalWithTransform<RdtAutocompleteOptions | undefined, Nullable<RdtAutocompleteOptions>>;
171
+ protected isEmpty(value: number | null): boolean;
172
+ protected toExternalValue(internalValue: number | null): number | null;
173
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtNumericInputComponent, never>;
174
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdtNumericInputComponent, never, never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
175
+ }
176
+
177
+ interface RdtLabelValue<T> {
178
+ label: string;
179
+ value: T;
180
+ }
181
+ interface RdtLabelValueId<T, TId> {
182
+ label: string;
183
+ value: T;
184
+ id: TId;
185
+ }
186
+ interface RdtRenderedSelectOption<T, TId> {
187
+ id: TId;
188
+ label: string;
189
+ value: T | null;
190
+ selected: boolean;
191
+ }
192
+
193
+ interface RdtSelectRequestParams {
194
+ query: string | null;
195
+ pageIndex: number;
196
+ pageSize: number;
197
+ }
198
+ interface RdtSelectFetchRequest {
199
+ params: RdtSelectRequestParams;
200
+ subscription: Subscription;
201
+ }
202
+ interface RdtSelectFetchMissingRequest<TId> {
203
+ ids: TId[];
204
+ subscription: Subscription;
205
+ }
206
+
207
+ interface RdtSelectPage<T> {
208
+ data: T[];
209
+ totalCount: number | null;
210
+ pageIndex: number;
211
+ }
212
+
213
+ declare abstract class RdtSelectDatasource<TItem, TId> {
214
+ abstract getData(params: RdtSelectRequestParams): Observable<RdtSelectPage<TItem>>;
215
+ abstract getLabel(item: TItem): string;
216
+ abstract getId(item: TItem): TId;
217
+ abstract getItemsByIds(ids: TId[]): Observable<Map<TId, TItem>>;
218
+ abstract readonly totalCountKnown: boolean;
219
+ abstract readonly queryRequired: boolean;
220
+ }
221
+
222
+ declare class RdtOfflineSelectDatasource<TValue extends string | number> extends RdtSelectDatasource<RdtLabelValue<TValue>, TValue> {
223
+ readonly data: RdtLabelValue<TValue>[];
224
+ readonly totalCountKnown = true;
225
+ readonly queryRequired = true;
226
+ protected readonly preprocessedData: RdtLabelValue<TValue>[];
227
+ constructor(data: RdtLabelValue<TValue>[]);
228
+ getData(params: RdtSelectRequestParams): Observable<RdtSelectPage<RdtLabelValue<TValue>>>;
229
+ getLabel(item: RdtLabelValue<TValue>): string;
230
+ getId(item: RdtLabelValue<TValue>): TValue;
231
+ getItemsByIds(ids: TValue[]): Observable<Map<TValue, RdtLabelValue<TValue>>>;
232
+ protected preprocessLabel(label: string): string;
233
+ protected preprocessData(data: RdtLabelValue<TValue>[]): RdtLabelValue<TValue>[];
234
+ protected filterData(query: string | null): RdtLabelValue<TValue>[];
235
+ protected getPage(data: RdtLabelValue<TValue>[], pageIndex: number, pageSize: number): RdtSelectPage<RdtLabelValue<TValue>>;
236
+ }
237
+
238
+ declare abstract class RdtSelectOfflineDatasourceProviderDirective<TValue extends string | number> {
239
+ readonly store: {
240
+ query: _angular_core.Signal<string | null>;
241
+ nextPageIndex: _angular_core.Signal<number | null>;
242
+ pageSize: _angular_core.Signal<number>;
243
+ totalCount: _angular_core.Signal<number>;
244
+ totalCountKnown: _angular_core.Signal<boolean>;
245
+ options: _angular_core.Signal<RdtLabelValueId<any, any>[]>;
246
+ datasource: _angular_core.Signal<_ngrdt_forms.RdtSelectDatasource<any, any> | null>;
247
+ selectedMap: _angular_core.Signal<Map<any, RdtLabelValueId<any, any>>>;
248
+ fetchError: _angular_core.Signal<any>;
249
+ missingValuePlaceholder: _angular_core.Signal<string>;
250
+ hasMore: _angular_core.Signal<boolean>;
251
+ selectedItems: _angular_core.Signal<RdtLabelValueId<any, any>[]>;
252
+ loadingOptions: _angular_core.Signal<boolean>;
253
+ loadingMissing: _angular_core.Signal<boolean>;
254
+ loading: _angular_core.Signal<boolean>;
255
+ visibleOptions: _angular_core.Signal<RdtRenderedSelectOption<any, any>[]>;
256
+ fetch: () => void;
257
+ setDatasource: (datasource: _ngrdt_forms.RdtSelectDatasource<any, any>) => void;
258
+ setQuery: (query: string | null) => void;
259
+ reset: () => void;
260
+ resetTotalCountKnown: () => void;
261
+ setSelected: (ids: any[]) => void;
262
+ select: (ids: any[]) => void;
263
+ unselectAll: () => void;
264
+ selectSingle: (id: any) => void;
265
+ toggle: (id: any) => void;
266
+ cancelFetch: () => void;
267
+ isSelected: (item: any) => boolean;
268
+ setPageSize: (size: number) => void;
269
+ } & _ngrx_signals.StateSource<{
270
+ query: string | null;
271
+ nextPageIndex: number | null;
272
+ pageSize: number;
273
+ totalCount: number;
274
+ totalCountKnown: boolean;
275
+ options: RdtLabelValueId<any, any>[];
276
+ datasource: _ngrdt_forms.RdtSelectDatasource<any, any> | null;
277
+ selectedMap: Map<any, RdtLabelValueId<any, any>>;
278
+ fetchError: any | null;
279
+ missingValuePlaceholder: string;
280
+ }>;
281
+ readonly optionsInput: _angular_core.InputSignal<RdtLabelValue<TValue>[] | TValue[] | undefined>;
282
+ readonly options: _angular_core.Signal<RdtLabelValue<TValue>[]>;
283
+ private parseOptions;
284
+ private readonly optionsEffect;
285
+ private setDatasource;
286
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtSelectOfflineDatasourceProviderDirective<any>, never>;
287
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdtSelectOfflineDatasourceProviderDirective<any>, never, never, { "optionsInput": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
288
+ }
289
+
290
+ declare class RdtSelectOptionDirective<TValue> implements Highlightable {
291
+ private readonly elementRef;
292
+ readonly value: _angular_core.InputSignal<TValue>;
293
+ protected readonly _selected: _angular_core.WritableSignal<boolean>;
294
+ set selected(value: boolean);
295
+ get selected(): boolean;
296
+ protected readonly _disabled: _angular_core.WritableSignal<boolean>;
297
+ set disabled(value: boolean);
298
+ get disabled(): boolean;
299
+ setActiveStyles(): void;
300
+ setInactiveStyles(): void;
301
+ scrollIntoElement(): void;
302
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtSelectOptionDirective<any>, never>;
303
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdtSelectOptionDirective<any>, "[rdtSelectOption]", never, { "value": { "alias": "rdtSelectOption"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
304
+ }
305
+
306
+ interface RdtSelectState<TItem, TId> {
307
+ query: string | null;
308
+ nextPageIndex: number | null;
309
+ pageSize: number;
310
+ totalCount: number;
311
+ totalCountKnown: boolean;
312
+ options: RdtLabelValueId<TItem, TId>[];
313
+ datasource: RdtSelectDatasource<TItem, TId> | null;
314
+ selectedMap: Map<TId, RdtLabelValueId<TItem, TId>>;
315
+ fetchError: any | null;
316
+ missingValuePlaceholder: string;
317
+ _fetchRequest: RdtSelectFetchRequest | null;
318
+ _fetchMissingRequest: RdtSelectFetchMissingRequest<TId> | null;
319
+ _missingSelected: TId[];
320
+ }
321
+ declare const rdtSelectInitialState: RdtSelectState<any, any>;
322
+
323
+ declare function getRdtSelectStore<T, TId>(initialState?: RdtSelectState<any, any>): _angular_core.Type<{
324
+ query: _angular_core.Signal<string | null>;
325
+ nextPageIndex: _angular_core.Signal<number | null>;
326
+ pageSize: _angular_core.Signal<number>;
327
+ totalCount: _angular_core.Signal<number>;
328
+ totalCountKnown: _angular_core.Signal<boolean>;
329
+ options: _angular_core.Signal<RdtLabelValueId<T, TId>[]>;
330
+ datasource: _angular_core.Signal<RdtSelectDatasource<T, TId> | null>;
331
+ selectedMap: _angular_core.Signal<Map<TId, RdtLabelValueId<T, TId>>>;
332
+ fetchError: _angular_core.Signal<any>;
333
+ missingValuePlaceholder: _angular_core.Signal<string>;
334
+ hasMore: _angular_core.Signal<boolean>;
335
+ selectedItems: _angular_core.Signal<RdtLabelValueId<T, TId>[]>;
336
+ loadingOptions: _angular_core.Signal<boolean>;
337
+ loadingMissing: _angular_core.Signal<boolean>;
338
+ loading: _angular_core.Signal<boolean>;
339
+ visibleOptions: _angular_core.Signal<RdtRenderedSelectOption<T, TId>[]>;
340
+ fetch: () => void;
341
+ setDatasource: (datasource: RdtSelectDatasource<T, TId>) => void;
342
+ setQuery: (query: string | null) => void;
343
+ reset: () => void;
344
+ resetTotalCountKnown: () => void;
345
+ setSelected: (ids: TId[]) => void;
346
+ select: (ids: TId[]) => void;
347
+ unselectAll: () => void;
348
+ selectSingle: (id: TId) => void;
349
+ toggle: (id: TId) => void;
350
+ cancelFetch: () => void;
351
+ isSelected: (item: T) => boolean;
352
+ setPageSize: (size: number) => void;
353
+ } & _ngrx_signals.StateSource<{
354
+ query: string | null;
355
+ nextPageIndex: number | null;
356
+ pageSize: number;
357
+ totalCount: number;
358
+ totalCountKnown: boolean;
359
+ options: RdtLabelValueId<T, TId>[];
360
+ datasource: RdtSelectDatasource<T, TId> | null;
361
+ selectedMap: Map<TId, RdtLabelValueId<T, TId>>;
362
+ fetchError: any | null;
363
+ missingValuePlaceholder: string;
364
+ }>>;
365
+ declare const RdtSelectStore: _angular_core.Type<{
366
+ query: _angular_core.Signal<string | null>;
367
+ nextPageIndex: _angular_core.Signal<number | null>;
368
+ pageSize: _angular_core.Signal<number>;
369
+ totalCount: _angular_core.Signal<number>;
370
+ totalCountKnown: _angular_core.Signal<boolean>;
371
+ options: _angular_core.Signal<RdtLabelValueId<any, any>[]>;
372
+ datasource: _angular_core.Signal<RdtSelectDatasource<any, any> | null>;
373
+ selectedMap: _angular_core.Signal<Map<any, RdtLabelValueId<any, any>>>;
374
+ fetchError: _angular_core.Signal<any>;
375
+ missingValuePlaceholder: _angular_core.Signal<string>;
376
+ hasMore: _angular_core.Signal<boolean>;
377
+ selectedItems: _angular_core.Signal<RdtLabelValueId<any, any>[]>;
378
+ loadingOptions: _angular_core.Signal<boolean>;
379
+ loadingMissing: _angular_core.Signal<boolean>;
380
+ loading: _angular_core.Signal<boolean>;
381
+ visibleOptions: _angular_core.Signal<RdtRenderedSelectOption<any, any>[]>;
382
+ fetch: () => void;
383
+ setDatasource: (datasource: RdtSelectDatasource<any, any>) => void;
384
+ setQuery: (query: string | null) => void;
385
+ reset: () => void;
386
+ resetTotalCountKnown: () => void;
387
+ setSelected: (ids: any[]) => void;
388
+ select: (ids: any[]) => void;
389
+ unselectAll: () => void;
390
+ selectSingle: (id: any) => void;
391
+ toggle: (id: any) => void;
392
+ cancelFetch: () => void;
393
+ isSelected: (item: any) => boolean;
394
+ setPageSize: (size: number) => void;
395
+ } & _ngrx_signals.StateSource<{
396
+ query: string | null;
397
+ nextPageIndex: number | null;
398
+ pageSize: number;
399
+ totalCount: number;
400
+ totalCountKnown: boolean;
401
+ options: RdtLabelValueId<any, any>[];
402
+ datasource: RdtSelectDatasource<any, any> | null;
403
+ selectedMap: Map<any, RdtLabelValueId<any, any>>;
404
+ fetchError: any | null;
405
+ missingValuePlaceholder: string;
406
+ }>>;
407
+ type RdtSelectStore<T = any, TId = number> = InstanceType<ReturnType<typeof getRdtSelectStore<T, TId>>>;
408
+
409
+ declare abstract class RdtBaseSelectCommonComponent<TItem, TId, TOut> extends RdtBaseFormInputComponent<TOut> {
410
+ readonly datasourceInput: _angular_core.InputSignal<RdtSelectDatasource<TItem, TId> | null>;
411
+ readonly store: RdtSelectStore<TItem, TId>;
412
+ readonly visibleOptions: _angular_core.Signal<RdtRenderedSelectOption<TItem, TId>[]>;
413
+ readonly queryValidatorFnInput: _angular_core.InputSignal<Nullable<ValidatorFn | ValidatorFn[]>>;
414
+ readonly queryValidatorFn: _angular_core.WritableSignal<Nullable<ValidatorFn | ValidatorFn[]>>;
415
+ private readonly queryValidatorEffect;
416
+ readonly inputCtrl: FormControl<string | null>;
417
+ private readonly inputCtrlEvents;
418
+ readonly inputErrors: _angular_core.Signal<_angular_forms.ValidationErrors | null>;
419
+ readonly debounceTimeInput: _angular_core.InputSignal<number>;
420
+ readonly debounceTime: _angular_core.WritableSignal<number>;
421
+ private readonly debouncedInput$;
422
+ readonly debouncedInput: _angular_core.Signal<string | null>;
423
+ readonly pageSizeInput: _angular_core.InputSignal<number>;
424
+ private readonly pageSizeEffect;
425
+ readonly loading: _angular_core.Signal<boolean>;
426
+ ngOnInit(): void;
427
+ protected handleInput(value: string | null): void;
428
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtBaseSelectCommonComponent<any, any, any>, never>;
429
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdtBaseSelectCommonComponent<any, any, any>, never, never, { "datasourceInput": { "alias": "datasourceInput"; "required": false; "isSignal": true; }; "queryValidatorFnInput": { "alias": "inputValidator"; "required": false; "isSignal": true; }; "debounceTimeInput": { "alias": "debounce"; "required": false; "isSignal": true; }; "pageSizeInput": { "alias": "pageSize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
430
+ }
431
+
432
+ declare abstract class RdtMultiSelectComponent<TItem, TId> extends RdtBaseSelectCommonComponent<TItem, TId, TId[]> {
433
+ readonly selected: _angular_core.Signal<RdtLabelValueId<TItem, TId>[] | null>;
434
+ protected isEmpty(value: TId[]): boolean;
435
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtMultiSelectComponent<any, any>, never>;
436
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdtMultiSelectComponent<any, any>, never, never, {}, {}, never, never, true, never>;
437
+ }
438
+
439
+ declare abstract class RdtSingleSelectComponent<TItem, TId> extends RdtBaseSelectCommonComponent<TItem, TId, TId> {
440
+ readonly selected: _angular_core.Signal<RdtLabelValueId<TItem, TId> | null>;
441
+ protected isEmpty(value: TId): boolean;
442
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtSingleSelectComponent<any, any>, never>;
443
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdtSingleSelectComponent<any, any>, never, never, {}, {}, never, never, true, never>;
444
+ }
445
+
446
+ type RdtInputType = 'text' | 'number' | 'email' | 'password';
447
+
448
+ declare abstract class RdtTextInputComponent extends RdtBaseFormInputComponent<string, string> {
449
+ readonly type: _angular_core.InputSignal<RdtInputType>;
450
+ readonly autocomplete: _angular_core.InputSignalWithTransform<RdtAutocompleteOptions | undefined, Nullable<RdtAutocompleteOptions>>;
451
+ readonly maxlength: _angular_core.InputSignalWithTransform<Nullable<number>, Nullable<string | number>>;
452
+ readonly minlength: _angular_core.InputSignalWithTransform<Nullable<number>, Nullable<string | number>>;
453
+ readonly pattern: _angular_core.InputSignalWithTransform<Nullable<string>, Nullable<string>>;
454
+ protected isEmpty(value: string | null): boolean;
455
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtTextInputComponent, never>;
456
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdtTextInputComponent, never, never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "minlength": { "alias": "minlength"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
457
+ }
458
+
459
+ export { NO_OP_FILE_READER, NoOpFileReader, RDT_DEFAULT_FILE_LABEL_FN, RDT_DEFAULT_FILE_READER, RDT_DEFAULT_MAX_FILE_SIZE, RdtCheckboxComponent, RdtDateComponent, RdtFileInputComponent, RdtFileReader, RdtFileReaderArrayBuffer, RdtFileReaderBase64, RdtMultiSelectComponent, RdtNumericInputComponent, RdtOfflineSelectDatasource, RdtSelectDatasource, RdtSelectOfflineDatasourceProviderDirective, RdtSelectOptionDirective, RdtSelectStore, RdtSingleSelectComponent, RdtTextInputComponent, VnshFileReaderText, czechFileLabelFn, rdtSelectInitialState };
460
+ export type { RdtDateType, RdtFileLabelFn, RdtSelectPage, RdtSelectState };
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@ngrdt/forms",
3
+ "version": "v0.0.18",
4
+ "peerDependencies": {
5
+ "@ngrdt/core": "v0.0.18",
6
+ "@ngrdt/utils": "v0.0.18",
7
+ "@angular/core": "^20.1.0",
8
+ "@angular/forms": "^20.1.0",
9
+ "rxjs": "^7.5.0",
10
+ "@ngrx/signals": "^20.0.0",
11
+ "@angular/cdk": "^20.2.0"
12
+ },
13
+ "sideEffects": false,
14
+ "module": "fesm2022/ngrdt-forms.mjs",
15
+ "typings": "index.d.ts",
16
+ "exports": {
17
+ "./package.json": {
18
+ "default": "./package.json"
19
+ },
20
+ ".": {
21
+ "types": "./index.d.ts",
22
+ "default": "./fesm2022/ngrdt-forms.mjs"
23
+ }
24
+ },
25
+ "dependencies": {
26
+ "tslib": "^2.3.0"
27
+ }
28
+ }