@maro-tech/form 0.0.1 → 0.0.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maro-tech/form",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/cdk": "^21.2.0",
@@ -1,13 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, OnInit, OnChanges, OnDestroy, EventEmitter, SimpleChanges, Type, AfterViewInit, ElementRef } from '@angular/core';
2
+ import { OnChanges, EventEmitter, ElementRef, SimpleChanges, InjectionToken, OnInit, OnDestroy, Type, AfterViewInit } from '@angular/core';
3
3
  import { Observable } from 'rxjs';
4
- import { UiSelectOption as UiSelectOption$1 } from '@forms/inputs/select/ui-select.component';
5
- import { UiFormContext as UiFormContext$1 } from '@forms/context/form-context.service';
6
- import { UiDynamicFormFieldAction as UiDynamicFormFieldAction$1, UiDynamicFormField as UiDynamicFormField$1, UiDynamicFormValue as UiDynamicFormValue$1 } from '@forms/dynamic/ui-dynamic-form.models';
7
- import { ControlValueAccessor } from '@angular/forms';
8
- import { CdkDragDrop } from '@angular/cdk/drag-drop';
9
4
  import * as lucide_angular from 'lucide-angular';
5
+ import { ControlValueAccessor } from '@angular/forms';
10
6
  import { ConnectedPosition } from '@angular/cdk/overlay';
7
+ import { CdkDragDrop } from '@angular/cdk/drag-drop';
11
8
 
12
9
  type UiFormValue = Record<string, unknown>;
13
10
  type UiFormErrors = Record<string, string>;
@@ -36,8 +33,98 @@ declare class MaroFormsApiService {
36
33
  static ɵprov: i0.ɵɵInjectableDeclaration<MaroFormsApiService>;
37
34
  }
38
35
 
