@veloceapps/sdk 3.1.24 → 3.1.26

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 (38) hide show
  1. package/bundles/veloce-sdk-cms.umd.js +13 -1
  2. package/bundles/veloce-sdk-cms.umd.js.map +1 -1
  3. package/bundles/veloce-sdk-core.umd.js +6 -11
  4. package/bundles/veloce-sdk-core.umd.js.map +1 -1
  5. package/bundles/veloce-sdk.umd.js +356 -148
  6. package/bundles/veloce-sdk.umd.js.map +1 -1
  7. package/cms/cms.actions.d.ts +5 -1
  8. package/cms/vendor-map.d.ts +2 -0
  9. package/core/services/quote-draft.service.d.ts +4 -5
  10. package/esm2015/cms/cms.actions.js +9 -1
  11. package/esm2015/core/services/quote-draft.service.js +7 -12
  12. package/esm2015/src/components/doc-gen/doc-gen.component.js +109 -0
  13. package/esm2015/src/components/doc-gen/doc-gen.module.js +19 -0
  14. package/esm2015/src/components/header/cart-overlay/cart-preview.component.js +3 -4
  15. package/esm2015/src/components/header/header.component.js +59 -27
  16. package/esm2015/src/components/header/header.types.js +1 -1
  17. package/esm2015/src/flow.component.js +13 -9
  18. package/esm2015/src/flow.module.js +9 -4
  19. package/esm2015/src/resolvers/quote.resolver.js +3 -3
  20. package/esm2015/src/services/doc-gen.service.js +33 -0
  21. package/esm2015/src/services/flow-dialog.service.js +23 -1
  22. package/esm2015/src/services/flow.service.js +6 -6
  23. package/fesm2015/veloce-sdk-cms.js +12 -2
  24. package/fesm2015/veloce-sdk-cms.js.map +1 -1
  25. package/fesm2015/veloce-sdk-core.js +6 -11
  26. package/fesm2015/veloce-sdk-core.js.map +1 -1
  27. package/fesm2015/veloce-sdk.js +285 -90
  28. package/fesm2015/veloce-sdk.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/components/doc-gen/doc-gen.component.d.ts +26 -0
  31. package/src/components/doc-gen/doc-gen.module.d.ts +9 -0
  32. package/src/components/header/cart-overlay/cart-preview.component.d.ts +1 -1
  33. package/src/components/header/header.component.d.ts +8 -1
  34. package/src/components/header/header.types.d.ts +2 -2
  35. package/src/flow.component.d.ts +3 -1
  36. package/src/flow.module.d.ts +2 -1
  37. package/src/services/doc-gen.service.d.ts +13 -0
  38. package/src/services/flow-dialog.service.d.ts +3 -0
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@veloce/api'), require('@veloce/components'), require('@veloce/sdk/cms'), require('@veloce/sdk/core'), require('primeng/button'), require('primeng/dynamicdialog'), require('primeng/overlaypanel'), require('primeng/tooltip'), require('@angular/forms'), require('primeng/inputnumber'), require('rxjs'), require('@angular/router'), require('primeng/api'), require('@veloce/core'), require('@angular/common/http'), require('primeng/dropdown'), require('primeng/inputtext'), require('primeng/radiobutton'), require('rxjs/operators'), require('@veloce/sdk/runtime'), require('ngx-bootstrap/tooltip')) :
3
- typeof define === 'function' && define.amd ? define('@veloce/sdk', ['exports', '@angular/common', '@angular/core', '@veloce/api', '@veloce/components', '@veloce/sdk/cms', '@veloce/sdk/core', 'primeng/button', 'primeng/dynamicdialog', 'primeng/overlaypanel', 'primeng/tooltip', '@angular/forms', 'primeng/inputnumber', 'rxjs', '@angular/router', 'primeng/api', '@veloce/core', '@angular/common/http', 'primeng/dropdown', 'primeng/inputtext', 'primeng/radiobutton', 'rxjs/operators', '@veloce/sdk/runtime', 'ngx-bootstrap/tooltip'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.veloce = global.veloce || {}, global.veloce.sdk = {}), global.ng.common, global.ng.core, global["@veloce/api"], global["@veloce/components"], global.veloce.sdk.cms, global.veloce.sdk.core, global["primeng/button"], global["primeng/dynamicdialog"], global["primeng/overlaypanel"], global["primeng/tooltip"], global.ng.forms, global["primeng/inputnumber"], global.rxjs, global.ng.router, global["primeng/api"], global["@veloce/core"], global.ng.common.http, global["primeng/dropdown"], global["primeng/inputtext"], global["primeng/radiobutton"], global.rxjs.operators, global.veloce.sdk.runtime, global["ngx-bootstrap/tooltip"]));
5
- })(this, (function (exports, i9, i0, i1$2, i3$1, i4, i2$1, i2, i1, i3, i10, i7, i5, rxjs, i1$1, i2$2, core, http, i4$1, i8, i6, operators, i4$2, i1$3) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@veloce/api'), require('@veloce/components'), require('@veloce/sdk/cms'), require('@veloce/sdk/core'), require('primeng/button'), require('primeng/dynamicdialog'), require('@veloce/core'), require('rxjs'), require('primeng/overlaypanel'), require('primeng/tooltip'), require('@angular/forms'), require('primeng/inputnumber'), require('@angular/router'), require('primeng/api'), require('@angular/common/http'), require('primeng/dropdown'), require('primeng/inputtext'), require('primeng/radiobutton'), require('rxjs/operators'), require('@veloce/sdk/runtime'), require('ngx-bootstrap/tooltip')) :
3
+ typeof define === 'function' && define.amd ? define('@veloce/sdk', ['exports', '@angular/common', '@angular/core', '@veloce/api', '@veloce/components', '@veloce/sdk/cms', '@veloce/sdk/core', 'primeng/button', 'primeng/dynamicdialog', '@veloce/core', 'rxjs', 'primeng/overlaypanel', 'primeng/tooltip', '@angular/forms', 'primeng/inputnumber', '@angular/router', 'primeng/api', '@angular/common/http', 'primeng/dropdown', 'primeng/inputtext', 'primeng/radiobutton', 'rxjs/operators', '@veloce/sdk/runtime', 'ngx-bootstrap/tooltip'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.veloce = global.veloce || {}, global.veloce.sdk = {}), global.ng.common, global.ng.core, global["@veloce/api"], global["@veloce/components"], global.veloce.sdk.cms, global.veloce.sdk.core, global["primeng/button"], global["primeng/dynamicdialog"], global["@veloce/core"], global.rxjs, global["primeng/overlaypanel"], global["primeng/tooltip"], global.ng.forms, global["primeng/inputnumber"], global.ng.router, global["primeng/api"], global.ng.common.http, global["primeng/dropdown"], global["primeng/inputtext"], global["primeng/radiobutton"], global.rxjs.operators, global.veloce.sdk.runtime, global["ngx-bootstrap/tooltip"]));
5
+ })(this, (function (exports, i8, i0, i2$2, i3, i1$1, i2$1, i2, i1, core, rxjs, i3$1, i11, i7, i5, i1$2, i2$3, http, i4, i8$1, i6, operators, i4$1, i1$3) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -22,24 +22,24 @@
22
22
  return Object.freeze(n);
23
23
  }
24
24
 
25
- var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
25
+ var i8__namespace = /*#__PURE__*/_interopNamespace(i8);
26
26
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
27
- var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
28
- var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
29
- var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
27
+ var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$2);
28
+ var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
29
+ var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
30
30
  var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
31
31
  var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
32
32
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
33
- var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
34
- var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
33
+ var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
34
+ var i11__namespace = /*#__PURE__*/_interopNamespace(i11);
35
35
  var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
36
36
  var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
37
- var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
38
- var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$2);
39
- var i4__namespace$1 = /*#__PURE__*/_interopNamespace(i4$1);
40
- var i8__namespace = /*#__PURE__*/_interopNamespace(i8);
37
+ var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
38
+ var i2__namespace$3 = /*#__PURE__*/_interopNamespace(i2$3);
39
+ var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
40
+ var i8__namespace$1 = /*#__PURE__*/_interopNamespace(i8$1);
41
41
  var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
42
- var i4__namespace$2 = /*#__PURE__*/_interopNamespace(i4$2);
42
+ var i4__namespace$1 = /*#__PURE__*/_interopNamespace(i4$1);
43
43
  var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$3);
44
44
 
45
45
  var VELOCE_FLOW_ROOT_ROUTE = 'VELOCE_FLOW_ROOT_ROUTE';
@@ -59,7 +59,7 @@
59
59
  return FlowDialogComponent;
60
60
  }());
61
61
  FlowDialogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogComponent, deps: [{ token: i1__namespace.DynamicDialogConfig }, { token: i1__namespace.DynamicDialogRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
62
- FlowDialogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowDialogComponent, selector: "vl-flow-dialog", ngImport: i0__namespace, template: "<div *ngIf=\"config.description\" class=\"description\">\n {{ config.description }}\n</div>\n\n<div class=\"form-actions\">\n <p-button\n *ngIf=\"config.secondaryButton\"\n styleClass=\"p-button-outlined button-text-bold\"\n [label]=\"config.secondaryButton!\"\n (onClick)=\"cancelHandler()\"\n ></p-button>\n <p-button\n styleClass=\"p-button p-button-filled\"\n [label]=\"config.primaryButton\"\n (onClick)=\"confirmHandler()\"\n ></p-button>\n</div>\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .description{flex:1;padding:0 24px 24px;font-weight:400;font-size:12px;line-height:16px;color:var(--vl-text-color-deep-accent)}:host .form-actions{border-top:1px solid var(--vl-border-color);padding:1.5rem 2.2rem;display:flex;justify-content:flex-end;width:100%;grid-gap:10px;gap:10px}\n"], components: [{ type: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
62
+ FlowDialogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowDialogComponent, selector: "vl-flow-dialog", ngImport: i0__namespace, template: "<div *ngIf=\"config.description\" class=\"description\">\n {{ config.description }}\n</div>\n\n<div class=\"form-actions\">\n <p-button\n *ngIf=\"config.secondaryButton\"\n styleClass=\"p-button-outlined button-text-bold\"\n [label]=\"config.secondaryButton!\"\n (onClick)=\"cancelHandler()\"\n ></p-button>\n <p-button\n styleClass=\"p-button p-button-filled\"\n [label]=\"config.primaryButton\"\n (onClick)=\"confirmHandler()\"\n ></p-button>\n</div>\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .description{flex:1;padding:0 24px 24px;font-weight:400;font-size:12px;line-height:16px;color:var(--vl-text-color-deep-accent)}:host .form-actions{border-top:1px solid var(--vl-border-color);padding:1.5rem 2.2rem;display:flex;justify-content:flex-end;width:100%;grid-gap:10px;gap:10px}\n"], components: [{ type: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i8__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
63
63
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogComponent, decorators: [{
64
64
  type: i0.Component,
65
65
  args: [{
@@ -76,17 +76,166 @@
76
76
  return FlowDialogModule;
77
77
  }());
78
78
  FlowDialogModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
79
- FlowDialogModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, declarations: [FlowDialogComponent], imports: [i9.CommonModule, i2.ButtonModule], exports: [FlowDialogComponent] });
80
- FlowDialogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, imports: [[i9.CommonModule, i2.ButtonModule]] });
79
+ FlowDialogModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, declarations: [FlowDialogComponent], imports: [i8.CommonModule, i2.ButtonModule], exports: [FlowDialogComponent] });
80
+ FlowDialogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, imports: [[i8.CommonModule, i2.ButtonModule]] });
81
81
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, decorators: [{
82
82
  type: i0.NgModule,
83
83
  args: [{
84
84
  declarations: [FlowDialogComponent],
85
- imports: [i9.CommonModule, i2.ButtonModule],
85
+ imports: [i8.CommonModule, i2.ButtonModule],
86
86
  exports: [FlowDialogComponent],
87
87
  }]
88
88
  }] });
