@veloceapps/sdk 9.0.0-8 → 10.0.0-0
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.
- package/core/modules/configuration/services/configuration-state.service.d.ts +5 -3
 - package/core/services/flow-info.service.d.ts +1 -1
 - package/core/services/quote-draft.service.d.ts +3 -1
 - package/esm2020/cms/components/preview/preview.component.mjs +3 -4
 - package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +67 -37
 - package/esm2020/core/modules/configuration/services/configuration.service.mjs +8 -3
 - package/esm2020/core/services/flow-info.service.mjs +6 -8
 - package/esm2020/core/services/quote-draft.service.mjs +13 -8
 - package/esm2020/src/flow.component.mjs +4 -1
 - package/esm2020/src/guards/flow.guard.mjs +2 -3
 - package/esm2020/src/pages/product/product.component.mjs +2 -2
 - package/fesm2015/veloceapps-sdk-cms.mjs +2 -4
 - package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
 - package/fesm2015/veloceapps-sdk-core.mjs +97 -54
 - package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
 - package/fesm2015/veloceapps-sdk.mjs +6 -3
 - package/fesm2015/veloceapps-sdk.mjs.map +1 -1
 - package/fesm2020/veloceapps-sdk-cms.mjs +2 -3
 - package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
 - package/fesm2020/veloceapps-sdk-core.mjs +89 -52
 - package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
 - package/fesm2020/veloceapps-sdk.mjs +5 -3
 - package/fesm2020/veloceapps-sdk.mjs.map +1 -1
 - package/package.json +4 -4
 - package/src/flow.component.d.ts +3 -1
 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"veloceapps-sdk.mjs","sources":["../../../../libs/sdk/src/constants.ts","../../../../libs/sdk/src/components/dialog/dialog.component.ts","../../../../libs/sdk/src/components/dialog/dialog.component.html","../../../../libs/sdk/src/components/dialog/dialog.module.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.html","../../../../libs/sdk/src/components/doc-gen/doc-gen.module.ts","../../../../libs/sdk/src/components/guided-selling/guided-selling.component.ts","../../../../libs/sdk/src/components/guided-selling/guided-selling.component.html","../../../../libs/sdk/src/components/guided-selling/guided-selling.module.ts","../../../../libs/sdk/src/components/flow-header/flow-header.component.ts","../../../../libs/sdk/src/components/flow-header/flow-header.component.html","../../../../libs/sdk/src/components/flow-header/flow-header.module.ts","../../../../libs/sdk/src/services/flow-router.service.ts","../../../../libs/sdk/src/services/flow-dialog.service.ts","../../../../libs/sdk/src/services/flow.service.ts","../../../../libs/sdk/src/services/guided-selling.service.ts","../../../../libs/sdk/src/flow.component.ts","../../../../libs/sdk/src/flow.component.html","../../../../libs/sdk/src/utils/flow.utils.ts","../../../../libs/sdk/src/guards/context.guard.ts","../../../../libs/sdk/src/guards/flow.guard.ts","../../../../libs/sdk/src/guards/product-unload.guard.ts","../../../../libs/sdk/src/guards/root.guard.ts","../../../../libs/sdk/src/pages/assets/assets.component.ts","../../../../libs/sdk/src/pages/assets/assets.component.html","../../../../libs/sdk/src/pages/assets/assets.module.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.html","../../../../libs/sdk/src/pages/catalog/catalog.module.ts","../../../../libs/sdk/src/pages/debug/debug.component.ts","../../../../libs/sdk/src/pages/debug/debug.component.html","../../../../libs/sdk/src/pages/debug/debug.module.ts","../../../../libs/sdk/src/pages/product/product.component.ts","../../../../libs/sdk/src/pages/product/product.component.html","../../../../libs/sdk/src/pages/product/product.module.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.html","../../../../libs/sdk/src/pages/record-not-found/record-not-found.module.ts","../../../../libs/sdk/src/pages/remote/remote.component.ts","../../../../libs/sdk/src/pages/remote/remote.component.html","../../../../libs/sdk/src/pages/remote/remote.module.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.html","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.module.ts","../../../../libs/sdk/src/resolvers/flow.resolver.ts","../../../../libs/sdk/src/resolvers/quote.resolver.ts","../../../../libs/sdk/src/flow-routing.module.ts","../../../../libs/sdk/src/services/doc-gen.service.ts","../../../../libs/sdk/src/configure-primeng.ts","../../../../libs/sdk/src/flow.module.ts","../../../../libs/sdk/veloceapps-sdk.ts"],"sourcesContent":["export const VELOCE_FLOW_ROOT_ROUTE = 'VELOCE_FLOW_ROOT_ROUTE';\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { FlowDialogConfig } from './dialog.types';\n\n@Component({\n  selector: 'vl-flow-dialog',\n  templateUrl: './dialog.component.html',\n  styleUrls: ['./dialog.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowDialogComponent {\n  public config: FlowDialogConfig;\n\n  constructor(private dialogConfig: DynamicDialogConfig, private ref: DynamicDialogRef) {\n    this.config = this.dialogConfig.data.config;\n  }\n\n  public cancelHandler(): void {\n    if (this.config.oppositeButtonActions) {\n      this.ref.close(true);\n    } else {\n      this.ref.close();\n    }\n  }\n\n  public confirmHandler(): void {\n    if (this.config.oppositeButtonActions) {\n      this.ref.close();\n    } else {\n      this.ref.close(true);\n    }\n  }\n}\n","<div class=\"header\">\n  <div class=\"title\">\n    {{ config.title }}\n  </div>\n\n  <i class=\"vl-icon vl-cross\" (click)=\"cancelHandler()\"></i>\n</div>\n\n<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport { FlowDialogComponent } from './dialog.component';\n\n@NgModule({\n  declarations: [FlowDialogComponent],\n  imports: [CommonModule, ButtonModule],\n  exports: [FlowDialogComponent],\n})\nexport class FlowDialogModule {}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, Optional } from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe, extendElementMetadata, extractElementMetadata } from '@veloceapps/sdk/cms';\nimport {\n  ContextService,\n  FlowCustomization,\n  FlowInfoService,\n  FlowStateService,\n  FLOW_CUSTOMIZATION,\n} from '@veloceapps/sdk/core';\nimport {\n  BehaviorSubject,\n  catchError,\n  filter,\n  first,\n  map,\n  Observable,\n  of,\n  Subject,\n  switchMap,\n  takeUntil,\n  tap,\n} from 'rxjs';\n\n@Component({\n  selector: 'vl-flow-doc-gen',\n  templateUrl: './doc-gen.component.html',\n  styleUrls: ['./doc-gen.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DocGenComponent implements OnDestroy {\n  public uiDefinition$ = new BehaviorSubject<UIDefinition | null>(null);\n\n  private templateApiName = '';\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private templatesApi: UITemplatesApiService,\n    private contextService: ContextService,\n    private flowStateService: FlowStateService,\n    private flowInfo: FlowInfoService,\n    private toastService: ToastService,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    // wait until flow is initialized\n    this.flowStateService\n      .isInitialized$()\n      .pipe(\n        filter(Boolean),\n        first(),\n        tap(() => this.initialize()),\n        takeUntil(this.destroy$),\n      )\n      .subscribe();\n  }\n\n  public ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  private initialize(): void {\n    this.templateApiName = this.flowInfo.flow?.properties.templates?.docGen ?? '';\n\n    if (this.flowInfo.isLegacy && !this.templateApiName) {\n      return;\n    }\n\n    this.generateUIDefinition$()\n      .pipe(\n        tap(uiDef => {\n          if (!uiDef) {\n            throw new Error(`Component with name '${this.templateApiName}' not found.`);\n          }\n\n          this.uiDefinition$.next(uiDef);\n        }),\n        catchError(err => {\n          const message = 'Failed to resolve DocGen component. ' + (err.message ?? '');\n          this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n          return of();\n        }),\n        takeUntil(this.destroy$),\n      )\n      .subscribe();\n  }\n\n  private getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n    if (!this.customizationService?.getTemplateComponents) {\n      return of(undefined);\n    }\n\n    return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n      map(components => {\n        if (!components) {\n          return;\n        }\n\n        return components.map<ComponentAttachments>(component => ({\n          html: component.html,\n          css: component.css,\n          js: component.js,\n          json: component.json,\n        }));\n      }),\n    );\n  }\n\n  private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n    const template = this.flowInfo.templates.DOCGEN;\n    if (!template) {\n      return of(undefined);\n    }\n\n    return this.templatesApi.fetchComponentsAttachments$(template.id);\n  }\n\n  private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n    return of(undefined).pipe(\n      tap(() => {\n        if (!this.templateApiName) {\n          throw new Error(\"Flow 'docGen' template is not defined.\");\n        }\n      }),\n      switchMap(() => this.getLocalMeta$()),\n      switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n      map(metaList => {\n        if (!metaList) {\n          return;\n        }\n\n        const headerId = this.contextService.resolve().properties.Id ?? null;\n        const patchedMetaList = metaList.map(component => {\n          if (!component.js) {\n            return component;\n          }\n\n          const metadata = extractElementMetadata(component.js);\n          const script = extendElementMetadata(component.js, {\n            inputs: {\n              ...metadata.inputs,\n              Id: headerId ? `\"${headerId}\"` : null,\n            },\n          });\n\n          return {\n            ...component,\n            js: script,\n          };\n        });\n\n        const uiDef: UIDefinition = {\n          name: '',\n          createdTimestamp: 0,\n          primary: true,\n          type: 'DEFAULT',\n          version: 2,\n          children: patchedMetaList.map(child => ({\n            children: [],\n            template: child.html && btoaSafe(child.html),\n            script: child.js && btoaSafe(child.js),\n            styles: child.css && btoaSafe(child.css),\n          })),\n        };\n\n        return uiDef;\n      }),\n    );\n  }\n}\n","<ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n  <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { DocGenComponent } from './doc-gen.component';\n\n@NgModule({\n  declarations: [DocGenComponent],\n  imports: [CommonModule, PreviewModule],\n  exports: [DocGenComponent],\n})\nexport class DocGenModule {}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, Optional } from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FlowStateService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport {\n  BehaviorSubject,\n  catchError,\n  filter,\n  first,\n  map,\n  Observable,\n  of,\n  Subject,\n  switchMap,\n  takeUntil,\n  tap,\n} from 'rxjs';\n\n@Component({\n  selector: 'vl-flow-guided-selling',\n  templateUrl: './guided-selling.component.html',\n  styleUrls: ['./guided-selling.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GuidedSellingComponent implements OnDestroy {\n  public uiDefinition$ = new BehaviorSubject<UIDefinition | null>(null);\n\n  private templateApiName = '';\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private templatesApi: UITemplatesApiService,\n    private flowStateService: FlowStateService,\n    private flowInfo: FlowInfoService,\n    private toastService: ToastService,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    // wait until flow is initialized\n    this.flowStateService\n      .isInitialized$()\n      .pipe(\n        filter(Boolean),\n        first(),\n        tap(() => this.initialize()),\n        takeUntil(this.destroy$),\n      )\n      .subscribe();\n  }\n\n  public ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  private initialize(): void {\n    this.templateApiName = this.flowInfo.flow?.properties.templates?.guidedSelling ?? '';\n\n    if (this.flowInfo.isLegacy && !this.templateApiName) {\n      return;\n    }\n\n    this.generateUIDefinition$()\n      .pipe(\n        tap(uiDef => {\n          if (!uiDef) {\n            throw new Error(`Component with name '${this.templateApiName}' not found.`);\n          }\n\n          this.uiDefinition$.next(uiDef);\n        }),\n        catchError(err => {\n          const message = 'Failed to resolve Guided Selling component. ' + (err.message ?? '');\n          this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n          return of();\n        }),\n        takeUntil(this.destroy$),\n      )\n      .subscribe();\n  }\n\n  private getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n    if (!this.customizationService?.getTemplateComponents) {\n      return of(undefined);\n    }\n\n    return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n      map(components => {\n        if (!components) {\n          return;\n        }\n\n        return components.map<ComponentAttachments>(component => ({\n          html: component.html,\n          css: component.css,\n          js: component.js,\n          json: component.json,\n        }));\n      }),\n    );\n  }\n\n  private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n    const template = this.flowInfo.templates.GUIDED_SELLING;\n    if (!template) {\n      return of(undefined);\n    }\n\n    return this.templatesApi.fetchComponentsAttachments$(template.id);\n  }\n\n  private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n    return of(undefined).pipe(\n      tap(() => {\n        if (!this.templateApiName) {\n          throw new Error(\"Flow 'guidedSelling' template is not defined.\");\n        }\n      }),\n      switchMap(() => this.getLocalMeta$()),\n      switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n      map(metaList => {\n        if (!metaList) {\n          return;\n        }\n\n        const uiDef: UIDefinition = {\n          name: '',\n          createdTimestamp: 0,\n          primary: true,\n          type: 'DEFAULT',\n          version: 2,\n          children: metaList.map(meta => ({\n            children: [],\n            template: meta.html && btoaSafe(meta.html),\n            script: meta.js && btoaSafe(meta.js),\n            styles: meta.css && btoaSafe(meta.css),\n          })),\n        };\n\n        return uiDef;\n      }),\n    );\n  }\n}\n","<ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n  <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { GuidedSellingComponent } from './guided-selling.component';\n\n@NgModule({\n  declarations: [GuidedSellingComponent],\n  imports: [CommonModule, PreviewModule],\n  exports: [GuidedSellingComponent],\n})\nexport class GuidedSellingModule {}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, Optional } from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FlowStateService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport {\n  BehaviorSubject,\n  catchError,\n  filter,\n  first,\n  map,\n  Observable,\n  of,\n  Subject,\n  switchMap,\n  takeUntil,\n  tap,\n} from 'rxjs';\n\n@Component({\n  selector: 'vl-flow-new-header',\n  templateUrl: './flow-header.component.html',\n  styleUrls: ['./flow-header.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowHeaderComponent implements OnDestroy {\n  public uiDefinition$ = new BehaviorSubject<UIDefinition | null>(null);\n\n  private templateApiName = '';\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private templatesApi: UITemplatesApiService,\n    private flowStateService: FlowStateService,\n    private flowInfo: FlowInfoService,\n    private toastService: ToastService,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    // wait until flow is initialized\n    this.flowStateService\n      .isInitialized$()\n      .pipe(\n        filter(Boolean),\n        first(),\n        tap(() => this.initialize()),\n        takeUntil(this.destroy$),\n      )\n      .subscribe();\n  }\n\n  public ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  private initialize(): void {\n    this.templateApiName = this.flowInfo.flow?.properties.templates?.flowHeader ?? '';\n\n    if (this.flowInfo.isLegacy && !this.templateApiName) {\n      return;\n    }\n\n    this.generateUIDefinition$()\n      .pipe(\n        tap(uiDef => {\n          if (!uiDef) {\n            throw new Error(`Component with name '${this.templateApiName}' not found.`);\n          }\n\n          this.uiDefinition$.next(uiDef);\n        }),\n        catchError(err => {\n          const message = 'Failed to resolve Flow Header component. ' + (err.message ?? '');\n          this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n          return of();\n        }),\n        takeUntil(this.destroy$),\n      )\n      .subscribe();\n  }\n\n  private getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n    if (!this.customizationService?.getTemplateComponents) {\n      return of(undefined);\n    }\n\n    return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n      map(components => {\n        if (!components) {\n          return;\n        }\n\n        return components.map<ComponentAttachments>(component => ({\n          html: component.html,\n          css: component.css,\n          js: component.js,\n          json: component.json,\n        }));\n      }),\n    );\n  }\n\n  private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n    const template = this.flowInfo.templates.FLOW_HEADER;\n    if (!template) {\n      return of(undefined);\n    }\n\n    return this.templatesApi.fetchComponentsAttachments$(template.id);\n  }\n\n  private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n    return of(undefined).pipe(\n      tap(() => {\n        if (!this.templateApiName) {\n          throw new Error(\"Flow 'flowHeader' template is not defined.\");\n        }\n      }),\n      switchMap(() => this.getLocalMeta$()),\n      switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n      map(metaList => {\n        if (!metaList) {\n          return;\n        }\n\n        const uiDef: UIDefinition = {\n          name: '',\n          createdTimestamp: 0,\n          primary: true,\n          type: 'DEFAULT',\n          version: 2,\n          children: metaList.map(meta => ({\n            children: [],\n            template: meta.html && btoaSafe(meta.html),\n            script: meta.js && btoaSafe(meta.js),\n            styles: meta.css && btoaSafe(meta.css),\n          })),\n        };\n\n        return uiDef;\n      }),\n    );\n  }\n}\n","<ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n  <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { FlowHeaderComponent } from './flow-header.component';\n\n@NgModule({\n  declarations: [FlowHeaderComponent],\n  imports: [CommonModule, PreviewModule],\n  exports: [FlowHeaderComponent],\n})\nexport class FlowNewHeaderModule {}\n","import { Injectable } from '@angular/core';\nimport {\n  ActivatedRoute,\n  ActivatedRouteSnapshot,\n  Event,\n  NavigationCancel,\n  NavigationEnd,\n  NavigationError,\n  NavigationStart,\n  Params,\n  Router,\n} from '@angular/router';\nimport { SalesforceIdUtils, UITemplateType } from '@veloceapps/core';\nimport { FlowAction } from '@veloceapps/sdk/cms';\nimport { ContextService, FlowInfoService, FlowStateService, IntegrationState } from '@veloceapps/sdk/core';\nimport { Observable, distinctUntilChanged, filter, from, map, of, shareReplay, startWith, tap } from 'rxjs';\nimport { VELOCE_FLOW_ROOT_ROUTE } from '../constants';\nimport { RouteWithId } from '../types/route.types';\n\n@Injectable({ providedIn: 'root' })\nexport class FlowRouterService {\n  private routeChange$: Observable<Event>;\n  private lastChildParams$: Observable<Params>;\n  private lastChildRoute$: Observable<ActivatedRouteSnapshot>;\n  private urlHistory: string[] = [];\n\n  public loading$: Observable<boolean>;\n\n  constructor(\n    private router: Router,\n    private route: ActivatedRoute,\n    private contextService: ContextService,\n    private integrationState: IntegrationState,\n    private flowInfoService: FlowInfoService,\n    private flowStateService: FlowStateService,\n  ) {\n    this.routeChange$ = this.router.events.pipe(\n      filter(e => e instanceof NavigationEnd),\n      shareReplay(),\n    );\n\n    this.lastChildParams$ = this.watchLastChildParams$(this.route).pipe(\n      startWith(this.getLastChildParams(this.route.snapshot)),\n      shareReplay(),\n    );\n    this.lastChildRoute$ = this.watchLastChildRoute$(this.route).pipe(\n      startWith(this.getLastChildRouteSnapshot(this.route.snapshot)),\n      shareReplay(),\n    );\n\n    this.loading$ = this.router.events.pipe(\n      filter(\n        e =>\n          e instanceof NavigationStart ||\n          e instanceof NavigationCancel ||\n          e instanceof NavigationEnd ||\n          e instanceof NavigationError,\n      ),\n      map(e => e instanceof NavigationStart),\n      startWith(false),\n      distinctUntilChanged(),\n    );\n\n    this.routeChange$.subscribe(() => {\n      this.urlHistory.push(this.router.url);\n\n      // Close Guided Selling when user navigates to another flow page\n      this.integrationState.dispatch(FlowAction.CloseGuidedSelling({ keepState: true }));\n    });\n  }\n\n  public getFlowRootRoute(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot | undefined {\n    const path = [...route.pathFromRoot];\n\n    while (path.length) {\n      const parent = path.pop();\n\n      if (!parent) {\n        break;\n      }\n\n      if ((parent.routeConfig as RouteWithId)?.id === VELOCE_FLOW_ROOT_ROUTE) {\n        return parent;\n      }\n    }\n\n    return;\n  }\n\n  public getFlowRootPath(route: ActivatedRouteSnapshot): string {\n    const rootRoute = this.getFlowRootRoute(route);\n    if (!rootRoute) {\n      return '';\n    }\n\n    const path = rootRoute.pathFromRoot\n      .map(r => r.url[0])\n      .filter(Boolean)\n      .join('/');\n\n    return '/' + path;\n  }\n\n  public get route$(): Observable<ActivatedRouteSnapshot> {\n    return this.lastChildRoute$;\n  }\n\n  public get params$(): Observable<Params> {\n    return this.lastChildParams$;\n  }\n\n  public get params(): Params {\n    return this.getLastChildParams(this.route.snapshot);\n  }\n\n  public getLastChildRoute = (route: ActivatedRoute): ActivatedRoute => {\n    return route.firstChild ? this.getLastChildRoute(route.firstChild) : route;\n  };\n\n  public getNthChildRoute = (route: ActivatedRoute, index: number): ActivatedRoute => {\n    if (index <= 0) {\n      return route;\n    }\n\n    return route.firstChild ? this.getNthChildRoute(route.firstChild, index - 1) : route;\n  };\n\n  public getLastChildRouteSnapshot = (route: ActivatedRouteSnapshot): ActivatedRouteSnapshot => {\n    return route.firstChild ? this.getLastChildRouteSnapshot(route.firstChild) : route;\n  };\n\n  public watchLastChildRoute$ = (route: ActivatedRoute): Observable<ActivatedRouteSnapshot> => {\n    return this.routeChange$.pipe(map(() => this.getLastChildRouteSnapshot(route.snapshot)));\n  };\n\n  public getLastChildParams = (route: ActivatedRouteSnapshot): Params => {\n    return route.firstChild ? this.getLastChildParams(route.firstChild) : route.params;\n  };\n\n  public watchLastChildParams$ = (route: ActivatedRoute): Observable<Params> => {\n    return this.routeChange$.pipe(map(() => this.getLastChildParams(route.snapshot)));\n  };\n\n  public getFlowSubpath$ = (): Observable<string> => {\n    return this.route$.pipe(\n      map(route => {\n        const url = route.url.join('/');\n        const flowRootUrl = this.getFlowRootPath(route);\n        return url.replace(flowRootUrl, '');\n      }),\n    );\n  };\n\n  public isConfigurationRoute$(): Observable<boolean> {\n    return this.getFlowSubpath$().pipe(map(url => url.startsWith('product')));\n  }\n\n  public isCartRoute$(): Observable<boolean> {\n    return this.getFlowSubpath$().pipe(map(url => url.startsWith('cart')));\n  }\n\n  public isCatalogRoute$(): Observable<boolean> {\n    return this.getFlowSubpath$().pipe(map(url => url.startsWith('catalog')));\n  }\n\n  public isAssetsRoute$(): Observable<boolean> {\n    return this.getFlowSubpath$().pipe(map(url => url.startsWith('assets')));\n  }\n\n  public navigateBack(): void {\n    const prevUrl = this.urlHistory[this.urlHistory.length - 2];\n\n    if (prevUrl) {\n      this.router.navigateByUrl(prevUrl);\n    }\n  }\n\n  public navigateTo(path: string, productId?: string, lineItemId?: string): void {\n    if (path === 'shopping-cart') {\n      this.navigateToShoppingCart();\n    } else if (path === 'catalog') {\n      this.navigateToCatalog();\n    } else if (path === 'assets') {\n      this.navigateToAssets();\n    } else if (path === 'product' && productId) {\n      this.navigateToProductConfiguration(productId, lineItemId);\n    }\n  }\n\n  public navigateToProductConfiguration(productId: string, lineItemId?: string): void {\n    let updateContext$;\n    if (this.flowInfoService.isLegacy) {\n      updateContext$ = of(undefined).pipe(\n        tap(() => {\n          this.contextService.update({ properties: { productId, lineItemId: lineItemId ?? '' } });\n        }),\n      );\n    } else {\n      updateContext$ = this.flowStateService.dispatch$(UITemplateType.FLOW_ENGINE, 'UPDATE_CONTEXT_PROPERTIES', {\n        productId,\n        lineItemId: lineItemId ?? '',\n      });\n    }\n    updateContext$\n      .pipe(\n        tap(() => {\n          const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n          const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n          this.router.navigate([flowRouteUrl, 'product'], {\n            queryParams: { ...routeSnapshot.queryParams, productId },\n          });\n        }),\n      )\n      .subscribe();\n  }\n\n  public navigateToShoppingCart(): void {\n    const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n    const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n    this.router.navigate([flowRouteUrl, 'cart'], { queryParams: routeSnapshot.queryParams });\n  }\n\n  public navigateToCatalog(): void {\n    const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n    const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n    this.router.navigate([flowRouteUrl, 'catalog'], { queryParams: routeSnapshot.queryParams });\n  }\n\n  public navigateToAssets(): void {\n    const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n    const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n    this.router.navigate([flowRouteUrl, 'assets'], { queryParams: routeSnapshot.queryParams });\n  }\n\n  public showErrorPage$(message: string, details?: string[]): Observable<false> {\n    const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n    const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n    return from(\n      this.router.navigate([flowRouteUrl, '404'], {\n        state: { message, type: 'error', ...(details && { details }) },\n        replaceUrl: true,\n      }),\n    ).pipe(map(() => false));\n  }\n\n  public switchObject(id: string): void {\n    const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n    const route = this.getLastChildRoute(this.route);\n\n    const objName = SalesforceIdUtils.getSfObjectNameById(id);\n\n    const queryParams = {\n      quoteId: objName === 'Quote' ? id : undefined,\n      accountId: objName === 'Account' ? id : undefined,\n      orderId: objName === 'Order' ? id : undefined,\n    };\n    this.router.navigate([], { relativeTo: route, queryParams: { ...routeSnapshot.queryParams, ...queryParams } });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { getMaxRenewalTermsValue, mapShoppingCartSettings } from '@veloceapps/core';\nimport { ContextService, RuntimeSettingsService } from '@veloceapps/sdk/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { Observable } from 'rxjs';\nimport { FlowDialogComponent } from '../components/dialog/dialog.component';\nimport { FlowDialogConfig } from '../components/dialog/dialog.types';\n\n@Injectable()\nexport class FlowDialogService {\n  constructor(\n    private dialogService: DialogService,\n    private contextService: ContextService,\n    private runtimeSettings: RuntimeSettingsService,\n  ) {}\n\n  public show(config: FlowDialogConfig): Observable<boolean> {\n    return this.dialogService.open(FlowDialogComponent, {\n      dismissableMask: true,\n      closeOnEscape: true,\n      closable: true,\n      showHeader: false,\n      width: '320px',\n      data: { config },\n      styleClass: 'flow-dialog',\n    }).onClose;\n  }\n\n  public showEmptyCartDialog(): Observable<boolean> {\n    return this.show({\n      title: 'No Products in Quote',\n      description: 'There are no products in your Quote. To save a Quote, add at least one product.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showReadonlyModeDialog(): Observable<boolean> {\n    const ctx = this.contextService.resolve();\n    const objectName = ctx.mode ? ctx.mode[0]?.toUpperCase() + ctx.mode.substring(1).toLowerCase() : 'Object';\n\n    return this.show({\n      title: 'Error',\n      description: `${objectName} Cannot be Saved`,\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showQuoteReadonlyModeDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Quote Cannot be Saved',\n      description:\n        'It is only possible to save quotes with the “Draft” status. Please create a new quote to make and save changes.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showQuoteOutsideShoppingCartDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Quote Cannot be Saved',\n      description: 'It is only possible to save quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showAccountNoChangesDialog(): Observable<boolean> {\n    return this.show({\n      title: 'No Changes to Save',\n      description: 'There are no changes since the last update. Please make changes to proceed.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showUnsavedChangesDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Unsaved Changes',\n      description: 'Are you sure you want to leave this page and discard your unsaved changes?',\n      primaryButton: 'Keep Editing',\n      secondaryButton: 'Discard Changes',\n      oppositeButtonActions: true,\n    });\n  }\n\n  public showReadonlyQuoteSubmitFailureDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Cannot Submit for Approval',\n      description:\n        'It is only possible to submit for approval quotes with the “Draft“ status. Please create a new quote to proceed.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showOutsideShoppingCartQuoteSubmitFailureDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Cannot Submit for Approval',\n      description:\n        'It is only possible to submit quotes for approval from the Shopping Cart. To proceed, go to the Shopping Cart.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showAccountSubmitFailureDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Save Changes',\n      description:\n        'To submit for approval, save the quote first, and then submit it for approval from the Shopping Cart.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showDocgenAccountUnsavedChangesDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Save Quote',\n      description:\n        'To generate a document, save the quote first, and then generate the document from the Shopping Cart.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showDocgenReadonlyDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Document Generation is not Available',\n      description:\n        'It is only possible to generate documents for quotes with the “Draft” status. Please create a new quote to generate a document.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showDocgenOutsideShoppingCartDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Document Generation is not Available',\n      description:\n        'It is only possible to generate documents for quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showDocgenUnsavedChangesDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Unsaved Changes',\n      description: 'To generate a document, save the quote first.',\n      primaryButton: 'Save and proceed',\n      secondaryButton: 'Cancel',\n    });\n  }\n\n  public showTermsLimitReachedDialog(): Observable<boolean> {\n    const shoppingCartSettings = mapShoppingCartSettings(this.runtimeSettings.getShoppingCartSettings() || []);\n    const maxRenewalTerms = getMaxRenewalTermsValue(shoppingCartSettings);\n    return this.show({\n      title: 'Terms Limit Reached',\n      description: `You have reached the term quantity limit: ${maxRenewalTerms}. You can increase the limit in the Shopping Cart Settings.`,\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showDialog(dialog: keyof Omit<FlowDialogService, 'show' | 'constructor'>): Observable<boolean> {\n    const dialogFunction = this[dialog].bind(this);\n    return dialogFunction(dialog);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { LineItem, UITemplateType } from '@veloceapps/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport {\n  ConfigurationService,\n  ConfigurationStateService,\n  FlowConfigurationService,\n  FlowInfoService,\n  FlowStateService,\n  QuoteDraftService,\n} from '@veloceapps/sdk/core';\nimport { map, Observable, of, Subject, switchMap, take, takeUntil, tap } from 'rxjs';\nimport { FlowDialogService } from './flow-dialog.service';\nimport { FlowRouterService } from './flow-router.service';\n\n@Injectable()\nexport class FlowService {\n  private cleanup$ = new Subject<void>();\n\n  constructor(\n    private integrationState: IntegrationState,\n    private flowRouterService: FlowRouterService,\n    private quoteDraftService: QuoteDraftService,\n    private configurationService: ConfigurationService,\n    private configurationStateService: ConfigurationStateService,\n    private flowDialogService: FlowDialogService,\n    private flowConfigurationService: FlowConfigurationService,\n    private flowInfoService: FlowInfoService,\n    private flowStateService: FlowStateService,\n  ) {}\n\n  public cleanup(): void {\n    this.cleanup$.next();\n  }\n\n  public initSubscriptions(): void {\n    this.integrationState\n      .listen$<Parameters<typeof FlowAction.ConfigureProductAction>[0]>(FlowAction.FLOW_CONFIGURE_PRODUCT)\n      .pipe(\n        switchMap(payload => {\n          if (this.flowInfoService.isLegacy) {\n            const productId =\n              payload.productId ??\n              this.quoteDraftService.currentState.find(li => li.id === payload.lineItemId)?.productId;\n\n            return of({ ...payload, productId });\n          }\n\n          return this.prepareConfiguration$(payload.lineItemId).pipe(map(() => payload));\n        }),\n        tap(payload => {\n          if (payload.productId) {\n            this.flowRouterService.navigateToProductConfiguration(payload.productId, payload.lineItemId);\n          } else {\n            console.warn(\"Parameter 'productId' is needed to start configuration\");\n          }\n        }),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$<{ id: string }>(FlowAction.FLOW_SWITCH_OBJECT)\n      .pipe(\n        tap(payload => {\n          this.flowRouterService.switchObject(payload.id);\n        }),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.FLOW_NAVIGATE_BACK)\n      .pipe(\n        switchMap(() => this.configurationStateService.cancelConfiguration()),\n        tap(() => this.flowRouterService.navigateBack()),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.FLOW_NAVIGATE_TO)\n      .pipe(\n        switchMap(payload => this.configurationStateService.cancelConfiguration().pipe(map(() => payload))),\n        tap(payload => {\n          if (payload.path === 'product') {\n            this.integrationState.dispatch(FlowAction.ConfigureProductAction(payload));\n          } else {\n            this.flowRouterService.navigateTo(payload.path, payload.productId, payload.lineItemId);\n          }\n        }),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.OPEN_DIALOG)\n      .pipe(\n        switchMap(payload => this.flowDialogService.showDialog(payload.dialog).pipe(take(1))),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe(dialogResult => {\n        this.integrationState.patchState({ dialogResult });\n      });\n\n    this.integrationState\n      .listen$(FlowAction.FLOW_NAVIGATE_TO_CATALOG)\n      .pipe(\n        tap(() => this.flowRouterService.navigateToCatalog()),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.FLOW_NAVIGATE_TO_SHOPPING_CART)\n      .pipe(\n        tap(() => this.flowRouterService.navigateToShoppingCart()),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)\n      .pipe(\n        switchMap(() => {\n          if (this.flowInfoService.isLegacy) {\n            return this.legacyApplyConfiguration();\n          } else {\n            return this.configurationStateService.saveConfiguration(true).pipe(\n              switchMap(() => this.configurationStateService.cancelConfiguration()),\n              switchMap(() =>\n                this.flowStateService.dispatch$(UITemplateType.FLOW_ENGINE, 'MODIFY_ASSETS', {\n                  addConfiguringAssetId: true,\n                  enable: true,\n                }),\n              ),\n            );\n          }\n        }),\n        tap(() => {\n          this.configurationService.hasUnsavedChanges = false;\n          this.flowRouterService.navigateToShoppingCart();\n        }),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.updateFlowParams();\n  }\n\n  private updateFlowParams(): void {\n    this.flowRouterService\n      .getFlowSubpath$()\n      .pipe(\n        map(path => path.split('/')?.[0]),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe(flowPath => this.integrationState.patchState({ flowPath }));\n\n    this.flowRouterService.route$\n      .pipe(\n        map(path => path.queryParams['productId']),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe(productId => this.integrationState.patchState({ productId }));\n  }\n\n  private prepareConfiguration$(lineItemId?: string): Observable<void> {\n    if (!lineItemId) {\n      return of(undefined);\n    }\n\n    return this.flowStateService.dispatch$(UITemplateType.FLOW_ENGINE, 'UPDATE_PRICE_LIST', {\n      lineItemId,\n    });\n  }\n\n  private legacyApplyConfiguration(): Observable<void> {\n    const quoteDraft = this.quoteDraftService.quoteDraft;\n    const lineItem = this.configurationService.getSnapshot();\n\n    if (!quoteDraft || !lineItem) {\n      return of(undefined);\n    }\n\n    const isNewLineItem = quoteDraft.currentState.every(li => li.id !== lineItem.id);\n\n    let updatedState: LineItem[];\n    if (isNewLineItem) {\n      updatedState = [...quoteDraft.currentState, lineItem];\n    } else {\n      updatedState = quoteDraft.currentState.map(li => (li.id === lineItem.id ? lineItem : li));\n    }\n\n    return this.flowConfigurationService.calculate$({ ...quoteDraft, currentState: updatedState });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { FlowAction } from '@veloceapps/sdk/cms';\nimport { IntegrationState } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Subject, takeUntil, tap } from 'rxjs';\n\n@Injectable()\nexport class FlowGuidedSellingService {\n  private cleanup$ = new Subject<void>();\n  private isVisibleSubj$ = new BehaviorSubject(false);\n\n  public isVisible$ = this.isVisibleSubj$.asObservable();\n\n  constructor(private integrationState: IntegrationState) {\n    this.initSubscriptions();\n  }\n\n  public cleanup(): void {\n    this.cleanup$.next();\n  }\n\n  private initSubscriptions(): void {\n    this.integrationState\n      .listen$(FlowAction.OPEN_GUIDED_SELLING)\n      .pipe(\n        tap(() => this.isVisibleSubj$.next(true)),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.CLOSE_GUIDED_SELLING)\n      .pipe(\n        tap(() => this.isVisibleSubj$.next(false)),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n  }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FlowInfoService } from '@veloceapps/sdk/core';\nimport { combineLatest, map, Observable } from 'rxjs';\nimport { FlowService } from './services';\nimport { FlowRouterService } from './services/flow-router.service';\nimport { FlowGuidedSellingService } from './services/guided-selling.service';\n\n@Component({\n  selector: 'vl-flow',\n  templateUrl: './flow.component.html',\n  styleUrls: ['./flow.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowComponent {\n  public isLoading$: Observable<boolean>;\n  public showHeader$: Observable<boolean>;\n  public isStandalone$: Observable<boolean>;\n  public guidedSellingVisible$: Observable<boolean>;\n\n  constructor(\n    private routerService: FlowRouterService,\n    private flowService: FlowService,\n    private flowInfo: FlowInfoService,\n    private guidedSellingService: FlowGuidedSellingService,\n  ) {\n    this.isLoading$ = this.routerService.loading$;\n\n    this.showHeader$ = combineLatest([this.routerService.route$, this.flowInfo.flow$]).pipe(\n      map(([route, flow]) => route.data['showHeader'] && !flow?.properties.standalone),\n    );\n\n    this.isStandalone$ = this.flowInfo.flow$.pipe(map(flow => Boolean(flow?.properties.standalone)));\n    this.guidedSellingVisible$ = this.guidedSellingService.isVisible$;\n\n    this.flowService.initSubscriptions();\n  }\n}\n","<vl-flow-new-header *ngIf=\"showHeader$ | async\"></vl-flow-new-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\n  <div class=\"guided-selling\" [ngClass]=\"{ hidden: (guidedSellingVisible$ | async) === false }\">\n    <vl-flow-guided-selling *ngIf=\"(isStandalone$ | async) !== true\"></vl-flow-guided-selling>\n  </div>\n</div>\n\n<ng-container *ngIf=\"(isStandalone$ | async) !== true\">\n  <vl-flow-doc-gen></vl-flow-doc-gen>\n</ng-container>\n","import { ConfigurationContextMode, ContextProperties, FlowProperties, SalesforceIdUtils } from '@veloceapps/core';\n\nexport const getFlowObjectIdPropertyName = (id: string): string => {\n  const objectName = SalesforceIdUtils.getSfObjectNameById(id);\n\n  switch (objectName) {\n    case 'Account':\n      return 'accountId';\n    case 'Order':\n      return 'orderId';\n    case 'Quote':\n    default:\n      return 'quoteId';\n  }\n};\n\ninterface DefaultPropertiesFnParams {\n  mode?: ConfigurationContextMode;\n  flowParams?: FlowProperties;\n}\n\nexport const getDefaultProperties = (params: DefaultPropertiesFnParams): ContextProperties => {\n  const properties: ContextProperties = {};\n\n  let standalone = params.flowParams?.standalone;\n  if (params.flowParams?.entryPath.includes('/product') || params.mode === ConfigurationContextMode.REMOTE) {\n    standalone = standalone ?? true;\n  }\n\n  if (standalone != null) {\n    properties.standalone = standalone ? 'true' : 'false';\n  }\n\n  return properties;\n};\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router } from '@angular/router';\nimport { ConfigurationContextMode, extractErrorDetails, isVeloceError, RpcMessage, VlWindow } from '@veloceapps/core';\nimport { ContextService, RuntimeSettingsService } from '@veloceapps/sdk/core';\nimport { catchError, forkJoin, map, Observable, of, tap } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\nimport { getDefaultProperties } from '../utils';\n\ndeclare const window: VlWindow;\n\n@Injectable()\nexport class ContextGuard implements CanActivate, CanActivateChild {\n  constructor(\n    protected router: Router,\n    protected routerService: FlowRouterService,\n    protected contextService: ContextService,\n    protected runtimeSettingsService: RuntimeSettingsService,\n  ) {}\n\n  public checkActivation(route: ActivatedRouteSnapshot): Observable<boolean> {\n    const { queryParams } = route;\n    const { accountId, quoteId, orderId } = queryParams;\n    const rpcMessage = window.RPC_MESSAGE;\n    const mode = this.getConfigurationContextMode(accountId, quoteId, orderId, rpcMessage);\n\n    // Restrict if mode is not defined\n    if (mode == null) {\n      return this.routerService.showErrorPage$('Mode is undefined');\n    }\n\n    const headerId = accountId || quoteId || orderId || this.rpcMessageId || 'empty-for-test-mode';\n\n    // Allow if context is already initialized with the same headerId\n    if (this.contextService.isInitialized) {\n      const currentContext = this.contextService.resolve();\n\n      if (headerId && currentContext.headerId === headerId) {\n        return of(true);\n      }\n    }\n\n    // Initialize context and runtime settings\n    return forkJoin([this.contextService.create(headerId, mode), this.runtimeSettingsService.create()]).pipe(\n      tap(([context]) => {\n        this.contextService.update({\n          ...context,\n          properties: {\n            ...context.properties,\n            ...(queryParams ?? {}),\n            ...getDefaultProperties({ mode }),\n          },\n        });\n\n        // Init currency settings\n        this.runtimeSettingsService.initCurrency(context.properties['CurrencyIsoCode']);\n      }),\n      map(() => true),\n      catchError(e => {\n        const message = e instanceof HttpErrorResponse ? e.error.message : e;\n        const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];\n        return this.routerService.showErrorPage$(message, errorDetails);\n      }),\n    );\n  }\n\n  public canActivate(route: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n    return this.checkActivation(route);\n  }\n\n  public canActivateChild(childRoute: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n    return this.checkActivation(childRoute);\n  }\n\n  private get rpcMessageId(): string | undefined {\n    if (!window.RPC_MESSAGE) {\n      return;\n    }\n\n    const rpcMessage: RpcMessage = JSON.parse(window.RPC_MESSAGE);\n    const veloceReferenceId = rpcMessage.configuration?.VeloceReferenceId;\n    const quoteId = rpcMessage.quote?.Id;\n\n    return veloceReferenceId || quoteId;\n  }\n\n  private getConfigurationContextMode(\n    accountId?: string,\n    quoteId?: string,\n    orderId?: string,\n    rpcMessage?: string,\n  ): ConfigurationContextMode | undefined {\n    if (accountId) {\n      return ConfigurationContextMode.ACCOUNT;\n    }\n\n    if (quoteId) {\n      return ConfigurationContextMode.QUOTE;\n    }\n\n    if (orderId) {\n      return ConfigurationContextMode.ORDER;\n    }\n\n    if (rpcMessage) {\n      return ConfigurationContextMode.REMOTE;\n    }\n\n    return;\n  }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, Params } from '@angular/router';\nimport { extractErrorDetails, isVeloceError } from '@veloceapps/core';\nimport {\n  ConfigurationService,\n  ContextService,\n  FlowInfoService,\n  FlowStateService,\n  IntegrationState,\n  QuoteDraftService,\n} from '@veloceapps/sdk/core';\nimport { catchError, map } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\nexport const keepFlowInitialized: CanActivateFn = (route: ActivatedRouteSnapshot) => {\n  const contextService = inject(ContextService);\n  const flowState = inject(FlowStateService);\n  const flowInfoService = inject(FlowInfoService);\n  const routerService = inject(FlowRouterService);\n  const quoteDraft = inject(QuoteDraftService);\n  const configurationService = inject(ConfigurationService);\n  const integrationState = inject(IntegrationState);\n\n  const { flowId } = route.queryParams;\n  const flow = flowInfoService.flow;\n\n  if (flow && flow?.id === flowId) {\n    return true;\n  }\n\n  // Cleanup\n  flowState.cleanup();\n  quoteDraft.reset();\n  configurationService.reset();\n  integrationState.clear();\n  flowInfoService.cleanup();\n  contextService.delete();\n\n  if (!flowId) {\n    return true;\n  }\n\n  const params: Params = { ...route.queryParams, ...flow?.properties.queryParams };\n  return flowInfoService.init$(flowId, params).pipe(\n    map(() => true),\n    catchError(e => {\n      const message = e instanceof HttpErrorResponse ? e.error.message : e;\n      const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];\n      return routerService.showErrorPage$(message, errorDetails);\n    }),\n  );\n};\n","import { Component, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { ConfigurationService, ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Observable, map, of } from 'rxjs';\nimport { FlowDialogService } from '../services/flow-dialog.service';\n\n@Injectable()\nexport class ProductUnloadGuard implements CanDeactivate<any> {\n  constructor(\n    private router: Router,\n    private contextService: ContextService,\n    private quoteDraftService: QuoteDraftService,\n    private configurationService: ConfigurationService,\n    private flowDialogService: FlowDialogService,\n  ) {}\n\n  public canDeactivate(\n    _: Component,\n    route: ActivatedRouteSnapshot,\n    currentState: RouterStateSnapshot,\n    nextState?: RouterStateSnapshot,\n  ): Observable<boolean | UrlTree> {\n    let observable = of(true);\n\n    if (!this.quoteDraftService.isStandalone && this.configurationService.hasUnsavedChanges) {\n      observable = this.flowDialogService.showUnsavedChangesDialog();\n    }\n\n    return observable.pipe(\n      map(unload => {\n        if (unload) {\n          this.configurationService.reset();\n          this.contextService.update({ properties: { productId: undefined, lineItemId: undefined } });\n\n          if (!nextState || currentState.url === nextState.url) {\n            return true;\n          }\n\n          // clear obsolete queryParams\n          const urlTree = this.router.parseUrl(nextState.url);\n\n          if (!urlTree.queryParams['productId']) {\n            return true;\n          }\n\n          delete urlTree.queryParams['productId'];\n\n          // replace url after deactivation has finished\n          setTimeout(() => this.router.navigateByUrl(urlTree.toString(), { replaceUrl: true }));\n\n          return true;\n        }\n\n        return false;\n      }),\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanDeactivate, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable({ providedIn: 'root' })\nexport class RootGuard implements CanActivate, CanDeactivate<any> {\n  private initialized = false;\n\n  constructor(private router: Router, private routerService: FlowRouterService) {}\n\n  public canActivate(route: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n    // We always need to initialize root component first, and only then start checking guards/resolvers\n\n    if (!this.initialized) {\n      this.initialized = true;\n      const navToRestore = this.router.getCurrentNavigation();\n\n      const rootUrl = this.routerService.getFlowRootPath(route);\n      this.router\n        .navigate([rootUrl], {\n          replaceUrl: !navToRestore?.previousNavigation,\n          skipLocationChange: true,\n        })\n        .then(success => {\n          if (!success || !navToRestore) {\n            return;\n          }\n\n          setTimeout(() => {\n            this.router.navigateByUrl(navToRestore.extractedUrl, navToRestore.extras);\n          });\n        });\n    }\n\n    return true;\n  }\n\n  public canDeactivate(): boolean {\n    this.initialized = false;\n    return true;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  OnDestroy,\n  OnInit,\n  Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\n\ninterface State {\n  loading: boolean;\n  failure: boolean;\n}\n\n@Component({\n  selector: 'vl-flow-assets',\n  templateUrl: './assets.component.html',\n  styleUrls: ['./assets.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AssetsComponent implements OnInit, OnDestroy {\n  public uiDefinition?: UIDefinition = undefined;\n  public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n  private templateApiName = '';\n  private destroyed$ = new Subject<void>();\n\n  constructor(\n    private templatesApi: UITemplatesApiService,\n    private cdr: ChangeDetectorRef,\n    private toastService: ToastService,\n    private flowInfo: FlowInfoService,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    this.templateApiName = this.flowInfo.flow?.properties.templates?.assets ?? '';\n  }\n\n  public ngOnInit(): void {\n    this.generateUIDefinition$()\n      .pipe(\n        tap(uiDef => {\n          if (!uiDef) {\n            throw new Error(`Component with name '${this.templateApiName}' not found.`);\n          }\n\n          this.uiDefinition = uiDef;\n          this.state$.next({ loading: false, failure: false });\n        }),\n        catchError(err => {\n          const message = 'Failed to resolve Assets component. ' + (err.message ?? '');\n          this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n          this.uiDefinition = undefined;\n          this.state$.next({ loading: false, failure: true });\n          return of();\n        }),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe(() => this.cdr.detectChanges());\n  }\n\n  public ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n  }\n\n  private getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n    if (!this.customizationService?.getTemplateComponents) {\n      return of(undefined);\n    }\n\n    return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n      map(components => {\n        if (!components) {\n          return;\n        }\n\n        return components.map<ComponentAttachments>(component => ({\n          html: component.html,\n          css: component.css,\n          js: component.js,\n          json: component.json,\n        }));\n      }),\n    );\n  }\n\n  private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n    const template = this.flowInfo.templates.SHOPPING_CART;\n    if (!template) {\n      return of(undefined);\n    }\n\n    return this.templatesApi.fetchComponentsAttachments$(template.id);\n  }\n\n  private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n    return of(undefined).pipe(\n      tap(() => {\n        if (!this.templateApiName) {\n          throw new Error(\"Flow 'assets' template is not defined.\");\n        }\n      }),\n      switchMap(() => this.getLocalMeta$()),\n      switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n      map(metaList => {\n        if (!metaList) {\n          return;\n        }\n\n        const uiDef: UIDefinition = {\n          name: '',\n          createdTimestamp: 0,\n          primary: true,\n          type: 'DEFAULT',\n          version: 2,\n          children: metaList.map(meta => ({\n            children: [],\n            template: meta.html && btoaSafe(meta.html),\n            script: meta.js && btoaSafe(meta.js),\n            styles: meta.css && btoaSafe(meta.css),\n          })),\n        };\n\n        return uiDef;\n      }),\n    );\n  }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { AssetsComponent } from './assets.component';\n\n@NgModule({\n  declarations: [AssetsComponent],\n  imports: [CommonModule, PreviewModule, LoaderModule],\n  exports: [AssetsComponent],\n})\nexport class AssetsModule {}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  OnDestroy,\n  OnInit,\n  Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\n\ninterface State {\n  loading: boolean;\n  failure: boolean;\n}\n\n@Component({\n  selector: 'vl-flow-catalog',\n  templateUrl: './catalog.component.html',\n  styleUrls: ['./catalog.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CatalogComponent implements OnInit, OnDestroy {\n  public uiDefinition?: UIDefinition = undefined;\n  public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n  private templateApiName = '';\n  private destroyed$ = new Subject<void>();\n\n  constructor(\n    private templatesApi: UITemplatesApiService,\n    private cdr: ChangeDetectorRef,\n    private toastService: ToastService,\n    private flowInfo: FlowInfoService,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    this.templateApiName = this.flowInfo.flow?.properties.templates?.catalog ?? '';\n  }\n\n  public ngOnInit(): void {\n    this.generateUIDefinition$()\n      .pipe(\n        tap(uiDef => {\n          if (!uiDef) {\n            throw new Error(`Component with name '${this.templateApiName}' not found.`);\n          }\n\n          this.uiDefinition = uiDef;\n          this.state$.next({ loading: false, failure: false });\n        }),\n        catchError(err => {\n          const message = 'Failed to resolve Catalog component. ' + (err.message ?? '');\n          this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n          this.uiDefinition = undefined;\n          this.state$.next({ loading: false, failure: true });\n          return of();\n        }),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe(() => this.cdr.detectChanges());\n  }\n\n  public ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n  }\n\n  private getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n    if (!this.customizationService?.getTemplateComponents) {\n      return of(undefined);\n    }\n\n    return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n      map(components => {\n        if (!components) {\n          return;\n        }\n\n        return components.map<ComponentAttachments>(component => ({\n          html: component.html,\n          css: component.css,\n          js: component.js,\n          json: component.json,\n        }));\n      }),\n    );\n  }\n\n  private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n    const template = this.flowInfo.templates.CATALOG;\n    if (!template) {\n      return of(undefined);\n    }\n\n    return this.templatesApi.fetchComponentsAttachments$(template.id);\n  }\n\n  private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n    return of(undefined).pipe(\n      tap(() => {\n        if (!this.templateApiName) {\n          throw new Error(\"Flow 'catalog' template is not defined.\");\n        }\n      }),\n      switchMap(() => this.getLocalMeta$()),\n      switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n      map(metaList => {\n        if (!metaList) {\n          return;\n        }\n\n        const uiDef: UIDefinition = {\n          name: '',\n          createdTimestamp: 0,\n          primary: true,\n          type: 'DEFAULT',\n          version: 2,\n          children: metaList.map(meta => ({\n            children: [],\n            template: meta.html && btoaSafe(meta.html),\n            script: meta.js && btoaSafe(meta.js),\n            styles: meta.css && btoaSafe(meta.css),\n          })),\n        };\n\n        return uiDef;\n      }),\n    );\n  }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { CatalogComponent } from './catalog.component';\n\n@NgModule({\n  declarations: [CatalogComponent],\n  imports: [CommonModule, PreviewModule, LoaderModule],\n  exports: [CatalogComponent],\n})\nexport class CatalogModule {}\n","import { HttpParams } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { FlowsApiService } from '@veloceapps/api';\nimport { Flow } from '@veloceapps/core';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Observable, shareReplay } from 'rxjs';\nimport { getFlowObjectIdPropertyName } from '../../utils';\n\n@Component({\n  selector: 'vl-flow-debug',\n  templateUrl: './debug.component.html',\n  styleUrls: ['./debug.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DebugComponent {\n  public form = new FormGroup({\n    id: new FormControl(''),\n  });\n\n  public selectedFlow?: Flow;\n  public flows$: Observable<Flow[]>;\n\n  constructor(\n    private flowsApiService: FlowsApiService,\n    private router: Router,\n    private activatedRoute: ActivatedRoute,\n    private context: ContextService,\n    private quoteDraftService: QuoteDraftService,\n  ) {\n    this.flows$ = this.flowsApiService.fetchFlows().pipe(shareReplay());\n  }\n\n  public runFlow(): void {\n    const { id } = this.form.value;\n    const objectPropertyName = id && getFlowObjectIdPropertyName(id);\n\n    if (!id || !objectPropertyName || !this.selectedFlow) {\n      return;\n    }\n\n    // Delete context before starting a new flow\n    this.context.delete();\n    this.quoteDraftService.reset();\n\n    this.router.navigate(['..', 'flows'], {\n      queryParams: {\n        flowId: this.selectedFlow.id,\n        [objectPropertyName]: id,\n        ...this.selectedFlow.properties.queryParams,\n      },\n      relativeTo: this.activatedRoute,\n    });\n  }\n\n  public getQueryParamsString(params: Params): string {\n    return new HttpParams({ fromObject: params }).toString();\n  }\n}\n","<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  </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      <th [width]=\"100\">Standalone</th>\n      <th [width]=\"100\">Stateful</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.properties.entryPath }}</td>\n      <td class=\"cell-query-params\">{{ getQueryParamsString(flow.properties.queryParams) }}</td>\n      <td>{{ flow.properties.standalone }}</td>\n      <td>{{ flow.properties.stateful }}</td>\n    </tr>\n  </tbody>\n</table>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule, Routes } from '@angular/router';\nimport { ButtonModule } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { DebugComponent } from './debug.component';\n\nconst routes: Routes = [{ path: '', component: DebugComponent }];\n\n@NgModule({\n  declarations: [DebugComponent],\n  imports: [\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n    RouterModule.forChild(routes),\n    RadioButtonModule,\n    ButtonModule,\n    InputTextModule,\n    DropdownModule,\n  ],\n})\nexport class DebugModule {}\n","import { ChangeDetectionStrategy, Component, Inject, Optional } from '@angular/core';\nimport { LineItem, QuoteDraft, UIDefinition } from '@veloceapps/core';\nimport { CMSPreviewConfig } from '@veloceapps/sdk/cms';\nimport {\n  ConfigurationRuntimeService,\n  ConfigurationService,\n  ConfigurationStateService,\n  ContextService,\n  FlowCustomization,\n  FlowInfoService,\n  FlowStateService,\n  FLOW_CUSTOMIZATION,\n  IntegrationState,\n  QuoteDraftService,\n} from '@veloceapps/sdk/core';\nimport { BehaviorSubject, first, map, Observable, of, switchMap, tap } from 'rxjs';\n\n@Component({\n  selector: 'vl-flow-product',\n  templateUrl: './product.component.html',\n  styleUrls: ['./product.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProductComponent {\n  public config: CMSPreviewConfig;\n  public uiDefinition$ = new BehaviorSubject<UIDefinition | undefined>(undefined);\n\n  constructor(\n    private contextService: ContextService,\n    private configurationRuntimeService: ConfigurationRuntimeService,\n    private configurationService: ConfigurationService,\n    private configurationStateService: ConfigurationStateService,\n    private quoteDraftService: QuoteDraftService,\n    private flowInfoService: FlowInfoService,\n    private flowStateService: FlowStateService,\n    private integrationState: IntegrationState,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    this.config = {\n      init$: () => this.init$(),\n    };\n  }\n\n  private customizeUI$(): Observable<void> {\n    const { productId } = this.configurationRuntimeService.runtimeContext ?? {};\n    if (!productId || !this.customizationService?.getUiDefinition) {\n      return of(undefined);\n    }\n\n    return this.customizationService.getUiDefinition(productId).pipe(\n      map(uiDefinitionContainer => {\n        if (uiDefinitionContainer) {\n          this.configurationRuntimeService.overrideUIDefinition(uiDefinitionContainer);\n        }\n      }),\n    );\n  }\n\n  private init$(): Observable<void> {\n    let quoteDraft$: Observable<QuoteDraft | undefined>;\n    if (this.flowInfoService.isLegacy || !this.flowInfoService.isStateful) {\n      quoteDraft$ = this.quoteDraftService.quoteDraft$;\n    } else {\n      quoteDraft$ = of(undefined);\n    }\n    return quoteDraft$.pipe(\n      first(),\n      switchMap(quote => {\n        const contextProperties = this.contextService.resolve().properties;\n        const productId = contextProperties.productId;\n\n        if (!productId) {\n          throw new Error(`Unable to start configuration for 'productId == null'`);\n        }\n\n        if (!quote) {\n          const offeringId = contextProperties.offeringId;\n          return this.configurationRuntimeService.init({ productId, offeringId });\n        }\n\n        const lineItem = this.getLineItem(quote, productId, contextProperties.lineItemId);\n        if (lineItem) {\n          this.configurationService.setConfigurableRamp(lineItem);\n        }\n\n        const { offeringId } = lineItem ?? {};\n\n        return this.configurationRuntimeService.init({ productId, offeringId });\n      }),\n      switchMap(() => this.customizeUI$()),\n      tap(() => {\n        const uiDefinition = this.configurationRuntimeService.runtimeContext?.uiDefinitionContainer?.source;\n        if (uiDefinition) {\n          this.uiDefinition$.next(uiDefinition);\n        } else {\n          throw new Error('Product does not have Configuration UI');\n        }\n      }),\n      tap(() => {\n        if (this.configurationRuntimeService.initializationProps) {\n          this.configurationRuntimeService.initializationProps.attributesMap =\n            this.integrationState.state.guidedSelling;\n        }\n      }),\n      switchMap(() => this.configurationStateService.init$()),\n    );\n  }\n\n  private getLineItem(quote: QuoteDraft, productId: string, lineItemId?: string): LineItem | undefined {\n    // search by lineItemId first\n    let li: LineItem | undefined = quote.currentState.find(li => li.id === lineItemId);\n\n    if (!li && this.quoteDraftService.isStandalone) {\n      li = quote.currentState.find(li => li.productId === productId);\n    }\n\n    // If still not found, is could be an asset\n    if (!li) {\n      li = this.quoteDraftService.assetsState?.currentState.find(li => li.id === lineItemId);\n    }\n\n    return li;\n  }\n}\n","<vl-cms-preview [uiDefinition]=\"$any(uiDefinition$ | async)\" [config]=\"config\"></vl-cms-preview>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { ProductComponent } from './product.component';\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [CommonModule, PreviewModule, LoaderModule],\n  exports: [ProductComponent],\n})\nexport class ProductModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n  selector: 'vl-flow-record-not-found',\n  templateUrl: './record-not-found.component.html',\n  styleUrls: ['./record-not-found.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RecordNotFoundComponent {\n  public message: string;\n  public subMessage = '';\n  public type = '';\n  public details: string[];\n\n  constructor(private router: Router, private route: ActivatedRoute) {\n    const navigation = this.router.getCurrentNavigation();\n    const { state } = navigation?.extras || {};\n\n    this.message = state?.['message'];\n    this.type = state?.['type'] || '';\n    this.details = state?.['details'];\n    if (typeof this.message === 'string') {\n      this.subMessage = this.message.includes('/describe') ? 'A potential problem with permissions' : '';\n    }\n  }\n}\n","<div class=\"row\">\n  <div class=\"col-md-12\">\n    <div class=\"message-wrapper\">\n      <div *ngIf=\"message; else defaultMessage\">\n        <p class=\"text message-text\" [class]=\"type\">{{ message }}</p>\n\n        <p *ngIf=\"subMessage\" class=\"text\">{{ subMessage }}</p>\n\n        <div *ngIf=\"details && details.length > 0\">\n          <div *ngFor=\"let detail of details\" class=\"text\">{{ detail }}</div>\n        </div>\n      </div>\n\n      <ng-template #defaultMessage>Record not found</ng-template>\n    </div>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { RecordNotFoundComponent } from './record-not-found.component';\n\nconst routes: Routes = [{ path: '', component: RecordNotFoundComponent }];\n\n@NgModule({\n  declarations: [RecordNotFoundComponent],\n  imports: [CommonModule, RouterModule.forChild(routes)],\n})\nexport class RecordNotFoundModule {}\n","import { Location } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnDestroy } from '@angular/core';\nimport {\n  ChargeGroupItem,\n  ContextProperties,\n  LineItem,\n  RpcMessage,\n  RpcOption,\n  RpcOptionConfiguration,\n  RpcProduct,\n  RpcQuote,\n  UIDefinition,\n  UUID,\n  VlWindow,\n} from '@veloceapps/core';\nimport { FlowAction } from '@veloceapps/sdk/cms';\nimport {\n  ConfigurationRuntimeService,\n  ConfigurationService,\n  ConfigurationStateService,\n  ContextService,\n  IntegrationState,\n  QuoteDraftService,\n  RuntimeContext,\n} from '@veloceapps/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport {\n  BehaviorSubject,\n  catchError,\n  first,\n  Observable,\n  of,\n  Subject,\n  switchMap,\n  takeUntil,\n  tap,\n  throwError,\n} from 'rxjs';\nimport { LineItemWithParent } from './remote.types';\n\ndeclare const window: VlWindow;\n\ninterface State {\n  loading: boolean;\n  failure: boolean;\n}\n\n@Component({\n  selector: 'vl-flow-remote',\n  templateUrl: './remote.component.html',\n  styleUrls: ['./remote.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RemoteComponent implements OnDestroy {\n  public uiDefinition?: UIDefinition;\n  public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n  private readonly DYNAMIC_OPTION_PRODUCTS_KEY = 'Dynamic';\n\n  private rpcMessage: RpcMessage;\n  private destroyed$ = new Subject<void>();\n\n  constructor(\n    private contextService: ContextService,\n    private quoteDraftService: QuoteDraftService,\n    private runtimeService: ConfigurationRuntimeService,\n    private configurationService: ConfigurationService,\n    private configurationState: ConfigurationStateService,\n    private messageService: MessageService,\n    private integrationState: IntegrationState,\n    private location: Location,\n  ) {\n    this.rpcMessage = JSON.parse(window.RPC_MESSAGE as string);\n    this.rpcMessage.options.sort((a, b) => (a.featureNumber ?? 99999) - (b.featureNumber ?? 99999));\n    this.updateHasChildrenFlag(this.rpcMessage.product.configuredProductId);\n\n    // update context properties\n    if (this.rpcMessage.quote) {\n      const properties: ContextProperties = {};\n\n      if (this.rpcMessage.quote['SBQQ__Opportunity2__c']) {\n        properties.OpportunityId = this.rpcMessage.quote['SBQQ__Opportunity2__c'];\n      }\n\n      Object.entries(this.rpcMessage.quote).forEach(([key, value]) => {\n        if (value !== undefined && !(value instanceof Object)) {\n          properties[key] = value;\n        }\n      });\n\n      this.contextService.update({ properties });\n    }\n\n    this.initSubscriptions();\n    this.initConfiguration();\n  }\n\n  public ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n  }\n\n  private initConfiguration(): void {\n    const productId = this.rpcMessage.product.configuredProductId;\n    const quote = this.quoteDraftService.quoteDraft;\n\n    if (!productId || !quote) {\n      return;\n    }\n\n    this.runtimeService\n      .init({ productId })\n      .pipe(\n        first(),\n        tap(context => {\n          const uiDefinitionProperties = context.uiDefinitionContainer?.source.properties ?? {};\n          this.uiDefinition = context.uiDefinitionContainer?.source;\n\n          const pricingEnabled = uiDefinitionProperties.pricingEnabled ? 'true' : 'false';\n          const priceListId = uiDefinitionProperties.priceList;\n\n          const runtimeContextProperties = this.runtimeService.runtimeContext?.properties;\n          if (runtimeContextProperties) {\n            runtimeContextProperties.PriceListId = priceListId;\n            runtimeContextProperties.PricingEnabled = pricingEnabled;\n          }\n\n          this.contextService.update({\n            properties: {\n              ModelId: context.modelId,\n              RuntimeMode: 'TEST',\n              PricingEnabled: pricingEnabled,\n              PriceListId: priceListId,\n            },\n          });\n\n          this.configurationService.setConfigurableRamp(this.createLineItem());\n        }),\n        this.throwIfNoUIDefinition(),\n        switchMap(() => this.configurationState.init$()),\n        tap(() => this.state$.next({ loading: false, failure: false })),\n        catchError(error => {\n          if (!this.uiDefinition?.properties?.suppressToastMessages) {\n            this.messageService.add({ severity: 'error', summary: error });\n          }\n\n          this.state$.next({ loading: false, failure: true });\n          return of();\n        }),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe();\n  }\n\n  private throwIfNoUIDefinition() {\n    return <T>(source$: Observable<T>): Observable<T> => {\n      return source$.pipe(\n        switchMap(() => {\n          if (!this.uiDefinition) {\n            return throwError(() => 'Product does not have Configuration UI');\n          }\n\n          return source$;\n        }),\n      );\n    };\n  }\n\n  private initSubscriptions(): void {\n    this.integrationState\n      .listen$(FlowAction.REMOTE_CANCEL)\n      .pipe(\n        tap(() => this.location.back()),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.REMOTE_APPLY)\n      .pipe(\n        tap(() => this.saveRpcMessage()),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe();\n  }\n\n  private createLineItem(): LineItem {\n    const [quoteDraftLineItem] = this.quoteDraftService.quoteDraft?.currentState ?? [];\n    if (quoteDraftLineItem && (quoteDraftLineItem.attributes.length > 0 || quoteDraftLineItem.lineItems.length > 0)) {\n      return quoteDraftLineItem;\n    }\n\n    const lineItem = this.createRootLineItem();\n    const dynamicOptionProducts = this.rpcMessage.product.optionConfigurations[this.DYNAMIC_OPTION_PRODUCTS_KEY];\n\n    if (dynamicOptionProducts) {\n      const options = this.toParentChildMap(dynamicOptionProducts);\n      let items = [lineItem];\n      for (let i = 0; i < items.length; i++) {\n        const item = items[i];\n        const children = item && options.get(item.id);\n        if (children) {\n          item.lineItems = children;\n          items = items.concat(children);\n        }\n      }\n    }\n    return lineItem;\n  }\n\n  private createRootLineItem(): LineItem {\n    const product = this.rpcMessage.product;\n    const runtimeContext = this.runtimeService.runtimeContext as RuntimeContext;\n    const veloceInstanceId = product.configurationAttributes['VeloceInstanceId__c'];\n    const quoteId = this.quoteDraftService.quoteDraft?.currentState[0]?.id;\n\n    return {\n      id: quoteId || veloceInstanceId || UUID.UUID(),\n      type: runtimeContext.productType ?? '',\n      name: runtimeContext.properties?.['displayName'] || runtimeContext.productName,\n      productName: runtimeContext.productName,\n      productId: runtimeContext.productId,\n      cfgStatus: 'Default',\n      actionCode: 'ADD',\n      qty: 1,\n    } as LineItem;\n  }\n\n  private toParentChildMap(remoteOptionProducts: RpcOptionConfiguration[]): Map<string, LineItem[]> {\n    const result = new Map<string, LineItem[]>();\n\n    for (const option of remoteOptionProducts) {\n      const configurationData = option?.readOnly?.line;\n      const id = configurationData?.VeloceInstanceId__c;\n      const parentId = configurationData?.VeloceParentInstanceId__c;\n\n      if (!option.selected || !configurationData || !id || !parentId) {\n        continue;\n      }\n\n      const productId = option.productId;\n      const lineItem = {\n        id,\n        productId,\n        parentId,\n        type: configurationData.ModelType__c,\n        port: configurationData.ModelPort__c,\n        cfgStatus: configurationData.ConfigurationStatus__c,\n        actionCode: configurationData.ActionCode__c,\n        qty: option.Quantity,\n      } as LineItem;\n\n      let siblings = result.get(productId);\n      if (!siblings) {\n        result.set(parentId, (siblings = []));\n      }\n\n      siblings.push(lineItem);\n    }\n    return result;\n  }\n\n  private saveRpcMessage(): void {\n    const quote = this.quoteDraftService.quoteDraft;\n    const lineItem = this.configurationService.getSnapshot();\n\n    if (!quote || !lineItem) {\n      return;\n    }\n\n    this.rpcMessage.VeloceReferenceId = quote.quoteId;\n    this.rpcMessage.product.configurationData.VeloceInstanceId__c = lineItem.id;\n    const childItems = this.flattenChildLineItems(lineItem);\n    const savingMode = window.SavingMode;\n\n    this.updateContentData(this.rpcMessage.product, lineItem);\n    this.rpcMessage.quote = this.mapAttributesTo('Quote', lineItem) as RpcQuote;\n\n    if (savingMode === 'ALL') {\n      const optionConfigurations = this.getOptionConfigurations(this.rpcMessage.product);\n      const rootProductOptions = this.rpcMessage.options.filter(po => po.configuredProductId === lineItem.productId);\n\n      childItems.forEach(lineItem => {\n        const rootOption = rootProductOptions.find(po => po.optionalProductId === lineItem.productId);\n        if (rootOption) {\n          const featureOptions =\n            optionConfigurations[rootOption.featureName] ?? (optionConfigurations[rootOption.featureName] = []);\n          const originOption = !rootOption.hasChildren\n            ? optionConfigurations[rootOption.featureName]?.find(({ optionId }) => optionId === rootOption.optionId)\n            : undefined;\n          const option: RpcOptionConfiguration = originOption ?? ({} as RpcOptionConfiguration);\n\n          option.optionId = option.optionId ?? rootOption.optionId;\n          this.updateContentData(option, lineItem);\n          option.index = option.index ?? featureOptions.length;\n          option.selected = true;\n\n          if (!originOption) {\n            featureOptions.push(option);\n          }\n\n          if (lineItem.parentLineItem) {\n            const nestedProductOption = this.rpcMessage.options.find(\n              po =>\n                po.configuredProductId === lineItem.parentLineItem?.productId &&\n                po.optionalProductId === lineItem.productId,\n            );\n\n            if (nestedProductOption) {\n              option.configurationData = {\n                ...option.configurationData,\n                VeloceParentInstanceId__c: lineItem.parentLineItem.id,\n                VeloceNestedOptionId__c: nestedProductOption.optionId,\n                VeloceNestedFeatureId__c: nestedProductOption.featureId,\n              };\n            }\n          }\n        } else {\n          this.rpcMessage.dynamicFeatures.forEach(feature => {\n            const featureOptions = optionConfigurations[feature.name] ?? (optionConfigurations[feature.name] = []);\n            const originOption = featureOptions.find(({ productId }) => productId === lineItem.productId);\n            const option: RpcOptionConfiguration = originOption ?? ({} as RpcOptionConfiguration);\n\n            this.updateContentData(option, lineItem);\n            option.index = option.index ?? featureOptions.length;\n            option.selected = true;\n\n            if (!originOption) {\n              featureOptions.push(option);\n            }\n          });\n        }\n      });\n\n      this.rpcMessage.product = { ...this.rpcMessage.product, optionConfigurations };\n    }\n\n    window.RPC_BROADCAST?.apply(null, [this.rpcMessage]);\n  }\n\n  private updateHasChildrenFlag(bundleProductId: string): void {\n    const bundleOptionsByOptionId: Record<string, RpcOption> = {};\n    const notBundleOptions: RpcOption[] = [];\n    for (const productOption of this.rpcMessage.options) {\n      if (productOption.configuredProductId === bundleProductId) {\n        bundleOptionsByOptionId[productOption.optionalProductId] = productOption;\n      } else {\n        notBundleOptions.push(productOption);\n      }\n    }\n    for (const option of notBundleOptions) {\n      const bundleOption = bundleOptionsByOptionId[option.configuredProductId];\n      if (bundleOption) {\n        bundleOption.hasChildren = true;\n      }\n    }\n  }\n\n  private flattenChildLineItems(lineItem: LineItem): LineItemWithParent[] {\n    let items = lineItem.lineItems ?? [];\n    for (let i = 0; i < items.length; i++) {\n      const item = items[i];\n      if (item?.lineItems) {\n        items = items.concat(item.lineItems.map(li => ({ ...li, parentLineItem: item })));\n      }\n    }\n    return items;\n  }\n\n  private updateContentData(entity: RpcProduct | RpcOptionConfiguration, lineItem: LineItem): void {\n    if (lineItem.productId) {\n      entity.productId = lineItem.productId;\n    }\n\n    const quantityAttribute = lineItem.properties['quantityAttribute'];\n    entity.Quantity = quantityAttribute\n      ? lineItem.attributes.find(attribute => attribute.name === quantityAttribute)?.value ?? 1\n      : lineItem.qty;\n\n    const totalPrice = this.computeNetPrice(lineItem);\n    const targetTotalPriceField = lineItem.properties['TargetTotalPriceField'] || 'TotalPrice__c';\n    entity.configurationData[targetTotalPriceField] = entity.configurationData[targetTotalPriceField]\n      ? entity.configurationData[targetTotalPriceField] + totalPrice\n      : totalPrice;\n\n    const targetPriceField = lineItem.properties['TargetPriceField'] || 'SBQQ__ListPrice__c';\n    const price = entity.Quantity != null ? entity.configurationData[targetTotalPriceField] / entity.Quantity || 0 : 0;\n    const targetPriceValue = Number(entity.configurationData[targetPriceField]) || 0;\n    entity.configurationData[targetPriceField] = targetPriceValue\n      ? (targetPriceValue + price).toFixed(2)\n      : price.toFixed(2);\n\n    entity.configurationAttributes = this.mapAttributesTo('Attribute', lineItem);\n    entity.configurationData = {\n      ...entity.configurationData,\n      ...this.mapAttributesTo('Field', lineItem),\n      ...this.mapAttributesTo('', lineItem),\n      VeloceInstanceId__c: lineItem.id,\n    };\n  }\n\n  private computeNetPrice(lineItem: LineItem): number {\n    if (lineItem.properties['GroupCharges']) {\n      return this.sumNetPrice(lineItem.chargeGroupItems, this.getChargeNameSet(lineItem.properties['GroupCharges']));\n    }\n\n    return this.sumNetPrice(lineItem.chargeItems, this.getChargeNameSet(lineItem.properties['Charges']));\n  }\n\n  private getChargeNameSet(property?: string): Set<string> {\n    if (property && property.length > 0) {\n      return new Set(property.split(','));\n    }\n\n    return new Set();\n  }\n\n  private sumNetPrice(chargeItems: ChargeGroupItem[], charges: Set<string>): number {\n    let netPrice = 0;\n\n    for (const chargeItem of chargeItems) {\n      if (!charges || charges.has(chargeItem.chargeType)) {\n        netPrice += chargeItem.netPrice ?? 0;\n      }\n    }\n\n    return netPrice;\n  }\n\n  private mapAttributesTo(target: string, lineItem: LineItem): Record<string, any> {\n    const result: Record<string, any> = {};\n    const component = this.runtimeService.runtimeModel?.components.get(lineItem.type);\n\n    if (!component) {\n      return result;\n    }\n\n    const propertyName = 'mapTo' + target;\n    component.attributes\n      .filter(a => a.properties && a.properties[propertyName])\n      .forEach(mapping => {\n        const attribute = lineItem.attributes.find(a => a.name === mapping.name);\n\n        if (attribute) {\n          new Set(mapping.properties[propertyName]?.split(',')).forEach(k => (result[k] = attribute.value));\n        }\n      });\n\n    return result;\n  }\n\n  private getOptionConfigurations(product: RpcProduct): Record<string, RpcOptionConfiguration[]> {\n    const optionConfigurations: Record<string, RpcOptionConfiguration[]> = {};\n    const requestOptionConfigurations = product.optionConfigurations ?? {};\n\n    Object.keys(requestOptionConfigurations).forEach(k => {\n      optionConfigurations[k] = (requestOptionConfigurations[k] ?? []).map(opt => {\n        return { ...opt, selected: false };\n      });\n    });\n\n    return optionConfigurations;\n  }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { RemoteComponent } from './remote.component';\n\n@NgModule({\n  declarations: [RemoteComponent],\n  imports: [CommonModule, PreviewModule, LoaderModule],\n  exports: [RemoteComponent],\n})\nexport class RemoteModule {}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  OnDestroy,\n  OnInit,\n  Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\n\ninterface State {\n  loading: boolean;\n  failure: boolean;\n}\n\n@Component({\n  selector: 'vl-flow-shopping-cart',\n  templateUrl: './shopping-cart.component.html',\n  styleUrls: ['./shopping-cart.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ShoppingCartComponent implements OnInit, OnDestroy {\n  public uiDefinition?: UIDefinition = undefined;\n  public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n  private templateApiName = '';\n  private destroyed$ = new Subject<void>();\n\n  constructor(\n    private templatesApi: UITemplatesApiService,\n    private cdr: ChangeDetectorRef,\n    private toastService: ToastService,\n    private flowInfo: FlowInfoService,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    this.templateApiName = this.flowInfo.flow?.properties.templates?.shoppingCart ?? '';\n  }\n\n  public ngOnInit(): void {\n    this.generateUIDefinition$()\n      .pipe(\n        tap(uiDef => {\n          if (!uiDef) {\n            throw new Error(`Component with name '${this.templateApiName}' not found.`);\n          }\n\n          this.uiDefinition = uiDef;\n          this.state$.next({ loading: false, failure: false });\n        }),\n        catchError(err => {\n          const message = 'Failed to resolve Shopping Cart component. ' + (err.message ?? '');\n          this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n          this.uiDefinition = undefined;\n          this.state$.next({ loading: false, failure: true });\n          return of();\n        }),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe(() => this.cdr.detectChanges());\n  }\n\n  public ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n  }\n\n  private getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n    if (!this.customizationService?.getTemplateComponents) {\n      return of(undefined);\n    }\n\n    return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n      map(components => {\n        if (!components) {\n          return;\n        }\n\n        return components.map<ComponentAttachments>(component => ({\n          html: component.html,\n          css: component.css,\n          js: component.js,\n          json: component.json,\n        }));\n      }),\n    );\n  }\n\n  private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n    const template = this.flowInfo.templates.SHOPPING_CART;\n    if (!template) {\n      return of(undefined);\n    }\n\n    return this.templatesApi.fetchComponentsAttachments$(template.id);\n  }\n\n  private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n    return of(undefined).pipe(\n      tap(() => {\n        if (!this.templateApiName) {\n          throw new Error(\"Flow 'shoppingCart' template is not defined.\");\n        }\n      }),\n      switchMap(() => this.getLocalMeta$()),\n      switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n      map(metaList => {\n        if (!metaList) {\n          return;\n        }\n\n        const uiDef: UIDefinition = {\n          name: '',\n          createdTimestamp: 0,\n          primary: true,\n          type: 'DEFAULT',\n          version: 2,\n          children: metaList.map(meta => ({\n            children: [],\n            template: meta.html && btoaSafe(meta.html),\n            script: meta.js && btoaSafe(meta.js),\n            styles: meta.css && btoaSafe(meta.css),\n          })),\n        };\n\n        return uiDef;\n      }),\n    );\n  }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { ShoppingCartComponent } from './shopping-cart.component';\n\n@NgModule({\n  declarations: [ShoppingCartComponent],\n  imports: [CommonModule, PreviewModule, LoaderModule],\n  exports: [ShoppingCartComponent],\n})\nexport class ShoppingCartModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { extractErrorDetails, isVeloceError } from '@veloceapps/core';\nimport { ContextService, FlowInfoService } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { from, Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { FlowRouterService } from '../services/flow-router.service';\nimport { getDefaultProperties } from '../utils';\n\n@Injectable()\nexport class FlowResolver implements Resolve<unknown> {\n  constructor(\n    private router: Router,\n    private routerService: FlowRouterService,\n    private contextService: ContextService,\n    private flowInfo: FlowInfoService,\n  ) {}\n\n  public resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n    const { queryParams } = route;\n    const flow = this.flowInfo.flow;\n\n    if (!flow) {\n      return of(false);\n    }\n\n    const { properties } = flow;\n    const { queryParams: flowQueryParams, entryPath } = properties;\n    const mergedQueryParams = {\n      ...queryParams,\n      ...flowQueryParams,\n    };\n\n    const contextProperties = Object.entries({\n      ...mergedQueryParams,\n      ...getDefaultProperties({ flowParams: properties }),\n    }).reduce<Dictionary<string>>((trunk, [key, value]) => ({ ...trunk, [key]: String(value) }), {});\n\n    this.contextService.update({ properties: contextProperties });\n    this.flowInfo.flow = flow;\n\n    const parentUrl = this.routerService.getFlowRootPath(route);\n    const entryUrl = String(entryPath ?? '')\n      .split('/')\n      .filter(Boolean);\n\n    return from(\n      this.router.navigate([parentUrl, ...entryUrl], {\n        queryParams: mergedQueryParams,\n        replaceUrl: true,\n      }),\n    ).pipe(\n      catchError(e => {\n        const message = e instanceof HttpErrorResponse ? e.error.message : e;\n        const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];\n        return this.routerService.showErrorPage$(message, errorDetails);\n      }),\n    );\n  }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { ConfigurationContextMode, extractErrorDetails, isVeloceError, UITemplateType } from '@veloceapps/core';\nimport { ContextService, FlowInfoService, FlowStateService, QuoteDraftService } from '@veloceapps/sdk/core';\n\nimport { catchError, from, map, Observable, of, switchMap } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable()\nexport class QuoteResolver implements Resolve<void | boolean> {\n  constructor(\n    private router: Router,\n    private quoteDraftService: QuoteDraftService,\n    private routerService: FlowRouterService,\n    private contextService: ContextService,\n    private flowInfo: FlowInfoService,\n    private flowStateService: FlowStateService,\n  ) {}\n\n  public resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n    const flow = this.flowInfo.flow;\n    if (!flow) {\n      return of(false);\n    }\n\n    if (this.flowStateService.isInitialized()) {\n      return of(true);\n    }\n\n    return this.flowStateService.init$().pipe(\n      switchMap(() => this.checkDynamicNavigation$(route)),\n      catchError(e => {\n        const message = e instanceof HttpErrorResponse ? e.error.message : e;\n        const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];\n        return this.routerService.showErrorPage$(message, errorDetails);\n      }),\n    );\n  }\n\n  private checkDynamicNavigation$(route: ActivatedRouteSnapshot): Observable<boolean> {\n    const flow = this.flowInfo.flow;\n    if (!flow) {\n      return of(true);\n    }\n\n    if (flow.properties.suppressInitialNavigation || flow.properties.standalone) {\n      return of(true);\n    }\n\n    return this.getNavigateTo().pipe(\n      switchMap(navigateTo => {\n        if (!navigateTo) {\n          return of(true);\n        }\n\n        const parentUrl = this.routerService.getFlowRootPath(route);\n\n        return from(\n          this.router.navigate([parentUrl + navigateTo], {\n            queryParams: route.queryParams,\n            replaceUrl: true,\n          }),\n        );\n      }),\n    );\n  }\n\n  private getNavigateTo(): Observable<string | undefined> {\n    const flow = this.flowInfo.flow;\n    let navigateTo: string | undefined;\n    if (flow?.properties.stateful) {\n      return this.flowStateService.select$<string>(UITemplateType.FLOW_ENGINE, 'NAVIGATE_TO').pipe(\n        map(r => {\n          if (r.success) {\n            return r.result;\n          }\n          return '';\n        }),\n      );\n    } else {\n      const isAccountMode = this.contextService.mode === ConfigurationContextMode.ACCOUNT;\n      if (isAccountMode || this.quoteDraftService.hasAssets) {\n        navigateTo = '/assets';\n      } else if (this.quoteDraftService.hasProducts) {\n        navigateTo = '/cart';\n      }\n    }\n\n    return of(navigateTo);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { VELOCE_FLOW_ROOT_ROUTE } from './constants';\nimport { FlowComponent } from './flow.component';\nimport { ContextGuard } from './guards/context.guard';\nimport { keepFlowInitialized } from './guards/flow.guard';\nimport { ProductUnloadGuard } from './guards/product-unload.guard';\nimport { RootGuard } from './guards/root.guard';\nimport { AssetsComponent } from './pages/assets/assets.component';\nimport { AssetsModule } from './pages/assets/assets.module';\nimport { CatalogComponent } from './pages/catalog/catalog.component';\nimport { CatalogModule } from './pages/catalog/catalog.module';\nimport { DebugModule } from './pages/debug/debug.module';\nimport { ProductComponent } from './pages/product/product.component';\nimport { ProductModule } from './pages/product/product.module';\nimport { RecordNotFoundModule } from './pages/record-not-found/record-not-found.module';\nimport { RemoteComponent } from './pages/remote/remote.component';\nimport { RemoteModule } from './pages/remote/remote.module';\nimport { ShoppingCartComponent } from './pages/shopping-cart/shopping-cart.component';\nimport { ShoppingCartModule } from './pages/shopping-cart/shopping-cart.module';\nimport { FlowResolver } from './resolvers/flow.resolver';\nimport { QuoteResolver } from './resolvers/quote.resolver';\nimport { FlowRouterService } from './services/flow-router.service';\nimport { RouteWithId } from './types/route.types';\n\nconst rootRoute: RouteWithId = {\n  id: VELOCE_FLOW_ROOT_ROUTE,\n  path: '',\n  component: FlowComponent,\n  canActivate: [RootGuard],\n  canDeactivate: [RootGuard],\n  children: [\n    {\n      path: '',\n      canActivate: [keepFlowInitialized],\n      runGuardsAndResolvers: 'always',\n      children: [\n        {\n          path: 'flows',\n          runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n          resolve: { flow: FlowResolver },\n          canActivate: [ContextGuard],\n          children: [],\n        },\n        {\n          path: 'product',\n          component: ProductComponent,\n          runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n          resolve: { quote: QuoteResolver },\n          canActivate: [ContextGuard],\n          canDeactivate: [ProductUnloadGuard],\n          data: { showHeader: true },\n        },\n        {\n          path: 'cart',\n          component: ShoppingCartComponent,\n          runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n          resolve: { quote: QuoteResolver },\n          canActivate: [ContextGuard],\n          data: { showHeader: true },\n        },\n        {\n          path: 'catalog',\n          component: CatalogComponent,\n          runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n          resolve: { quote: QuoteResolver },\n          canActivate: [ContextGuard],\n          data: { showHeader: true },\n        },\n        {\n          path: 'assets',\n          component: AssetsComponent,\n          runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n          resolve: { quote: QuoteResolver },\n          canActivate: [ContextGuard],\n          data: { showHeader: true },\n        },\n        {\n          path: 'remote',\n          component: RemoteComponent,\n          runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n          resolve: { quote: QuoteResolver },\n          canActivate: [ContextGuard],\n        },\n        {\n          path: 'debug',\n          loadChildren: () => DebugModule,\n        },\n        {\n          path: '404',\n          loadChildren: () => RecordNotFoundModule,\n        },\n      ],\n    },\n  ],\n};\n\n@NgModule({\n  imports: [\n    RouterModule.forChild([rootRoute]),\n    ProductModule,\n    ShoppingCartModule,\n    CatalogModule,\n    AssetsModule,\n    RemoteModule,\n  ],\n  exports: [RouterModule],\n  providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver],\n})\nexport class FlowRoutingModule {}\n","import { Injectable } from '@angular/core';\nimport { FlowAction } from '@veloceapps/sdk/cms';\nimport { IntegrationState } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Subject, takeUntil, tap } from 'rxjs';\n\n@Injectable()\nexport class FlowDocGenService {\n  private cleanup$ = new Subject<void>();\n  private isVisibleSubj$ = new BehaviorSubject(false);\n\n  public isVisible$ = this.isVisibleSubj$.asObservable();\n\n  constructor(private integrationState: IntegrationState) {\n    this.initSubscriptions();\n  }\n\n  public cleanup(): void {\n    this.cleanup$.next();\n  }\n\n  private initSubscriptions(): void {\n    this.integrationState\n      .listen$(FlowAction.FLOW_OPEN_DOC_GEN)\n      .pipe(\n        tap(() => this.isVisibleSubj$.next(true)),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.FLOW_CLOSE_DOC_GEN)\n      .pipe(\n        tap(() => this.isVisibleSubj$.next(false)),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n  }\n}\n","import { DomHandler } from 'primeng/dom';\n\nexport const configurePrimengShadowDOM = () => {\n  DomHandler.getScrollableParents = (element: any) => {\n    const scrollableParents = [];\n\n    if (element) {\n      const parents = DomHandler.getParents(element).filter((item: any) => !(item instanceof ShadowRoot));\n      const overflowRegex = /(auto|scroll)/;\n      const overflowCheck = (node: any) => {\n        const styleDeclaration = window['getComputedStyle'](node, null);\n        return (\n          overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) ||\n          overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) ||\n          overflowRegex.test(styleDeclaration.getPropertyValue('overflowY'))\n        );\n      };\n\n      for (const parent of parents) {\n        const scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];\n        if (scrollSelectors) {\n          const selectors = scrollSelectors.split(',');\n          for (const selector of selectors) {\n            const el = DomHandler.findSingle(parent, selector);\n            if (el && overflowCheck(el)) {\n              scrollableParents.push(el);\n            }\n          }\n        }\n\n        if (parent.nodeType !== 9 && overflowCheck(parent)) {\n          scrollableParents.push(parent);\n        }\n      }\n    }\n\n    return scrollableParents;\n  };\n};\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ApiModule } from '@veloceapps/api';\nimport { LetDirectiveModule, LoaderModule } from '@veloceapps/components';\nimport { LauncherModule } from '@veloceapps/sdk/cms';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { FlowDialogModule } from './components/dialog/dialog.module';\nimport { DocGenModule } from './components/doc-gen/doc-gen.module';\nimport { GuidedSellingModule } from './components/guided-selling/guided-selling.module';\nimport { FlowNewHeaderModule } from './components/flow-header';\nimport { FlowRoutingModule } from './flow-routing.module';\nimport { FlowComponent } from './flow.component';\nimport { FlowService } from './services';\nimport { FlowDocGenService } from './services/doc-gen.service';\nimport { FlowDialogService } from './services/flow-dialog.service';\nimport { FlowGuidedSellingService } from './services/guided-selling.service';\nimport { configurePrimengShadowDOM } from './configure-primeng';\n\nconfigurePrimengShadowDOM();\n\n@NgModule({\n  declarations: [FlowComponent],\n  imports: [\n    CommonModule,\n    LetDirectiveModule,\n    FlowRoutingModule,\n    ApiModule,\n    LauncherModule,\n    LoaderModule,\n    FlowNewHeaderModule,\n    FlowDialogModule,\n    SdkCoreModule,\n    DocGenModule,\n    GuidedSellingModule,\n  ],\n  providers: [FlowService, FlowDialogService, FlowDocGenService, FlowGuidedSellingService],\n})\nexport class FlowModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i2.FlowRouterService","i3","i4.FlowDialogService","i1.FlowRouterService","i2.FlowService","i4.FlowGuidedSellingService","i5","i6","i7","i8.FlowHeaderComponent","i9.DocGenComponent","i10.GuidedSellingComponent","i3.FlowDialogService","routes","i4","catchError","i3.FlowRouterService"],"mappings":"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"}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"veloceapps-sdk.mjs","sources":["../../../../libs/sdk/src/constants.ts","../../../../libs/sdk/src/components/dialog/dialog.component.ts","../../../../libs/sdk/src/components/dialog/dialog.component.html","../../../../libs/sdk/src/components/dialog/dialog.module.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.html","../../../../libs/sdk/src/components/doc-gen/doc-gen.module.ts","../../../../libs/sdk/src/components/guided-selling/guided-selling.component.ts","../../../../libs/sdk/src/components/guided-selling/guided-selling.component.html","../../../../libs/sdk/src/components/guided-selling/guided-selling.module.ts","../../../../libs/sdk/src/components/flow-header/flow-header.component.ts","../../../../libs/sdk/src/components/flow-header/flow-header.component.html","../../../../libs/sdk/src/components/flow-header/flow-header.module.ts","../../../../libs/sdk/src/services/flow-router.service.ts","../../../../libs/sdk/src/services/flow-dialog.service.ts","../../../../libs/sdk/src/services/flow.service.ts","../../../../libs/sdk/src/services/guided-selling.service.ts","../../../../libs/sdk/src/flow.component.ts","../../../../libs/sdk/src/flow.component.html","../../../../libs/sdk/src/utils/flow.utils.ts","../../../../libs/sdk/src/guards/context.guard.ts","../../../../libs/sdk/src/guards/flow.guard.ts","../../../../libs/sdk/src/guards/product-unload.guard.ts","../../../../libs/sdk/src/guards/root.guard.ts","../../../../libs/sdk/src/pages/assets/assets.component.ts","../../../../libs/sdk/src/pages/assets/assets.component.html","../../../../libs/sdk/src/pages/assets/assets.module.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.html","../../../../libs/sdk/src/pages/catalog/catalog.module.ts","../../../../libs/sdk/src/pages/debug/debug.component.ts","../../../../libs/sdk/src/pages/debug/debug.component.html","../../../../libs/sdk/src/pages/debug/debug.module.ts","../../../../libs/sdk/src/pages/product/product.component.ts","../../../../libs/sdk/src/pages/product/product.component.html","../../../../libs/sdk/src/pages/product/product.module.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.html","../../../../libs/sdk/src/pages/record-not-found/record-not-found.module.ts","../../../../libs/sdk/src/pages/remote/remote.component.ts","../../../../libs/sdk/src/pages/remote/remote.component.html","../../../../libs/sdk/src/pages/remote/remote.module.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.html","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.module.ts","../../../../libs/sdk/src/resolvers/flow.resolver.ts","../../../../libs/sdk/src/resolvers/quote.resolver.ts","../../../../libs/sdk/src/flow-routing.module.ts","../../../../libs/sdk/src/services/doc-gen.service.ts","../../../../libs/sdk/src/configure-primeng.ts","../../../../libs/sdk/src/flow.module.ts","../../../../libs/sdk/veloceapps-sdk.ts"],"sourcesContent":["export const VELOCE_FLOW_ROOT_ROUTE = 'VELOCE_FLOW_ROOT_ROUTE';\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { FlowDialogConfig } from './dialog.types';\n\n@Component({\n  selector: 'vl-flow-dialog',\n  templateUrl: './dialog.component.html',\n  styleUrls: ['./dialog.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowDialogComponent {\n  public config: FlowDialogConfig;\n\n  constructor(private dialogConfig: DynamicDialogConfig, private ref: DynamicDialogRef) {\n    this.config = this.dialogConfig.data.config;\n  }\n\n  public cancelHandler(): void {\n    if (this.config.oppositeButtonActions) {\n      this.ref.close(true);\n    } else {\n      this.ref.close();\n    }\n  }\n\n  public confirmHandler(): void {\n    if (this.config.oppositeButtonActions) {\n      this.ref.close();\n    } else {\n      this.ref.close(true);\n    }\n  }\n}\n","<div class=\"header\">\n  <div class=\"title\">\n    {{ config.title }}\n  </div>\n\n  <i class=\"vl-icon vl-cross\" (click)=\"cancelHandler()\"></i>\n</div>\n\n<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport { FlowDialogComponent } from './dialog.component';\n\n@NgModule({\n  declarations: [FlowDialogComponent],\n  imports: [CommonModule, ButtonModule],\n  exports: [FlowDialogComponent],\n})\nexport class FlowDialogModule {}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, Optional } from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe, extendElementMetadata, extractElementMetadata } from '@veloceapps/sdk/cms';\nimport {\n  ContextService,\n  FlowCustomization,\n  FlowInfoService,\n  FlowStateService,\n  FLOW_CUSTOMIZATION,\n} from '@veloceapps/sdk/core';\nimport {\n  BehaviorSubject,\n  catchError,\n  filter,\n  first,\n  map,\n  Observable,\n  of,\n  Subject,\n  switchMap,\n  takeUntil,\n  tap,\n} from 'rxjs';\n\n@Component({\n  selector: 'vl-flow-doc-gen',\n  templateUrl: './doc-gen.component.html',\n  styleUrls: ['./doc-gen.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DocGenComponent implements OnDestroy {\n  public uiDefinition$ = new BehaviorSubject<UIDefinition | null>(null);\n\n  private templateApiName = '';\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private templatesApi: UITemplatesApiService,\n    private contextService: ContextService,\n    private flowStateService: FlowStateService,\n    private flowInfo: FlowInfoService,\n    private toastService: ToastService,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    // wait until flow is initialized\n    this.flowStateService\n      .isInitialized$()\n      .pipe(\n        filter(Boolean),\n        first(),\n        tap(() => this.initialize()),\n        takeUntil(this.destroy$),\n      )\n      .subscribe();\n  }\n\n  public ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  private initialize(): void {\n    this.templateApiName = this.flowInfo.flow?.properties.templates?.docGen ?? '';\n\n    if (this.flowInfo.isLegacy && !this.templateApiName) {\n      return;\n    }\n\n    this.generateUIDefinition$()\n      .pipe(\n        tap(uiDef => {\n          if (!uiDef) {\n            throw new Error(`Component with name '${this.templateApiName}' not found.`);\n          }\n\n          this.uiDefinition$.next(uiDef);\n        }),\n        catchError(err => {\n          const message = 'Failed to resolve DocGen component. ' + (err.message ?? '');\n          this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n          return of();\n        }),\n        takeUntil(this.destroy$),\n      )\n      .subscribe();\n  }\n\n  private getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n    if (!this.customizationService?.getTemplateComponents) {\n      return of(undefined);\n    }\n\n    return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n      map(components => {\n        if (!components) {\n          return;\n        }\n\n        return components.map<ComponentAttachments>(component => ({\n          html: component.html,\n          css: component.css,\n          js: component.js,\n          json: component.json,\n        }));\n      }),\n    );\n  }\n\n  private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n    const template = this.flowInfo.templates.DOCGEN;\n    if (!template) {\n      return of(undefined);\n    }\n\n    return this.templatesApi.fetchComponentsAttachments$(template.id);\n  }\n\n  private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n    return of(undefined).pipe(\n      tap(() => {\n        if (!this.templateApiName) {\n          throw new Error(\"Flow 'docGen' template is not defined.\");\n        }\n      }),\n      switchMap(() => this.getLocalMeta$()),\n      switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n      map(metaList => {\n        if (!metaList) {\n          return;\n        }\n\n        const headerId = this.contextService.resolve().properties.Id ?? null;\n        const patchedMetaList = metaList.map(component => {\n          if (!component.js) {\n            return component;\n          }\n\n          const metadata = extractElementMetadata(component.js);\n          const script = extendElementMetadata(component.js, {\n            inputs: {\n              ...metadata.inputs,\n              Id: headerId ? `\"${headerId}\"` : null,\n            },\n          });\n\n          return {\n            ...component,\n            js: script,\n          };\n        });\n\n        const uiDef: UIDefinition = {\n          name: '',\n          createdTimestamp: 0,\n          primary: true,\n          type: 'DEFAULT',\n          version: 2,\n          children: patchedMetaList.map(child => ({\n            children: [],\n            template: child.html && btoaSafe(child.html),\n            script: child.js && btoaSafe(child.js),\n            styles: child.css && btoaSafe(child.css),\n          })),\n        };\n\n        return uiDef;\n      }),\n    );\n  }\n}\n","<ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n  <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { DocGenComponent } from './doc-gen.component';\n\n@NgModule({\n  declarations: [DocGenComponent],\n  imports: [CommonModule, PreviewModule],\n  exports: [DocGenComponent],\n})\nexport class DocGenModule {}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, Optional } from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FlowStateService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport {\n  BehaviorSubject,\n  catchError,\n  filter,\n  first,\n  map,\n  Observable,\n  of,\n  Subject,\n  switchMap,\n  takeUntil,\n  tap,\n} from 'rxjs';\n\n@Component({\n  selector: 'vl-flow-guided-selling',\n  templateUrl: './guided-selling.component.html',\n  styleUrls: ['./guided-selling.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GuidedSellingComponent implements OnDestroy {\n  public uiDefinition$ = new BehaviorSubject<UIDefinition | null>(null);\n\n  private templateApiName = '';\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private templatesApi: UITemplatesApiService,\n    private flowStateService: FlowStateService,\n    private flowInfo: FlowInfoService,\n    private toastService: ToastService,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    // wait until flow is initialized\n    this.flowStateService\n      .isInitialized$()\n      .pipe(\n        filter(Boolean),\n        first(),\n        tap(() => this.initialize()),\n        takeUntil(this.destroy$),\n      )\n      .subscribe();\n  }\n\n  public ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  private initialize(): void {\n    this.templateApiName = this.flowInfo.flow?.properties.templates?.guidedSelling ?? '';\n\n    if (this.flowInfo.isLegacy && !this.templateApiName) {\n      return;\n    }\n\n    this.generateUIDefinition$()\n      .pipe(\n        tap(uiDef => {\n          if (!uiDef) {\n            throw new Error(`Component with name '${this.templateApiName}' not found.`);\n          }\n\n          this.uiDefinition$.next(uiDef);\n        }),\n        catchError(err => {\n          const message = 'Failed to resolve Guided Selling component. ' + (err.message ?? '');\n          this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n          return of();\n        }),\n        takeUntil(this.destroy$),\n      )\n      .subscribe();\n  }\n\n  private getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n    if (!this.customizationService?.getTemplateComponents) {\n      return of(undefined);\n    }\n\n    return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n      map(components => {\n        if (!components) {\n          return;\n        }\n\n        return components.map<ComponentAttachments>(component => ({\n          html: component.html,\n          css: component.css,\n          js: component.js,\n          json: component.json,\n        }));\n      }),\n    );\n  }\n\n  private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n    const template = this.flowInfo.templates.GUIDED_SELLING;\n    if (!template) {\n      return of(undefined);\n    }\n\n    return this.templatesApi.fetchComponentsAttachments$(template.id);\n  }\n\n  private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n    return of(undefined).pipe(\n      tap(() => {\n        if (!this.templateApiName) {\n          throw new Error(\"Flow 'guidedSelling' template is not defined.\");\n        }\n      }),\n      switchMap(() => this.getLocalMeta$()),\n      switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n      map(metaList => {\n        if (!metaList) {\n          return;\n        }\n\n        const uiDef: UIDefinition = {\n          name: '',\n          createdTimestamp: 0,\n          primary: true,\n          type: 'DEFAULT',\n          version: 2,\n          children: metaList.map(meta => ({\n            children: [],\n            template: meta.html && btoaSafe(meta.html),\n            script: meta.js && btoaSafe(meta.js),\n            styles: meta.css && btoaSafe(meta.css),\n          })),\n        };\n\n        return uiDef;\n      }),\n    );\n  }\n}\n","<ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n  <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { GuidedSellingComponent } from './guided-selling.component';\n\n@NgModule({\n  declarations: [GuidedSellingComponent],\n  imports: [CommonModule, PreviewModule],\n  exports: [GuidedSellingComponent],\n})\nexport class GuidedSellingModule {}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, Optional } from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FlowStateService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport {\n  BehaviorSubject,\n  catchError,\n  filter,\n  first,\n  map,\n  Observable,\n  of,\n  Subject,\n  switchMap,\n  takeUntil,\n  tap,\n} from 'rxjs';\n\n@Component({\n  selector: 'vl-flow-new-header',\n  templateUrl: './flow-header.component.html',\n  styleUrls: ['./flow-header.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowHeaderComponent implements OnDestroy {\n  public uiDefinition$ = new BehaviorSubject<UIDefinition | null>(null);\n\n  private templateApiName = '';\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private templatesApi: UITemplatesApiService,\n    private flowStateService: FlowStateService,\n    private flowInfo: FlowInfoService,\n    private toastService: ToastService,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    // wait until flow is initialized\n    this.flowStateService\n      .isInitialized$()\n      .pipe(\n        filter(Boolean),\n        first(),\n        tap(() => this.initialize()),\n        takeUntil(this.destroy$),\n      )\n      .subscribe();\n  }\n\n  public ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  private initialize(): void {\n    this.templateApiName = this.flowInfo.flow?.properties.templates?.flowHeader ?? '';\n\n    if (this.flowInfo.isLegacy && !this.templateApiName) {\n      return;\n    }\n\n    this.generateUIDefinition$()\n      .pipe(\n        tap(uiDef => {\n          if (!uiDef) {\n            throw new Error(`Component with name '${this.templateApiName}' not found.`);\n          }\n\n          this.uiDefinition$.next(uiDef);\n        }),\n        catchError(err => {\n          const message = 'Failed to resolve Flow Header component. ' + (err.message ?? '');\n          this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n          return of();\n        }),\n        takeUntil(this.destroy$),\n      )\n      .subscribe();\n  }\n\n  private getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n    if (!this.customizationService?.getTemplateComponents) {\n      return of(undefined);\n    }\n\n    return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n      map(components => {\n        if (!components) {\n          return;\n        }\n\n        return components.map<ComponentAttachments>(component => ({\n          html: component.html,\n          css: component.css,\n          js: component.js,\n          json: component.json,\n        }));\n      }),\n    );\n  }\n\n  private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n    const template = this.flowInfo.templates.FLOW_HEADER;\n    if (!template) {\n      return of(undefined);\n    }\n\n    return this.templatesApi.fetchComponentsAttachments$(template.id);\n  }\n\n  private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n    return of(undefined).pipe(\n      tap(() => {\n        if (!this.templateApiName) {\n          throw new Error(\"Flow 'flowHeader' template is not defined.\");\n        }\n      }),\n      switchMap(() => this.getLocalMeta$()),\n      switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n      map(metaList => {\n        if (!metaList) {\n          return;\n        }\n\n        const uiDef: UIDefinition = {\n          name: '',\n          createdTimestamp: 0,\n          primary: true,\n          type: 'DEFAULT',\n          version: 2,\n          children: metaList.map(meta => ({\n            children: [],\n            template: meta.html && btoaSafe(meta.html),\n            script: meta.js && btoaSafe(meta.js),\n            styles: meta.css && btoaSafe(meta.css),\n          })),\n        };\n\n        return uiDef;\n      }),\n    );\n  }\n}\n","<ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n  <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { FlowHeaderComponent } from './flow-header.component';\n\n@NgModule({\n  declarations: [FlowHeaderComponent],\n  imports: [CommonModule, PreviewModule],\n  exports: [FlowHeaderComponent],\n})\nexport class FlowNewHeaderModule {}\n","import { Injectable } from '@angular/core';\nimport {\n  ActivatedRoute,\n  ActivatedRouteSnapshot,\n  Event,\n  NavigationCancel,\n  NavigationEnd,\n  NavigationError,\n  NavigationStart,\n  Params,\n  Router,\n} from '@angular/router';\nimport { SalesforceIdUtils, UITemplateType } from '@veloceapps/core';\nimport { FlowAction } from '@veloceapps/sdk/cms';\nimport { ContextService, FlowInfoService, FlowStateService, IntegrationState } from '@veloceapps/sdk/core';\nimport { Observable, distinctUntilChanged, filter, from, map, of, shareReplay, startWith, tap } from 'rxjs';\nimport { VELOCE_FLOW_ROOT_ROUTE } from '../constants';\nimport { RouteWithId } from '../types/route.types';\n\n@Injectable({ providedIn: 'root' })\nexport class FlowRouterService {\n  private routeChange$: Observable<Event>;\n  private lastChildParams$: Observable<Params>;\n  private lastChildRoute$: Observable<ActivatedRouteSnapshot>;\n  private urlHistory: string[] = [];\n\n  public loading$: Observable<boolean>;\n\n  constructor(\n    private router: Router,\n    private route: ActivatedRoute,\n    private contextService: ContextService,\n    private integrationState: IntegrationState,\n    private flowInfoService: FlowInfoService,\n    private flowStateService: FlowStateService,\n  ) {\n    this.routeChange$ = this.router.events.pipe(\n      filter(e => e instanceof NavigationEnd),\n      shareReplay(),\n    );\n\n    this.lastChildParams$ = this.watchLastChildParams$(this.route).pipe(\n      startWith(this.getLastChildParams(this.route.snapshot)),\n      shareReplay(),\n    );\n    this.lastChildRoute$ = this.watchLastChildRoute$(this.route).pipe(\n      startWith(this.getLastChildRouteSnapshot(this.route.snapshot)),\n      shareReplay(),\n    );\n\n    this.loading$ = this.router.events.pipe(\n      filter(\n        e =>\n          e instanceof NavigationStart ||\n          e instanceof NavigationCancel ||\n          e instanceof NavigationEnd ||\n          e instanceof NavigationError,\n      ),\n      map(e => e instanceof NavigationStart),\n      startWith(false),\n      distinctUntilChanged(),\n    );\n\n    this.routeChange$.subscribe(() => {\n      this.urlHistory.push(this.router.url);\n\n      // Close Guided Selling when user navigates to another flow page\n      this.integrationState.dispatch(FlowAction.CloseGuidedSelling({ keepState: true }));\n    });\n  }\n\n  public getFlowRootRoute(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot | undefined {\n    const path = [...route.pathFromRoot];\n\n    while (path.length) {\n      const parent = path.pop();\n\n      if (!parent) {\n        break;\n      }\n\n      if ((parent.routeConfig as RouteWithId)?.id === VELOCE_FLOW_ROOT_ROUTE) {\n        return parent;\n      }\n    }\n\n    return;\n  }\n\n  public getFlowRootPath(route: ActivatedRouteSnapshot): string {\n    const rootRoute = this.getFlowRootRoute(route);\n    if (!rootRoute) {\n      return '';\n    }\n\n    const path = rootRoute.pathFromRoot\n      .map(r => r.url[0])\n      .filter(Boolean)\n      .join('/');\n\n    return '/' + path;\n  }\n\n  public get route$(): Observable<ActivatedRouteSnapshot> {\n    return this.lastChildRoute$;\n  }\n\n  public get params$(): Observable<Params> {\n    return this.lastChildParams$;\n  }\n\n  public get params(): Params {\n    return this.getLastChildParams(this.route.snapshot);\n  }\n\n  public getLastChildRoute = (route: ActivatedRoute): ActivatedRoute => {\n    return route.firstChild ? this.getLastChildRoute(route.firstChild) : route;\n  };\n\n  public getNthChildRoute = (route: ActivatedRoute, index: number): ActivatedRoute => {\n    if (index <= 0) {\n      return route;\n    }\n\n    return route.firstChild ? this.getNthChildRoute(route.firstChild, index - 1) : route;\n  };\n\n  public getLastChildRouteSnapshot = (route: ActivatedRouteSnapshot): ActivatedRouteSnapshot => {\n    return route.firstChild ? this.getLastChildRouteSnapshot(route.firstChild) : route;\n  };\n\n  public watchLastChildRoute$ = (route: ActivatedRoute): Observable<ActivatedRouteSnapshot> => {\n    return this.routeChange$.pipe(map(() => this.getLastChildRouteSnapshot(route.snapshot)));\n  };\n\n  public getLastChildParams = (route: ActivatedRouteSnapshot): Params => {\n    return route.firstChild ? this.getLastChildParams(route.firstChild) : route.params;\n  };\n\n  public watchLastChildParams$ = (route: ActivatedRoute): Observable<Params> => {\n    return this.routeChange$.pipe(map(() => this.getLastChildParams(route.snapshot)));\n  };\n\n  public getFlowSubpath$ = (): Observable<string> => {\n    return this.route$.pipe(\n      map(route => {\n        const url = route.url.join('/');\n        const flowRootUrl = this.getFlowRootPath(route);\n        return url.replace(flowRootUrl, '');\n      }),\n    );\n  };\n\n  public isConfigurationRoute$(): Observable<boolean> {\n    return this.getFlowSubpath$().pipe(map(url => url.startsWith('product')));\n  }\n\n  public isCartRoute$(): Observable<boolean> {\n    return this.getFlowSubpath$().pipe(map(url => url.startsWith('cart')));\n  }\n\n  public isCatalogRoute$(): Observable<boolean> {\n    return this.getFlowSubpath$().pipe(map(url => url.startsWith('catalog')));\n  }\n\n  public isAssetsRoute$(): Observable<boolean> {\n    return this.getFlowSubpath$().pipe(map(url => url.startsWith('assets')));\n  }\n\n  public navigateBack(): void {\n    const prevUrl = this.urlHistory[this.urlHistory.length - 2];\n\n    if (prevUrl) {\n      this.router.navigateByUrl(prevUrl);\n    }\n  }\n\n  public navigateTo(path: string, productId?: string, lineItemId?: string): void {\n    if (path === 'shopping-cart') {\n      this.navigateToShoppingCart();\n    } else if (path === 'catalog') {\n      this.navigateToCatalog();\n    } else if (path === 'assets') {\n      this.navigateToAssets();\n    } else if (path === 'product' && productId) {\n      this.navigateToProductConfiguration(productId, lineItemId);\n    }\n  }\n\n  public navigateToProductConfiguration(productId: string, lineItemId?: string): void {\n    let updateContext$;\n    if (this.flowInfoService.isLegacy) {\n      updateContext$ = of(undefined).pipe(\n        tap(() => {\n          this.contextService.update({ properties: { productId, lineItemId: lineItemId ?? '' } });\n        }),\n      );\n    } else {\n      updateContext$ = this.flowStateService.dispatch$(UITemplateType.FLOW_ENGINE, 'UPDATE_CONTEXT_PROPERTIES', {\n        productId,\n        lineItemId: lineItemId ?? '',\n      });\n    }\n    updateContext$\n      .pipe(\n        tap(() => {\n          const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n          const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n          this.router.navigate([flowRouteUrl, 'product'], {\n            queryParams: { ...routeSnapshot.queryParams, productId },\n          });\n        }),\n      )\n      .subscribe();\n  }\n\n  public navigateToShoppingCart(): void {\n    const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n    const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n    this.router.navigate([flowRouteUrl, 'cart'], { queryParams: routeSnapshot.queryParams });\n  }\n\n  public navigateToCatalog(): void {\n    const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n    const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n    this.router.navigate([flowRouteUrl, 'catalog'], { queryParams: routeSnapshot.queryParams });\n  }\n\n  public navigateToAssets(): void {\n    const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n    const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n    this.router.navigate([flowRouteUrl, 'assets'], { queryParams: routeSnapshot.queryParams });\n  }\n\n  public showErrorPage$(message: string, details?: string[]): Observable<false> {\n    const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n    const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n    return from(\n      this.router.navigate([flowRouteUrl, '404'], {\n        state: { message, type: 'error', ...(details && { details }) },\n        replaceUrl: true,\n      }),\n    ).pipe(map(() => false));\n  }\n\n  public switchObject(id: string): void {\n    const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n    const route = this.getLastChildRoute(this.route);\n\n    const objName = SalesforceIdUtils.getSfObjectNameById(id);\n\n    const queryParams = {\n      quoteId: objName === 'Quote' ? id : undefined,\n      accountId: objName === 'Account' ? id : undefined,\n      orderId: objName === 'Order' ? id : undefined,\n    };\n    this.router.navigate([], { relativeTo: route, queryParams: { ...routeSnapshot.queryParams, ...queryParams } });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { getMaxRenewalTermsValue, mapShoppingCartSettings } from '@veloceapps/core';\nimport { ContextService, RuntimeSettingsService } from '@veloceapps/sdk/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { Observable } from 'rxjs';\nimport { FlowDialogComponent } from '../components/dialog/dialog.component';\nimport { FlowDialogConfig } from '../components/dialog/dialog.types';\n\n@Injectable()\nexport class FlowDialogService {\n  constructor(\n    private dialogService: DialogService,\n    private contextService: ContextService,\n    private runtimeSettings: RuntimeSettingsService,\n  ) {}\n\n  public show(config: FlowDialogConfig): Observable<boolean> {\n    return this.dialogService.open(FlowDialogComponent, {\n      dismissableMask: true,\n      closeOnEscape: true,\n      closable: true,\n      showHeader: false,\n      width: '320px',\n      data: { config },\n      styleClass: 'flow-dialog',\n    }).onClose;\n  }\n\n  public showEmptyCartDialog(): Observable<boolean> {\n    return this.show({\n      title: 'No Products in Quote',\n      description: 'There are no products in your Quote. To save a Quote, add at least one product.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showReadonlyModeDialog(): Observable<boolean> {\n    const ctx = this.contextService.resolve();\n    const objectName = ctx.mode ? ctx.mode[0]?.toUpperCase() + ctx.mode.substring(1).toLowerCase() : 'Object';\n\n    return this.show({\n      title: 'Error',\n      description: `${objectName} Cannot be Saved`,\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showQuoteReadonlyModeDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Quote Cannot be Saved',\n      description:\n        'It is only possible to save quotes with the “Draft” status. Please create a new quote to make and save changes.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showQuoteOutsideShoppingCartDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Quote Cannot be Saved',\n      description: 'It is only possible to save quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showAccountNoChangesDialog(): Observable<boolean> {\n    return this.show({\n      title: 'No Changes to Save',\n      description: 'There are no changes since the last update. Please make changes to proceed.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showUnsavedChangesDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Unsaved Changes',\n      description: 'Are you sure you want to leave this page and discard your unsaved changes?',\n      primaryButton: 'Keep Editing',\n      secondaryButton: 'Discard Changes',\n      oppositeButtonActions: true,\n    });\n  }\n\n  public showReadonlyQuoteSubmitFailureDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Cannot Submit for Approval',\n      description:\n        'It is only possible to submit for approval quotes with the “Draft“ status. Please create a new quote to proceed.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showOutsideShoppingCartQuoteSubmitFailureDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Cannot Submit for Approval',\n      description:\n        'It is only possible to submit quotes for approval from the Shopping Cart. To proceed, go to the Shopping Cart.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showAccountSubmitFailureDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Save Changes',\n      description:\n        'To submit for approval, save the quote first, and then submit it for approval from the Shopping Cart.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showDocgenAccountUnsavedChangesDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Save Quote',\n      description:\n        'To generate a document, save the quote first, and then generate the document from the Shopping Cart.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showDocgenReadonlyDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Document Generation is not Available',\n      description:\n        'It is only possible to generate documents for quotes with the “Draft” status. Please create a new quote to generate a document.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showDocgenOutsideShoppingCartDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Document Generation is not Available',\n      description:\n        'It is only possible to generate documents for quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showDocgenUnsavedChangesDialog(): Observable<boolean> {\n    return this.show({\n      title: 'Unsaved Changes',\n      description: 'To generate a document, save the quote first.',\n      primaryButton: 'Save and proceed',\n      secondaryButton: 'Cancel',\n    });\n  }\n\n  public showTermsLimitReachedDialog(): Observable<boolean> {\n    const shoppingCartSettings = mapShoppingCartSettings(this.runtimeSettings.getShoppingCartSettings() || []);\n    const maxRenewalTerms = getMaxRenewalTermsValue(shoppingCartSettings);\n    return this.show({\n      title: 'Terms Limit Reached',\n      description: `You have reached the term quantity limit: ${maxRenewalTerms}. You can increase the limit in the Shopping Cart Settings.`,\n      primaryButton: 'Ok',\n    });\n  }\n\n  public showDialog(dialog: keyof Omit<FlowDialogService, 'show' | 'constructor'>): Observable<boolean> {\n    const dialogFunction = this[dialog].bind(this);\n    return dialogFunction(dialog);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { LineItem, UITemplateType } from '@veloceapps/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport {\n  ConfigurationService,\n  ConfigurationStateService,\n  FlowConfigurationService,\n  FlowInfoService,\n  FlowStateService,\n  QuoteDraftService,\n} from '@veloceapps/sdk/core';\nimport { map, Observable, of, Subject, switchMap, take, takeUntil, tap } from 'rxjs';\nimport { FlowDialogService } from './flow-dialog.service';\nimport { FlowRouterService } from './flow-router.service';\n\n@Injectable()\nexport class FlowService {\n  private cleanup$ = new Subject<void>();\n\n  constructor(\n    private integrationState: IntegrationState,\n    private flowRouterService: FlowRouterService,\n    private quoteDraftService: QuoteDraftService,\n    private configurationService: ConfigurationService,\n    private configurationStateService: ConfigurationStateService,\n    private flowDialogService: FlowDialogService,\n    private flowConfigurationService: FlowConfigurationService,\n    private flowInfoService: FlowInfoService,\n    private flowStateService: FlowStateService,\n  ) {}\n\n  public cleanup(): void {\n    this.cleanup$.next();\n  }\n\n  public initSubscriptions(): void {\n    this.integrationState\n      .listen$<Parameters<typeof FlowAction.ConfigureProductAction>[0]>(FlowAction.FLOW_CONFIGURE_PRODUCT)\n      .pipe(\n        switchMap(payload => {\n          if (this.flowInfoService.isLegacy) {\n            const productId =\n              payload.productId ??\n              this.quoteDraftService.currentState.find(li => li.id === payload.lineItemId)?.productId;\n\n            return of({ ...payload, productId });\n          }\n\n          return this.prepareConfiguration$(payload.lineItemId).pipe(map(() => payload));\n        }),\n        tap(payload => {\n          if (payload.productId) {\n            this.flowRouterService.navigateToProductConfiguration(payload.productId, payload.lineItemId);\n          } else {\n            console.warn(\"Parameter 'productId' is needed to start configuration\");\n          }\n        }),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$<{ id: string }>(FlowAction.FLOW_SWITCH_OBJECT)\n      .pipe(\n        tap(payload => {\n          this.flowRouterService.switchObject(payload.id);\n        }),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.FLOW_NAVIGATE_BACK)\n      .pipe(\n        switchMap(() => this.configurationStateService.cancelConfiguration()),\n        tap(() => this.flowRouterService.navigateBack()),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.FLOW_NAVIGATE_TO)\n      .pipe(\n        switchMap(payload => this.configurationStateService.cancelConfiguration().pipe(map(() => payload))),\n        tap(payload => {\n          if (payload.path === 'product') {\n            this.integrationState.dispatch(FlowAction.ConfigureProductAction(payload));\n          } else {\n            this.flowRouterService.navigateTo(payload.path, payload.productId, payload.lineItemId);\n          }\n        }),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.OPEN_DIALOG)\n      .pipe(\n        switchMap(payload => this.flowDialogService.showDialog(payload.dialog).pipe(take(1))),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe(dialogResult => {\n        this.integrationState.patchState({ dialogResult });\n      });\n\n    this.integrationState\n      .listen$(FlowAction.FLOW_NAVIGATE_TO_CATALOG)\n      .pipe(\n        tap(() => this.flowRouterService.navigateToCatalog()),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.FLOW_NAVIGATE_TO_SHOPPING_CART)\n      .pipe(\n        tap(() => this.flowRouterService.navigateToShoppingCart()),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)\n      .pipe(\n        switchMap(() => {\n          if (this.flowInfoService.isLegacy) {\n            return this.legacyApplyConfiguration();\n          } else {\n            return this.configurationStateService.saveConfiguration(true).pipe(\n              switchMap(() => this.configurationStateService.cancelConfiguration()),\n              switchMap(() =>\n                this.flowStateService.dispatch$(UITemplateType.FLOW_ENGINE, 'MODIFY_ASSETS', {\n                  addConfiguringAssetId: true,\n                  enable: true,\n                }),\n              ),\n            );\n          }\n        }),\n        tap(() => {\n          this.configurationService.hasUnsavedChanges = false;\n          this.flowRouterService.navigateToShoppingCart();\n        }),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.updateFlowParams();\n  }\n\n  private updateFlowParams(): void {\n    this.flowRouterService\n      .getFlowSubpath$()\n      .pipe(\n        map(path => path.split('/')?.[0]),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe(flowPath => this.integrationState.patchState({ flowPath }));\n\n    this.flowRouterService.route$\n      .pipe(\n        map(path => path.queryParams['productId']),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe(productId => this.integrationState.patchState({ productId }));\n  }\n\n  private prepareConfiguration$(lineItemId?: string): Observable<void> {\n    if (!lineItemId) {\n      return of(undefined);\n    }\n\n    return this.flowStateService.dispatch$(UITemplateType.FLOW_ENGINE, 'UPDATE_PRICE_LIST', {\n      lineItemId,\n    });\n  }\n\n  private legacyApplyConfiguration(): Observable<void> {\n    const quoteDraft = this.quoteDraftService.quoteDraft;\n    const lineItem = this.configurationService.getSnapshot();\n\n    if (!quoteDraft || !lineItem) {\n      return of(undefined);\n    }\n\n    const isNewLineItem = quoteDraft.currentState.every(li => li.id !== lineItem.id);\n\n    let updatedState: LineItem[];\n    if (isNewLineItem) {\n      updatedState = [...quoteDraft.currentState, lineItem];\n    } else {\n      updatedState = quoteDraft.currentState.map(li => (li.id === lineItem.id ? lineItem : li));\n    }\n\n    return this.flowConfigurationService.calculate$({ ...quoteDraft, currentState: updatedState });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { FlowAction } from '@veloceapps/sdk/cms';\nimport { IntegrationState } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Subject, takeUntil, tap } from 'rxjs';\n\n@Injectable()\nexport class FlowGuidedSellingService {\n  private cleanup$ = new Subject<void>();\n  private isVisibleSubj$ = new BehaviorSubject(false);\n\n  public isVisible$ = this.isVisibleSubj$.asObservable();\n\n  constructor(private integrationState: IntegrationState) {\n    this.initSubscriptions();\n  }\n\n  public cleanup(): void {\n    this.cleanup$.next();\n  }\n\n  private initSubscriptions(): void {\n    this.integrationState\n      .listen$(FlowAction.OPEN_GUIDED_SELLING)\n      .pipe(\n        tap(() => this.isVisibleSubj$.next(true)),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.CLOSE_GUIDED_SELLING)\n      .pipe(\n        tap(() => this.isVisibleSubj$.next(false)),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n  }\n}\n","import { ChangeDetectionStrategy, Component, OnDestroy } from '@angular/core';\nimport { FlowInfoService } from '@veloceapps/sdk/core';\nimport { combineLatest, map, Observable } from 'rxjs';\nimport { FlowService } from './services';\nimport { FlowRouterService } from './services/flow-router.service';\nimport { FlowGuidedSellingService } from './services/guided-selling.service';\n\n@Component({\n  selector: 'vl-flow',\n  templateUrl: './flow.component.html',\n  styleUrls: ['./flow.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowComponent implements OnDestroy {\n  public isLoading$: Observable<boolean>;\n  public showHeader$: Observable<boolean>;\n  public isStandalone$: Observable<boolean>;\n  public guidedSellingVisible$: Observable<boolean>;\n\n  constructor(\n    private routerService: FlowRouterService,\n    private flowService: FlowService,\n    private flowInfo: FlowInfoService,\n    private guidedSellingService: FlowGuidedSellingService,\n  ) {\n    this.isLoading$ = this.routerService.loading$;\n\n    this.showHeader$ = combineLatest([this.routerService.route$, this.flowInfo.flow$]).pipe(\n      map(([route, flow]) => route.data['showHeader'] && !flow?.properties.standalone),\n    );\n\n    this.isStandalone$ = this.flowInfo.flow$.pipe(map(flow => Boolean(flow?.properties.standalone)));\n    this.guidedSellingVisible$ = this.guidedSellingService.isVisible$;\n\n    this.flowService.initSubscriptions();\n  }\n\n  ngOnDestroy() {\n    this.flowService.cleanup();\n  }\n}\n","<vl-flow-new-header *ngIf=\"showHeader$ | async\"></vl-flow-new-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\n  <div class=\"guided-selling\" [ngClass]=\"{ hidden: (guidedSellingVisible$ | async) === false }\">\n    <vl-flow-guided-selling *ngIf=\"(isStandalone$ | async) !== true\"></vl-flow-guided-selling>\n  </div>\n</div>\n\n<ng-container *ngIf=\"(isStandalone$ | async) !== true\">\n  <vl-flow-doc-gen></vl-flow-doc-gen>\n</ng-container>\n","import { ConfigurationContextMode, ContextProperties, FlowProperties, SalesforceIdUtils } from '@veloceapps/core';\n\nexport const getFlowObjectIdPropertyName = (id: string): string => {\n  const objectName = SalesforceIdUtils.getSfObjectNameById(id);\n\n  switch (objectName) {\n    case 'Account':\n      return 'accountId';\n    case 'Order':\n      return 'orderId';\n    case 'Quote':\n    default:\n      return 'quoteId';\n  }\n};\n\ninterface DefaultPropertiesFnParams {\n  mode?: ConfigurationContextMode;\n  flowParams?: FlowProperties;\n}\n\nexport const getDefaultProperties = (params: DefaultPropertiesFnParams): ContextProperties => {\n  const properties: ContextProperties = {};\n\n  let standalone = params.flowParams?.standalone;\n  if (params.flowParams?.entryPath.includes('/product') || params.mode === ConfigurationContextMode.REMOTE) {\n    standalone = standalone ?? true;\n  }\n\n  if (standalone != null) {\n    properties.standalone = standalone ? 'true' : 'false';\n  }\n\n  return properties;\n};\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router } from '@angular/router';\nimport { ConfigurationContextMode, extractErrorDetails, isVeloceError, RpcMessage, VlWindow } from '@veloceapps/core';\nimport { ContextService, RuntimeSettingsService } from '@veloceapps/sdk/core';\nimport { catchError, forkJoin, map, Observable, of, tap } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\nimport { getDefaultProperties } from '../utils';\n\ndeclare const window: VlWindow;\n\n@Injectable()\nexport class ContextGuard implements CanActivate, CanActivateChild {\n  constructor(\n    protected router: Router,\n    protected routerService: FlowRouterService,\n    protected contextService: ContextService,\n    protected runtimeSettingsService: RuntimeSettingsService,\n  ) {}\n\n  public checkActivation(route: ActivatedRouteSnapshot): Observable<boolean> {\n    const { queryParams } = route;\n    const { accountId, quoteId, orderId } = queryParams;\n    const rpcMessage = window.RPC_MESSAGE;\n    const mode = this.getConfigurationContextMode(accountId, quoteId, orderId, rpcMessage);\n\n    // Restrict if mode is not defined\n    if (mode == null) {\n      return this.routerService.showErrorPage$('Mode is undefined');\n    }\n\n    const headerId = accountId || quoteId || orderId || this.rpcMessageId || 'empty-for-test-mode';\n\n    // Allow if context is already initialized with the same headerId\n    if (this.contextService.isInitialized) {\n      const currentContext = this.contextService.resolve();\n\n      if (headerId && currentContext.headerId === headerId) {\n        return of(true);\n      }\n    }\n\n    // Initialize context and runtime settings\n    return forkJoin([this.contextService.create(headerId, mode), this.runtimeSettingsService.create()]).pipe(\n      tap(([context]) => {\n        this.contextService.update({\n          ...context,\n          properties: {\n            ...context.properties,\n            ...(queryParams ?? {}),\n            ...getDefaultProperties({ mode }),\n          },\n        });\n\n        // Init currency settings\n        this.runtimeSettingsService.initCurrency(context.properties['CurrencyIsoCode']);\n      }),\n      map(() => true),\n      catchError(e => {\n        const message = e instanceof HttpErrorResponse ? e.error.message : e;\n        const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];\n        return this.routerService.showErrorPage$(message, errorDetails);\n      }),\n    );\n  }\n\n  public canActivate(route: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n    return this.checkActivation(route);\n  }\n\n  public canActivateChild(childRoute: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n    return this.checkActivation(childRoute);\n  }\n\n  private get rpcMessageId(): string | undefined {\n    if (!window.RPC_MESSAGE) {\n      return;\n    }\n\n    const rpcMessage: RpcMessage = JSON.parse(window.RPC_MESSAGE);\n    const veloceReferenceId = rpcMessage.configuration?.VeloceReferenceId;\n    const quoteId = rpcMessage.quote?.Id;\n\n    return veloceReferenceId || quoteId;\n  }\n\n  private getConfigurationContextMode(\n    accountId?: string,\n    quoteId?: string,\n    orderId?: string,\n    rpcMessage?: string,\n  ): ConfigurationContextMode | undefined {\n    if (accountId) {\n      return ConfigurationContextMode.ACCOUNT;\n    }\n\n    if (quoteId) {\n      return ConfigurationContextMode.QUOTE;\n    }\n\n    if (orderId) {\n      return ConfigurationContextMode.ORDER;\n    }\n\n    if (rpcMessage) {\n      return ConfigurationContextMode.REMOTE;\n    }\n\n    return;\n  }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn } from '@angular/router';\nimport { extractErrorDetails, isVeloceError } from '@veloceapps/core';\nimport {\n  ConfigurationService,\n  ContextService,\n  FlowInfoService,\n  FlowStateService,\n  IntegrationState,\n  QuoteDraftService,\n} from '@veloceapps/sdk/core';\nimport { catchError, map } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\nexport const keepFlowInitialized: CanActivateFn = (route: ActivatedRouteSnapshot) => {\n  const contextService = inject(ContextService);\n  const flowState = inject(FlowStateService);\n  const flowInfoService = inject(FlowInfoService);\n  const routerService = inject(FlowRouterService);\n  const quoteDraft = inject(QuoteDraftService);\n  const configurationService = inject(ConfigurationService);\n  const integrationState = inject(IntegrationState);\n\n  const { flowId } = route.queryParams;\n  const flow = flowInfoService.flow;\n\n  if (flow && flow?.id === flowId) {\n    return true;\n  }\n\n  // Cleanup\n  flowState.cleanup();\n  quoteDraft.reset();\n  configurationService.reset();\n  integrationState.clear();\n  flowInfoService.cleanup();\n  contextService.delete();\n\n  if (!flowId) {\n    return true;\n  }\n\n  return flowInfoService.init$(flowId, route.queryParams).pipe(\n    map(() => true),\n    catchError(e => {\n      const message = e instanceof HttpErrorResponse ? e.error.message : e;\n      const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];\n      return routerService.showErrorPage$(message, errorDetails);\n    }),\n  );\n};\n","import { Component, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { ConfigurationService, ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Observable, map, of } from 'rxjs';\nimport { FlowDialogService } from '../services/flow-dialog.service';\n\n@Injectable()\nexport class ProductUnloadGuard implements CanDeactivate<any> {\n  constructor(\n    private router: Router,\n    private contextService: ContextService,\n    private quoteDraftService: QuoteDraftService,\n    private configurationService: ConfigurationService,\n    private flowDialogService: FlowDialogService,\n  ) {}\n\n  public canDeactivate(\n    _: Component,\n    route: ActivatedRouteSnapshot,\n    currentState: RouterStateSnapshot,\n    nextState?: RouterStateSnapshot,\n  ): Observable<boolean | UrlTree> {\n    let observable = of(true);\n\n    if (!this.quoteDraftService.isStandalone && this.configurationService.hasUnsavedChanges) {\n      observable = this.flowDialogService.showUnsavedChangesDialog();\n    }\n\n    return observable.pipe(\n      map(unload => {\n        if (unload) {\n          this.configurationService.reset();\n          this.contextService.update({ properties: { productId: undefined, lineItemId: undefined } });\n\n          if (!nextState || currentState.url === nextState.url) {\n            return true;\n          }\n\n          // clear obsolete queryParams\n          const urlTree = this.router.parseUrl(nextState.url);\n\n          if (!urlTree.queryParams['productId']) {\n            return true;\n          }\n\n          delete urlTree.queryParams['productId'];\n\n          // replace url after deactivation has finished\n          setTimeout(() => this.router.navigateByUrl(urlTree.toString(), { replaceUrl: true }));\n\n          return true;\n        }\n\n        return false;\n      }),\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanDeactivate, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable({ providedIn: 'root' })\nexport class RootGuard implements CanActivate, CanDeactivate<any> {\n  private initialized = false;\n\n  constructor(private router: Router, private routerService: FlowRouterService) {}\n\n  public canActivate(route: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n    // We always need to initialize root component first, and only then start checking guards/resolvers\n\n    if (!this.initialized) {\n      this.initialized = true;\n      const navToRestore = this.router.getCurrentNavigation();\n\n      const rootUrl = this.routerService.getFlowRootPath(route);\n      this.router\n        .navigate([rootUrl], {\n          replaceUrl: !navToRestore?.previousNavigation,\n          skipLocationChange: true,\n        })\n        .then(success => {\n          if (!success || !navToRestore) {\n            return;\n          }\n\n          setTimeout(() => {\n            this.router.navigateByUrl(navToRestore.extractedUrl, navToRestore.extras);\n          });\n        });\n    }\n\n    return true;\n  }\n\n  public canDeactivate(): boolean {\n    this.initialized = false;\n    return true;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  OnDestroy,\n  OnInit,\n  Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\n\ninterface State {\n  loading: boolean;\n  failure: boolean;\n}\n\n@Component({\n  selector: 'vl-flow-assets',\n  templateUrl: './assets.component.html',\n  styleUrls: ['./assets.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AssetsComponent implements OnInit, OnDestroy {\n  public uiDefinition?: UIDefinition = undefined;\n  public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n  private templateApiName = '';\n  private destroyed$ = new Subject<void>();\n\n  constructor(\n    private templatesApi: UITemplatesApiService,\n    private cdr: ChangeDetectorRef,\n    private toastService: ToastService,\n    private flowInfo: FlowInfoService,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    this.templateApiName = this.flowInfo.flow?.properties.templates?.assets ?? '';\n  }\n\n  public ngOnInit(): void {\n    this.generateUIDefinition$()\n      .pipe(\n        tap(uiDef => {\n          if (!uiDef) {\n            throw new Error(`Component with name '${this.templateApiName}' not found.`);\n          }\n\n          this.uiDefinition = uiDef;\n          this.state$.next({ loading: false, failure: false });\n        }),\n        catchError(err => {\n          const message = 'Failed to resolve Assets component. ' + (err.message ?? '');\n          this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n          this.uiDefinition = undefined;\n          this.state$.next({ loading: false, failure: true });\n          return of();\n        }),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe(() => this.cdr.detectChanges());\n  }\n\n  public ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n  }\n\n  private getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n    if (!this.customizationService?.getTemplateComponents) {\n      return of(undefined);\n    }\n\n    return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n      map(components => {\n        if (!components) {\n          return;\n        }\n\n        return components.map<ComponentAttachments>(component => ({\n          html: component.html,\n          css: component.css,\n          js: component.js,\n          json: component.json,\n        }));\n      }),\n    );\n  }\n\n  private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n    const template = this.flowInfo.templates.SHOPPING_CART;\n    if (!template) {\n      return of(undefined);\n    }\n\n    return this.templatesApi.fetchComponentsAttachments$(template.id);\n  }\n\n  private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n    return of(undefined).pipe(\n      tap(() => {\n        if (!this.templateApiName) {\n          throw new Error(\"Flow 'assets' template is not defined.\");\n        }\n      }),\n      switchMap(() => this.getLocalMeta$()),\n      switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n      map(metaList => {\n        if (!metaList) {\n          return;\n        }\n\n        const uiDef: UIDefinition = {\n          name: '',\n          createdTimestamp: 0,\n          primary: true,\n          type: 'DEFAULT',\n          version: 2,\n          children: metaList.map(meta => ({\n            children: [],\n            template: meta.html && btoaSafe(meta.html),\n            script: meta.js && btoaSafe(meta.js),\n            styles: meta.css && btoaSafe(meta.css),\n          })),\n        };\n\n        return uiDef;\n      }),\n    );\n  }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { AssetsComponent } from './assets.component';\n\n@NgModule({\n  declarations: [AssetsComponent],\n  imports: [CommonModule, PreviewModule, LoaderModule],\n  exports: [AssetsComponent],\n})\nexport class AssetsModule {}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  OnDestroy,\n  OnInit,\n  Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\n\ninterface State {\n  loading: boolean;\n  failure: boolean;\n}\n\n@Component({\n  selector: 'vl-flow-catalog',\n  templateUrl: './catalog.component.html',\n  styleUrls: ['./catalog.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CatalogComponent implements OnInit, OnDestroy {\n  public uiDefinition?: UIDefinition = undefined;\n  public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n  private templateApiName = '';\n  private destroyed$ = new Subject<void>();\n\n  constructor(\n    private templatesApi: UITemplatesApiService,\n    private cdr: ChangeDetectorRef,\n    private toastService: ToastService,\n    private flowInfo: FlowInfoService,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    this.templateApiName = this.flowInfo.flow?.properties.templates?.catalog ?? '';\n  }\n\n  public ngOnInit(): void {\n    this.generateUIDefinition$()\n      .pipe(\n        tap(uiDef => {\n          if (!uiDef) {\n            throw new Error(`Component with name '${this.templateApiName}' not found.`);\n          }\n\n          this.uiDefinition = uiDef;\n          this.state$.next({ loading: false, failure: false });\n        }),\n        catchError(err => {\n          const message = 'Failed to resolve Catalog component. ' + (err.message ?? '');\n          this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n          this.uiDefinition = undefined;\n          this.state$.next({ loading: false, failure: true });\n          return of();\n        }),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe(() => this.cdr.detectChanges());\n  }\n\n  public ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n  }\n\n  private getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n    if (!this.customizationService?.getTemplateComponents) {\n      return of(undefined);\n    }\n\n    return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n      map(components => {\n        if (!components) {\n          return;\n        }\n\n        return components.map<ComponentAttachments>(component => ({\n          html: component.html,\n          css: component.css,\n          js: component.js,\n          json: component.json,\n        }));\n      }),\n    );\n  }\n\n  private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n    const template = this.flowInfo.templates.CATALOG;\n    if (!template) {\n      return of(undefined);\n    }\n\n    return this.templatesApi.fetchComponentsAttachments$(template.id);\n  }\n\n  private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n    return of(undefined).pipe(\n      tap(() => {\n        if (!this.templateApiName) {\n          throw new Error(\"Flow 'catalog' template is not defined.\");\n        }\n      }),\n      switchMap(() => this.getLocalMeta$()),\n      switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n      map(metaList => {\n        if (!metaList) {\n          return;\n        }\n\n        const uiDef: UIDefinition = {\n          name: '',\n          createdTimestamp: 0,\n          primary: true,\n          type: 'DEFAULT',\n          version: 2,\n          children: metaList.map(meta => ({\n            children: [],\n            template: meta.html && btoaSafe(meta.html),\n            script: meta.js && btoaSafe(meta.js),\n            styles: meta.css && btoaSafe(meta.css),\n          })),\n        };\n\n        return uiDef;\n      }),\n    );\n  }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { CatalogComponent } from './catalog.component';\n\n@NgModule({\n  declarations: [CatalogComponent],\n  imports: [CommonModule, PreviewModule, LoaderModule],\n  exports: [CatalogComponent],\n})\nexport class CatalogModule {}\n","import { HttpParams } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { FlowsApiService } from '@veloceapps/api';\nimport { Flow } from '@veloceapps/core';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Observable, shareReplay } from 'rxjs';\nimport { getFlowObjectIdPropertyName } from '../../utils';\n\n@Component({\n  selector: 'vl-flow-debug',\n  templateUrl: './debug.component.html',\n  styleUrls: ['./debug.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DebugComponent {\n  public form = new FormGroup({\n    id: new FormControl(''),\n  });\n\n  public selectedFlow?: Flow;\n  public flows$: Observable<Flow[]>;\n\n  constructor(\n    private flowsApiService: FlowsApiService,\n    private router: Router,\n    private activatedRoute: ActivatedRoute,\n    private context: ContextService,\n    private quoteDraftService: QuoteDraftService,\n  ) {\n    this.flows$ = this.flowsApiService.fetchFlows().pipe(shareReplay());\n  }\n\n  public runFlow(): void {\n    const { id } = this.form.value;\n    const objectPropertyName = id && getFlowObjectIdPropertyName(id);\n\n    if (!id || !objectPropertyName || !this.selectedFlow) {\n      return;\n    }\n\n    // Delete context before starting a new flow\n    this.context.delete();\n    this.quoteDraftService.reset();\n\n    this.router.navigate(['..', 'flows'], {\n      queryParams: {\n        flowId: this.selectedFlow.id,\n        [objectPropertyName]: id,\n        ...this.selectedFlow.properties.queryParams,\n      },\n      relativeTo: this.activatedRoute,\n    });\n  }\n\n  public getQueryParamsString(params: Params): string {\n    return new HttpParams({ fromObject: params }).toString();\n  }\n}\n","<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  </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      <th [width]=\"100\">Standalone</th>\n      <th [width]=\"100\">Stateful</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.properties.entryPath }}</td>\n      <td class=\"cell-query-params\">{{ getQueryParamsString(flow.properties.queryParams) }}</td>\n      <td>{{ flow.properties.standalone }}</td>\n      <td>{{ flow.properties.stateful }}</td>\n    </tr>\n  </tbody>\n</table>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule, Routes } from '@angular/router';\nimport { ButtonModule } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { DebugComponent } from './debug.component';\n\nconst routes: Routes = [{ path: '', component: DebugComponent }];\n\n@NgModule({\n  declarations: [DebugComponent],\n  imports: [\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n    RouterModule.forChild(routes),\n    RadioButtonModule,\n    ButtonModule,\n    InputTextModule,\n    DropdownModule,\n  ],\n})\nexport class DebugModule {}\n","import { ChangeDetectionStrategy, Component, Inject, Optional } from '@angular/core';\nimport { LineItem, QuoteDraft, UIDefinition } from '@veloceapps/core';\nimport { CMSPreviewConfig } from '@veloceapps/sdk/cms';\nimport {\n  ConfigurationRuntimeService,\n  ConfigurationService,\n  ConfigurationStateService,\n  ContextService,\n  FlowCustomization,\n  FlowInfoService,\n  FlowStateService,\n  FLOW_CUSTOMIZATION,\n  IntegrationState,\n  QuoteDraftService,\n} from '@veloceapps/sdk/core';\nimport { BehaviorSubject, first, map, Observable, of, switchMap, tap } from 'rxjs';\n\n@Component({\n  selector: 'vl-flow-product',\n  templateUrl: './product.component.html',\n  styleUrls: ['./product.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProductComponent {\n  public config: CMSPreviewConfig;\n  public uiDefinition$ = new BehaviorSubject<UIDefinition | undefined>(undefined);\n\n  constructor(\n    private contextService: ContextService,\n    private configurationRuntimeService: ConfigurationRuntimeService,\n    private configurationService: ConfigurationService,\n    private configurationStateService: ConfigurationStateService,\n    private quoteDraftService: QuoteDraftService,\n    private flowInfoService: FlowInfoService,\n    private flowStateService: FlowStateService,\n    private integrationState: IntegrationState,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    this.config = {\n      init$: () => this.init$(),\n    };\n  }\n\n  private customizeUI$(): Observable<void> {\n    const { productId } = this.configurationRuntimeService.runtimeContext ?? {};\n    if (!productId || !this.customizationService?.getUiDefinition) {\n      return of(undefined);\n    }\n\n    return this.customizationService.getUiDefinition(productId).pipe(\n      map(uiDefinitionContainer => {\n        if (uiDefinitionContainer) {\n          this.configurationRuntimeService.overrideUIDefinition(uiDefinitionContainer);\n        }\n      }),\n    );\n  }\n\n  private init$(): Observable<void> {\n    let quoteDraft$: Observable<QuoteDraft | undefined>;\n    if (this.flowInfoService.isLegacy || !this.flowInfoService.isStateful) {\n      quoteDraft$ = this.quoteDraftService.quoteDraft$;\n    } else {\n      quoteDraft$ = of(undefined);\n    }\n    return quoteDraft$.pipe(\n      first(),\n      switchMap(quote => {\n        const contextProperties = this.contextService.resolve().properties;\n        const productId = contextProperties.productId ?? this.flowInfoService.flow?.properties.queryParams['productId'];\n\n        if (!productId) {\n          throw new Error(`Unable to start configuration for 'productId == null'`);\n        }\n\n        if (!quote) {\n          const offeringId = contextProperties.offeringId;\n          return this.configurationRuntimeService.init({ productId, offeringId });\n        }\n\n        const lineItem = this.getLineItem(quote, productId, contextProperties.lineItemId);\n        if (lineItem) {\n          this.configurationService.setConfigurableRamp(lineItem);\n        }\n\n        const { offeringId } = lineItem ?? {};\n\n        return this.configurationRuntimeService.init({ productId, offeringId });\n      }),\n      switchMap(() => this.customizeUI$()),\n      tap(() => {\n        const uiDefinition = this.configurationRuntimeService.runtimeContext?.uiDefinitionContainer?.source;\n        if (uiDefinition) {\n          this.uiDefinition$.next(uiDefinition);\n        } else {\n          throw new Error('Product does not have Configuration UI');\n        }\n      }),\n      tap(() => {\n        if (this.configurationRuntimeService.initializationProps) {\n          this.configurationRuntimeService.initializationProps.attributesMap =\n            this.integrationState.state.guidedSelling;\n        }\n      }),\n      switchMap(() => this.configurationStateService.init$()),\n    );\n  }\n\n  private getLineItem(quote: QuoteDraft, productId: string, lineItemId?: string): LineItem | undefined {\n    // search by lineItemId first\n    let li: LineItem | undefined = quote.currentState.find(li => li.id === lineItemId);\n\n    if (!li && this.quoteDraftService.isStandalone) {\n      li = quote.currentState.find(li => li.productId === productId);\n    }\n\n    // If still not found, is could be an asset\n    if (!li) {\n      li = this.quoteDraftService.assetsState?.currentState.find(li => li.id === lineItemId);\n    }\n\n    return li;\n  }\n}\n","<vl-cms-preview [uiDefinition]=\"$any(uiDefinition$ | async)\" [config]=\"config\"></vl-cms-preview>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { ProductComponent } from './product.component';\n\n@NgModule({\n  declarations: [ProductComponent],\n  imports: [CommonModule, PreviewModule, LoaderModule],\n  exports: [ProductComponent],\n})\nexport class ProductModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n  selector: 'vl-flow-record-not-found',\n  templateUrl: './record-not-found.component.html',\n  styleUrls: ['./record-not-found.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RecordNotFoundComponent {\n  public message: string;\n  public subMessage = '';\n  public type = '';\n  public details: string[];\n\n  constructor(private router: Router, private route: ActivatedRoute) {\n    const navigation = this.router.getCurrentNavigation();\n    const { state } = navigation?.extras || {};\n\n    this.message = state?.['message'];\n    this.type = state?.['type'] || '';\n    this.details = state?.['details'];\n    if (typeof this.message === 'string') {\n      this.subMessage = this.message.includes('/describe') ? 'A potential problem with permissions' : '';\n    }\n  }\n}\n","<div class=\"row\">\n  <div class=\"col-md-12\">\n    <div class=\"message-wrapper\">\n      <div *ngIf=\"message; else defaultMessage\">\n        <p class=\"text message-text\" [class]=\"type\">{{ message }}</p>\n\n        <p *ngIf=\"subMessage\" class=\"text\">{{ subMessage }}</p>\n\n        <div *ngIf=\"details && details.length > 0\">\n          <div *ngFor=\"let detail of details\" class=\"text\">{{ detail }}</div>\n        </div>\n      </div>\n\n      <ng-template #defaultMessage>Record not found</ng-template>\n    </div>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { RecordNotFoundComponent } from './record-not-found.component';\n\nconst routes: Routes = [{ path: '', component: RecordNotFoundComponent }];\n\n@NgModule({\n  declarations: [RecordNotFoundComponent],\n  imports: [CommonModule, RouterModule.forChild(routes)],\n})\nexport class RecordNotFoundModule {}\n","import { Location } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnDestroy } from '@angular/core';\nimport {\n  ChargeGroupItem,\n  ContextProperties,\n  LineItem,\n  RpcMessage,\n  RpcOption,\n  RpcOptionConfiguration,\n  RpcProduct,\n  RpcQuote,\n  UIDefinition,\n  UUID,\n  VlWindow,\n} from '@veloceapps/core';\nimport { FlowAction } from '@veloceapps/sdk/cms';\nimport {\n  ConfigurationRuntimeService,\n  ConfigurationService,\n  ConfigurationStateService,\n  ContextService,\n  IntegrationState,\n  QuoteDraftService,\n  RuntimeContext,\n} from '@veloceapps/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport {\n  BehaviorSubject,\n  catchError,\n  first,\n  Observable,\n  of,\n  Subject,\n  switchMap,\n  takeUntil,\n  tap,\n  throwError,\n} from 'rxjs';\nimport { LineItemWithParent } from './remote.types';\n\ndeclare const window: VlWindow;\n\ninterface State {\n  loading: boolean;\n  failure: boolean;\n}\n\n@Component({\n  selector: 'vl-flow-remote',\n  templateUrl: './remote.component.html',\n  styleUrls: ['./remote.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RemoteComponent implements OnDestroy {\n  public uiDefinition?: UIDefinition;\n  public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n  private readonly DYNAMIC_OPTION_PRODUCTS_KEY = 'Dynamic';\n\n  private rpcMessage: RpcMessage;\n  private destroyed$ = new Subject<void>();\n\n  constructor(\n    private contextService: ContextService,\n    private quoteDraftService: QuoteDraftService,\n    private runtimeService: ConfigurationRuntimeService,\n    private configurationService: ConfigurationService,\n    private configurationState: ConfigurationStateService,\n    private messageService: MessageService,\n    private integrationState: IntegrationState,\n    private location: Location,\n  ) {\n    this.rpcMessage = JSON.parse(window.RPC_MESSAGE as string);\n    this.rpcMessage.options.sort((a, b) => (a.featureNumber ?? 99999) - (b.featureNumber ?? 99999));\n    this.updateHasChildrenFlag(this.rpcMessage.product.configuredProductId);\n\n    // update context properties\n    if (this.rpcMessage.quote) {\n      const properties: ContextProperties = {};\n\n      if (this.rpcMessage.quote['SBQQ__Opportunity2__c']) {\n        properties.OpportunityId = this.rpcMessage.quote['SBQQ__Opportunity2__c'];\n      }\n\n      Object.entries(this.rpcMessage.quote).forEach(([key, value]) => {\n        if (value !== undefined && !(value instanceof Object)) {\n          properties[key] = value;\n        }\n      });\n\n      this.contextService.update({ properties });\n    }\n\n    this.initSubscriptions();\n    this.initConfiguration();\n  }\n\n  public ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n  }\n\n  private initConfiguration(): void {\n    const productId = this.rpcMessage.product.configuredProductId;\n    const quote = this.quoteDraftService.quoteDraft;\n\n    if (!productId || !quote) {\n      return;\n    }\n\n    this.runtimeService\n      .init({ productId })\n      .pipe(\n        first(),\n        tap(context => {\n          const uiDefinitionProperties = context.uiDefinitionContainer?.source.properties ?? {};\n          this.uiDefinition = context.uiDefinitionContainer?.source;\n\n          const pricingEnabled = uiDefinitionProperties.pricingEnabled ? 'true' : 'false';\n          const priceListId = uiDefinitionProperties.priceList;\n\n          const runtimeContextProperties = this.runtimeService.runtimeContext?.properties;\n          if (runtimeContextProperties) {\n            runtimeContextProperties.PriceListId = priceListId;\n            runtimeContextProperties.PricingEnabled = pricingEnabled;\n          }\n\n          this.contextService.update({\n            properties: {\n              ModelId: context.modelId,\n              RuntimeMode: 'TEST',\n              PricingEnabled: pricingEnabled,\n              PriceListId: priceListId,\n            },\n          });\n\n          this.configurationService.setConfigurableRamp(this.createLineItem());\n        }),\n        this.throwIfNoUIDefinition(),\n        switchMap(() => this.configurationState.init$()),\n        tap(() => this.state$.next({ loading: false, failure: false })),\n        catchError(error => {\n          if (!this.uiDefinition?.properties?.suppressToastMessages) {\n            this.messageService.add({ severity: 'error', summary: error });\n          }\n\n          this.state$.next({ loading: false, failure: true });\n          return of();\n        }),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe();\n  }\n\n  private throwIfNoUIDefinition() {\n    return <T>(source$: Observable<T>): Observable<T> => {\n      return source$.pipe(\n        switchMap(() => {\n          if (!this.uiDefinition) {\n            return throwError(() => 'Product does not have Configuration UI');\n          }\n\n          return source$;\n        }),\n      );\n    };\n  }\n\n  private initSubscriptions(): void {\n    this.integrationState\n      .listen$(FlowAction.REMOTE_CANCEL)\n      .pipe(\n        tap(() => this.location.back()),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.REMOTE_APPLY)\n      .pipe(\n        tap(() => this.saveRpcMessage()),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe();\n  }\n\n  private createLineItem(): LineItem {\n    const [quoteDraftLineItem] = this.quoteDraftService.quoteDraft?.currentState ?? [];\n    if (quoteDraftLineItem && (quoteDraftLineItem.attributes.length > 0 || quoteDraftLineItem.lineItems.length > 0)) {\n      return quoteDraftLineItem;\n    }\n\n    const lineItem = this.createRootLineItem();\n    const dynamicOptionProducts = this.rpcMessage.product.optionConfigurations[this.DYNAMIC_OPTION_PRODUCTS_KEY];\n\n    if (dynamicOptionProducts) {\n      const options = this.toParentChildMap(dynamicOptionProducts);\n      let items = [lineItem];\n      for (let i = 0; i < items.length; i++) {\n        const item = items[i];\n        const children = item && options.get(item.id);\n        if (children) {\n          item.lineItems = children;\n          items = items.concat(children);\n        }\n      }\n    }\n    return lineItem;\n  }\n\n  private createRootLineItem(): LineItem {\n    const product = this.rpcMessage.product;\n    const runtimeContext = this.runtimeService.runtimeContext as RuntimeContext;\n    const veloceInstanceId = product.configurationAttributes['VeloceInstanceId__c'];\n    const quoteId = this.quoteDraftService.quoteDraft?.currentState[0]?.id;\n\n    return {\n      id: quoteId || veloceInstanceId || UUID.UUID(),\n      type: runtimeContext.productType ?? '',\n      name: runtimeContext.properties?.['displayName'] || runtimeContext.productName,\n      productName: runtimeContext.productName,\n      productId: runtimeContext.productId,\n      cfgStatus: 'Default',\n      actionCode: 'ADD',\n      qty: 1,\n    } as LineItem;\n  }\n\n  private toParentChildMap(remoteOptionProducts: RpcOptionConfiguration[]): Map<string, LineItem[]> {\n    const result = new Map<string, LineItem[]>();\n\n    for (const option of remoteOptionProducts) {\n      const configurationData = option?.readOnly?.line;\n      const id = configurationData?.VeloceInstanceId__c;\n      const parentId = configurationData?.VeloceParentInstanceId__c;\n\n      if (!option.selected || !configurationData || !id || !parentId) {\n        continue;\n      }\n\n      const productId = option.productId;\n      const lineItem = {\n        id,\n        productId,\n        parentId,\n        type: configurationData.ModelType__c,\n        port: configurationData.ModelPort__c,\n        cfgStatus: configurationData.ConfigurationStatus__c,\n        actionCode: configurationData.ActionCode__c,\n        qty: option.Quantity,\n      } as LineItem;\n\n      let siblings = result.get(productId);\n      if (!siblings) {\n        result.set(parentId, (siblings = []));\n      }\n\n      siblings.push(lineItem);\n    }\n    return result;\n  }\n\n  private saveRpcMessage(): void {\n    const quote = this.quoteDraftService.quoteDraft;\n    const lineItem = this.configurationService.getSnapshot();\n\n    if (!quote || !lineItem) {\n      return;\n    }\n\n    this.rpcMessage.VeloceReferenceId = quote.quoteId;\n    this.rpcMessage.product.configurationData.VeloceInstanceId__c = lineItem.id;\n    const childItems = this.flattenChildLineItems(lineItem);\n    const savingMode = window.SavingMode;\n\n    this.updateContentData(this.rpcMessage.product, lineItem);\n    this.rpcMessage.quote = this.mapAttributesTo('Quote', lineItem) as RpcQuote;\n\n    if (savingMode === 'ALL') {\n      const optionConfigurations = this.getOptionConfigurations(this.rpcMessage.product);\n      const rootProductOptions = this.rpcMessage.options.filter(po => po.configuredProductId === lineItem.productId);\n\n      childItems.forEach(lineItem => {\n        const rootOption = rootProductOptions.find(po => po.optionalProductId === lineItem.productId);\n        if (rootOption) {\n          const featureOptions =\n            optionConfigurations[rootOption.featureName] ?? (optionConfigurations[rootOption.featureName] = []);\n          const originOption = !rootOption.hasChildren\n            ? optionConfigurations[rootOption.featureName]?.find(({ optionId }) => optionId === rootOption.optionId)\n            : undefined;\n          const option: RpcOptionConfiguration = originOption ?? ({} as RpcOptionConfiguration);\n\n          option.optionId = option.optionId ?? rootOption.optionId;\n          this.updateContentData(option, lineItem);\n          option.index = option.index ?? featureOptions.length;\n          option.selected = true;\n\n          if (!originOption) {\n            featureOptions.push(option);\n          }\n\n          if (lineItem.parentLineItem) {\n            const nestedProductOption = this.rpcMessage.options.find(\n              po =>\n                po.configuredProductId === lineItem.parentLineItem?.productId &&\n                po.optionalProductId === lineItem.productId,\n            );\n\n            if (nestedProductOption) {\n              option.configurationData = {\n                ...option.configurationData,\n                VeloceParentInstanceId__c: lineItem.parentLineItem.id,\n                VeloceNestedOptionId__c: nestedProductOption.optionId,\n                VeloceNestedFeatureId__c: nestedProductOption.featureId,\n              };\n            }\n          }\n        } else {\n          this.rpcMessage.dynamicFeatures.forEach(feature => {\n            const featureOptions = optionConfigurations[feature.name] ?? (optionConfigurations[feature.name] = []);\n            const originOption = featureOptions.find(({ productId }) => productId === lineItem.productId);\n            const option: RpcOptionConfiguration = originOption ?? ({} as RpcOptionConfiguration);\n\n            this.updateContentData(option, lineItem);\n            option.index = option.index ?? featureOptions.length;\n            option.selected = true;\n\n            if (!originOption) {\n              featureOptions.push(option);\n            }\n          });\n        }\n      });\n\n      this.rpcMessage.product = { ...this.rpcMessage.product, optionConfigurations };\n    }\n\n    window.RPC_BROADCAST?.apply(null, [this.rpcMessage]);\n  }\n\n  private updateHasChildrenFlag(bundleProductId: string): void {\n    const bundleOptionsByOptionId: Record<string, RpcOption> = {};\n    const notBundleOptions: RpcOption[] = [];\n    for (const productOption of this.rpcMessage.options) {\n      if (productOption.configuredProductId === bundleProductId) {\n        bundleOptionsByOptionId[productOption.optionalProductId] = productOption;\n      } else {\n        notBundleOptions.push(productOption);\n      }\n    }\n    for (const option of notBundleOptions) {\n      const bundleOption = bundleOptionsByOptionId[option.configuredProductId];\n      if (bundleOption) {\n        bundleOption.hasChildren = true;\n      }\n    }\n  }\n\n  private flattenChildLineItems(lineItem: LineItem): LineItemWithParent[] {\n    let items = lineItem.lineItems ?? [];\n    for (let i = 0; i < items.length; i++) {\n      const item = items[i];\n      if (item?.lineItems) {\n        items = items.concat(item.lineItems.map(li => ({ ...li, parentLineItem: item })));\n      }\n    }\n    return items;\n  }\n\n  private updateContentData(entity: RpcProduct | RpcOptionConfiguration, lineItem: LineItem): void {\n    if (lineItem.productId) {\n      entity.productId = lineItem.productId;\n    }\n\n    const quantityAttribute = lineItem.properties['quantityAttribute'];\n    entity.Quantity = quantityAttribute\n      ? lineItem.attributes.find(attribute => attribute.name === quantityAttribute)?.value ?? 1\n      : lineItem.qty;\n\n    const totalPrice = this.computeNetPrice(lineItem);\n    const targetTotalPriceField = lineItem.properties['TargetTotalPriceField'] || 'TotalPrice__c';\n    entity.configurationData[targetTotalPriceField] = entity.configurationData[targetTotalPriceField]\n      ? entity.configurationData[targetTotalPriceField] + totalPrice\n      : totalPrice;\n\n    const targetPriceField = lineItem.properties['TargetPriceField'] || 'SBQQ__ListPrice__c';\n    const price = entity.Quantity != null ? entity.configurationData[targetTotalPriceField] / entity.Quantity || 0 : 0;\n    const targetPriceValue = Number(entity.configurationData[targetPriceField]) || 0;\n    entity.configurationData[targetPriceField] = targetPriceValue\n      ? (targetPriceValue + price).toFixed(2)\n      : price.toFixed(2);\n\n    entity.configurationAttributes = this.mapAttributesTo('Attribute', lineItem);\n    entity.configurationData = {\n      ...entity.configurationData,\n      ...this.mapAttributesTo('Field', lineItem),\n      ...this.mapAttributesTo('', lineItem),\n      VeloceInstanceId__c: lineItem.id,\n    };\n  }\n\n  private computeNetPrice(lineItem: LineItem): number {\n    if (lineItem.properties['GroupCharges']) {\n      return this.sumNetPrice(lineItem.chargeGroupItems, this.getChargeNameSet(lineItem.properties['GroupCharges']));\n    }\n\n    return this.sumNetPrice(lineItem.chargeItems, this.getChargeNameSet(lineItem.properties['Charges']));\n  }\n\n  private getChargeNameSet(property?: string): Set<string> {\n    if (property && property.length > 0) {\n      return new Set(property.split(','));\n    }\n\n    return new Set();\n  }\n\n  private sumNetPrice(chargeItems: ChargeGroupItem[], charges: Set<string>): number {\n    let netPrice = 0;\n\n    for (const chargeItem of chargeItems) {\n      if (!charges || charges.has(chargeItem.chargeType)) {\n        netPrice += chargeItem.netPrice ?? 0;\n      }\n    }\n\n    return netPrice;\n  }\n\n  private mapAttributesTo(target: string, lineItem: LineItem): Record<string, any> {\n    const result: Record<string, any> = {};\n    const component = this.runtimeService.runtimeModel?.components.get(lineItem.type);\n\n    if (!component) {\n      return result;\n    }\n\n    const propertyName = 'mapTo' + target;\n    component.attributes\n      .filter(a => a.properties && a.properties[propertyName])\n      .forEach(mapping => {\n        const attribute = lineItem.attributes.find(a => a.name === mapping.name);\n\n        if (attribute) {\n          new Set(mapping.properties[propertyName]?.split(',')).forEach(k => (result[k] = attribute.value));\n        }\n      });\n\n    return result;\n  }\n\n  private getOptionConfigurations(product: RpcProduct): Record<string, RpcOptionConfiguration[]> {\n    const optionConfigurations: Record<string, RpcOptionConfiguration[]> = {};\n    const requestOptionConfigurations = product.optionConfigurations ?? {};\n\n    Object.keys(requestOptionConfigurations).forEach(k => {\n      optionConfigurations[k] = (requestOptionConfigurations[k] ?? []).map(opt => {\n        return { ...opt, selected: false };\n      });\n    });\n\n    return optionConfigurations;\n  }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { RemoteComponent } from './remote.component';\n\n@NgModule({\n  declarations: [RemoteComponent],\n  imports: [CommonModule, PreviewModule, LoaderModule],\n  exports: [RemoteComponent],\n})\nexport class RemoteModule {}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  OnDestroy,\n  OnInit,\n  Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\n\ninterface State {\n  loading: boolean;\n  failure: boolean;\n}\n\n@Component({\n  selector: 'vl-flow-shopping-cart',\n  templateUrl: './shopping-cart.component.html',\n  styleUrls: ['./shopping-cart.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ShoppingCartComponent implements OnInit, OnDestroy {\n  public uiDefinition?: UIDefinition = undefined;\n  public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n  private templateApiName = '';\n  private destroyed$ = new Subject<void>();\n\n  constructor(\n    private templatesApi: UITemplatesApiService,\n    private cdr: ChangeDetectorRef,\n    private toastService: ToastService,\n    private flowInfo: FlowInfoService,\n    @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n  ) {\n    this.templateApiName = this.flowInfo.flow?.properties.templates?.shoppingCart ?? '';\n  }\n\n  public ngOnInit(): void {\n    this.generateUIDefinition$()\n      .pipe(\n        tap(uiDef => {\n          if (!uiDef) {\n            throw new Error(`Component with name '${this.templateApiName}' not found.`);\n          }\n\n          this.uiDefinition = uiDef;\n          this.state$.next({ loading: false, failure: false });\n        }),\n        catchError(err => {\n          const message = 'Failed to resolve Shopping Cart component. ' + (err.message ?? '');\n          this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n          this.uiDefinition = undefined;\n          this.state$.next({ loading: false, failure: true });\n          return of();\n        }),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe(() => this.cdr.detectChanges());\n  }\n\n  public ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n  }\n\n  private getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n    if (!this.customizationService?.getTemplateComponents) {\n      return of(undefined);\n    }\n\n    return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n      map(components => {\n        if (!components) {\n          return;\n        }\n\n        return components.map<ComponentAttachments>(component => ({\n          html: component.html,\n          css: component.css,\n          js: component.js,\n          json: component.json,\n        }));\n      }),\n    );\n  }\n\n  private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n    const template = this.flowInfo.templates.SHOPPING_CART;\n    if (!template) {\n      return of(undefined);\n    }\n\n    return this.templatesApi.fetchComponentsAttachments$(template.id);\n  }\n\n  private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n    return of(undefined).pipe(\n      tap(() => {\n        if (!this.templateApiName) {\n          throw new Error(\"Flow 'shoppingCart' template is not defined.\");\n        }\n      }),\n      switchMap(() => this.getLocalMeta$()),\n      switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n      map(metaList => {\n        if (!metaList) {\n          return;\n        }\n\n        const uiDef: UIDefinition = {\n          name: '',\n          createdTimestamp: 0,\n          primary: true,\n          type: 'DEFAULT',\n          version: 2,\n          children: metaList.map(meta => ({\n            children: [],\n            template: meta.html && btoaSafe(meta.html),\n            script: meta.js && btoaSafe(meta.js),\n            styles: meta.css && btoaSafe(meta.css),\n          })),\n        };\n\n        return uiDef;\n      }),\n    );\n  }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { ShoppingCartComponent } from './shopping-cart.component';\n\n@NgModule({\n  declarations: [ShoppingCartComponent],\n  imports: [CommonModule, PreviewModule, LoaderModule],\n  exports: [ShoppingCartComponent],\n})\nexport class ShoppingCartModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { extractErrorDetails, isVeloceError } from '@veloceapps/core';\nimport { ContextService, FlowInfoService } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { from, Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { FlowRouterService } from '../services/flow-router.service';\nimport { getDefaultProperties } from '../utils';\n\n@Injectable()\nexport class FlowResolver implements Resolve<unknown> {\n  constructor(\n    private router: Router,\n    private routerService: FlowRouterService,\n    private contextService: ContextService,\n    private flowInfo: FlowInfoService,\n  ) {}\n\n  public resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n    const { queryParams } = route;\n    const flow = this.flowInfo.flow;\n\n    if (!flow) {\n      return of(false);\n    }\n\n    const { properties } = flow;\n    const { queryParams: flowQueryParams, entryPath } = properties;\n    const mergedQueryParams = {\n      ...queryParams,\n      ...flowQueryParams,\n    };\n\n    const contextProperties = Object.entries({\n      ...mergedQueryParams,\n      ...getDefaultProperties({ flowParams: properties }),\n    }).reduce<Dictionary<string>>((trunk, [key, value]) => ({ ...trunk, [key]: String(value) }), {});\n\n    this.contextService.update({ properties: contextProperties });\n    this.flowInfo.flow = flow;\n\n    const parentUrl = this.routerService.getFlowRootPath(route);\n    const entryUrl = String(entryPath ?? '')\n      .split('/')\n      .filter(Boolean);\n\n    return from(\n      this.router.navigate([parentUrl, ...entryUrl], {\n        queryParams: mergedQueryParams,\n        replaceUrl: true,\n      }),\n    ).pipe(\n      catchError(e => {\n        const message = e instanceof HttpErrorResponse ? e.error.message : e;\n        const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];\n        return this.routerService.showErrorPage$(message, errorDetails);\n      }),\n    );\n  }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { ConfigurationContextMode, extractErrorDetails, isVeloceError, UITemplateType } from '@veloceapps/core';\nimport { ContextService, FlowInfoService, FlowStateService, QuoteDraftService } from '@veloceapps/sdk/core';\n\nimport { catchError, from, map, Observable, of, switchMap } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable()\nexport class QuoteResolver implements Resolve<void | boolean> {\n  constructor(\n    private router: Router,\n    private quoteDraftService: QuoteDraftService,\n    private routerService: FlowRouterService,\n    private contextService: ContextService,\n    private flowInfo: FlowInfoService,\n    private flowStateService: FlowStateService,\n  ) {}\n\n  public resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n    const flow = this.flowInfo.flow;\n    if (!flow) {\n      return of(false);\n    }\n\n    if (this.flowStateService.isInitialized()) {\n      return of(true);\n    }\n\n    return this.flowStateService.init$().pipe(\n      switchMap(() => this.checkDynamicNavigation$(route)),\n      catchError(e => {\n        const message = e instanceof HttpErrorResponse ? e.error.message : e;\n        const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];\n        return this.routerService.showErrorPage$(message, errorDetails);\n      }),\n    );\n  }\n\n  private checkDynamicNavigation$(route: ActivatedRouteSnapshot): Observable<boolean> {\n    const flow = this.flowInfo.flow;\n    if (!flow) {\n      return of(true);\n    }\n\n    if (flow.properties.suppressInitialNavigation || flow.properties.standalone) {\n      return of(true);\n    }\n\n    return this.getNavigateTo().pipe(\n      switchMap(navigateTo => {\n        if (!navigateTo) {\n          return of(true);\n        }\n\n        const parentUrl = this.routerService.getFlowRootPath(route);\n\n        return from(\n          this.router.navigate([parentUrl + navigateTo], {\n            queryParams: route.queryParams,\n            replaceUrl: true,\n          }),\n        );\n      }),\n    );\n  }\n\n  private getNavigateTo(): Observable<string | undefined> {\n    const flow = this.flowInfo.flow;\n    let navigateTo: string | undefined;\n    if (flow?.properties.stateful) {\n      return this.flowStateService.select$<string>(UITemplateType.FLOW_ENGINE, 'NAVIGATE_TO').pipe(\n        map(r => {\n          if (r.success) {\n            return r.result;\n          }\n          return '';\n        }),\n      );\n    } else {\n      const isAccountMode = this.contextService.mode === ConfigurationContextMode.ACCOUNT;\n      if (isAccountMode || this.quoteDraftService.hasAssets) {\n        navigateTo = '/assets';\n      } else if (this.quoteDraftService.hasProducts) {\n        navigateTo = '/cart';\n      }\n    }\n\n    return of(navigateTo);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { VELOCE_FLOW_ROOT_ROUTE } from './constants';\nimport { FlowComponent } from './flow.component';\nimport { ContextGuard } from './guards/context.guard';\nimport { keepFlowInitialized } from './guards/flow.guard';\nimport { ProductUnloadGuard } from './guards/product-unload.guard';\nimport { RootGuard } from './guards/root.guard';\nimport { AssetsComponent } from './pages/assets/assets.component';\nimport { AssetsModule } from './pages/assets/assets.module';\nimport { CatalogComponent } from './pages/catalog/catalog.component';\nimport { CatalogModule } from './pages/catalog/catalog.module';\nimport { DebugModule } from './pages/debug/debug.module';\nimport { ProductComponent } from './pages/product/product.component';\nimport { ProductModule } from './pages/product/product.module';\nimport { RecordNotFoundModule } from './pages/record-not-found/record-not-found.module';\nimport { RemoteComponent } from './pages/remote/remote.component';\nimport { RemoteModule } from './pages/remote/remote.module';\nimport { ShoppingCartComponent } from './pages/shopping-cart/shopping-cart.component';\nimport { ShoppingCartModule } from './pages/shopping-cart/shopping-cart.module';\nimport { FlowResolver } from './resolvers/flow.resolver';\nimport { QuoteResolver } from './resolvers/quote.resolver';\nimport { FlowRouterService } from './services/flow-router.service';\nimport { RouteWithId } from './types/route.types';\n\nconst rootRoute: RouteWithId = {\n  id: VELOCE_FLOW_ROOT_ROUTE,\n  path: '',\n  component: FlowComponent,\n  canActivate: [RootGuard],\n  canDeactivate: [RootGuard],\n  children: [\n    {\n      path: '',\n      canActivate: [keepFlowInitialized],\n      runGuardsAndResolvers: 'always',\n      children: [\n        {\n          path: 'flows',\n          runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n          resolve: { flow: FlowResolver },\n          canActivate: [ContextGuard],\n          children: [],\n        },\n        {\n          path: 'product',\n          component: ProductComponent,\n          runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n          resolve: { quote: QuoteResolver },\n          canActivate: [ContextGuard],\n          canDeactivate: [ProductUnloadGuard],\n          data: { showHeader: true },\n        },\n        {\n          path: 'cart',\n          component: ShoppingCartComponent,\n          runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n          resolve: { quote: QuoteResolver },\n          canActivate: [ContextGuard],\n          data: { showHeader: true },\n        },\n        {\n          path: 'catalog',\n          component: CatalogComponent,\n          runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n          resolve: { quote: QuoteResolver },\n          canActivate: [ContextGuard],\n          data: { showHeader: true },\n        },\n        {\n          path: 'assets',\n          component: AssetsComponent,\n          runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n          resolve: { quote: QuoteResolver },\n          canActivate: [ContextGuard],\n          data: { showHeader: true },\n        },\n        {\n          path: 'remote',\n          component: RemoteComponent,\n          runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n          resolve: { quote: QuoteResolver },\n          canActivate: [ContextGuard],\n        },\n        {\n          path: 'debug',\n          loadChildren: () => DebugModule,\n        },\n        {\n          path: '404',\n          loadChildren: () => RecordNotFoundModule,\n        },\n      ],\n    },\n  ],\n};\n\n@NgModule({\n  imports: [\n    RouterModule.forChild([rootRoute]),\n    ProductModule,\n    ShoppingCartModule,\n    CatalogModule,\n    AssetsModule,\n    RemoteModule,\n  ],\n  exports: [RouterModule],\n  providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver],\n})\nexport class FlowRoutingModule {}\n","import { Injectable } from '@angular/core';\nimport { FlowAction } from '@veloceapps/sdk/cms';\nimport { IntegrationState } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Subject, takeUntil, tap } from 'rxjs';\n\n@Injectable()\nexport class FlowDocGenService {\n  private cleanup$ = new Subject<void>();\n  private isVisibleSubj$ = new BehaviorSubject(false);\n\n  public isVisible$ = this.isVisibleSubj$.asObservable();\n\n  constructor(private integrationState: IntegrationState) {\n    this.initSubscriptions();\n  }\n\n  public cleanup(): void {\n    this.cleanup$.next();\n  }\n\n  private initSubscriptions(): void {\n    this.integrationState\n      .listen$(FlowAction.FLOW_OPEN_DOC_GEN)\n      .pipe(\n        tap(() => this.isVisibleSubj$.next(true)),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n\n    this.integrationState\n      .listen$(FlowAction.FLOW_CLOSE_DOC_GEN)\n      .pipe(\n        tap(() => this.isVisibleSubj$.next(false)),\n        takeUntil(this.cleanup$),\n      )\n      .subscribe();\n  }\n}\n","import { DomHandler } from 'primeng/dom';\n\nexport const configurePrimengShadowDOM = () => {\n  DomHandler.getScrollableParents = (element: any) => {\n    const scrollableParents = [];\n\n    if (element) {\n      const parents = DomHandler.getParents(element).filter((item: any) => !(item instanceof ShadowRoot));\n      const overflowRegex = /(auto|scroll)/;\n      const overflowCheck = (node: any) => {\n        const styleDeclaration = window['getComputedStyle'](node, null);\n        return (\n          overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) ||\n          overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) ||\n          overflowRegex.test(styleDeclaration.getPropertyValue('overflowY'))\n        );\n      };\n\n      for (const parent of parents) {\n        const scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];\n        if (scrollSelectors) {\n          const selectors = scrollSelectors.split(',');\n          for (const selector of selectors) {\n            const el = DomHandler.findSingle(parent, selector);\n            if (el && overflowCheck(el)) {\n              scrollableParents.push(el);\n            }\n          }\n        }\n\n        if (parent.nodeType !== 9 && overflowCheck(parent)) {\n          scrollableParents.push(parent);\n        }\n      }\n    }\n\n    return scrollableParents;\n  };\n};\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ApiModule } from '@veloceapps/api';\nimport { LetDirectiveModule, LoaderModule } from '@veloceapps/components';\nimport { LauncherModule } from '@veloceapps/sdk/cms';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { FlowDialogModule } from './components/dialog/dialog.module';\nimport { DocGenModule } from './components/doc-gen/doc-gen.module';\nimport { GuidedSellingModule } from './components/guided-selling/guided-selling.module';\nimport { FlowNewHeaderModule } from './components/flow-header';\nimport { FlowRoutingModule } from './flow-routing.module';\nimport { FlowComponent } from './flow.component';\nimport { FlowService } from './services';\nimport { FlowDocGenService } from './services/doc-gen.service';\nimport { FlowDialogService } from './services/flow-dialog.service';\nimport { FlowGuidedSellingService } from './services/guided-selling.service';\nimport { configurePrimengShadowDOM } from './configure-primeng';\n\nconfigurePrimengShadowDOM();\n\n@NgModule({\n  declarations: [FlowComponent],\n  imports: [\n    CommonModule,\n    LetDirectiveModule,\n    FlowRoutingModule,\n    ApiModule,\n    LauncherModule,\n    LoaderModule,\n    FlowNewHeaderModule,\n    FlowDialogModule,\n    SdkCoreModule,\n    DocGenModule,\n    GuidedSellingModule,\n  ],\n  providers: [FlowService, FlowDialogService, FlowDocGenService, FlowGuidedSellingService],\n})\nexport class FlowModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i2.FlowRouterService","i3","i4.FlowDialogService","i1.FlowRouterService","i2.FlowService","i4.FlowGuidedSellingService","i5","i6","i7","i8.FlowHeaderComponent","i9.DocGenComponent","i10.GuidedSellingComponent","i3.FlowDialogService","routes","i4","catchError","i3.FlowRouterService"],"mappings":"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"}
         
     |