@veloceapps/sdk 8.0.0-131 → 8.0.0-133

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. package/cms/components/preview/preview.component.d.ts +2 -2
  2. package/cms/vendor-map.d.ts +2 -2
  3. package/core/modules/configuration/index.d.ts +1 -1
  4. package/core/modules/configuration/services/configuration-state.service.d.ts +48 -0
  5. package/core/modules/configuration/services/configuration.service.d.ts +2 -1
  6. package/core/services/flow-info.service.d.ts +1 -0
  7. package/core/services/flow-state-configuration.service.d.ts +3 -4
  8. package/esm2020/cms/components/preview/preview.component.mjs +4 -4
  9. package/esm2020/cms/vendor-map.mjs +3 -3
  10. package/esm2020/core/core.module.mjs +2 -4
  11. package/esm2020/core/modules/configuration/configuration.module.mjs +4 -4
  12. package/esm2020/core/modules/configuration/helpers.mjs +1 -1
  13. package/esm2020/core/modules/configuration/index.mjs +2 -2
  14. package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +267 -0
  15. package/esm2020/core/modules/configuration/services/configuration.service.mjs +21 -15
  16. package/esm2020/core/services/flow-info.service.mjs +4 -1
  17. package/esm2020/core/services/flow-state-configuration.service.mjs +23 -21
  18. package/esm2020/core/services/flow-state.service.mjs +13 -4
  19. package/esm2020/src/guards/context.guard.mjs +1 -2
  20. package/esm2020/src/pages/product/product.component.mjs +21 -8
  21. package/esm2020/src/pages/remote/remote.component.mjs +4 -4
  22. package/esm2020/src/services/flow-router.service.mjs +30 -13
  23. package/esm2020/src/services/flow.service.mjs +48 -27
  24. package/fesm2015/veloceapps-sdk-cms.mjs +4 -4
  25. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  26. package/fesm2015/veloceapps-sdk-core.mjs +251 -101
  27. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  28. package/fesm2015/veloceapps-sdk.mjs +94 -45
  29. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  30. package/fesm2020/veloceapps-sdk-cms.mjs +4 -4
  31. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  32. package/fesm2020/veloceapps-sdk-core.mjs +240 -100
  33. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  34. package/fesm2020/veloceapps-sdk.mjs +93 -44
  35. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  36. package/package.json +1 -1
  37. package/src/pages/product/product.component.d.ts +6 -4
  38. package/src/pages/remote/remote.component.d.ts +2 -2
  39. package/src/services/flow-router.service.d.ts +4 -2
  40. package/src/services/flow.service.d.ts +7 -3
  41. package/core/modules/configuration/services/configuration.state.d.ts +0 -30
  42. package/esm2020/core/modules/configuration/services/configuration.state.mjs +0 -142
@@ -16,7 +16,7 @@ import * as i1 from 'primeng/dynamicdialog';
16
16
  import { BehaviorSubject, Subject, filter, first, tap, takeUntil, catchError, of, map, switchMap, shareReplay, startWith, distinctUntilChanged, from, take, combineLatest, forkJoin, throwError } from 'rxjs';
17
17
  import * as i1$2 from '@angular/router';
18
18
  import { NavigationEnd, NavigationStart, NavigationCancel, NavigationError, RouterModule } from '@angular/router';
19
- import { mapShoppingCartSettings, getMaxRenewalTermsValue, SalesforceIdUtils, ConfigurationContextMode, UUID } from '@veloceapps/core';
19
+ import { mapShoppingCartSettings, getMaxRenewalTermsValue, UITemplateType, SalesforceIdUtils, ConfigurationContextMode, UUID } from '@veloceapps/core';
20
20
  import { HttpErrorResponse, HttpParams } from '@angular/common/http';
21
21
  import * as i5$1 from '@angular/forms';
22
22
  import { FormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
@@ -552,11 +552,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
552
552
  }], ctorParameters: function () { return [{ type: i1.DialogService }, { type: i2.ContextService }, { type: i2.RuntimeSettingsService }]; } });
553
553
 
