@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.
- package/cms/cms.actions.d.ts +98 -22
- package/cms/components/element-renderer/element-renderer.component.d.ts +3 -10
- package/cms/services/element-context.service.d.ts +0 -1
- package/cms/types/common.types.d.ts +2 -0
- package/cms/types/index.d.ts +0 -1
- package/cms/utils/path.utils.d.ts +1 -2
- package/cms/vendor-map.d.ts +4 -27
- package/core/index.d.ts +0 -1
- package/core/modules/configuration/index.d.ts +1 -4
- package/core/modules/configuration/services/configuration-runtime.service.d.ts +3 -20
- package/core/modules/configuration/services/configuration-state.service.d.ts +3 -3
- package/core/modules/configuration/services/configuration.service.d.ts +23 -46
- package/core/modules/flow-configuration/index.d.ts +0 -3
- package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +5 -13
- package/core/services/flow-info.service.d.ts +3 -2
- package/core/services/flow-state-configuration.service.d.ts +2 -8
- package/core/services/flow-state.service.d.ts +6 -12
- package/core/services/index.d.ts +0 -1
- package/core/services/integration.state.d.ts +1 -1
- package/core/services/sales-transaction.service.d.ts +4 -2
- package/core/types/index.d.ts +0 -1
- package/core/utils/index.d.ts +2 -2
- package/core/utils/transaction-item.utils.d.ts +7 -0
- package/core/utils/transaction-item.worker.d.ts +8 -0
- package/esm2020/cms/cms.actions.mjs +99 -65
- package/esm2020/cms/cms.default.mjs +2 -3
- package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +7 -64
- package/esm2020/cms/components/preview/preview.component.mjs +3 -3
- package/esm2020/cms/services/element-context.service.mjs +1 -1
- package/esm2020/cms/types/common.types.mjs +1 -1
- package/esm2020/cms/types/index.mjs +1 -2
- package/esm2020/cms/utils/element.utils.mjs +3 -3
- package/esm2020/cms/utils/path.utils.mjs +1 -10
- package/esm2020/cms/vendor-map.mjs +4 -5
- package/esm2020/core/core.module.mjs +4 -5
- package/esm2020/core/index.mjs +1 -2
- package/esm2020/core/modules/configuration/configuration.module.mjs +3 -4
- package/esm2020/core/modules/configuration/index.mjs +2 -5
- package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +9 -67
- package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +46 -54
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +96 -226
- package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +3 -4
- package/esm2020/core/modules/flow-configuration/index.mjs +1 -4
- package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +15 -32
- package/esm2020/core/services/flow-info.service.mjs +9 -3
- package/esm2020/core/services/flow-state-configuration.service.mjs +10 -25
- package/esm2020/core/services/flow-state.service.mjs +25 -58
- package/esm2020/core/services/index.mjs +1 -2
- package/esm2020/core/services/integration.state.mjs +2 -2
- package/esm2020/core/services/sales-transaction.service.mjs +11 -5
- package/esm2020/core/types/index.mjs +1 -2
- package/esm2020/core/utils/index.mjs +3 -3
- package/esm2020/core/utils/transaction-item.utils.mjs +60 -0
- package/esm2020/core/utils/transaction-item.worker.mjs +16 -0
- package/esm2020/src/flow-routing.module.mjs +8 -8
- package/esm2020/src/guards/flow.guard.mjs +5 -7
- package/esm2020/src/guards/product-unload.guard.mjs +7 -7
- package/esm2020/src/index.mjs +1 -2
- package/esm2020/src/pages/debug/debug.component.mjs +10 -15
- package/esm2020/src/pages/product/product.component.mjs +11 -14
- package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +5 -6
- package/esm2020/src/resolvers/sales-transaction.resolver.mjs +83 -0
- package/esm2020/src/resolvers/ui-definition.resolver.mjs +5 -4
- package/esm2020/src/services/flow-dialog.service.mjs +1 -1
- package/esm2020/src/services/flow-router.service.mjs +17 -24
- package/esm2020/src/services/flow.service.mjs +5 -13
- package/esm2020/src/types/index.mjs +2 -3
- package/esm2020/src/types/route.types.mjs +1 -1
- package/fesm2015/veloceapps-sdk-cms.mjs +116 -252
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +318 -1116
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +87 -120
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +112 -244
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +366 -1162
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +87 -120
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +1 -1
- package/src/guards/product-unload.guard.d.ts +3 -3
- package/src/index.d.ts +0 -1
- package/src/pages/debug/debug.component.d.ts +1 -3
- package/src/pages/product/product.component.d.ts +3 -4
- package/src/pages/record-not-found/record-not-found.component.d.ts +2 -3
- package/src/resolvers/sales-transaction.resolver.d.ts +18 -0
- package/src/services/flow-dialog.service.d.ts +2 -1
- package/src/services/flow-router.service.d.ts +5 -5
- package/src/services/flow.service.d.ts +0 -1
- package/src/types/index.d.ts +1 -2
- package/src/types/route.types.d.ts +0 -5
- package/cms/plugins/configuration.plugin.d.ts +0 -23
- package/cms/types/configuration.types.d.ts +0 -21
- package/core/modules/configuration/helpers.d.ts +0 -7
- package/core/modules/configuration/services/runtime-context.service.d.ts +0 -12
- package/core/modules/configuration/types/configuration-runtime.types.d.ts +0 -8
- package/core/modules/flow-configuration/services/flow-update.service.d.ts +0 -13
- package/core/modules/flow-configuration/types/update.types.d.ts +0 -12
- package/core/services/quote-draft.service.d.ts +0 -50
- package/core/types/runtime.types.d.ts +0 -30
- package/core/utils/line-item.utils.d.ts +0 -25
- package/core/utils/line-item.worker.d.ts +0 -9
- package/esm2020/cms/plugins/configuration.plugin.mjs +0 -109
- package/esm2020/cms/types/configuration.types.mjs +0 -2
- package/esm2020/core/modules/configuration/helpers.mjs +0 -67
- package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +0 -45
- package/esm2020/core/modules/configuration/types/configuration-runtime.types.mjs +0 -2
- package/esm2020/core/modules/flow-configuration/services/flow-update.service.mjs +0 -138
- package/esm2020/core/modules/flow-configuration/types/update.types.mjs +0 -2
- package/esm2020/core/services/quote-draft.service.mjs +0 -174
- package/esm2020/core/types/runtime.types.mjs +0 -16
- package/esm2020/core/utils/line-item.utils.mjs +0 -187
- package/esm2020/core/utils/line-item.worker.mjs +0 -19
- package/esm2020/src/resolvers/quote.resolver.mjs +0 -82
- package/esm2020/src/types/context-route.types.mjs +0 -2
- package/esm2020/src/types/metrics.types.mjs +0 -2
- package/esm2020/src/utils/flow.utils.mjs +0 -14
- package/esm2020/src/utils/index.mjs +0 -2
- package/src/resolvers/quote.resolver.d.ts +0 -18
- package/src/types/context-route.types.d.ts +0 -5
- package/src/types/metrics.types.d.ts +0 -5
- package/src/utils/flow.utils.d.ts +0 -1
- package/src/utils/index.d.ts +0 -1
package/package.json
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
import { Component } from '@angular/core';
|
2
2
|
import { ActivatedRouteSnapshot, Router, RouterStateSnapshot, UrlTree } from '@angular/router';
|
3
|
-
import { ConfigurationService,
|
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
|
9
|
+
private flowInfoService;
|
10
10
|
private configurationService;
|
11
11
|
private flowDialogService;
|
12
|
-
constructor(router: Router,
|
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,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
|
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
|
7
|
+
private configurationRuntimeService;
|
9
8
|
private configurationStateService;
|
10
9
|
config: CMSPreviewConfig;
|
11
10
|
uiDefinitionContainer$: BehaviorSubject<UIDefinitionContainer | null>;
|
12
|
-
constructor(
|
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 {
|
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
|
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:
|
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 {
|
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
|
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,
|
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,
|
34
|
-
navigateToProductConfiguration(productId: string,
|
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
|
}
|
package/src/types/index.d.ts
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
export * from './
|
2
|
-
export * from './metrics.types';
|
1
|
+
export * from './route.types';
|
@@ -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,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
|