@veloceapps/sdk 3.0.3 → 3.0.5

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.
Files changed (52) hide show
  1. package/bundles/veloce-sdk-cms.umd.js +112 -23
  2. package/bundles/veloce-sdk-cms.umd.js.map +1 -1
  3. package/bundles/veloce-sdk-runtime.umd.js +8 -0
  4. package/bundles/veloce-sdk-runtime.umd.js.map +1 -1
  5. package/bundles/veloce-sdk.umd.js +1343 -1246
  6. package/bundles/veloce-sdk.umd.js.map +1 -1
  7. package/cms/launcher.module.d.ts +2 -1
  8. package/cms/modules/configuration/services/configuration-runtime.service.d.ts +2 -2
  9. package/cms/modules/flow-configuration/flow-configuration.module.d.ts +6 -0
  10. package/cms/modules/flow-configuration/index.d.ts +2 -0
  11. package/cms/modules/flow-configuration/services/flow-configuration.service.d.ts +25 -0
  12. package/cms/modules/index.d.ts +1 -0
  13. package/cms/types/ui-definition.types.d.ts +2 -0
  14. package/esm2015/cms/components/preview/preview.component.js +2 -4
  15. package/esm2015/cms/launcher.module.js +5 -4
  16. package/esm2015/cms/modules/configuration/helpers.js +2 -2
  17. package/esm2015/cms/modules/configuration/services/configuration-runtime.service.js +7 -5
  18. package/esm2015/cms/modules/flow-configuration/flow-configuration.module.js +17 -0
  19. package/esm2015/cms/modules/flow-configuration/index.js +3 -0
  20. package/esm2015/cms/modules/flow-configuration/services/flow-configuration.service.js +58 -0
  21. package/esm2015/cms/modules/index.js +2 -1
  22. package/esm2015/cms/types/ui-definition.types.js +1 -1
  23. package/esm2015/runtime/services/context.service.js +5 -1
  24. package/esm2015/src/components/header/header.component.js +73 -4
  25. package/esm2015/src/components/header/header.module.js +7 -4
  26. package/esm2015/src/components/header/header.types.js +2 -0
  27. package/esm2015/src/flow.component.js +3 -7
  28. package/esm2015/src/index.js +2 -1
  29. package/esm2015/src/pages/debug/debug.component.js +14 -9
  30. package/esm2015/src/pages/debug/debug.module.js +6 -2
  31. package/esm2015/src/resolvers/quote.resolver.js +21 -6
  32. package/esm2015/src/types/route.types.js +1 -1
  33. package/esm2015/src/utils/flow.utils.js +12 -0
  34. package/esm2015/src/utils/index.js +2 -0
  35. package/fesm2015/veloce-sdk-cms.js +91 -25
  36. package/fesm2015/veloce-sdk-cms.js.map +1 -1
  37. package/fesm2015/veloce-sdk-runtime.js +4 -0
  38. package/fesm2015/veloce-sdk-runtime.js.map +1 -1
  39. package/fesm2015/veloce-sdk.js +164 -70
  40. package/fesm2015/veloce-sdk.js.map +1 -1
  41. package/package.json +1 -1
  42. package/runtime/services/context.service.d.ts +1 -0
  43. package/src/components/header/header.component.d.ts +23 -1
  44. package/src/components/header/header.module.d.ts +4 -1
  45. package/src/components/header/header.types.d.ts +8 -0
  46. package/src/index.d.ts +1 -0
  47. package/src/pages/debug/debug.component.d.ts +1 -0
  48. package/src/pages/debug/debug.module.d.ts +2 -1
  49. package/src/resolvers/quote.resolver.d.ts +6 -2
  50. package/src/types/route.types.d.ts +5 -0
  51. package/src/utils/flow.utils.d.ts +1 -0
  52. package/src/utils/index.d.ts +1 -0
@@ -1,39 +1,105 @@
1
- import * as i5 from '@angular/common';
1
+ import * as i4 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Component, ChangeDetectionStrategy, NgModule, Injectable, InjectionToken, Optional, Inject } from '@angular/core';
5
- import * as i1$1 from '@veloce/api';
5
+ import * as i1 from '@veloce/api';
6
6
  import { ApiModule } from '@veloce/api';
7
7
  import * as i2$1 from '@veloce/components';
8
- import { LoaderModule, ToastType } from '@veloce/components';
8
+ import { LetDirectiveModule, LoaderModule, ToastType } from '@veloce/components';
9
9
  import * as i1$3 from '@veloce/sdk/cms';
10
10
  import { PreviewModule, LauncherModule } from '@veloce/sdk/cms';
11
11
  import * as i2 from '@veloce/sdk/runtime';
12
12
  import { RuntimeOperation, RuntimeModule, ContextService } from '@veloce/sdk/runtime';
13
- import * as i1 from '@angular/router';
14
- import { NavigationEnd, NavigationStart, NavigationCancel, NavigationError, RouterModule } from '@angular/router';
15
- import { map, filter, shareReplay, startWith, distinctUntilChanged, Subject, of, BehaviorSubject, first as first$1, takeUntil as takeUntil$1, tap, switchMap as switchMap$1, catchError, from } from 'rxjs';
13
+ import * as i3 from 'primeng/overlaypanel';
14
+ import { OverlayPanelModule } from 'primeng/overlaypanel';
15
+ import * as i5 from 'primeng/tooltip';
16
+ import { TooltipModule } from 'primeng/tooltip';
16
17
  import { ConfigurationContextMode, EntityUtil, UITemplateComponentType, UITemplateType } from '@veloce/core';