554
554
  class FlowRouterService {
555
- constructor(router, route, contextService, integrationState) {
555
+ constructor(router, route, contextService, integrationState, flowInfoService, flowStateService) {
556
556
  this.router = router;
557
557
  this.route = route;
558
558
  this.contextService = contextService;
559
559
  this.integrationState = integrationState;
560
+ this.flowInfoService = flowInfoService;
561
+ this.flowStateService = flowStateService;
560
562
  this.urlHistory = [];
561
563
  this.getLastChildRoute = (route) => {
562
564
  return route.firstChild ? this.getLastChildRoute(route.firstChild) : route;
@@ -665,12 +667,27 @@ class FlowRouterService {
665
667
  }
666
668
  }
667
669
  navigateToProductConfiguration(productId, lineItemId) {
668
- this.contextService.update({ properties: { productId, lineItemId } });
669
- const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);
670
- const flowRouteUrl = this.getFlowRootPath(routeSnapshot);
671
- this.router.navigate([flowRouteUrl, 'product'], {
672
- queryParams: { ...routeSnapshot.queryParams, productId },
673
- });
670
+ let updateContext$;
671
+ if (this.flowInfoService.isLegacy) {
672
+ updateContext$ = of(undefined).pipe(tap(() => {
673
+ this.contextService.update({ properties: { productId, lineItemId } });
674
+ }));
675
+ }
676
+ else {
677
+ updateContext$ = this.flowStateService.dispatch$(UITemplateType.FLOW_ENGINE, 'UPDATE_CONTEXT_PROPERTIES', {
678
+ productId,
679
+ lineItemId,
680
+ });
681
+ }
682
+ updateContext$
683
+ .pipe(tap(() => {
684
+ const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);
685
+ const flowRouteUrl = this.getFlowRootPath(routeSnapshot);
686
+ this.router.navigate([flowRouteUrl, 'product'], {
687
+ queryParams: { ...routeSnapshot.queryParams, productId },
688
+ });
689
+ }))
690
+ .subscribe();
674
691
  }
675
692
  navigateToShoppingCart() {
676
693
  const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);
@@ -704,21 +721,24 @@ class FlowRouterService {
704
721
  this.router.navigate([], { relativeTo: route, queryParams: { ...routeSnapshot.queryParams, ...queryParams } });
705
722
  }
706
723
  }
707
- FlowRouterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowRouterService, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: i2.ContextService }, { token: i2.IntegrationState }], target: i0.ɵɵFactoryTarget.Injectable });
724
+ FlowRouterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowRouterService, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: i2.ContextService }, { token: i2.IntegrationState }, { token: i2.FlowInfoService }, { token: i2.FlowStateService }], target: i0.ɵɵFactoryTarget.Injectable });
708
725
  FlowRouterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowRouterService, providedIn: 'root' });
709
726
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowRouterService, decorators: [{
710
727
  type: Injectable,
711
728
  args: [{ providedIn: 'root' }]
712
- }], ctorParameters: function () { return [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }, { type: i2.ContextService }, { type: i2.IntegrationState }]; } });
729
+ }], ctorParameters: function () { return [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }, { type: i2.ContextService }, { type: i2.IntegrationState }, { type: i2.FlowInfoService }, { type: i2.FlowStateService }]; } });
713
730
 
