@veloceapps/sdk 11.0.0-16 → 11.0.0-17

Sign up to get free protection for your applications and to get access to all the features.
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