17
- import * as i6 from '@angular/forms';
18
+ import { BehaviorSubject, Subject, of, map, takeUntil, filter, shareReplay, startWith, distinctUntilChanged, first as first$1, tap, switchMap as switchMap$1, catchError, from } from 'rxjs';
19
+ import * as i4$1 from 'primeng/api';
20
+ import * as i1$1 from '@angular/router';
21
+ import { NavigationEnd, NavigationStart, NavigationCancel, NavigationError, RouterModule } from '@angular/router';
22
+ import * as i7 from '@angular/forms';
18
23
  import { FormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
19
- import * as i4 from 'primeng/button';
24
+ import * as i5$1 from 'primeng/button';
20
25
  import { ButtonModule } from 'primeng/button';
21
- import * as i7 from 'primeng/inputtext';
26
+ import * as i4$2 from 'primeng/dropdown';
27
+ import { DropdownModule } from 'primeng/dropdown';
28
+ import * as i8 from 'primeng/inputtext';
22
29
  import { InputTextModule } from 'primeng/inputtext';
23
- import * as i5$1 from 'primeng/radiobutton';
30
+ import * as i6 from 'primeng/radiobutton';
24
31
  import { RadioButtonModule } from 'primeng/radiobutton';
25
- import { map as map$1, first, takeUntil, take, switchMap, tap as tap$1, catchError as catchError$1 } from 'rxjs/operators';
32
+ import { map as map$1, first, takeUntil as takeUntil$1, take, switchMap, tap as tap$1, catchError as catchError$1 } from 'rxjs/operators';
26
33
  import * as i1$2 from 'ngx-bootstrap/tooltip';
27
- import { TooltipModule } from 'ngx-bootstrap/tooltip';
28
- import * as i4$1 from 'primeng/api';
34
+ import { TooltipModule as TooltipModule$1 } from 'ngx-bootstrap/tooltip';
29
35
  import { HttpErrorResponse } from '@angular/common/http';
30
36
 
31
37
  const VELOCE_FLOW_ROOT_ROUTE = 'VELOCE_FLOW_ROOT_ROUTE';
32
38
 
33
39
  class FlowHeaderComponent {
40
+ constructor(context, sfApiService) {
41
+ var _a, _b, _c;
42
+ this.context = context;
43
+ this.sfApiService = sfApiService;
44
+ this.objectDetails$ = new BehaviorSubject({});
45
+ this.destroyed$ = new Subject();
46
+ const ctx = this.context.resolve();
47
+ this.mode = ctx === null || ctx === void 0 ? void 0 : ctx.mode;
48
+ this.objectName = (_b = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.mode) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';
49
+ this.contextProperties = (_c = ctx === null || ctx === void 0 ? void 0 : ctx.properties) !== null && _c !== void 0 ? _c : {};
50
+ }
51
+ ngOnInit() {
52
+ this.populateObjectDetails();
53
+ }
54
+ ngOnDestroy() {
55
+ this.destroyed$.next();
56
+ this.destroyed$.complete();
57
+ }
58
+ get isAccountMode() {
59
+ return this.mode === ConfigurationContextMode.ACCOUNT;
60
+ }
61
+ get isQuoteMode() {
62
+ return this.mode === ConfigurationContextMode.QUOTE;
63
+ }
64
+ back() {
65
+ var _a;
66
+ const objectId = (_a = this.context.resolve()) === null || _a === void 0 ? void 0 : _a.headerId;
67
+ if (objectId) {
68
+ window.VELO_BACK_FN.apply(null, [objectId]);
69
+ }
70
+ }
71
+ getSalesforceObjectLink(objectId) {
72
+ if (!objectId) {
73
+ return '';
74
+ }
75
+ return `${window.location.origin}/${objectId}`;
76
+ }
77
+ queryName$(objectName, id) {
78
+ if (!id) {
79
+ return of('');
80
+ }
81
+ const searchRequest = {
82
+ count: 1,
83
+ rawCondition: `Id = '${id}'`,
84
+ fields: ['Name'],
85
+ };
86
+ return this.sfApiService.query(searchRequest, objectName).pipe(map(result => { var _a, _b; return (_b = (_a = result[0]) === null || _a === void 0 ? void 0 : _a.Name) !== null && _b !== void 0 ? _b : ''; }), takeUntil(this.destroyed$));
87
+ }
88
+ populateObjectDetails() {
89
+ const accountId = this.isAccountMode ? this.contextProperties.Id : this.contextProperties.AccountId;
90
+ const opportunityId = this.contextProperties.OpportunityId;
91
+ const quoteId = this.isQuoteMode ? this.contextProperties.Id : undefined;
92
+ const quoteName = this.isQuoteMode ? this.contextProperties.Name : undefined;
93
+ this.objectDetails$.next(Object.assign(Object.assign({}, this.objectDetails$.value), { accountId,
94
+ opportunityId,
95
+ quoteId,
96
+ quoteName }));
97
+ this.queryName$('Account', accountId).subscribe(accountName => this.objectDetails$.next(Object.assign(Object.assign({}, this.objectDetails$.value), { accountName })));
98
+ this.queryName$('Opportunity', opportunityId).subscribe(opportunityName => this.objectDetails$.next(Object.assign(Object.assign({}, this.objectDetails$.value), { opportunityName })));
99
+ }
34
100
  }
35
- FlowHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- FlowHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowHeaderComponent, selector: "vl-flow-header", ngImport: i0, template: "Flow Header\n", styles: [":host{display:flex;align-items:center;height:48px;width:100%;background-color:var(--vl-primary-color);color:#fff;padding:0 32px;font-weight:bold;flex-shrink:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
101
+ FlowHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowHeaderComponent, deps: [{ token: i2.ContextService }, { token: i1.SalesforceApiService }], target: i0.ɵɵFactoryTarget.Component });
102
+ FlowHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowHeaderComponent, selector: "vl-flow-header", ngImport: i0, template: "<nav class=\"nav-item nav-back\" (click)=\"back()\">\n <i class=\"nav-icon vl-icon vl-icon-arrow-left\"></i>\n <span> Back </span>\n <span *ngIf=\"objectName\" class=\"object-name\">&nbsp;To {{ objectName }}</span>\n</nav>\n\n<ng-container *ngIf=\"isAccountMode\">\n <span class=\"dot-separator\"></span>\n Account name\n <nav class=\"account-name\" [pTooltip]=\"contextProperties.Name\" tooltipPosition=\"bottom\" [showDelay]=\"1000\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(contextProperties.Id)\">{{ contextProperties.Name }}</a>\n </nav>\n</ng-container>\n\n<ng-container *ngIf=\"isQuoteMode\">\n <span class=\"dot-separator\"></span>\n Quote #{{ contextProperties.QuoteNumber }}\n <span class=\"dot-separator\"></span>\n <nav (click)=\"quoteDetails.toggle($event)\">\n {{ contextProperties.Status }}\n <i *ngIf=\"!quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"navigation-settings-overlay flow-header-overlay left\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Quote Information</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"quoteDetails.hide()\"></i>\n </h2>\n\n <ul class=\"info-list\" *vlLet=\"objectDetails$ | async as details\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">{{ details.accountName }}</a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">{{ details.opportunityName }}</a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">{{ details.quoteName }}</a>\n </li>\n </ul>\n </div>\n </ng-template>\n </p-overlayPanel>\n</ng-container>\n", styles: [":host{display:flex;align-items:center;height:48px;width:100%;background-color:var(--vl-primary-color);color:#fff;padding:0 32px;flex-shrink:0}::ng-deep .p-overlaypanel.flow-header-overlay .p-overlaypanel-content{background-color:#fff;padding:16px}::ng-deep .p-overlaypanel.flow-header-overlay:before{background-color:#fff}.vl-icon{display:inline-block}.object-name{text-transform:capitalize}.nav-back{font-weight:bold}nav{display:flex;align-items:center;cursor:pointer;padding:4px 0}nav .nav-icon{margin-right:10px}nav .icon-with-margin{margin:0 4px}nav a{color:#fff}nav.account-name{margin-left:4px;display:block;max-width:160px;overflow:hidden;text-overflow:ellipsis}.dot-separator:after{content:\"\";display:block;width:4px;height:4px;border-radius:50%;background:#fff;margin:0 8px}.flow-header-overlay__wrapper{width:360px}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 24px}.close-icon{cursor:pointer}.info-list{list-style:none;padding:0;font-size:12px}.info-list__row{padding:8px 0;display:flex;justify-content:space-between}\n"], components: [{ type: i3.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i4$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i2$1.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
37
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowHeaderComponent, decorators: [{
38
104
  type: Component,
39
105
  args: [{
@@ -42,18 +108,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
42
108
  styleUrls: ['./header.component.scss'],
43
109
  changeDetection: ChangeDetectionStrategy.OnPush,
44
110
  }]
45
- }] });
111
+ }], ctorParameters: function () { return [{ type: i2.ContextService }, { type: i1.SalesforceApiService }]; } });
46
112
 