89
89
 
90
+ var FlowDocGenService = /** @class */ (function () {
91
+ function FlowDocGenService(integrationState) {
92
+ this.integrationState = integrationState;
93
+ this.cleanup$ = new rxjs.Subject();
94
+ this.isVisibleSubj$ = new rxjs.BehaviorSubject(false);
95
+ this.isVisible$ = this.isVisibleSubj$.asObservable();
96
+ this.initSubscriptions();
97
+ }
98
+ FlowDocGenService.prototype.cleanup = function () {
99
+ this.cleanup$.next();
100
+ };
101
+ FlowDocGenService.prototype.initSubscriptions = function () {
102
+ var _this = this;
103
+ this.integrationState
104
+ .listen$(i1$1.FlowAction.FLOW_OPEN_DOC_GEN)
105
+ .pipe(rxjs.tap(function () { return _this.isVisibleSubj$.next(true); }), rxjs.takeUntil(this.cleanup$))
106
+ .subscribe();
107
+ this.integrationState
108
+ .listen$(i1$1.FlowAction.FLOW_CLOSE_DOC_GEN)
109
+ .pipe(rxjs.tap(function () { return _this.isVisibleSubj$.next(false); }), rxjs.takeUntil(this.cleanup$))
110
+ .subscribe();
111
+ };
112
+ return FlowDocGenService;
113
+ }());
114
+ FlowDocGenService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDocGenService, deps: [{ token: i1__namespace$1.IntegrationState }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
115
+ FlowDocGenService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDocGenService });
116
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDocGenService, decorators: [{
117
+ type: i0.Injectable
118
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.IntegrationState }]; } });
119
+
120
+ var DocGenComponent = /** @class */ (function () {
121
+ function DocGenComponent(quoteDraftService, contextService, templatesApi, docGenService, toastService) {
122
+ var _this = this;
123
+ this.quoteDraftService = quoteDraftService;
124
+ this.contextService = contextService;
125
+ this.templatesApi = templatesApi;
126
+ this.docGenService = docGenService;
127
+ this.toastService = toastService;
128
+ this.uiDefinition$ = new rxjs.BehaviorSubject(null);
129
+ this.templateApiName = '';
130
+ this.destroy$ = new rxjs.Subject();
131
+ this.isVisible$ = this.docGenService.isVisible$;
132
+ // initialize when quote draft requested
133
+ this.quoteDraftService.quoteDraft$
134
+ .pipe(rxjs.first(), rxjs.tap(function () { return _this.initialize(); }), rxjs.takeUntil(this.destroy$))
135
+ .subscribe();
136
+ }
137
+ DocGenComponent.prototype.ngOnDestroy = function () {
138
+ this.destroy$.next();
139
+ this.destroy$.complete();
140
+ };
141
+ DocGenComponent.prototype.initialize = function () {
142
+ var _this = this;
143
+ var _a;
144
+ this.templateApiName = (_a = this.contextService.resolve().properties.docGenTemplateApiName) !== null && _a !== void 0 ? _a : '';
145
+ this.generateUIDefinition$()
146
+ .pipe(rxjs.tap(function (uiDef) {
147
+ if (!uiDef) {
148
+ throw new Error("Component with name '" + _this.templateApiName + "' not found.");
149
+ }
150
+ _this.uiDefinition$.next(uiDef);
151
+ }), rxjs.catchError(function (err) {
152
+ var _a;
153
+ var message = 'Failed to resolve DocGen component. ' + ((_a = err.message) !== null && _a !== void 0 ? _a : '');
154
+ _this.toastService.add({ severity: i3.ToastType.error, summary: message, sticky: true });
155
+ return rxjs.of();
156
+ }), rxjs.takeUntil(this.destroy$))
157
+ .subscribe();
158
+ };
159
+ DocGenComponent.prototype.getTemplateRootComponent$ = function (template) {
160
+ return this.templatesApi
161
+ .fetchComponents$(template.id)
162
+ .pipe(rxjs.map(function (components) { var _a; return (_a = components.find(function (c) { return c.type === core.UITemplateComponentType.ROOT; })) !== null && _a !== void 0 ? _a : undefined; }));
163
+ };
164
+ DocGenComponent.prototype.getDocGenComponentMeta$ = function () {
165
+ var _this = this;
166
+ return this.templatesApi.fetchTemplates$().pipe(rxjs.map(function (templates) {
167
+ var template = templates.find(function (template) { return template.type === core.UITemplateType.DOCGEN && template.name === _this.templateApiName; });
168
+ return template !== null && template !== void 0 ? template : templates[0];
169
+ }), rxjs.switchMap(function (template) { return (template ? _this.getTemplateRootComponent$(template) : rxjs.of(undefined)); }), rxjs.switchMap(function (component) { return component ? _this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : rxjs.of(undefined); }));
170
+ };
171
+ DocGenComponent.prototype.generateUIDefinition$ = function () {
172
+ var _this = this;
173
+ return rxjs.of(undefined).pipe(rxjs.tap(function () {
174
+ if (!_this.templateApiName) {
175
+ throw new Error("Flow Query parameter 'docGenTemplateApiName' is missing.");
176
+ }
177
+ }), rxjs.switchMap(function (meta) { return (meta ? rxjs.of(meta) : _this.getDocGenComponentMeta$()); }), rxjs.map(function (meta) {
178
+ var _a;
179
+ if (!meta) {
180
+ return;
181
+ }
182
+ var headerId = (_a = _this.contextService.resolve().properties.Id) !== null && _a !== void 0 ? _a : null;
183
+ var script = meta.js;
184
+ if (script) {
185
+ var metadata = i1$1.extractElementMetadata(script);
186
+ script = i1$1.extendElementMetadata(script, {
187
+ inputs: Object.assign(Object.assign({}, metadata.inputs), { Id: headerId ? "\"" + headerId + "\"" : null }),
188
+ });
189
+ }
190
+ var uiDef = {
191
+ name: '',
192
+ createdTimestamp: 0,
193
+ primary: true,
194
+ type: 'DEFAULT',
195
+ version: 2,
196
+ children: [
197
+ {
198
+ children: [],
199
+ template: meta.html && btoa(meta.html),
200
+ script: script && btoa(script),
201
+ styles: meta.css && btoa(meta.css),
202
+ },
203
+ ],
204
+ };
205
+ return uiDef;
206
+ }));
207
+ };
208
+ return DocGenComponent;
209
+ }());
210
+ DocGenComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenComponent, deps: [{ token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$1.ContextService }, { token: i2__namespace$2.UITemplatesApiService }, { token: FlowDocGenService }, { token: i3__namespace.ToastService }], target: i0__namespace.ɵɵFactoryTarget.Component });
211
+ DocGenComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: DocGenComponent, selector: "vl-flow-doc-gen", ngImport: i0__namespace, template: "<ng-container *ngIf=\"isVisible$ | async\">\n <ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n</ng-container>\n", styles: [":host,vl-cms-preview{display:contents}\n"], components: [{ type: i1__namespace$1.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i8__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i8__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
212
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenComponent, decorators: [{
213
+ type: i0.Component,
214
+ args: [{
215
+ selector: 'vl-flow-doc-gen',
216
+ templateUrl: './doc-gen.component.html',
217
+ styleUrls: ['./doc-gen.component.scss'],
218
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
219
+ }]
220
+ }], ctorParameters: function () { return [{ type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$1.ContextService }, { type: i2__namespace$2.UITemplatesApiService }, { type: FlowDocGenService }, { type: i3__namespace.ToastService }]; } });
221
+
222
+ var DocGenModule = /** @class */ (function () {
223
+ function DocGenModule() {
224
+ }
225
+ return DocGenModule;
226
+ }());
227
+ DocGenModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
228
+ DocGenModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenModule, declarations: [DocGenComponent], imports: [i8.CommonModule, i1$1.PreviewModule], exports: [DocGenComponent] });
229
+ DocGenModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenModule, imports: [[i8.CommonModule, i1$1.PreviewModule]] });
230
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenModule, decorators: [{
231
+ type: i0.NgModule,
232
+ args: [{
233
+ declarations: [DocGenComponent],
234
+ imports: [i8.CommonModule, i1$1.PreviewModule],
235
+ exports: [DocGenComponent],
236
+ }]
237
+ }] });
238
+
90
239
  /*! *****************************************************************************
91
240
  Copyright (c) Microsoft Corporation.
92
241
 
@@ -440,14 +589,14 @@
440
589
  return url.replace(flowRootUrl, '');
441
590
  }));
442
591
  };
443
- this.routeChange$ = this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$1.NavigationEnd; }), rxjs.shareReplay());
592
+ this.routeChange$ = this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$2.NavigationEnd; }), rxjs.shareReplay());
444
593
  this.lastChildParams$ = this.watchLastChildParams$(this.route).pipe(rxjs.startWith(this.getLastChildParams(this.route.snapshot)), rxjs.shareReplay());
445
594
  this.lastChildRoute$ = this.watchLastChildRoute$(this.route).pipe(rxjs.startWith(this.getLastChildRouteSnapshot(this.route.snapshot)), rxjs.shareReplay());
446
- this.loading$ = this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$1.NavigationStart ||
447
- e instanceof i1$1.NavigationCancel ||
448
- e instanceof i1$1.NavigationEnd ||
449
- e instanceof i1$1.NavigationError; }), rxjs.map(function (e) { return e instanceof i1$1.NavigationStart; }), rxjs.startWith(false), rxjs.distinctUntilChanged());
450
- this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$1.NavigationEnd; })).subscribe(function () {
595
+ this.loading$ = this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$2.NavigationStart ||
596
+ e instanceof i1$2.NavigationCancel ||
597
+ e instanceof i1$2.NavigationEnd ||
598
+ e instanceof i1$2.NavigationError; }), rxjs.map(function (e) { return e instanceof i1$2.NavigationStart; }), rxjs.startWith(false), rxjs.distinctUntilChanged());
599
+ this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$2.NavigationEnd; })).subscribe(function () {
451
600
  _this.urlHistory.push(_this.router.url);
452
601
  });
453
602
  }
@@ -525,12 +674,12 @@
525
674
  };
526
675
  return FlowRouterService;
527
676
  }());
528
- FlowRouterService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, deps: [{ token: i1__namespace$1.Router }, { token: i1__namespace$1.ActivatedRoute }, { token: i2__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
677
+ FlowRouterService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, deps: [{ token: i1__namespace$2.Router }, { token: i1__namespace$2.ActivatedRoute }, { token: i2__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
529
678
  FlowRouterService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, providedIn: 'root' });
530
679
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, decorators: [{
531
680
  type: i0.Injectable,
532
681
  args: [{ providedIn: 'root' }]
533
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i1__namespace$1.ActivatedRoute }, { type: i2__namespace$1.ContextService }]; } });
682
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i1__namespace$2.ActivatedRoute }, { type: i2__namespace$1.ContextService }]; } });
534
683
 
535
684
  var CartPreviewComponent = /** @class */ (function () {
536
685
  function CartPreviewComponent(flowConfiguration, routerService, productImagesService, quoteDraftService) {
@@ -541,7 +690,6 @@
541
690
  this.form = new i7.FormGroup({});
542
691
  this.shouldUpdate$ = new rxjs.BehaviorSubject(true);
543
692
  this.destroyed$ = new rxjs.Subject();
544
- this.isEditMode = true;
545
693
  this.readonlyProductId$ = rxjs.combineLatest([
546
694
  this.routerService.route$,
547
695
  this.routerService.isConfigurationRoute$(),
@@ -552,7 +700,7 @@
552
700
  }
553
701
  return route.queryParams.productId;
554
702
  }));
555
- this.isEditMode = this.quoteDraftService.isEditMode();
703
+ this.isEditMode$ = this.quoteDraftService.isEditMode$();
556
704
  }
