@veloceapps/sdk 2.0.0 → 2.0.1
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/bundles/veloce-sdk-cms.umd.js +67 -24
- package/bundles/veloce-sdk-cms.umd.js.map +1 -1
- package/cms/injection-tokens.d.ts +1 -0
- package/cms/plugins/script.plugin.d.ts +2 -0
- package/cms/utils/element.utils.d.ts +1 -0
- package/cms/utils/elements-resolver.d.ts +1 -0
- package/esm2015/cms/components/preview/preview.component.js +1 -1
- package/esm2015/cms/injection-tokens.js +2 -1
- package/esm2015/cms/plugins/script.plugin.js +28 -21
- package/esm2015/cms/utils/element.utils.js +22 -1
- package/esm2015/cms/utils/elements-resolver.js +13 -6
- package/fesm2015/veloce-sdk-cms.js +63 -25
- package/fesm2015/veloce-sdk-cms.js.map +1 -1
- package/package.json +1 -1
|
@@ -354,6 +354,7 @@
|
|
|
354
354
|
var DEFAULT_PLUGINS_TOKEN = new i0.InjectionToken('DEFAULT_PLUGINS_TOKEN');
|
|
355
355
|
var UI_DEFINITION_METADATA = new i0.InjectionToken('UI_DEFINITION_METADATA_TOKEN');
|
|
356
356
|
var ELEMENT_METADATA = new i0.InjectionToken('ELEMENT_METADATA_TOKEN');
|
|
357
|
+
var SHARED_ELEMENT_METADATA = new i0.InjectionToken('SHARED_ELEMENT_METADATA_TOKEN');
|
|
357
358
|
var ELEMENT_CONFIG = new i0.InjectionToken('ELEMENT_CONFIG_TOKEN');
|
|
358
359
|
|
|
359
360
|
var vlInjectionTokens = /*#__PURE__*/Object.freeze({
|
|
@@ -361,6 +362,7 @@
|
|
|
361
362
|
DEFAULT_PLUGINS_TOKEN: DEFAULT_PLUGINS_TOKEN,
|
|
362
363
|
UI_DEFINITION_METADATA: UI_DEFINITION_METADATA,
|
|
363
364
|
ELEMENT_METADATA: ELEMENT_METADATA,
|
|
365
|
+
SHARED_ELEMENT_METADATA: SHARED_ELEMENT_METADATA,
|
|
364
366
|
ELEMENT_CONFIG: ELEMENT_CONFIG
|
|
365
367
|
});
|
|
366
368
|
|
|
@@ -858,6 +860,30 @@
|
|
|
858
860
|
var path = (parentPath ? parentPath + '/' : '') + elementMetadata.name;
|
|
859
861
|
return Object.assign(Object.assign({}, elementMetadata), { path: path, script: script === null || script === void 0 ? void 0 : script.replace(METADATA_DECORATOR_REGEX, 'export class'), template: template, styles: styles, children: el.children.map(function (child) { return elementToMetadata(child, path); }) });
|
|
860
862
|
};
|
|
863
|
+
var metadataToElement = function (metadata) {
|
|
864
|
+
var elMetadata = {
|
|
865
|
+
name: metadata.name,
|
|
866
|
+
type: metadata.type,
|
|
867
|
+
model: metadata.model,
|
|
868
|
+
module: metadata.module,
|
|
869
|
+
inputs: metadata.inputs,
|
|
870
|
+
outputs: metadata.outputs,
|
|
871
|
+
children: metadata.children.map(function (_b) {
|
|
872
|
+
var name = _b.name;
|
|
873
|
+
return name;
|
|
874
|
+
}),
|
|
875
|
+
};
|
|
876
|
+
var script = metadata.script &&
|
|
877
|
+
window.btoa(metadata.script.replace(EXPORTED_CLASS_REGEX, "@ElementDefinition(" + JSON.stringify(elMetadata) + ") export class Script "));
|
|
878
|
+
var template = metadata.template && window.btoa(metadata.template);
|
|
879
|
+
var styles = metadata.styles && window.btoa(metadata.styles);
|
|
880
|
+
return {
|
|
881
|
+
script: script,
|
|
882
|
+
template: template,
|
|
883
|
+
styles: styles,
|
|
884
|
+
children: metadata.children.map(function (meta) { return metadataToElement(meta); }),
|
|
885
|
+
};
|
|
886
|
+
};
|
|
861
887
|
var extractElementMetadata = function (script) {
|
|
862
888
|
var _a;
|
|
863
889
|
var metadataString = ((_a = METADATA_DECORATOR_REGEX.exec(script)) !== null && _a !== void 0 ? _a : [])[1];
|
|
@@ -1191,6 +1217,7 @@
|
|
|
1191
1217
|
var vlCmsUtils = /*#__PURE__*/Object.freeze({
|
|
1192
1218
|
__proto__: null,
|
|
1193
1219
|
elementToMetadata: elementToMetadata,
|
|
1220
|
+
metadataToElement: metadataToElement,
|
|
1194
1221
|
extractElementMetadata: extractElementMetadata,
|
|
1195
1222
|
extendElementMetadata: extendElementMetadata,
|
|
1196
1223
|
parseBoundPath: parseBoundPath,
|
|
@@ -1223,29 +1250,36 @@
|
|
|
1223
1250
|
var ScriptPlugin = /** @class */ (function () {
|
|
1224
1251
|
function ScriptPlugin(host) {
|
|
1225
1252
|
this.host = host;
|
|
1226
|
-
|
|
1253
|
+
this.document = this.host.injector.get(i6.DOCUMENT);
|
|
1227
1254
|
var elementMetadata = this.host.injector.get(ELEMENT_METADATA);
|
|
1255
|
+
var sharedElementMetadata = this.host.injector.get(SHARED_ELEMENT_METADATA);
|
|
1256
|
+
if (sharedElementMetadata === null || sharedElementMetadata === void 0 ? void 0 : sharedElementMetadata.script) {
|
|
1257
|
+
this.addScript(sharedElementMetadata.script);
|
|
1258
|
+
}
|
|
1228
1259
|
if (elementMetadata.script) {
|
|
1229
|
-
|
|
1230
|
-
var script = document.createElement('script');
|
|
1231
|
-
script.type = "text/javascript";
|
|
1232
|
-
var scriptContent = normalizeImports(elementMetadata.script);
|
|
1233
|
-
var classMatch = /export class (\S+)/.exec(scriptContent);
|
|
1234
|
-
var className = classMatch === null || classMatch === void 0 ? void 0 : classMatch[1];
|
|
1235
|
-
if (!classMatch || !className) {
|
|
1236
|
-
console.error("Script doesn't have exported class");
|
|
1237
|
-
return;
|
|
1238
|
-
}
|
|
1239
|
-
scriptContent = scriptContent.replace(classMatch[0], "class " + className);
|
|
1240
|
-
script.text = "var " + id + " = function(vendor) {" + scriptContent + "\n return " + className + "; };";
|
|
1241
|
-
document.body.appendChild(script);
|
|
1242
|
-
var ScriptClass = window[id](vendorMap);
|
|
1243
|
-
if (ScriptClass instanceof Object) {
|
|
1244
|
-
this.host.registerPlugin(new ScriptClass(this.host));
|
|
1245
|
-
}
|
|
1246
|
-
document.body.removeChild(script);
|
|
1260
|
+
this.addScript(elementMetadata.script);
|
|
1247
1261
|
}
|
|
1248
1262
|
}
|
|
1263
|
+
ScriptPlugin.prototype.addScript = function (scriptStr) {
|
|
1264
|
+
var id = btoa(core.UUID.UUID());
|
|
1265
|
+
var script = this.document.createElement('script');
|
|
1266
|
+
script.type = "text/javascript";
|
|
1267
|
+
var scriptContent = normalizeImports(scriptStr);
|
|
1268
|
+
var classMatch = /export class (\S+)/.exec(scriptContent);
|
|
1269
|
+
var className = classMatch === null || classMatch === void 0 ? void 0 : classMatch[1];
|
|
1270
|
+
if (!classMatch || !className) {
|
|
1271
|
+
console.error("Script doesn't have exported class");
|
|
1272
|
+
return;
|
|
1273
|
+
}
|
|
1274
|
+
scriptContent = scriptContent.replace(classMatch[0], "class " + className);
|
|
1275
|
+
script.text = "var " + id + " = function(vendor) {" + scriptContent + "\n return " + className + "; };";
|
|
1276
|
+
this.document.body.appendChild(script);
|
|
1277
|
+
var ScriptClass = window[id](vendorMap);
|
|
1278
|
+
if (ScriptClass instanceof Object) {
|
|
1279
|
+
this.host.registerPlugin(new ScriptClass(this.host));
|
|
1280
|
+
}
|
|
1281
|
+
this.document.body.removeChild(script);
|
|
1282
|
+
};
|
|
1249
1283
|
return ScriptPlugin;
|
|
1250
1284
|
}());
|
|
1251
1285
|
ScriptPlugin.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ScriptPlugin, deps: [{ token: exports.ElementComponent }], target: i0__namespace.ɵɵFactoryTarget.Directive });
|
|
@@ -1365,19 +1399,25 @@
|
|
|
1365
1399
|
ElementsResolver.prototype.isSharedElement = function (el) {
|
|
1366
1400
|
return Boolean(el.reference) && el.type !== 'REFERENCE';
|
|
1367
1401
|
};
|
|
1368
|
-
ElementsResolver.prototype.
|
|
1402
|
+
ElementsResolver.prototype.getSharedElement = function (element) {
|
|
1403
|
+
if (element.type !== 'REFERENCE') {
|
|
1404
|
+
return;
|
|
1405
|
+
}
|
|
1406
|
+
return this.sharedElements.find(function (el) { return element.reference === el.name; });
|
|
1407
|
+
};
|
|
1408
|
+
ElementsResolver.prototype.processElementMetadata = function (element, sharedElement) {
|
|
1369
1409
|
if (element.type === 'REFERENCE') {
|
|
1370
|
-
var sharedElement = this.sharedElements.find(function (el) { return element.reference === el.name; });
|
|
1371
1410
|
if (!sharedElement) {
|
|
1372
1411
|
console.warn("Shared element \"" + element.reference + "\" not found");
|
|
1373
1412
|
return;
|
|
1374
1413
|
}
|
|
1375
|
-
return Object.assign(Object.assign({}, element), { type: sharedElement.type, template: sharedElement.template,
|
|
1414
|
+
return Object.assign(Object.assign({}, element), { type: sharedElement.type, template: sharedElement.template, styles: sharedElement.styles, inputs: Object.assign(Object.assign({}, sharedElement.inputs), element.inputs), outputs: Object.assign(Object.assign({}, sharedElement.outputs), element.outputs) });
|
|
1376
1415
|
}
|
|
1377
1416
|
return element;
|
|
1378
1417
|
};
|
|
1379
1418
|
ElementsResolver.prototype.resolveElement = function (sourceElement) {
|
|
1380
|
-
var
|
|
1419
|
+
var sharedElement = this.getSharedElement(sourceElement);
|
|
1420
|
+
var element = this.processElementMetadata(sourceElement, sharedElement);
|
|
1381
1421
|
if (!element) {
|
|
1382
1422
|
return;
|
|
1383
1423
|
}
|
|
@@ -1391,6 +1431,7 @@
|
|
|
1391
1431
|
{ provide: DEFAULT_PLUGINS_TOKEN, useValue: defaultPlugins },
|
|
1392
1432
|
{ provide: UI_DEFINITION_METADATA, useValue: this.uiDef },
|
|
1393
1433
|
{ provide: ELEMENT_METADATA, useValue: element },
|
|
1434
|
+
{ provide: SHARED_ELEMENT_METADATA, useValue: sharedElement },
|
|
1394
1435
|
{ provide: ELEMENT_CONFIG, useValue: config },
|
|
1395
1436
|
] });
|
|
1396
1437
|
var cmp = i0.Component(component)(/** @class */ (function (_super) {
|
|
@@ -1506,7 +1547,7 @@
|
|
|
1506
1547
|
return PreviewComponent;
|
|
1507
1548
|
}());
|
|
1508
1549
|
PreviewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: PreviewComponent, deps: [{ token: LauncherService }, { token: ConfigurationService }, { token: i3__namespace.MessageService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1509
|
-
PreviewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: PreviewComponent, selector: "vl-cms-preview", inputs: { modelId: "modelId", uiDefinition: "uiDefinition" }, providers: [IOProviderService, ConfigurationService, TemplatesService], ngImport: i0__namespace, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-element-renderer *ngFor=\"let el of elements\" [meta]=\"el\"></vl-cms-element-renderer>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [":host{flex-grow:1;display:flex;flex-direction:column;height:100
|
|
1550
|
+
PreviewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: PreviewComponent, selector: "vl-cms-preview", inputs: { modelId: "modelId", uiDefinition: "uiDefinition" }, providers: [IOProviderService, ConfigurationService, TemplatesService], ngImport: i0__namespace, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-element-renderer *ngFor=\"let el of elements\" [meta]=\"el\"></vl-cms-element-renderer>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [":host{flex-grow:1;display:flex;flex-direction:column;height:100%}\n"], components: [{ type: i4__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label"] }, { type: ElementRendererComponent, selector: "vl-cms-element-renderer", inputs: ["meta"] }], directives: [{ type: i6__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i6__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
|
|
1510
1551
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: PreviewComponent, decorators: [{
|
|
1511
1552
|
type: i0.Component,
|
|
1512
1553
|
args: [{
|
|
@@ -1623,6 +1664,7 @@
|
|
|
1623
1664
|
exports.LineItemWorker = LineItemWorker;
|
|
1624
1665
|
exports.PreviewComponent = PreviewComponent;
|
|
1625
1666
|
exports.PreviewModule = PreviewModule;
|
|
1667
|
+
exports.SHARED_ELEMENT_METADATA = SHARED_ELEMENT_METADATA;
|
|
1626
1668
|
exports.TemplatesService = TemplatesService;
|
|
1627
1669
|
exports.UI_DEFINITION_METADATA = UI_DEFINITION_METADATA;
|
|
1628
1670
|
exports.elementToMetadata = elementToMetadata;
|
|
@@ -1636,6 +1678,7 @@
|
|
|
1636
1678
|
exports.getRecommendedPrices = getRecommendedPrices;
|
|
1637
1679
|
exports.insertLineItem = insertLineItem;
|
|
1638
1680
|
exports.mapAttributes = mapAttributes;
|
|
1681
|
+
exports.metadataToElement = metadataToElement;
|
|
1639
1682
|
exports.parseBoundPath = parseBoundPath;
|
|
1640
1683
|
exports.patchAttributes = patchAttributes;
|
|
1641
1684
|
exports.removeLineItem = removeLineItem;
|