47
113
  class FlowHeaderModule {
48
114
  }
49
115
  FlowHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
50
- FlowHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [CommonModule], exports: [FlowHeaderComponent] });
51
- FlowHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowHeaderModule, imports: [[CommonModule]] });
116
+ FlowHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [CommonModule, OverlayPanelModule, LetDirectiveModule, TooltipModule], exports: [FlowHeaderComponent] });
117
+ FlowHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowHeaderModule, imports: [[CommonModule, OverlayPanelModule, LetDirectiveModule, TooltipModule]] });
52
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowHeaderModule, decorators: [{
53
119
  type: NgModule,
54
120
  args: [{
55
121
  declarations: [FlowHeaderComponent],
56
- imports: [CommonModule],
122
+ imports: [CommonModule, OverlayPanelModule, LetDirectiveModule, TooltipModule],
57
123
  exports: [FlowHeaderComponent],
58
124
  }]
59
125
  }] });
@@ -123,27 +189,23 @@ class RouterService {
123
189
  return this.lastChildParams$;
124
190
  }
125
191
  }
126
- RouterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RouterService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
192
+ RouterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RouterService, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
127
193
  RouterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RouterService, providedIn: 'root' });
128
194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RouterService, decorators: [{
129
195
  type: Injectable,
130
196
  args: [{ providedIn: 'root' }]
131
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; } });
197
+ }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i1$1.ActivatedRoute }]; } });
132
198
 
133
199
  class FlowComponent {
134
200
  constructor(routerService, context) {
135
201
  this.routerService = routerService;
136
202
  this.context = context;
137
203
  this.isLoading$ = this.routerService.loading$;
138
- this.showHeader$ = this.routerService.route$.pipe(map(route => {
139
- var _a;
140
- const showHeader = ((_a = this.context.resolve()) === null || _a === void 0 ? void 0 : _a.properties.standalone) !== 'true';
141
- return route.data.showHeader && showHeader;
142
- }));
204
+ this.showHeader$ = this.routerService.route$.pipe(map(route => route.data.showHeader && !this.context.isStandalone));
143
205
  }
144
206
  }
145
207
  FlowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowComponent, deps: [{ token: RouterService }, { token: i2.ContextService }], target: i0.ɵɵFactoryTarget.Component });