557
705
  CartPreviewComponent.prototype.ngOnChanges = function (changes) {
558
706
  if (changes.products) {
@@ -628,7 +776,7 @@
628
776
  return CartPreviewComponent;
629
777
  }());
630
778
  CartPreviewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewComponent, deps: [{ token: i2__namespace$1.FlowConfigurationService }, { token: FlowRouterService }, { token: i2__namespace$1.ProductImagesService }, { token: i2__namespace$1.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
631
- CartPreviewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CartPreviewComponent, selector: "vl-cart-preview", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: i3.OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"readonlyProductId$ | async as readonlyProductId\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n <span class=\"text-right\">MRR</span>\n <span class=\"text-right\">NRR</span>\n </div>\n\n <div class=\"scrollable-wrapper\">\n <div class=\"product\" *ngFor=\"let product of products\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break\">{{ product.name }}</div>\n <div>\n <p-button\n label=\"Configure\"\n [disabled]=\"!isEditMode || !product.configurable || readonlyProductId === product.productId\"\n styleClass=\"p-button-link p-button-sm pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"!isEditMode || readonlyProductId === product.productId\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <span>\n <p-inputNumber\n *ngIf=\"form.controls[product.id] as control\"\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n [disabled]=\"!isEditMode\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <span class=\"text-right pt-3\">$0.00</span>\n <span class=\"text-right pt-3\">$0.00</span>\n </div>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n </div>\n\n <div class=\"flex justify-content-end mt-3\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"!isEditMode || readonlyProductId\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n", styles: [".flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 16px}.empty-state{color:var(--vl-text-color-deep-accent)}.scrollable-wrapper{overflow:auto}.product{display:grid;grid-template-columns:auto 60px 80px 80px;padding:16px 0}.product:not(.header){border-bottom:1px solid var(--vl-border-color)}.product.header{color:var(--vl-text-color-deep-accent)}.product__info{display:flex;grid-gap:16px;gap:16px}.product__image-wrapper{flex-shrink:0;height:64px;width:64px;display:flex;justify-content:center;align-items:center;background:var(--vl-primary-nav-overlay-bg);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .qty-control ::ng-deep .p-inputnumber-input{align-self:flex-start;text-align:right;width:100%}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}\n"], components: [{ type: i3__namespace.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i5__namespace.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2__namespace$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i3__namespace$1.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i7__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i7__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
779
+ CartPreviewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CartPreviewComponent, selector: "vl-cart-preview", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: i3$1.OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"readonlyProductId$ | async as readonlyProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n <span class=\"text-right\">MRR</span>\n <span class=\"text-right\">NRR</span>\n </div>\n\n <div class=\"scrollable-wrapper\">\n <div class=\"product\" *ngFor=\"let product of products\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break\">{{ product.name }}</div>\n <div>\n <p-button\n label=\"Configure\"\n [disabled]=\"!isEditMode || !product.configurable || readonlyProductId === product.productId\"\n styleClass=\"p-button-link p-button-sm pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"!isEditMode || readonlyProductId === product.productId\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <span>\n <p-inputNumber\n *ngIf=\"form.controls[product.id] as control\"\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n [disabled]=\"!isEditMode\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <span class=\"text-right pt-3\">${{ product.mrr }}</span>\n <span class=\"text-right pt-3\">${{ product.nrr }}</span>\n </div>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n </div>\n\n <div class=\"flex justify-content-end mt-3\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"!isEditMode || readonlyProductId\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n", styles: [".flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 16px}.empty-state{color:var(--vl-text-color-deep-accent)}.scrollable-wrapper{overflow:auto}.product{display:grid;grid-template-columns:auto 60px 80px 80px;padding:16px 0}.product:not(.header){border-bottom:1px solid var(--vl-border-color)}.product.header{color:var(--vl-text-color-deep-accent)}.product__info{display:flex;grid-gap:16px;gap:16px}.product__image-wrapper{flex-shrink:0;height:64px;width:64px;display:flex;justify-content:center;align-items:center;background:var(--vl-primary-nav-overlay-bg);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .qty-control ::ng-deep .p-inputnumber-input{align-self:flex-start;text-align:right;width:100%}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}\n"], components: [{ type: i3__namespace$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i5__namespace.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2__namespace$3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i8__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i7__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i7__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i8__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
632
780
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewComponent, decorators: [{
633
781
  type: i0.Component,
634
782
  args: [{
@@ -639,7 +787,7 @@
639
787
  }]
640
788
  }], ctorParameters: function () { return [{ type: i2__namespace$1.FlowConfigurationService }, { type: FlowRouterService }, { type: i2__namespace$1.ProductImagesService }, { type: i2__namespace$1.QuoteDraftService }]; }, propDecorators: { overlayPanel: [{
641
789
  type: i0.ViewChild,
642
- args: [i3.OverlayPanel]
790
+ args: [i3$1.OverlayPanel]
643
791
  }], products: [{
644
792
  type: i0.Input
645
793
  }] } });
@@ -650,13 +798,13 @@
650
798
  return CartPreviewModule;
651
799
  }());
652
800
  CartPreviewModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
653
- CartPreviewModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, declarations: [CartPreviewComponent], imports: [i9.CommonModule, i7.ReactiveFormsModule, i2.ButtonModule, i3.OverlayPanelModule, i3$1.LetDirectiveModule, i5.InputNumberModule], exports: [CartPreviewComponent] });
654
- CartPreviewModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, imports: [[i9.CommonModule, i7.ReactiveFormsModule, i2.ButtonModule, i3.OverlayPanelModule, i3$1.LetDirectiveModule, i5.InputNumberModule]] });
801
+ CartPreviewModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, declarations: [CartPreviewComponent], imports: [i8.CommonModule, i7.ReactiveFormsModule, i2.ButtonModule, i3$1.OverlayPanelModule, i3.LetDirectiveModule, i5.InputNumberModule], exports: [CartPreviewComponent] });
802
+ CartPreviewModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, imports: [[i8.CommonModule, i7.ReactiveFormsModule, i2.ButtonModule, i3$1.OverlayPanelModule, i3.LetDirectiveModule, i5.InputNumberModule]] });
655
803
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, decorators: [{
656
804
  type: i0.NgModule,
657
805
  args: [{
658
806
  declarations: [CartPreviewComponent],
659
- imports: [i9.CommonModule, i7.ReactiveFormsModule, i2.ButtonModule, i3.OverlayPanelModule, i3$1.LetDirectiveModule, i5.InputNumberModule],
807
+ imports: [i8.CommonModule, i7.ReactiveFormsModule, i2.ButtonModule, i3$1.OverlayPanelModule, i3.LetDirectiveModule, i5.InputNumberModule],
660
808
  exports: [CartPreviewComponent],
661
809
  }]
662
810
  }] });
@@ -729,6 +877,28 @@
729
877
  primaryButton: 'OK',
730
878
  });
731
879
  };
880
+ FlowDialogService.prototype.showDocgenAccountUnsavedChangesDialog = function () {
881
+ return this.show({
882
+ title: 'Save Quote',
883
+ description: 'To generate a document, save the quote first, and then generate the document from the Shopping Cart.',
884
+ primaryButton: 'OK',
885
+ });
886
+ };
887
+ FlowDialogService.prototype.showDocgenReadonlyDialog = function () {
888
+ return this.show({
889
+ title: 'Document Generation is not Available',
890
+ description: 'It is only possible to generate documents for quotes with the “Draft” status. Please create a new quote to generate a document.',
891
+ primaryButton: 'OK',
892
+ });
893
+ };
894
+ FlowDialogService.prototype.showDocgenUnsavedChangesDialog = function () {
895
+ return this.show({
896
+ title: 'Unsaved Changes',
897
+ description: 'To generate a document, save the quote first.',
898
+ primaryButton: 'Save and proceed',
899
+ secondaryButton: 'Cancel',
900
+ });
901
+ };
732
902
  return FlowDialogService;
733
903
  }());
734
904
  FlowDialogService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService, deps: [{ token: i1__namespace.DialogService }, { token: i2__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
@@ -738,7 +908,7 @@
738
908
  }], ctorParameters: function () { return [{ type: i1__namespace.DialogService }, { type: i2__namespace$1.ContextService }]; } });
739
909
 
