@ng-simplicity/forms-core 1.0.0

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.
@@ -0,0 +1,687 @@
1
+ import { Subject, takeUntil, BehaviorSubject, map, filter, of } from 'rxjs';
2
+ import * as i0 from '@angular/core';
3
+ import { Directive, InjectionToken, inject, Injectable, Injector, ViewContainerRef, Input, ChangeDetectionStrategy, Component, Sanitizer, SecurityContext, NgModule } from '@angular/core';
4
+ import { v4 } from 'uuid';
5
+ import { toSignal } from '@angular/core/rxjs-interop';
6
+ import { UntypedFormGroup, FormControl, UntypedFormArray, FormsModule, ReactiveFormsModule } from '@angular/forms';
7
+ import { defaults } from 'lodash';
8
+ import { CommonModule } from '@angular/common';
9
+
10
+ class NgsSubscriber {
11
+ destroy$ = new Subject();
12
+ subscriptions = [];
13
+ subscribe(subscribeTo, nextObserver) {
14
+ subscribeTo.pipe(takeUntil(this.destroy$)).subscribe(nextObserver);
15
+ }
16
+ ngOnDestroy() {
17
+ this.destroy$.next();
18
+ this.destroy$.complete();
19
+ this.subscriptions.forEach((subscriber) => subscriber.unsubscribe());
20
+ }
21
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsSubscriber, deps: [], target: i0.ɵɵFactoryTarget.Directive });
22
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.19", type: NgsSubscriber, isStandalone: true, ngImport: i0 });
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsSubscriber, decorators: [{
25
+ type: Directive
26
+ }] });
27
+
28
+ const NGS_FORMS_ITEM_DATA = new InjectionToken('ngs-forms-item-data');
29
+ const NGS_FORMS_CONTROL_ADD_REMOVE_FN = new InjectionToken('ngs-form-control-remove-fn');
30
+ const NGS_FORMS_ITEM_INDEX = new InjectionToken('ngs-forms-item-index');
31
+ const NgsFormsFormControlAddRemoveFunctions = {
32
+ formGroup: (formGroup) => ({
33
+ add: (control, controlName) => formGroup.addControl(controlName, control),
34
+ remove: (control, controlName) => formGroup.removeControl(controlName),
35
+ }),
36
+ formArray: (formArray) => ({
37
+ add: (control, controlName) => formArray.controls.push(control),
38
+ remove: (control, controlName) => {
39
+ const index = formArray.controls.indexOf(control);
40
+ formArray.controls.splice(index, 1);
41
+ },
42
+ }),
43
+ };
44
+
45
+ class NgsFormsBaseClassFormComponent extends NgsSubscriber {
46
+ static key;
47
+ id = v4();
48
+ config;
49
+ itemData;
50
+ constructor() {
51
+ super();
52
+ this.itemData = inject(NGS_FORMS_ITEM_DATA);
53
+ this.config = this.itemData.config;
54
+ }
55
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsBaseClassFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
56
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.19", type: NgsFormsBaseClassFormComponent, isStandalone: true, usesInheritance: true, ngImport: i0 });
57
+ }
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsBaseClassFormComponent, decorators: [{
59
+ type: Directive,
60
+ args: [{}]
61
+ }], ctorParameters: () => [] });
62
+
63
+ class NgsFormsComponentRegistryService {
64
+ itemComponentRegistry = {};
65
+ getComponentTypeForKey(key) {
66
+ return this.itemComponentRegistry[key];
67
+ }
68
+ register(key, component) {
69
+ this.itemComponentRegistry[key] = component;
70
+ }
71
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsComponentRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
72
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsComponentRegistryService, providedIn: 'platform' });
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsComponentRegistryService, decorators: [{
75
+ type: Injectable,
76
+ args: [{ providedIn: 'platform' }]
77
+ }] });
78
+
79
+ class NgsFormsService {
80
+ attempt = 0;
81
+ formValue$ = new BehaviorSubject({});
82
+ formValue = {};
83
+ internalFormService;
84
+ formGroupSubscriptions = [];
85
+ formGroup = new UntypedFormGroup({});
86
+ get dirty() {
87
+ return this.formGroup?.dirty ?? false;
88
+ }
89
+ get isValid() {
90
+ if (!this.internalServiceIsSet)
91
+ return false;
92
+ return this.internalFormService.checkIsValid();
93
+ }
94
+ get internalServiceIsSet() {
95
+ return !!this.internalFormService;
96
+ }
97
+ setFormConfig(formConfig) {
98
+ if (!this.internalServiceIsSet) {
99
+ if (this.attempt > 20) {
100
+ console.error('Internal form service is unavailable. Is the ngs-form root tag added to the page?');
101
+ return;
102
+ }
103
+ this.attempt++;
104
+ setTimeout(() => this.setFormConfig(formConfig), 25);
105
+ return;
106
+ }
107
+ this.internalFormService.setFormData(formConfig);
108
+ }
109
+ setInternalService(internalFormsService) {
110
+ this.internalFormService = internalFormsService;
111
+ this.bindFormGroup();
112
+ }
113
+ setIsSubmitted(isSubmitted) {
114
+ if (!this.internalServiceIsSet)
115
+ return;
116
+ this.internalFormService.setIsSubmitted(isSubmitted);
117
+ }
118
+ bindFormGroup() {
119
+ this.internalFormService.formGroup$.subscribe((fg) => {
120
+ this.formGroup = fg;
121
+ this.formGroupSubscriptions.forEach((subscription) => subscription.unsubscribe());
122
+ this.formGroupSubscriptions.push(this.formGroup.valueChanges.subscribe((v) => {
123
+ this.formValue = v;
124
+ this.formValue$.next(v);
125
+ }));
126
+ });
127
+ }
128
+ updateComponentState(componentKey, state) {
129
+ this.internalFormService?.updateComponentState(componentKey, state);
130
+ }
131
+ updateGlobalState(state) {
132
+ this.internalFormService?.updateGlobalState(state);
133
+ }
134
+ ngOnDestroy() {
135
+ this.formGroupSubscriptions.forEach((subscription) => subscription.unsubscribe());
136
+ }
137
+ patchValue(entityData) {
138
+ this.formGroup.patchValue(entityData);
139
+ }
140
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
141
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsService });
142
+ }
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsService, decorators: [{
144
+ type: Injectable
145
+ }] });
146
+
147
+ class NgsFormsInternalService {
148
+ formGroup$ = new BehaviorSubject(new UntypedFormGroup({}));
149
+ formConfig$ = new BehaviorSubject(undefined);
150
+ isSubmitted$ = new BehaviorSubject(false);
151
+ state = new BehaviorSubject({});
152
+ setIsSubmitted(isSubmitted) {
153
+ this.isSubmitted$.next(isSubmitted);
154
+ }
155
+ checkIsValid() {
156
+ if (!this.formGroup$.value)
157
+ return false;
158
+ return this.formGroup$.value.valid;
159
+ }
160
+ setFormData(formConfig) {
161
+ this.formGroup$.next(new UntypedFormGroup({}));
162
+ this.formConfig$.next(formConfig);
163
+ this.isSubmitted$.next(false);
164
+ }
165
+ mergeState(key, update) {
166
+ const obj = this.state.value[key] || {};
167
+ const updated = defaults(update, obj);
168
+ this.state.value[key] = updated;
169
+ this.state.next(this.state.value);
170
+ }
171
+ updateGlobalState(state) {
172
+ this.mergeState('global', state);
173
+ }
174
+ updateComponentState(componentKey, state) {
175
+ this.mergeState(componentKey, state);
176
+ }
177
+ subscribeToState(fieldName) {
178
+ let last = '';
179
+ return this.state.pipe(map((allState) => defaults(allState[fieldName], allState['global'])), filter((currentState) => {
180
+ const stringifiedState = JSON.stringify(currentState);
181
+ const isUpdated = stringifiedState !== last;
182
+ last = stringifiedState;
183
+ return isUpdated;
184
+ }));
185
+ }
186
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsInternalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
187
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsInternalService });
188
+ }
189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsInternalService, decorators: [{
190
+ type: Injectable
191
+ }] });
192
+
193
+ class NgsFormsFormItemWithVisibleAndValidatorsBase extends NgsFormsBaseClassFormComponent {
194
+ control;
195
+ errorMessage = '';
196
+ formAddRemoveFns = inject(NGS_FORMS_CONTROL_ADD_REMOVE_FN);
197
+ privateService = inject(NgsFormsInternalService);
198
+ submitted = toSignal(this.privateService.isSubmitted$, { initialValue: false });
199
+ ngOnInit() {
200
+ this.control = new FormControl(undefined, { validators: [] });
201
+ //this.bindVisible();
202
+ this.bindValidators();
203
+ //this.bindControlValidityChange();
204
+ this.formAddRemoveFns.add(this.control, this.config.name);
205
+ }
206
+ ngOnDestroy() {
207
+ super.ngOnDestroy();
208
+ this.formAddRemoveFns.remove(this.control, this.config.name);
209
+ }
210
+ bindValidators() {
211
+ if (!this.config.validators && !this.config.validators$)
212
+ return;
213
+ if (this.config.validators) {
214
+ this.control.setValidators(this.config.validators);
215
+ return;
216
+ }
217
+ if (this.config.validators$) {
218
+ this.subscribe(this.config.validators$, (validators) => this.control.setValidators(validators));
219
+ }
220
+ }
221
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormItemWithVisibleAndValidatorsBase, deps: null, target: i0.ɵɵFactoryTarget.Directive });
222
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.19", type: NgsFormsFormItemWithVisibleAndValidatorsBase, isStandalone: true, usesInheritance: true, ngImport: i0 });
223
+ }
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormItemWithVisibleAndValidatorsBase, decorators: [{
225
+ type: Directive,
226
+ args: [{}]
227
+ }] });
228
+
229
+ class NgsFormsBaseClassFormInputComponent extends NgsFormsFormItemWithVisibleAndValidatorsBase {
230
+ myFormService = inject(NgsFormsService);
231
+ internalService = inject(NgsFormsInternalService);
232
+ commonState = toSignal(this.internalService.subscribeToState(this.config.name), { initialValue: {} });
233
+ toggleDisplayMode(setTo) {
234
+ }
235
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsBaseClassFormInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
236
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.19", type: NgsFormsBaseClassFormInputComponent, isStandalone: true, usesInheritance: true, ngImport: i0 });
237
+ }
238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsBaseClassFormInputComponent, decorators: [{
239
+ type: Directive,
240
+ args: [{}]
241
+ }] });
242
+
243
+ class NgsFormsBaseClassItemsContainerBase extends NgsFormsBaseClassFormComponent {
244
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsBaseClassItemsContainerBase, deps: null, target: i0.ɵɵFactoryTarget.Directive });
245
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.19", type: NgsFormsBaseClassItemsContainerBase, isStandalone: true, usesInheritance: true, ngImport: i0 });
246
+ }
247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsBaseClassItemsContainerBase, decorators: [{
248
+ type: Directive,
249
+ args: [{}]
250
+ }] });
251
+
252
+ class NgsFormsBaseClassFormItemInputWithOptionsComponent extends NgsFormsBaseClassFormInputComponent {
253
+ options = toSignal(this.config.options$ ?? of(this.config.options ?? []), { initialValue: this.config.options ?? [] });
254
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsBaseClassFormItemInputWithOptionsComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
255
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.19", type: NgsFormsBaseClassFormItemInputWithOptionsComponent, isStandalone: true, usesInheritance: true, ngImport: i0 });
256
+ }
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsBaseClassFormItemInputWithOptionsComponent, decorators: [{
258
+ type: Directive
259
+ }] });
260
+
261
+ class NgsFormItemController extends NgsSubscriber {
262
+ injector;
263
+ viewContainerRef;
264
+ itemData;
265
+ addRemoveControlFn;
266
+ index;
267
+ componentRef;
268
+ parentVisibility = new BehaviorSubject(false);
269
+ lastVisible;
270
+ constructor(injector, viewContainerRef, itemData, addRemoveControlFn, index) {
271
+ super();
272
+ this.injector = injector;
273
+ this.viewContainerRef = viewContainerRef;
274
+ this.itemData = itemData;
275
+ this.addRemoveControlFn = addRemoveControlFn;
276
+ this.index = index;
277
+ this.bindVisibility();
278
+ }
279
+ destroy() {
280
+ this.detach();
281
+ super.ngOnDestroy();
282
+ }
283
+ bindVisibility() {
284
+ if (!this.itemData.visible$) {
285
+ this.create();
286
+ return;
287
+ }
288
+ this.subscribe(this.itemData.visible$, (visible) => {
289
+ if (this.lastVisible === visible)
290
+ return;
291
+ this.lastVisible = visible;
292
+ if (visible) {
293
+ this.create();
294
+ return;
295
+ }
296
+ this.detach();
297
+ });
298
+ }
299
+ create() {
300
+ const providers = [{ provide: NGS_FORMS_ITEM_DATA, useValue: this.itemData }];
301
+ if (this.index !== undefined) {
302
+ providers.push({ provide: NGS_FORMS_ITEM_INDEX, useValue: this.index });
303
+ }
304
+ if (this.addRemoveControlFn) {
305
+ providers.push({ provide: NGS_FORMS_CONTROL_ADD_REMOVE_FN, useValue: this.addRemoveControlFn });
306
+ }
307
+ const myInjector = Injector.create({
308
+ parent: this.injector,
309
+ providers,
310
+ });
311
+ const componentType = this.injector.get(NgsFormsComponentRegistryService).getComponentTypeForKey(this.itemData.type);
312
+ if (!componentType) {
313
+ console.error(`Ngs form component type ${this.itemData.type} not registered.`);
314
+ return;
315
+ }
316
+ this.componentRef = this.viewContainerRef.createComponent(componentType, { injector: myInjector });
317
+ this.parentVisibility.next(true);
318
+ }
319
+ detach() {
320
+ this.parentVisibility.next(false);
321
+ this.componentRef?.destroy();
322
+ }
323
+ }
324
+
325
+ class NgsFormsFormItemDirective {
326
+ itemData = undefined;
327
+ formGroup;
328
+ formArray;
329
+ index;
330
+ controller;
331
+ viewContainerRef = inject(ViewContainerRef);
332
+ injector = inject(Injector);
333
+ formComponentRegistryService = inject(NgsFormsComponentRegistryService);
334
+ ngOnInit() {
335
+ if (!this.itemData) {
336
+ return console.error('Form item without form data');
337
+ }
338
+ let addRemoveFn = undefined;
339
+ if (this.formArray) {
340
+ addRemoveFn = NgsFormsFormControlAddRemoveFunctions.formArray(this.formArray);
341
+ }
342
+ if (this.formGroup) {
343
+ addRemoveFn = NgsFormsFormControlAddRemoveFunctions.formGroup(this.formGroup);
344
+ }
345
+ this.controller = new NgsFormItemController(this.injector, this.viewContainerRef, this.itemData, addRemoveFn, this.index);
346
+ }
347
+ ngOnDestroy() {
348
+ this.controller?.destroy();
349
+ }
350
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
351
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.19", type: NgsFormsFormItemDirective, isStandalone: true, selector: "[ngs-form-item]", inputs: { itemData: ["ngs-form-item", "itemData"], formGroup: ["ngs-form-group", "formGroup"], formArray: ["ngs-form-array", "formArray"], index: ["ngs-form-index", "index"] }, ngImport: i0 });
352
+ }
353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormItemDirective, decorators: [{
354
+ type: Directive,
355
+ args: [{
356
+ selector: '[ngs-form-item]',
357
+ //templateUrl: "./form-item.component.html",
358
+ }]
359
+ }], propDecorators: { itemData: [{
360
+ type: Input,
361
+ args: ['ngs-form-item']
362
+ }], formGroup: [{
363
+ type: Input,
364
+ args: ['ngs-form-group']
365
+ }], formArray: [{
366
+ type: Input,
367
+ args: ['ngs-form-array']
368
+ }], index: [{
369
+ type: Input,
370
+ args: ['ngs-form-index']
371
+ }] } });
372
+
373
+ class NgsFormComponent {
374
+ ngsInternalFormsService = inject(NgsFormsInternalService);
375
+ ngsFormsService = inject(NgsFormsService);
376
+ formGroup = toSignal(this.ngsInternalFormsService.formGroup$);
377
+ formConfig = toSignal(this.ngsInternalFormsService.formConfig$);
378
+ constructor() {
379
+ this.ngsFormsService.setInternalService(this.ngsInternalFormsService);
380
+ }
381
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
382
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: NgsFormComponent, isStandalone: true, selector: "ngs-form", providers: [NgsFormsInternalService], ngImport: i0, template: "@if (formConfig()?.root && formGroup()) {\n <ng-container [ngs-form-group]=\"formGroup()!\" [ngs-form-item]=\"formConfig()!.root\"></ng-container>\n}\n\n", dependencies: [{ kind: "directive", type: NgsFormsFormItemDirective, selector: "[ngs-form-item]", inputs: ["ngs-form-item", "ngs-form-group", "ngs-form-array", "ngs-form-index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
383
+ }
384
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormComponent, decorators: [{
385
+ type: Component,
386
+ args: [{ selector: 'ngs-form', providers: [NgsFormsInternalService], imports: [NgsFormsFormItemDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (formConfig()?.root && formGroup()) {\n <ng-container [ngs-form-group]=\"formGroup()!\" [ngs-form-item]=\"formConfig()!.root\"></ng-container>\n}\n\n" }]
387
+ }], ctorParameters: () => [] });
388
+
389
+ class NgsFormsColumnComponent extends NgsFormsBaseClassItemsContainerBase {
390
+ static key = 'column';
391
+ static create(config) {
392
+ return {
393
+ uuid: v4(),
394
+ type: NgsFormsColumnComponent.key,
395
+ config,
396
+ };
397
+ }
398
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
399
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: NgsFormsColumnComponent, isStandalone: true, selector: "ngs-form-component-column", usesInheritance: true, ngImport: i0, template: "@for (item of config.items; track item.uuid) {\n <ng-container [ngs-form-item]=\"item\"></ng-container>\n}\n", dependencies: [{ kind: "directive", type: NgsFormsFormItemDirective, selector: "[ngs-form-item]", inputs: ["ngs-form-item", "ngs-form-group", "ngs-form-array", "ngs-form-index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
400
+ }
401
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsColumnComponent, decorators: [{
402
+ type: Component,
403
+ args: [{ selector: 'ngs-form-component-column', imports: [NgsFormsFormItemDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (item of config.items; track item.uuid) {\n <ng-container [ngs-form-item]=\"item\"></ng-container>\n}\n" }]
404
+ }] });
405
+
406
+ // --
407
+
408
+ class NgsFormsRowComponent extends NgsFormsBaseClassFormComponent {
409
+ static key = 'form-row';
410
+ constructor() {
411
+ super();
412
+ }
413
+ getIndividualRowDivClass(index) {
414
+ if (this.config.columnClass) {
415
+ return this.config.columnClass;
416
+ }
417
+ if (!this.config.columnClasses?.length) {
418
+ return '';
419
+ }
420
+ return this.config.columnClasses[index];
421
+ }
422
+ static create(config) {
423
+ return {
424
+ uuid: v4(),
425
+ type: NgsFormsRowComponent.key,
426
+ config: config,
427
+ };
428
+ }
429
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
430
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: NgsFormsRowComponent, isStandalone: true, selector: "ngs-forms-row-component", usesInheritance: true, ngImport: i0, template: "<div class=\"{{config.containerClass}}\">\n @for(item of config.items; track item; let i = $index){\n <div class=\"{{getIndividualRowDivClass(i)}}\">\n <ng-container [ngs-form-item]=\"item\"></ng-container>\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgsFormsFormItemDirective, selector: "[ngs-form-item]", inputs: ["ngs-form-item", "ngs-form-group", "ngs-form-array", "ngs-form-index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
431
+ }
432
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsRowComponent, decorators: [{
433
+ type: Component,
434
+ args: [{ selector: 'ngs-forms-row-component', imports: [NgsFormsFormItemDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"{{config.containerClass}}\">\n @for(item of config.items; track item; let i = $index){\n <div class=\"{{getIndividualRowDivClass(i)}}\">\n <ng-container [ngs-form-item]=\"item\"></ng-container>\n </div>\n }\n</div>\n" }]
435
+ }], ctorParameters: () => [] });
436
+
437
+ class NgsFormsFormGroupComponent extends NgsFormsFormItemWithVisibleAndValidatorsBase {
438
+ static key = 'form-group';
439
+ static create(config, items) {
440
+ return {
441
+ uuid: v4(),
442
+ type: NgsFormsFormGroupComponent.key,
443
+ config,
444
+ items,
445
+ };
446
+ }
447
+ get formGroupControl() {
448
+ return this.control;
449
+ }
450
+ constructor() {
451
+ super();
452
+ this.control = new UntypedFormGroup({});
453
+ }
454
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
455
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: NgsFormsFormGroupComponent, isStandalone: true, selector: "ngs-forms-form-group", usesInheritance: true, ngImport: i0, template: "@if (itemData.items) {\n @for (item of itemData.items; track item.uuid) {\n <ng-container [ngs-form-item]=\"item\" [ngs-form-group]=\"formGroupControl\"></ng-container>\n }\n}\n", dependencies: [{ kind: "directive", type: NgsFormsFormItemDirective, selector: "[ngs-form-item]", inputs: ["ngs-form-item", "ngs-form-group", "ngs-form-array", "ngs-form-index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
456
+ }
457
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormGroupComponent, decorators: [{
458
+ type: Component,
459
+ args: [{ selector: 'ngs-forms-form-group', imports: [NgsFormsFormItemDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (itemData.items) {\n @for (item of itemData.items; track item.uuid) {\n <ng-container [ngs-form-item]=\"item\" [ngs-form-group]=\"formGroupControl\"></ng-container>\n }\n}\n" }]
460
+ }], ctorParameters: () => [] });
461
+
462
+ class NgsFormsFormArrayInternalService {
463
+ config = inject(NGS_FORMS_ITEM_DATA).config;
464
+ formArray = new UntypedFormArray([]);
465
+ addRemoveFn = inject(NGS_FORMS_CONTROL_ADD_REMOVE_FN);
466
+ constructor() {
467
+ this.addRemoveFn.add(this.formArray, this.config.name);
468
+ if (this.config.initialItemCount) {
469
+ for (let i = 0; i < this.config.initialItemCount; i++) {
470
+ this.addItem();
471
+ }
472
+ }
473
+ }
474
+ ngOnDestroy() {
475
+ this.addRemoveFn.remove(this.formArray, this.config.name);
476
+ }
477
+ removeAt(index) {
478
+ if (this.config?.minItems && this.formArray.controls.length <= this.config.minItems) {
479
+ return;
480
+ }
481
+ if (!this.formArray.controls.length) {
482
+ return;
483
+ }
484
+ this.formArray.removeAt(index);
485
+ }
486
+ addItem() {
487
+ if (this.config?.maxItems && this.formArray.controls.length >= this.config.maxItems) {
488
+ return;
489
+ }
490
+ this.formArray.controls.push(new UntypedFormGroup({}));
491
+ }
492
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormArrayInternalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
493
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormArrayInternalService });
494
+ }
495
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormArrayInternalService, decorators: [{
496
+ type: Injectable
497
+ }], ctorParameters: () => [] });
498
+
499
+ class NgsFormsFormArrayAddItemComponent extends NgsFormsBaseClassFormComponent {
500
+ static key = 'form-array-add-item';
501
+ internalArrayService = inject(NgsFormsFormArrayInternalService);
502
+ static create(config) {
503
+ return {
504
+ uuid: v4(),
505
+ type: NgsFormsFormArrayAddItemComponent.key,
506
+ config: config,
507
+ };
508
+ }
509
+ addItem() {
510
+ this.internalArrayService.addItem();
511
+ }
512
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormArrayAddItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
513
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: NgsFormsFormArrayAddItemComponent, isStandalone: true, selector: "ngs-forms-form-array-add-item", usesInheritance: true, ngImport: i0, template: "<button\n (click)=\"addItem()\"\n [class]=\"config.buttonClass || 'btn btn-outline-primary'\"\n type=\"button\">\n @if (config.buttonIcon) {\n <i [class]=\"config.buttonIcon\"></i>\n }\n {{ config.buttonText || 'Add Item' }}\n</button>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
514
+ }
515
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormArrayAddItemComponent, decorators: [{
516
+ type: Component,
517
+ args: [{ selector: 'ngs-forms-form-array-add-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n (click)=\"addItem()\"\n [class]=\"config.buttonClass || 'btn btn-outline-primary'\"\n type=\"button\">\n @if (config.buttonIcon) {\n <i [class]=\"config.buttonIcon\"></i>\n }\n {{ config.buttonText || 'Add Item' }}\n</button>\n" }]
518
+ }] });
519
+
520
+ class NgsFormsFormArrayContainerComponent extends NgsFormsFormItemWithVisibleAndValidatorsBase {
521
+ static key = 'form-array';
522
+ static create(config) {
523
+ return {
524
+ uuid: v4(),
525
+ type: NgsFormsFormArrayContainerComponent.key,
526
+ config: config,
527
+ };
528
+ }
529
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormArrayContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
530
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: NgsFormsFormArrayContainerComponent, isStandalone: true, selector: "ngs-forms-form-array", providers: [NgsFormsFormArrayInternalService], usesInheritance: true, ngImport: i0, template: "<div [class]=\"config.containerClass || ''\">\n @for (item of config.items; track item.uuid) {\n <ng-container [ngs-form-item]=\"item\"></ng-container>\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgsFormsFormItemDirective, selector: "[ngs-form-item]", inputs: ["ngs-form-item", "ngs-form-group", "ngs-form-array", "ngs-form-index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
531
+ }
532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormArrayContainerComponent, decorators: [{
533
+ type: Component,
534
+ args: [{ selector: 'ngs-forms-form-array', imports: [NgsFormsFormItemDirective], providers: [NgsFormsFormArrayInternalService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"config.containerClass || ''\">\n @for (item of config.items; track item.uuid) {\n <ng-container [ngs-form-item]=\"item\"></ng-container>\n }\n</div>\n" }]
535
+ }] });
536
+
537
+ class NgsFormsFormArrayListComponent extends NgsFormsBaseClassFormComponent {
538
+ static key = 'form-array-list';
539
+ internalArrayService = inject(NgsFormsFormArrayInternalService);
540
+ myFormArray = this.internalArrayService.formArray;
541
+ static create(config) {
542
+ return {
543
+ uuid: v4(),
544
+ type: NgsFormsFormArrayListComponent.key,
545
+ config: config,
546
+ };
547
+ }
548
+ castToFormGroup(control) {
549
+ return control;
550
+ }
551
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormArrayListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
552
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: NgsFormsFormArrayListComponent, isStandalone: true, selector: "ngs-forms-form-array-list", usesInheritance: true, ngImport: i0, template: "@for (formGroup of myFormArray.controls; track formGroup; let i = $index) {\n <div [attr.data-index]=\"$index\" [class]=\"config.containerClass || ''\">\n <ng-container [ngs-form-group]=\"castToFormGroup(formGroup)\" [ngs-form-index]=\"i\"\n [ngs-form-item]=\"config.templateItem\"></ng-container>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgsFormsFormItemDirective, selector: "[ngs-form-item]", inputs: ["ngs-form-item", "ngs-form-group", "ngs-form-array", "ngs-form-index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
553
+ }
554
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormArrayListComponent, decorators: [{
555
+ type: Component,
556
+ args: [{ selector: 'ngs-forms-form-array-list', imports: [NgsFormsFormItemDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (formGroup of myFormArray.controls; track formGroup; let i = $index) {\n <div [attr.data-index]=\"$index\" [class]=\"config.containerClass || ''\">\n <ng-container [ngs-form-group]=\"castToFormGroup(formGroup)\" [ngs-form-index]=\"i\"\n [ngs-form-item]=\"config.templateItem\"></ng-container>\n </div>\n}\n" }]
557
+ }] });
558
+
559
+ class NgsFormsFormArrayRemoveItemComponent extends NgsFormsBaseClassFormComponent {
560
+ static key = 'form-array-remove-item';
561
+ internalArrayService = inject(NgsFormsFormArrayInternalService);
562
+ myIndex = inject(NGS_FORMS_ITEM_INDEX);
563
+ constructor() {
564
+ super();
565
+ }
566
+ static create(config) {
567
+ return {
568
+ uuid: v4(),
569
+ type: NgsFormsFormArrayRemoveItemComponent.key,
570
+ config,
571
+ };
572
+ }
573
+ removeItem() {
574
+ this.internalArrayService.removeAt(this.myIndex);
575
+ }
576
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormArrayRemoveItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
577
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: NgsFormsFormArrayRemoveItemComponent, isStandalone: true, selector: "ngs-forms-form-array-remove-item", usesInheritance: true, ngImport: i0, template: "<button\n (click)=\"removeItem()\"\n [class]=\"config.buttonClass || 'btn btn-outline-danger btn-sm'\"\n type=\"button\">\n @if (config.buttonIcon) {\n <i [class]=\"config.buttonIcon\"></i>\n }\n {{ config.buttonText || 'Remove' }}\n index:{{ myIndex }}\n</button>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
578
+ }
579
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormArrayRemoveItemComponent, decorators: [{
580
+ type: Component,
581
+ args: [{ selector: 'ngs-forms-form-array-remove-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n (click)=\"removeItem()\"\n [class]=\"config.buttonClass || 'btn btn-outline-danger btn-sm'\"\n type=\"button\">\n @if (config.buttonIcon) {\n <i [class]=\"config.buttonIcon\"></i>\n }\n {{ config.buttonText || 'Remove' }}\n index:{{ myIndex }}\n</button>\n" }]
582
+ }], ctorParameters: () => [] });
583
+
584
+ class NgsFormsTextDivComponent extends NgsFormsBaseClassFormComponent {
585
+ static key = 'text-div';
586
+ static create(config) {
587
+ return {
588
+ uuid: v4(),
589
+ type: NgsFormsTextDivComponent.key,
590
+ config: config,
591
+ };
592
+ }
593
+ static title(title, divClass = 'h2') {
594
+ return NgsFormsTextDivComponent.create({
595
+ text: title,
596
+ classes: divClass,
597
+ });
598
+ }
599
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsTextDivComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
600
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: NgsFormsTextDivComponent, isStandalone: true, selector: "ngs-form-component-text-div", usesInheritance: true, ngImport: i0, template: "<div class=\"{{config.classes\">{{ config.text }}</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
601
+ }
602
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsTextDivComponent, decorators: [{
603
+ type: Component,
604
+ args: [{ selector: 'ngs-form-component-text-div', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"{{config.classes\">{{ config.text }}</div>\n" }]
605
+ }] });
606
+
607
+ class NgsFormsHtmlContentComponent extends NgsFormsBaseClassFormComponent {
608
+ static key = 'content-html';
609
+ contentConfig = this.config;
610
+ html;
611
+ constructor() {
612
+ super();
613
+ const sanitizer = inject(Sanitizer);
614
+ this.html =
615
+ sanitizer.sanitize(SecurityContext.HTML, this.contentConfig.html) ||
616
+ '';
617
+ }
618
+ static create(config) {
619
+ return {
620
+ uuid: v4(),
621
+ type: NgsFormsHtmlContentComponent.key,
622
+ config,
623
+ };
624
+ }
625
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsHtmlContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
626
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: NgsFormsHtmlContentComponent, isStandalone: true, selector: "ngs-form-component-html-content", usesInheritance: true, ngImport: i0, template: "<div [innerHTML]=\"html\"></div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
627
+ }
628
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsHtmlContentComponent, decorators: [{
629
+ type: Component,
630
+ args: [{ selector: 'ngs-form-component-html-content', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [innerHTML]=\"html\"></div>\n" }]
631
+ }], ctorParameters: () => [] });
632
+
633
+ const sectionConfigDefaults = {
634
+ titleClass: 'h3',
635
+ subtitleClass: 'lead',
636
+ };
637
+
638
+ class NgsFormsFormSectionComponent extends NgsFormsBaseClassItemsContainerBase {
639
+ static key = 'section';
640
+ static create(config) {
641
+ return {
642
+ uuid: v4(),
643
+ type: NgsFormsFormSectionComponent.key,
644
+ config: config,
645
+ };
646
+ }
647
+ ngOnInit() {
648
+ this.config = defaults(this.config, sectionConfigDefaults);
649
+ }
650
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
651
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: NgsFormsFormSectionComponent, isStandalone: true, selector: "ngs-forms-form-section", usesInheritance: true, ngImport: i0, template: "<div class=\"form-section\">\n <div class=\"form-section-title {{config.titleClass}}\">{{ config.title }}</div>\n @if (config.subtitle) {\n <div class=\"form-section-subtitle {{config.subtitleClass}}\">{{ config.subtitle }}</div>\n }\n @if (config.items.length) {\n <div class=\"form-section-items\">\n @for (item of config.items; track item.uuid) {\n <ng-container [ngs-form-item]=\"item\"></ng-container>\n }\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgsFormsFormItemDirective, selector: "[ngs-form-item]", inputs: ["ngs-form-item", "ngs-form-group", "ngs-form-array", "ngs-form-index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
652
+ }
653
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsFormSectionComponent, decorators: [{
654
+ type: Component,
655
+ args: [{ selector: 'ngs-forms-form-section', imports: [NgsFormsFormItemDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-section\">\n <div class=\"form-section-title {{config.titleClass}}\">{{ config.title }}</div>\n @if (config.subtitle) {\n <div class=\"form-section-subtitle {{config.subtitleClass}}\">{{ config.subtitle }}</div>\n }\n @if (config.items.length) {\n <div class=\"form-section-items\">\n @for (item of config.items; track item.uuid) {\n <ng-container [ngs-form-item]=\"item\"></ng-container>\n }\n </div>\n }\n</div>\n" }]
656
+ }] });
657
+
658
+ class NgsFormsCoreModule {
659
+ static registerCoreNgsFormComponents(registryService) {
660
+ registryService.register(NgsFormsFormGroupComponent.key, NgsFormsFormGroupComponent);
661
+ registryService.register(NgsFormsRowComponent.key, NgsFormsRowComponent);
662
+ registryService.register(NgsFormsColumnComponent.key, NgsFormsColumnComponent);
663
+ registryService.register(NgsFormsFormArrayContainerComponent.key, NgsFormsFormArrayContainerComponent);
664
+ registryService.register(NgsFormsFormArrayAddItemComponent.key, NgsFormsFormArrayAddItemComponent);
665
+ registryService.register(NgsFormsFormArrayRemoveItemComponent.key, NgsFormsFormArrayRemoveItemComponent);
666
+ registryService.register(NgsFormsFormArrayListComponent.key, NgsFormsFormArrayListComponent);
667
+ registryService.register(NgsFormsTextDivComponent.key, NgsFormsTextDivComponent);
668
+ //registryService.register('content-html', NgsFormsHtmlContentComponent);
669
+ registryService.register(NgsFormsFormSectionComponent.key, NgsFormsFormSectionComponent);
670
+ }
671
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
672
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsCoreModule, imports: [CommonModule, FormsModule, ReactiveFormsModule] });
673
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsCoreModule, imports: [CommonModule, FormsModule, ReactiveFormsModule] });
674
+ }
675
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NgsFormsCoreModule, decorators: [{
676
+ type: NgModule,
677
+ args: [{
678
+ imports: [CommonModule, FormsModule, ReactiveFormsModule],
679
+ }]
680
+ }] });
681
+
682
+ /**
683
+ * Generated bundle index. Do not edit.
684
+ */
685
+
686
+ export { NGS_FORMS_CONTROL_ADD_REMOVE_FN, NGS_FORMS_ITEM_DATA, NGS_FORMS_ITEM_INDEX, NgsFormComponent, NgsFormsBaseClassFormComponent, NgsFormsBaseClassFormInputComponent, NgsFormsBaseClassFormItemInputWithOptionsComponent, NgsFormsBaseClassItemsContainerBase, NgsFormsColumnComponent, NgsFormsComponentRegistryService, NgsFormsCoreModule, NgsFormsFormArrayAddItemComponent, NgsFormsFormArrayContainerComponent, NgsFormsFormArrayInternalService, NgsFormsFormArrayListComponent, NgsFormsFormArrayRemoveItemComponent, NgsFormsFormControlAddRemoveFunctions, NgsFormsFormGroupComponent, NgsFormsFormItemDirective, NgsFormsFormItemWithVisibleAndValidatorsBase, NgsFormsFormSectionComponent, NgsFormsHtmlContentComponent, NgsFormsInternalService, NgsFormsRowComponent, NgsFormsService, NgsFormsTextDivComponent, NgsSubscriber };
687
+ //# sourceMappingURL=ng-simplicity-forms-core.mjs.map