146
- FlowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowComponent, selector: "vl-flow", ngImport: i0, template: "<vl-flow-header *ngIf=\"showHeader$ | async\"></vl-flow-header>\n\n<div class=\"flow-content\">\n <div class=\"loading-overlay\" *ngIf=\"isLoading$ | async\">\n <vl-loader label=\"LOADING\"></vl-loader>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n", styles: [":host{display:flex;flex-direction:column;height:100%}.flow-content{flex-grow:1;position:relative}.loading-overlay{position:absolute;height:100%;width:100%;left:0;right:0;top:0;bottom:0;background-color:#ffffff80;z-index:4}\n"], components: [{ type: FlowHeaderComponent, selector: "vl-flow-header" }, { type: i2$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
208
+ FlowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowComponent, selector: "vl-flow", ngImport: i0, template: "<vl-flow-header *ngIf=\"showHeader$ | async\"></vl-flow-header>\n\n<div class=\"flow-content\">\n <div class=\"loading-overlay\" *ngIf=\"isLoading$ | async\">\n <vl-loader label=\"LOADING\"></vl-loader>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n", styles: [":host{display:flex;flex-direction:column;height:100%}.flow-content{flex-grow:1;position:relative;padding:24px 54px;overflow:auto}.loading-overlay{position:absolute;height:100%;width:100%;left:0;right:0;top:0;bottom:0;background-color:#ffffff80;z-index:4}\n"], components: [{ type: FlowHeaderComponent, selector: "vl-flow-header" }, { type: i2$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
147
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowComponent, decorators: [{
148
210
  type: Component,
149
211
  args: [{
@@ -206,11 +268,11 @@ class ContextGuard {
206
268
  return false;
207
269
  }
208
270
  }
209
- ContextGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ContextGuard, deps: [{ token: i1.Router }, { token: RouterService }], target: i0.ɵɵFactoryTarget.Injectable });
271
+ ContextGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ContextGuard, deps: [{ token: i1$1.Router }, { token: RouterService }], target: i0.ɵɵFactoryTarget.Injectable });
210
272
  ContextGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ContextGuard });
211
273
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ContextGuard, decorators: [{
212
274
  type: Injectable
213
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: RouterService }]; } });
275
+ }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: RouterService }]; } });
214
276
 
215
277
  class RootGuard {
216
278
  constructor(router, routerService) {
@@ -242,12 +304,24 @@ class RootGuard {
242
304
  return true;
243
305
  }
244
306
  }
245
- RootGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RootGuard, deps: [{ token: i1.Router }, { token: RouterService }], target: i0.ɵɵFactoryTarget.Injectable });
307
+ RootGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RootGuard, deps: [{ token: i1$1.Router }, { token: RouterService }], target: i0.ɵɵFactoryTarget.Injectable });
246
308
  RootGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RootGuard, providedIn: 'root' });
247
309
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RootGuard, decorators: [{
248
310
  type: Injectable,
249
311
  args: [{ providedIn: 'root' }]
250
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: RouterService }]; } });
312
+ }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: RouterService }]; } });
313
+
314
+ const getFlowObjectIdPropertyName = (objectName) => {
315
+ switch (objectName) {
316
+ case 'Account':
317
+ return 'accountId';
318
+ case 'Order':
319
+ return 'orderId';
320
+ case 'Quote':
321
+ default:
322
+ return 'quoteId';
323
+ }
324
+ };
251
325
 
252
326
  class FlowService {
253
327
  constructor(configurationSettingsApiService) {
@@ -263,11 +337,11 @@ class FlowService {
263
337
  .pipe(map$1(({ value }) => (value ? JSON.parse(value) : [])));
264
338
  }
265
339
  }
266
- FlowService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowService, deps: [{ token: i1$1.ConfigurationSettingsApiService }], target: i0.ɵɵFactoryTarget.Injectable });
340
+ FlowService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowService, deps: [{ token: i1.ConfigurationSettingsApiService }], target: i0.ɵɵFactoryTarget.Injectable });
267
341
  FlowService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowService });
268
342
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowService, decorators: [{
269
343
  type: Injectable
270
- }], ctorParameters: function () { return [{ type: i1$1.ConfigurationSettingsApiService }]; } });
344
+ }], ctorParameters: function () { return [{ type: i1.ConfigurationSettingsApiService }]; } });
271
345
 