740
910
  var FlowHeaderComponent = /** @class */ (function () {
741
- function FlowHeaderComponent(contextService, quoteDraftService, quoteApiService, sfApiService, flowConfiguration, routerService, dialogService) {
911
+ function FlowHeaderComponent(contextService, quoteDraftService, quoteApiService, sfApiService, flowConfiguration, routerService, dialogService, integrationState) {
742
912
  var _this = this;
743
913
  this.contextService = contextService;
744
914
  this.quoteDraftService = quoteDraftService;
@@ -747,6 +917,7 @@
747
917
  this.flowConfiguration = flowConfiguration;
748
918
  this.routerService = routerService;
749
919
  this.dialogService = dialogService;
920
+ this.integrationState = integrationState;
750
921
  this.disabledActionButtonTooltip = 'Available from the Shopping Cart';
751
922
  this.objectDetails$ = new rxjs.BehaviorSubject({});
752
923
  this.isSaveInProgress$ = new rxjs.BehaviorSubject(false);
@@ -764,6 +935,8 @@
764
935
  this.isConfigurationRoute$ = this.routerService.isConfigurationRoute$();
765
936
  this.isCartRoute$ = this.routerService.isCartRoute$();
766
937
  this.isCatalogRoute$ = this.routerService.isCatalogRoute$();
938
+ this.totalMRR$ = this.contextService.resolve$().pipe(rxjs.map(function (ctx) { return ctx.properties.VDM_Total_MRR; }), rxjs.distinctUntilChanged(), rxjs.map(function (mrr) { return _this.formatMetric(mrr); }));
939
+ this.totalNRR$ = this.contextService.resolve$().pipe(rxjs.map(function (ctx) { return ctx.properties.VDM_Total_NRR; }), rxjs.distinctUntilChanged(), rxjs.map(function (nrr) { return _this.formatMetric(nrr); }));
767
940
  }
768
941
  FlowHeaderComponent.prototype.ngOnInit = function () {
769
942
  this.populateObjectDetails();
@@ -804,8 +977,30 @@
804
977
  FlowHeaderComponent.prototype.navigateToCatalog = function () {
805
978
  this.routerService.navigateToCatalog();
806
979
  };
807
- FlowHeaderComponent.prototype.saveButtonClickHandler = function () {
980
+ FlowHeaderComponent.prototype.docGenButtonClickHandler = function () {
808
981
  var _this = this;
982
+ if (this.mode === core.ConfigurationContextMode.ACCOUNT) {
983
+ if (!this.quoteDraftService.hasUnsavedChanges) {
984
+ this.dialogService.showAccountNoChangesDialog().subscribe();
985
+ }
986
+ else {
987
+ this.dialogService.showDocgenAccountUnsavedChangesDialog().subscribe();
988
+ }
989
+ return;
990
+ }
991
+ if (!this.quoteDraftService.isEditMode()) {
992
+ this.dialogService.showDocgenReadonlyDialog().subscribe();
993
+ return;
994
+ }
995
+ var observable = rxjs.of(true);
996
+ if (this.quoteDraftService.hasUnsavedChanges) {
997
+ observable = this.dialogService.showDocgenUnsavedChangesDialog().pipe(rxjs.switchMap(function (confirmed) { return (confirmed ? _this.saveQuote$(true) : rxjs.of(true)); }), rxjs.map(function () { return true; }));
998
+ }
999
+ observable
1000
+ .pipe(rxjs.first(), rxjs.tap(function () { return _this.integrationState.dispatch(i1$1.OpenDocGenAction()); }))
1001
+ .subscribe();
1002
+ };
1003
+ FlowHeaderComponent.prototype.saveButtonClickHandler = function () {
809
1004
  if (!this.quoteDraftService.isEditMode()) {
810
1005
  if (this.mode === core.ConfigurationContextMode.QUOTE) {
811
1006
  this.dialogService.showQuoteReadonlyModeDialog().subscribe();
@@ -824,19 +1019,7 @@
824
1019
  this.dialogService.showEmptyCartDialog().subscribe();
825
1020
  return;
826
1021
  }
827
- var quoteDraft = this.quoteDraftService.quoteDraft;
828
- if (!quoteDraft) {
829
- return;
830
- }
831
- this.isSaveInProgress$.next(true);
832
- this.quoteApiService
833
- .upsertQuote(quoteDraft)
834
- .pipe(rxjs.tap(function (_c) {
835
- var quoteId = _c.quoteId;
836
- _this.quoteDraftService.hasUnsavedChanges = false;
837
- _this.back(quoteId);
838
- }), rxjs.finalize(function () { return _this.isSaveInProgress$.next(false); }), rxjs.takeUntil(this.destroyed$))
839
- .subscribe();
1022
+ this.saveQuote$().subscribe();
840
1023
  };
841
1024
  FlowHeaderComponent.prototype.submitButtonClickHandler = function () {
842
1025
  var _this = this;
@@ -865,6 +1048,22 @@
865
1048
  FlowHeaderComponent.prototype.selectPriceList = function (priceListId) {
866
1049
  this.quoteDraftService.updateActivePriceList(priceListId);
867
1050
  };
1051
+ FlowHeaderComponent.prototype.saveQuote$ = function (stayOnPage) {
1052
+ var _this = this;
1053
+ if (stayOnPage === void 0) { stayOnPage = false; }
1054
+ var quoteDraft = this.quoteDraftService.quoteDraft;
1055
+ if (!quoteDraft) {
1056
+ return rxjs.of(undefined);
1057
+ }
1058
+ this.isSaveInProgress$.next(true);
1059
+ return this.quoteApiService.upsertQuote(quoteDraft).pipe(rxjs.tap(function (_c) {
1060
+ var quoteId = _c.quoteId;
1061
+ _this.quoteDraftService.hasUnsavedChanges = false;
1062
+ if (!stayOnPage) {
1063
+ _this.back(quoteId);
1064
+ }
1065
+ }), rxjs.finalize(function () { return _this.isSaveInProgress$.next(false); }), rxjs.map(rxjs.noop), rxjs.takeUntil(this.destroyed$));
1066
+ };
868
1067
  FlowHeaderComponent.prototype.queryName$ = function (objectName, id) {
869
1068
  if (!id) {
870
1069
  return rxjs.of('');
@@ -888,7 +1087,11 @@
888
1087
  this.queryName$('Account', accountId).subscribe(function (accountName) { return _this.objectDetails$.next(Object.assign(Object.assign({}, _this.objectDetails$.value), { accountName: accountName })); });
889
1088
  this.queryName$('Opportunity', opportunityId).subscribe(function (opportunityName) { return _this.objectDetails$.next(Object.assign(Object.assign({}, _this.objectDetails$.value), { opportunityName: opportunityName })); });
890
1089
  };
1090
+ FlowHeaderComponent.prototype.formatMetric = function (value) {
1091
+ return (value ? Number(value) : 0).toFixed(2);
1092
+ };
891
1093
  FlowHeaderComponent.prototype.generateProducts = function (lineItems) {
1094
+ var _this = this;
892
1095
  var date = new Date();
893
1096
  date.setHours(0, 0, 0, 0);
894
1097
  var now = date.getTime();
@@ -910,8 +1113,8 @@
910
1113
  name: target.name,
911
1114
  configurable: target.properties['#configurable'] === 'true',
912
1115
  qty: target.qty,
913
- mrr: 0,
914
- nrr: 0,
1116
+ mrr: _this.formatMetric(target.properties.VDM_Total_MRR),
1117
+ nrr: _this.formatMetric(target.properties.VDM_Total_NRR),
915
1118
  },
916
1119
  ]);
917
1120
  }
@@ -920,8 +1123,8 @@
920
1123
  };
921
1124
  return FlowHeaderComponent;
922
1125
  }());
923
- FlowHeaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, deps: [{ token: i2__namespace$1.ContextService }, { token: i2__namespace$1.QuoteDraftService }, { token: i1__namespace$2.QuoteApiService }, { token: i1__namespace$2.SalesforceApiService }, { token: i2__namespace$1.FlowConfigurationService }, { token: FlowRouterService }, { token: FlowDialogService }], target: i0__namespace.ɵɵFactoryTarget.Component });
924
- FlowHeaderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowHeaderComponent, selector: "vl-flow-header", ngImport: i0__namespace, template: "<div class=\"flow-info\" *vlLet=\"objectDetails$ | async as details\">\n <nav class=\"nav-item nav-back\" (click)=\"back()\">\n <i class=\"nav-icon vl-icon vl-icon-arrow-left\"></i>\n\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\n <span>Account name</span>\n\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\n <span>Quote #{{ details.quoteNumber }}</span>\n\n <span class=\"dot-separator\"></span>\n\n <nav class=\"nav-item\" (click)=\"quoteDetails.toggle($event)\">\n <span>{{ status$ | async }}</span>\n\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 center\" #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\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">\n <span>{{ details.accountName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">\n <span>{{ details.opportunityName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n <span>{{ details.quoteName }}</span>\n </a>\n </li>\n </ul>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n</div>\n\n<div class=\"flow-navigation\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCatalogRoute$ | async }\" (click)=\"navigateToCatalog()\">Catalog</nav>\n <nav class=\"nav-item disabled\" [ngClass]=\"{ active: isConfigurationRoute$ | async }\">Configurator</nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCartRoute$ | async }\" (click)=\"navigateToShoppingCart()\">\n Shopping Cart ({{ products.length }})\n </nav>\n\n <nav class=\"nav-popover-toggle active\" (click)=\"cart?.overlayPanel?.toggle($event)\">\n <i *ngIf=\"!cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <vl-cart-preview #cart [products]=\"products\"></vl-cart-preview>\n </ng-container>\n</div>\n\n<div class=\"flow-controls\" *vlLet=\"objectDetails$ | async as details\">\n <ng-container *vlLet=\"activePriceList$ | async as priceList\">\n <ng-container *ngIf=\"isAccountMode ?? assetPriceLists.length > 1\">\n <nav class=\"nav-item\" (click)=\"priceListsOverlay?.toggle($event)\">\n <span>{{ priceList.name }}</span>\n <i *ngIf=\"!priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"price-list-overlay\" #priceListsOverlay>\n <ng-template pTemplate>\n <span\n *ngFor=\"let option of assetPriceLists\"\n class=\"price-list-option\"\n [class.active]=\"priceList.id === option.id\"\n (click)=\"selectPriceList(option.id); priceListsOverlay.hide()\"\n >{{ option.name }}</span\n >\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span>{{ priceList.name }}</span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date: 'MM.dd.yyyy' }}</span>\n\n <span class=\"slash-separator\"></span>\n\n <span>MRR: <span class=\"font-semibold\">$0.00</span></span>\n <span>NRR: <span class=\"font-semibold\">$0.00</span></span>\n </ng-container>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <p-button\n styleClass=\"p-button-outlined\"\n label=\"Generate Doc\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n ></p-button>\n\n <p-button\n *vlLet=\"isSaveInProgress$ | async as isSaveInProgress\"\n class=\"save-button\"\n styleClass=\"p-button-outlined\"\n [label]=\"isSaveInProgress ? 'Saving' : 'Save to Quote'\"\n (onClick)=\"saveButtonClickHandler()\"\n [loading]=\"isSaveInProgress\"\n ></p-button>\n\n <p-button\n *vlLet=\"isSubmitInProgress$ | async as isSubmitInProgress\"\n class=\"submit-button\"\n styleClass=\"p-button\"\n [label]=\"isSubmitInProgress ? 'Submitting' : 'Submit For Approval'\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n (onClick)=\"submitButtonClickHandler()\"\n [loading]=\"isSubmitInProgress\"\n ></p-button>\n </ng-container>\n</div>\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.left:before{left:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.right:before{right:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.left .p-overlaypanel-content{margin-left:-16px}::ng-deep .p-overlaypanel.flow-header-overlay.right .p-overlaypanel-content{margin-right:-16px}::ng-deep .p-overlaypanel.flow-header-overlay:before{background-color:#fff}::ng-deep .p-overlaypanel.price-list-overlay .p-overlaypanel-content{border-radius:5px;border-color:var(--vl-border-color);padding:0;display:flex;flex-direction:column;max-height:140px;overflow:auto}:host ::ng-deep .p-button{padding:5px 15px;font-size:12px}:host ::ng-deep .p-button{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button:enabled:hover{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined:enabled:hover{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button .p-button-label{white-space:nowrap}:host ::ng-deep .save-button .p-button{width:120px}:host ::ng-deep .submit-button .p-button{width:160px}.vl-icon{display:inline-block}.flow-info{flex-shrink:0;display:flex;grid-gap:8px;gap:8px;align-items:center}.flow-info .nav-popover-toggle{margin-left:-8px}.flow-info .object-name{text-transform:capitalize}.flow-info .nav-back{font-weight:bold}.flow-info .nav-item:not(.disabled):hover,.flow-info .nav-popover-toggle:not(.disabled):hover{opacity:.6}nav{display:flex;align-items:center;cursor:pointer;padding:4px 0}nav.disabled{opacity:.6;cursor:default}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:200px;overflow:hidden;text-overflow:ellipsis}nav.nav-popover-toggle{width:24px;display:flex;justify-content:center}nav.nav-popover-toggle i{pointer-events:none;margin:0}nav i{pointer-events:none}.dot-separator:after{content:\"\";display:block;width:4px;height:4px;border-radius:50%;background:#fff}.slash-separator:after{content:\"\";display:block;background:#fff;width:1px;height:16px}.flow-header-overlay__wrapper{width:360px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__wrapper .info-list{list-style:none;padding:0;font-size:12px}.flow-header-overlay__wrapper .info-list__row{padding:8px 0;display:flex;justify-content:space-between}.flow-header-overlay__wrapper .info-list__row a{text-align:right}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 24px}.flow-navigation{flex-grow:1;display:flex;grid-gap:16px;gap:16px;justify-content:center;font-weight:600}.flow-navigation .cart-nav-container{display:flex}.flow-navigation .nav-popover-toggle{margin-left:-14px}.flow-navigation .nav-item,.flow-navigation .nav-popover-toggle{opacity:.6}.flow-navigation .nav-item.active,.flow-navigation .nav-item:not(.disabled):hover,.flow-navigation .nav-popover-toggle.active,.flow-navigation .nav-popover-toggle:not(.disabled):hover{opacity:1}.price-list-option{padding:8px;color:var(--vl-primary-color);cursor:pointer}.price-list-option.active,.price-list-option:hover{background:var(--vl-secondary-nav-bg)}.flow-controls{flex-shrink:0;display:flex;align-items:center;grid-gap:8px;gap:8px}\n"], components: [{ type: i3__namespace.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: CartPreviewComponent, selector: "vl-cart-preview", inputs: ["products"] }, { type: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i3__namespace$1.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10__namespace.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i2__namespace$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i9__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i9__namespace.AsyncPipe, "date": i9__namespace.DatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1126
+ FlowHeaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, deps: [{ token: i2__namespace$1.ContextService }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$2.QuoteApiService }, { token: i2__namespace$2.SalesforceApiService }, { token: i2__namespace$1.FlowConfigurationService }, { token: FlowRouterService }, { token: FlowDialogService }, { token: i1__namespace$1.IntegrationState }], target: i0__namespace.ɵɵFactoryTarget.Component });
1127
+ FlowHeaderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowHeaderComponent, selector: "vl-flow-header", ngImport: i0__namespace, template: "<div class=\"flow-info\" *vlLet=\"objectDetails$ | async as details\">\n <nav class=\"nav-item nav-back\" (click)=\"back()\">\n <i class=\"nav-icon vl-icon vl-icon-arrow-left\"></i>\n\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\n <span>Account name</span>\n\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\n <span>Quote #{{ details.quoteNumber }}</span>\n\n <span class=\"dot-separator\"></span>\n\n <nav class=\"nav-item\" (click)=\"quoteDetails.toggle($event)\">\n <span>{{ status$ | async }}</span>\n\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 center\" #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\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">\n <span>{{ details.accountName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">\n <span>{{ details.opportunityName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n <span>{{ details.quoteName }}</span>\n </a>\n </li>\n </ul>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n</div>\n\n<div class=\"flow-navigation\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCatalogRoute$ | async }\" (click)=\"navigateToCatalog()\">Catalog</nav>\n <nav class=\"nav-item disabled\" [ngClass]=\"{ active: isConfigurationRoute$ | async }\">Configurator</nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCartRoute$ | async }\" (click)=\"navigateToShoppingCart()\">\n Shopping Cart ({{ products.length }})\n </nav>\n\n <nav class=\"nav-popover-toggle active\" (click)=\"cart?.overlayPanel?.toggle($event)\">\n <i *ngIf=\"!cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <vl-cart-preview #cart [products]=\"products\"></vl-cart-preview>\n </ng-container>\n</div>\n\n<div class=\"flow-controls\" *vlLet=\"objectDetails$ | async as details\">\n <ng-container *vlLet=\"activePriceList$ | async as priceList\">\n <ng-container *ngIf=\"isAccountMode && assetPriceLists.length > 1\">\n <nav class=\"nav-item\" (click)=\"priceListsOverlay?.toggle($event)\">\n <span>{{ priceList?.name }}</span>\n <i *ngIf=\"!priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"price-list-overlay\" #priceListsOverlay>\n <ng-template pTemplate>\n <span\n *ngFor=\"let option of assetPriceLists\"\n class=\"price-list-option\"\n [class.active]=\"priceList?.id === option.id\"\n (click)=\"selectPriceList(option.id); priceListsOverlay.hide()\"\n >{{ option.name }}</span\n >\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span>{{ priceList?.name }}</span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date: 'MM.dd.yyyy' }}</span>\n\n <span class=\"slash-separator\"></span>\n\n <span class=\"metrics\">\n <div class=\"metrics__row\">\n MRR: <span class=\"font-semibold\">${{ totalMRR$ | async }}</span>\n </div>\n <div class=\"metrics__row\">\n NRR: <span class=\"font-semibold\">${{ totalNRR$ | async }}</span>\n </div>\n </span>\n </ng-container>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <p-button\n styleClass=\"p-button-outlined\"\n label=\"Generate Doc\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n (onClick)=\"docGenButtonClickHandler()\"\n ></p-button>\n\n <p-button\n *vlLet=\"isSaveInProgress$ | async as isSaveInProgress\"\n class=\"save-button\"\n styleClass=\"p-button-outlined\"\n [label]=\"isSaveInProgress ? 'Saving' : 'Save to Quote'\"\n (onClick)=\"saveButtonClickHandler()\"\n [loading]=\"isSaveInProgress\"\n ></p-button>\n\n <p-button\n *vlLet=\"isSubmitInProgress$ | async as isSubmitInProgress\"\n class=\"submit-button\"\n styleClass=\"p-button\"\n [label]=\"isSubmitInProgress ? 'Submitting' : 'Submit For Approval'\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n (onClick)=\"submitButtonClickHandler()\"\n [loading]=\"isSubmitInProgress\"\n ></p-button>\n </ng-container>\n</div>\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.left:before{left:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.right:before{right:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.left .p-overlaypanel-content{margin-left:-16px}::ng-deep .p-overlaypanel.flow-header-overlay.right .p-overlaypanel-content{margin-right:-16px}::ng-deep .p-overlaypanel.flow-header-overlay:before{background-color:#fff}::ng-deep .p-overlaypanel.price-list-overlay .p-overlaypanel-content{border-radius:5px;border-color:var(--vl-border-color);padding:0;display:flex;flex-direction:column;max-height:140px;overflow:auto}:host ::ng-deep .p-button{padding:5px 15px;font-size:12px}:host ::ng-deep .p-button{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button:enabled:hover{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined:enabled:hover{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button .p-button-label{white-space:nowrap}:host ::ng-deep .save-button .p-button{width:120px}:host ::ng-deep .submit-button .p-button{width:160px}.vl-icon{display:inline-block}.flow-info{flex-shrink:0;display:flex;grid-gap:8px;gap:8px;align-items:center}.flow-info .nav-popover-toggle{margin-left:-8px}.flow-info .object-name{text-transform:capitalize}.flow-info .nav-back{font-weight:bold}.flow-info .nav-item:not(.disabled):hover,.flow-info .nav-popover-toggle:not(.disabled):hover{opacity:.6}nav{display:flex;align-items:center;cursor:pointer;padding:4px 0}nav.disabled{opacity:.6;cursor:default}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:200px;overflow:hidden;text-overflow:ellipsis}nav.nav-popover-toggle{width:24px;display:flex;justify-content:center}nav.nav-popover-toggle i{pointer-events:none;margin:0}nav i{pointer-events:none}.dot-separator:after{content:\"\";display:block;width:4px;height:4px;border-radius:50%;background:#fff}.slash-separator:after{content:\"\";display:block;background:#fff;width:1px;height:16px}.flow-header-overlay__wrapper{width:360px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__wrapper .info-list{list-style:none;padding:0;font-size:12px}.flow-header-overlay__wrapper .info-list__row{padding:8px 0;display:flex;justify-content:space-between}.flow-header-overlay__wrapper .info-list__row a{text-align:right}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 24px}.flow-navigation{flex-grow:1;display:flex;grid-gap:16px;gap:16px;justify-content:center;font-weight:600}.flow-navigation .cart-nav-container{display:flex}.flow-navigation .nav-popover-toggle{margin-left:-14px}.flow-navigation .nav-item,.flow-navigation .nav-popover-toggle{opacity:.6}.flow-navigation .nav-item.active,.flow-navigation .nav-item:not(.disabled):hover,.flow-navigation .nav-popover-toggle.active,.flow-navigation .nav-popover-toggle:not(.disabled):hover{opacity:1}.price-list-option{padding:8px;color:var(--vl-primary-color);cursor:pointer}.price-list-option.active,.price-list-option:hover{background:var(--vl-secondary-nav-bg)}.flow-controls{flex-shrink:0;display:flex;align-items:center;grid-gap:8px;gap:8px}\n"], components: [{ type: i3__namespace$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: CartPreviewComponent, selector: "vl-cart-preview", inputs: ["products"] }, { type: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i8__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11__namespace.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i2__namespace$3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i8__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i8__namespace.AsyncPipe, "date": i8__namespace.DatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
925
1128
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, decorators: [{
926
1129
  type: i0.Component,
927
1130
  args: [{
@@ -930,7 +1133,7 @@
930
1133
  styleUrls: ['./header.component.scss'],
931
1134
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
932
1135
  }]
933
- }], ctorParameters: function () { return [{ type: i2__namespace$1.ContextService }, { type: i2__namespace$1.QuoteDraftService }, { type: i1__namespace$2.QuoteApiService }, { type: i1__namespace$2.SalesforceApiService }, { type: i2__namespace$1.FlowConfigurationService }, { type: FlowRouterService }, { type: FlowDialogService }]; } });
1136
+ }], ctorParameters: function () { return [{ type: i2__namespace$1.ContextService }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$2.QuoteApiService }, { type: i2__namespace$2.SalesforceApiService }, { type: i2__namespace$1.FlowConfigurationService }, { type: FlowRouterService }, { type: FlowDialogService }, { type: i1__namespace$1.IntegrationState }]; } });
934
1137
 
