@veloceapps/sdk 10.0.0-6 → 10.0.0-7
Sign up to get free protection for your applications and to get access to all the features.
- package/cms/modules/runtime/services/runtime.service.d.ts +3 -1
- package/cms/utils/index.d.ts +1 -0
- package/cms/utils/inject.d.ts +1 -0
- package/cms/utils/ui-definition.utils.d.ts +1 -0
- package/cms/vendor-map.d.ts +1 -0
- package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +3 -2
- package/esm2020/cms/modules/runtime/services/runtime.service.mjs +3 -1
- package/esm2020/cms/utils/index.mjs +2 -1
- package/esm2020/cms/utils/inject.mjs +27 -0
- package/esm2020/cms/utils/ui-definition.utils.mjs +13 -1
- package/esm2020/cms/vendor-map.mjs +3 -1
- package/fesm2015/veloceapps-sdk-cms.mjs +41 -2
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +40 -1
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/package.json +1 -1
@@ -602,6 +602,18 @@ const findElementByModule = (elements, module, elementName) => {
|
|
602
602
|
}
|
603
603
|
return;
|
604
604
|
};
|
605
|
+
const findElement = (source, comparatorFn) => {
|
606
|
+
for (const el of source) {
|
607
|
+
if (comparatorFn(el)) {
|
608
|
+
return el;
|
609
|
+
}
|
610
|
+
const found = findElement(el.children, comparatorFn);
|
611
|
+
if (found) {
|
612
|
+
return found;
|
613
|
+
}
|
614
|
+
}
|
615
|
+
return;
|
616
|
+
};
|
605
617
|
|
606
618
|
const CMS_COMPILATION_SERVICE = new InjectionToken('VENDOR_MAP');
|
607
619
|
|
@@ -610,6 +622,7 @@ class RuntimeService {
|
|
610
622
|
this.injector = injector;
|
611
623
|
this.integrationState = integrationState;
|
612
624
|
this.moduleRefs = [];
|
625
|
+
this.componentRefs = {};
|
613
626
|
this.componentTypes = {};
|
614
627
|
this.applicationTree = [];
|
615
628
|
this.isInitialized$ = new BehaviorSubject(false);
|
@@ -686,6 +699,7 @@ class RuntimeService {
|
|
686
699
|
this.compilationService.clear();
|
687
700
|
this.moduleRefs.forEach(m => m.destroy());
|
688
701
|
this.moduleRefs = [];
|
702
|
+
this.componentRefs = {};
|
689
703
|
this.applicationTree = [];
|
690
704
|
this.componentTypes = {};
|
691
705
|
this.isInitialized$.next(false);
|
@@ -963,6 +977,7 @@ class ElementRendererComponent {
|
|
963
977
|
return;
|
964
978
|
}
|
965
979
|
const componentRef = this.el?.createComponent(this.type, { index });
|
980
|
+
this.runtimeService.componentRefs[this.meta.path] = componentRef;
|
966
981
|
if (componentRef) {
|
967
982
|
componentRef.location.nativeElement.setAttribute('name', this.meta.name);
|
968
983
|
componentRef.location.nativeElement.setAttribute('path', this.meta.path);
|
@@ -1609,6 +1624,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
1609
1624
|
args: [{ providedIn: 'root' }]
|
1610
1625
|
}] });
|
1611
1626
|
|
1627
|
+
const cmsInject = (token) => {
|
1628
|
+
const self = inject(ELEMENT_METADATA);
|
1629
|
+
const runtimeService = inject(RuntimeService);
|
1630
|
+
const el = findElement(runtimeService.applicationTree, el => el.name === token);
|
1631
|
+
if (!el) {
|
1632
|
+
throw getError(token, self, 'element not found');
|
1633
|
+
}
|
1634
|
+
if (el.type !== 'SERVICE') {
|
1635
|
+
throw getError(token, self, 'only SERVICE elements can be injected');
|
1636
|
+
}
|
1637
|
+
if (el.model) {
|
1638
|
+
throw getError(token, self, 'injecting a service with a "model" defined is not supported yet');
|
1639
|
+
}
|
1640
|
+
const componentRef = runtimeService.componentRefs[el.path];
|
1641
|
+
if (!componentRef) {
|
1642
|
+
throw getError(token, self, 'no instance created yet.');
|
1643
|
+
}
|
1644
|
+
return componentRef.instance;
|
1645
|
+
};
|
1646
|
+
function getError(token, self, reason) {
|
1647
|
+
return new Error(`Injecting "${token}" in "/${self.path}": ${reason}`);
|
1648
|
+
}
|
1649
|
+
|
1612
1650
|
const VELOCE_LIBS = {
|
1613
1651
|
'@veloceapps/core': {
|
1614
1652
|
isDefined,
|
@@ -1660,6 +1698,7 @@ const VELOCE_LIBS = {
|
|
1660
1698
|
TemplatesService,
|
1661
1699
|
IntegrationState,
|
1662
1700
|
ResourcesService,
|
1701
|
+
cmsInject,
|
1663
1702
|
},
|
1664
1703
|
};
|
1665
1704
|
const VELOCE_LIBS_BACKWARDS_COMPATIBLE = Object.entries(VELOCE_LIBS).reduce((trunk, [key, value]) => ({ ...trunk, [key.replace('@veloceapps/', '@veloce/')]: value }), {});
|
@@ -2772,5 +2811,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
2772
2811
|
* Generated bundle index. Do not edit.
|
2773
2812
|
*/
|
2774
2813
|
|
2775
|
-
export { ApplyProductConfigurationAction, CloseDocGenAction, CmsAction, ConfigureProductAction, DEFAULT_ELEMENT, DEFAULT_PLUGINS_TOKEN, ELEMENT_CONFIG, ELEMENT_METADATA, ElementComponent, ElementDefinition, ElementMetadataWorker, ElementsResolver, FlowAction, LAYOUT, LauncherModule, MigrationsModule, MigrationsService, NavigateBackAction, NavigateToCatalogAction, OpenDocGenAction, PreviewComponent, PreviewModule, RemoteApplyAction, RemoteCancelAction, ResourcesService, RuntimeEditorService, RuntimeModule, RuntimeService, SHARED_ELEMENT_METADATA, STARTING_PAGE_LAYOUT, STARTING_PAGE_NAME, STARTING_PAGE_STYLES, STARTING_PAGE_TYPE, SwitchObjectAction, TemplatesService, TranspilationWorker, UI_DEFINITION_METADATA, UiBuildError, atobSafe, btoaSafe, constructPage, constructPageChildren, constructRegion, doesElementSupportIO, elementToMetadata, extendElementMetadata, extractElementMetadata, findElementByModule, findElementByPath, flattenElements, getAbsolutePath, getElementAngularIOs, getElementConfig, insertElement, isElementAngularIO, isSharedElement, isValidScript, metadataToElement, normalizeElementMetadata, parseBoundPath, parsePath, removeElement, stringifyElementMetadata, toElementAngularIO };
|
2814
|
+
export { ApplyProductConfigurationAction, CloseDocGenAction, CmsAction, ConfigureProductAction, DEFAULT_ELEMENT, DEFAULT_PLUGINS_TOKEN, ELEMENT_CONFIG, ELEMENT_METADATA, ElementComponent, ElementDefinition, ElementMetadataWorker, ElementsResolver, FlowAction, LAYOUT, LauncherModule, MigrationsModule, MigrationsService, NavigateBackAction, NavigateToCatalogAction, OpenDocGenAction, PreviewComponent, PreviewModule, RemoteApplyAction, RemoteCancelAction, ResourcesService, RuntimeEditorService, RuntimeModule, RuntimeService, SHARED_ELEMENT_METADATA, STARTING_PAGE_LAYOUT, STARTING_PAGE_NAME, STARTING_PAGE_STYLES, STARTING_PAGE_TYPE, SwitchObjectAction, TemplatesService, TranspilationWorker, UI_DEFINITION_METADATA, UiBuildError, atobSafe, btoaSafe, cmsInject, constructPage, constructPageChildren, constructRegion, doesElementSupportIO, elementToMetadata, extendElementMetadata, extractElementMetadata, findElement, findElementByModule, findElementByPath, flattenElements, getAbsolutePath, getElementAngularIOs, getElementConfig, insertElement, isElementAngularIO, isSharedElement, isValidScript, metadataToElement, normalizeElementMetadata, parseBoundPath, parsePath, removeElement, stringifyElementMetadata, toElementAngularIO };
|
2776
2815
|
//# sourceMappingURL=veloceapps-sdk-cms.mjs.map
|