272
346
  class DebugComponent {
273
347
  constructor(flowService, router, activatedRoute, context) {
@@ -275,8 +349,10 @@ class DebugComponent {
275
349
  this.router = router;
276
350
  this.activatedRoute = activatedRoute;
277
351
  this.context = context;
352
+ this.objectNames = ['Account', 'Quote', 'Order'];
278
353
  this.form = new FormGroup({
279
354
  id: new FormControl(''),
355
+ name: new FormControl('Quote'),
280
356
  });
281
357
  this.flows$ = this.flowService.fetchFlows().pipe(map(flows => flows.map(flow => {
282
358
  var _a, _b, _c;
@@ -290,20 +366,21 @@ class DebugComponent {
290
366
  })), shareReplay());
291
367
  }
292
368
  runFlow() {
293
- const { id } = this.form.value;
369
+ const { id, name } = this.form.value;
370
+ const objectPropertyName = getFlowObjectIdPropertyName(name);
294
371
  if (!id || !this.selectedFlow) {
295
372
  return;
296
373
  }
297
374
  // Delete context before starting a new flow
298
375
  this.context.delete();
299
376
  this.router.navigate(['..', 'flows'], {
300
- queryParams: Object.assign({ flowId: this.selectedFlow.id, quoteId: id }, this.selectedFlow.queryParams),
377
+ queryParams: Object.assign({ flowId: this.selectedFlow.id, [objectPropertyName]: id }, this.selectedFlow.queryParams),
301
378
  relativeTo: this.activatedRoute,
302
379
  });
303
380
  }
304
381
  }
305
- DebugComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DebugComponent, deps: [{ token: FlowService }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.ContextService }], target: i0.ɵɵFactoryTarget.Component });
306
- DebugComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: DebugComponent, selector: "vl-flow-debug", ngImport: i0, template: "<form [formGroup]=\"form\">\n <div class=\"field\">\n <label>SF Object ID</label>\n <input formControlName=\"id\" pInputText type=\"text\" />\n </div>\n\n <p-button\n styleClass=\"p-button-primary\"\n label=\"Run Flow\"\n [disabled]=\"!form.value.id || !selectedFlow\"\n (onClick)=\"runFlow()\"\n ></p-button>\n</form>\n\n<table>\n <thead>\n <tr>\n <th [width]=\"30\"></th>\n <th [width]=\"160\">ID</th>\n <th [width]=\"160\">Entry Path</th>\n <th>QueryParams</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let flow of flows$ | async\" (click)=\"selectedFlow = flow\">\n <td><p-radioButton [inputId]=\"flow.id\" name=\"flow\" [value]=\"flow\" [(ngModel)]=\"selectedFlow\"></p-radioButton></td>\n <td>{{ flow.id }}</td>\n <td>{{ flow.entryPath }}</td>\n <td>{{ flow.queryParamsStr }}</td>\n </tr>\n </tbody>\n</table>\n", styles: ["form{display:flex;align-items:center;justify-content:space-between}.field{display:flex;flex-direction:column;width:200px;flex-shrink:0}table{width:100%;border-collapse:collapse}tr{cursor:pointer}tr:hover{background-color:#f0f5fa}th{text-align:left;font-weight:600}th,td{padding:0 10px;height:30px;border-bottom:1px solid var(--vl-border-color);margin-right:16px}\n"], components: [{ type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i5$1.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.InputText, selector: "[pInputText]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
382
+ DebugComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DebugComponent, deps: [{ token: FlowService }, { token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: i2.ContextService }], target: i0.ɵɵFactoryTarget.Component });
383
+ DebugComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: DebugComponent, selector: "vl-flow-debug", ngImport: i0, template: "<form [formGroup]=\"form\">\n <div class=\"fields-container\">\n <div class=\"field\">\n <label>SF Object ID</label>\n <input formControlName=\"id\" pInputText type=\"text\" />\n </div>\n\n <div class=\"field\">\n <label>SF Object Name</label>\n <p-dropdown\n appendTo=\"body\"\n formControlName=\"name\"\n [autoDisplayFirst]=\"false\"\n [options]=\"objectNames\"\n ></p-dropdown>\n </div>\n </div>\n\n <p-button\n styleClass=\"p-button-primary\"\n label=\"Run Flow\"\n [disabled]=\"!form.value.id || !selectedFlow\"\n (onClick)=\"runFlow()\"\n ></p-button>\n</form>\n\n<table>\n <thead>\n <tr>\n <th [width]=\"30\"></th>\n <th [width]=\"160\">ID</th>\n <th [width]=\"160\">Entry Path</th>\n <th>QueryParams</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let flow of flows$ | async\" (click)=\"selectedFlow = flow\">\n <td><p-radioButton [inputId]=\"flow.id\" name=\"flow\" [value]=\"flow\" [(ngModel)]=\"selectedFlow\"></p-radioButton></td>\n <td>{{ flow.id }}</td>\n <td>{{ flow.entryPath }}</td>\n <td>{{ flow.queryParamsStr }}</td>\n </tr>\n </tbody>\n</table>\n", styles: ["form{display:flex;align-items:center;justify-content:space-between}.fields-container{display:flex;grid-gap:24px;gap:24px}.field{display:flex;flex-direction:column;width:200px;flex-shrink:0}:host ::ng-deep .p-dropdown{width:100%}table{width:100%;border-collapse:collapse}tr{cursor:pointer}tr:hover{background-color:#f0f5fa}th{text-align:left;font-weight:600}th,td{padding:0 10px;height:30px;border-bottom:1px solid var(--vl-border-color);margin-right:16px}\n"], components: [{ type: i4$2.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }, { type: i5$1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i8.InputText, selector: "[pInputText]" }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
307
384
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DebugComponent, decorators: [{
308
385
  type: Component,
309
386
  args: [{
@@ -312,7 +389,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
312
389
  styleUrls: ['./debug.component.scss'],
313
390
  changeDetection: ChangeDetectionStrategy.OnPush,
314
391
  }]
315
- }], ctorParameters: function () { return [{ type: FlowService }, { type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.ContextService }]; } });
392
+ }], ctorParameters: function () { return [{ type: FlowService }, { type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: i2.ContextService }]; } });
316
393
 
317
394
  const routes$1 = [{ path: '', component: DebugComponent }];
318
395
  class DebugModule {
@@ -320,9 +397,10 @@ class DebugModule {
320
397
  DebugModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DebugModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
321
398
  DebugModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DebugModule, declarations: [DebugComponent], imports: [CommonModule,
322
399
  FormsModule,
323
- ReactiveFormsModule, i1.RouterModule, RadioButtonModule,
400
+ ReactiveFormsModule, i1$1.RouterModule, RadioButtonModule,
324
401
  ButtonModule,
325
- InputTextModule] });
402
+ InputTextModule,
403
+ DropdownModule] });
326
404
  DebugModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DebugModule, imports: [[
327
405
  CommonModule,
328
406
  FormsModule,
@@ -331,6 +409,7 @@ DebugModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "1
331
409
  RadioButtonModule,
332
410
  ButtonModule,
333
411
  InputTextModule,
412
+ DropdownModule,
334
413
  ]] });
335
414
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DebugModule, decorators: [{
336
415
  type: NgModule,
@@ -344,6 +423,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
344
423
  RadioButtonModule,
345
424
  ButtonModule,
346
425
  InputTextModule,
426
+ DropdownModule,
347
427
  ],
348
428
  }]
349
429
  }] });
@@ -364,7 +444,7 @@ class LegacyProductComponent {
364
444
  }
