@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.
@@ -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
- var document = this.host.injector.get(i6.DOCUMENT);
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
- var id = btoa(core.UUID.UUID());
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.processElementMetadata = function (element) {
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, script: sharedElement.script, styles: sharedElement.styles, inputs: Object.assign(Object.assign({}, sharedElement.inputs), element.inputs), outputs: Object.assign(Object.assign({}, sharedElement.outputs), element.outputs) });
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 element = this.processElementMetadata(sourceElement);
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%;all:unset}\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 });
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;