xt-components 0.4.7 → 0.5.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.
- package/fesm2022/xt-components.mjs +150 -111
- package/fesm2022/xt-components.mjs.map +1 -1
- package/index.d.ts +512 -3
- package/package.json +13 -13
- package/globals.d.ts +0 -10
- package/lib/angular/message-handler.d.ts +0 -7
- package/lib/angular/xt-resolver.service.d.ts +0 -39
- package/lib/angular/xt-tokens.d.ts +0 -7
- package/lib/output/xt-base-input.d.ts +0 -5
- package/lib/output/xt-base-output.d.ts +0 -5
- package/lib/plugin/xt-plugin-info.d.ts +0 -19
- package/lib/registry/xt-plugin-registry.d.ts +0 -34
- package/lib/render/xt-render-sub.component.d.ts +0 -28
- package/lib/render/xt-render.component.d.ts +0 -36
- package/lib/resolver/xt-registry-resolver.d.ts +0 -11
- package/lib/resolver/xt-resolver.d.ts +0 -5
- package/lib/store/store-support.d.ts +0 -60
- package/lib/test/store-test-helper.d.ts +0 -36
- package/lib/test/xt-test-helper-components.d.ts +0 -71
- package/lib/test/xt-unit-test-helper.d.ts +0 -2
- package/lib/type/type-helper.d.ts +0 -4
- package/lib/xt-component.d.ts +0 -22
- package/lib/xt-composite/xt-composite.component.d.ts +0 -21
- package/lib/xt-context.d.ts +0 -86
- package/lib/xt-resolved-component.d.ts +0 -8
- package/lib/xt-simple/xt-simple.component.d.ts +0 -44
- package/public-api.d.ts +0 -19
|
@@ -23,7 +23,7 @@ class XtBaseContext {
|
|
|
23
23
|
else {
|
|
24
24
|
throw new Error("Cannot display a value that does not exist. Are you sure you're not using Reactive Form with this context? " + this.toString());
|
|
25
25
|
}
|
|
26
|
-
});
|
|
26
|
+
}, ...(ngDevMode ? [{ debugName: "displayValue" }] : []));
|
|
27
27
|
this.displayMode = displayMode;
|
|
28
28
|
this.parentFormGroup = parentGroup;
|
|
29
29
|
this.parentContext = parentContext;
|
|
@@ -35,7 +35,7 @@ class XtBaseContext {
|
|
|
35
35
|
if (this.nonFormValue == null) {
|
|
36
36
|
if ((this.childContexts != null) && (this.childContexts.size > 0))
|
|
37
37
|
throw new Error('An XtContext with no values cannot have children ', { cause: this });
|
|
38
|
-
this.nonFormValue = signal(newValue);
|
|
38
|
+
this.nonFormValue = signal(newValue, ...(ngDevMode ? [{ debugName: "nonFormValue" }] : []));
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
41
41
|
this.nonFormValue.set(newValue);
|
|
@@ -234,8 +234,8 @@ class XtPluginRegistry {
|
|
|
234
234
|
this.pluginRegistry = new Map();
|
|
235
235
|
this.componentRegistry = new Map();
|
|
236
236
|
this.componentByTypeCache = new Map();
|
|
237
|
-
this.listComponents = signal(new Array());
|
|
238
|
-
this.listPlugins = signal(new Array());
|
|
237
|
+
this.listComponents = signal(new Array(), ...(ngDevMode ? [{ debugName: "listComponents" }] : []));
|
|
238
|
+
this.listPlugins = signal(new Array(), ...(ngDevMode ? [{ debugName: "listPlugins" }] : []));
|
|
239
239
|
}
|
|
240
240
|
/**
|
|
241
241
|
* The component can manage any standard javascript primitives types. That's usually the default whenever we don't know any particular type
|
|
@@ -411,10 +411,10 @@ class XtResolverService {
|
|
|
411
411
|
this.baseTypeResolver = inject(XT_TYPE_RESOLVER_TOKEN, { optional: true });
|
|
412
412
|
this.listComponents = computed(() => {
|
|
413
413
|
return this.pluginRegistry.listComponents();
|
|
414
|
-
});
|
|
414
|
+
}, ...(ngDevMode ? [{ debugName: "listComponents" }] : []));
|
|
415
415
|
this.listPlugins = computed(() => {
|
|
416
416
|
return this.pluginRegistry.listPlugins();
|
|
417
|
-
});
|
|
417
|
+
}, ...(ngDevMode ? [{ debugName: "listPlugins" }] : []));
|
|
418
418
|
if (this.baseTypeResolver == null) {
|
|
419
419
|
this.typeResolver = xtTypeManager();
|
|
420
420
|
}
|
|
@@ -444,6 +444,9 @@ class XtResolverService {
|
|
|
444
444
|
listSubNamesOf(baseContext, value) {
|
|
445
445
|
return this.typeResolver.listSubNames(baseContext.valueType, value);
|
|
446
446
|
}
|
|
447
|
+
listSubNamesOfType(valueType, value) {
|
|
448
|
+
return this.typeResolver.listSubNames(valueType, value);
|
|
449
|
+
}
|
|
447
450
|
registerPlugin(info) {
|
|
448
451
|
this.pluginRegistry.registerPlugin(info);
|
|
449
452
|
this.registerTypes(info.types, info.typeHandlers);
|
|
@@ -500,10 +503,10 @@ class XtResolverService {
|
|
|
500
503
|
return module;
|
|
501
504
|
});
|
|
502
505
|
}
|
|
503
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
504
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
506
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: XtResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
507
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: XtResolverService, providedIn: 'root' }); }
|
|
505
508
|
}
|
|
506
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
509
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: XtResolverService, decorators: [{
|
|
507
510
|
type: Injectable,
|
|
508
511
|
args: [{
|
|
509
512
|
providedIn: 'root'
|
|
@@ -521,16 +524,16 @@ class XtBaseOutput {
|
|
|
521
524
|
class XtRenderComponent {
|
|
522
525
|
constructor() {
|
|
523
526
|
this.resolverService = inject(XtResolverService);
|
|
524
|
-
this.componentType = input();
|
|
525
|
-
this.displayMode = input.required();
|
|
526
|
-
this.valueType = input();
|
|
527
|
+
this.componentType = input(...(ngDevMode ? [undefined, { debugName: "componentType" }] : []));
|
|
528
|
+
this.displayMode = input.required(...(ngDevMode ? [{ debugName: "displayMode" }] : []));
|
|
529
|
+
this.valueType = input(...(ngDevMode ? [undefined, { debugName: "valueType" }] : []));
|
|
527
530
|
// Either we set the value directly
|
|
528
|
-
this.value = model();
|
|
531
|
+
this.value = model(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
|
|
529
532
|
// Or we are inside a Form
|
|
530
|
-
this.formGroup = input();
|
|
531
|
-
this.subName = input();
|
|
533
|
+
this.formGroup = input(...(ngDevMode ? [undefined, { debugName: "formGroup" }] : []));
|
|
534
|
+
this.subName = input(...(ngDevMode ? [undefined, { debugName: "subName" }] : []));
|
|
532
535
|
this.outputsObject = new XtBaseOutput();
|
|
533
|
-
this.inputs = input();
|
|
536
|
+
this.inputs = input(...(ngDevMode ? [undefined, { debugName: "inputs" }] : []));
|
|
534
537
|
this.outputs = output();
|
|
535
538
|
this.outlet = viewChild.required(NgComponentOutlet);
|
|
536
539
|
this.context = computed(() => {
|
|
@@ -548,7 +551,7 @@ class XtRenderComponent {
|
|
|
548
551
|
}
|
|
549
552
|
}
|
|
550
553
|
return ret;
|
|
551
|
-
});
|
|
554
|
+
}, ...(ngDevMode ? [{ debugName: "context" }] : []));
|
|
552
555
|
this.type = computed(() => {
|
|
553
556
|
//console.debug("Calculating type in XtRenderSubComponent");
|
|
554
557
|
let type = this.componentType();
|
|
@@ -562,7 +565,7 @@ class XtRenderComponent {
|
|
|
562
565
|
type = compFound.componentClass;
|
|
563
566
|
}
|
|
564
567
|
return type ?? null;
|
|
565
|
-
});
|
|
568
|
+
}, ...(ngDevMode ? [{ debugName: "type" }] : []));
|
|
566
569
|
}
|
|
567
570
|
/**
|
|
568
571
|
* Transfers the input and outputs from the host to the rendered component
|
|
@@ -586,10 +589,10 @@ class XtRenderComponent {
|
|
|
586
589
|
}
|
|
587
590
|
}
|
|
588
591
|
}
|
|
589
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
590
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
592
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: XtRenderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
593
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.3", type: XtRenderComponent, isStandalone: true, selector: "xt-render", inputs: { componentType: { classPropertyName: "componentType", publicName: "componentType", isSignal: true, isRequired: false, transformFunction: null }, displayMode: { classPropertyName: "displayMode", publicName: "displayMode", isSignal: true, isRequired: true, transformFunction: null }, valueType: { classPropertyName: "valueType", publicName: "valueType", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null }, subName: { classPropertyName: "subName", publicName: "subName", isSignal: true, isRequired: false, transformFunction: null }, inputs: { classPropertyName: "inputs", publicName: "inputs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", outputs: "outputs" }, viewQueries: [{ propertyName: "outlet", first: true, predicate: NgComponentOutlet, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container *ngComponentOutlet=\"type(); inputs: {context:context ()}\" />\n", styles: [""], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
|
|
591
594
|
}
|
|
592
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
595
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: XtRenderComponent, decorators: [{
|
|
593
596
|
type: Component,
|
|
594
597
|
args: [{ selector: 'xt-render', standalone: true, imports: [
|
|
595
598
|
NgComponentOutlet,
|
|
@@ -603,10 +606,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
|
603
606
|
*/
|
|
604
607
|
class XtRenderSubComponent {
|
|
605
608
|
constructor() {
|
|
606
|
-
this.context = input.required();
|
|
607
|
-
this.componentType = input();
|
|
609
|
+
this.context = input.required(...(ngDevMode ? [{ debugName: "context" }] : []));
|
|
610
|
+
this.componentType = input(...(ngDevMode ? [undefined, { debugName: "componentType" }] : []));
|
|
608
611
|
this.outputsObject = new XtBaseOutput();
|
|
609
|
-
this.inputs = input();
|
|
612
|
+
this.inputs = input(...(ngDevMode ? [undefined, { debugName: "inputs" }] : []));
|
|
610
613
|
this.outputs = output();
|
|
611
614
|
this.outlet = viewChild.required(NgComponentOutlet);
|
|
612
615
|
this.resolverService = inject(XtResolverService);
|
|
@@ -623,7 +626,7 @@ class XtRenderSubComponent {
|
|
|
623
626
|
type = compFound.componentClass;
|
|
624
627
|
}
|
|
625
628
|
return type ?? null;
|
|
626
|
-
});
|
|
629
|
+
}, ...(ngDevMode ? [{ debugName: "type" }] : []));
|
|
627
630
|
}
|
|
628
631
|
/**
|
|
629
632
|
* Transfers the input and outputs from the host to the rendered component
|
|
@@ -647,10 +650,10 @@ class XtRenderSubComponent {
|
|
|
647
650
|
}
|
|
648
651
|
}
|
|
649
652
|
}
|
|
650
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
651
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
653
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: XtRenderSubComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
654
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.3", type: XtRenderSubComponent, isStandalone: true, selector: "xt-render-sub", inputs: { context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: true, transformFunction: null }, componentType: { classPropertyName: "componentType", publicName: "componentType", isSignal: true, isRequired: false, transformFunction: null }, inputs: { classPropertyName: "inputs", publicName: "inputs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outputs: "outputs" }, viewQueries: [{ propertyName: "outlet", first: true, predicate: NgComponentOutlet, descendants: true, isSignal: true }], ngImport: i0, template: "{{componentType()}}\n<ng-container *ngComponentOutlet=\"type(); inputs: {context:context ()}\" />\n", styles: [""], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
|
|
652
655
|
}
|
|
653
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
656
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: XtRenderSubComponent, decorators: [{
|
|
654
657
|
type: Component,
|
|
655
658
|
args: [{ selector: 'xt-render-sub', standalone: true, imports: [
|
|
656
659
|
NgComponentOutlet,
|
|
@@ -667,58 +670,58 @@ class XtBaseInput {
|
|
|
667
670
|
*/
|
|
668
671
|
class XtSimpleComponent {
|
|
669
672
|
constructor() {
|
|
670
|
-
this.context = input.required();
|
|
673
|
+
this.context = input.required(...(ngDevMode ? [{ debugName: "context" }] : []));
|
|
671
674
|
this.outputsObject = new XtBaseOutput();
|
|
672
675
|
this.inputsObject = new XtBaseInput();
|
|
673
676
|
this.outputs = output();
|
|
674
677
|
this.isInForm = computed(() => {
|
|
675
678
|
return this.context()?.isInForm() ?? false;
|
|
676
|
-
});
|
|
679
|
+
}, ...(ngDevMode ? [{ debugName: "isInForm" }] : []));
|
|
677
680
|
this.formControlNameIfAny = computed(() => {
|
|
678
681
|
return this.context()?.subName;
|
|
679
|
-
});
|
|
682
|
+
}, ...(ngDevMode ? [{ debugName: "formControlNameIfAny" }] : []));
|
|
680
683
|
this.formGroupIfAny = computed(() => {
|
|
681
684
|
return this.context()?.formGroup();
|
|
682
|
-
});
|
|
685
|
+
}, ...(ngDevMode ? [{ debugName: "formGroupIfAny" }] : []));
|
|
683
686
|
this.formGroup = computed(() => {
|
|
684
687
|
const ret = this.context()?.formGroup();
|
|
685
688
|
if (ret == null)
|
|
686
689
|
throw new Error('No form groups in this component of type ' + this.componentDescriptor());
|
|
687
690
|
return ret;
|
|
688
|
-
});
|
|
691
|
+
}, ...(ngDevMode ? [{ debugName: "formGroup" }] : []));
|
|
689
692
|
/**
|
|
690
693
|
* Returns the component form name, which is for now the subName
|
|
691
694
|
*/
|
|
692
695
|
this.componentNameInForm = computed(() => {
|
|
693
696
|
return this.safelyGetSubName();
|
|
694
|
-
});
|
|
697
|
+
}, ...(ngDevMode ? [{ debugName: "componentNameInForm" }] : []));
|
|
695
698
|
this.safelyGetSubName = computed(() => {
|
|
696
699
|
const ret = this.context()?.subName;
|
|
697
700
|
if (ret == null)
|
|
698
701
|
throw new Error('This component has no name in the form ' + this.componentDescriptor());
|
|
699
702
|
return ret;
|
|
700
|
-
});
|
|
703
|
+
}, ...(ngDevMode ? [{ debugName: "safelyGetSubName" }] : []));
|
|
701
704
|
/**
|
|
702
705
|
* Returns the form control name and create a form control behind the scene
|
|
703
706
|
*/
|
|
704
707
|
this.formControlName = computed(() => {
|
|
705
708
|
const ret = this.safelyGetSubName();
|
|
706
|
-
this.manageFormControl(ret); //
|
|
709
|
+
//this.manageFormControl<any>(ret); // Don't create anything at this point. It's a computed value.
|
|
707
710
|
return ret;
|
|
708
|
-
});
|
|
711
|
+
}, ...(ngDevMode ? [{ debugName: "formControlName" }] : []));
|
|
709
712
|
this.formControl = computed(() => {
|
|
710
713
|
const subName = this.safelyGetSubName();
|
|
711
|
-
const formControl = this.manageFormControl(subName);
|
|
714
|
+
const formControl = this.manageFormControl(subName, false);
|
|
712
715
|
if (formControl == null)
|
|
713
716
|
throw new Error("Calling formControl for subName " + subName + " when none exist.");
|
|
714
717
|
return formControl;
|
|
715
|
-
});
|
|
718
|
+
}, ...(ngDevMode ? [{ debugName: "formControl" }] : []));
|
|
716
719
|
this.getValue = computed(() => {
|
|
717
720
|
return this.context().value();
|
|
718
|
-
});
|
|
721
|
+
}, ...(ngDevMode ? [{ debugName: "getValue" }] : []));
|
|
719
722
|
this.displayValue = computed(() => {
|
|
720
723
|
return this.context().displayValue();
|
|
721
|
-
});
|
|
724
|
+
}, ...(ngDevMode ? [{ debugName: "displayValue" }] : []));
|
|
722
725
|
}
|
|
723
726
|
ngOnInit() {
|
|
724
727
|
this.setupInputOutput();
|
|
@@ -727,7 +730,7 @@ class XtSimpleComponent {
|
|
|
727
730
|
this.outputs.emit(this.outputsObject);
|
|
728
731
|
}
|
|
729
732
|
}
|
|
730
|
-
manageFormControl(ctrlName) {
|
|
733
|
+
manageFormControl(ctrlName, create = true) {
|
|
731
734
|
const formGroup = this.formGroupIfAny();
|
|
732
735
|
if (formGroup == null) {
|
|
733
736
|
// You can call manageFormControl even in not a form, it just get ignored
|
|
@@ -736,11 +739,11 @@ class XtSimpleComponent {
|
|
|
736
739
|
}
|
|
737
740
|
else {
|
|
738
741
|
let ctrl = formGroup.get(ctrlName);
|
|
739
|
-
if (ctrl == null) {
|
|
742
|
+
if ((create) && (ctrl == null)) {
|
|
740
743
|
ctrl = new FormControl(undefined);
|
|
741
744
|
formGroup.setControl(ctrlName, ctrl);
|
|
742
745
|
}
|
|
743
|
-
return ctrl;
|
|
746
|
+
return ctrl ?? undefined;
|
|
744
747
|
}
|
|
745
748
|
}
|
|
746
749
|
componentDescriptor() {
|
|
@@ -753,10 +756,10 @@ class XtSimpleComponent {
|
|
|
753
756
|
setupInputOutput() {
|
|
754
757
|
// Nothing to do here
|
|
755
758
|
}
|
|
756
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
757
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
759
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: XtSimpleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
760
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.3", type: XtSimpleComponent, isStandalone: true, selector: "ng-component", inputs: { context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { outputs: "outputs" }, ngImport: i0, template: '', isInline: true }); }
|
|
758
761
|
}
|
|
759
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
762
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: XtSimpleComponent, decorators: [{
|
|
760
763
|
type: Component,
|
|
761
764
|
args: [{
|
|
762
765
|
standalone: true,
|
|
@@ -785,7 +788,7 @@ class XtCompositeComponent extends XtSimpleComponent {
|
|
|
785
788
|
ret = context.localFormGroup;
|
|
786
789
|
}
|
|
787
790
|
return ret;
|
|
788
|
-
});
|
|
791
|
+
}, ...(ngDevMode ? [{ debugName: "formGroupIfAny" }] : []));
|
|
789
792
|
/**
|
|
790
793
|
* We need to create a new form group to manage the sub elements.
|
|
791
794
|
*/
|
|
@@ -794,7 +797,7 @@ class XtCompositeComponent extends XtSimpleComponent {
|
|
|
794
797
|
if (ret == null)
|
|
795
798
|
throw new Error('No form groups in this component of type ' + this.componentDescriptor());
|
|
796
799
|
return ret;
|
|
797
|
-
});
|
|
800
|
+
}, ...(ngDevMode ? [{ debugName: "formGroup" }] : []));
|
|
798
801
|
}
|
|
799
802
|
/**
|
|
800
803
|
* Helper function to calculate the sub context
|
|
@@ -805,10 +808,10 @@ class XtCompositeComponent extends XtSimpleComponent {
|
|
|
805
808
|
this.formGroupIfAny(); // Ensure the context is properly initialized
|
|
806
809
|
return this.context().subContext(subName, subType, this.resolverService.typeResolver);
|
|
807
810
|
}
|
|
808
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
809
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
811
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: XtCompositeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
812
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: XtCompositeComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [""] }); }
|
|
810
813
|
}
|
|
811
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
814
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: XtCompositeComponent, decorators: [{
|
|
812
815
|
type: Component,
|
|
813
816
|
args: [{ standalone: true, imports: [], template: '' }]
|
|
814
817
|
}] });
|
|
@@ -820,10 +823,10 @@ class MessageHandler {
|
|
|
820
823
|
warningOccurred(warningMsg) {
|
|
821
824
|
console.warn(warningMsg);
|
|
822
825
|
}
|
|
823
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
824
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
826
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MessageHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
827
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MessageHandler, providedIn: 'root' }); }
|
|
825
828
|
}
|
|
826
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
829
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MessageHandler, decorators: [{
|
|
827
830
|
type: Injectable,
|
|
828
831
|
args: [{
|
|
829
832
|
providedIn: 'root'
|
|
@@ -844,10 +847,33 @@ class StoreSupport {
|
|
|
844
847
|
}
|
|
845
848
|
}
|
|
846
849
|
|
|
847
|
-
function
|
|
850
|
+
function attachToFormGroup(formGroup, controlName, value, valueType, resolver) {
|
|
851
|
+
// If it's a single value, just create the control
|
|
852
|
+
if (((value != null) && (isPrimitive(value))
|
|
853
|
+
|| (resolver?.isPrimitiveType(valueType)))) {
|
|
854
|
+
const simpleControl = new FormControl(value);
|
|
855
|
+
formGroup.addControl(controlName, simpleControl);
|
|
856
|
+
}
|
|
857
|
+
else {
|
|
858
|
+
const complexGroup = new FormGroup({});
|
|
859
|
+
updateFormGroupWithValue(complexGroup, value, valueType, resolver);
|
|
860
|
+
formGroup.addControl(controlName, complexGroup);
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
function updateFormGroupWithValue(formGroup, value, valueType, resolver) {
|
|
848
864
|
const toDelete = new Set(Object.keys(formGroup.controls));
|
|
849
|
-
|
|
850
|
-
|
|
865
|
+
// We merge the properties of the value if any, with the properties of the model
|
|
866
|
+
const keySet = new Set((value != null) ? Object.keys(value) : null);
|
|
867
|
+
if (((valueType != null) && (resolver != null))) {
|
|
868
|
+
const modelSubName = resolver.listSubNames(valueType, value);
|
|
869
|
+
for (const sub of modelSubName) {
|
|
870
|
+
keySet.add(sub);
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
for (const valueKey of keySet) {
|
|
874
|
+
const subValue = (value != null) ? value[valueKey] : null;
|
|
875
|
+
const subType = resolver?.findTypeName(valueType, valueKey, subValue) ?? undefined;
|
|
876
|
+
const primitive = (subType != null) ? resolver?.isPrimitiveType(subType, subValue) : isPrimitive(subValue);
|
|
851
877
|
if (toDelete.delete(valueKey)) {
|
|
852
878
|
// Already a control
|
|
853
879
|
const oldControl = formGroup.get(valueKey);
|
|
@@ -859,7 +885,7 @@ function updateFormGroupWithValue(formGroup, value) {
|
|
|
859
885
|
oldControl.setValue(value[valueKey]);
|
|
860
886
|
}
|
|
861
887
|
else {
|
|
862
|
-
formGroup.setControl(valueKey, new FormControl(
|
|
888
|
+
formGroup.setControl(valueKey, new FormControl(subValue));
|
|
863
889
|
}
|
|
864
890
|
}
|
|
865
891
|
else {
|
|
@@ -867,22 +893,22 @@ function updateFormGroupWithValue(formGroup, value) {
|
|
|
867
893
|
if (oldControl.controls === undefined) {
|
|
868
894
|
const newFormGroup = new FormGroup({});
|
|
869
895
|
formGroup.setControl(valueKey, newFormGroup);
|
|
870
|
-
updateFormGroupWithValue(newFormGroup,
|
|
896
|
+
updateFormGroupWithValue(newFormGroup, subValue, subType, resolver);
|
|
871
897
|
}
|
|
872
898
|
else {
|
|
873
899
|
// It was already a formgroup, so just update it
|
|
874
|
-
updateFormGroupWithValue(oldControl,
|
|
900
|
+
updateFormGroupWithValue(oldControl, subValue, subType, resolver);
|
|
875
901
|
}
|
|
876
902
|
}
|
|
877
903
|
}
|
|
878
904
|
else {
|
|
879
905
|
if (primitive) {
|
|
880
|
-
formGroup.addControl(valueKey, new FormControl(
|
|
906
|
+
formGroup.addControl(valueKey, new FormControl(subValue));
|
|
881
907
|
}
|
|
882
908
|
else {
|
|
883
909
|
const newFormGroup = new FormGroup({});
|
|
884
910
|
formGroup.addControl(valueKey, newFormGroup);
|
|
885
|
-
updateFormGroupWithValue(newFormGroup,
|
|
911
|
+
updateFormGroupWithValue(newFormGroup, subValue, subType, resolver);
|
|
886
912
|
}
|
|
887
913
|
}
|
|
888
914
|
}
|
|
@@ -901,14 +927,14 @@ class XtUnitTestHelper {
|
|
|
901
927
|
*/
|
|
902
928
|
class HostTestSimpleComponent {
|
|
903
929
|
constructor() {
|
|
904
|
-
this.type = input.required();
|
|
905
|
-
this.displayMode = input('FULL_VIEW');
|
|
906
|
-
this.value = input(undefined);
|
|
930
|
+
this.type = input.required(...(ngDevMode ? [{ debugName: "type" }] : []));
|
|
931
|
+
this.displayMode = input('FULL_VIEW', ...(ngDevMode ? [{ debugName: "displayMode" }] : []));
|
|
932
|
+
this.value = input(undefined, ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
907
933
|
}
|
|
908
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
909
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
934
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: HostTestSimpleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
935
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.3", type: HostTestSimpleComponent, isStandalone: true, selector: "test-host", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, displayMode: { classPropertyName: "displayMode", publicName: "displayMode", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '<h1>Test Simple Component</h1> <xt-render [componentType]="type()" [displayMode]="displayMode()" [value]="value()" ></xt-render> ', isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: XtRenderComponent, selector: "xt-render", inputs: ["componentType", "displayMode", "valueType", "value", "formGroup", "subName", "inputs"], outputs: ["valueChange", "outputs"] }] }); }
|
|
910
936
|
}
|
|
911
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
937
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: HostTestSimpleComponent, decorators: [{
|
|
912
938
|
type: Component,
|
|
913
939
|
args: [{
|
|
914
940
|
selector: 'test-host',
|
|
@@ -925,12 +951,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
|
925
951
|
class HostTestFormComponent {
|
|
926
952
|
constructor() {
|
|
927
953
|
this.builder = inject(FormBuilder);
|
|
928
|
-
this.type = input.required();
|
|
929
|
-
this.controlName = input.required();
|
|
954
|
+
this.type = input.required(...(ngDevMode ? [{ debugName: "type" }] : []));
|
|
955
|
+
this.controlName = input.required(...(ngDevMode ? [{ debugName: "controlName" }] : []));
|
|
930
956
|
// You can send the description to be used in a FormBuilder to create the formgroup;
|
|
931
|
-
this.formDescription = input({});
|
|
957
|
+
this.formDescription = input({}, ...(ngDevMode ? [{ debugName: "formDescription" }] : []));
|
|
932
958
|
// Or set the FormGroup directly
|
|
933
|
-
this.formGroup = input();
|
|
959
|
+
this.formGroup = input(...(ngDevMode ? [undefined, { debugName: "formGroup" }] : []));
|
|
934
960
|
this.createdFormGroup = null;
|
|
935
961
|
}
|
|
936
962
|
computedFormGroup() {
|
|
@@ -954,10 +980,10 @@ class HostTestFormComponent {
|
|
|
954
980
|
else
|
|
955
981
|
throw new Error("FormGroup not yet created. Did you set formGroup or formDescription property ?");
|
|
956
982
|
}
|
|
957
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
958
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
983
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: HostTestFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
984
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.3", type: HostTestFormComponent, isStandalone: true, selector: "test-form-host", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, controlName: { classPropertyName: "controlName", publicName: "controlName", isSignal: true, isRequired: true, transformFunction: null }, formDescription: { classPropertyName: "formDescription", publicName: "formDescription", isSignal: true, isRequired: false, transformFunction: null }, formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '<h1>Test Form Component</h1> <form [formGroup]="computedFormGroup()"> <xt-render [componentType]="type()" displayMode="FULL_EDITABLE" [subName]="controlName()" [formGroup]="computedFormGroup()"></xt-render></form>', isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: XtRenderComponent, selector: "xt-render", inputs: ["componentType", "displayMode", "valueType", "value", "formGroup", "subName", "inputs"], outputs: ["valueChange", "outputs"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
|
|
959
985
|
}
|
|
960
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
986
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: HostTestFormComponent, decorators: [{
|
|
961
987
|
type: Component,
|
|
962
988
|
args: [{
|
|
963
989
|
selector: 'test-form-host',
|
|
@@ -972,20 +998,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
|
972
998
|
*/
|
|
973
999
|
class HostTestTypedComponent {
|
|
974
1000
|
constructor() {
|
|
975
|
-
this.displayMode = input('FULL_VIEW');
|
|
976
|
-
this.value = input();
|
|
977
|
-
this.valueType = input();
|
|
1001
|
+
this.displayMode = input('FULL_VIEW', ...(ngDevMode ? [{ debugName: "displayMode" }] : []));
|
|
1002
|
+
this.value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
|
|
1003
|
+
this.valueType = input(...(ngDevMode ? [undefined, { debugName: "valueType" }] : []));
|
|
978
1004
|
this.context = computed(() => {
|
|
979
1005
|
const ret = new XtBaseContext(this.displayMode());
|
|
980
1006
|
ret.valueType = this.valueType();
|
|
981
1007
|
ret.setDisplayValue(this.value());
|
|
982
1008
|
return ret;
|
|
983
|
-
});
|
|
1009
|
+
}, ...(ngDevMode ? [{ debugName: "context" }] : []));
|
|
984
1010
|
}
|
|
985
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
986
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
1011
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: HostTestTypedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1012
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.3", type: HostTestTypedComponent, isStandalone: true, selector: "test-typed-host", inputs: { displayMode: { classPropertyName: "displayMode", publicName: "displayMode", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueType: { classPropertyName: "valueType", publicName: "valueType", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '<h1>Test Typed Component</h1> <xt-render-sub [context]="context()" ></xt-render-sub> ', isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: XtRenderSubComponent, selector: "xt-render-sub", inputs: ["context", "componentType", "inputs"], outputs: ["outputs"] }] }); }
|
|
987
1013
|
}
|
|
988
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1014
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: HostTestTypedComponent, decorators: [{
|
|
989
1015
|
type: Component,
|
|
990
1016
|
args: [{
|
|
991
1017
|
selector: 'test-typed-host',
|
|
@@ -1003,49 +1029,62 @@ class HostTestTypedFormComponent {
|
|
|
1003
1029
|
constructor() {
|
|
1004
1030
|
this.builder = inject(FormBuilder);
|
|
1005
1031
|
this.resolver = inject(XtResolverService);
|
|
1006
|
-
this.valueType = input();
|
|
1007
|
-
this.controlName = input();
|
|
1032
|
+
this.valueType = input(...(ngDevMode ? [undefined, { debugName: "valueType" }] : []));
|
|
1033
|
+
this.controlName = input(...(ngDevMode ? [undefined, { debugName: "controlName" }] : []));
|
|
1008
1034
|
// You can send the description to be used in a FormBuilder to create the formgroup;
|
|
1009
|
-
this.formDescription = input({});
|
|
1035
|
+
this.formDescription = input(null, ...(ngDevMode ? [{ debugName: "formDescription" }] : []));
|
|
1010
1036
|
// Or set the FormGroup directly
|
|
1011
|
-
this.formGroup = input();
|
|
1037
|
+
this.formGroup = input(...(ngDevMode ? [undefined, { debugName: "formGroup" }] : []));
|
|
1012
1038
|
this.parentFormGroup = this.builder.group({});
|
|
1013
1039
|
this.createdFormGroup = null;
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1040
|
+
}
|
|
1041
|
+
static { this.CONTROL_NAME = 'ForTest'; }
|
|
1042
|
+
ngOnInit() {
|
|
1043
|
+
this.computeFormGroup();
|
|
1044
|
+
}
|
|
1045
|
+
computeFormGroup() {
|
|
1046
|
+
if (this.createdFormGroup == null) {
|
|
1047
|
+
const formGroup = this.formGroup();
|
|
1048
|
+
if (this.formDescription() != null) {
|
|
1017
1049
|
this.createdFormGroup = formGroup ?? generateFormGroup(this.formDescription());
|
|
1018
|
-
this.parentFormGroup.addControl(this.controlName() ?? HostTestTypedFormComponent.CONTROL_NAME, this.createdFormGroup);
|
|
1019
|
-
}
|
|
1020
|
-
return this.createdFormGroup;
|
|
1021
|
-
});
|
|
1022
|
-
this.subContext = computed(() => {
|
|
1023
|
-
this.computedFormGroup(); // Make sure the subformgroups are created
|
|
1024
|
-
const ctrlName = this.controlName();
|
|
1025
|
-
let ret = null;
|
|
1026
|
-
if (ctrlName == null) {
|
|
1027
|
-
ret = new XtBaseContext('FULL_EDITABLE', HostTestTypedFormComponent.CONTROL_NAME, this.parentFormGroup);
|
|
1028
1050
|
}
|
|
1029
1051
|
else {
|
|
1030
|
-
|
|
1052
|
+
this.createdFormGroup = this.builder.group({});
|
|
1053
|
+
if (this.valueType() != null) {
|
|
1054
|
+
updateFormGroupWithValue(this.createdFormGroup, {}, this.valueType(), this.resolver.typeResolver);
|
|
1055
|
+
}
|
|
1031
1056
|
}
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1057
|
+
this.parentFormGroup.addControl(this.controlName() ?? HostTestTypedFormComponent.CONTROL_NAME, this.createdFormGroup);
|
|
1058
|
+
}
|
|
1059
|
+
return this.createdFormGroup;
|
|
1035
1060
|
}
|
|
1036
|
-
|
|
1061
|
+
;
|
|
1062
|
+
subContext() {
|
|
1063
|
+
this.computeFormGroup(); // Make sure the subformgroups are created
|
|
1064
|
+
const ctrlName = this.controlName();
|
|
1065
|
+
let ret = null;
|
|
1066
|
+
if (ctrlName == null) {
|
|
1067
|
+
ret = new XtBaseContext('FULL_EDITABLE', HostTestTypedFormComponent.CONTROL_NAME, this.parentFormGroup);
|
|
1068
|
+
}
|
|
1069
|
+
else {
|
|
1070
|
+
ret = new XtBaseContext('FULL_EDITABLE', ctrlName, this.createdFormGroup);
|
|
1071
|
+
}
|
|
1072
|
+
ret.valueType = this.valueType();
|
|
1073
|
+
return ret;
|
|
1074
|
+
}
|
|
1075
|
+
;
|
|
1037
1076
|
patchValue(controlName, newVal) {
|
|
1038
1077
|
const patch = {};
|
|
1039
1078
|
patch[controlName] = newVal;
|
|
1040
|
-
this.
|
|
1079
|
+
this.computeFormGroup().patchValue(patch);
|
|
1041
1080
|
}
|
|
1042
1081
|
retrieveValue(controlName) {
|
|
1043
|
-
return this.
|
|
1082
|
+
return this.computeFormGroup().value[controlName];
|
|
1044
1083
|
}
|
|
1045
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1046
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
1084
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: HostTestTypedFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1085
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.3", type: HostTestTypedFormComponent, isStandalone: true, selector: "test-typed-form-host", inputs: { valueType: { classPropertyName: "valueType", publicName: "valueType", isSignal: true, isRequired: false, transformFunction: null }, controlName: { classPropertyName: "controlName", publicName: "controlName", isSignal: true, isRequired: false, transformFunction: null }, formDescription: { classPropertyName: "formDescription", publicName: "formDescription", isSignal: true, isRequired: false, transformFunction: null }, formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '<h1>Test Typed Form Component</h1> <form [formGroup]="parentFormGroup"> <xt-render-sub [context]="subContext()"></xt-render-sub></form>', isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: XtRenderSubComponent, selector: "xt-render-sub", inputs: ["context", "componentType", "inputs"], outputs: ["outputs"] }] }); }
|
|
1047
1086
|
}
|
|
1048
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1087
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: HostTestTypedFormComponent, decorators: [{
|
|
1049
1088
|
type: Component,
|
|
1050
1089
|
args: [{
|
|
1051
1090
|
selector: 'test-typed-form-host',
|
|
@@ -1177,5 +1216,5 @@ class TestDocumentInfo {
|
|
|
1177
1216
|
* Generated bundle index. Do not edit.
|
|
1178
1217
|
*/
|
|
1179
1218
|
|
|
1180
|
-
export { HostTestFormComponent, HostTestSimpleComponent, HostTestTypedComponent, HostTestTypedFormComponent, MessageHandler, StoreSupport, StoreTestHelper, TestDocumentInfo, TestStoreManager, TestStoreProvider, XT_REGISTRY_TOKEN, XT_RESOLVER_TOKEN, XT_TYPE_RESOLVER_TOKEN, XtBaseContext, XtCompositeComponent, XtPluginRegistry, XtRenderComponent, XtRenderSubComponent, XtResolvedComponent, XtResolverService, XtSimpleComponent, XtUnitTestHelper, initXtPluginRegistry, updateFormGroupWithValue, xtPluginRegistry };
|
|
1219
|
+
export { HostTestFormComponent, HostTestSimpleComponent, HostTestTypedComponent, HostTestTypedFormComponent, MessageHandler, StoreSupport, StoreTestHelper, TestDocumentInfo, TestStoreManager, TestStoreProvider, XT_REGISTRY_TOKEN, XT_RESOLVER_TOKEN, XT_TYPE_RESOLVER_TOKEN, XtBaseContext, XtCompositeComponent, XtPluginRegistry, XtRenderComponent, XtRenderSubComponent, XtResolvedComponent, XtResolverService, XtSimpleComponent, XtUnitTestHelper, attachToFormGroup, initXtPluginRegistry, updateFormGroupWithValue, xtPluginRegistry };
|
|
1181
1220
|
//# sourceMappingURL=xt-components.mjs.map
|