935
1138
  var FlowHeaderModule = /** @class */ (function () {
936
1139
  function FlowHeaderModule() {
@@ -938,13 +1141,13 @@
938
1141
  return FlowHeaderModule;
939
1142
  }());
940
1143
  FlowHeaderModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
941
- FlowHeaderModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [i9.CommonModule, i3.OverlayPanelModule, i3$1.LetDirectiveModule, i10.TooltipModule, i2.ButtonModule, CartPreviewModule], exports: [FlowHeaderComponent] });
942
- FlowHeaderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, imports: [[i9.CommonModule, i3.OverlayPanelModule, i3$1.LetDirectiveModule, i10.TooltipModule, i2.ButtonModule, CartPreviewModule]] });
1144
+ FlowHeaderModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [i8.CommonModule, i3$1.OverlayPanelModule, i3.LetDirectiveModule, i11.TooltipModule, i2.ButtonModule, CartPreviewModule], exports: [FlowHeaderComponent] });
1145
+ FlowHeaderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, imports: [[i8.CommonModule, i3$1.OverlayPanelModule, i3.LetDirectiveModule, i11.TooltipModule, i2.ButtonModule, CartPreviewModule]] });
943
1146
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, decorators: [{
944
1147
  type: i0.NgModule,
945
1148
  args: [{
946
1149
  declarations: [FlowHeaderComponent],
947
- imports: [i9.CommonModule, i3.OverlayPanelModule, i3$1.LetDirectiveModule, i10.TooltipModule, i2.ButtonModule, CartPreviewModule],
1150
+ imports: [i8.CommonModule, i3$1.OverlayPanelModule, i3.LetDirectiveModule, i11.TooltipModule, i2.ButtonModule, CartPreviewModule],
948
1151
  exports: [FlowHeaderComponent],
949
1152
  }]
950
1153
  }] });
@@ -961,8 +1164,8 @@
961
1164
  FlowService.prototype.initSubscriptions = function () {
962
1165
  var _this = this;
963
1166
  this.integrationState
964
- .listen$(i4.FlowAction.FLOW_CONFIGURE_PRODUCT)
965
- .pipe(rxjs.takeUntil(this.cleanup$), rxjs.tap(function (payload) {
1167
+ .listen$(i1$1.FlowAction.FLOW_CONFIGURE_PRODUCT)
1168
+ .pipe(rxjs.tap(function (payload) {
966
1169
  var _a, _b;
967
1170
  var productId = (_a = payload.productId) !== null && _a !== void 0 ? _a : (_b = _this.quoteDraftService.currentState.find(function (li) { return li.id === payload.lineItemId; })) === null || _b === void 0 ? void 0 : _b.productId;
968
1171
  if (productId) {
@@ -971,15 +1174,15 @@
971
1174
  else {
972
1175
  console.warn("Parameter 'productId' is needed to start configuration");
973
1176
  }
974
- }))
1177
+ }), rxjs.takeUntil(this.cleanup$))
975
1178
  .subscribe();
976
1179
  this.integrationState
977
- .listen$(i4.FlowAction.FLOW_NAVIGATE_BACK)
978
- .pipe(rxjs.takeUntil(this.cleanup$), rxjs.tap(function () { return _this.flowRouterService.navigateBack(); }))
1180
+ .listen$(i1$1.FlowAction.FLOW_NAVIGATE_BACK)
1181
+ .pipe(rxjs.tap(function () { return _this.flowRouterService.navigateBack(); }), rxjs.takeUntil(this.cleanup$))
979
1182
  .subscribe();
980
1183
  this.integrationState
981
- .listen$(i4.FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)
982
- .pipe(rxjs.takeUntil(this.cleanup$), rxjs.switchMap(function () {
1184
+ .listen$(i1$1.FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)
1185
+ .pipe(rxjs.switchMap(function () {
983
1186
  var lineItem = _this.configurationService.getSnapshot();
984
1187
  if (!lineItem) {
985
1188
  return rxjs.of(undefined);
@@ -998,7 +1201,7 @@
998
1201
  }), rxjs.tap(function () {
999
1202
  _this.configurationService.hasUnsavedChanges = false;
1000
1203
  _this.flowRouterService.navigateToShoppingCart();
1001
- }))
1204
+ }), rxjs.takeUntil(this.cleanup$))
1002
1205
  .subscribe();
1003
1206
  };
1004
1207
  FlowService.prototype.cleanup = function () {
@@ -1006,29 +1209,31 @@
1006
1209
  };
1007
1210
  return FlowService;
1008
1211
  }());
