@veloceapps/sdk 11.0.0-16 → 11.0.0-17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/cms/cms.actions.d.ts +98 -22
  2. package/cms/components/element-renderer/element-renderer.component.d.ts +3 -10
  3. package/cms/services/element-context.service.d.ts +0 -1
  4. package/cms/types/common.types.d.ts +2 -0
  5. package/cms/types/index.d.ts +0 -1
  6. package/cms/utils/path.utils.d.ts +1 -2
  7. package/cms/vendor-map.d.ts +4 -27
  8. package/core/index.d.ts +0 -1
  9. package/core/modules/configuration/index.d.ts +1 -4
  10. package/core/modules/configuration/services/configuration-runtime.service.d.ts +3 -20
  11. package/core/modules/configuration/services/configuration-state.service.d.ts +3 -3
  12. package/core/modules/configuration/services/configuration.service.d.ts +23 -46
  13. package/core/modules/flow-configuration/index.d.ts +0 -3
  14. package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +5 -13
  15. package/core/services/flow-info.service.d.ts +3 -2
  16. package/core/services/flow-state-configuration.service.d.ts +2 -8
  17. package/core/services/flow-state.service.d.ts +6 -12
  18. package/core/services/index.d.ts +0 -1
  19. package/core/services/integration.state.d.ts +1 -1
  20. package/core/services/sales-transaction.service.d.ts +4 -2
  21. package/core/types/index.d.ts +0 -1
  22. package/core/utils/index.d.ts +2 -2
  23. package/core/utils/transaction-item.utils.d.ts +7 -0
  24. package/core/utils/transaction-item.worker.d.ts +8 -0
  25. package/esm2020/cms/cms.actions.mjs +99 -65
  26. package/esm2020/cms/cms.default.mjs +2 -3
  27. package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +7 -64
  28. package/esm2020/cms/components/preview/preview.component.mjs +3 -3
  29. package/esm2020/cms/services/element-context.service.mjs +1 -1
  30. package/esm2020/cms/types/common.types.mjs +1 -1
  31. package/esm2020/cms/types/index.mjs +1 -2
  32. package/esm2020/cms/utils/element.utils.mjs +3 -3
  33. package/esm2020/cms/utils/path.utils.mjs +1 -10
  34. package/esm2020/cms/vendor-map.mjs +4 -5
  35. package/esm2020/core/core.module.mjs +4 -5
  36. package/esm2020/core/index.mjs +1 -2
  37. package/esm2020/core/modules/configuration/configuration.module.mjs +3 -4
  38. package/esm2020/core/modules/configuration/index.mjs +2 -5
  39. package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +9 -67
  40. package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +46 -54
  41. package/esm2020/core/modules/configuration/services/configuration.service.mjs +96 -226
  42. package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +3 -4
  43. package/esm2020/core/modules/flow-configuration/index.mjs +1 -4
  44. package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +15 -32
  45. package/esm2020/core/services/flow-info.service.mjs +9 -3
  46. package/esm2020/core/services/flow-state-configuration.service.mjs +10 -25
  47. package/esm2020/core/services/flow-state.service.mjs +25 -58
  48. package/esm2020/core/services/index.mjs +1 -2
  49. package/esm2020/core/services/integration.state.mjs +2 -2
  50. package/esm2020/core/services/sales-transaction.service.mjs +11 -5
  51. package/esm2020/core/types/index.mjs +1 -2
  52. package/esm2020/core/utils/index.mjs +3 -3
  53. package/esm2020/core/utils/transaction-item.utils.mjs +60 -0
  54. package/esm2020/core/utils/transaction-item.worker.mjs +16 -0
  55. package/esm2020/src/flow-routing.module.mjs +8 -8
  56. package/esm2020/src/guards/flow.guard.mjs +5 -7
  57. package/esm2020/src/guards/product-unload.guard.mjs +7 -7
  58. package/esm2020/src/index.mjs +1 -2
  59. package/esm2020/src/pages/debug/debug.component.mjs +10 -15
  60. package/esm2020/src/pages/product/product.component.mjs +11 -14
  61. package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +5 -6
  62. package/esm2020/src/resolvers/sales-transaction.resolver.mjs +83 -0
  63. package/esm2020/src/resolvers/ui-definition.resolver.mjs +5 -4
  64. package/esm2020/src/services/flow-dialog.service.mjs +1 -1
  65. package/esm2020/src/services/flow-router.service.mjs +17 -24
  66. package/esm2020/src/services/flow.service.mjs +5 -13
  67. package/esm2020/src/types/index.mjs +2 -3
  68. package/esm2020/src/types/route.types.mjs +1 -1
  69. package/fesm2015/veloceapps-sdk-cms.mjs +116 -252
  70. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  71. package/fesm2015/veloceapps-sdk-core.mjs +318 -1116
  72. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  73. package/fesm2015/veloceapps-sdk.mjs +87 -120
  74. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  75. package/fesm2020/veloceapps-sdk-cms.mjs +112 -244
  76. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  77. package/fesm2020/veloceapps-sdk-core.mjs +366 -1162
  78. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  79. package/fesm2020/veloceapps-sdk.mjs +87 -120
  80. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  81. package/package.json +1 -1
  82. package/src/guards/product-unload.guard.d.ts +3 -3
  83. package/src/index.d.ts +0 -1
  84. package/src/pages/debug/debug.component.d.ts +1 -3
  85. package/src/pages/product/product.component.d.ts +3 -4
  86. package/src/pages/record-not-found/record-not-found.component.d.ts +2 -3
  87. package/src/resolvers/sales-transaction.resolver.d.ts +18 -0
  88. package/src/services/flow-dialog.service.d.ts +2 -1
  89. package/src/services/flow-router.service.d.ts +5 -5
  90. package/src/services/flow.service.d.ts +0 -1
  91. package/src/types/index.d.ts +1 -2
  92. package/src/types/route.types.d.ts +0 -5
  93. package/cms/plugins/configuration.plugin.d.ts +0 -23
  94. package/cms/types/configuration.types.d.ts +0 -21
  95. package/core/modules/configuration/helpers.d.ts +0 -7
  96. package/core/modules/configuration/services/runtime-context.service.d.ts +0 -12
  97. package/core/modules/configuration/types/configuration-runtime.types.d.ts +0 -8
  98. package/core/modules/flow-configuration/services/flow-update.service.d.ts +0 -13
  99. package/core/modules/flow-configuration/types/update.types.d.ts +0 -12
  100. package/core/services/quote-draft.service.d.ts +0 -50
  101. package/core/types/runtime.types.d.ts +0 -30
  102. package/core/utils/line-item.utils.d.ts +0 -25
  103. package/core/utils/line-item.worker.d.ts +0 -9
  104. package/esm2020/cms/plugins/configuration.plugin.mjs +0 -109
  105. package/esm2020/cms/types/configuration.types.mjs +0 -2
  106. package/esm2020/core/modules/configuration/helpers.mjs +0 -67
  107. package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +0 -45
  108. package/esm2020/core/modules/configuration/types/configuration-runtime.types.mjs +0 -2
  109. package/esm2020/core/modules/flow-configuration/services/flow-update.service.mjs +0 -138
  110. package/esm2020/core/modules/flow-configuration/types/update.types.mjs +0 -2
  111. package/esm2020/core/services/quote-draft.service.mjs +0 -174
  112. package/esm2020/core/types/runtime.types.mjs +0 -16
  113. package/esm2020/core/utils/line-item.utils.mjs +0 -187
  114. package/esm2020/core/utils/line-item.worker.mjs +0 -19
  115. package/esm2020/src/resolvers/quote.resolver.mjs +0 -82
  116. package/esm2020/src/types/context-route.types.mjs +0 -2
  117. package/esm2020/src/types/metrics.types.mjs +0 -2
  118. package/esm2020/src/utils/flow.utils.mjs +0 -14
  119. package/esm2020/src/utils/index.mjs +0 -2
  120. package/src/resolvers/quote.resolver.d.ts +0 -18
  121. package/src/types/context-route.types.d.ts +0 -5
  122. package/src/types/metrics.types.d.ts +0 -5
  123. package/src/utils/flow.utils.d.ts +0 -1
  124. package/src/utils/index.d.ts +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veloceapps/sdk",
