@veloceapps/sdk 8.0.0-107 → 8.0.0-109

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,11 +1,11 @@
1
1
  import * as i2 from '@veloceapps/sdk/core';
2
2
  import { IntegrationState, ConfigurationService, ConfigurationState, QuoteDraftService, FlowConfigurationService, FlowStateService, LineItemWorker, ProductImagesService, ContextService, RuntimeSettingsService, MetricsCalculationService, ActionCodePipe, DatePipe, NumberPipe, PricePipe, lineItemUtils, generateLineItem, getAttributeValue, SdkPipesModule, SdkCoreModule, UI_DEFINITION_VERSION } from '@veloceapps/sdk/core';
3
3
  export { IntegrationState } from '@veloceapps/sdk/core';
4
- import { __decorate, __param, __metadata, __rest } from 'tslib';
4
+ import { __decorate, __param, __metadata, __awaiter, __rest } from 'tslib';
5
5
  import * as i0 from '@angular/core';
6
6
  import { InjectionToken, Component, ChangeDetectionStrategy, Inject, Injector, Injectable, ViewContainerRef, SkipSelf, ViewChild, Input, ViewEncapsulation, NgModule, inject, ElementRef, Directive, ApplicationRef, createComponent, EventEmitter, createNgModule } from '@angular/core';
7
7
  import * as rxjs from 'rxjs';
8
- import { BehaviorSubject, Subject, map, distinctUntilChanged, of, tap, switchMap, startWith, takeUntil, combineLatest, catchError, ReplaySubject, noop, filter, take, Observable } from 'rxjs';
8
+ import { BehaviorSubject, Subject, map, distinctUntilChanged, of, tap, switchMap, startWith, takeUntil, combineLatest, catchError, ReplaySubject, noop, filter, take, Observable, from } from 'rxjs';
9
9
  import * as i3 from '@veloceapps/components';
10
10
  import { ToastType, LetDirectiveModule, LoaderModule, ToastService, HiddenTextTooltipModule, ErrorTooltipModule } from '@veloceapps/components';
11
11
  import lodash, { compact, cloneDeep, isArray, pull, merge, omit, flatten, kebabCase, set } from 'lodash';
@@ -22,8 +22,8 @@ import { ScrollingModule } from '@angular/cdk/scrolling';
22
22
  import * as angularForms from '@angular/forms';
23
23
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
24
24
  import * as rxjsOperators from 'rxjs/operators';
25
- import { transform } from '@babel/standalone';
26
25
  import * as sass from 'sass';
26
+ import { transform } from '@babel/standalone';
27
27
  import { loadRemoteModule } from '@angular-architects/module-federation';
28
28
 
29
29
  var FlowAction;
@@ -1022,9 +1022,12 @@ class PreviewComponent {
1022
1022
  this.startPreview();
1023
1023
  }
1024
1024
  ngOnDestroy() {
1025
+ var _a;
1025
1026
  this.destroy$.next();
1026
1027
  this.destroy$.complete();
1027
- this.configurationState.cleanup();
1028
+ if (!((_a = this.config) === null || _a === void 0 ? void 0 : _a.persistConfigurationState)) {
1029
+ this.configurationState.cleanup();
1030
+ }
1028
1031
  this.runtimeService.clear();
1029
1032
  }
1030
1033
  trackBy(_, el) {
@@ -1974,6 +1977,39 @@ function getElementAngularIOs(names) {
1974
1977
  }, []);
1975
1978
  }
1976
1979
 