1009
- FlowService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService, deps: [{ token: i4__namespace.IntegrationState }, { token: FlowRouterService }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$1.ConfigurationService }, { token: i2__namespace$1.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1212
+ FlowService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService, deps: [{ token: i1__namespace$1.IntegrationState }, { token: FlowRouterService }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$1.ConfigurationService }, { token: i2__namespace$1.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1010
1213
  FlowService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService });
1011
1214
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService, decorators: [{
1012
1215
  type: i0.Injectable
1013
- }], ctorParameters: function () { return [{ type: i4__namespace.IntegrationState }, { type: FlowRouterService }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$1.ConfigurationService }, { type: i2__namespace$1.FlowConfigurationService }]; } });
1216
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.IntegrationState }, { type: FlowRouterService }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$1.ConfigurationService }, { type: i2__namespace$1.FlowConfigurationService }]; } });
1014
1217
 
1015
1218
  var FlowComponent = /** @class */ (function () {
1016
- function FlowComponent(routerService, quoteDraftService, flowService) {
1219
+ function FlowComponent(routerService, quoteDraftService, flowService, docGenService) {
1017
1220
  var _this = this;
1018
1221
  this.routerService = routerService;
1019
1222
  this.quoteDraftService = quoteDraftService;
1020
1223
  this.flowService = flowService;
1224
+ this.docGenService = docGenService;
1021
1225
  this.isLoading$ = this.routerService.loading$;
1022
1226
  this.showHeader$ = this.routerService.route$.pipe(rxjs.map(function (route) { return route.data.showHeader && !_this.quoteDraftService.isStandalone; }));
1023
1227
  this.flowService.initSubscriptions();
1024
1228
  }
1025
1229
  FlowComponent.prototype.ngOnDestroy = function () {
1026
1230
  this.flowService.cleanup();
1231
+ this.docGenService.cleanup();
1027
1232
  };
1028
1233
  return FlowComponent;
1029
1234
  }());
1030
- FlowComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowComponent, deps: [{ token: FlowRouterService }, { token: i2__namespace$1.QuoteDraftService }, { token: FlowService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1031
- FlowComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowComponent, selector: "vl-flow", ngImport: i0__namespace, 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;overflow:hidden}.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: i3__namespace$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1235
+ FlowComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowComponent, deps: [{ token: FlowRouterService }, { token: i2__namespace$1.QuoteDraftService }, { token: FlowService }, { token: FlowDocGenService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1236
+ FlowComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowComponent, selector: "vl-flow", ngImport: i0__namespace, 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\n<vl-flow-doc-gen></vl-flow-doc-gen>\n", styles: [":host{display:flex;flex-direction:column;height:100%}.flow-content{flex-grow:1;position:relative;overflow:hidden}.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: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: DocGenComponent, selector: "vl-flow-doc-gen" }], directives: [{ type: i8__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], pipes: { "async": i8__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1032
1237
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowComponent, decorators: [{
1033
1238
  type: i0.Component,
1034
1239
  args: [{
@@ -1037,7 +1242,7 @@
1037
1242
  styleUrls: ['./flow.component.scss'],
1038
1243
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1039
1244
  }]
1040
- }], ctorParameters: function () { return [{ type: FlowRouterService }, { type: i2__namespace$1.QuoteDraftService }, { type: FlowService }]; } });
1245
+ }], ctorParameters: function () { return [{ type: FlowRouterService }, { type: i2__namespace$1.QuoteDraftService }, { type: FlowService }, { type: FlowDocGenService }]; } });
1041
1246
 
1042
1247
  var ContextGuard = /** @class */ (function () {
1043
1248
  function ContextGuard(router, routerService, contextService) {
@@ -1102,11 +1307,11 @@
1102
1307
  };
1103
1308
  return ContextGuard;
1104
1309
  }());
1105
- ContextGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard, deps: [{ token: i1__namespace$1.Router }, { token: FlowRouterService }, { token: i2__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1310
+ ContextGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard, deps: [{ token: i1__namespace$2.Router }, { token: FlowRouterService }, { token: i2__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1106
1311
  ContextGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard });
1107
1312
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard, decorators: [{
1108
1313
  type: i0.Injectable
1109
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: FlowRouterService }, { type: i2__namespace$1.ContextService }]; } });
1314
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: FlowRouterService }, { type: i2__namespace$1.ContextService }]; } });
1110
1315
 
1111
1316
  var ProductUnloadGuard = /** @class */ (function () {
1112
1317
  function ProductUnloadGuard(router, contextService, quoteDraftService, configurationService, flowDialogService) {
@@ -1141,11 +1346,11 @@
1141
1346
  };
1142
1347
  return ProductUnloadGuard;
1143
1348
  }());
1144
- ProductUnloadGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard, deps: [{ token: i1__namespace$1.Router }, { token: i2__namespace$1.ContextService }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$1.ConfigurationService }, { token: FlowDialogService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1349
+ ProductUnloadGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard, deps: [{ token: i1__namespace$2.Router }, { token: i2__namespace$1.ContextService }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$1.ConfigurationService }, { token: FlowDialogService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1145
1350
  ProductUnloadGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard });
1146
1351
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard, decorators: [{
1147
1352
  type: i0.Injectable
1148
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i2__namespace$1.ContextService }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$1.ConfigurationService }, { type: FlowDialogService }]; } });
1353
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i2__namespace$1.ContextService }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$1.ConfigurationService }, { type: FlowDialogService }]; } });
1149
1354
 
1150
1355
  var RootGuard = /** @class */ (function () {
1151
1356
  function RootGuard(router, routerService) {
@@ -1179,12 +1384,12 @@
1179
1384
  };
1180
1385
  return RootGuard;
1181
1386
  }());
1182
- RootGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RootGuard, deps: [{ token: i1__namespace$1.Router }, { token: FlowRouterService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1387
+ RootGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RootGuard, deps: [{ token: i1__namespace$2.Router }, { token: FlowRouterService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1183
1388
  RootGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RootGuard, providedIn: 'root' });
1184
1389
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RootGuard, decorators: [{
1185
1390
  type: i0.Injectable,
1186
1391
  args: [{ providedIn: 'root' }]
1187
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: FlowRouterService }]; } });
1392
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: FlowRouterService }]; } });
1188
1393
 
1189
1394
  var FLOW_CUSTOMIZATION = new i0.InjectionToken('FLOW_CUSTOMIZATION');
1190
1395
 
@@ -1214,7 +1419,7 @@
1214
1419
  }), rxjs.catchError(function (err) {
1215
1420
  var _a;
1216
1421
  var message = 'Failed to resolve Catalog component. ' + ((_a = err.message) !== null && _a !== void 0 ? _a : '');
1217
- _this.toastService.add({ severity: i3$1.ToastType.error, summary: message, sticky: true });
1422
+ _this.toastService.add({ severity: i3.ToastType.error, summary: message, sticky: true });
1218
1423
  _this.uiDefinition = undefined;
1219
1424
  _this.state$.next({ loading: false, failure: true });
1220
1425
  return rxjs.of();
@@ -1281,8 +1486,8 @@
1281
1486
  };
1282
1487
  return CatalogComponent;
1283
1488
  }());
1284
- CatalogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, deps: [{ token: i1__namespace$2.UITemplatesApiService }, { token: i2__namespace$1.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace$1.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1285
- CatalogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CatalogComponent, selector: "vl-flow-catalog", ngImport: i0__namespace, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [""], components: [{ type: i3__namespace$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i4__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1489
+ CatalogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, deps: [{ token: i2__namespace$2.UITemplatesApiService }, { token: i2__namespace$1.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1490
+ CatalogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CatalogComponent, selector: "vl-flow-catalog", ngImport: i0__namespace, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [""], components: [{ type: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i1__namespace$1.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i8__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i8__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1286
1491
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, decorators: [{
1287
1492
  type: i0.Component,
1288
1493
  args: [{
@@ -1292,7 +1497,7 @@
1292
1497
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1293
1498
  }]
1294
1499
  }], ctorParameters: function () {
1295
- return [{ type: i1__namespace$2.UITemplatesApiService }, { type: i2__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace$1.ToastService }, { type: undefined, decorators: [{
1500
+ return [{ type: i2__namespace$2.UITemplatesApiService }, { type: i2__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
1296
1501
  type: i0.Optional
1297
1502
  }, {
1298
1503
  type: i0.Inject,
@@ -1306,13 +1511,13 @@
1306
1511
  return CatalogModule;
1307
1512
  }());
1308
1513
  CatalogModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1309
- CatalogModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, declarations: [CatalogComponent], imports: [i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule], exports: [CatalogComponent] });
1310
- CatalogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, imports: [[i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule]] });
1514
+ CatalogModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, declarations: [CatalogComponent], imports: [i8.CommonModule, i1$1.PreviewModule, i3.LoaderModule], exports: [CatalogComponent] });
1515
+ CatalogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, imports: [[i8.CommonModule, i1$1.PreviewModule, i3.LoaderModule]] });
1311
1516
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, decorators: [{
1312
1517
  type: i0.NgModule,
1313
1518
  args: [{
1314
1519
  declarations: [CatalogComponent],
1315
- imports: [i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule],
1520
+ imports: [i8.CommonModule, i1$1.PreviewModule, i3.LoaderModule],
1316
1521
  exports: [CatalogComponent],
1317
1522
  }]
1318
1523
  }] });
@@ -1370,8 +1575,8 @@
1370
1575
  };
1371
1576
  return DebugComponent;
1372
1577
  }());
