@stemy/ngx-dynamic-form 13.3.2 → 13.3.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.
@@ -288,7 +288,20 @@ function createFormFile(id, config, layout) {
288
288
  return new DynamicFileUploadModel(res, layout);
289
289
  }
290
290
 
291
- function customizeModel(...types) {
291
+ function getFormComponent(...types) {
292
+ const factory = cachedFactory(types);
293
+ return (model, injector) => {
294
+ const customizers = factory(injector);
295
+ for (const customizer of customizers) {
296
+ const component = customizer.getFormComponent(model);
297
+ if (component) {
298
+ return component;
299
+ }
300
+ }
301
+ return null;
302
+ };
303
+ }
304
+ function customizeFormModel(...types) {
292
305
  const factory = cachedFactory(types);
293
306
  return async (property, schema, model, config, injector) => {
294
307
  const customizers = factory(injector);
@@ -1334,17 +1347,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
1334
1347
  }] } });
1335
1348
 
1336
1349
  class DynamicBaseFormControlContainerComponent extends DynamicFormControlContainerComponent {
1337
- constructor(form, cdr, cfr, layoutService, validationService, componentService, relationService) {
1350
+ constructor(form, cdr, injector, cfr, layoutService, validationService, componentService, relationService) {
1338
1351
  super(cdr, cfr, layoutService, validationService, componentService, relationService);
1339
1352
  this.form = form;
1340
1353
  this.cdr = cdr;
1354
+ this.injector = injector;
1341
1355
  this.context = null;
1342
1356
  this.blur = new EventEmitter();
1343
1357
  this.change = new EventEmitter();
1344
1358
  this.focus = new EventEmitter();
1345
1359
  }
1346
1360
  get componentType() {
1347
- return this.form.getComponentType(this.model) ?? this.componentService.getCustomComponentType(this.model);
1361
+ return this.form.getComponentType?.(this.model, this.injector)
1362
+ ?? this.componentService.getCustomComponentType(this.model);
1348
1363
  }
1349
1364
  get startTemplate() {
1350
1365
  return (this.model.type == DYNAMIC_FORM_CONTROL_TYPE_ARRAY)
@@ -1403,7 +1418,7 @@ class DynamicBaseFormControlContainerComponent extends DynamicFormControlContain
1403
1418
  component.initialize(this.changeDetectorRef);
1404
1419
  }
1405
1420
  }
1406
- DynamicBaseFormControlContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseFormControlContainerComponent, deps: [{ token: DynamicBaseFormComponent }, { token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }, { token: i1.DynamicFormComponentService }, { token: i1.DynamicFormRelationService }], target: i0.ɵɵFactoryTarget.Component });
1421
+ DynamicBaseFormControlContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicBaseFormControlContainerComponent, deps: [{ token: DynamicBaseFormComponent }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: i0.ComponentFactoryResolver }, { token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }, { token: i1.DynamicFormComponentService }, { token: i1.DynamicFormRelationService }], target: i0.ɵɵFactoryTarget.Component });
1407
1422
  DynamicBaseFormControlContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: DynamicBaseFormControlContainerComponent, selector: "dynamic-base-form-control", inputs: { context: "context", group: "group", hostClass: "hostClass", inputTemplateList: ["templates", "inputTemplateList"], layout: "layout", model: "model" }, outputs: { blur: "blur", change: "change", focus: "focus" }, host: { properties: { "class": "this.klass" } }, providers: [
1408
1423
  { provide: DynamicFormControlContainerComponent, useExisting: DynamicBaseFormControlContainerComponent }
1409
1424
  ], queries: [{ propertyName: "contentTemplateList", predicate: DynamicTemplateDirective }], viewQueries: [{ propertyName: "componentViewContainerRef", first: true, predicate: ["componentViewContainer"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
@@ -1417,7 +1432,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
1417
1432
  { provide: DynamicFormControlContainerComponent, useExisting: DynamicBaseFormControlContainerComponent }
1418
1433
  ]
1419
1434
  }]
1420
- }], ctorParameters: function () { return [{ type: DynamicBaseFormComponent }, { type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }, { type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }, { type: i1.DynamicFormComponentService }, { type: i1.DynamicFormRelationService }]; }, propDecorators: { contentTemplateList: [{
1435
+ }], ctorParameters: function () { return [{ type: DynamicBaseFormComponent }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }, { type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }, { type: i1.DynamicFormComponentService }, { type: i1.DynamicFormRelationService }]; }, propDecorators: { contentTemplateList: [{
1421
1436
  type: ContentChildren,
1422
1437
  args: [DynamicTemplateDirective]
1423
1438
  }], klass: [{
@@ -1849,5 +1864,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
1849
1864
  * Generated bundle index. Do not edit.
1850
1865
  */
1851
1866
 
1852
- export { AsyncSubmitDirective, DynamicBaseFormArrayComponent, DynamicBaseFormComponent, DynamicBaseFormControlComponent, DynamicBaseFormControlContainerComponent, DynamicBaseFormGroupComponent, DynamicBaseSelectComponent, DynamicEditorModel, DynamicFormArrayGroupModel, DynamicFormArrayModel, DynamicFormGroupModel, DynamicFormOption, DynamicFormService, DynamicSelectModel, EDITOR_FORMATS, FormSelectSubject, FormSubject, MAX_INPUT_NUM, MIN_INPUT_NUM, NgxDynamicFormModule, createFormArray, createFormCheckbox, createFormDate, createFormEditor, createFormFile, createFormGroup, createFormInput, createFormSelect, createFormTextarea, customizeModel, mergeFormModels, replaceSpecialChars, validateItemsMaxLength, validateItemsMaxValue, validateItemsMinLength, validateItemsMinValue, validateJSON, validatePhone, validateRequiredTranslation };
1867
+ export { AsyncSubmitDirective, DynamicBaseFormArrayComponent, DynamicBaseFormComponent, DynamicBaseFormControlComponent, DynamicBaseFormControlContainerComponent, DynamicBaseFormGroupComponent, DynamicBaseSelectComponent, DynamicEditorModel, DynamicFormArrayGroupModel, DynamicFormArrayModel, DynamicFormGroupModel, DynamicFormOption, DynamicFormService, DynamicSelectModel, EDITOR_FORMATS, FormSelectSubject, FormSubject, MAX_INPUT_NUM, MIN_INPUT_NUM, NgxDynamicFormModule, createFormArray, createFormCheckbox, createFormDate, createFormEditor, createFormFile, createFormGroup, createFormInput, createFormSelect, createFormTextarea, customizeFormModel, getFormComponent, mergeFormModels, replaceSpecialChars, validateItemsMaxLength, validateItemsMaxValue, validateItemsMinLength, validateItemsMinValue, validateJSON, validatePhone, validateRequiredTranslation };
1853
1868
  //# sourceMappingURL=stemy-ngx-dynamic-form.mjs.map