3
- "version": "11.0.0-16",
3
+ "version": "11.0.0-17",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/animations": "~15.2.0",
@@ -1,15 +1,15 @@
1
1
  import { Component } from '@angular/core';
2
2
  import { ActivatedRouteSnapshot, Router, RouterStateSnapshot, UrlTree } from '@angular/router';
3
- import { ConfigurationService, QuoteDraftService } from '@veloceapps/sdk/core';
3
+ import { ConfigurationService, FlowInfoService } from '@veloceapps/sdk/core';
4
4
  import { Observable } from 'rxjs';
5
5
  import { FlowDialogService } from '../services/flow-dialog.service';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class ProductUnloadGuard {
8
8
  private router;
9
- private quoteDraftService;
9
+ private flowInfoService;
10
10
  private configurationService;
11
11
  private flowDialogService;
12
- constructor(router: Router, quoteDraftService: QuoteDraftService, configurationService: ConfigurationService, flowDialogService: FlowDialogService);
12
+ constructor(router: Router, flowInfoService: FlowInfoService, configurationService: ConfigurationService, flowDialogService: FlowDialogService);
13
13
  canDeactivate(_: Component, route: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Observable<boolean | UrlTree>;
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<ProductUnloadGuard, never>;
15
15
  static ɵprov: i0.ɵɵInjectableDeclaration<ProductUnloadGuard>;
package/src/index.d.ts CHANGED
@@ -2,4 +2,3 @@ export * from './constants';
2
2
  export * from './flow.module';
3
3
  export * from './services';
4
4
  export * from './types';
5
- export * from './utils';
@@ -2,20 +2,18 @@ import { FormControl, FormGroup } from '@angular/forms';
2
2
  import { ActivatedRoute, Params, Router } from '@angular/router';
3
3
  import { FlowsApiService } from '@veloceapps/api';
4
4
  import { Flow } from '@veloceapps/core';
5
- import { QuoteDraftService } from '@veloceapps/sdk/core';
6
5
  import { Observable } from 'rxjs';
7
6
  import * as i0 from "@angular/core";
8
7
  export declare class DebugComponent {
9
8
  private flowsApiService;
10
9
  private router;
11
10
  private activatedRoute;
12
- private quoteDraftService;
13
11
  form: FormGroup<{
14
12
  id: FormControl<string | null>;
15
13
  }>;
16
14
  selectedFlow?: Flow;
17
15
  flows$: Observable<Flow[]>;
18
- constructor(flowsApiService: FlowsApiService, router: Router, activatedRoute: ActivatedRoute, quoteDraftService: QuoteDraftService);
16
+ constructor(flowsApiService: FlowsApiService, router: Router, activatedRoute: ActivatedRoute);
19
17
  runFlow(): void;
20
18
  getQueryParamsString(params: Params): string;
21
19
  static ɵfac: i0.ɵɵFactoryDeclaration<DebugComponent, never>;
@@ -1,15 +1,14 @@
1
- import { ActivatedRoute } from '@angular/router';
2
1
  import { UIDefinitionContainer } from '@veloceapps/core';
3
2
  import { CMSPreviewConfig } from '@veloceapps/sdk/cms';
4
- import { ConfigurationStateService } from '@veloceapps/sdk/core';
3
+ import { ConfigurationRuntimeService, ConfigurationStateService } from '@veloceapps/sdk/core';
5
4
  import { BehaviorSubject } from 'rxjs';
6
5
  import * as i0 from "@angular/core";
7
6
  export declare class ProductComponent {
8
- private route;
7
+ private configurationRuntimeService;
9
8
  private configurationStateService;
10
9
  config: CMSPreviewConfig;
11
10
  uiDefinitionContainer$: BehaviorSubject<UIDefinitionContainer | null>;
12
- constructor(route: ActivatedRoute, configurationStateService: ConfigurationStateService);
11
+ constructor(configurationRuntimeService: ConfigurationRuntimeService, configurationStateService: ConfigurationStateService);
13
12
  private init$;
14
13
  static ɵfac: i0.ɵɵFactoryDeclaration<ProductComponent, never>;
15
14
  static ɵcmp: i0.ɵɵComponentDeclaration<ProductComponent, "vl-flow-product", never, {}, {}, never, never, false, never>;
@@ -1,13 +1,12 @@
1
- import { ActivatedRoute, Router } from '@angular/router';
1
+ import { Router } from '@angular/router';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class RecordNotFoundComponent {
4
4
  private router;
5
- private route;
6
5
  message: string;
7
6
  subMessage: string;
8
7
  type: string;
9
8
  details: string[];
10
- constructor(router: Router, route: ActivatedRoute);
9
+ constructor(router: Router);
11
10
  static ɵfac: i0.ɵɵFactoryDeclaration<RecordNotFoundComponent, never>;
12
11
  static ɵcmp: i0.ɵɵComponentDeclaration<RecordNotFoundComponent, "vl-flow-record-not-found", never, {}, {}, never, never, false, never>;
13
12
  }
@@ -0,0 +1,18 @@
1
+ import { ActivatedRouteSnapshot, Router } from '@angular/router';
2
+ import { FlowInfoService, FlowStateService, SalesTransactionService } from '@veloceapps/sdk/core';
3
+ import { Observable } from 'rxjs';
4
+ import { FlowRouterService } from '../services/flow-router.service';
5
+ import * as i0 from "@angular/core";
6
+ export declare class SalesTransactionResolver {
7
+ private router;
8
+ private routerService;
9
+ private flowInfoService;
10
+ private flowStateService;
11
+ private salesTransactionService;
12
+ constructor(router: Router, routerService: FlowRouterService, flowInfoService: FlowInfoService, flowStateService: FlowStateService, salesTransactionService: SalesTransactionService);
13
+ resolve(route: ActivatedRouteSnapshot): Observable<boolean>;
14
+ private checkDynamicNavigation$;
15
+ private getNavigateTo;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<SalesTransactionResolver, never>;
17
+ static ɵprov: i0.ɵɵInjectableDeclaration<SalesTransactionResolver>;
18
+ }
@@ -3,6 +3,7 @@ import { DialogService } from 'primeng/dynamicdialog';
3
3
  import { Observable } from 'rxjs';
4
4
  import { FlowDialogConfig } from '../components/dialog/dialog.types';
5
5
  import * as i0 from "@angular/core";
6
+ export type FlowDialogFn = keyof Omit<FlowDialogService, 'show' | 'constructor'>;
6
7
  export declare class FlowDialogService {
7
8
  private dialogService;
8
9
  private runtimeSettings;
@@ -19,7 +20,7 @@ export declare class FlowDialogService {
19
20
  showOutsideShoppingCartQuoteSubmitFailureDialog(): Observable<boolean>;
20
21
  showAccountSubmitFailureDialog(): Observable<boolean>;
21
22
  showTermsLimitReachedDialog(): Observable<boolean>;
22
- showDialog(dialog: keyof Omit<FlowDialogService, 'show' | 'constructor'>): Observable<boolean>;
23
+ showDialog(dialog: FlowDialogFn): Observable<boolean>;
23
24
  static ɵfac: i0.ɵɵFactoryDeclaration<FlowDialogService, never>;
24
25
  static ɵprov: i0.ɵɵInjectableDeclaration<FlowDialogService>;
25
26
  }
@@ -1,18 +1,18 @@
1
1
  import { ActivatedRoute, ActivatedRouteSnapshot, Params, Router } from '@angular/router';
2
- import { FlowStateService, IntegrationState } from '@veloceapps/sdk/core';
2
+ import { FlowInfoService, IntegrationState } from '@veloceapps/sdk/core';
3
3
  import { Observable } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class FlowRouterService {
6
6
  private router;
7
7
  private route;
8
8
  private integrationState;
9
- private flowStateService;
9
+ private flowInfoService;
10
10
  private routeChange$;
11
11
  private lastChildParams$;
12
12
  private lastChildRoute$;
13
13
  private urlHistory;
14
14
  loading$: Observable<boolean>;
15
- constructor(router: Router, route: ActivatedRoute, integrationState: IntegrationState, flowStateService: FlowStateService);
15
+ constructor(router: Router, route: ActivatedRoute, integrationState: IntegrationState, flowInfoService: FlowInfoService);
16
16
  getFlowRootRoute(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot | undefined;
17
17
  getFlowRootPath(route: ActivatedRouteSnapshot): string;
18
18
  get route$(): Observable<ActivatedRouteSnapshot>;
@@ -30,8 +30,8 @@ export declare class FlowRouterService {
30
30
  isCatalogRoute$(): Observable<boolean>;
31
31
  isAssetsRoute$(): Observable<boolean>;
32
32
  navigateBack(): void;
33
- navigateTo(path: string, productId?: string, lineItemId?: string): void;
34
- navigateToProductConfiguration(productId: string, lineItemId?: string): void;
33
+ navigateTo(path: string, productId?: string, transactionItemId?: string): void;
34
+ navigateToProductConfiguration(productId: string, transactionItemId?: string): void;
35
35
  navigateToShoppingCart(): void;
36
36
  navigateToCatalog(): void;
37
37
  navigateToAssets(): void;
@@ -15,7 +15,6 @@ export declare class FlowService {
15
15
  cleanup(): void;
16
16
  initSubscriptions(): void;
17
17
  private updateFlowParams;
18
- private prepareConfiguration$;
19
18
  static ɵfac: i0.ɵɵFactoryDeclaration<FlowService, never>;
20
19
  static ɵprov: i0.ɵɵInjectableDeclaration<FlowService>;
21
20
  }
@@ -1,2 +1 @@
1
- export * from './context-route.types';
2
- export * from './metrics.types';
1
+ export * from './route.types';
@@ -1,9 +1,4 @@
1
1
  import { Route } from '@angular/router';
2
- export interface FlowObjectIdProperties {
3
- accountId?: string;
4
- quoteId?: string;
5
- orderId?: string;
6
- }
7
2
  export interface RouteWithId extends Route {
8
3
  id?: string;
9
4
  }
@@ -1,23 +0,0 @@
1
- import { OnDestroy } from '@angular/core';
2
- import { ElementComponent } from '../components/element.component';
3
- import { PluginComponent } from '../components/plugin.component';
4
- import { ConfigurationElement } from '../types';
5
- import * as i0 from "@angular/core";
6
- export declare class ConfigurationPlugin implements PluginComponent, OnDestroy {
7
- host: ElementComponent & ConfigurationElement;
8
- private modelSnapshot?;
9
- private destroy$;
10
- private elementMetadata;
11
- private configurationService;
12
- constructor(host: ElementComponent & ConfigurationElement);
13
- ngOnDestroy(): void;
14
- private register;
15
- private registerType;
16
- private registerPort;
17
- private registerAttribute;
18
- private get attributeHost();
19
- private get typeHost();
20
- private get portHost();
21
- static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationPlugin, never>;
22
- static ɵdir: i0.ɵɵDirectiveDeclaration<ConfigurationPlugin, never, never, {}, {}, never, never, false, never>;
23
- }
@@ -1,21 +0,0 @@
1
- import { LineItem, PortDomain } from '@veloceapps/core';
2
- import { Observable } from 'rxjs';
3
- export interface ConfigurationElement {
4
- boundName: string;
5
- }
6
- export interface TypeElement extends ConfigurationElement {
7
- updateQty: (qty: number) => void;
8
- remove: () => void;
9
- }
10
- export interface PortElement extends ConfigurationElement {
11
- portItems$: Observable<LineItem[]>;
12
- portDomain$: Observable<PortDomain | undefined>;
13
- addPortItem: (type: string, attributes: {
14
- name: string;
15
- value: any;
16
- }[]) => void;
17
- }
18
- export interface AttributeElement extends ConfigurationElement {
19
- value$: Observable<any | undefined>;
20
- patch: (value: any) => void;
21
- }
@@ -1,7 +0,0 @@
1
- import { ConfigurationContext, ConfigurationRequest, LineItem, UIDefinitionProps } from '@veloceapps/core';
2
- import { RuntimeContext } from '../../types';
3
- import { GuidedSellingSubmitData, NewConfigurationProps } from './types/configuration.types';
4
- export declare const getDefaultLineItem: (context: RuntimeContext, uiDefinitionProperties: UIDefinitionProps, qty?: number) => LineItem;
5
- export declare const generateEmptyContext: () => ConfigurationContext;
6
- export declare const getGuidedSellingConfigurationRequest: (data: GuidedSellingSubmitData) => ConfigurationRequest;
7
- export declare const generateConfigurationLineItem: (props: NewConfigurationProps, qty?: number) => LineItem;
@@ -1,12 +0,0 @@
1
- import { ConfigurationApiService } from '@veloceapps/api';
2
- import { Observable } from 'rxjs';
3
- import { RuntimeContext } from '../../../types';
4
- import * as i0 from "@angular/core";
5
- export declare class RuntimeContextService {
6
- private configurationApiService;
7
- constructor(configurationApiService: ConfigurationApiService);
8
- getRuntimeContext(productId: string, offeringId?: string, defaultUIDefinitionId?: string, requiredUIDefinitionId?: string): Observable<RuntimeContext>;
9
- private getUIDefinitionContainer;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<RuntimeContextService, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<RuntimeContextService>;
12
- }
@@ -1,8 +0,0 @@
1
- export interface RuntimeInitializationProps {
2
- productId: string;
3
- offeringId?: string;
4
- defaultQty?: number;
5
- attributesMap?: Record<string, any>;
6
- defaultUIDefinitionId?: string;
7
- requiredUIDefinitionId?: string;
8
- }
@@ -1,13 +0,0 @@
1
- import { Charge, LineItem } from '@veloceapps/core';
2
- import { Dictionary } from 'lodash';
3
- import { FlowUpdateParams } from '../types/update.types';
4
- import * as i0 from "@angular/core";
5
- export declare class FlowUpdateService {
6
- update(rootLineItems: LineItem[], updates: FlowUpdateParams[], charges?: Dictionary<Charge>): void;
7
- delete(lineItems: LineItem[], id: string): LineItem[];
8
- private applyLineItemUpdate;
9
- private applyChargeUpdate;
10
- private applyChargeGroupUpdate;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<FlowUpdateService, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<FlowUpdateService>;
13
- }
@@ -1,12 +0,0 @@
1
- export type FlowUpdateDataType = 'LINEITEM' | 'CHARGE' | 'GROUP_CHARGE';
2
- export type FlowUpdateAttributeType = 'QTY' | 'EFFECTIVE_START_DATE' | 'END_DATE' | 'PRICE_ADJUSTMENT' | 'LIST_PRICE_ADJUSTMENT' | 'COST_ADJUSTMENT' | 'MARGIN_ADJUSTMENT';
3
- export interface FlowUpdateParams {
4
- id: string;
5
- dataType: FlowUpdateDataType;
6
- attributeType: FlowUpdateAttributeType;
7
- newValue: any;
8
- }
9
- export interface FlowDeleteParams {
10
- id: string;
11
- dataType: FlowUpdateDataType;
12
- }
@@ -1,50 +0,0 @@
1
- import { AccountApiService } from '@veloceapps/api';
2
- import { AccountAssetsState, LineItem, PriceSummary, QuoteDraft } from '@veloceapps/core';
3
- import { Dictionary } from 'lodash';
4
- import { Observable } from 'rxjs';
5
- import { FlowInfoService } from './flow-info.service';
6
- import * as i0 from "@angular/core";
7
- /**
8
- * @deprecated
9
- */
10
- export declare class QuoteDraftService {
11
- private flowInfoService;
12
- private accountApiService;
13
- private quoteSubj$;
14
- private assetsSubj$;
15
- private resetSubj$;
16
- private isInitializedSubj$;
17
- private initialCurrentState;
18
- private _hasUnsavedChanges;
19
- get isInitialized$(): Observable<boolean>;
20
- get isInitialized(): boolean;
21
- set isInitialized(value: boolean);
22
- get hasUnsavedChanges(): boolean;
23
- set hasUnsavedChanges(value: boolean);
24
- get hasProducts$(): Observable<boolean>;
25
- get hasProducts(): boolean;
26
- get hasAssets$(): Observable<boolean>;
27
- get hasAssets(): boolean;
28
- get assetsState(): AccountAssetsState | null;
29
- reset$: Observable<boolean>;
30
- constructor(flowInfoService: FlowInfoService, accountApiService: AccountApiService);
31
- reset(): void;
32
- init(headerId: string, params: Dictionary<string>): Observable<void>;
33
- finalizeInit(): void;
34
- setCurrentLineItemState(lineItems: LineItem[]): void;
35
- updateQuoteDraft(update: Partial<QuoteDraft>): void;
36
- updateByPriceSummary(priceSummary: PriceSummary): void;
37
- setAssetsState(assetsState: AccountAssetsState): void;
38
- get quoteDraft$(): Observable<QuoteDraft>;
39
- get quoteDraft(): QuoteDraft | null;
40
- get currentState$(): Observable<LineItem[]>;
41
- get currentState(): LineItem[];
42
- get isStandalone(): boolean;
43
- get isStandalone$(): Observable<boolean>;
44
- getInitialCurrentState(): LineItem[];
45
- isEditMode$(): Observable<boolean>;
46
- isEditMode(): boolean;
47
- private markAsUpdated;
48
- static ɵfac: i0.ɵɵFactoryDeclaration<QuoteDraftService, never>;
49
- static ɵprov: i0.ɵɵInjectableDeclaration<QuoteDraftService>;
50
- }
@@ -1,30 +0,0 @@
1
- import { ContextProperties, RuntimeModel, UIDefinitionContainer } from '@veloceapps/core';
2
- export declare enum RuntimeMode {
3
- TEST = 0,
4
- PROD = 1
5
- }
6
- export declare enum RuntimeOperation {
7
- INIT = "INIT",
8
- UPDATE = "UPDATE"
9
- }
10
- export declare enum RuntimeStep {
11
- START = "START",
12
- UPDATE = "UPDATE"
13
- }
14
- export interface InvocationContext {
15
- runtimeOperation?: RuntimeOperation;
16
- runtimeStep?: RuntimeStep;
17
- }
18
- export interface RuntimeContext {
19
- modelId: string;
20
- runtimeMode: RuntimeMode;
21
- runtimeModel: RuntimeModel;
22
- uiDefinitionContainer?: UIDefinitionContainer;
23
- productId?: string;
24
- productName?: string;
25
- productType?: string;
26
- properties?: ContextProperties;
27
- offeringId?: string;
28
- offeringInstanceId?: string;
29
- invocationContext?: InvocationContext;
30
- }
@@ -1,25 +0,0 @@
1
- import { Attribute, LineItem, NewAttribute, PortDomain } from '@veloceapps/core';
2
- import { Dictionary } from 'lodash';
3
- export declare const findLineItem: (id: string, lineItems: LineItem[]) => LineItem | undefined;
4
- export declare const findLineItemWithComparator: (lineItems: LineItem[], comparator: (li: LineItem) => boolean) => LineItem | undefined;
5
- export declare const insertLineItem: (lineItem: LineItem, parentId: string, toInsert: LineItem) => LineItem;
6
- export declare const removeLineItem: (lineItem: LineItem, idToRemove: string) => LineItem;
7
- export declare const replaceLineItem: (lineItem: LineItem, replaceTo: LineItem, skipCardinalityCalculation?: boolean) => LineItem;
8
- export declare const recalculateCardinalityVariables: (original: LineItem, updated: LineItem) => LineItem;
9
- export declare const mapAttributes: (attributes: Attribute[]) => Dictionary<any>;
10
- export declare const getAttributes: (attributes: Attribute[], names?: string[]) => Attribute[];
11
- export declare const upsertAttributes: (originalAttributes: Attribute[], attributesToUpsert: NewAttribute[]) => Attribute[];
12
- export declare const patchAttributes: (rootLineItem: LineItem, id: string, attrs: NewAttribute[], skipCardinalityCalculation?: boolean) => LineItem;
13
- export declare const getAttributeValue: (attributes: Attribute[], name: string) => any;
14
- export declare const generateLineItem: (port: string, type: string, parentId: string, attributes?: NewAttribute[], lineItems?: LineItem[]) => LineItem;
15
- export declare const getRecommendedPrices: (portDomain: PortDomain, type: string) => {
16
- net: number;
17
- list: number;
18
- };
19
- export declare const getOriginParent: (lineItems: LineItem[], currentLineItem: LineItem) => LineItem | undefined;
20
- export declare const assetPredicateFn: (lineItem: LineItem, assetId?: string) => boolean;
21
- export declare const multiplyLineItems: (lineItem: LineItem, qty: number, split: boolean) => LineItem[];
22
- export declare const isTechnicalAttribute: (name: string) => boolean;
23
- export declare const filterOutTechnicalAttributes: <T extends {
24
- name: string;
25
- }>(attributes: T[]) => T[];
@@ -1,9 +0,0 @@
1
- import { LineItem, NewAttribute } from '@veloceapps/core';
2
- export declare class LineItemWorker {
3
- li: LineItem;
4
- constructor(src: LineItem);
5
- insert(parentId: string, toInsert: LineItem): LineItemWorker;
6
- remove(id: string): LineItemWorker;
7
- replace(toReplace: LineItem, skipCardinalityCalculation?: boolean): LineItemWorker;
8
- patchAttribute(attrs: NewAttribute[], id?: string, skipCardinalityCalculation?: boolean): LineItemWorker;
9
- }
@@ -1,109 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { ConfigurationService, LineItemWorker, generateLineItem, getAttributeValue } from '@veloceapps/sdk/core';
3
- import { Subject, map, takeUntil } from 'rxjs';
4
- import { ELEMENT_METADATA } from '../injection-tokens';
5
- import { parseBoundPath } from '../utils/path.utils';
6
- import * as i0 from "@angular/core";
7
- export class ConfigurationPlugin {
8
- constructor(host) {
9
- this.host = host;
10
- this.destroy$ = new Subject();
11
- this.elementMetadata = this.host.injector.get(ELEMENT_METADATA);
12
- this.configurationService = this.host.injector.get(ConfigurationService);
13
- if (this.elementMetadata.model?.lineItem) {
14
- this.host.model$.pipe(takeUntil(this.destroy$)).subscribe(model => (this.modelSnapshot = model));
15
- const pathBlocks = parseBoundPath(this.elementMetadata.model?.lineItem);
16
- const firstPathBlock = pathBlocks.reverse()[0];
17
- if (!firstPathBlock) {
18
- return;
19
- }
20
- const { type, property, name } = firstPathBlock;
21
- this.host.boundName = name ?? type;
22
- this.register(type, property, name);
23
- }
24
- }
25
- ngOnDestroy() {
26
- this.destroy$.next();
27
- this.destroy$.complete();
28
- }
29
- register(type, property, name) {
30
- if (!type) {
31
- return;
32
- }
33
- if (!property) {
34
- this.registerType();
35
- }
36
- else if (property === 'ports' && name) {
37
- this.registerPort(name);
38
- }
39
- else if (property === 'attributes' && name) {
40
- this.registerAttribute(name);
41
- }
42
- }
43
- registerType() {
44
- const remove = () => {
45
- const rootLineItem = this.configurationService.getSnapshot();
46
- if (!rootLineItem || !this.modelSnapshot) {
47
- return;
48
- }
49
- this.configurationService.patch(new LineItemWorker(rootLineItem).remove(this.modelSnapshot.id).li);
50
- };
51
- const updateQty = (qty) => {
52
- const rootLineItem = this.configurationService.getSnapshot();
53
- if (!rootLineItem || !this.modelSnapshot) {
54
- return;
55
- }
56
- this.configurationService.patch(new LineItemWorker(rootLineItem).replace({ ...this.modelSnapshot, qty }).li);
57
- };
58
- this.typeHost.remove = remove;
59
- this.typeHost.updateQty = updateQty;
60
- }
61
- registerPort(name) {
62
- const model$ = this.host.model$;
63
- const portItems$ = model$.pipe(map(model => model?.lineItems.filter(li => li.port === this.host.boundName) ?? []));
64
- const portDomain$ = model$.pipe(map(model => model?.portDomains[this.host.boundName]));
65
- const add = (type, attributes = []) => {
66
- if (!this.modelSnapshot) {
67
- return;
68
- }
69
- const portDomain = this.modelSnapshot.portDomains[name];
70
- if (!portDomain) {
71
- return;
72
- }
73
- const generated = generateLineItem(portDomain.name, type, this.modelSnapshot.id, attributes);
74
- this.configurationService.patch(new LineItemWorker(this.modelSnapshot).insert(this.modelSnapshot.id, generated).li);
75
- };
76
- this.portHost.portItems$ = portItems$;
77
- this.portHost.portDomain$ = portDomain$;
78
- this.portHost.addPortItem = add;
79
- }
80
- registerAttribute(name) {
81
- if (!this.host.model$) {
82
- return;
83
- }
84
- const value$ = this.host.model$.pipe(map(model => getAttributeValue(model?.attributes ?? [], name)));
85
- const patch = (value) => {
86
- if (!this.modelSnapshot) {
87
- return;
88
- }
89
- this.configurationService.patch(new LineItemWorker(this.modelSnapshot).patchAttribute([{ name, value }]).li);
90
- };
91
- this.attributeHost.value$ = value$;
92
- this.attributeHost.patch = patch;
93
- }
94
- get attributeHost() {
95
- return this.host;
96
- }
97
- get typeHost() {
98
- return this.host;
99
- }
100
- get portHost() {
101
- return this.host;
102
- }
103
- }
104
- ConfigurationPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationPlugin, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
105
- ConfigurationPlugin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ConfigurationPlugin, ngImport: i0 });
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationPlugin, decorators: [{
107
- type: Directive
108
- }], ctorParameters: function () { return [{ type: undefined }]; } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvcGx1Z2lucy9jb25maWd1cmF0aW9uLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqSCxPQUFPLEVBQWMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUdyRCxNQUFNLE9BQU8sbUJBQW1CO0lBTzlCLFlBQW1CLElBQTZDO1FBQTdDLFNBQUksR0FBSixJQUFJLENBQXlDO1FBTHhELGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBTXJDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXpFLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUss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LElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckcsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFVLEVBQVEsRUFBRTtZQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdkIsT0FBTzthQUNSO1lBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9HLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVksYUFBYTtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUEyQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFZLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBc0MsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQXNDLENBQUM7SUFDckQsQ0FBQzs7Z0hBMUhVLG1CQUFtQjtvR0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGluZUl0ZW0gfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlLCBMaW5lSXRlbVdvcmtlciwgZ2VuZXJhdGVMaW5lSXRlbSwgZ2V0QXR0cmlidXRlVmFsdWUgfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGx1Z2luQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4uY29tcG9uZW50JztcbmltcG9ydCB7IEVMRU1FTlRfTUVUQURBVEEgfSBmcm9tICcuLi9pbmplY3Rpb24tdG9rZW5zJztcbmltcG9ydCB7IEF0dHJpYnV0ZUVsZW1lbnQsIENvbmZpZ3VyYXRpb25FbGVtZW50LCBQb3J0RWxlbWVudCwgVHlwZUVsZW1lbnQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi90eXBlcy9jb21tb24udHlwZXMnO1xuaW1wb3J0IHsgcGFyc2VCb3VuZFBhdGggfSBmcm9tICcuLi91dGlscy9wYXRoLnV0aWxzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvblBsdWdpbiBpbXBsZW1lbnRzIFBsdWdpbkNvbXBvbmVudCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBtb2RlbFNuYXBzaG90PzogTGluZUl0ZW07XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgZWxlbWVudE1ldGFkYXRhOiBFbGVtZW50TWV0YWRhdGE7XG4gIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBob3N0OiBFbGVtZW50Q29tcG9uZW50ICYgQ29uZmlndXJhdGlvbkVsZW1lbnQpIHtcbiAgICB0aGlzLmVsZW1lbnRNZXRhZGF0YSA9IHRoaXMuaG9zdC5pbmplY3Rvci5nZXQoRUxFTUVOVF9NRVRBREFUQSk7XG4gICAgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IHRoaXMuaG9zdC5pbmplY3Rvci5nZXQoQ29uZmlndXJhdGlvblNlcnZpY2UpO1xuXG4gICAgaWYgKHRoaXMuZWxlbWVudE1ldGFkYXRhLm1vZGVsPy5saW5lSXRlbSkge1xuICAgICAgdGhpcy5ob3N0Lm1vZGVsJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKG1vZGVsID0+ICh0aGlzLm1vZGVsU25hcHNob3QgPSBtb2RlbCkpO1xuXG4gICAgICBjb25zdCBwYXRoQmxvY2tzID0gcGFyc2VCb3VuZFBhdGgodGhpcy5lbGVtZW50TWV0YWRhdGEubW9kZWw/LmxpbmVJdGVtKTtcbiAgICAgIGNvbnN0IGZpcnN0UGF0aEJsb2NrID0gcGF0aEJsb2Nrcy5yZXZlcnNlKClbMF07XG4gICAgICBpZiAoIWZpcnN0UGF0aEJsb2NrKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyB0eXBlLCBwcm9wZXJ0eSwgbmFtZSB9ID0gZmlyc3RQYXRoQmxvY2s7XG4gICAgICB0aGlzLmhvc3QuYm91bmROYW1lID0gbmFtZSA/PyB0eXBlO1xuXG4gICAgICB0aGlzLnJlZ2lzdGVyKHR5cGUsIHByb3BlcnR5LCBuYW1lKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3Rlcih0eXBlOiBzdHJpbmcsIHByb3BlcnR5Pzogc3RyaW5nLCBuYW1lPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0eXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFwcm9wZXJ0eSkge1xuICAgICAgdGhpcy5yZWdpc3RlclR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09PSAncG9ydHMnICYmIG5hbWUpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJQb3J0KG5hbWUpO1xuICAgIH0gZWxzZSBpZiAocHJvcGVydHkgPT09ICdhdHRyaWJ1dGVzJyAmJiBuYW1lKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyQXR0cmlidXRlKG5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJUeXBlKCk6IHZvaWQge1xuICAgIGNvbnN0IHJlbW92ZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHJvb3RMaW5lSXRlbSA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuZ2V0U25hcHNob3QoKTtcbiAgICAgIGlmICghcm9vdExpbmVJdGVtIHx8ICF0aGlzLm1vZGVsU25hcHNob3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5wYXRjaChuZXcgTGluZUl0ZW1Xb3JrZXIocm9vdExpbmVJdGVtKS5yZW1vdmUodGhpcy5tb2RlbFNuYXBzaG90LmlkKS5saSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZVF0eSA9IChxdHk6IG51bWJlcik6IHZvaWQgPT4ge1xuICAgICAgY29uc3Qgcm9vdExpbmVJdGVtID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5nZXRTbmFwc2hvdCgpO1xuICAgICAgaWYgKCFyb290TGluZUl0ZW0gfHwgIXRoaXMubW9kZWxTbmFwc2hvdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLnBhdGNoKG5ldyBMaW5lSXRlbVdvcmtlcihyb290TGluZUl0ZW0pLnJlcGxhY2UoeyAuLi50aGlzLm1vZGVsU25hcHNob3QsIHF0eSB9KS5saSk7XG4gICAgfTtcblxuICAgIHRoaXMudHlwZUhvc3QucmVtb3ZlID0gcmVtb3ZlO1xuICAgIHRoaXMudHlwZUhvc3QudXBkYXRlUXR5ID0gdXBkYXRlUXR5O1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlclBvcnQobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgbW9kZWwkID0gdGhpcy5ob3N0Lm1vZGVsJCBhcyBPYnNlcnZhYmxlPExpbmVJdGVtIHwgdW5kZWZpbmVkPjtcblxuICAgIGNvbnN0IHBvcnRJdGVtcyQgPSBtb2RlbCQucGlwZShtYXAobW9kZWwgPT4gbW9kZWw/LmxpbmVJdGVtcy5maWx0ZXIobGkgPT4gbGkucG9ydCA9PT0gdGhpcy5ob3N0LmJvdW5kTmFtZSkgPz8gW10pKTtcbiAgICBjb25zdCBwb3J0RG9tYWluJCA9IG1vZGVsJC5waXBlKG1hcChtb2RlbCA9PiBtb2RlbD8ucG9ydERvbWFpbnNbdGhpcy5ob3N0LmJvdW5kTmFtZV0pKTtcblxuICAgIGNvbnN0IGFkZCA9ICh0eXBlOiBzdHJpbmcsIGF0dHJpYnV0ZXM6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogYW55IH1bXSA9IFtdKTogdm9pZCA9PiB7XG4gICAgICBpZiAoIXRoaXMubW9kZWxTbmFwc2hvdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBvcnREb21haW4gPSB0aGlzLm1vZGVsU25hcHNob3QucG9ydERvbWFpbnNbbmFtZV07XG4gICAgICBpZiAoIXBvcnREb21haW4pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBnZW5lcmF0ZWQgPSBnZW5lcmF0ZUxpbmVJdGVtKHBvcnREb21haW4ubmFtZSwgdHlwZSwgdGhpcy5tb2RlbFNuYXBzaG90LmlkLCBhdHRyaWJ1dGVzKTtcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UucGF0Y2goXG4gICAgICAgIG5ldyBMaW5lSXRlbVdvcmtlcih0aGlzLm1vZGVsU25hcHNob3QpLmluc2VydCh0aGlzLm1vZGVsU25hcHNob3QuaWQsIGdlbmVyYXRlZCkubGksXG4gICAgICApO1xuICAgIH07XG5cbiAgICB0aGlzLnBvcnRIb3N0LnBvcnRJdGVtcyQgPSBwb3J0SXRlbXMkO1xuICAgIHRoaXMucG9ydEhvc3QucG9ydERvbWFpbiQgPSBwb3J0RG9tYWluJDtcbiAgICB0aGlzLnBvcnRIb3N0LmFkZFBvcnRJdGVtID0gYWRkO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckF0dHJpYnV0ZShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaG9zdC5tb2RlbCQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSQgPSB0aGlzLmhvc3QubW9kZWwkLnBpcGUobWFwKG1vZGVsID0+IGdldEF0dHJpYnV0ZVZhbHVlKG1vZGVsPy5hdHRyaWJ1dGVzID8/IFtdLCBuYW1lKSkpO1xuXG4gICAgY29uc3QgcGF0Y2ggPSAodmFsdWU6IGFueSk6IHZvaWQgPT4ge1xuICAgICAgaWYgKCF0aGlzLm1vZGVsU25hcHNob3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5wYXRjaChuZXcgTGluZUl0ZW1Xb3JrZXIodGhpcy5tb2RlbFNuYXBzaG90KS5wYXRjaEF0dHJpYnV0ZShbeyBuYW1lLCB2YWx1ZSB9XSkubGkpO1xuICAgIH07XG5cbiAgICB0aGlzLmF0dHJpYnV0ZUhvc3QudmFsdWUkID0gdmFsdWUkO1xuICAgIHRoaXMuYXR0cmlidXRlSG9zdC5wYXRjaCA9IHBhdGNoO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgYXR0cmlidXRlSG9zdCgpOiBFbGVtZW50Q29tcG9uZW50ICYgQXR0cmlidXRlRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdCBhcyBFbGVtZW50Q29tcG9uZW50ICYgQXR0cmlidXRlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHR5cGVIb3N0KCk6IEVsZW1lbnRDb21wb25lbnQgJiBUeXBlRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdCBhcyBFbGVtZW50Q29tcG9uZW50ICYgVHlwZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBwb3J0SG9zdCgpOiBFbGVtZW50Q29tcG9uZW50ICYgUG9ydEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmhvc3QgYXMgRWxlbWVudENvbXBvbmVudCAmIFBvcnRFbGVtZW50O1xuICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy90eXBlcy9jb25maWd1cmF0aW9uLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaW5lSXRlbSwgUG9ydERvbWFpbiB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ3VyYXRpb25FbGVtZW50IHtcbiAgYm91bmROYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUVsZW1lbnQgZXh0ZW5kcyBDb25maWd1cmF0aW9uRWxlbWVudCB7XG4gIHVwZGF0ZVF0eTogKHF0eTogbnVtYmVyKSA9PiB2b2lkO1xuICByZW1vdmU6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9ydEVsZW1lbnQgZXh0ZW5kcyBDb25maWd1cmF0aW9uRWxlbWVudCB7XG4gIHBvcnRJdGVtcyQ6IE9ic2VydmFibGU8TGluZUl0ZW1bXT47XG4gIHBvcnREb21haW4kOiBPYnNlcnZhYmxlPFBvcnREb21haW4gfCB1bmRlZmluZWQ+O1xuICBhZGRQb3J0SXRlbTogKHR5cGU6IHN0cmluZywgYXR0cmlidXRlczogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZUVsZW1lbnQgZXh0ZW5kcyBDb25maWd1cmF0aW9uRWxlbWVudCB7XG4gIHZhbHVlJDogT2JzZXJ2YWJsZTxhbnkgfCB1bmRlZmluZWQ+O1xuICBwYXRjaDogKHZhbHVlOiBhbnkpID0+IHZvaWQ7XG59XG4iXX0=
@@ -1,67 +0,0 @@
1
- import { ConfigurationContextMode, UUID, } from '@veloceapps/core';
2
- export const getDefaultLineItem = (context, uiDefinitionProperties, qty = 1) => {
3
- const id = UUID.UUID();
4
- const attributes = [];
5
- const lineItems = [];
6
- return {
7
- id,
8
- type: uiDefinitionProperties.rootType ?? '',
9
- cfgStatus: 'Default',
10
- actionCode: 'ADD',
11
- qty,
12
- attributes,
13
- lineItems,
14
- productName: context.properties?.['displayName'] || context.productName,
15
- productId: context.productId ?? '',
16
- ...(uiDefinitionProperties.offeringId ? { offeringId: uiDefinitionProperties.offeringId } : {}),
17
- };
18
- };
19
- export const generateEmptyContext = () => {
20
- return {
21
- headerId: '',
22
- mode: ConfigurationContextMode.TEST,
23
- properties: {},
24
- configurationToken: '',
25
- };
26
- };
27
- export const getGuidedSellingConfigurationRequest = (data) => {
28
- return {
29
- mode: 'SEARCH',
30
- step: 'START',
31
- attributeDomainMode: 'ALL',
32
- context: generateEmptyContext(),
33
- lineItem: {
34
- actionCode: 'ADD',
35
- cfgStatus: 'Default',
36
- id: UUID.UUID(),
37
- qty: 1,
38
- type: data.modelType,
39
- attributes: Object.entries(data.attributesMap).map(([name, value]) => ({
40
- name,
41
- value,
42
- cfgStatus: 'User',
43
- })),
44
- },
45
- };
46
- };
47
- export const generateConfigurationLineItem = (props, qty = 1) => {
48
- const id = UUID.UUID();
49
- const attributes = Object.entries(props.attributesMap ?? {}).map(([name, value]) => ({
50
- name,
51
- value,
52
- cfgStatus: 'User',
53
- }));
54
- const lineItems = [];
55
- return {
56
- id,
57
- type: props.product.typeName ?? '',
58
- cfgStatus: 'Default',
59
- actionCode: 'ADD',
60
- qty,
61
- attributes,
62
- lineItems,
63
- productName: props.product.name,
64
- productId: props.product.id ?? '',
65
- };
66
- };
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvbW9kdWxlcy9jb25maWd1cmF0aW9uL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHdCQUF3QixFQUl4QixJQUFJLEdBQ0wsTUFBTSxrQkFBa0IsQ0FBQztBQUkxQixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUNoQyxPQUF1QixFQUN2QixzQkFBeUMsRUFDekMsR0FBRyxHQUFHLENBQUMsRUFDRyxFQUFFO0lBQ1osTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLE1BQU0sVUFBVSxHQUFnQixFQUFFLENBQUM7SUFDbkMsTUFBTSxTQUFTLEdBQWUsRUFBRSxDQUFDO0lBRWpDLE9BQU87UUFDTCxFQUFFO1FBQ0YsSUFBSSxFQUFFLHNCQUFzQixDQUFDLFFBQVEsSUFBSSxFQUFFO1FBQzNDLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLFVBQVUsRUFBRSxLQUFLO1FBQ2pCLEdBQUc7UUFDSCxVQUFVO1FBQ1YsU0FBUztRQUNULFdBQVcsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksT0FBTyxDQUFDLFdBQVc7UUFDdkUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRTtRQUNsQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ3BGLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBeUIsRUFBRTtJQUM3RCxPQUFPO1FBQ0wsUUFBUSxFQUFFLEVBQUU7UUFDWixJQUFJLEVBQUUsd0JBQXdCLENBQUMsSUFBSTtRQUNuQyxVQUFVLEVBQUUsRUFBRTtRQUNkLGtCQUFrQixFQUFFLEVBQUU7S0FDdkIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLENBQUMsSUFBNkIsRUFBd0IsRUFBRTtJQUMxRyxPQUFPO1FBQ0wsSUFBSSxFQUFFLFFBQVE7UUFDZCxJQUFJLEVBQUUsT0FBTztRQUNiLG1CQUFtQixFQUFFLEtBQUs7UUFDMUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFO1FBQy9CLFFBQVEsRUFBRTtZQUNSLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2YsR0FBRyxFQUFFLENBQUM7WUFDTixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDcEIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRSxJQUFJO2dCQUNKLEtBQUs7Z0JBQ0wsU0FBUyxFQUFFLE1BQU07YUFDbEIsQ0FBQyxDQUFDO1NBQ1E7S0FDZCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxLQUE0QixFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQVksRUFBRTtJQUMvRixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLElBQUk7UUFDSixLQUFLO1FBQ0wsU0FBUyxFQUFFLE1BQU07S0FDbEIsQ0FBQyxDQUFDLENBQUM7SUFDSixNQUFNLFNBQVMsR0FBZSxFQUFFLENBQUM7SUFFakMsT0FBTztRQUNMLEVBQUU7UUFDRixJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRTtRQUNsQyxTQUFTLEVBQUUsU0FBUztRQUNwQixVQUFVLEVBQUUsS0FBSztRQUNqQixHQUFHO1FBQ0gsVUFBVTtRQUNWLFNBQVM7UUFDVCxXQUFXLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJO1FBQy9CLFNBQVMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFO0tBQ3RCLENBQUM7QUFDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXR0cmlidXRlLFxuICBDb25maWd1cmF0aW9uQ29udGV4dCxcbiAgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLFxuICBDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgTGluZUl0ZW0sXG4gIFVJRGVmaW5pdGlvblByb3BzLFxuICBVVUlELFxufSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IFJ1bnRpbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgR3VpZGVkU2VsbGluZ1N1Ym1pdERhdGEsIE5ld0NvbmZpZ3VyYXRpb25Qcm9wcyB9IGZyb20gJy4vdHlwZXMvY29uZmlndXJhdGlvbi50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0TGluZUl0ZW0gPSAoXG4gIGNvbnRleHQ6IFJ1bnRpbWVDb250ZXh0LFxuICB1aURlZmluaXRpb25Qcm9wZXJ0aWVzOiBVSURlZmluaXRpb25Qcm9wcyxcbiAgcXR5ID0gMSxcbik6IExpbmVJdGVtID0+IHtcbiAgY29uc3QgaWQgPSBVVUlELlVVSUQoKTtcbiAgY29uc3QgYXR0cmlidXRlczogQXR0cmlidXRlW10gPSBbXTtcbiAgY29uc3QgbGluZUl0ZW1zOiBMaW5lSXRlbVtdID0gW107XG5cbiAgcmV0dXJuIHtcbiAgICBpZCxcbiAgICB0eXBlOiB1aURlZmluaXRpb25Qcm9wZXJ0aWVzLnJvb3RUeXBlID8/ICcnLFxuICAgIGNmZ1N0YXR1czogJ0RlZmF1bHQnLFxuICAgIGFjdGlvbkNvZGU6ICdBREQnLFxuICAgIHF0eSxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIGxpbmVJdGVtcyxcbiAgICBwcm9kdWN0TmFtZTogY29udGV4dC5wcm9wZXJ0aWVzPy5bJ2Rpc3BsYXlOYW1lJ10gfHwgY29udGV4dC5wcm9kdWN0TmFtZSxcbiAgICBwcm9kdWN0SWQ6IGNvbnRleHQucHJvZHVjdElkID8/ICcnLFxuICAgIC4uLih1aURlZmluaXRpb25Qcm9wZXJ0aWVzLm9mZmVyaW5nSWQgPyB7IG9mZmVyaW5nSWQ6IHVpRGVmaW5pdGlvblByb3BlcnRpZXMub2ZmZXJpbmdJZCB9IDoge30pLFxuICB9IGFzIExpbmVJdGVtO1xufTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlRW1wdHlDb250ZXh0ID0gKCk6IENvbmZpZ3VyYXRpb25Db250ZXh0ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBoZWFkZXJJZDogJycsXG4gICAgbW9kZTogQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLlRFU1QsXG4gICAgcHJvcGVydGllczoge30sXG4gICAgY29uZmlndXJhdGlvblRva2VuOiAnJyxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRHdWlkZWRTZWxsaW5nQ29uZmlndXJhdGlvblJlcXVlc3QgPSAoZGF0YTogR3VpZGVkU2VsbGluZ1N1Ym1pdERhdGEpOiBDb25maWd1cmF0aW9uUmVxdWVzdCA9PiB7XG4gIHJldHVybiB7XG4gICAgbW9kZTogJ1NFQVJDSCcsXG4gICAgc3RlcDogJ1NUQVJUJyxcbiAgICBhdHRyaWJ1dGVEb21haW5Nb2RlOiAnQUxMJyxcbiAgICBjb250ZXh0OiBnZW5lcmF0ZUVtcHR5Q29udGV4dCgpLFxuICAgIGxpbmVJdGVtOiB7XG4gICAgICBhY3Rpb25Db2RlOiAnQUREJyxcbiAgICAgIGNmZ1N0YXR1czogJ0RlZmF1bHQnLFxuICAgICAgaWQ6IFVVSUQuVVVJRCgpLFxuICAgICAgcXR5OiAxLFxuICAgICAgdHlwZTogZGF0YS5tb2RlbFR5cGUsXG4gICAgICBhdHRyaWJ1dGVzOiBPYmplY3QuZW50cmllcyhkYXRhLmF0dHJpYnV0ZXNNYXApLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gKHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGNmZ1N0YXR1czogJ1VzZXInLFxuICAgICAgfSkpLFxuICAgIH0gYXMgTGluZUl0ZW0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVDb25maWd1cmF0aW9uTGluZUl0ZW0gPSAocHJvcHM6IE5ld0NvbmZpZ3VyYXRpb25Qcm9wcywgcXR5ID0gMSk6IExpbmVJdGVtID0+IHtcbiAgY29uc3QgaWQgPSBVVUlELlVVSUQoKTtcbiAgY29uc3QgYXR0cmlidXRlcyA9IE9iamVjdC5lbnRyaWVzKHByb3BzLmF0dHJpYnV0ZXNNYXAgPz8ge30pLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gKHtcbiAgICBuYW1lLFxuICAgIHZhbHVlLFxuICAgIGNmZ1N0YXR1czogJ1VzZXInLFxuICB9KSk7XG4gIGNvbnN0IGxpbmVJdGVtczogTGluZUl0ZW1bXSA9IFtdO1xuXG4gIHJldHVybiB7XG4gICAgaWQsXG4gICAgdHlwZTogcHJvcHMucHJvZHVjdC50eXBlTmFtZSA/PyAnJyxcbiAgICBjZmdTdGF0dXM6ICdEZWZhdWx0JyxcbiAgICBhY3Rpb25Db2RlOiAnQUREJyxcbiAgICBxdHksXG4gICAgYXR0cmlidXRlcyxcbiAgICBsaW5lSXRlbXMsXG4gICAgcHJvZHVjdE5hbWU6IHByb3BzLnByb2R1Y3QubmFtZSxcbiAgICBwcm9kdWN0SWQ6IHByb3BzLnByb2R1Y3QuaWQgPz8gJycsXG4gIH0gYXMgTGluZUl0ZW07XG59O1xuIl19