365
445
  ngOnInit() {
366
446
  this.quoteService.quote$
367
- .pipe(first(), takeUntil(this.destroyed$))
447
+ .pipe(first(), takeUntil$1(this.destroyed$))
368
448
  .subscribe(quote => this.init(quote, this.route.snapshot.queryParams));
369
449
  this.runtimeService.onSolutionStopEvent.pipe(take(1)).subscribe(lineItem => this.onSolutionStop(lineItem));
370
450
  this.runtimeService.onSolutionReadyEvent.pipe(take(1)).subscribe(event => this.onSolutionReady(event));
@@ -379,7 +459,7 @@ class LegacyProductComponent {
379
459
  lineItem.actionCode = (_a = lineItem.actionCode) !== null && _a !== void 0 ? _a : 'ADD';
380
460
  }
381
461
  onSolutionCancel() {
382
- this.quoteService.quote$.pipe(first(), takeUntil(this.destroyed$)).subscribe(quote => {
462
+ this.quoteService.quote$.pipe(first(), takeUntil$1(this.destroyed$)).subscribe(quote => {
383
463
  window['VELO_BACK_FN'].apply(null, [quote.quoteId]);
384
464
  });
385
465
  }
@@ -392,7 +472,7 @@ class LegacyProductComponent {
392
472
  this.runtimeService.updateRuntime(states);
393
473
  }
394
474
  onSolutionStop(lineItem) {
395
- this.quoteService.quote$.pipe(first(), takeUntil(this.destroyed$)).subscribe(quote => {
475
+ this.quoteService.quote$.pipe(first(), takeUntil$1(this.destroyed$)).subscribe(quote => {
396
476
  const quoteToUpsert = Object.assign(Object.assign({}, quote), { context: this.contextService.resolve(), currentState: [...(this.currentStateService.currentState || []).filter(li => li.id !== lineItem.id), lineItem] });
397
477
  this.quoteApiService
398
478
  .upsertQuote(quoteToUpsert)
@@ -456,7 +536,7 @@ class LegacyProductComponent {
456
536
  }), switchMap(runtimeContext => this.customizeContext(productId, runtimeContext)));
457
537
  }
458
538
  }
459
- LegacyProductComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LegacyProductComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.QuoteService }, { token: i1$1.QuoteApiService }, { token: i2.ContextService }, { token: i2.RuntimeContextService }, { token: i2.RuntimeService }, { token: i2.CurrentStateService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
539
+ LegacyProductComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LegacyProductComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i2.QuoteService }, { token: i1.QuoteApiService }, { token: i2.ContextService }, { token: i2.RuntimeContextService }, { token: i2.RuntimeService }, { token: i2.CurrentStateService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
460
540
  LegacyProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: LegacyProductComponent, selector: "ng-component", ngImport: i0, template: "<vl-runtime #runtimeView (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n", styles: [":host{display:block;height:100%}\n"], components: [{ type: i2.RuntimeComponent, selector: "vl-runtime", outputs: ["solutionUpdated"] }] });
461
541
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LegacyProductComponent, decorators: [{
462
542
  type: Component,
@@ -464,7 +544,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
464
544
  templateUrl: './legacy-product.component.html',
465
545
  styleUrls: ['./legacy-product.component.scss'],
466
546
  }]
467
- }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.QuoteService }, { type: i1$1.QuoteApiService }, { type: i2.ContextService }, { type: i2.RuntimeContextService }, { type: i2.RuntimeService }, { type: i2.CurrentStateService }, { type: undefined, decorators: [{
547
+ }], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i2.QuoteService }, { type: i1.QuoteApiService }, { type: i2.ContextService }, { type: i2.RuntimeContextService }, { type: i2.RuntimeService }, { type: i2.CurrentStateService }, { type: undefined, decorators: [{
468
548
  type: Optional
469
549
  }, {
470
550
  type: Inject,
@@ -475,12 +555,12 @@ class LegacyProductModule {
475
555
  }
476
556
  LegacyProductModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LegacyProductModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
477
557
  LegacyProductModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LegacyProductModule, declarations: [LegacyProductComponent], imports: [CommonModule, RuntimeModule, i1$2.TooltipModule], exports: [LegacyProductComponent] });
478
- LegacyProductModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LegacyProductModule, imports: [[CommonModule, RuntimeModule, TooltipModule.forRoot()]] });
558
+ LegacyProductModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LegacyProductModule, imports: [[CommonModule, RuntimeModule, TooltipModule$1.forRoot()]] });
479
559
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LegacyProductModule, decorators: [{
480
560
  type: NgModule,
481
561
  args: [{
482
562
  declarations: [LegacyProductComponent],
483
- imports: [CommonModule, RuntimeModule, TooltipModule.forRoot()],
563
+ imports: [CommonModule, RuntimeModule, TooltipModule$1.forRoot()],
484
564
  exports: [LegacyProductComponent],
485
565
  }]
486
566
  }] });
@@ -498,7 +578,7 @@ class ProductComponent {
498
578
  }
499
579
  ngOnInit() {
500
580
  this.quoteService.quote$
501
- .pipe(first$1(), takeUntil$1(this.destroy$))
581
+ .pipe(first$1(), takeUntil(this.destroy$))
502
582
  .subscribe(quote => this.init(quote, this.route.snapshot.queryParams));
503
583
  }
504
584
  ngOnDestroy() {
@@ -539,7 +619,7 @@ class ProductComponent {
539
619
  }
540
620
  this.state$.next({ loading: false, failure: true });
541
621
  return of();
542
- }), takeUntil$1(this.destroy$))
622
+ }), takeUntil(this.destroy$))
543
623
  .subscribe();
544
624
  }
545
625
  getLineItemId(quote, queryParams) {
@@ -552,8 +632,8 @@ class ProductComponent {
552
632
  .find(id => id);
553
633
  }
554
634
  }