714
731
  class FlowService {
715
- constructor(integrationState, flowRouterService, quoteDraftService, configurationService, flowConfigurationService, flowDialogService) {
732
+ constructor(integrationState, flowRouterService, quoteDraftService, configurationService, configurationStateService, flowDialogService, flowConfigurationService, flowInfoService, flowStateService) {
716
733
  this.integrationState = integrationState;
717
734
  this.flowRouterService = flowRouterService;
718
735
  this.quoteDraftService = quoteDraftService;
719
736
  this.configurationService = configurationService;
720
- this.flowConfigurationService = flowConfigurationService;
737
+ this.configurationStateService = configurationStateService;
721
738
  this.flowDialogService = flowDialogService;
739
+ this.flowConfigurationService = flowConfigurationService;
740
+ this.flowInfoService = flowInfoService;
741
+ this.flowStateService = flowStateService;
722
742
  this.cleanup$ = new Subject();
723
743
  }
724
744
  cleanup() {
@@ -746,11 +766,18 @@ class FlowService {
746
766
  .subscribe();
747
767
  this.integrationState
748
768
  .listen$(FlowAction.FLOW_NAVIGATE_BACK)
749
- .pipe(tap(() => this.flowRouterService.navigateBack()), takeUntil(this.cleanup$))
769
+ .pipe(switchMap(() => this.configurationStateService.cancelConfiguration()), tap(() => this.flowRouterService.navigateBack()), takeUntil(this.cleanup$))
750
770
  .subscribe();
751
771
  this.integrationState
752
772
  .listen$(FlowAction.FLOW_NAVIGATE_TO)
753
- .pipe(tap(payload => this.flowRouterService.navigateTo(payload.path, payload.productId, payload.lineItemId)), takeUntil(this.cleanup$))
773
+ .pipe(switchMap(payload => this.configurationStateService.cancelConfiguration().pipe(map(() => payload))), tap(payload => {
774
+ if (payload.path === 'product') {
775
+ this.integrationState.dispatch(FlowAction.ConfigureProductAction(payload));
776
+ }
777
+ else {
778
+ this.flowRouterService.navigateTo(payload.path, payload.productId, payload.lineItemId);
779
+ }
780
+ }), takeUntil(this.cleanup$))
754
781
  .subscribe();
755
782
  this.integrationState
756
783
  .listen$(FlowAction.OPEN_DIALOG)
@@ -769,28 +796,14 @@ class FlowService {
769
796
  this.integrationState
770
797
  .listen$(FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)
771
798
  .pipe(switchMap(() => {
772
- const quoteDraft = this.quoteDraftService.quoteDraft;
773
- const lineItem = this.configurationService.getSnapshot();
774
- if (!quoteDraft || !lineItem) {
775
- return of(undefined);
776
- }
777
- const isNewLineItem = quoteDraft.currentState.every(li => li.id !== lineItem.id);
778
- const assetId = lineItem.assetId || lineItem.openOrderLineItemId;
779
- let updatedState;
780
- if (isNewLineItem) {
781
- updatedState = [...quoteDraft.currentState, lineItem];
799
+ if (this.flowInfoService.isLegacy) {
800
+ return this.legacyApplyConfiguration();
782
801
  }
783
802
  else {
784
- updatedState = quoteDraft.currentState.map(li => (li.id === lineItem.id ? lineItem : li));
803
+ return this.configurationStateService
804
+ .saveConfiguration('', true)
805
+ .pipe(switchMap(() => this.flowStateService.dispatch$(UITemplateType.FLOW_ENGINE, 'UPDATE_ASSET_IDS')));
785
806
  }
786
- return this.flowConfigurationService.calculate$({ ...quoteDraft, currentState: updatedState }).pipe(tap(() => {
787
- if (assetId) {
788
- const modifiedAssets = this.integrationState.state.modifiedAssets ?? {};
789
- this.integrationState.patchState({
790
- modifiedAssets: { ...modifiedAssets, [assetId]: true },
791
- });
792
- }
793
- }));
794
807
  }), tap(() => {
795
808
  this.configurationService.hasUnsavedChanges = false;
796
809
  this.flowRouterService.navigateToShoppingCart();
@@ -804,12 +817,36 @@ class FlowService {
804
817
  .pipe(map(path => path.split('/')?.[0]), takeUntil(this.cleanup$))
805
818
  .subscribe(flowPath => this.integrationState.patchState({ flowPath }));
806
819
  }
820
+ legacyApplyConfiguration() {
821
+ const quoteDraft = this.quoteDraftService.quoteDraft;
822
+ const lineItem = this.configurationService.getSnapshot();
823
+ if (!quoteDraft || !lineItem) {
824
+ return of(undefined);
825
+ }
826
+ const isNewLineItem = quoteDraft.currentState.every(li => li.id !== lineItem.id);
827
+ const assetId = lineItem.assetId || lineItem.openOrderLineItemId;
828
+ let updatedState;
829
+ if (isNewLineItem) {
830
+ updatedState = [...quoteDraft.currentState, lineItem];
831
+ }
832
+ else {
833
+ updatedState = quoteDraft.currentState.map(li => (li.id === lineItem.id ? lineItem : li));
834
+ }
835
+ return this.flowConfigurationService.calculate$({ ...quoteDraft, currentState: updatedState }).pipe(tap(() => {
836
+ if (assetId) {
837
+ const modifiedAssets = this.integrationState.state.modifiedAssets ?? {};
838
+ this.integrationState.patchState({
839
+ modifiedAssets: { ...modifiedAssets, [assetId]: true },
840
+ });
841
+ }
842
+ }));
843
+ }
807
844
  }
808
- FlowService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowService, deps: [{ token: i5.IntegrationState }, { token: FlowRouterService }, { token: i2.QuoteDraftService }, { token: i2.ConfigurationService }, { token: i2.FlowConfigurationService }, { token: FlowDialogService }], target: i0.ɵɵFactoryTarget.Injectable });
845
+ FlowService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowService, deps: [{ token: i5.IntegrationState }, { token: FlowRouterService }, { token: i2.QuoteDraftService }, { token: i2.ConfigurationService }, { token: i2.ConfigurationStateService }, { token: FlowDialogService }, { token: i2.FlowConfigurationService }, { token: i2.FlowInfoService }, { token: i2.FlowStateService }], target: i0.ɵɵFactoryTarget.Injectable });
809
846
  FlowService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowService });
810
847
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowService, decorators: [{
811
848
  type: Injectable
812
- }], ctorParameters: function () { return [{ type: i5.IntegrationState }, { type: FlowRouterService }, { type: i2.QuoteDraftService }, { type: i2.ConfigurationService }, { type: i2.FlowConfigurationService }, { type: FlowDialogService }]; } });
849
+ }], ctorParameters: function () { return [{ type: i5.IntegrationState }, { type: FlowRouterService }, { type: i2.QuoteDraftService }, { type: i2.ConfigurationService }, { type: i2.ConfigurationStateService }, { type: FlowDialogService }, { type: i2.FlowConfigurationService }, { type: i2.FlowInfoService }, { type: i2.FlowStateService }]; } });
813
850
 