1373
- DebugComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, deps: [{ token: i1__namespace$2.FlowsApiService }, { token: i1__namespace$1.Router }, { token: i1__namespace$1.ActivatedRoute }, { token: i2__namespace$1.ContextService }, { token: i2__namespace$1.FlowConfigurationService }, { token: i2__namespace$1.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1374
- DebugComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: DebugComponent, selector: "vl-flow-debug", ngImport: i0__namespace, 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: [":host{display:block;padding:24px 54px}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__namespace$1.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: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6__namespace.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i7__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7__namespace.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7__namespace.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__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i8__namespace.InputText, selector: "[pInputText]" }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1578
+ DebugComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, deps: [{ token: i2__namespace$2.FlowsApiService }, { token: i1__namespace$2.Router }, { token: i1__namespace$2.ActivatedRoute }, { token: i2__namespace$1.ContextService }, { token: i2__namespace$1.FlowConfigurationService }, { token: i2__namespace$1.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1579
+ DebugComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: DebugComponent, selector: "vl-flow-debug", ngImport: i0__namespace, 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: [":host{display:block;padding:24px 54px}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__namespace.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: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6__namespace.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i7__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7__namespace.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7__namespace.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__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i8__namespace$1.InputText, selector: "[pInputText]" }, { type: i8__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i8__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1375
1580
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, decorators: [{
1376
1581
  type: i0.Component,
1377
1582
  args: [{
@@ -1380,7 +1585,7 @@
1380
1585
  styleUrls: ['./debug.component.scss'],
1381
1586
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1382
1587
  }]
1383
- }], ctorParameters: function () { return [{ type: i1__namespace$2.FlowsApiService }, { type: i1__namespace$1.Router }, { type: i1__namespace$1.ActivatedRoute }, { type: i2__namespace$1.ContextService }, { type: i2__namespace$1.FlowConfigurationService }, { type: i2__namespace$1.QuoteDraftService }]; } });
1588
+ }], ctorParameters: function () { return [{ type: i2__namespace$2.FlowsApiService }, { type: i1__namespace$2.Router }, { type: i1__namespace$2.ActivatedRoute }, { type: i2__namespace$1.ContextService }, { type: i2__namespace$1.FlowConfigurationService }, { type: i2__namespace$1.QuoteDraftService }]; } });
1384
1589
 
1385
1590
  var routes$1 = [{ path: '', component: DebugComponent }];
1386
1591
  var DebugModule = /** @class */ (function () {
@@ -1389,35 +1594,35 @@
1389
1594
  return DebugModule;
1390
1595
  }());
1391
1596
  DebugModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1392
- DebugModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, declarations: [DebugComponent], imports: [i9.CommonModule,
1597
+ DebugModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, declarations: [DebugComponent], imports: [i8.CommonModule,
1393
1598
  i7.FormsModule,
1394
- i7.ReactiveFormsModule, i1__namespace$1.RouterModule, i6.RadioButtonModule,
1599
+ i7.ReactiveFormsModule, i1__namespace$2.RouterModule, i6.RadioButtonModule,
1395
1600
  i2.ButtonModule,
1396
- i8.InputTextModule,
1397
- i4$1.DropdownModule] });
1601
+ i8$1.InputTextModule,
1602
+ i4.DropdownModule] });
1398
1603
  DebugModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, imports: [[
1399
- i9.CommonModule,
1604
+ i8.CommonModule,
1400
1605
  i7.FormsModule,
1401
1606
  i7.ReactiveFormsModule,
1402
- i1$1.RouterModule.forChild(routes$1),
1607
+ i1$2.RouterModule.forChild(routes$1),
1403
1608
  i6.RadioButtonModule,
1404
1609
  i2.ButtonModule,
1405
- i8.InputTextModule,
1406
- i4$1.DropdownModule,
1610
+ i8$1.InputTextModule,
1611
+ i4.DropdownModule,
1407
1612
  ]] });
1408
1613
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, decorators: [{
1409
1614
  type: i0.NgModule,
1410
1615
  args: [{
1411
1616
  declarations: [DebugComponent],
1412
1617
  imports: [
1413
- i9.CommonModule,
1618
+ i8.CommonModule,
1414
1619
  i7.FormsModule,
1415
1620
  i7.ReactiveFormsModule,
1416
- i1$1.RouterModule.forChild(routes$1),
1621
+ i1$2.RouterModule.forChild(routes$1),
1417
1622
  i6.RadioButtonModule,
1418
1623
  i2.ButtonModule,
1419
- i8.InputTextModule,
1420
- i4$1.DropdownModule,
1624
+ i8$1.InputTextModule,
1625
+ i4.DropdownModule,
1421
1626
  ],
1422
1627
  }]
1423
1628
  }] });
@@ -1533,8 +1738,8 @@
1533
1738
  };
1534
1739
  return LegacyProductComponent;
1535
1740
  }());
1536
- LegacyProductComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductComponent, deps: [{ token: i1__namespace$1.ActivatedRoute }, { token: i2__namespace$1.QuoteDraftService }, { token: i1__namespace$2.QuoteApiService }, { token: i2__namespace$1.ContextService }, { token: i4__namespace$2.RuntimeContextService }, { token: i4__namespace$2.RuntimeService }, { token: i4__namespace$2.CurrentStateService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1537
- LegacyProductComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: LegacyProductComponent, selector: "ng-component", ngImport: i0__namespace, template: "<vl-runtime #runtimeView (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n", styles: [":host{display:block;height:100%}\n"], components: [{ type: i4__namespace$2.RuntimeComponent, selector: "vl-runtime", outputs: ["solutionUpdated"] }] });
1741
+ LegacyProductComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductComponent, deps: [{ token: i1__namespace$2.ActivatedRoute }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$2.QuoteApiService }, { token: i2__namespace$1.ContextService }, { token: i4__namespace$1.RuntimeContextService }, { token: i4__namespace$1.RuntimeService }, { token: i4__namespace$1.CurrentStateService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1742
+ LegacyProductComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: LegacyProductComponent, selector: "ng-component", ngImport: i0__namespace, template: "<vl-runtime #runtimeView (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n", styles: [":host{display:block;height:100%}\n"], components: [{ type: i4__namespace$1.RuntimeComponent, selector: "vl-runtime", outputs: ["solutionUpdated"] }] });
1538
1743
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductComponent, decorators: [{
1539
1744
  type: i0.Component,
1540
1745
  args: [{
@@ -1542,7 +1747,7 @@
1542
1747
  styleUrls: ['./legacy-product.component.scss'],
1543
1748
  }]
1544
1749
  }], ctorParameters: function () {
1545
- return [{ type: i1__namespace$1.ActivatedRoute }, { type: i2__namespace$1.QuoteDraftService }, { type: i1__namespace$2.QuoteApiService }, { type: i2__namespace$1.ContextService }, { type: i4__namespace$2.RuntimeContextService }, { type: i4__namespace$2.RuntimeService }, { type: i4__namespace$2.CurrentStateService }, { type: undefined, decorators: [{
1750
+ return [{ type: i1__namespace$2.ActivatedRoute }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$2.QuoteApiService }, { type: i2__namespace$1.ContextService }, { type: i4__namespace$1.RuntimeContextService }, { type: i4__namespace$1.RuntimeService }, { type: i4__namespace$1.CurrentStateService }, { type: undefined, decorators: [{
1546
1751
  type: i0.Optional
1547
1752
  }, {
1548
1753
  type: i0.Inject,
@@ -1556,13 +1761,13 @@
1556
1761
  return LegacyProductModule;
1557
1762
  }());
1558
1763
  LegacyProductModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1559
- LegacyProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, declarations: [LegacyProductComponent], imports: [i9.CommonModule, i4$2.RuntimeModule, i1__namespace$3.TooltipModule], exports: [LegacyProductComponent] });
1560
- LegacyProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, imports: [[i9.CommonModule, i4$2.RuntimeModule, i1$3.TooltipModule.forRoot()]] });
1764
+ LegacyProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, declarations: [LegacyProductComponent], imports: [i8.CommonModule, i4$1.RuntimeModule, i1__namespace$3.TooltipModule], exports: [LegacyProductComponent] });
1765
+ LegacyProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, imports: [[i8.CommonModule, i4$1.RuntimeModule, i1$3.TooltipModule.forRoot()]] });
1561
1766
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, decorators: [{
1562
1767
  type: i0.NgModule,
1563
1768
  args: [{
1564
1769
  declarations: [LegacyProductComponent],
1565
- imports: [i9.CommonModule, i4$2.RuntimeModule, i1$3.TooltipModule.forRoot()],
1770
+ imports: [i8.CommonModule, i4$1.RuntimeModule, i1$3.TooltipModule.forRoot()],
1566
1771
  exports: [LegacyProductComponent],
1567
1772
  }]
1568
1773
  }] });
@@ -1641,8 +1846,8 @@
1641
1846
  };
1642
1847
  return ProductComponent;
1643
1848
  }());
1644
- ProductComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductComponent, deps: [{ token: i2__namespace$1.ContextService }, { token: i2__namespace$1.ConfigurationRuntimeService }, { token: i2__namespace$1.ConfigurationService }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$2.MessageService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1645
- ProductComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: ProductComponent, selector: "vl-flow-product", ngImport: i0__namespace, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [""], components: [{ type: i3__namespace$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i4__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1849
+ ProductComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductComponent, deps: [{ token: i2__namespace$1.ContextService }, { token: i2__namespace$1.ConfigurationRuntimeService }, { token: i2__namespace$1.ConfigurationService }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$3.MessageService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1850
+ ProductComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: ProductComponent, selector: "vl-flow-product", ngImport: i0__namespace, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [""], components: [{ type: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i1__namespace$1.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i8__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i8__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1646
1851
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductComponent, decorators: [{
1647
1852
  type: i0.Component,
1648
1853
  args: [{
@@ -1652,7 +1857,7 @@
1652
1857
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1653
1858
  }]
1654
1859
  }], ctorParameters: function () {
1655
- return [{ type: i2__namespace$1.ContextService }, { type: i2__namespace$1.ConfigurationRuntimeService }, { type: i2__namespace$1.ConfigurationService }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$2.MessageService }, { type: undefined, decorators: [{
1860
+ return [{ type: i2__namespace$1.ContextService }, { type: i2__namespace$1.ConfigurationRuntimeService }, { type: i2__namespace$1.ConfigurationService }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$3.MessageService }, { type: undefined, decorators: [{
1656
1861
  type: i0.Optional
1657
1862
  }, {
1658
1863
  type: i0.Inject,
@@ -1666,13 +1871,13 @@
1666
1871
  return ProductModule;
1667
1872
  }());
1668
1873
  ProductModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1669
- ProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, declarations: [ProductComponent], imports: [i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule], exports: [ProductComponent] });
1670
- ProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, imports: [[i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule]] });
1874
+ ProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, declarations: [ProductComponent], imports: [i8.CommonModule, i1$1.PreviewModule, i3.LoaderModule], exports: [ProductComponent] });
1875
+ ProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, imports: [[i8.CommonModule, i1$1.PreviewModule, i3.LoaderModule]] });
1671
1876
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, decorators: [{
1672
1877
  type: i0.NgModule,
1673
1878
  args: [{
1674
1879
  declarations: [ProductComponent],
1675
- imports: [i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule],
1880
+ imports: [i8.CommonModule, i1$1.PreviewModule, i3.LoaderModule],
1676
1881
  exports: [ProductComponent],
1677
1882
  }]
1678
1883
  }] });
@@ -1691,8 +1896,8 @@
1691
1896
  }
1692
1897
  return RecordNotFoundComponent;
1693
1898
  }());
1694
- RecordNotFoundComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundComponent, deps: [{ token: i1__namespace$1.Router }, { token: i1__namespace$1.ActivatedRoute }], target: i0__namespace.ɵɵFactoryTarget.Component });
1695
- RecordNotFoundComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: RecordNotFoundComponent, selector: "vl-flow-record-not-found", ngImport: i0__namespace, 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", styles: [":host{display:block;padding:24px 54px}\n"], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1899
+ RecordNotFoundComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundComponent, deps: [{ token: i1__namespace$2.Router }, { token: i1__namespace$2.ActivatedRoute }], target: i0__namespace.ɵɵFactoryTarget.Component });
1900
+ RecordNotFoundComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: RecordNotFoundComponent, selector: "vl-flow-record-not-found", ngImport: i0__namespace, 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", styles: [":host{display:block;padding:24px 54px}\n"], directives: [{ type: i8__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1696
1901
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundComponent, decorators: [{
1697
1902
  type: i0.Component,
1698
1903
  args: [{
@@ -1701,7 +1906,7 @@
1701
1906
  styleUrls: ['./record-not-found.component.scss'],
1702
1907
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1703
1908
  }]
1704
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i1__namespace$1.ActivatedRoute }]; } });
1909
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i1__namespace$2.ActivatedRoute }]; } });
1705
1910
 