36
+ interface UiSelectOption {
37
+ label: string;
38
+ value: string | null;
39
+ disabled?: boolean;
40
+ imageUrl?: string;
41
+ }
42
+ type UiSelectValue = string | string[] | null;
43
+ declare class UiSelectComponent implements ControlValueAccessor, OnChanges {
44
+ readonly closeIcon: lucide_angular.LucideIconData;
45
+ readonly chevronDownIcon: lucide_angular.LucideIconData;
46
+ readonly checkIcon: lucide_angular.LucideIconData;
47
+ private static openInstance;
48
+ private readonly cdr;
49
+ private readonly destroyRef;
50
+ private readonly http;
51
+ label?: string;
52
+ placeholder?: string;
53
+ name?: string;
54
+ data?: string;
55
+ required: boolean;
56
+ fullWidth: boolean;
57
+ disabled: boolean;
58
+ multiple: boolean;
59
+ includeBlankOption: boolean;
60
+ blankOptionLabel: string;
61
+ emptyStateLabel: string;
62
+ searchable: boolean;
63
+ remoteSearch: boolean;
64
+ searchPlaceholder: string;
65
+ private _options;
66
+ set options(value: UiSelectOption[]);
67
+ get options(): UiSelectOption[];
68
+ error?: string;
69
+ hint?: string;
70
+ triggerClass: string;
71
+ panelClass: string;
72
+ valueChange: EventEmitter<UiSelectValue>;
73
+ searchChange: EventEmitter<string>;
74
+ dropdownTrigger?: ElementRef<HTMLButtonElement>;
75
+ readonly dropdownPositions: ConnectedPosition[];
76
+ isOpen: boolean;
77
+ triggerWidth: number;
78
+ value: string | null;
79
+ multiValue: string[];
80
+ selectedOptions: UiSelectOption[];
81
+ searchTerm: string;
82
+ isDictionaryLoading: boolean;
83
+ private readonly searchChanges$;
84
+ private readonly dictionaryRequestVersions;
85
+ private dictionaryOptions;
86
+ private onChange;
87
+ onTouched: () => void;
88
+ constructor();
89
+ ngOnChanges(changes: SimpleChanges): void;
90
+ writeValue(value: UiSelectValue): void;
91
+ registerOnChange(fn: (value: UiSelectValue) => void): void;
92
+ registerOnTouched(fn: () => void): void;
93
+ setDisabledState(isDisabled: boolean): void;
94
+ toggleDropdown(event: Event): void;
95
+ selectOption(option: UiSelectOption, event: Event): void;
96
+ markTouched(): void;
97
+ closeDropdown(): void;
98
+ get displayLabel(): string;
99
+ isSelected(option: UiSelectOption): boolean;
100
+ getOptionValue(option: UiSelectOption): string;
101
+ trackOption(index: number, option: UiSelectOption): string;
102
+ get visibleOptions(): UiSelectOption[];
103
+ onSearchChange(value: string): void;
104
+ removeOption(option: UiSelectOption, event: Event): void;
105
+ private updateSelectionFromValue;
106
+ private getRenderOptions;
107
+ private mergeOptions;
108
+ private isBlankOption;
109
+ private getDictionaryName;
110
+ private reloadDictionaryOptions;
111
+ private loadDictionaryOptions;
112
+ private ensureSelectedDictionaryOptionsLoaded;
113
+ private normalizeSuggestItems;
114
+ private normalizeSuggestItem;
115
+ private loadSuggestItems;
116
+ private loadSuggestItem;
117
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiSelectComponent, never>;
118
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiSelectComponent, "forms-select", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "data": { "alias": "data"; "required": false; }; "required": { "alias": "required"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "includeBlankOption": { "alias": "includeBlankOption"; "required": false; }; "blankOptionLabel": { "alias": "blankOptionLabel"; "required": false; }; "emptyStateLabel": { "alias": "emptyStateLabel"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "remoteSearch": { "alias": "remoteSearch"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "error": { "alias": "error"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "triggerClass": { "alias": "triggerClass"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; }, { "valueChange": "valueChange"; "searchChange": "searchChange"; }, never, never, true, never>;
119
+ static ngAcceptInputType_multiple: unknown;
120
+ }
121
+
39
122
  type ApiPluginMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
40
- type ActionType = 'api' | 'submit' | 'navigate' | 'toggle';
123
+ declare const ACTION_PRINT: "ACTION_PRINT";
124
+ declare const ACTION_FORM: "ACTION_FORM";
125
+ declare const ACTION_API: "ACTION_API";
126
+ declare const ACTION_SUBMIT: "ACTION_SUBMIT";
127
+ type ActionType = typeof ACTION_PRINT | typeof ACTION_FORM | typeof ACTION_API | typeof ACTION_SUBMIT;
41
128
  type UiDynamicFieldType = 'text' | 'number' | 'date' | 'datetime' | 'email' | 'password' | 'textarea' | 'select' | 'barcode' | 'checkbox' | 'color' | 'range' | 'slug' | 'file' | 'photo' | 'container' | 'template';
42
129
  interface UiDynamicFormFieldAction {
43
130
  id: string;
@@ -67,7 +154,7 @@ interface UiDynamicFormBaseField {
67
154
  readonly?: boolean;
68
155
  data?: string;
69
156
  optionsSource?: string;
70
- options?: UiSelectOption$1[];
157
+ options?: UiSelectOption[];
71
158
  searchable?: boolean;
72
159
  rows?: number;
73
160
  fullWidth?: boolean;
@@ -129,14 +216,14 @@ interface UiDynamicFormOptionsSourceContext {
129
216
  }
130
217
  interface UiDynamicFormOptionsSourceResolver {
131
218
  source: string;
132
- resolve(context: UiDynamicFormOptionsSourceContext): Observable<UiSelectOption$1[]>;
219
+ resolve(context: UiDynamicFormOptionsSourceContext): Observable<UiSelectOption[]>;
133
220
  }
134
221
  declare const UI_DYNAMIC_FORM_OPTIONS_SOURCE_RESOLVERS: InjectionToken<UiDynamicFormOptionsSourceResolver[]>;
135
222
 
136
223
  declare class UiDynamicFormComponent implements OnInit, OnChanges, OnDestroy {
137
224
  private readonly formsApi;
138
225
  private readonly lookupService;
139
- readonly formContext: UiFormContext$1;
226
+ readonly formContext: UiFormContext;
140
227
  private readonly optionsSourceResolvers;
141
228
  fields: UiDynamicFormField[];
142
229
  value: UiDynamicFormValue;
@@ -163,7 +250,7 @@ declare class UiDynamicFormComponent implements OnInit, OnChanges, OnDestroy {
163
250
  action: UiDynamicFormFieldAction;
164
251
  }>;
165
252
  readonly modelSignal: i0.WritableSignal<UiDynamicFormValue>;
166
- readonly dictionaryOptionsSignal: i0.WritableSignal<Record<string, UiSelectOption$1[]>>;
253
+ readonly dictionaryOptionsSignal: i0.WritableSignal<Record<string, UiSelectOption[]>>;
167
254
  readonly lookupLoadingSignal: i0.WritableSignal<Record<string, boolean>>;
168
255
  readonly lookupErrorsSignal: i0.WritableSignal<Record<string, string>>;
169
256
  private readonly selectSearchChanges;
@@ -194,7 +281,7 @@ declare class UiDynamicFormComponent implements OnInit, OnChanges, OnDestroy {
194
281
  isTemplateField(field: UiDynamicFormField): boolean;
195
282
  isFieldVisible(field: UiDynamicFormField): boolean;
196
283
  resolveInputType(field: UiDynamicFormField): string;
197
- resolveSelectOptions(field: UiDynamicFormField): UiSelectOption$1[];
284
+ resolveSelectOptions(field: UiDynamicFormField): UiSelectOption[];
198
285
  renderTemplate(field: UiDynamicFormField): string;
199
286
  getContainerTag(field: UiDynamicFormField): 'div' | 'section' | 'aside' | 'fieldset';
200
287
  getContainerClass(field: UiDynamicFormField): string;
@@ -213,7 +300,7 @@ declare class UiDynamicFormComponent implements OnInit, OnChanges, OnDestroy {
213
300
  static ɵcmp: i0.ɵɵComponentDeclaration<UiDynamicFormComponent, "forms-dynamic-form", never, { "fields": { "alias": "fields"; "required": false; }; "value": { "alias": "value"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "submitLabel": { "alias": "submitLabel"; "required": false; }; "showSubmit": { "alias": "showSubmit"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "uploadPhoto": { "alias": "uploadPhoto"; "required": false; }; }, { "valueChange": "valueChange"; "lookupCompleted": "lookupCompleted"; "submitted": "submitted"; "filesChange": "filesChange"; "uploadingChange": "uploadingChange"; "fieldActionTriggered": "fieldActionTriggered"; }, never, never, true, never>;
214
301
  }
215
302
 
216
- interface MaroFormViewAction extends UiDynamicFormFieldAction$1 {
303
+ interface MaroFormViewAction extends UiDynamicFormFieldAction {
217
304
  redirectTo?: string;
218
305
  }
219
306
  interface MaroFormViewResponse {
@@ -221,7 +308,7 @@ interface MaroFormViewResponse {
221
308
  api?: string;
222
309
  defaults?: Record<string, unknown>;
223
310
  redirectTo?: string;
224
- fields: UiDynamicFormField$1[];
311
+ fields: UiDynamicFormField[];
225
312
  actions?: MaroFormViewAction[];
226
313
  item?: Record<string, unknown> | null;
227
314
  }
@@ -238,18 +325,18 @@ declare class UiActionFormModalComponent implements OnChanges {
238
325
  readonly isLoading: i0.WritableSignal<boolean>;
239
326
  readonly isSubmitting: i0.WritableSignal<boolean>;
240
327
  readonly formConfig: i0.WritableSignal<MaroFormViewResponse | null>;
241
- readonly formValue: i0.WritableSignal<UiDynamicFormValue$1>;
242
- readonly fields: i0.Signal<UiDynamicFormField$1[]>;
328
+ readonly formValue: i0.WritableSignal<UiDynamicFormValue>;
329
+ readonly fields: i0.Signal<UiDynamicFormField[]>;
243
330
  readonly submitAction: i0.Signal<MaroFormViewAction | undefined>;
244
331
  readonly submitLabel: i0.Signal<string | true>;
245
332
  private readonly http;
246
333
  private readonly router;
247
334
  ngOnChanges(changes: SimpleChanges): void;
248
335
  close(): void;
249
- onValueChange(value: UiDynamicFormValue$1): void;
336
+ onValueChange(value: UiDynamicFormValue): void;
250
337
  onFieldActionTriggered(event: {
251
338
  fieldId: string;
252
- action: UiDynamicFormFieldAction$1;
339
+ action: UiDynamicFormFieldAction;
253
340
  }): void;
254
341
  confirm(): void;
255
342
  private loadForm;
@@ -390,12 +477,12 @@ declare class UiDateInputComponent implements ControlValueAccessor {
390
477
  readonly: boolean;
391
478
  pattern?: string;
392
479
  error?: string;
393
- actions: UiDynamicFormFieldAction$1[];
480
+ actions: UiDynamicFormFieldAction[];
394
481
  disabled: boolean;
395
482
  value: string | number | null;
396
483
  private static nextId;
397
484
  private readonly generatedId;
398
- actionTriggered: EventEmitter<UiDynamicFormFieldAction$1>;
485
+ actionTriggered: EventEmitter<UiDynamicFormFieldAction>;
399
486
  get controlId(): string;
400
487
  private onChange;
401
488
  onTouched: () => void;
@@ -404,7 +491,7 @@ declare class UiDateInputComponent implements ControlValueAccessor {
404
491
  registerOnTouched(fn: () => void): void;
405
492
  setDisabledState(isDisabled: boolean): void;
406
493
  onValueChange(value: string): void;
407
- triggerAction(action: UiDynamicFormFieldAction$1): void;
494
+ triggerAction(action: UiDynamicFormFieldAction): void;
408
495
  static ɵfac: i0.ɵɵFactoryDeclaration<UiDateInputComponent, never>;
409
496
  static ɵcmp: i0.ɵɵComponentDeclaration<UiDateInputComponent, "forms-date-input", never, { "label": { "alias": "label"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "required": { "alias": "required"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "error": { "alias": "error"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; }, { "actionTriggered": "actionTriggered"; }, never, never, true, never>;
410
497
  }
@@ -426,12 +513,12 @@ declare class UiDatetimeInputComponent implements ControlValueAccessor {
426
513
  readonly: boolean;
427
514
  pattern?: string;
428
515
  error?: string;
429
- actions: UiDynamicFormFieldAction$1[];
516
+ actions: UiDynamicFormFieldAction[];
430
517
  disabled: boolean;
431
518
  value: string | number | null;
432
519
  private static nextId;
433
520
  private readonly generatedId;
434
- actionTriggered: EventEmitter<UiDynamicFormFieldAction$1>;
521
+ actionTriggered: EventEmitter<UiDynamicFormFieldAction>;
435
522
  get controlId(): string;
436
523
  private onChange;
437
524
  onTouched: () => void;
@@ -440,7 +527,7 @@ declare class UiDatetimeInputComponent implements ControlValueAccessor {
440
527
  registerOnTouched(fn: () => void): void;
441
528
  setDisabledState(isDisabled: boolean): void;
442
529
  onValueChange(value: string): void;
443
- triggerAction(action: UiDynamicFormFieldAction$1): void;
530
+ triggerAction(action: UiDynamicFormFieldAction): void;
444
531
  static ɵfac: i0.ɵɵFactoryDeclaration<UiDatetimeInputComponent, never>;
445
532
  static ɵcmp: i0.ɵɵComponentDeclaration<UiDatetimeInputComponent, "forms-datetime-input", never, { "label": { "alias": "label"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "required": { "alias": "required"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "error": { "alias": "error"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; }, { "actionTriggered": "actionTriggered"; }, never, never, true, never>;
446
533
  }
@@ -462,12 +549,12 @@ declare class UiEmailInputComponent implements ControlValueAccessor {
462
549
  readonly: boolean;
463
550
  pattern?: string;
464
551
  error?: string;
465
- actions: UiDynamicFormFieldAction$1[];
552
+ actions: UiDynamicFormFieldAction[];
466
553
  disabled: boolean;
467
554
  value: string | number | null;
468
555
  private static nextId;
469
556
  private readonly generatedId;
470
- actionTriggered: EventEmitter<UiDynamicFormFieldAction$1>;
557
+ actionTriggered: EventEmitter<UiDynamicFormFieldAction>;
471
558
  get controlId(): string;
472
559
  private onChange;
473
560
  onTouched: () => void;
@@ -476,7 +563,7 @@ declare class UiEmailInputComponent implements ControlValueAccessor {
476
563
  registerOnTouched(fn: () => void): void;
477
564
  setDisabledState(isDisabled: boolean): void;
478
565
  onValueChange(value: string): void;
479
- triggerAction(action: UiDynamicFormFieldAction$1): void;
566
+ triggerAction(action: UiDynamicFormFieldAction): void;
480
567
  static ɵfac: i0.ɵɵFactoryDeclaration<UiEmailInputComponent, never>;
481
568
  static ɵcmp: i0.ɵɵComponentDeclaration<UiEmailInputComponent, "forms-email-input", never, { "label": { "alias": "label"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "required": { "alias": "required"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "error": { "alias": "error"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; }, { "actionTriggered": "actionTriggered"; }, never, never, true, never>;
482
569
  }
@@ -514,12 +601,12 @@ declare class UiInputComponent implements ControlValueAccessor {
514
601
  readonly: boolean;
515
602
  pattern?: string;
516
603
  error?: string;
517
- actions: UiDynamicFormFieldAction$1[];
604
+ actions: UiDynamicFormFieldAction[];
518
605
  disabled: boolean;
519
606
  value: string | number | null;
520
607
  private static nextId;
521
608
  private readonly generatedId;
522
- actionTriggered: EventEmitter<UiDynamicFormFieldAction$1>;
609
+ actionTriggered: EventEmitter<UiDynamicFormFieldAction>;
523
610
  get controlId(): string;
524
611
  private onChange;
525
612
  onTouched: () => void;
@@ -528,7 +615,7 @@ declare class UiInputComponent implements ControlValueAccessor {
528
615
  registerOnTouched(fn: () => void): void;
529
616
  setDisabledState(isDisabled: boolean): void;
530
617
  onValueChange(value: string): void;
531
- triggerAction(action: UiDynamicFormFieldAction$1): void;
618
+ triggerAction(action: UiDynamicFormFieldAction): void;
532
619
  static ɵfac: i0.ɵɵFactoryDeclaration<UiInputComponent, never>;
533
620
  static ɵcmp: i0.ɵɵComponentDeclaration<UiInputComponent, "forms-input", never, { "label": { "alias": "label"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "type": { "alias": "type"; "required": false; }; "element": { "alias": "element"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "required": { "alias": "required"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "error": { "alias": "error"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; }, { "actionTriggered": "actionTriggered"; }, never, never, true, never>;
534
621
  }
@@ -551,11 +638,11 @@ declare class UiNumberInputComponent implements ControlValueAccessor {
551
638
  disabled: boolean;
552
639
  pattern?: string;
553
640
  error?: string;
554
- actions: UiDynamicFormFieldAction$1[];
641
+ actions: UiDynamicFormFieldAction[];
555
642
  value: string | number | null;
556
643
  private static nextId;
557
644
  private readonly generatedId;
558
- actionTriggered: EventEmitter<UiDynamicFormFieldAction$1>;
645
+ actionTriggered: EventEmitter<UiDynamicFormFieldAction>;
559
646
  get controlId(): string;
560
647
  private onChange;
561
648
  onTouched: () => void;
@@ -564,7 +651,7 @@ declare class UiNumberInputComponent implements ControlValueAccessor {
564
651
  registerOnTouched(fn: () => void): void;
565
652
  setDisabledState(isDisabled: boolean): void;
566
653
  onValueChange(value: string): void;
567
- triggerAction(action: UiDynamicFormFieldAction$1): void;
654
+ triggerAction(action: UiDynamicFormFieldAction): void;
568
655
  static ɵfac: i0.ɵɵFactoryDeclaration<UiNumberInputComponent, never>;
569
656
  static ɵcmp: i0.ɵɵComponentDeclaration<UiNumberInputComponent, "forms-number-input", never, { "label": { "alias": "label"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "required": { "alias": "required"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "error": { "alias": "error"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; }, { "actionTriggered": "actionTriggered"; }, never, never, true, never>;
570
657
  }
@@ -586,12 +673,12 @@ declare class UiPasswordInputComponent implements ControlValueAccessor {
586
673
  readonly: boolean;
587
674
  pattern?: string;
588
675
  error?: string;
589
- actions: UiDynamicFormFieldAction$1[];
676
+ actions: UiDynamicFormFieldAction[];
590
677
  disabled: boolean;
591
678
  value: string | number | null;
592
679
  private static nextId;
593
680
  private readonly generatedId;
594
- actionTriggered: EventEmitter<UiDynamicFormFieldAction$1>;
681
+ actionTriggered: EventEmitter<UiDynamicFormFieldAction>;
595
682
  get controlId(): string;
596
683
  private onChange;
597
684
  onTouched: () => void;
@@ -600,7 +687,7 @@ declare class UiPasswordInputComponent implements ControlValueAccessor {
600
687
  registerOnTouched(fn: () => void): void;
601
688
  setDisabledState(isDisabled: boolean): void;
602
689
  onValueChange(value: string): void;
603
- triggerAction(action: UiDynamicFormFieldAction$1): void;
690
+ triggerAction(action: UiDynamicFormFieldAction): void;
604
691
  static ɵfac: i0.ɵɵFactoryDeclaration<UiPasswordInputComponent, never>;
605
692
  static ɵcmp: i0.ɵɵComponentDeclaration<UiPasswordInputComponent, "forms-password-input", never, { "label": { "alias": "label"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "required": { "alias": "required"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "error": { "alias": "error"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; }, { "actionTriggered": "actionTriggered"; }, never, never, true, never>;
606
693
  }
@@ -718,92 +805,6 @@ declare class UiRangeSliderComponent implements OnChanges, AfterViewInit {
718
805
  static ɵcmp: i0.ɵɵComponentDeclaration<UiRangeSliderComponent, "forms-range-slider", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "startValue": { "alias": "startValue"; "required": false; }; "endValue": { "alias": "endValue"; "required": false; }; "startLabel": { "alias": "startLabel"; "required": false; }; "endLabel": { "alias": "endLabel"; "required": false; }; }, { "startValueChange": "startValueChange"; "endValueChange": "endValueChange"; "interactionEnd": "interactionEnd"; }, never, never, true, never>;
719
806
  }
720
807
 
721
- interface UiSelectOption {
722
- label: string;
723
- value: string | null;
724
- disabled?: boolean;
725
- imageUrl?: string;
726
- }
727
- type UiSelectValue = string | string[] | null;
728
- declare class UiSelectComponent implements ControlValueAccessor, OnChanges {
729
- readonly closeIcon: lucide_angular.LucideIconData;
730
- readonly chevronDownIcon: lucide_angular.LucideIconData;
731
- readonly checkIcon: lucide_angular.LucideIconData;
732
- private static openInstance;
733
- private readonly cdr;
734
- private readonly destroyRef;
735
- private readonly http;
736
- label?: string;
737
- placeholder?: string;
738
- name?: string;
739
- data?: string;
740
- required: boolean;
741
- fullWidth: boolean;
742
- disabled: boolean;
743
- multiple: boolean;
744
- includeBlankOption: boolean;
745
- blankOptionLabel: string;
746
- emptyStateLabel: string;
747
- searchable: boolean;
748
- remoteSearch: boolean;
749
- searchPlaceholder: string;
750
- private _options;
751
- set options(value: UiSelectOption[]);
752
- get options(): UiSelectOption[];
753
- error?: string;
754
- hint?: string;
755
- triggerClass: string;
756
- panelClass: string;
757
- valueChange: EventEmitter<UiSelectValue>;
758
- searchChange: EventEmitter<string>;
759
- dropdownTrigger?: ElementRef<HTMLButtonElement>;
760
- readonly dropdownPositions: ConnectedPosition[];
761
- isOpen: boolean;
762
- triggerWidth: number;
763
- value: string | null;
764
- multiValue: string[];
765
- selectedOptions: UiSelectOption[];
766
- searchTerm: string;
767
- isDictionaryLoading: boolean;
768
- private readonly searchChanges$;
769
- private readonly dictionaryRequestVersions;
770
- private dictionaryOptions;
771
- private onChange;
772
- onTouched: () => void;
773
- constructor();
774
- ngOnChanges(changes: SimpleChanges): void;
775
- writeValue(value: UiSelectValue): void;
776
- registerOnChange(fn: (value: UiSelectValue) => void): void;
777
- registerOnTouched(fn: () => void): void;
778
- setDisabledState(isDisabled: boolean): void;
779
- toggleDropdown(event: Event): void;
780
- selectOption(option: UiSelectOption, event: Event): void;
781
- markTouched(): void;
782
- closeDropdown(): void;
783
- get displayLabel(): string;
784
- isSelected(option: UiSelectOption): boolean;
785
- getOptionValue(option: UiSelectOption): string;
786
- trackOption(index: number, option: UiSelectOption): string;
787
- get visibleOptions(): UiSelectOption[];
788
- onSearchChange(value: string): void;
789
- removeOption(option: UiSelectOption, event: Event): void;
790
- private updateSelectionFromValue;
791
- private getRenderOptions;
792
- private mergeOptions;
793
- private isBlankOption;
794
- private getDictionaryName;
795
- private reloadDictionaryOptions;
796
- private loadDictionaryOptions;
797
- private ensureSelectedDictionaryOptionsLoaded;
798
- private normalizeSuggestItems;
799
- private normalizeSuggestItem;
800
- private loadSuggestItems;
801
- private loadSuggestItem;
802
- static ɵfac: i0.ɵɵFactoryDeclaration<UiSelectComponent, never>;
803
- static ɵcmp: i0.ɵɵComponentDeclaration<UiSelectComponent, "forms-select", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "data": { "alias": "data"; "required": false; }; "required": { "alias": "required"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "includeBlankOption": { "alias": "includeBlankOption"; "required": false; }; "blankOptionLabel": { "alias": "blankOptionLabel"; "required": false; }; "emptyStateLabel": { "alias": "emptyStateLabel"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "remoteSearch": { "alias": "remoteSearch"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "error": { "alias": "error"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "triggerClass": { "alias": "triggerClass"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; }, { "valueChange": "valueChange"; "searchChange": "searchChange"; }, never, never, true, never>;
804
- static ngAcceptInputType_multiple: unknown;
805
- }
806
-
807
808
  declare class UiSlugInputComponent implements ControlValueAccessor {
808
809
  label?: string;
809
810
  hint?: string;
@@ -850,12 +851,12 @@ declare class UiTextInputComponent implements ControlValueAccessor {
850
851
  readonly: boolean;
851
852
  pattern?: string;
852
853
  error?: string;
853
- actions: UiDynamicFormFieldAction$1[];
854
+ actions: UiDynamicFormFieldAction[];
854
855
  disabled: boolean;
855
856
  value: string | number | null;
856
857
  private static nextId;
857
858
  private readonly generatedId;
858
- actionTriggered: EventEmitter<UiDynamicFormFieldAction$1>;
859
+ actionTriggered: EventEmitter<UiDynamicFormFieldAction>;
859
860
  get controlId(): string;
860
861
  private onChange;
861
862
  onTouched: () => void;
@@ -864,7 +865,7 @@ declare class UiTextInputComponent implements ControlValueAccessor {
864
865
  registerOnTouched(fn: () => void): void;
865
866
  setDisabledState(isDisabled: boolean): void;
866
867
  onValueChange(value: string): void;
867
- triggerAction(action: UiDynamicFormFieldAction$1): void;
868
+ triggerAction(action: UiDynamicFormFieldAction): void;
868
869
  static ɵfac: i0.ɵɵFactoryDeclaration<UiTextInputComponent, never>;
869
870
  static ɵcmp: i0.ɵɵComponentDeclaration<UiTextInputComponent, "forms-text-input", never, { "label": { "alias": "label"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "required": { "alias": "required"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "error": { "alias": "error"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; }, { "actionTriggered": "actionTriggered"; }, never, never, true, never>;
870
871
  }
@@ -886,12 +887,12 @@ declare class UiTextareaInputComponent implements ControlValueAccessor {
886
887
  readonly: boolean;
887
888
  pattern?: string;
888
889
  error?: string;
889
- actions: UiDynamicFormFieldAction$1[];
890
+ actions: UiDynamicFormFieldAction[];
890
891
  disabled: boolean;
891
892
  value: string | number | null;
892
893
  private static nextId;
893
894
  private readonly generatedId;
894
- actionTriggered: EventEmitter<UiDynamicFormFieldAction$1>;
895
+ actionTriggered: EventEmitter<UiDynamicFormFieldAction>;
895
896
  get controlId(): string;
896
897
  private onChange;
897
898
  onTouched: () => void;
@@ -900,10 +901,10 @@ declare class UiTextareaInputComponent implements ControlValueAccessor {
900
901
  registerOnTouched(fn: () => void): void;
901
902
  setDisabledState(isDisabled: boolean): void;
902
903
  onValueChange(value: string): void;
903
- triggerAction(action: UiDynamicFormFieldAction$1): void;
904
+ triggerAction(action: UiDynamicFormFieldAction): void;
904
905
  static ɵfac: i0.ɵɵFactoryDeclaration<UiTextareaInputComponent, never>;
905
906
  static ɵcmp: i0.ɵɵComponentDeclaration<UiTextareaInputComponent, "forms-textarea-input", never, { "label": { "alias": "label"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "required": { "alias": "required"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "error": { "alias": "error"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; }, { "actionTriggered": "actionTriggered"; }, never, never, true, never>;
906
907
  }
907
908
 
908
- export { MaroFormsApiService, UI_DYNAMIC_FORM_OPTIONS_SOURCE_RESOLVERS, UI_FORM_INPUT_REGISTRY, UiActionFormModalComponent, UiBarcodeScannerInputComponent, UiCheckboxInputComponent, UiColorInputComponent, UiDateInputComponent, UiDatetimeInputComponent, UiDynamicFormComponent, UiEmailInputComponent, UiFileInputComponent, UiFormContext, UiFormInputHostComponent, UiFormLookupService, UiInputComponent, UiNumberInputComponent, UiPasswordInputComponent, UiPhotoGalleryFieldComponent, UiPhotoInputComponent, UiRangeSliderComponent, UiSelectComponent, UiSlugInputComponent, UiTextInputComponent, UiTextareaInputComponent, flattenDynamicFormFields, isDynamicFormContainerField, isDynamicFormTemplateField };
909
+ export { ACTION_API, ACTION_FORM, ACTION_PRINT, ACTION_SUBMIT, MaroFormsApiService, UI_DYNAMIC_FORM_OPTIONS_SOURCE_RESOLVERS, UI_FORM_INPUT_REGISTRY, UiActionFormModalComponent, UiBarcodeScannerInputComponent, UiCheckboxInputComponent, UiColorInputComponent, UiDateInputComponent, UiDatetimeInputComponent, UiDynamicFormComponent, UiEmailInputComponent, UiFileInputComponent, UiFormContext, UiFormInputHostComponent, UiFormLookupService, UiInputComponent, UiNumberInputComponent, UiPasswordInputComponent, UiPhotoGalleryFieldComponent, UiPhotoInputComponent, UiRangeSliderComponent, UiSelectComponent, UiSlugInputComponent, UiTextInputComponent, UiTextareaInputComponent, flattenDynamicFormFields, isDynamicFormContainerField, isDynamicFormTemplateField };
909
910
  export type { ActionType, ApiPluginMethod, MaroFormViewAction, MaroFormViewResponse, UiDynamicFieldType, UiDynamicFormBaseField, UiDynamicFormContainerField, UiDynamicFormField, UiDynamicFormFieldAction, UiDynamicFormOptionsSourceContext, UiDynamicFormOptionsSourceResolver, UiDynamicFormTemplateField, UiDynamicFormValue, UiFormErrors, UiFormInputType, UiFormSubmitState, UiFormValue, UiPhotoGalleryEntry, UiPhotoPreview, UiSelectOption, UiSelectValue };