555
- ProductComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ProductComponent, deps: [{ token: i1$3.ConfigurationRuntimeService }, { token: i1$3.ConfigurationService }, { token: i2.QuoteService }, { token: i1.ActivatedRoute }, { token: i4$1.MessageService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
556
- ProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: ProductComponent, selector: "vl-flow-product", 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: [""], components: [{ type: i2$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i1$3.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
635
+ ProductComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ProductComponent, deps: [{ token: i1$3.ConfigurationRuntimeService }, { token: i1$3.ConfigurationService }, { token: i2.QuoteService }, { token: i1$1.ActivatedRoute }, { token: i4$1.MessageService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
636
+ ProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: ProductComponent, selector: "vl-flow-product", 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: [""], components: [{ type: i2$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i1$3.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
557
637
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ProductComponent, decorators: [{
558
638
  type: Component,
559
639
  args: [{
@@ -562,7 +642,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
562
642
  styleUrls: ['./product.component.scss'],
563
643
  changeDetection: ChangeDetectionStrategy.OnPush,
564
644
  }]
565
- }], ctorParameters: function () { return [{ type: i1$3.ConfigurationRuntimeService }, { type: i1$3.ConfigurationService }, { type: i2.QuoteService }, { type: i1.ActivatedRoute }, { type: i4$1.MessageService }, { type: undefined, decorators: [{
645
+ }], ctorParameters: function () { return [{ type: i1$3.ConfigurationRuntimeService }, { type: i1$3.ConfigurationService }, { type: i2.QuoteService }, { type: i1$1.ActivatedRoute }, { type: i4$1.MessageService }, { type: undefined, decorators: [{
566
646
  type: Optional
567
647
  }, {
568
648
  type: Inject,
@@ -596,8 +676,8 @@ class RecordNotFoundComponent {
596
676
  }
597
677
  }
598
678
  }
599
- RecordNotFoundComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RecordNotFoundComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
600
- RecordNotFoundComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: RecordNotFoundComponent, selector: "vl-flow-record-not-found", ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"message-wrapper\">\n <div class=\"msg\">\n <div *ngIf=\"message; else defaultMessage\" class=\"message-title\">\n <p>{{ message }}</p>\n\n <p *ngIf=\"subMessage\" class=\"message-title\">{{ subMessage }}</p>\n </div>\n\n <ng-template #defaultMessage>Record not found</ng-template>\n </div>\n </div>\n </div>\n</div>\n", directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
679
+ RecordNotFoundComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RecordNotFoundComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
680
+ RecordNotFoundComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: RecordNotFoundComponent, selector: "vl-flow-record-not-found", ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"message-wrapper\">\n <div class=\"msg\">\n <div *ngIf=\"message; else defaultMessage\" class=\"message-title\">\n <p>{{ message }}</p>\n\n <p *ngIf=\"subMessage\" class=\"message-title\">{{ subMessage }}</p>\n </div>\n\n <ng-template #defaultMessage>Record not found</ng-template>\n </div>\n </div>\n </div>\n</div>\n", directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
601
681
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RecordNotFoundComponent, decorators: [{
602
682
  type: Component,
603
683
  args: [{
@@ -605,13 +685,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
605
685
  templateUrl: './record-not-found.component.html',
606
686
  changeDetection: ChangeDetectionStrategy.OnPush,
607
687
  }]
608
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; } });
688
+ }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i1$1.ActivatedRoute }]; } });
609
689
 
610
690
  const routes = [{ path: '', component: RecordNotFoundComponent }];
611
691
  class RecordNotFoundModule {
612
692
  }
613
693
  RecordNotFoundModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RecordNotFoundModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
614
- RecordNotFoundModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RecordNotFoundModule, declarations: [RecordNotFoundComponent], imports: [CommonModule, i1.RouterModule] });
694
+ RecordNotFoundModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RecordNotFoundModule, declarations: [RecordNotFoundComponent], imports: [CommonModule, i1$1.RouterModule] });
615
695
  RecordNotFoundModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RecordNotFoundModule, imports: [[CommonModule, RouterModule.forChild(routes)]] });
616
696
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RecordNotFoundModule, decorators: [{
617
697
  type: NgModule,
@@ -644,7 +724,7 @@ class ShoppingCartComponent {
644
724
  this.toastService.add({ severity: ToastType.error, summary: 'Failed to resolve Shopping Cart component' });
645
725
  this.state$.next({ loading: false, failure: true });
646
726
  throw err;
647
- }), takeUntil$1(this.destroyed$))
727
+ }), takeUntil(this.destroyed$))
648
728
  .subscribe(() => this.cdr.detectChanges());
649
729
  }
650
730
  ngOnDestroy() {
@@ -692,8 +772,8 @@ class ShoppingCartComponent {
692
772
  }));
693
773
  }
694
774
  }
695
- ShoppingCartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ShoppingCartComponent, deps: [{ token: i1$1.UITemplatesApiService }, { token: i0.ChangeDetectorRef }, { token: i2$1.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
696
- ShoppingCartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: ShoppingCartComponent, selector: "vl-flow-shopping-cart", 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: [""], components: [{ type: i2$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i1$3.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
775
+ ShoppingCartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ShoppingCartComponent, deps: [{ token: i1.UITemplatesApiService }, { token: i0.ChangeDetectorRef }, { token: i2$1.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
776
+ ShoppingCartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: ShoppingCartComponent, selector: "vl-flow-shopping-cart", 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: [""], components: [{ type: i2$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i1$3.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
697
777
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ShoppingCartComponent, decorators: [{
698
778
  type: Component,
699
779
  args: [{
@@ -702,7 +782,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
702
782
  styleUrls: ['./shopping-cart.component.scss'],
703
783
  changeDetection: ChangeDetectionStrategy.OnPush,
704
784
  }]
705
- }], ctorParameters: function () { return [{ type: i1$1.UITemplatesApiService }, { type: i0.ChangeDetectorRef }, { type: i2$1.ToastService }, { type: undefined, decorators: [{
785
+ }], ctorParameters: function () { return [{ type: i1.UITemplatesApiService }, { type: i0.ChangeDetectorRef }, { type: i2$1.ToastService }, { type: undefined, decorators: [{
706
786
  type: Optional
707
787
  }, {
708
788
  type: Inject,
@@ -751,11 +831,11 @@ class ContextResolver {
751
831
  }));
752
832
  }
753
833
  }
754
- ContextResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ContextResolver, deps: [{ token: i2.ContextService }, { token: i1.Router }, { token: RouterService }], target: i0.ɵɵFactoryTarget.Injectable });
834
+ ContextResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ContextResolver, deps: [{ token: i2.ContextService }, { token: i1$1.Router }, { token: RouterService }], target: i0.ɵɵFactoryTarget.Injectable });
755
835
  ContextResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ContextResolver });
756
836
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ContextResolver, decorators: [{
757
837
  type: Injectable
758
- }], ctorParameters: function () { return [{ type: i2.ContextService }, { type: i1.Router }, { type: RouterService }]; } });
838
+ }], ctorParameters: function () { return [{ type: i2.ContextService }, { type: i1$1.Router }, { type: RouterService }]; } });
759
839
 