1706
1911
  var routes = [{ path: '', component: RecordNotFoundComponent }];
1707
1912
  var RecordNotFoundModule = /** @class */ (function () {
@@ -1710,13 +1915,13 @@
1710
1915
  return RecordNotFoundModule;
1711
1916
  }());
1712
1917
  RecordNotFoundModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1713
- RecordNotFoundModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, declarations: [RecordNotFoundComponent], imports: [i9.CommonModule, i1__namespace$1.RouterModule] });
1714
- RecordNotFoundModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, imports: [[i9.CommonModule, i1$1.RouterModule.forChild(routes)]] });
1918
+ RecordNotFoundModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, declarations: [RecordNotFoundComponent], imports: [i8.CommonModule, i1__namespace$2.RouterModule] });
1919
+ RecordNotFoundModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, imports: [[i8.CommonModule, i1$2.RouterModule.forChild(routes)]] });
1715
1920
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, decorators: [{
1716
1921
  type: i0.NgModule,
1717
1922
  args: [{
1718
1923
  declarations: [RecordNotFoundComponent],
1719
- imports: [i9.CommonModule, i1$1.RouterModule.forChild(routes)],
1924
+ imports: [i8.CommonModule, i1$2.RouterModule.forChild(routes)],
1720
1925
  }]
1721
1926
  }] });
1722
1927
 
@@ -1746,7 +1951,7 @@
1746
1951
  }), rxjs.catchError(function (err) {
1747
1952
  var _a;
1748
1953
  var message = 'Failed to resolve Shopping cart component. ' + ((_a = err.message) !== null && _a !== void 0 ? _a : '');
1749
- _this.toastService.add({ severity: i3$1.ToastType.error, summary: message, sticky: true });
1954
+ _this.toastService.add({ severity: i3.ToastType.error, summary: message, sticky: true });
1750
1955
  _this.uiDefinition = undefined;
1751
1956
  _this.state$.next({ loading: false, failure: true });
1752
1957
  return rxjs.of();
@@ -1813,8 +2018,8 @@
1813
2018
  };
1814
2019
  return ShoppingCartComponent;
1815
2020
  }());
1816
- ShoppingCartComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, deps: [{ token: i1__namespace$2.UITemplatesApiService }, { token: i2__namespace$1.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace$1.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1817
- ShoppingCartComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: ShoppingCartComponent, selector: "vl-flow-shopping-cart", ngImport: i0__namespace, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [""], components: [{ type: i3__namespace$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i4__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2021
+ ShoppingCartComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, deps: [{ token: i2__namespace$2.UITemplatesApiService }, { token: i2__namespace$1.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
2022
+ ShoppingCartComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: ShoppingCartComponent, selector: "vl-flow-shopping-cart", ngImport: i0__namespace, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [""], components: [{ type: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i1__namespace$1.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i8__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i8__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1818
2023
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, decorators: [{
1819
2024
  type: i0.Component,
1820
2025
  args: [{
@@ -1824,7 +2029,7 @@
1824
2029
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1825
2030
  }]
1826
2031
  }], ctorParameters: function () {
1827
- return [{ type: i1__namespace$2.UITemplatesApiService }, { type: i2__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace$1.ToastService }, { type: undefined, decorators: [{
2032
+ return [{ type: i2__namespace$2.UITemplatesApiService }, { type: i2__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
1828
2033
  type: i0.Optional
1829
2034
  }, {
1830
2035
  type: i0.Inject,
@@ -1838,13 +2043,13 @@
1838
2043
  return ShoppingCartModule;
1839
2044
  }());
1840
2045
  ShoppingCartModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1841
- ShoppingCartModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, declarations: [ShoppingCartComponent], imports: [i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule], exports: [ShoppingCartComponent] });
1842
- ShoppingCartModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, imports: [[i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule]] });
2046
+ ShoppingCartModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, declarations: [ShoppingCartComponent], imports: [i8.CommonModule, i1$1.PreviewModule, i3.LoaderModule], exports: [ShoppingCartComponent] });
2047
+ ShoppingCartModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, imports: [[i8.CommonModule, i1$1.PreviewModule, i3.LoaderModule]] });
1843
2048
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, decorators: [{
1844
2049
  type: i0.NgModule,
1845
2050
  args: [{
1846
2051
  declarations: [ShoppingCartComponent],
1847
- imports: [i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule],
2052
+ imports: [i8.CommonModule, i1$1.PreviewModule, i3.LoaderModule],
1848
2053
  exports: [ShoppingCartComponent],
1849
2054
  }]
1850
2055
  }] });
@@ -1903,11 +2108,11 @@
1903
2108
  };
1904
2109
  return FlowResolver;
1905
2110
  }());
1906
- FlowResolver.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver, deps: [{ token: i1__namespace$1.Router }, { token: i1__namespace$2.FlowsApiService }, { token: FlowRouterService }, { token: i2__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
2111
+ FlowResolver.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver, deps: [{ token: i1__namespace$2.Router }, { token: i2__namespace$2.FlowsApiService }, { token: FlowRouterService }, { token: i2__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1907
2112
  FlowResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver });
1908
2113
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver, decorators: [{
1909
2114
  type: i0.Injectable
1910
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i1__namespace$2.FlowsApiService }, { type: FlowRouterService }, { type: i2__namespace$1.ContextService }]; } });
2115
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i2__namespace$2.FlowsApiService }, { type: FlowRouterService }, { type: i2__namespace$1.ContextService }]; } });
1911
2116
 
1912
2117
  var QuoteResolver = /** @class */ (function () {
1913
2118
  function QuoteResolver(router, quoteDraftService, routerService, contextService, flowConfiguration) {
@@ -1929,18 +2134,18 @@
1929
2134
  return rxjs.of(true);
1930
2135
  }
1931
2136
  var queryParams = route.queryParams;
1932
- return this.quoteDraftService.init(headerId, queryParams).pipe(rxjs.catchError(function (e) {
2137
+ return this.quoteDraftService.init(headerId, queryParams).pipe(rxjs.switchMap(function () { return _this.flowConfiguration.calculate$(); }), rxjs.tap(function () { return (_this.quoteDraftService.isInitialized = true); }), rxjs.catchError(function (e) {
1933
2138
  var message = e instanceof http.HttpErrorResponse ? e.error.message : e;
1934
2139
  return _this.handleError(route, message);
1935
2140
  }));
1936
2141
  };
1937
2142
  return QuoteResolver;
1938
2143
  }());
1939
- QuoteResolver.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver, deps: [{ token: i1__namespace$1.Router }, { token: i2__namespace$1.QuoteDraftService }, { token: FlowRouterService }, { token: i2__namespace$1.ContextService }, { token: i2__namespace$1.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
2144
+ QuoteResolver.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver, deps: [{ token: i1__namespace$2.Router }, { token: i2__namespace$1.QuoteDraftService }, { token: FlowRouterService }, { token: i2__namespace$1.ContextService }, { token: i2__namespace$1.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1940
2145
  QuoteResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver });
1941
2146
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver, decorators: [{
1942
2147
  type: i0.Injectable
1943
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i2__namespace$1.QuoteDraftService }, { type: FlowRouterService }, { type: i2__namespace$1.ContextService }, { type: i2__namespace$1.FlowConfigurationService }]; } });
2148
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i2__namespace$1.QuoteDraftService }, { type: FlowRouterService }, { type: i2__namespace$1.ContextService }, { type: i2__namespace$1.FlowConfigurationService }]; } });
1944
2149
 
1945
2150
  var rootRoute = {
1946
2151
  id: VELOCE_FLOW_ROOT_ROUTE,
@@ -2009,13 +2214,13 @@
2009
2214
  return FlowRoutingModule;
2010
2215
  }());
2011
2216
  FlowRoutingModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2012
- FlowRoutingModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, imports: [i1__namespace$1.RouterModule, ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule], exports: [i1$1.RouterModule] });
2013
- FlowRoutingModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver], imports: [[i1$1.RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule], i1$1.RouterModule] });
2217
+ FlowRoutingModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, imports: [i1__namespace$2.RouterModule, ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule], exports: [i1$2.RouterModule] });
2218
+ FlowRoutingModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver], imports: [[i1$2.RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule], i1$2.RouterModule] });
2014
2219
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, decorators: [{
2015
2220
  type: i0.NgModule,
2016
2221
  args: [{
2017
- imports: [i1$1.RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule],
2018
- exports: [i1$1.RouterModule],
2222
+ imports: [i1$2.RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule],
2223
+ exports: [i1$2.RouterModule],
2019
2224
  providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver],
2020
2225
  }]
2021
2226
  }] });
@@ -2026,39 +2231,42 @@
2026
2231
  return FlowModule;
2027
2232
  }());
2028
2233
  FlowModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2029
- FlowModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, declarations: [FlowComponent], imports: [i9.CommonModule,
2234
+ FlowModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, declarations: [FlowComponent], imports: [i8.CommonModule,
2030
2235
  FlowRoutingModule,
2031
- i1$2.ApiModule,
2032
- i4.LauncherModule,
2033
- i3$1.LoaderModule,
2236
+ i2$2.ApiModule,
2237
+ i1$1.LauncherModule,
2238
+ i3.LoaderModule,
2034
2239
  FlowHeaderModule,
2035
2240
  FlowDialogModule,
2036
- i2$1.SdkCoreModule] });
2037
- FlowModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, providers: [FlowService, FlowDialogService], imports: [[
2038
- i9.CommonModule,
2241
+ i2$1.SdkCoreModule,
2242
+ DocGenModule] });
2243
+ FlowModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, providers: [FlowService, FlowDialogService, FlowDocGenService], imports: [[
2244
+ i8.CommonModule,
2039
2245
  FlowRoutingModule,
2040
- i1$2.ApiModule,
2041
- i4.LauncherModule,
2042
- i3$1.LoaderModule,
2246
+ i2$2.ApiModule,
2247
+ i1$1.LauncherModule,
2248
+ i3.LoaderModule,
2043
2249
  FlowHeaderModule,
2044
2250
  FlowDialogModule,
2045
2251
  i2$1.SdkCoreModule,
2252
+ DocGenModule,
2046
2253
  ]] });
2047
2254
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, decorators: [{
2048
2255
  type: i0.NgModule,
2049
2256
  args: [{
2050
2257
  declarations: [FlowComponent],
2051
2258
  imports: [
2052
- i9.CommonModule,
2259
+ i8.CommonModule,
2053
2260
  FlowRoutingModule,
2054
- i1$2.ApiModule,
2055
- i4.LauncherModule,
2056
- i3$1.LoaderModule,
2261
+ i2$2.ApiModule,
2262
+ i1$1.LauncherModule,
2263
+ i3.LoaderModule,
2057
2264
  FlowHeaderModule,
2058
2265
  FlowDialogModule,
2059
2266
  i2$1.SdkCoreModule,
2267
+ DocGenModule,
2060
2268
  ],
2061
- providers: [FlowService, FlowDialogService],
2269
+ providers: [FlowService, FlowDialogService, FlowDocGenService],
2062
2270
  }]
2063
2271
  }] });
2064
2272