@veloceapps/sdk 3.0.5 → 3.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/veloce-sdk-cms.umd.js +157 -18
- package/bundles/veloce-sdk-cms.umd.js.map +1 -1
- package/bundles/veloce-sdk-runtime.umd.js +3 -0
- package/bundles/veloce-sdk-runtime.umd.js.map +1 -1
- package/bundles/veloce-sdk.umd.js +202 -122
- package/bundles/veloce-sdk.umd.js.map +1 -1
- package/cms/modules/flow-configuration/index.d.ts +2 -0
- package/cms/modules/flow-configuration/services/flow-configuration.service.d.ts +10 -1
- package/cms/modules/flow-configuration/services/flow-update.service.d.ts +13 -0
- package/cms/modules/flow-configuration/types/update.types.d.ts +12 -0
- package/cms/utils/line-item.utils.d.ts +1 -0
- package/esm2015/cms/modules/flow-configuration/flow-configuration.module.js +4 -3
- package/esm2015/cms/modules/flow-configuration/index.js +3 -1
- package/esm2015/cms/modules/flow-configuration/services/flow-configuration.service.js +31 -12
- package/esm2015/cms/modules/flow-configuration/services/flow-update.service.js +97 -0
- package/esm2015/cms/modules/flow-configuration/types/update.types.js +2 -0
- package/esm2015/cms/utils/line-item.utils.js +14 -4
- package/esm2015/runtime/execution/directives/vl-ramp.directive.js +1 -1
- package/esm2015/runtime/services/quote.service.js +4 -1
- package/esm2015/src/components/header/cart-overlay/cart-overlay.component.js +60 -0
- package/esm2015/src/components/header/cart-overlay/cart-overlay.module.js +21 -0
- package/esm2015/src/components/header/header.component.js +16 -10
- package/esm2015/src/components/header/header.module.js +6 -4
- package/esm2015/src/components/header/header.types.js +1 -1
- package/esm2015/src/pages/debug/debug.component.js +16 -11
- package/fesm2015/veloce-sdk-cms.js +142 -18
- package/fesm2015/veloce-sdk-cms.js.map +1 -1
- package/fesm2015/veloce-sdk-runtime.js +3 -0
- package/fesm2015/veloce-sdk-runtime.js.map +1 -1
- package/fesm2015/veloce-sdk.js +133 -62
- package/fesm2015/veloce-sdk.js.map +1 -1
- package/package.json +1 -1
- package/runtime/execution/directives/vl-ramp.directive.d.ts +1 -1
- package/runtime/services/quote.service.d.ts +1 -0
- package/src/components/header/cart-overlay/cart-overlay.component.d.ts +21 -0
- package/src/components/header/cart-overlay/cart-overlay.module.d.ts +11 -0
- package/src/components/header/header.component.d.ts +5 -2
- package/src/components/header/header.module.d.ts +3 -1
- package/src/components/header/header.types.d.ts +1 -0
- package/src/pages/debug/debug.component.d.ts +5 -2
|
@@ -4,22 +4,31 @@ import { ContextService } from '@veloce/sdk/runtime';
|
|
|
4
4
|
import { Dictionary } from 'lodash';
|
|
5
5
|
import { MessageService } from 'primeng/api';
|
|
6
6
|
import { Observable } from 'rxjs';
|
|
7
|
+
import { FlowUpdateParams } from '../types/update.types';
|
|
8
|
+
import { FlowUpdateService } from './flow-update.service';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
8
10
|
export declare class FlowConfigurationService {
|
|
9
11
|
private priceApiService;
|
|
10
12
|
private contextService;
|
|
11
13
|
private messageService;
|
|
14
|
+
private updateService;
|
|
12
15
|
private lineItems;
|
|
13
16
|
private charges;
|
|
14
|
-
constructor(priceApiService: PriceApiService, contextService: ContextService, messageService: MessageService);
|
|
17
|
+
constructor(priceApiService: PriceApiService, contextService: ContextService, messageService: MessageService, updateService: FlowUpdateService);
|
|
18
|
+
reset(): void;
|
|
15
19
|
calculate$(currentState: LineItem[]): Observable<PriceSummary>;
|
|
16
20
|
calculate(currentState: LineItem[]): void;
|
|
21
|
+
update$(params: FlowUpdateParams): Observable<PriceSummary>;
|
|
22
|
+
update(params: FlowUpdateParams): void;
|
|
23
|
+
delete$(id: string): Observable<PriceSummary>;
|
|
24
|
+
delete(id: string): void;
|
|
17
25
|
get(): Observable<LineItem[]>;
|
|
18
26
|
getSnapshot(): LineItem[];
|
|
19
27
|
get charges$(): Observable<Dictionary<PricePlanCharge>>;
|
|
20
28
|
get chargesSnapshot(): Dictionary<PricePlanCharge>;
|
|
21
29
|
get contextSnapshot(): ConfigurationContext | null;
|
|
22
30
|
get context$(): Observable<ConfigurationContext | null>;
|
|
31
|
+
private handleError;
|
|
23
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<FlowConfigurationService, never>;
|
|
24
33
|
static ɵprov: i0.ɵɵInjectableDeclaration<FlowConfigurationService>;
|
|
25
34
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LineItem } from '@veloce/core';
|
|
2
|
+
import { FlowUpdateParams } from '../types/update.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class FlowUpdateService {
|
|
5
|
+
update(rootLineItem: LineItem, params: FlowUpdateParams): LineItem;
|
|
6
|
+
delete(lineItems: LineItem[], id: string): LineItem[];
|
|
7
|
+
private updateQty;
|
|
8
|
+
private updateStartDate;
|
|
9
|
+
private updateEndDate;
|
|
10
|
+
private updatePriceAdjustment;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FlowUpdateService, never>;
|
|
12
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FlowUpdateService>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare type FlowUpdateDataType = 'LINEITEM' | 'CHARGE' | 'GROUP_CHARGE';
|
|
2
|
+
export declare type FlowUpdateAttributeType = 'QTY' | 'START_DATE' | 'END_DATE' | 'PRICE_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
|
+
}
|
|
@@ -3,6 +3,7 @@ import { Dictionary } from 'lodash';
|
|
|
3
3
|
import { PathBlock } from '../types/configuration.types';
|
|
4
4
|
export declare const parseBoundPath: (path: string) => PathBlock[];
|
|
5
5
|
export declare const findLineItem: (id: string, lineItems: LineItem[]) => LineItem | undefined;
|
|
6
|
+
export declare const findLineItemWithComparator: (lineItems: LineItem[], comparator: (li: LineItem) => boolean) => LineItem | undefined;
|
|
6
7
|
export declare const insertLineItem: (lineItem: LineItem, parentId: string, toInsert: LineItem) => LineItem;
|
|
7
8
|
export declare const removeLineItem: (lineItem: LineItem, idToRemove: string) => LineItem;
|
|
8
9
|
export declare const replaceLineItem: (lineItem: LineItem, replaceTo: LineItem) => LineItem;
|
|
@@ -2,16 +2,17 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { PriceApiService } from '@veloce/api';
|
|
3
3
|
import { ContextService } from '@veloce/sdk/runtime';
|
|
4
4
|
import { FlowConfigurationService } from './services/flow-configuration.service';
|
|
5
|
+
import { FlowUpdateService } from './services/flow-update.service';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export class FlowConfigurationModule {
|
|
7
8
|
}
|
|
8
9
|
FlowConfigurationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowConfigurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
10
|
FlowConfigurationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowConfigurationModule });
|
|
10
|
-
FlowConfigurationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowConfigurationModule, providers: [FlowConfigurationService, ContextService, PriceApiService] });
|
|
11
|
+
FlowConfigurationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowConfigurationModule, providers: [FlowConfigurationService, FlowUpdateService, ContextService, PriceApiService] });
|
|
11
12
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowConfigurationModule, decorators: [{
|
|
12
13
|
type: NgModule,
|
|
13
14
|
args: [{
|
|
14
|
-
providers: [FlowConfigurationService, ContextService, PriceApiService],
|
|
15
|
+
providers: [FlowConfigurationService, FlowUpdateService, ContextService, PriceApiService],
|
|
15
16
|
}]
|
|
16
17
|
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb25maWd1cmF0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9tb2R1bGVzL2Zsb3ctY29uZmlndXJhdGlvbi9mbG93LWNvbmZpZ3VyYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBS25FLE1BQU0sT0FBTyx1QkFBdUI7O3FIQUF2Qix1QkFBdUI7c0hBQXZCLHVCQUF1QjtzSEFBdkIsdUJBQXVCLGFBRnZCLENBQUMsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQzs0RkFFOUUsdUJBQXVCO2tCQUhuQyxRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRSxDQUFDLHdCQUF3QixFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxlQUFlLENBQUM7aUJBQzFGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByaWNlQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2UvYXBpJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvcnVudGltZSc7XG5pbXBvcnQgeyBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2Zsb3ctY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEZsb3dVcGRhdGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9mbG93LXVwZGF0ZS5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLCBGbG93VXBkYXRlU2VydmljZSwgQ29udGV4dFNlcnZpY2UsIFByaWNlQXBpU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEZsb3dDb25maWd1cmF0aW9uTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export * from './flow-configuration.module';
|
|
2
2
|
export * from './services/flow-configuration.service';
|
|
3
|
-
|
|
3
|
+
export * from './services/flow-update.service';
|
|
4
|
+
export * from './types/update.types';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvbW9kdWxlcy9mbG93LWNvbmZpZ3VyYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmxvdy1jb25maWd1cmF0aW9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2Zsb3ctY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZmxvdy11cGRhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL3VwZGF0ZS50eXBlcyc7XG4iXX0=
|
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, catchError, shareReplay, tap, throwError } from 'rxjs';
|
|
2
|
+
import { BehaviorSubject, catchError, map, of, shareReplay, switchMap, tap, throwError } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@veloce/api";
|
|
5
5
|
import * as i2 from "@veloce/sdk/runtime";
|
|
6
6
|
import * as i3 from "primeng/api";
|
|
7
|
+
import * as i4 from "./flow-update.service";
|
|
7
8
|
export class FlowConfigurationService {
|
|
8
|
-
constructor(priceApiService, contextService, messageService) {
|
|
9
|
+
constructor(priceApiService, contextService, messageService, updateService) {
|
|
9
10
|
this.priceApiService = priceApiService;
|
|
10
11
|
this.contextService = contextService;
|
|
11
12
|
this.messageService = messageService;
|
|
13
|
+
this.updateService = updateService;
|
|
12
14
|
this.lineItems = new BehaviorSubject([]);
|
|
13
15
|
this.charges = new BehaviorSubject({});
|
|
14
16
|
}
|
|
17
|
+
reset() {
|
|
18
|
+
this.lineItems.next([]);
|
|
19
|
+
this.charges.next({});
|
|
20
|
+
}
|
|
15
21
|
calculate$(currentState) {
|
|
16
22
|
const context = this.contextService.resolve();
|
|
17
23
|
return this.priceApiService.calculate({ context, currentState }).pipe(tap((result) => {
|
|
@@ -20,17 +26,23 @@ export class FlowConfigurationService {
|
|
|
20
26
|
if (context) {
|
|
21
27
|
this.contextService.update({ properties: context.properties });
|
|
22
28
|
}
|
|
23
|
-
}), catchError(error =>
|
|
24
|
-
console.error(error);
|
|
25
|
-
this.messageService.add({ severity: 'error', summary: error });
|
|
26
|
-
// bounce back if configuration call has failed
|
|
27
|
-
this.lineItems.next(this.lineItems.value.slice());
|
|
28
|
-
return throwError(() => error);
|
|
29
|
-
}));
|
|
29
|
+
}), catchError(error => this.handleError(error)));
|
|
30
30
|
}
|
|
31
31
|
calculate(currentState) {
|
|
32
32
|
this.calculate$(currentState).subscribe();
|
|
33
33
|
}
|
|
34
|
+
update$(params) {
|
|
35
|
+
return of([]).pipe(map(() => this.lineItems.value.map(li => this.updateService.update(li, params))), catchError(error => this.handleError(error)), switchMap(currentState => this.calculate$(currentState)));
|
|
36
|
+
}
|
|
37
|
+
update(params) {
|
|
38
|
+
this.update$(params).subscribe();
|
|
39
|
+
}
|
|
40
|
+
delete$(id) {
|
|
41
|
+
return of([]).pipe(map(() => this.updateService.delete(this.lineItems.value, id)), catchError(error => this.handleError(error)), switchMap(currentState => this.calculate$(currentState)));
|
|
42
|
+
}
|
|
43
|
+
delete(id) {
|
|
44
|
+
this.delete$(id).subscribe();
|
|
45
|
+
}
|
|
34
46
|
get() {
|
|
35
47
|
return this.lineItems.asObservable().pipe(shareReplay());
|
|
36
48
|
}
|
|
@@ -49,10 +61,17 @@ export class FlowConfigurationService {
|
|
|
49
61
|
get context$() {
|
|
50
62
|
return this.contextService.resolve$();
|
|
51
63
|
}
|
|
64
|
+
handleError(error) {
|
|
65
|
+
console.error(error);
|
|
66
|
+
this.messageService.add({ severity: 'error', summary: error });
|
|
67
|
+
// bounce back if configuration call has failed
|
|
68
|
+
this.lineItems.next(this.lineItems.value.slice());
|
|
69
|
+
return throwError(() => error);
|
|
70
|
+
}
|
|
52
71
|
}
|
|
53
|
-
FlowConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowConfigurationService, deps: [{ token: i1.PriceApiService }, { token: i2.ContextService }, { token: i3.MessageService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
72
|
+
FlowConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowConfigurationService, deps: [{ token: i1.PriceApiService }, { token: i2.ContextService }, { token: i3.MessageService }, { token: i4.FlowUpdateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
54
73
|
FlowConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowConfigurationService });
|
|
55
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowConfigurationService, decorators: [{
|
|
56
75
|
type: Injectable
|
|
57
|
-
}], ctorParameters: function () { return [{ type: i1.PriceApiService }, { type: i2.ContextService }, { type: i3.MessageService }]; } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
}], ctorParameters: function () { return [{ type: i1.PriceApiService }, { type: i2.ContextService }, { type: i3.MessageService }, { type: i4.FlowUpdateService }]; } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvbW9kdWxlcy9mbG93LWNvbmZpZ3VyYXRpb24vc2VydmljZXMvZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0zQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBS2pILE1BQU0sT0FBTyx3QkFBd0I7SUFJbkMsWUFDVSxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixjQUE4QixFQUM5QixhQUFnQztRQUhoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFQbEMsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBOEIsRUFBRSxDQUFDLENBQUM7SUFPcEUsQ0FBQztJQUVHLEtBQUs7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsVUFBVSxDQUFDLFlBQXdCO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFOUMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFF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YyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBVTtRQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUUvRCwrQ0FBK0M7UUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVsRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOztzSEE1RlUsd0JBQXdCOzBIQUF4Qix3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByaWNlQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2UvYXBpJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25Db250ZXh0LCBMaW5lSXRlbSwgUHJpY2VQbGFuQ2hhcmdlLCBQcmljZVN1bW1hcnkgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICdAdmVsb2NlL3Nkay9ydW50aW1lJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNhdGNoRXJyb3IsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvd1VwZGF0ZVBhcmFtcyB9IGZyb20gJy4uL3R5cGVzL3VwZGF0ZS50eXBlcyc7XG5pbXBvcnQgeyBGbG93VXBkYXRlU2VydmljZSB9IGZyb20gJy4vZmxvdy11cGRhdGUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbG93Q29uZmlndXJhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGxpbmVJdGVtcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGluZUl0ZW1bXT4oW10pO1xuICBwcml2YXRlIGNoYXJnZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERpY3Rpb25hcnk8UHJpY2VQbGFuQ2hhcmdlPj4oe30pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJpY2VBcGlTZXJ2aWNlOiBQcmljZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1cGRhdGVTZXJ2aWNlOiBGbG93VXBkYXRlU2VydmljZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLmxpbmVJdGVtcy5uZXh0KFtdKTtcbiAgICB0aGlzLmNoYXJnZXMubmV4dCh7fSk7XG4gIH1cblxuICBjYWxjdWxhdGUkKGN1cnJlbnRTdGF0ZTogTGluZUl0ZW1bXSk6IE9ic2VydmFibGU8UHJpY2VTdW1tYXJ5PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpO1xuXG4gICAgcmV0dXJuIHRoaXMucHJpY2VBcGlTZXJ2aWNlLmNhbGN1bGF0ZSh7IGNvbnRleHQsIGN1cnJlbnRTdGF0ZSB9KS5waXBlKFxuICAgICAgdGFwKChyZXN1bHQ6IFByaWNlU3VtbWFyeSkgPT4ge1xuICAgICAgICB0aGlzLmxpbmVJdGVtcy5uZXh0KHJlc3VsdC5saW5lSXRlbXMpO1xuICAgICAgICB0aGlzLmNoYXJnZXMubmV4dChyZXN1bHQuY2hhcmdlcyk7XG5cbiAgICAgICAgaWYgKGNvbnRleHQpIHtcbiAgICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnVwZGF0ZSh7IHByb3BlcnRpZXM6IGNvbnRleHQucHJvcGVydGllcyB9KTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKSxcbiAgICApO1xuICB9XG5cbiAgY2FsY3VsYXRlKGN1cnJlbnRTdGF0ZTogTGluZUl0ZW1bXSk6IHZvaWQge1xuICAgIHRoaXMuY2FsY3VsYXRlJChjdXJyZW50U3RhdGUpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgdXBkYXRlJChwYXJhbXM6IEZsb3dVcGRhdGVQYXJhbXMpOiBPYnNlcnZhYmxlPFByaWNlU3VtbWFyeT4ge1xuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIG1hcCgoKSA9PiB0aGlzLmxpbmVJdGVtcy52YWx1ZS5tYXAobGkgPT4gdGhpcy51cGRhdGVTZXJ2aWNlLnVwZGF0ZShsaSwgcGFyYW1zKSkpLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSksXG4gICAgICBzd2l0Y2hNYXAoY3VycmVudFN0YXRlID0+IHRoaXMuY2FsY3VsYXRlJChjdXJyZW50U3RhdGUpKSxcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlKHBhcmFtczogRmxvd1VwZGF0ZVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlJChwYXJhbXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZGVsZXRlJChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcmljZVN1bW1hcnk+IHtcbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdGhpcy51cGRhdGVTZXJ2aWNlLmRlbGV0ZSh0aGlzLmxpbmVJdGVtcy52YWx1ZSwgaWQpKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcikpLFxuICAgICAgc3dpdGNoTWFwKGN1cnJlbnRTdGF0ZSA9PiB0aGlzLmNhbGN1bGF0ZSQoY3VycmVudFN0YXRlKSksXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZShpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGUkKGlkKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMubGluZUl0ZW1zLmFzT2JzZXJ2YWJsZSgpLnBpcGUoc2hhcmVSZXBsYXkoKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U25hcHNob3QoKTogTGluZUl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMubGluZUl0ZW1zLnZhbHVlLnNsaWNlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJnZXMkKCk6IE9ic2VydmFibGU8RGljdGlvbmFyeTxQcmljZVBsYW5DaGFyZ2U+PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcmdlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhcmdlc1NuYXBzaG90KCk6IERpY3Rpb25hcnk8UHJpY2VQbGFuQ2hhcmdlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcmdlcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dFNuYXBzaG90KCk6IENvbmZpZ3VyYXRpb25Db250ZXh0IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjb250ZXh0JCgpOiBPYnNlcnZhYmxlPENvbmZpZ3VyYXRpb25Db250ZXh0IHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUkKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6IGVycm9yIH0pO1xuXG4gICAgLy8gYm91bmNlIGJhY2sgaWYgY29uZmlndXJhdGlvbiBjYWxsIGhhcyBmYWlsZWRcbiAgICB0aGlzLmxpbmVJdGVtcy5uZXh0KHRoaXMubGluZUl0ZW1zLnZhbHVlLnNsaWNlKCkpO1xuXG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import moment from 'moment';
|
|
3
|
+
import { LineItemWorker } from '../../../types/line-item.types';
|
|
4
|
+
import { findLineItem, findLineItemWithComparator } from '../../../utils/line-item.utils';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class FlowUpdateService {
|
|
7
|
+
update(rootLineItem, params) {
|
|
8
|
+
switch (params.attributeType) {
|
|
9
|
+
case 'QTY':
|
|
10
|
+
return this.updateQty(rootLineItem, params);
|
|
11
|
+
case 'START_DATE':
|
|
12
|
+
return this.updateStartDate(rootLineItem, params);
|
|
13
|
+
case 'END_DATE':
|
|
14
|
+
return this.updateEndDate(rootLineItem, params);
|
|
15
|
+
case 'PRICE_ADJUSTMENT':
|
|
16
|
+
return this.updatePriceAdjustment(rootLineItem, params);
|
|
17
|
+
default:
|
|
18
|
+
return rootLineItem;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
delete(lineItems, id) {
|
|
22
|
+
const filtered = lineItems.filter(lineItem => lineItem.id !== id);
|
|
23
|
+
return filtered.map(lineItem => new LineItemWorker(lineItem).remove(id).li);
|
|
24
|
+
}
|
|
25
|
+
updateQty(rootLineItem, params) {
|
|
26
|
+
// change quantity allowed only for lineItem
|
|
27
|
+
if (params.dataType !== 'LINEITEM') {
|
|
28
|
+
return rootLineItem;
|
|
29
|
+
}
|
|
30
|
+
const lineItem = findLineItem(params.id, [rootLineItem]);
|
|
31
|
+
if (!lineItem) {
|
|
32
|
+
return rootLineItem;
|
|
33
|
+
}
|
|
34
|
+
if (lineItem.id !== rootLineItem.id) {
|
|
35
|
+
throw new Error('Quantity can be changed only for root product');
|
|
36
|
+
}
|
|
37
|
+
const updated = new LineItemWorker(rootLineItem).replace(Object.assign(Object.assign({}, lineItem), { qty: params.newValue }));
|
|
38
|
+
return updated.li;
|
|
39
|
+
}
|
|
40
|
+
updateStartDate(rootLineItem, params) {
|
|
41
|
+
const lineItem = findLineItem(params.id, [rootLineItem]);
|
|
42
|
+
if (!lineItem) {
|
|
43
|
+
return rootLineItem;
|
|
44
|
+
}
|
|
45
|
+
const updated = new LineItemWorker(rootLineItem).replace(Object.assign(Object.assign({}, lineItem), { effectiveDate: moment(params.newValue).format('YYYY-MM-DD') }));
|
|
46
|
+
return updated.li;
|
|
47
|
+
}
|
|
48
|
+
updateEndDate(rootLineItem, params) {
|
|
49
|
+
const lineItem = findLineItem(params.id, [rootLineItem]);
|
|
50
|
+
if (!lineItem) {
|
|
51
|
+
return rootLineItem;
|
|
52
|
+
}
|
|
53
|
+
const updated = new LineItemWorker(rootLineItem).replace(Object.assign(Object.assign({}, lineItem), { endDate: moment(params.newValue).format('YYYY-MM-DD') }));
|
|
54
|
+
return updated.li;
|
|
55
|
+
}
|
|
56
|
+
updatePriceAdjustment(rootLineItem, params) {
|
|
57
|
+
const comparator = params.dataType === 'LINEITEM'
|
|
58
|
+
? (li) => li.id === params.id
|
|
59
|
+
: params.dataType === 'CHARGE'
|
|
60
|
+
? (li) => li.chargeItems.some(({ id }) => id === params.id)
|
|
61
|
+
: params.dataType === 'GROUP_CHARGE'
|
|
62
|
+
? (li) => li.chargeGroupItems.some(({ id }) => id === params.id)
|
|
63
|
+
: undefined;
|
|
64
|
+
if (!comparator) {
|
|
65
|
+
return rootLineItem;
|
|
66
|
+
}
|
|
67
|
+
const lineItem = findLineItemWithComparator([rootLineItem], comparator);
|
|
68
|
+
if (!lineItem) {
|
|
69
|
+
return rootLineItem;
|
|
70
|
+
}
|
|
71
|
+
let updated;
|
|
72
|
+
if (params.dataType === 'LINEITEM') {
|
|
73
|
+
updated = Object.assign(Object.assign({}, lineItem), { chargeItems: lineItem.chargeItems.map((chargeItem, index) => {
|
|
74
|
+
return index === 0 ? Object.assign(Object.assign({}, chargeItem), { priceAdjustment: params.newValue }) : chargeItem;
|
|
75
|
+
}) });
|
|
76
|
+
}
|
|
77
|
+
else if (params.dataType === 'CHARGE') {
|
|
78
|
+
updated = Object.assign(Object.assign({}, lineItem), { chargeItems: lineItem.chargeItems.map(chargeItem => {
|
|
79
|
+
return chargeItem.id === params.id ? Object.assign(Object.assign({}, chargeItem), { priceAdjustment: params.newValue }) : chargeItem;
|
|
80
|
+
}) });
|
|
81
|
+
}
|
|
82
|
+
else if (params.dataType === 'GROUP_CHARGE') {
|
|
83
|
+
updated = Object.assign(Object.assign({}, lineItem), { chargeGroupItems: lineItem.chargeGroupItems.map(chargeGroupItem => {
|
|
84
|
+
return chargeGroupItem.id === params.id
|
|
85
|
+
? Object.assign(Object.assign({}, chargeGroupItem), { priceAdjustment: params.newValue }) : chargeGroupItem;
|
|
86
|
+
}) });
|
|
87
|
+
}
|
|
88
|
+
const updatedRootLineItem = updated ? new LineItemWorker(rootLineItem).replace(updated).li : rootLineItem;
|
|
89
|
+
return updatedRootLineItem;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
FlowUpdateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowUpdateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
93
|
+
FlowUpdateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowUpdateService });
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowUpdateService, decorators: [{
|
|
95
|
+
type: Injectable
|
|
96
|
+
}] });
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy11cGRhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9tb2R1bGVzL2Zsb3ctY29uZmlndXJhdGlvbi9zZXJ2aWNlcy9mbG93LXVwZGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBSTFGLE1BQU0sT0FBTyxpQkFBaUI7SUFDckIsTUFBTSxDQUFDLFlBQXNCLEVBQUUsTUFBd0I7UUFDNUQsUUFBUSxNQUFNLENBQUMsYUFBYSxFQUFFO1lBQzVCLEtBQUssS0FBSztnQkFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlDLEtBQUssWUFBWTtnQkFDZixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELEtBQUssVUFBVTtnQkFDYixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2xELEtBQUssa0JBQWtCO2dCQUNyQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUQ7Z0JBQ0UsT0FBTyxZQUFZLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQXFCLEVBQUUsRUFBVTtRQUM3QyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxF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QUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRTtvQkFDaEUsT0FBTyxlQUFlLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFO3dCQUNyQyxDQUFDLGlDQUFNLGVBQWUsS0FBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFDeEQsQ0FBQyxDQUFDLGVBQWUsQ0FBQztnQkFDdEIsQ0FBQyxDQUFDLEdBQ0gsQ0FBQztTQUNIO1FBRUQsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUUxRyxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7OytHQXJIVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGluZUl0ZW0gfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgTGluZUl0ZW1Xb3JrZXIgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9saW5lLWl0ZW0udHlwZXMnO1xuaW1wb3J0IHsgZmluZExpbmVJdGVtLCBmaW5kTGluZUl0ZW1XaXRoQ29tcGFyYXRvciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2xpbmUtaXRlbS51dGlscyc7XG5pbXBvcnQgeyBGbG93VXBkYXRlUGFyYW1zIH0gZnJvbSAnLi4vdHlwZXMvdXBkYXRlLnR5cGVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb3dVcGRhdGVTZXJ2aWNlIHtcbiAgcHVibGljIHVwZGF0ZShyb290TGluZUl0ZW06IExpbmVJdGVtLCBwYXJhbXM6IEZsb3dVcGRhdGVQYXJhbXMpOiBMaW5lSXRlbSB7XG4gICAgc3dpdGNoIChwYXJhbXMuYXR0cmlidXRlVHlwZSkge1xuICAgICAgY2FzZSAnUVRZJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlUXR5KHJvb3RMaW5lSXRlbSwgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ1NUQVJUX0RBVEUnOlxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVTdGFydERhdGUocm9vdExpbmVJdGVtLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnRU5EX0RBVEUnOlxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVFbmREYXRlKHJvb3RMaW5lSXRlbSwgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ1BSSUNFX0FESlVTVE1FTlQnOlxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVQcmljZUFkanVzdG1lbnQocm9vdExpbmVJdGVtLCBwYXJhbXMpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHJvb3RMaW5lSXRlbTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKGxpbmVJdGVtczogTGluZUl0ZW1bXSwgaWQ6IHN0cmluZyk6IExpbmVJdGVtW10ge1xuICAgIGNvbnN0IGZpbHRlcmVkID0gbGluZUl0ZW1zLmZpbHRlcihsaW5lSXRlbSA9PiBsaW5lSXRlbS5pZCAhPT0gaWQpO1xuICAgIHJldHVybiBmaWx0ZXJlZC5tYXAobGluZUl0ZW0gPT4gbmV3IExpbmVJdGVtV29ya2VyKGxpbmVJdGVtKS5yZW1vdmUoaWQpLmxpKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUXR5KHJvb3RMaW5lSXRlbTogTGluZUl0ZW0sIHBhcmFtczogRmxvd1VwZGF0ZVBhcmFtcyk6IExpbmVJdGVtIHtcbiAgICAvLyBjaGFuZ2UgcXVhbnRpdHkgYWxsb3dlZCBvbmx5IGZvciBsaW5lSXRlbVxuICAgIGlmIChwYXJhbXMuZGF0YVR5cGUgIT09ICdMSU5FSVRFTScpIHtcbiAgICAgIHJldHVybiByb290TGluZUl0ZW07XG4gICAgfVxuXG4gICAgY29uc3QgbGluZUl0ZW0gPSBmaW5kTGluZUl0ZW0ocGFyYW1zLmlkLCBbcm9vdExpbmVJdGVtXSk7XG5cbiAgICBpZiAoIWxpbmVJdGVtKSB7XG4gICAgICByZXR1cm4gcm9vdExpbmVJdGVtO1xuICAgIH1cblxuICAgIGlmIChsaW5lSXRlbS5pZCAhPT0gcm9vdExpbmVJdGVtLmlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1F1YW50aXR5IGNhbiBiZSBjaGFuZ2VkIG9ubHkgZm9yIHJvb3QgcHJvZHVjdCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWQgPSBuZXcgTGluZUl0ZW1Xb3JrZXIocm9vdExpbmVJdGVtKS5yZXBsYWNlKHsgLi4ubGluZUl0ZW0sIHF0eTogcGFyYW1zLm5ld1ZhbHVlIH0pO1xuICAgIHJldHVybiB1cGRhdGVkLmxpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdGFydERhdGUocm9vdExpbmVJdGVtOiBMaW5lSXRlbSwgcGFyYW1zOiBGbG93VXBkYXRlUGFyYW1zKTogTGluZUl0ZW0ge1xuICAgIGNvbnN0IGxpbmVJdGVtID0gZmluZExpbmVJdGVtKHBhcmFtcy5pZCwgW3Jvb3RMaW5lSXRlbV0pO1xuXG4gICAgaWYgKCFsaW5lSXRlbSkge1xuICAgICAgcmV0dXJuIHJvb3RMaW5lSXRlbTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkID0gbmV3IExpbmVJdGVtV29ya2VyKHJvb3RMaW5lSXRlbSkucmVwbGFjZSh7XG4gICAgICAuLi5saW5lSXRlbSxcbiAgICAgIGVmZmVjdGl2ZURhdGU6IG1vbWVudChwYXJhbXMubmV3VmFsdWUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpLFxuICAgIH0pO1xuICAgIHJldHVybiB1cGRhdGVkLmxpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVFbmREYXRlKHJvb3RMaW5lSXRlbTogTGluZUl0ZW0sIHBhcmFtczogRmxvd1VwZGF0ZVBhcmFtcyk6IExpbmVJdGVtIHtcbiAgICBjb25zdCBsaW5lSXRlbSA9IGZpbmRMaW5lSXRlbShwYXJhbXMuaWQsIFtyb290TGluZUl0ZW1dKTtcblxuICAgIGlmICghbGluZUl0ZW0pIHtcbiAgICAgIHJldHVybiByb290TGluZUl0ZW07XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlZCA9IG5ldyBMaW5lSXRlbVdvcmtlcihyb290TGluZUl0ZW0pLnJlcGxhY2Uoe1xuICAgICAgLi4ubGluZUl0ZW0sXG4gICAgICBlbmREYXRlOiBtb21lbnQocGFyYW1zLm5ld1ZhbHVlKS5mb3JtYXQoJ1lZWVktTU0tREQnKSxcbiAgICB9KTtcbiAgICByZXR1cm4gdXBkYXRlZC5saTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUHJpY2VBZGp1c3RtZW50KHJvb3RMaW5lSXRlbTogTGluZUl0ZW0sIHBhcmFtczogRmxvd1VwZGF0ZVBhcmFtcyk6IExpbmVJdGVtIHtcbiAgICBjb25zdCBjb21wYXJhdG9yID1cbiAgICAgIHBhcmFtcy5kYXRhVHlwZSA9PT0gJ0xJTkVJVEVNJ1xuICAgICAgICA/IChsaTogTGluZUl0ZW0pID0+IGxpLmlkID09PSBwYXJhbXMuaWRcbiAgICAgICAgOiBwYXJhbXMuZGF0YVR5cGUgPT09ICdDSEFSR0UnXG4gICAgICAgID8gKGxpOiBMaW5lSXRlbSkgPT4gbGkuY2hhcmdlSXRlbXMuc29tZSgoeyBpZCB9KSA9PiBpZCA9PT0gcGFyYW1zLmlkKVxuICAgICAgICA6IHBhcmFtcy5kYXRhVHlwZSA9PT0gJ0dST1VQX0NIQVJHRSdcbiAgICAgICAgPyAobGk6IExpbmVJdGVtKSA9PiBsaS5jaGFyZ2VHcm91cEl0ZW1zLnNvbWUoKHsgaWQgfSkgPT4gaWQgPT09IHBhcmFtcy5pZClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoIWNvbXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiByb290TGluZUl0ZW07XG4gICAgfVxuXG4gICAgY29uc3QgbGluZUl0ZW0gPSBmaW5kTGluZUl0ZW1XaXRoQ29tcGFyYXRvcihbcm9vdExpbmVJdGVtXSwgY29tcGFyYXRvcik7XG4gICAgaWYgKCFsaW5lSXRlbSkge1xuICAgICAgcmV0dXJuIHJvb3RMaW5lSXRlbTtcbiAgICB9XG5cbiAgICBsZXQgdXBkYXRlZDogTGluZUl0ZW0gfCB1bmRlZmluZWQ7XG4gICAgaWYgKHBhcmFtcy5kYXRhVHlwZSA9PT0gJ0xJTkVJVEVNJykge1xuICAgICAgdXBkYXRlZCA9IHtcbiAgICAgICAgLi4ubGluZUl0ZW0sXG4gICAgICAgIGNoYXJnZUl0ZW1zOiBsaW5lSXRlbS5jaGFyZ2VJdGVtcy5tYXAoKGNoYXJnZUl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGluZGV4ID09PSAwID8geyAuLi5jaGFyZ2VJdGVtLCBwcmljZUFkanVzdG1lbnQ6IHBhcmFtcy5uZXdWYWx1ZSB9IDogY2hhcmdlSXRlbTtcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAocGFyYW1zLmRhdGFUeXBlID09PSAnQ0hBUkdFJykge1xuICAgICAgdXBkYXRlZCA9IHtcbiAgICAgICAgLi4ubGluZUl0ZW0sXG4gICAgICAgIGNoYXJnZUl0ZW1zOiBsaW5lSXRlbS5jaGFyZ2VJdGVtcy5tYXAoY2hhcmdlSXRlbSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNoYXJnZUl0ZW0uaWQgPT09IHBhcmFtcy5pZCA/IHsgLi4uY2hhcmdlSXRlbSwgcHJpY2VBZGp1c3RtZW50OiBwYXJhbXMubmV3VmFsdWUgfSA6IGNoYXJnZUl0ZW07XG4gICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKHBhcmFtcy5kYXRhVHlwZSA9PT0gJ0dST1VQX0NIQVJHRScpIHtcbiAgICAgIHVwZGF0ZWQgPSB7XG4gICAgICAgIC4uLmxpbmVJdGVtLFxuICAgICAgICBjaGFyZ2VHcm91cEl0ZW1zOiBsaW5lSXRlbS5jaGFyZ2VHcm91cEl0ZW1zLm1hcChjaGFyZ2VHcm91cEl0ZW0gPT4ge1xuICAgICAgICAgIHJldHVybiBjaGFyZ2VHcm91cEl0ZW0uaWQgPT09IHBhcmFtcy5pZFxuICAgICAgICAgICAgPyB7IC4uLmNoYXJnZUdyb3VwSXRlbSwgcHJpY2VBZGp1c3RtZW50OiBwYXJhbXMubmV3VmFsdWUgfVxuICAgICAgICAgICAgOiBjaGFyZ2VHcm91cEl0ZW07XG4gICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkUm9vdExpbmVJdGVtID0gdXBkYXRlZCA/IG5ldyBMaW5lSXRlbVdvcmtlcihyb290TGluZUl0ZW0pLnJlcGxhY2UodXBkYXRlZCkubGkgOiByb290TGluZUl0ZW07XG5cbiAgICByZXR1cm4gdXBkYXRlZFJvb3RMaW5lSXRlbTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL21vZHVsZXMvZmxvdy1jb25maWd1cmF0aW9uL3R5cGVzL3VwZGF0ZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRmxvd1VwZGF0ZURhdGFUeXBlID0gJ0xJTkVJVEVNJyB8ICdDSEFSR0UnIHwgJ0dST1VQX0NIQVJHRSc7XG5leHBvcnQgdHlwZSBGbG93VXBkYXRlQXR0cmlidXRlVHlwZSA9ICdRVFknIHwgJ1NUQVJUX0RBVEUnIHwgJ0VORF9EQVRFJyB8ICdQUklDRV9BREpVU1RNRU5UJztcblxuZXhwb3J0IGludGVyZmFjZSBGbG93VXBkYXRlUGFyYW1zIHtcbiAgaWQ6IHN0cmluZztcbiAgZGF0YVR5cGU6IEZsb3dVcGRhdGVEYXRhVHlwZTtcbiAgYXR0cmlidXRlVHlwZTogRmxvd1VwZGF0ZUF0dHJpYnV0ZVR5cGU7XG4gIG5ld1ZhbHVlOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0RlbGV0ZVBhcmFtcyB7XG4gIGlkOiBzdHJpbmc7XG4gIGRhdGFUeXBlOiBGbG93VXBkYXRlRGF0YVR5cGU7XG59XG4iXX0=
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { compact, sortBy } from 'lodash';
|
|
1
|
+
import { compact, flatten, sortBy } from 'lodash';
|
|
3
2
|
export const parseBoundPath = (path) => {
|
|
4
3
|
var _a, _b;
|
|
5
4
|
const regexp = new RegExp(`(?:\\/)(?:\\w+)(?:\\/)(?:ports|attributes)(?:\\/)(?:\\w+)|(?:\\/)(?:\\w+)`, 'g');
|
|
@@ -10,7 +9,18 @@ export const parseBoundPath = (path) => {
|
|
|
10
9
|
return blocks;
|
|
11
10
|
};
|
|
12
11
|
export const findLineItem = (id, lineItems) => {
|
|
13
|
-
return
|
|
12
|
+
return findLineItemWithComparator(lineItems, (li) => li.id === id);
|
|
13
|
+
};
|
|
14
|
+
export const findLineItemWithComparator = (lineItems, comparator) => {
|
|
15
|
+
let currentLevel = lineItems;
|
|
16
|
+
while (currentLevel.length) {
|
|
17
|
+
const found = currentLevel.find(comparator);
|
|
18
|
+
if (found) {
|
|
19
|
+
return found;
|
|
20
|
+
}
|
|
21
|
+
currentLevel = flatten(currentLevel.map(parent => parent.lineItems));
|
|
22
|
+
}
|
|
23
|
+
return;
|
|
14
24
|
};
|
|
15
25
|
export const insertLineItem = (lineItem, parentId, toInsert) => {
|
|
16
26
|
const insertData = lineItem.id === parentId ? [toInsert] : [];
|
|
@@ -94,4 +104,4 @@ export const getRecommendedPrices = (portDomain, type) => {
|
|
|
94
104
|
}, [0, 0])) !== null && _b !== void 0 ? _b : [0, 0];
|
|
95
105
|
return { net, list };
|
|
96
106
|
};
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pdGVtLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL3V0aWxzL2xpbmUtaXRlbS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLFVBQVUsRUFBd0IsTUFBTSxjQUFjLENBQUM7QUFDdEYsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHckQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFlLEVBQUU7O0lBQzFELE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLDJFQUEyRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVHLE1BQU0sTUFBTSxHQUNWLE1BQUEsTUFBQSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQywwQ0FBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDOUIsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDLENBQUMsbUNBQUksRUFBRSxDQUFDO0lBRVgsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBVSxFQUFFLFNBQXFCLEVBQXdCLEVBQUU7SUFDdEYsT0FBTyxVQUFVLENBQUMseUJBQXlCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDaEYsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsUUFBa0IsRUFBRSxRQUFnQixFQUFFLFFBQWtCLEVBQVksRUFBRTtJ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LG1DQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIENmZ1N0YXR1cywgRW50aXR5VXRpbCwgTGluZUl0ZW0sIFBvcnREb21haW4gfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgY29tcGFjdCwgRGljdGlvbmFyeSwgc29ydEJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFBhdGhCbG9jayB9IGZyb20gJy4uL3R5cGVzL2NvbmZpZ3VyYXRpb24udHlwZXMnO1xuXG5leHBvcnQgY29uc3QgcGFyc2VCb3VuZFBhdGggPSAocGF0aDogc3RyaW5nKTogUGF0aEJsb2NrW10gPT4ge1xuICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKGAoPzpcXFxcLykoPzpcXFxcdyspKD86XFxcXC8pKD86cG9ydHN8YXR0cmlidXRlcykoPzpcXFxcLykoPzpcXFxcdyspfCg/OlxcXFwvKSg/OlxcXFx3KylgLCAnZycpO1xuICBjb25zdCBibG9ja3M6IFBhdGhCbG9ja1tdID1cbiAgICBwYXRoLm1hdGNoKHJlZ2V4cCk/Lm1hcChtYXRjaCA9PiB7XG4gICAgICBjb25zdCBbdHlwZSwgcHJvcGVydHksIG5hbWVdID0gY29tcGFjdChtYXRjaC5zcGxpdCgnLycpKTtcbiAgICAgIHJldHVybiB7IHR5cGUsIHByb3BlcnR5LCBuYW1lIH07XG4gICAgfSkgPz8gW107XG5cbiAgcmV0dXJuIGJsb2Nrcztcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kTGluZUl0ZW0gPSAoaWQ6IHN0cmluZywgbGluZUl0ZW1zOiBMaW5lSXRlbVtdKTogTGluZUl0ZW0gfCB1bmRlZmluZWQgPT4ge1xuICByZXR1cm4gRW50aXR5VXRpbC5maW5kQnlGaWVsZEhpZXJhcmNoaWNhbGx5KCdpZCcsIGlkLCBsaW5lSXRlbXMsICdsaW5lSXRlbXMnKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRMaW5lSXRlbSA9IChsaW5lSXRlbTogTGluZUl0ZW0sIHBhcmVudElkOiBzdHJpbmcsIHRvSW5zZXJ0OiBMaW5lSXRlbSk6IExpbmVJdGVtID0+IHtcbiAgY29uc3QgaW5zZXJ0RGF0YSA9IGxpbmVJdGVtLmlkID09PSBwYXJlbnRJZCA/IFt0b0luc2VydF0gOiBbXTtcbiAgcmV0dXJuIHtcbiAgICAuLi5saW5lSXRlbSxcbiAgICBsaW5lSXRlbXM6IFtcbiAgICAgIC4uLmluc2VydERhdGEsXG4gICAgICAuLi5saW5lSXRlbS5saW5lSXRlbXMubWFwKGxpID0+IHtcbiAgICAgICAgcmV0dXJuIGluc2VydExpbmVJdGVtKGxpLCBwYXJlbnRJZCwgdG9JbnNlcnQpO1xuICAgICAgfSksXG4gICAgXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVMaW5lSXRlbSA9IChsaW5lSXRlbTogTGluZUl0ZW0sIGlkVG9SZW1vdmU6IHN0cmluZyk6IExpbmVJdGVtID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5saW5lSXRlbSxcbiAgICBsaW5lSXRlbXM6IGxpbmVJdGVtLmxpbmVJdGVtc1xuICAgICAgLm1hcChsaSA9PiB7XG4gICAgICAgIGlmIChsaS5pZCA9PT0gaWRUb1JlbW92ZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChsaS5saW5lSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIHJlbW92ZUxpbmVJdGVtKGxpLCBpZFRvUmVtb3ZlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGk7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihyID0+ICEhcikgYXMgTGluZUl0ZW1bXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXBsYWNlTGluZUl0ZW0gPSAobGluZUl0ZW06IExpbmVJdGVtLCByZXBsYWNlVG86IExpbmVJdGVtKTogTGluZUl0ZW0gPT4ge1xuICBpZiAobGluZUl0ZW0uaWQgPT09IHJlcGxhY2VUby5pZCkge1xuICAgIHJldHVybiB7IC4uLnJlcGxhY2VUbyB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5saW5lSXRlbSxcbiAgICBsaW5lSXRlbXM6IGxpbmVJdGVtLmxpbmVJdGVtcy5tYXAobGkgPT4ge1xuICAgICAgaWYgKGxpLmlkID09PSByZXBsYWNlVG8uaWQpIHtcbiAgICAgICAgcmV0dXJuIHJlcGxhY2VUbztcbiAgICAgIH0gZWxzZSBpZiAobGkubGluZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gcmVwbGFjZUxpbmVJdGVtKGxpLCByZXBsYWNlVG8pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxpO1xuICAgIH0pLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG1hcEF0dHJpYnV0ZXMgPSAoYXR0cmlidXRlczogQXR0cmlidXRlW10pOiBEaWN0aW9uYXJ5PGFueT4gPT4ge1xuICByZXR1cm4gYXR0cmlidXRlcy5yZWR1Y2UoKGFjYywgeyBuYW1lLCB2YWx1ZSB9KSA9PiAoeyAuLi5hY2MsIFtuYW1lXTogdmFsdWUgfSksIHt9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBdHRyaWJ1dGVzID0gKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZVtdLCBuYW1lczogc3RyaW5nW10gPSBbXSkgPT4ge1xuICBjb25zdCBmaWx0ZXJlZCA9IGF0dHJpYnV0ZXMuZmlsdGVyKCh7IG5hbWUgfSkgPT4gbmFtZXMuaW5jbHVkZXMobmFtZSkpO1xuICByZXR1cm4gc29ydEJ5KGZpbHRlcmVkLCBbKHsgbmFtZSB9KSA9PiBuYW1lcy5pbmRleE9mKG5hbWUpXSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBzZXJ0QXR0cmlidXRlcyA9IChcbiAgb3JpZ2luYWxBdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXSxcbiAgYXR0cmlidXRlc1RvVXBzZXJ0OiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10sXG4pID0+IHtcbiAgcmV0dXJuIGF0dHJpYnV0ZXNUb1Vwc2VydC5yZWR1Y2UoKGFjYywgeyBuYW1lLCB2YWx1ZSB9KSA9PiB7XG4gICAgY29uc3QgW29yaWdBdHRyXSA9IGdldEF0dHJpYnV0ZXMoYWNjLCBbbmFtZV0pO1xuICAgIHJldHVybiBbXG4gICAgICAuLi5hY2MuZmlsdGVyKGF0dHIgPT4gYXR0ci5uYW1lICE9PSBuYW1lKSxcbiAgICAgIHsgLi4uKG9yaWdBdHRyID8/IHsgbmFtZSB9KSwgY2ZnU3RhdHVzOiAnVXNlcicgYXMgQ2ZnU3RhdHVzLCB2YWx1ZSB9LFxuICAgIF07XG4gIH0sIG9yaWdpbmFsQXR0cmlidXRlcyk7XG59O1xuXG5leHBvcnQgY29uc3QgcGF0Y2hBdHRyaWJ1dGVzID0gKHJvb3RMaW5lSXRlbTogTGluZUl0ZW0sIGlkOiBzdHJpbmcsIGF0dHJzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10pID0+IHtcbiAgY29uc3QgbGluZUl0ZW0gPSBmaW5kTGluZUl0ZW0oaWQsIFtyb290TGluZUl0ZW1dKTtcblxuICBpZiAoIWxpbmVJdGVtKSB7XG4gICAgcmV0dXJuIHJvb3RMaW5lSXRlbTtcbiAgfVxuXG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSB1cHNlcnRBdHRyaWJ1dGVzKGxpbmVJdGVtLmF0dHJpYnV0ZXMsIGF0dHJzKTtcbiAgcmV0dXJuIHJlcGxhY2VMaW5lSXRlbShyb290TGluZUl0ZW0sIHsgLi4ubGluZUl0ZW0sIGF0dHJpYnV0ZXMgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXR0cmlidXRlVmFsdWUgPSAoYXR0cmlidXRlczogQXR0cmlidXRlW10sIG5hbWU6IHN0cmluZyk6IGFueSA9PlxuICBhdHRyaWJ1dGVzLmZpbmQoYXR0ciA9PiBhdHRyLm5hbWUgPT09IG5hbWUpPy52YWx1ZTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlTGluZUl0ZW0gPSAoXG4gIHBvcnQ6IHN0cmluZyxcbiAgdHlwZTogc3RyaW5nLFxuICBwYXJlbnRJZDogc3RyaW5nLFxuICBhdHRyaWJ1dGVzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10gPSBbXSxcbiAgbGluZUl0ZW1zOiBMaW5lSXRlbVtdID0gW10sXG4pOiBMaW5lSXRlbSA9PiB7XG4gIHJldHVybiB7XG4gICAgcG9ydCxcbiAgICB0eXBlLFxuICAgIGFjdGlvbkNvZGU6ICdBREQnLFxuICAgIGNmZ1N0YXR1czogJ05ldycsXG4gICAgYXR0cmlidXRlczogYXR0cmlidXRlcy5tYXAoKHsgbmFtZSwgdmFsdWUgfSkgPT4gKHsgY2ZnU3RhdHVzOiAnVXNlcicsIG5hbWUsIHZhbHVlIH0pKSxcbiAgICBsaW5lSXRlbXMsXG4gICAgcGFyZW50SWQsXG4gICAgcXR5OiAxLFxuICB9IGFzIExpbmVJdGVtO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlY29tbWVuZGVkUHJpY2VzID0gKHBvcnREb21haW46IFBvcnREb21haW4sIHR5cGU6IHN0cmluZyk6IHsgbmV0OiBudW1iZXI7IGxpc3Q6IG51bWJlciB9ID0+IHtcbiAgY29uc3QgZG9tYWluVHlwZSA9IHBvcnREb21haW4uZG9tYWluVHlwZXMuZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09IHR5cGUpO1xuXG4gIGNvbnN0IFtuZXQsIGxpc3RdID0gZG9tYWluVHlwZT8ucmVjb21tZW5kZWRQcmljZXNcbiAgICA/LmZpbHRlcigoeyBjaGFyZ2VNZXRob2QgfSkgPT4gY2hhcmdlTWV0aG9kID09PSAnT05FX1RJTUUnKVxuICAgIC5yZWR1Y2UoXG4gICAgICAoYWNjLCBycCkgPT4ge1xuICAgICAgICBjb25zdCBbbmV0UHJpY2UsIGxpc3RQcmljZV0gPSBhY2M7XG4gICAgICAgIHJldHVybiBbbmV0UHJpY2UgKyBycC5uZXRQcmljZSwgbGlzdFByaWNlICsgcnAubGlzdFByaWNlXTtcbiAgICAgIH0sXG4gICAgICBbMCwgMF0sXG4gICAgKSA/PyBbMCwgMF07XG5cbiAgcmV0dXJuIHsgbmV0LCBsaXN0IH07XG59O1xuIl19
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pdGVtLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL3V0aWxzL2xpbmUtaXRlbS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHOUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFlLEVBQUU7O0lBQzFELE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLDJFQUEyRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVHLE1BQU0sTUFBTSxHQUNWLE1BQUEsTUFBQSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQywwQ0FBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDOUIsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDLENBQUMsbUNBQUksRUFBRSxDQUFDO0lBRVgsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBVSxFQUFFLFNBQXFCLEVBQXdCLEVBQUU7SUFDdEYsT0FBTywwQkFBMEIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDL0UsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FDeEMsU0FBcUIsRUFDckIsVUFBcUMsRUFDZixFQUFFO0lBQ3hCLElBQUksWUFBWSxHQUFHLFNBQVMs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LE1BQUEsTUFBQSxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsaUJBQWlCLDBDQUM3QyxNQUFNLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQyxZQUFZLEtBQUssVUFBVSxFQUN6RCxNQUFNLENBQ0wsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDVixNQUFNLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNsQyxPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1RCxDQUFDLEVBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ1AsbUNBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFZCxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZSwgQ2ZnU3RhdHVzLCBMaW5lSXRlbSwgUG9ydERvbWFpbiB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBjb21wYWN0LCBEaWN0aW9uYXJ5LCBmbGF0dGVuLCBzb3J0QnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUGF0aEJsb2NrIH0gZnJvbSAnLi4vdHlwZXMvY29uZmlndXJhdGlvbi50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUJvdW5kUGF0aCA9IChwYXRoOiBzdHJpbmcpOiBQYXRoQmxvY2tbXSA9PiB7XG4gIGNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAoYCg/OlxcXFwvKSg/OlxcXFx3KykoPzpcXFxcLykoPzpwb3J0c3xhdHRyaWJ1dGVzKSg/OlxcXFwvKSg/OlxcXFx3Kyl8KD86XFxcXC8pKD86XFxcXHcrKWAsICdnJyk7XG4gIGNvbnN0IGJsb2NrczogUGF0aEJsb2NrW10gPVxuICAgIHBhdGgubWF0Y2gocmVnZXhwKT8ubWFwKG1hdGNoID0+IHtcbiAgICAgIGNvbnN0IFt0eXBlLCBwcm9wZXJ0eSwgbmFtZV0gPSBjb21wYWN0KG1hdGNoLnNwbGl0KCcvJykpO1xuICAgICAgcmV0dXJuIHsgdHlwZSwgcHJvcGVydHksIG5hbWUgfTtcbiAgICB9KSA/PyBbXTtcblxuICByZXR1cm4gYmxvY2tzO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRMaW5lSXRlbSA9IChpZDogc3RyaW5nLCBsaW5lSXRlbXM6IExpbmVJdGVtW10pOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCA9PiB7XG4gIHJldHVybiBmaW5kTGluZUl0ZW1XaXRoQ29tcGFyYXRvcihsaW5lSXRlbXMsIChsaTogTGluZUl0ZW0pID0+IGxpLmlkID09PSBpZCk7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZExpbmVJdGVtV2l0aENvbXBhcmF0b3IgPSAoXG4gIGxpbmVJdGVtczogTGluZUl0ZW1bXSxcbiAgY29tcGFyYXRvcjogKGxpOiBMaW5lSXRlbSkgPT4gYm9vbGVhbixcbik6IExpbmVJdGVtIHwgdW5kZWZpbmVkID0+IHtcbiAgbGV0IGN1cnJlbnRMZXZlbCA9IGxpbmVJdGVtcztcblxuICB3aGlsZSAoY3VycmVudExldmVsLmxlbmd0aCkge1xuICAgIGNvbnN0IGZvdW5kID0gY3VycmVudExldmVsLmZpbmQoY29tcGFyYXRvcik7XG5cbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9XG5cbiAgICBjdXJyZW50TGV2ZWwgPSBmbGF0dGVuKGN1cnJlbnRMZXZlbC5tYXAocGFyZW50ID0+IHBhcmVudC5saW5lSXRlbXMpKTtcbiAgfVxuXG4gIHJldHVybjtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRMaW5lSXRlbSA9IChsaW5lSXRlbTogTGluZUl0ZW0sIHBhcmVudElkOiBzdHJpbmcsIHRvSW5zZXJ0OiBMaW5lSXRlbSk6IExpbmVJdGVtID0+IHtcbiAgY29uc3QgaW5zZXJ0RGF0YSA9IGxpbmVJdGVtLmlkID09PSBwYXJlbnRJZCA/IFt0b0luc2VydF0gOiBbXTtcbiAgcmV0dXJuIHtcbiAgICAuLi5saW5lSXRlbSxcbiAgICBsaW5lSXRlbXM6IFtcbiAgICAgIC4uLmluc2VydERhdGEsXG4gICAgICAuLi5saW5lSXRlbS5saW5lSXRlbXMubWFwKGxpID0+IHtcbiAgICAgICAgcmV0dXJuIGluc2VydExpbmVJdGVtKGxpLCBwYXJlbnRJZCwgdG9JbnNlcnQpO1xuICAgICAgfSksXG4gICAgXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVMaW5lSXRlbSA9IChsaW5lSXRlbTogTGluZUl0ZW0sIGlkVG9SZW1vdmU6IHN0cmluZyk6IExpbmVJdGVtID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5saW5lSXRlbSxcbiAgICBsaW5lSXRlbXM6IGxpbmVJdGVtLmxpbmVJdGVtc1xuICAgICAgLm1hcChsaSA9PiB7XG4gICAgICAgIGlmIChsaS5pZCA9PT0gaWRUb1JlbW92ZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChsaS5saW5lSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIHJlbW92ZUxpbmVJdGVtKGxpLCBpZFRvUmVtb3ZlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGk7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihyID0+ICEhcikgYXMgTGluZUl0ZW1bXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXBsYWNlTGluZUl0ZW0gPSAobGluZUl0ZW06IExpbmVJdGVtLCByZXBsYWNlVG86IExpbmVJdGVtKTogTGluZUl0ZW0gPT4ge1xuICBpZiAobGluZUl0ZW0uaWQgPT09IHJlcGxhY2VUby5pZCkge1xuICAgIHJldHVybiB7IC4uLnJlcGxhY2VUbyB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5saW5lSXRlbSxcbiAgICBsaW5lSXRlbXM6IGxpbmVJdGVtLmxpbmVJdGVtcy5tYXAobGkgPT4ge1xuICAgICAgaWYgKGxpLmlkID09PSByZXBsYWNlVG8uaWQpIHtcbiAgICAgICAgcmV0dXJuIHJlcGxhY2VUbztcbiAgICAgIH0gZWxzZSBpZiAobGkubGluZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gcmVwbGFjZUxpbmVJdGVtKGxpLCByZXBsYWNlVG8pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxpO1xuICAgIH0pLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG1hcEF0dHJpYnV0ZXMgPSAoYXR0cmlidXRlczogQXR0cmlidXRlW10pOiBEaWN0aW9uYXJ5PGFueT4gPT4ge1xuICByZXR1cm4gYXR0cmlidXRlcy5yZWR1Y2UoKGFjYywgeyBuYW1lLCB2YWx1ZSB9KSA9PiAoeyAuLi5hY2MsIFtuYW1lXTogdmFsdWUgfSksIHt9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBdHRyaWJ1dGVzID0gKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZVtdLCBuYW1lczogc3RyaW5nW10gPSBbXSkgPT4ge1xuICBjb25zdCBmaWx0ZXJlZCA9IGF0dHJpYnV0ZXMuZmlsdGVyKCh7IG5hbWUgfSkgPT4gbmFtZXMuaW5jbHVkZXMobmFtZSkpO1xuICByZXR1cm4gc29ydEJ5KGZpbHRlcmVkLCBbKHsgbmFtZSB9KSA9PiBuYW1lcy5pbmRleE9mKG5hbWUpXSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBzZXJ0QXR0cmlidXRlcyA9IChcbiAgb3JpZ2luYWxBdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXSxcbiAgYXR0cmlidXRlc1RvVXBzZXJ0OiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10sXG4pID0+IHtcbiAgcmV0dXJuIGF0dHJpYnV0ZXNUb1Vwc2VydC5yZWR1Y2UoKGFjYywgeyBuYW1lLCB2YWx1ZSB9KSA9PiB7XG4gICAgY29uc3QgW29yaWdBdHRyXSA9IGdldEF0dHJpYnV0ZXMoYWNjLCBbbmFtZV0pO1xuICAgIHJldHVybiBbXG4gICAgICAuLi5hY2MuZmlsdGVyKGF0dHIgPT4gYXR0ci5uYW1lICE9PSBuYW1lKSxcbiAgICAgIHsgLi4uKG9yaWdBdHRyID8/IHsgbmFtZSB9KSwgY2ZnU3RhdHVzOiAnVXNlcicgYXMgQ2ZnU3RhdHVzLCB2YWx1ZSB9LFxuICAgIF07XG4gIH0sIG9yaWdpbmFsQXR0cmlidXRlcyk7XG59O1xuXG5leHBvcnQgY29uc3QgcGF0Y2hBdHRyaWJ1dGVzID0gKHJvb3RMaW5lSXRlbTogTGluZUl0ZW0sIGlkOiBzdHJpbmcsIGF0dHJzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10pID0+IHtcbiAgY29uc3QgbGluZUl0ZW0gPSBmaW5kTGluZUl0ZW0oaWQsIFtyb290TGluZUl0ZW1dKTtcblxuICBpZiAoIWxpbmVJdGVtKSB7XG4gICAgcmV0dXJuIHJvb3RMaW5lSXRlbTtcbiAgfVxuXG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSB1cHNlcnRBdHRyaWJ1dGVzKGxpbmVJdGVtLmF0dHJpYnV0ZXMsIGF0dHJzKTtcbiAgcmV0dXJuIHJlcGxhY2VMaW5lSXRlbShyb290TGluZUl0ZW0sIHsgLi4ubGluZUl0ZW0sIGF0dHJpYnV0ZXMgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXR0cmlidXRlVmFsdWUgPSAoYXR0cmlidXRlczogQXR0cmlidXRlW10sIG5hbWU6IHN0cmluZyk6IGFueSA9PlxuICBhdHRyaWJ1dGVzLmZpbmQoYXR0ciA9PiBhdHRyLm5hbWUgPT09IG5hbWUpPy52YWx1ZTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlTGluZUl0ZW0gPSAoXG4gIHBvcnQ6IHN0cmluZyxcbiAgdHlwZTogc3RyaW5nLFxuICBwYXJlbnRJZDogc3RyaW5nLFxuICBhdHRyaWJ1dGVzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10gPSBbXSxcbiAgbGluZUl0ZW1zOiBMaW5lSXRlbVtdID0gW10sXG4pOiBMaW5lSXRlbSA9PiB7XG4gIHJldHVybiB7XG4gICAgcG9ydCxcbiAgICB0eXBlLFxuICAgIGFjdGlvbkNvZGU6ICdBREQnLFxuICAgIGNmZ1N0YXR1czogJ05ldycsXG4gICAgYXR0cmlidXRlczogYXR0cmlidXRlcy5tYXAoKHsgbmFtZSwgdmFsdWUgfSkgPT4gKHsgY2ZnU3RhdHVzOiAnVXNlcicsIG5hbWUsIHZhbHVlIH0pKSxcbiAgICBsaW5lSXRlbXMsXG4gICAgcGFyZW50SWQsXG4gICAgcXR5OiAxLFxuICB9IGFzIExpbmVJdGVtO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlY29tbWVuZGVkUHJpY2VzID0gKHBvcnREb21haW46IFBvcnREb21haW4sIHR5cGU6IHN0cmluZyk6IHsgbmV0OiBudW1iZXI7IGxpc3Q6IG51bWJlciB9ID0+IHtcbiAgY29uc3QgZG9tYWluVHlwZSA9IHBvcnREb21haW4uZG9tYWluVHlwZXMuZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09IHR5cGUpO1xuXG4gIGNvbnN0IFtuZXQsIGxpc3RdID0gZG9tYWluVHlwZT8ucmVjb21tZW5kZWRQcmljZXNcbiAgICA/LmZpbHRlcigoeyBjaGFyZ2VNZXRob2QgfSkgPT4gY2hhcmdlTWV0aG9kID09PSAnT05FX1RJTUUnKVxuICAgIC5yZWR1Y2UoXG4gICAgICAoYWNjLCBycCkgPT4ge1xuICAgICAgICBjb25zdCBbbmV0UHJpY2UsIGxpc3RQcmljZV0gPSBhY2M7XG4gICAgICAgIHJldHVybiBbbmV0UHJpY2UgKyBycC5uZXRQcmljZSwgbGlzdFByaWNlICsgcnAubGlzdFByaWNlXTtcbiAgICAgIH0sXG4gICAgICBbMCwgMF0sXG4gICAgKSA/PyBbMCwgMF07XG5cbiAgcmV0dXJuIHsgbmV0LCBsaXN0IH07XG59O1xuIl19
|
|
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
47
47
|
exportAs: 'rampApi',
|
|
48
48
|
}]
|
|
49
49
|
}], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i2.RampApiService }, { type: i2.PriceApiService }]; } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmwtcmFtcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9kaXJlY3RpdmVzL3ZsLXJhbXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBUXJDLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQ1UsY0FBOEIsRUFDOUIsY0FBOEIsRUFDOUIsZUFBZ0M7UUFGaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFDdkMsQ0FBQztJQUVKLFVBQVUsQ0FBQyxXQUFxQixFQUFFLFlBQXdCLEVBQUUsSUFBWTtRQUN0RSxPQUFPLElBQUksQ0FBQyxjQUFjO2FBQ3ZCLElBQUksQ0FBQztZQUNKLE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRTtZQUN0QyxXQUFXO1lBQ1gsWUFBWSxFQUFFLFlBQVksSUFBSSxFQUFFO1lBQ2hDLElBQUk7U0FDTCxDQUFDO2FBQ0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNULElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7b0JBQ3pCLFVBQVUsb0JBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQzNCO2lCQUNGLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsMEJBQTBCLENBQUMsUUFBa0IsRUFBRSxPQUFlO1FBQzVELE9BQU8sSUFBSSxDQUFDLGVBQWU7YUFDeEIsdUJBQXVCLENBQ3RCLFFBQVEsQ0FBQyxNQUFNLEVBQ2YsUUFBUSxDQUFDLFVBQVUsRUFDbkIsUUFBUSxDQUFDLFNBQVMsRUFDbEIsT0FBTyxFQUNQLFFBQVEsQ0FBQyxvQkFBb0IsRUFDN0IsUUFBUSxDQUFDLHdCQUF3QixDQUNsQzthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxRQUFrQixFQUFFLElBQVk7UUFDdEQsT0FBTyxJQUFJLENBQUMsZUFBZTthQUN4QixvQkFBb0IsQ0FDbkIsUUFBUSxDQUFDLE1BQU0sRUFDZixRQUFRLENBQUMsVUFBVSxFQUNuQixRQUFRLENBQUMsU0FBUyxFQUNsQixJQUFJLEVBQ0osUUFBUSxDQUFDLG9CQUFvQixFQUM3QixRQUFRLENBQUMsd0JBQXdCLENBQ2xDO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7NkdBckRVLGVBQWU7aUdBQWYsZUFBZTs0RkFBZixlQUFlO2tCQUwzQixTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFFBQVEsRUFBRSxTQUFTO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJpY2VBcGlTZXJ2aWNlLCBSYW1wQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2UvYXBpJztcbmltcG9ydCB7IExpbmVJdGVtIH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAndmwtcmFtcCcsXG4gIGV4cG9ydEFzOiAncmFtcEFwaScsXG59KVxuZXhwb3J0IGNsYXNzIFZsUmFtcERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmFtcEFwaVNlcnZpY2U6IFJhbXBBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJpY2VBcGlTZXJ2aWNlOiBQcmljZUFwaVNlcnZpY2UsXG4gICkge31cblxuICBjcmVhdGVSYW1wKHNvdXJjZUl0ZW1zOiBzdHJpbmdbXSwgY3VycmVudFJhbXBzOiBMaW5lSXRlbVtdLCB0ZXJtOiBudW1iZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnJhbXBBcGlTZXJ2aWNlXG4gICAgICAubmV4dCh7XG4gICAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpLFxuICAgICAgICBzb3VyY2VJdGVtcyxcbiAgICAgICAgY3VycmVudEl0ZW1zOiBjdXJyZW50UmFtcHMgfHwgW10sXG4gICAgICAgIHRlcm0sXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChkYXRhID0+IHtcbiAgICAgICAgICBpZiAoZGF0YS5jb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnVwZGF0ZSh7XG4gICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAuLi5kYXRhLmNvbnRleHQucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBjYWxjdWxhdGVSYW1wVGVybUJ5RW5kRGF0ZShsaW5lSXRlbTogTGluZUl0ZW0sIGVuZERhdGU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucHJpY2VBcGlTZXJ2aWNlXG4gICAgICAuZ2V0U2VsbGluZ1Rlcm1CeUVuZERhdGUoXG4gICAgICAgIGxpbmVJdGVtLnBsYW5JZCxcbiAgICAgICAgbGluZUl0ZW0ub2ZmZXJpbmdJZCxcbiAgICAgICAgbGluZUl0ZW0uc3RhcnREYXRlLFxuICAgICAgICBlbmREYXRlLFxuICAgICAgICBsaW5lSXRlbS5zZWxsaW5nRnJlcXVlbmN5VW5pdCxcbiAgICAgICAgbGluZUl0ZW0uc2VsbGluZ0ZyZXF1ZW5jeUR1cmF0aW9uLFxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgY2FsY3VsYXRlUmFtcFRlcm1CeVRlcm0obGluZUl0ZW06IExpbmVJdGVtLCB0ZXJtOiBudW1iZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnByaWNlQXBpU2VydmljZVxuICAgICAgLmdldFNlbGxpbmdUZXJtQnlUZXJtKFxuICAgICAgICBsaW5lSXRlbS5wbGFuSWQsXG4gICAgICAgIGxpbmVJdGVtLm9mZmVyaW5nSWQsXG4gICAgICAgIGxpbmVJdGVtLnN0YXJ0RGF0ZSxcbiAgICAgICAgdGVybSxcbiAgICAgICAgbGluZUl0ZW0uc2VsbGluZ0ZyZXF1ZW5jeVVuaXQsXG4gICAgICAgIGxpbmVJdGVtLnNlbGxpbmdGcmVxdWVuY3lEdXJhdGlvbixcbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxufVxuIl19
|
|
@@ -11,6 +11,9 @@ export class QuoteService {
|
|
|
11
11
|
this.priceApiService = priceApiService;
|
|
12
12
|
this.quote = new BehaviorSubject(null);
|
|
13
13
|
}
|
|
14
|
+
reset() {
|
|
15
|
+
this.quote.next(null);
|
|
16
|
+
}
|
|
14
17
|
init(quoteId, params) {
|
|
15
18
|
return zip(this.quoteApiService.getQuoteDraft(quoteId, params), this.priceApiService.getPriceLists(), this.contextService.resolve$().pipe(filter(Boolean), map(context => context))).pipe(tap(([quote, priceLists, configurationContext]) => {
|
|
16
19
|
this.quote.next(quote);
|
|
@@ -46,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
46
49
|
type: Injectable,
|
|
47
50
|
args: [{ providedIn: 'root' }]
|
|
48
51
|
}], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i2.QuoteApiService }, { type: i2.PriceApiService }]; } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvc2VydmljZXMvcXVvdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUl4RCxNQUFNLE9BQU8sWUFBWTtJQUt2QixZQUNVLGNBQThCLEVBQzlCLGVBQWdDLEVBQ2hDLGVBQWdDO1FBRmhDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBUGxDLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBb0IsSUFBSSxDQUFDLENBQUM7SUFRMUQsQ0FBQztJQUVHLEtBQUs7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU0sSUFBSSxDQUFDLE9BQWUsRUFBRSxNQUEwQjtRQUNyRCxPQUFPLEdBQUcsQ0FDUixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLEVBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUNqQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ2YsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBK0IsQ0FBQyxDQUNoRCxDQUNGLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7WUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUV0RixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sK0NBQ3JCLG9CQUFvQixHQUNwQixLQUFLLENBQUMsT0FBTyxLQUNoQixVQUFVLGtDQUNMLG9CQUFvQixDQUFDLFVBQVUsR0FDL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEtBRTdCLENBQUM7UUFDTCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQ3BCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVELHVCQUF1QixDQUFDLFNBQXFCO1FBQzNDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBRS9CLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksaUNBQ1YsS0FBSyxLQUNSLFlBQVksRUFBRSxTQUFTLElBQ3ZCLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLFlBQTBCO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBRS9CLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksaUNBQ1YsS0FBSyxLQUNSLFlBQVksRUFBRSxZQUFZLENBQUMsU0FBUyxFQUNwQyxXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFDckMsYUFBYSxFQUFFLFlBQVksQ0FBQyxhQUFhLElBQ3pDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDcEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNmLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQW1CLENBQUMsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDOzswR0FoRlUsWUFBWTs4R0FBWixZQUFZLGNBREMsTUFBTTs0RkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmljZUFwaVNlcnZpY2UsIFF1b3RlQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2UvYXBpJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25Db250ZXh0LCBMaW5lSXRlbSwgUHJpY2VMaXN0LCBQcmljZVN1bW1hcnksIFF1b3RlRHJhZnQgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFF1b3RlU2VydmljZSB7XG4gIHByaXZhdGUgcXVvdGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFF1b3RlRHJhZnQgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHByaWNlTGlzdHM/OiBQcmljZUxpc3RbXTtcbiAgcHVibGljIHF1b3RlUHJpY2VMaXN0PzogUHJpY2VMaXN0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcXVvdGVBcGlTZXJ2aWNlOiBRdW90ZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmljZUFwaVNlcnZpY2U6IFByaWNlQXBpU2VydmljZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLnF1b3RlLm5leHQobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdChxdW90ZUlkOiBzdHJpbmcsIHBhcmFtczogRGljdGlvbmFyeTxzdHJpbmc+KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHppcChcbiAgICAgIHRoaXMucXVvdGVBcGlTZXJ2aWNlLmdldFF1b3RlRHJhZnQocXVvdGVJZCwgcGFyYW1zKSxcbiAgICAgIHRoaXMucHJpY2VBcGlTZXJ2aWNlLmdldFByaWNlTGlzdHMoKSxcbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSQoKS5waXBlKFxuICAgICAgICBmaWx0ZXIoQm9vbGVhbiksXG4gICAgICAgIG1hcChjb250ZXh0ID0+IGNvbnRleHQgYXMgQ29uZmlndXJhdGlvbkNvbnRleHQpLFxuICAgICAgKSxcbiAgICApLnBpcGUoXG4gICAgICB0YXAoKFtxdW90ZSwgcHJpY2VMaXN0cywgY29uZmlndXJhdGlvbkNvbnRleHRdKSA9PiB7XG4gICAgICAgIHRoaXMucXVvdGUubmV4dChxdW90ZSk7XG4gICAgICAgIHRoaXMucHJpY2VMaXN0cyA9IHByaWNlTGlzdHM7XG4gICAgICAgIHRoaXMucXVvdGVQcmljZUxpc3QgPSBwcmljZUxpc3RzLmZpbmQocCA9PiBwLmlkID09PSBjb25maWd1cmF0aW9uQ29udGV4dC5wcmljZUxpc3RJZCk7XG5cbiAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS51cGRhdGUoe1xuICAgICAgICAgIC4uLmNvbmZpZ3VyYXRpb25Db250ZXh0LFxuICAgICAgICAgIC4uLnF1b3RlLmNvbnRleHQsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgLi4uY29uZmlndXJhdGlvbkNvbnRleHQucHJvcGVydGllcyxcbiAgICAgICAgICAgIC4uLnF1b3RlLmNvbnRleHQucHJvcGVydGllcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgbWFwKCgpID0+IHVuZGVmaW5lZCksXG4gICAgICB0YWtlKDEpLFxuICAgICk7XG4gIH1cblxuICBzZXRDdXJyZW50TGluZUl0ZW1TdGF0ZShsaW5lSXRlbXM6IExpbmVJdGVtW10pOiB2b2lkIHtcbiAgICBjb25zdCBxdW90ZSA9IHRoaXMucXVvdGUudmFsdWU7XG5cbiAgICBpZiAoIXF1b3RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5xdW90ZS5uZXh0KHtcbiAgICAgIC4uLnF1b3RlLFxuICAgICAgY3VycmVudFN0YXRlOiBsaW5lSXRlbXMsXG4gICAgfSk7XG4gIH1cblxuICBhZGRSYW1wKHByaWNlU3VtbWFyeTogUHJpY2VTdW1tYXJ5KTogdm9pZCB7XG4gICAgY29uc3QgcXVvdGUgPSB0aGlzLnF1b3RlLnZhbHVlO1xuXG4gICAgaWYgKCFxdW90ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucXVvdGUubmV4dCh7XG4gICAgICAuLi5xdW90ZSxcbiAgICAgIGN1cnJlbnRTdGF0ZTogcHJpY2VTdW1tYXJ5LmxpbmVJdGVtcyxcbiAgICAgIHRvdGFsUHJpY2VzOiBwcmljZVN1bW1hcnkudG90YWxQcmljZXMsXG4gICAgICBhcHByb3ZhbEl0ZW1zOiBwcmljZVN1bW1hcnkuYXBwcm92YWxJdGVtcyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBxdW90ZSQoKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0PiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGUucGlwZShcbiAgICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICAgIG1hcChxdW90ZSA9PiBxdW90ZSBhcyBRdW90ZURyYWZ0KSxcbiAgICApO1xuICB9XG5cbiAgZ2V0UXVvdGUoKTogUXVvdGVEcmFmdCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnF1b3RlLnZhbHVlO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
|
|
2
|
+
import { OverlayPanel } from 'primeng/overlaypanel';
|
|
3
|
+
import { BehaviorSubject, catchError, distinctUntilChanged, map, noop, of, Subject, takeUntil, tap, } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@veloce/core";
|
|
6
|
+
import * as i2 from "@veloce/sdk/cms";
|
|
7
|
+
import * as i3 from "primeng/overlaypanel";
|
|
8
|
+
import * as i4 from "primeng/button";
|
|
9
|
+
import * as i5 from "primeng/api";
|
|
10
|
+
import * as i6 from "@veloce/components";
|
|
11
|
+
import * as i7 from "@angular/common";
|
|
12
|
+
export class HeaderCartOverlayComponent {
|
|
13
|
+
constructor(baseHttpService, flowConfiguration) {
|
|
14
|
+
this.baseHttpService = baseHttpService;
|
|
15
|
+
this.flowConfiguration = flowConfiguration;
|
|
16
|
+
this.imagesMap$ = new BehaviorSubject({});
|
|
17
|
+
this.destroyed$ = new Subject();
|
|
18
|
+
this.products$ = this.flowConfiguration.get();
|
|
19
|
+
}
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
this.destroyed$.next();
|
|
22
|
+
this.destroyed$.complete();
|
|
23
|
+
}
|
|
24
|
+
getImageUrl(productId) {
|
|
25
|
+
if (this.imagesMap$.value[productId] == null) {
|
|
26
|
+
this.imagesMap$.next(Object.assign(Object.assign({}, this.imagesMap$.value), { [productId]: '' }));
|
|
27
|
+
this.fetchProductImage(productId);
|
|
28
|
+
}
|
|
29
|
+
return this.imagesMap$.pipe(map(imagesMap => imagesMap[productId]), distinctUntilChanged());
|
|
30
|
+
}
|
|
31
|
+
isConfigurable(lineItem) {
|
|
32
|
+
return lineItem.properties['#configurable'] === 'true';
|
|
33
|
+
}
|
|
34
|
+
fetchProductImage(productId) {
|
|
35
|
+
this.baseHttpService
|
|
36
|
+
.api({
|
|
37
|
+
url: `/products/${productId}/image`,
|
|
38
|
+
method: 'get',
|
|
39
|
+
responseType: 'blob',
|
|
40
|
+
errorHandler: noop,
|
|
41
|
+
})
|
|
42
|
+
.pipe(map(file => URL.createObjectURL(file)), catchError(() => of('')), tap(url => this.imagesMap$.next(Object.assign(Object.assign({}, this.imagesMap$.value), { [productId]: url }))), takeUntil(this.destroyed$))
|
|
43
|
+
.subscribe();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
HeaderCartOverlayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: HeaderCartOverlayComponent, deps: [{ token: i1.BaseHttpService }, { token: i2.FlowConfigurationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
+
HeaderCartOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: HeaderCartOverlayComponent, selector: "vl-header-cart-overlay", viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: OverlayPanel, descendants: true }], ngImport: i0, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"products$ | async as products\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n <span class=\"text-right\">MRR</span>\n <span class=\"text-right\">NRR</span>\n </div>\n\n <div class=\"scrollable-wrapper\">\n <div class=\"product\" *ngFor=\"let product of products\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break\">{{ product.name }}</div>\n <div>\n <p-button\n [disabled]=\"!isConfigurable(product)\"\n label=\"Configure\"\n styleClass=\"p-button-link p-button-sm pl-0\"\n ></p-button>\n <p-button label=\"Delete\" styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"></p-button>\n </div>\n </div>\n </div>\n\n <span class=\"text-right pt-3\">{{ product.qty }}</span>\n <span class=\"text-right pt-3\">$0.00</span>\n <span class=\"text-right pt-3\">$0.00</span>\n </div>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n </div>\n\n <div class=\"flex justify-content-end mt-3\">\n <p-button label=\"Clear cart\" styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"></p-button>\n </div>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n", styles: [".flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 16px}.empty-state{color:var(--vl-text-color-deep-accent)}.scrollable-wrapper{overflow:auto}.product{display:grid;grid-template-columns:auto 60px 80px 80px;padding:16px 0}.product:not(.header){border-bottom:1px solid var(--vl-border-color)}.product.header{color:var(--vl-text-color-deep-accent)}.product__info{display:flex;grid-gap:16px;gap:16px}.product__image-wrapper{flex-shrink:0;height:64px;width:64px;display:flex;justify-content:center;align-items:center;background:var(--vl-primary-nav-overlay-bg);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}\n"], components: [{ type: i3.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i6.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: HeaderCartOverlayComponent, decorators: [{
|
|
49
|
+
type: Component,
|
|
50
|
+
args: [{
|
|
51
|
+
selector: 'vl-header-cart-overlay',
|
|
52
|
+
templateUrl: './cart-overlay.component.html',
|
|
53
|
+
styleUrls: ['./cart-overlay.component.scss'],
|
|
54
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
55
|
+
}]
|
|
56
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }, { type: i2.FlowConfigurationService }]; }, propDecorators: { overlayPanel: [{
|
|
57
|
+
type: ViewChild,
|
|
58
|
+
args: [OverlayPanel]
|
|
59
|
+
}] } });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1vdmVybGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXpGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsR0FBRyxFQUNILElBQUksRUFFSixFQUFFLEVBQ0YsT0FBTyxFQUNQLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQVFkLE1BQU0sT0FBTywwQkFBMEI7SUFRckMsWUFBb0IsZUFBZ0MsRUFBVSxpQkFBMkM7UUFBckYsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQUhqRyxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBR3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sV0FBVyxDQUFDLFNBQWlCO1FBQ2xDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzVDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxpQ0FBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBRyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNuQztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUN0QyxvQkFBb0IsRUFBRSxDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWMsQ0FBQyxRQUFrQjtRQUN0QyxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEtBQUssTUFBTSxDQUFDO0lBQ3pELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxTQUFpQjtRQUN6QyxJQUFJLENBQUMsZUFBZTthQUNqQixHQUFHLENBQU87WUFDVCxHQUFHLEVBQUUsYUFBYSxTQUFTLFFBQVE7WUFDbkMsTUFBTSxFQUFFLEtBQUs7WUFDYixZQUFZLEVBQUUsTUFBTTtZQUNwQixZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDO2FBQ0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDdEMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUN4QixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksaUNBQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLElBQUcsQ0FBQyxFQUNoRixTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7O3dIQWhEVSwwQkFBMEI7NEdBQTFCLDBCQUEwQiw0R0FDMUIsWUFBWSxnREN6QnpCLGd5RkFxRUE7NEZEN0NhLDBCQUEwQjtrQkFOdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxXQUFXLEVBQUUsK0JBQStCO29CQUM1QyxTQUFTLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzZJQUUwQixZQUFZO3NCQUFwQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlLCBMaW5lSXRlbSB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICdAdmVsb2NlL3Nkay9jbXMnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNhdGNoRXJyb3IsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXAsXG4gIG5vb3AsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJqZWN0LFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLWhlYWRlci1jYXJ0LW92ZXJsYXknLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FydC1vdmVybGF5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FydC1vdmVybGF5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDYXJ0T3ZlcmxheUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBvdmVybGF5UGFuZWwhOiBPdmVybGF5UGFuZWw7XG5cbiAgcHVibGljIHByb2R1Y3RzJDogT2JzZXJ2YWJsZTxMaW5lSXRlbVtdPjtcblxuICBwcml2YXRlIGltYWdlc01hcCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERpY3Rpb25hcnk8c3RyaW5nPj4oe30pO1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFzZUh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UsIHByaXZhdGUgZmxvd0NvbmZpZ3VyYXRpb246IEZsb3dDb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgIHRoaXMucHJvZHVjdHMkID0gdGhpcy5mbG93Q29uZmlndXJhdGlvbi5nZXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldEltYWdlVXJsKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAodGhpcy5pbWFnZXNNYXAkLnZhbHVlW3Byb2R1Y3RJZF0gPT0gbnVsbCkge1xuICAgICAgdGhpcy5pbWFnZXNNYXAkLm5leHQoeyAuLi50aGlzLmltYWdlc01hcCQudmFsdWUsIFtwcm9kdWN0SWRdOiAnJyB9KTtcbiAgICAgIHRoaXMuZmV0Y2hQcm9kdWN0SW1hZ2UocHJvZHVjdElkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pbWFnZXNNYXAkLnBpcGUoXG4gICAgICBtYXAoaW1hZ2VzTWFwID0+IGltYWdlc01hcFtwcm9kdWN0SWRdKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NvbmZpZ3VyYWJsZShsaW5lSXRlbTogTGluZUl0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gbGluZUl0ZW0ucHJvcGVydGllc1snI2NvbmZpZ3VyYWJsZSddID09PSAndHJ1ZSc7XG4gIH1cblxuICBwcml2YXRlIGZldGNoUHJvZHVjdEltYWdlKHByb2R1Y3RJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5iYXNlSHR0cFNlcnZpY2VcbiAgICAgIC5hcGk8QmxvYj4oe1xuICAgICAgICB1cmw6IGAvcHJvZHVjdHMvJHtwcm9kdWN0SWR9L2ltYWdlYCxcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgICAgIGVycm9ySGFuZGxlcjogbm9vcCxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGZpbGUgPT4gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoJycpKSxcbiAgICAgICAgdGFwKHVybCA9PiB0aGlzLmltYWdlc01hcCQubmV4dCh7IC4uLnRoaXMuaW1hZ2VzTWFwJC52YWx1ZSwgW3Byb2R1Y3RJZF06IHVybCB9KSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8cC1vdmVybGF5UGFuZWxcbiAgc3R5bGVDbGFzcz1cIm5hdmlnYXRpb24tc2V0dGluZ3Mtb3ZlcmxheSBmbG93LWhlYWRlci1vdmVybGF5IGNlbnRlclwiXG4gIHNob3dUcmFuc2l0aW9uT3B0aW9ucz1cIjBtc1wiXG4gIGhpZGVUcmFuc2l0aW9uT3B0aW9ucz1cIjBtc1wiXG4+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImZsb3ctaGVhZGVyLW92ZXJsYXlfX3dyYXBwZXJcIiAqdmxMZXQ9XCJwcm9kdWN0cyQgfCBhc3luYyBhcyBwcm9kdWN0c1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2R1Y3RzLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZmxvdy1oZWFkZXItb3ZlcmxheV9fdGl0bGVcIj5cbiAgICAgICAgICA8c3Bhbj5Qcm9kdWN0cyAoe3sgcHJvZHVjdHMubGVuZ3RoIH19KTwvc3Bhbj5cbiAgICAgICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jbG9zZSBjbG9zZS1pY29uXCIgKGNsaWNrKT1cIm92ZXJsYXlQYW5lbC5oaWRlKClcIj48L2k+XG4gICAgICAgIDwvaDI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QgaGVhZGVyXCI+XG4gICAgICAgICAgPHNwYW4+UHJvZHVjdDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIj5RdHk8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+TVJSPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yaWdodFwiPk5SUjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGFibGUtd3JhcHBlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0XCIgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdHNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbmZvXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbWFnZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRJbWFnZVVybChwcm9kdWN0LnByb2R1Y3RJZCkgfCBhc3luYyBhcyBpbWFnZVVybDsgZWxzZSBub0ltYWdlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZHVjdF9faW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGltYWdlVXJsICsgJyknIH1cIlxuICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid29yZC1icmVha1wiPnt7IHByb2R1Y3QubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0NvbmZpZ3VyYWJsZShwcm9kdWN0KVwiXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiQ29uZmlndXJlXCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLWxpbmsgcC1idXR0b24tc20gcGwtMFwiXG4gICAgICAgICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvbiBsYWJlbD1cIkRlbGV0ZVwiIHN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1saW5rIHAtYnV0dG9uLXNtIHAtYnV0dG9uLWRhbmdlciBwbC0wIHByLTBcIj48L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHQgcHQtM1wiPnt7IHByb2R1Y3QucXR5IH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0IHB0LTNcIj4kMC4wMDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yaWdodCBwdC0zXCI+JDAuMDA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vSW1hZ2U+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1uby1pbWFnZSBuby1pbWFnZS1pY29uXCI+PC9pPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtM1wiPlxuICAgICAgICAgIDxwLWJ1dHRvbiBsYWJlbD1cIkNsZWFyIGNhcnRcIiBzdHlsZUNsYXNzPVwicC1idXR0b24tbGluayBwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1kYW5nZXIgcGwtMCBwci0wXCI+PC9wLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgICAgICAgPGgyIGNsYXNzPVwiZmxvdy1oZWFkZXItb3ZlcmxheV9fdGl0bGVcIj5cbiAgICAgICAgICA8c3Bhbj5FbXB0eSBDYXJ0PC9zcGFuPlxuICAgICAgICAgIDxpIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNsb3NlIGNsb3NlLWljb25cIiAoY2xpY2spPVwib3ZlcmxheVBhbmVsLmhpZGUoKVwiPjwvaT5cbiAgICAgICAgPC9oMj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+VGhlcmUgYXJlIG5vIHByb2R1Y3RzIGFkZGVkIHRvIHRoZSBTaG9wcGluZyBDYXJ0IHlldC48L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD5cbiJdfQ==
|