1980
+ class ElementMetadataWorker {
1981
+ constructor(elements) {
1982
+ this.elements = elements;
1983
+ }
1984
+ get$() {
1985
+ return from((() => __awaiter(this, void 0, void 0, function* () { return this.processAsync(this.elements); }))());
1986
+ }
1987
+ processAsync(elements) {
1988
+ return __awaiter(this, void 0, void 0, function* () {
1989
+ const result = [];
1990
+ yield this.processLevelAsync(elements, result);
1991
+ return result;
1992
+ });
1993
+ }
1994
+ processLevelAsync(elements, metadata, parentPath) {
1995
+ return __awaiter(this, void 0, void 0, function* () {
1996
+ for (const el of elements) {
1997
+ const elMetadata = yield this.elementToMetadataAsync(el, parentPath);
1998
+ metadata.push(elMetadata);
1999
+ yield this.processLevelAsync(el.children, elMetadata.children, elMetadata.path);
2000
+ }
2001
+ });
2002
+ }
2003
+ elementToMetadataAsync(el, parentPath) {
2004
+ return new Promise(resolve => {
2005
+ setTimeout(() => {
2006
+ const metadata = elementToMetadata({ script: el.script, template: el.template, styles: el.styles, children: [] }, parentPath);
2007
+ resolve(metadata);
2008
+ });
2009
+ });
2010
+ }
2011
+ }
2012
+
1977
2013
  class ConfigurationPlugin {
1978
2014
  constructor(host) {
1979
2015
  var _a, _b;
@@ -2079,6 +2115,57 @@ const DEFAULT_PLUGINS = {
2079
2115
  DEFAULT: [],
2080
2116
  };
2081
2117
 
2118
+ class TranspilationWorker {
2119
+ constructor(elements) {
2120
+ this.elements = elements;
2121
+ }
2122
+ get$() {
2123
+ return from((() => __awaiter(this, void 0, void 0, function* () { return this.transpileScriptsAsync(this.elements); }))());
2124
+ }
2125
+ get() {
2126
+ return this.transpileScripts(this.elements);
2127
+ }
2128
+ transpileScripts(elements) {
2129
+ return elements.map(el => (Object.assign(Object.assign({}, el), { script: this.transpile(el), children: this.transpileScripts(el.children) })));
2130
+ }
2131
+ transpileScriptsAsync(elements) {
2132
+ return __awaiter(this, void 0, void 0, function* () {
2133
+ const result = [];
2134
+ yield this.processLevelAsync(elements, result);
2135
+ return result;
2136
+ });
2137
+ }
2138
+ processLevelAsync(elements, result) {
2139
+ return __awaiter(this, void 0, void 0, function* () {
2140
+ for (const el of elements) {
2141
+ const elMetadata = yield this.transpileMetadataAsync(el);
2142
+ result.push(elMetadata);
2143
+ yield this.processLevelAsync(el.children, elMetadata.children);
2144
+ }
2145
+ });
2146
+ }
2147
+ transpileMetadataAsync(el) {
2148
+ return new Promise(resolve => {
2149
+ setTimeout(() => {
2150
+ const result = Object.assign(Object.assign({}, el), { script: this.transpile(el), children: [] });
2151
+ resolve(result);
2152
+ });
2153
+ });
2154
+ }
2155
+ transpile(el) {
2156
+ var _a;
2157
+ if (!el.script) {
2158
+ return;
2159
+ }
2160
+ const transformed = transform(el.script, {
2161
+ filename: el.name + '.ts',
2162
+ presets: ['typescript'],
2163
+ sourceMaps: 'inline',
2164
+ });
2165
+ return (_a = transformed.code) !== null && _a !== void 0 ? _a : undefined;
2166
+ }
2167
+ }
2168
+
2082
2169
  class ElementsResolver {
2083
2170
  constructor(uiDef, elements, sharedElements = [], config) {
2084
2171
  var _a;
@@ -2086,12 +2173,10 @@ class ElementsResolver {
2086
2173
  this.config = config;
2087
2174
  this.renderableElements = [];
2088
2175
  this.sharedElements = [];
2089
- const transpiledElements = this.transpileScripts(elements);
2090
- const transpiledSharedElements = this.transpileScripts(sharedElements);
2091
- this.sharedElements = this.flattenElements(transpiledElements)
2176
+ this.sharedElements = this.flattenElements(elements)
2092
2177
  .filter(el => this.isSharedElement(el))
2093
- .concat(transpiledSharedElements);
2094
- this.elements = transpiledElements.map(el => this.processElementMetadata(el)).filter(isDefined);
2178
+ .concat(sharedElements);
2179
+ this.elements = elements.map(el => this.processElementMetadata(el)).filter(isDefined);
2095
2180
  this.renderableElements = this.getRenderableElements(this.elements);
2096
2181
  this.uiDefMetadata = Object.assign(Object.assign({}, this.uiDef), { customization: (_a = this.uiDef.customization) !== null && _a !== void 0 ? _a : this.getDefaultCustomizationState() });
2097
2182
  }
@@ -2099,28 +2184,13 @@ class ElementsResolver {
2099
2184
  if (element.isShared) {
2100
2185
  return;
2101
2186
  }
2102
- const transpiledElements = this.transpileScripts([element]);
2187
+ const transpiledElements = new TranspilationWorker([element]).get();
2103
2188
  this.elements = transpiledElements.map(el => this.processElementMetadata(el)).filter(isDefined);
2104
2189
  this.renderableElements = this.getRenderableElements(this.elements);
2105
2190
  }
2106
2191
  getNgComponents() {
2107
2192
  return [...this.renderableElements, ...this.sharedElements].filter(isDefined).reduce((trunk, el) => (Object.assign(Object.assign({}, trunk), { [el.path]: this.resolveElement(el) })), {});
2108
2193
  }
2109
- transpile(el) {
2110
- var _a;
2111
- if (!el.script) {
2112
- return;
2113
- }
2114
- const transformed = transform(el.script, {
2115
- filename: el.name + '.ts',
2116
- presets: ['typescript'],
2117
- sourceMaps: 'inline',
2118
- });
2119
- return (_a = transformed.code) !== null && _a !== void 0 ? _a : undefined;
2120
- }
2121
- transpileScripts(elements) {
2122
- return elements.map(el => (Object.assign(Object.assign({}, el), { script: this.transpile(el), children: this.transpileScripts(el.children) })));
2123
- }
2124
2194
  flattenElements(elements) {
2125
2195
  return flatten(elements.map(el => [el, ...this.flattenElements(el.children)]));
2126
2196
  }
@@ -2390,13 +2460,13 @@ class CompilationService {
2390
2460
  }
2391
2461
  compileUIDefinition$(uiDefinition, config) {
2392
2462
  return of([]).pipe(map(() => {
2393
- var _a, _b;
2394
2463
  const { children, pages, components } = uiDefinition, uiDefinitionMeta = __rest(uiDefinition, ["children", "pages", "components"]);
2395
2464
  this.uiDefinitionMeta = uiDefinitionMeta;
2396
2465
  const elements = [...(children !== null && children !== void 0 ? children : []), ...(pages !== null && pages !== void 0 ? pages : [])];
2397
2466
  const sharedElements = components !== null && components !== void 0 ? components : [];
2398
- const metadata = elements.map(element => elementToMetadata(element));
2399
- const sharedMetadata = sharedElements.map(element => elementToMetadata(element));
2467
+ return [elements, sharedElements];
2468
+ }), switchMap(elementsChunks => combineLatest(elementsChunks.map(chunk => new ElementMetadataWorker(chunk).get$()))), switchMap(dataChunks => combineLatest(dataChunks.map(chunk => new TranspilationWorker(chunk).get$()))), map(([metadata, sharedMetadata]) => {
2469
+ var _a, _b;
2400
2470
  this.elementsResolver = new ElementsResolver(uiDefinition, metadata, sharedMetadata, config);
2401
2471
  const componentTypes = this.elementsResolver.getNgComponents();
2402
2472
  const module = this.getModule(componentTypes);
@@ -2566,5 +2636,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
2566
2636
  * Generated bundle index. Do not edit.
2567
2637
  */
2568
2638
 
2569
- export { ApplyProductConfigurationAction, CloseDocGenAction, CmsAction, ConfigureProductAction, DEFAULT_ELEMENT, DEFAULT_PLUGINS_TOKEN, ELEMENT_CONFIG, ELEMENT_METADATA, ElementComponent, ElementDefinition, 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, 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 };
2639
+ 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 };
2570
2640
  //# sourceMappingURL=veloceapps-sdk-cms.mjs.map