@ngstarter-ui/components 21.0.46 → 21.0.48

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,7 +1,7 @@
1
1
  {
2
2
  "name": "@ngstarter-ui/components",
3
3
  "description": "NgStarter - AI-friendly Enterprise Angular UI Components and Admin Panel",
4
- "version": "21.0.46",
4
+ "version": "21.0.48",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/elementarlabsdev/ngstarter.git"
@@ -123,6 +123,7 @@
123
123
  --text-md: 0.825rem;
124
124
 
125
125
  /* --- RADII --- */
126
+ --radius-current: var(--ngs-control-radius);
126
127
  --radius-small: var(--ngs-radius-sm);
127
128
  --radius-medium: var(--ngs-radius-md);
128
129
  --radius-large: var(--ngs-radius-lg);
@@ -1,15 +1,15 @@
1
1
  import * as _angular_forms from '@angular/forms';
2
- import { ValidatorFn, FormControl, FormGroup } from '@angular/forms';
2
+ import { ValidatorFn, FormControl, FormGroup, FormArray } from '@angular/forms';
3
3
  import * as _angular_core from '@angular/core';
4
- import { Type, InjectionToken, EnvironmentProviders, TemplateRef } from '@angular/core';
4
+ import { Type, InjectionToken, EnvironmentProviders, Provider, TemplateRef } from '@angular/core';
5
5
  import { TreeNodeDropPosition, Tree, TreeNodeDrop } from '@ngstarter-ui/components/tree';
6
6
  import { DateRangeInput } from '@ngstarter-ui/components/datepicker';
7
7
  import { RadioGroupOrientation } from '@ngstarter-ui/components/radio';
8
8
  import { UploadFileSelectedEvent } from '@ngstarter-ui/components/upload';
9
- import * as _ngstarter_ui_components_form_builder from '@ngstarter-ui/components/form-builder';
10
9
 
11
10
  type FormBuilderFieldWidth = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
12
11
  type FormBuilderItemKind = 'field' | 'layout' | 'static';
12
+ type FormBuilderSettingsInheritance = 'field' | 'input-field' | 'layout' | 'layout-container' | 'static' | 'none';
13
13
  interface FormBuilderOption {
14
14
  label: string;
15
15
  value: any;
@@ -20,12 +20,6 @@ interface FormBuilderValidationRule {
20
20
  value?: any;
21
21
  message?: string;
22
22
  }
23
- interface FormBuilderVisibility {
24
- form?: boolean;
25
- email?: boolean;
26
- pdf?: boolean;
27
- condition?: string;
28
- }
29
23
  interface FormBuilderField {
30
24
  id: string;
31
25
  name: string;
@@ -43,7 +37,6 @@ interface FormBuilderField {
43
37
  width?: FormBuilderFieldWidth;
44
38
  options?: FormBuilderOption[];
45
39
  validation?: FormBuilderValidationRule[];
46
- visibility?: FormBuilderVisibility;
47
40
  settings?: Record<string, any>;
48
41
  children?: FormBuilderField[];
49
42
  }
@@ -78,12 +71,12 @@ interface FormBuilderUploadContext {
78
71
  multiple: boolean;
79
72
  }
80
73
  type FormBuilderUploadCallback = (context: FormBuilderUploadContext) => any | Promise<any>;
74
+ type FormBuilderComponentImporter<T = any> = () => Promise<Type<T>>;
81
75
  interface FormBuilderSettingsContext {
82
76
  field: FormBuilderField;
83
77
  schema: FormBuilderSchema;
84
78
  update: (changes: Partial<FormBuilderField>) => void;
85
79
  }
86
- type FormBuilderComponentImporter<T = any> = () => Promise<Type<T>>;
87
80
  interface FormBuilderFieldSettingsContext {
88
81
  item: FormBuilderField;
89
82
  field: FormBuilderField;
@@ -100,6 +93,11 @@ interface FormBuilderSectionSettingsContext {
100
93
  update: (changes: Partial<FormBuilderSection>) => void;
101
94
  updateSection: (changes: Partial<FormBuilderSection>) => void;
102
95
  }
96
+ type FormBuilderSettingsSchemaFactory = (context: FormBuilderFieldSettingsContext | FormBuilderSectionSettingsContext) => FormBuilderSchema;
97
+ interface FormBuilderSettingsConfig {
98
+ extends?: FormBuilderSettingsInheritance;
99
+ schema?: FormBuilderSchema | FormBuilderSettingsSchemaFactory;
100
+ }
103
101
  interface FormBuilderItemDefinition {
104
102
  type: string;
105
103
  label: string;
@@ -109,7 +107,7 @@ interface FormBuilderItemDefinition {
109
107
  description?: string;
110
108
  defaults?: Partial<FormBuilderField>;
111
109
  renderer?: FormBuilderComponentImporter;
112
- settings?: FormBuilderComponentImporter;
110
+ settings?: FormBuilderComponentImporter | FormBuilderSettingsConfig;
113
111
  acceptsChildren?: boolean;
114
112
  }
115
113
  interface FormBuilderFieldDefinition extends FormBuilderItemDefinition {
@@ -135,12 +133,20 @@ declare const FORM_BUILDER_UPLOAD_CALLBACK: InjectionToken<FormBuilderUploadCall
135
133
  declare function formBuilderField(definition: FormBuilderFieldDefinition): FormBuilderFieldDefinition;
136
134
  declare function formBuilderItem(definition: FormBuilderItemDefinition): FormBuilderItemDefinition;
137
135
  declare function formBuilderSettings(definition: FormBuilderSettingsDefinition): FormBuilderSettingsDefinition;
136
+ declare function provideFormBuilderField(definition: FormBuilderFieldDefinition): Provider;
137
+ declare function provideFormBuilderFields(definitions: FormBuilderFieldDefinition[]): Provider[];
138
138
  declare function provideFormBuilder(config?: {
139
139
  items?: FormBuilderItemDefinition[];
140
140
  fields?: FormBuilderFieldDefinition[];
141
141
  settings?: FormBuilderSettingsDefinition[];
142
142
  uploadCallback?: FormBuilderUploadCallback;
143
143
  }): EnvironmentProviders;
144
+ declare const FORM_BUILDER_FIELD_BASE_SETTINGS_SCHEMA: FormBuilderSchema;
145
+ declare const FORM_BUILDER_INPUT_FIELD_BASE_SETTINGS_SCHEMA: FormBuilderSchema;
146
+ declare const FORM_BUILDER_LAYOUT_BASE_SETTINGS_SCHEMA: FormBuilderSchema;
147
+ declare const FORM_BUILDER_LAYOUT_CONTAINER_BASE_SETTINGS_SCHEMA: FormBuilderSchema;
148
+ declare const FORM_BUILDER_STATIC_BASE_SETTINGS_SCHEMA: FormBuilderSchema;
149
+ declare const FORM_BUILDER_SECTION_BASE_SETTINGS_SCHEMA: FormBuilderSchema;
144
150
  declare const DEFAULT_FORM_BUILDER_FIELDS: FormBuilderFieldDefinition[];
145
151
  declare const DEFAULT_FORM_BUILDER_ITEMS: FormBuilderItemDefinition[];
146
152
  declare function validatorsFromRules(rules?: FormBuilderValidationRule[], field?: FormBuilderField): _angular_forms.ValidatorFn[];
@@ -330,13 +336,23 @@ declare class FormBuilderRenderer {
330
336
  protected readonly visibleCanvasItems: _angular_core.Signal<FormBuilderRendererCanvasItem[]>;
331
337
  protected readonly formGroup: _angular_core.Signal<FormGroup<any>>;
332
338
  constructor();
333
- protected getControl(field: FormBuilderField): FormControl;
339
+ protected getControl(field: FormBuilderField, formGroup?: FormGroup<any>): FormControl;
334
340
  protected isContainerField(field: FormBuilderField): boolean;
335
341
  protected visibleChildren(field: FormBuilderField): FormBuilderField[];
342
+ protected isRepeaterField(field: FormBuilderField): boolean;
343
+ protected repeaterArray(field: FormBuilderField, formGroup?: FormGroup<any>): FormArray<FormGroup>;
344
+ protected repeaterGroups(field: FormBuilderField, formGroup?: FormGroup<any>): FormGroup[];
345
+ protected repeaterEmptyText(field: FormBuilderField): string;
346
+ protected addRepeaterItem(field: FormBuilderField, formGroup?: FormGroup<any>): void;
347
+ protected removeRepeaterItem(field: FormBuilderField, index: number, formGroup?: FormGroup<any>): void;
348
+ protected canRemoveRepeaterItem(field: FormBuilderField, formGroup?: FormGroup<any>): boolean;
336
349
  protected submit(): void;
337
350
  private createFormGroup;
338
- private visibleFields;
351
+ private addFieldsToControls;
352
+ private createRepeaterArray;
353
+ private createRepeaterGroup;
339
354
  private fieldInitialValue;
355
+ private allowsNullValue;
340
356
  private resolveCanvasItems;
341
357
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormBuilderRenderer, never>;
342
358
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilderRenderer, "ngs-form-renderer", ["ngsFormRenderer"], { "schema": { "alias": "schema"; "required": true; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "showSubmit": { "alias": "showSubmit"; "required": false; "isSignal": true; }; "submitLabel": { "alias": "submitLabel"; "required": false; "isSignal": true; }; "uploadCallback": { "alias": "uploadCallback"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "formSubmit": "formSubmit"; "formReady": "formReady"; }, never, never, true, never>;
@@ -379,12 +395,19 @@ declare class FormBuilderSettingsHost {
379
395
  readonly update: _angular_core.InputSignal<((changes: Partial<FormBuilderField>) => void) | undefined>;
380
396
  readonly updateSection: _angular_core.InputSignal<((changes: Partial<FormBuilderSection>) => void) | undefined>;
381
397
  protected readonly itemDefinition: _angular_core.Signal<FormBuilderFieldDefinition | undefined>;
382
- protected readonly fieldDefinition: _angular_core.Signal<FormBuilderFieldDefinition | undefined>;
383
- protected readonly fieldKind: _angular_core.Signal<_ngstarter_ui_components_form_builder.FormBuilderItemKind>;
384
- protected readonly isLayoutField: _angular_core.Signal<boolean>;
385
- protected readonly customLoaded: _angular_core.WritableSignal<boolean>;
398
+ protected readonly settingsSchema: _angular_core.Signal<FormBuilderSchema | null>;
399
+ protected readonly settingsValue: _angular_core.Signal<Record<string, any>>;
400
+ protected readonly legacyLoaded: _angular_core.WritableSignal<boolean>;
386
401
  private readonly anchor;
387
402
  constructor();
403
+ protected applySettingsValue(value: Record<string, any>): void;
404
+ private createSettingsPatch;
405
+ private readSettingValue;
406
+ private settingsConfig;
407
+ private legacySettingsImporter;
408
+ private resolveOwnSettingsSchema;
409
+ private inferSettingsInheritance;
410
+ private baseSettingsSchema;
388
411
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormBuilderSettingsHost, never>;
389
412
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilderSettingsHost, "ngs-form-builder-settings-host", ["ngsFormBuilderSettingsHost"], { "field": { "alias": "field"; "required": false; "isSignal": true; }; "section": { "alias": "section"; "required": false; "isSignal": true; }; "schema": { "alias": "schema"; "required": true; "isSignal": true; }; "definitions": { "alias": "definitions"; "required": false; "isSignal": true; }; "settingsDefinitions": { "alias": "settingsDefinitions"; "required": false; "isSignal": true; }; "update": { "alias": "update"; "required": false; "isSignal": true; }; "updateSection": { "alias": "updateSection"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
390
413
  }
@@ -444,5 +467,5 @@ declare class BasicFormBuilderSectionSettings {
444
467
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<BasicFormBuilderSectionSettings, "ngs-basic-form-builder-section-settings", ["ngsBasicFormBuilderSectionSettings"], { "section": { "alias": "section"; "required": true; "isSignal": true; }; "update": { "alias": "update"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
445
468
  }
446
469
 
447
- export { BasicFormBuilderFieldSettings, BasicFormBuilderLayoutSettings, BasicFormBuilderSectionSettings, DEFAULT_FORM_BUILDER_FIELDS, DEFAULT_FORM_BUILDER_ITEMS, FORM_BUILDER_FIELDS, FORM_BUILDER_ITEMS, FORM_BUILDER_SETTINGS, FORM_BUILDER_UPLOAD_CALLBACK, FormBuilder, FormBuilderFieldHost, FormBuilderRenderer, FormBuilderSettingsHost, createDefaultFormBuilderSchema, formBuilderField, formBuilderItem, formBuilderSettings, provideFormBuilder, validatorsFromRules };
448
- export type { FormBuilderComponentImporter, FormBuilderField, FormBuilderFieldChange, FormBuilderFieldDefinition, FormBuilderFieldRenderContext, FormBuilderFieldSettingsContext, FormBuilderFieldWidth, FormBuilderItemDefinition, FormBuilderItemKind, FormBuilderLayoutItem, FormBuilderOption, FormBuilderSchema, FormBuilderSection, FormBuilderSectionSettingsContext, FormBuilderSettingsContext, FormBuilderSettingsDefinition, FormBuilderUploadCallback, FormBuilderUploadContext, FormBuilderValidationRule, FormBuilderVisibility };
470
+ export { BasicFormBuilderFieldSettings, BasicFormBuilderLayoutSettings, BasicFormBuilderSectionSettings, DEFAULT_FORM_BUILDER_FIELDS, DEFAULT_FORM_BUILDER_ITEMS, FORM_BUILDER_FIELDS, FORM_BUILDER_FIELD_BASE_SETTINGS_SCHEMA, FORM_BUILDER_INPUT_FIELD_BASE_SETTINGS_SCHEMA, FORM_BUILDER_ITEMS, FORM_BUILDER_LAYOUT_BASE_SETTINGS_SCHEMA, FORM_BUILDER_LAYOUT_CONTAINER_BASE_SETTINGS_SCHEMA, FORM_BUILDER_SECTION_BASE_SETTINGS_SCHEMA, FORM_BUILDER_SETTINGS, FORM_BUILDER_STATIC_BASE_SETTINGS_SCHEMA, FORM_BUILDER_UPLOAD_CALLBACK, FormBuilder, FormBuilderFieldHost, FormBuilderRenderer, FormBuilderSettingsHost, createDefaultFormBuilderSchema, formBuilderField, formBuilderItem, formBuilderSettings, provideFormBuilder, provideFormBuilderField, provideFormBuilderFields, validatorsFromRules };
471
+ export type { FormBuilderComponentImporter, FormBuilderField, FormBuilderFieldChange, FormBuilderFieldDefinition, FormBuilderFieldRenderContext, FormBuilderFieldSettingsContext, FormBuilderFieldWidth, FormBuilderItemDefinition, FormBuilderItemKind, FormBuilderLayoutItem, FormBuilderOption, FormBuilderSchema, FormBuilderSection, FormBuilderSectionSettingsContext, FormBuilderSettingsConfig, FormBuilderSettingsContext, FormBuilderSettingsDefinition, FormBuilderSettingsInheritance, FormBuilderSettingsSchemaFactory, FormBuilderUploadCallback, FormBuilderUploadContext, FormBuilderValidationRule };