760
840
  class FlowResolver {
761
841
  constructor(router, flowService, routerService) {
@@ -802,22 +882,36 @@ class FlowResolver {
802
882
  }));
803
883
  }
804
884
  }
805
- FlowResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowResolver, deps: [{ token: i1.Router }, { token: FlowService }, { token: RouterService }], target: i0.ɵɵFactoryTarget.Injectable });
885
+ FlowResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowResolver, deps: [{ token: i1$1.Router }, { token: FlowService }, { token: RouterService }], target: i0.ɵɵFactoryTarget.Injectable });
806
886
  FlowResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowResolver });
807
887
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowResolver, decorators: [{
808
888
  type: Injectable
809
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: FlowService }, { type: RouterService }]; } });
889
+ }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: FlowService }, { type: RouterService }]; } });
810
890
 
811
891
  class QuoteResolver {
812
- constructor(router, quoteService, routerService) {
892
+ constructor(router, quoteService, routerService, contextService, flowConfiguration) {
813
893
  this.router = router;
814
894
  this.quoteService = quoteService;
815
895
  this.routerService = routerService;
896
+ this.contextService = contextService;
897
+ this.flowConfiguration = flowConfiguration;
816
898
  }
817
899
  handleError(route, message) {
818
900
  const parentUrl = this.routerService.getFlowRootPath(route);
819
901
  return from(this.router.navigate([parentUrl, '404'], { state: { message } }));
820
902
  }
903
+ initFlow$() {
904
+ if (this.contextService.isStandalone) {
905
+ return of(undefined);
906
+ }
907
+ const quoteDraft = this.quoteService.getQuote();
908
+ if (quoteDraft) {
909
+ return this.flowConfiguration.calculate$(quoteDraft.currentState);
910
+ }
911
+ else {
912
+ return of(undefined);
913
+ }
914
+ }
821
915
  resolve(route) {
822
916
  const { headerId } = route.data;
823
917
  const quote = this.quoteService.getQuote();
@@ -825,17 +919,17 @@ class QuoteResolver {
825
919
  return of(true);
826
920
  }
827
921
  const { queryParams } = route;
828
- return this.quoteService.init(headerId, queryParams).pipe(catchError(e => {
922
+ return this.quoteService.init(headerId, queryParams).pipe(switchMap$1(() => this.initFlow$()), catchError(e => {
829
923
  const message = e instanceof HttpErrorResponse ? e.error.message : e;
830
924
  return this.handleError(route, message);
831
925
  }));
832
926
  }
833
927
  }
834
- QuoteResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: QuoteResolver, deps: [{ token: i1.Router }, { token: i2.QuoteService }, { token: RouterService }], target: i0.ɵɵFactoryTarget.Injectable });
928
+ QuoteResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: QuoteResolver, deps: [{ token: i1$1.Router }, { token: i2.QuoteService }, { token: RouterService }, { token: i2.ContextService }, { token: i1$3.FlowConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable });
835
929
  QuoteResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: QuoteResolver });
836
930
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: QuoteResolver, decorators: [{
837
931
  type: Injectable
838
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.QuoteService }, { type: RouterService }]; } });
932
+ }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i2.QuoteService }, { type: RouterService }, { type: i2.ContextService }, { type: i1$3.FlowConfigurationService }]; } });
839
933
 
840
934
  const rootRoute = {
841
935
  id: VELOCE_FLOW_ROOT_ROUTE,
@@ -892,7 +986,7 @@ const rootRoute = {
892
986
  class FlowRoutingModule {
893
987
  }
894
988
  FlowRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
895
- FlowRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowRoutingModule, imports: [i1.RouterModule, ProductModule, LegacyProductModule, ShoppingCartModule], exports: [RouterModule] });
989
+ FlowRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowRoutingModule, imports: [i1$1.RouterModule, ProductModule, LegacyProductModule, ShoppingCartModule], exports: [RouterModule] });
896
990
  FlowRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowRoutingModule, providers: [RouterService, RootGuard, ContextGuard, ContextResolver, FlowResolver, QuoteResolver], imports: [[RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule], RouterModule] });
897
991
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowRoutingModule, decorators: [{
898
992
  type: NgModule,
@@ -921,5 +1015,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
921
1015
  * Generated bundle index. Do not edit.
922
1016
  */
923
1017
 
924
- export { ContextGuard, FLOW_CUSTOMIZATION, FlowModule, FlowService, VELOCE_FLOW_ROOT_ROUTE };
1018
+ export { ContextGuard, FLOW_CUSTOMIZATION, FlowModule, FlowService, VELOCE_FLOW_ROOT_ROUTE, getFlowObjectIdPropertyName };
925
1019
  //# sourceMappingURL=veloce-sdk.js.map