814
851
  class FlowGuidedSellingService {
815
852
  constructor(integrationState) {
@@ -909,7 +946,6 @@ class ContextGuard {
909
946
  }
910
947
  // Initialize context and runtime settings
911
948
  return forkJoin([this.contextService.create(headerId, mode), this.runtimeSettingsService.create()]).pipe(tap(([context]) => {
912
- // Update context with queryParams
913
949
  this.contextService.update({
914
950
  ...context,
915
951
  properties: {
@@ -1387,12 +1423,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1387
1423
  }] });
1388
1424
 
1389
1425
  class ProductComponent {
1390
- constructor(contextService, configurationRuntimeService, configurationService, configurationState, quoteDraftService, integrationState, customizationService) {
1426
+ constructor(contextService, configurationRuntimeService, configurationService, configurationStateService, quoteDraftService, flowInfoService, flowStateService, integrationState, customizationService) {
1391
1427
  this.contextService = contextService;
1392
1428
  this.configurationRuntimeService = configurationRuntimeService;
1393
1429
  this.configurationService = configurationService;
1394
- this.configurationState = configurationState;
1430
+ this.configurationStateService = configurationStateService;
1395
1431
  this.quoteDraftService = quoteDraftService;
1432
+ this.flowInfoService = flowInfoService;
1433
+ this.flowStateService = flowStateService;
1396
1434
  this.integrationState = integrationState;
1397
1435
  this.customizationService = customizationService;
1398
1436
  this.uiDefinition$ = new BehaviorSubject(undefined);
@@ -1412,12 +1450,23 @@ class ProductComponent {
1412
1450
  }));
1413
1451
  }
1414
1452
  init$() {
1415
- return this.quoteDraftService.quoteDraft$.pipe(first(), switchMap(quote => {
1453
+ let quoteDraft$;
1454
+ if (this.flowInfoService.isLegacy) {
1455
+ quoteDraft$ = this.quoteDraftService.quoteDraft$;
1456
+ }
1457
+ else {
1458
+ quoteDraft$ = of(undefined);
1459
+ }
1460
+ return quoteDraft$.pipe(first(), switchMap(quote => {
1416
1461
  const contextProperties = this.contextService.resolve().properties;
1417
1462
  const productId = contextProperties.productId;
1418
1463
  if (!productId) {
1419
1464
  throw new Error(`Unable to start configuration for 'productId == null'`);
1420
1465
  }
1466
+ if (!quote) {
1467
+ const offeringId = contextProperties.offeringId;
1468
+ return this.configurationRuntimeService.init({ productId, offeringId });
1469
+ }
1421
1470
  const lineItemId = this.getLineItemId(quote, productId, contextProperties.lineItemId);
1422
1471
  const currentStateItem = quote.currentState.find(({ id }) => id === lineItemId);
1423
1472
  if (currentStateItem) {
@@ -1438,7 +1487,7 @@ class ProductComponent {
1438
1487
  this.configurationRuntimeService.initializationProps.attributesMap =
1439
1488
  this.integrationState.state.guidedSelling;
1440
1489
  }
1441
- }), switchMap(() => this.configurationState.init$()));
1490
+ }), switchMap(() => this.configurationStateService.init$()));
1442
1491
  }
1443
1492
  getLineItemId(quote, productId, lineItemId) {
1444
1493
  // search by lineItemId first
@@ -1449,12 +1498,12 @@ class ProductComponent {
1449
1498
  return id;
1450
1499
  }
1451
1500
  }
1452
- ProductComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductComponent, deps: [{ token: i2.ContextService }, { token: i2.ConfigurationRuntimeService }, { token: i2.ConfigurationService }, { token: i2.ConfigurationState }, { token: i2.QuoteDraftService }, { token: i2.IntegrationState }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1501
+ ProductComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductComponent, deps: [{ token: i2.ContextService }, { token: i2.ConfigurationRuntimeService }, { token: i2.ConfigurationService }, { token: i2.ConfigurationStateService }, { token: i2.QuoteDraftService }, { token: i2.FlowInfoService }, { token: i2.FlowStateService }, { token: i2.IntegrationState }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1453
1502
  ProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ProductComponent, selector: "vl-flow-product", ngImport: i0, template: "<vl-cms-preview [uiDefinition]=\"$any(uiDefinition$ | async)\" [config]=\"config\"></vl-cms-preview>\n", styles: [""], dependencies: [{ kind: "component", type: i5.PreviewComponent, selector: "vl-cms-preview", inputs: ["uiDefinition", "config"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1454
1503
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductComponent, decorators: [{
1455
1504
  type: Component,
1456
1505
  args: [{ selector: 'vl-flow-product', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vl-cms-preview [uiDefinition]=\"$any(uiDefinition$ | async)\" [config]=\"config\"></vl-cms-preview>\n" }]
1457
- }], ctorParameters: function () { return [{ type: i2.ContextService }, { type: i2.ConfigurationRuntimeService }, { type: i2.ConfigurationService }, { type: i2.ConfigurationState }, { type: i2.QuoteDraftService }, { type: i2.IntegrationState }, { type: undefined, decorators: [{
1506
+ }], ctorParameters: function () { return [{ type: i2.ContextService }, { type: i2.ConfigurationRuntimeService }, { type: i2.ConfigurationService }, { type: i2.ConfigurationStateService }, { type: i2.QuoteDraftService }, { type: i2.FlowInfoService }, { type: i2.FlowStateService }, { type: i2.IntegrationState }, { type: undefined, decorators: [{
1458
1507
  type: Optional
1459
1508
  }, {
1460
1509
  type: Inject,
@@ -1830,12 +1879,12 @@ class RemoteComponent {
1830
1879
  return optionConfigurations;
1831
1880
  }
1832
1881
  }
1833
- RemoteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RemoteComponent, deps: [{ token: i2.ContextService }, { token: i2.QuoteDraftService }, { token: i2.ConfigurationRuntimeService }, { token: i2.ConfigurationService }, { token: i2.ConfigurationState }, { token: i2$2.MessageService }, { token: i2.IntegrationState }, { token: i4.Location }], target: i0.ɵɵFactoryTarget.Component });
1882
+ RemoteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RemoteComponent, deps: [{ token: i2.ContextService }, { token: i2.QuoteDraftService }, { token: i2.ConfigurationRuntimeService }, { token: i2.ConfigurationService }, { token: i2.ConfigurationStateService }, { token: i2$2.MessageService }, { token: i2.IntegrationState }, { token: i4.Location }], target: i0.ɵɵFactoryTarget.Component });
1834
1883
  RemoteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: RemoteComponent, selector: "vl-flow-remote", ngImport: i0, 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-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PreviewComponent, selector: "vl-cms-preview", inputs: ["uiDefinition", "config"] }, { kind: "component", type: i2$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1835
1884
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RemoteComponent, decorators: [{
1836
1885
  type: Component,
1837
1886
  args: [{ selector: 'vl-flow-remote', changeDetection: ChangeDetectionStrategy.OnPush, 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-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n" }]
1838
- }], ctorParameters: function () { return [{ type: i2.ContextService }, { type: i2.QuoteDraftService }, { type: i2.ConfigurationRuntimeService }, { type: i2.ConfigurationService }, { type: i2.ConfigurationState }, { type: i2$2.MessageService }, { type: i2.IntegrationState }, { type: i4.Location }]; } });
1887
+ }], ctorParameters: function () { return [{ type: i2.ContextService }, { type: i2.QuoteDraftService }, { type: i2.ConfigurationRuntimeService }, { type: i2.ConfigurationService }, { type: i2.ConfigurationStateService }, { type: i2$2.MessageService }, { type: i2.IntegrationState }, { type: i4.Location }]; } });
1839
1888
 
1840
1889
  class RemoteModule {
1841
1890
  }