@veloceapps/sdk 11.0.0-2 → 11.0.0-20
Sign up to get free protection for your applications and to get access to all the features.
- package/cms/cms.actions.d.ts +92 -29
- 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 +19 -40
- 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 -22
- package/core/modules/configuration/services/configuration-state.service.d.ts +8 -8
- package/core/modules/configuration/services/configuration.service.d.ts +23 -47
- package/core/modules/flow-configuration/index.d.ts +0 -3
- package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +10 -39
- package/core/services/catalog-products.service.d.ts +11 -0
- package/core/services/flow-info.service.d.ts +25 -11
- package/core/services/flow-state-configuration.service.d.ts +2 -8
- package/core/services/flow-state.service.d.ts +13 -22
- package/core/services/index.d.ts +2 -3
- package/core/services/integration.state.d.ts +1 -1
- package/core/services/sales-transaction.service.d.ts +30 -0
- package/core/types/flow-state.types.d.ts +2 -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 +93 -71
- 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 +12 -17
- package/esm2020/core/core.module.mjs +9 -7
- 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 -102
- package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +60 -76
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +96 -225
- 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 +33 -126
- package/esm2020/core/services/catalog-products.service.mjs +25 -0
- package/esm2020/core/services/flow-info.service.mjs +77 -29
- package/esm2020/core/services/flow-state-configuration.service.mjs +10 -25
- package/esm2020/core/services/flow-state.service.mjs +62 -169
- package/esm2020/core/services/index.mjs +3 -4
- package/esm2020/core/services/integration.state.mjs +2 -2
- package/esm2020/core/services/sales-transaction.service.mjs +68 -0
- package/esm2020/core/types/flow-state.types.mjs +1 -1
- 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/components/flow-header/flow-header.component.mjs +3 -6
- package/esm2020/src/components/guided-selling/guided-selling.component.mjs +3 -6
- package/esm2020/src/flow-routing.module.mjs +11 -41
- package/esm2020/src/flow.component.mjs +5 -5
- package/esm2020/src/guards/flow.guard.mjs +13 -14
- package/esm2020/src/guards/product-unload.guard.mjs +7 -9
- package/esm2020/src/index.mjs +1 -3
- package/esm2020/src/pages/assets/assets.component.mjs +3 -3
- package/esm2020/src/pages/catalog/catalog.component.mjs +3 -3
- package/esm2020/src/pages/debug/debug.component.mjs +12 -21
- package/esm2020/src/pages/product/product.component.mjs +12 -82
- package/esm2020/src/pages/product/product.module.mjs +5 -5
- package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +5 -6
- package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +3 -3
- package/esm2020/src/resolvers/flow.resolver.mjs +10 -18
- package/esm2020/src/resolvers/sales-transaction.resolver.mjs +83 -0
- package/esm2020/src/resolvers/ui-definition.resolver.mjs +42 -0
- package/esm2020/src/services/flow-dialog.service.mjs +8 -8
- package/esm2020/src/services/flow-router.service.mjs +16 -33
- package/esm2020/src/services/flow.service.mjs +13 -54
- package/esm2020/src/types/index.mjs +2 -3
- package/esm2020/src/types/route.types.mjs +1 -1
- package/fesm2015/veloceapps-sdk-cms.mjs +126 -268
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +712 -1644
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +167 -758
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +114 -262
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +758 -1725
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +167 -752
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/flow-header/flow-header.component.d.ts +1 -1
- package/src/components/guided-selling/guided-selling.component.d.ts +1 -1
- package/src/flow-routing.module.d.ts +1 -2
- package/src/flow.component.d.ts +2 -2
- package/src/guards/product-unload.guard.d.ts +5 -6
- package/src/index.d.ts +0 -2
- package/src/pages/assets/assets.component.d.ts +1 -1
- package/src/pages/catalog/catalog.component.d.ts +1 -1
- package/src/pages/debug/debug.component.d.ts +1 -4
- package/src/pages/product/product.component.d.ts +5 -14
- package/src/pages/product/product.module.d.ts +1 -1
- package/src/pages/record-not-found/record-not-found.component.d.ts +2 -3
- package/src/pages/shopping-cart/shopping-cart.component.d.ts +1 -1
- package/src/resolvers/flow.resolver.d.ts +5 -6
- package/src/resolvers/sales-transaction.resolver.d.ts +18 -0
- package/src/resolvers/ui-definition.resolver.d.ts +3 -0
- package/src/services/flow-dialog.service.d.ts +5 -4
- package/src/services/flow-router.service.d.ts +4 -6
- package/src/services/flow.service.d.ts +2 -7
- 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 -6
- package/core/modules/configuration/services/runtime-context.service.d.ts +0 -12
- package/core/modules/configuration/types/configuration-runtime.types.d.ts +0 -6
- 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/context.service.d.ts +0 -23
- 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 -73
- package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +0 -43
- 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/context.service.mjs +0 -91
- package/esm2020/core/services/quote-draft.service.mjs +0 -192
- 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/guards/context.guard.mjs +0 -91
- package/esm2020/src/guards/index.mjs +0 -2
- package/esm2020/src/pages/remote/remote.component.mjs +0 -342
- package/esm2020/src/pages/remote/remote.module.mjs +0 -20
- package/esm2020/src/pages/remote/remote.types.mjs +0 -2
- 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 -25
- package/esm2020/src/utils/index.mjs +0 -2
- package/src/guards/context.guard.d.ts +0 -19
- package/src/guards/index.d.ts +0 -1
- package/src/pages/remote/remote.component.d.ts +0 -46
- package/src/pages/remote/remote.module.d.ts +0 -10
- package/src/pages/remote/remote.types.d.ts +0 -4
- package/src/resolvers/quote.resolver.d.ts +0 -19
- 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 -8
- package/src/utils/index.d.ts +0 -1
@@ -1,192 +0,0 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
2
|
-
import { AccountApiService, QuoteApiService } from '@veloceapps/api';
|
3
|
-
import { ConfigurationContextMode, QuoteDraft } from '@veloceapps/core';
|
4
|
-
import { isEqual } from 'lodash';
|
5
|
-
import { BehaviorSubject, combineLatest, noop, of, zip } from 'rxjs';
|
6
|
-
import { filter, map, shareReplay, skip, switchMap, take, tap } from 'rxjs/operators';
|
7
|
-
import { ContextService } from './context.service';
|
8
|
-
import { FlowInfoService } from './flow-info.service';
|
9
|
-
import * as i0 from "@angular/core";
|
10
|
-
import * as i1 from "./context.service";
|
11
|
-
import * as i2 from "./flow-info.service";
|
12
|
-
import * as i3 from "@veloceapps/api";
|
13
|
-
export class QuoteDraftService {
|
14
|
-
get isInitialized$() {
|
15
|
-
return this.isInitializedSubj$.asObservable();
|
16
|
-
}
|
17
|
-
get isInitialized() {
|
18
|
-
return this.isInitializedSubj$.getValue();
|
19
|
-
}
|
20
|
-
set isInitialized(value) {
|
21
|
-
if (this.isInitialized !== value) {
|
22
|
-
this.isInitializedSubj$.next(value);
|
23
|
-
}
|
24
|
-
}
|
25
|
-
get hasUnsavedChanges() {
|
26
|
-
return this._hasUnsavedChanges;
|
27
|
-
}
|
28
|
-
set hasUnsavedChanges(value) {
|
29
|
-
this._hasUnsavedChanges = value;
|
30
|
-
if (!this._hasUnsavedChanges) {
|
31
|
-
this.initialCurrentState = this.quoteDraft?.currentState ?? [];
|
32
|
-
}
|
33
|
-
}
|
34
|
-
get hasProducts$() {
|
35
|
-
return this.quoteSubj$.pipe(map(() => this.hasProducts));
|
36
|
-
}
|
37
|
-
get hasProducts() {
|
38
|
-
return Boolean(this.quoteSubj$.value?.currentState.length);
|
39
|
-
}
|
40
|
-
get hasAssets$() {
|
41
|
-
return this.assetsSubj$.pipe(map(() => this.hasAssets));
|
42
|
-
}
|
43
|
-
get hasAssets() {
|
44
|
-
return Boolean(this.assetsSubj$.value?.currentState.length);
|
45
|
-
}
|
46
|
-
get assetsState() {
|
47
|
-
return this.assetsSubj$.value;
|
48
|
-
}
|
49
|
-
constructor(context, flowInfoService, accountApiService, quoteApiService) {
|
50
|
-
this.context = context;
|
51
|
-
this.flowInfoService = flowInfoService;
|
52
|
-
this.accountApiService = accountApiService;
|
53
|
-
this.quoteApiService = quoteApiService;
|
54
|
-
this.quoteSubj$ = new BehaviorSubject(null);
|
55
|
-
this.assetsSubj$ = new BehaviorSubject(null);
|
56
|
-
this.resetSubj$ = new BehaviorSubject(true);
|
57
|
-
this.isInitializedSubj$ = new BehaviorSubject(false);
|
58
|
-
this.initialCurrentState = [];
|
59
|
-
this._hasUnsavedChanges = false;
|
60
|
-
this.reset$ = this.resetSubj$.asObservable();
|
61
|
-
this.isInitializedSubj$
|
62
|
-
.pipe(filter(isInitialized => isInitialized), switchMap(() => this.quoteSubj$.asObservable()), skip(1), tap(quote => this.markAsUpdated(quote)))
|
63
|
-
.subscribe();
|
64
|
-
}
|
65
|
-
reset() {
|
66
|
-
this.resetSubj$.next(true);
|
67
|
-
this.quoteSubj$.next(null);
|
68
|
-
this.assetsSubj$.next(null);
|
69
|
-
this.isInitialized = false;
|
70
|
-
this.hasUnsavedChanges = false;
|
71
|
-
}
|
72
|
-
init(headerId, params) {
|
73
|
-
const ctx = this.context.resolve();
|
74
|
-
const isAccountMode = this.context.mode === ConfigurationContextMode.ACCOUNT;
|
75
|
-
const accountId = isAccountMode ? headerId : ctx.properties.AccountId;
|
76
|
-
return zip(accountId ? this.accountApiService.getAssetsState(accountId, params) : of(null), isAccountMode
|
77
|
-
? of(QuoteDraft.emptyQuote(ConfigurationContextMode.ACCOUNT))
|
78
|
-
: this.quoteApiService.getQuoteState(headerId, params)).pipe(tap(([assets, quote]) => {
|
79
|
-
if (assets) {
|
80
|
-
this.assetsSubj$.next(assets);
|
81
|
-
}
|
82
|
-
this.quoteSubj$.next(quote);
|
83
|
-
if (assets && isAccountMode) {
|
84
|
-
this.context.update(assets.context);
|
85
|
-
}
|
86
|
-
else {
|
87
|
-
this.context.update(quote.context);
|
88
|
-
}
|
89
|
-
}), map(() => noop()), take(1));
|
90
|
-
}
|
91
|
-
finalizeInit() {
|
92
|
-
this.isInitialized = true;
|
93
|
-
this.hasUnsavedChanges = false;
|
94
|
-
}
|
95
|
-
setCurrentLineItemState(lineItems) {
|
96
|
-
const quoteDraft = this.quoteSubj$.value;
|
97
|
-
if (!quoteDraft) {
|
98
|
-
return;
|
99
|
-
}
|
100
|
-
this.quoteSubj$.next({
|
101
|
-
...quoteDraft,
|
102
|
-
currentState: lineItems,
|
103
|
-
});
|
104
|
-
}
|
105
|
-
updateQuoteDraft(update) {
|
106
|
-
const quoteDraft = this.quoteSubj$.value;
|
107
|
-
if (!quoteDraft) {
|
108
|
-
return;
|
109
|
-
}
|
110
|
-
if (update.context) {
|
111
|
-
this.context.set(update.context);
|
112
|
-
}
|
113
|
-
this.quoteSubj$.next({
|
114
|
-
...quoteDraft,
|
115
|
-
...update,
|
116
|
-
});
|
117
|
-
}
|
118
|
-
updateByPriceSummary(priceSummary) {
|
119
|
-
const quoteDraft = this.quoteSubj$.value;
|
120
|
-
if (!quoteDraft) {
|
121
|
-
return;
|
122
|
-
}
|
123
|
-
const updatedCurrentState = this.currentState.map(lineItem => {
|
124
|
-
const updated = priceSummary.lineItems.find(li => li.id === lineItem.id);
|
125
|
-
return updated ?? lineItem;
|
126
|
-
});
|
127
|
-
this.quoteSubj$.next({
|
128
|
-
...quoteDraft,
|
129
|
-
currentState: updatedCurrentState,
|
130
|
-
totalPrices: priceSummary.totalPrices,
|
131
|
-
approvalItems: priceSummary.approvalItems,
|
132
|
-
});
|
133
|
-
}
|
134
|
-
setAssetsState(assetsState) {
|
135
|
-
this.assetsSubj$.next(assetsState);
|
136
|
-
}
|
137
|
-
get quoteDraft$() {
|
138
|
-
return combineLatest([this.quoteSubj$, this.context.resolve$()]).pipe(map(() => this.quoteDraft), filter((quote) => Boolean(quote)), shareReplay());
|
139
|
-
}
|
140
|
-
get quoteDraft() {
|
141
|
-
const quote = this.quoteSubj$.value;
|
142
|
-
if (!quote) {
|
143
|
-
return null;
|
144
|
-
}
|
145
|
-
return {
|
146
|
-
...quote,
|
147
|
-
context: this.context.resolve(),
|
148
|
-
};
|
149
|
-
}
|
150
|
-
get currentState$() {
|
151
|
-
return this.quoteDraft$.pipe(map(quote => quote.currentState));
|
152
|
-
}
|
153
|
-
get currentState() {
|
154
|
-
return this.quoteDraft?.currentState ?? [];
|
155
|
-
}
|
156
|
-
get isStandalone() {
|
157
|
-
return this.flowInfoService.flow?.properties.standalone ?? false;
|
158
|
-
}
|
159
|
-
get isStandalone$() {
|
160
|
-
return this.flowInfoService.flow$.pipe(map(() => this.isStandalone));
|
161
|
-
}
|
162
|
-
getInitialCurrentState() {
|
163
|
-
return this.initialCurrentState;
|
164
|
-
}
|
165
|
-
isEditMode$() {
|
166
|
-
return this.context.resolve$().pipe(map(() => this.isEditMode()));
|
167
|
-
}
|
168
|
-
isEditMode() {
|
169
|
-
const context = this.context.resolve();
|
170
|
-
if (context.mode === ConfigurationContextMode.ACCOUNT) {
|
171
|
-
return true;
|
172
|
-
}
|
173
|
-
if (context.mode === ConfigurationContextMode.QUOTE) {
|
174
|
-
return context.properties.Status === 'Draft';
|
175
|
-
}
|
176
|
-
return false;
|
177
|
-
}
|
178
|
-
markAsUpdated(quote) {
|
179
|
-
if (quote?.context.properties['#mode'] === ConfigurationContextMode.ACCOUNT) {
|
180
|
-
this.hasUnsavedChanges = !!quote && !quote.currentState.every(li => li.actionCode === 'EXIST');
|
181
|
-
}
|
182
|
-
else {
|
183
|
-
this.hasUnsavedChanges = !isEqual(this.initialCurrentState, quote?.currentState);
|
184
|
-
}
|
185
|
-
}
|
186
|
-
}
|
187
|
-
QuoteDraftService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteDraftService, deps: [{ token: i1.ContextService }, { token: i2.FlowInfoService }, { token: i3.AccountApiService }, { token: i3.QuoteApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
188
|
-
QuoteDraftService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteDraftService });
|
189
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteDraftService, decorators: [{
|
190
|
-
type: Injectable
|
191
|
-
}], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i2.FlowInfoService }, { type: i3.AccountApiService }, { type: i3.QuoteApiService }]; } });
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUtZHJhZnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvc2VydmljZXMvcXVvdGUtZHJhZnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQXNCLHdCQUF3QixFQUEwQixVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwSCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUd0RCxNQUFNLE9BQU8saUJBQWlCO0lBUTVCLElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFXLGFBQWEsQ0FBQyxLQUFjO1FBQ3JDLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxLQUFLLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUks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d0I7UUFDNUMsSUFBSSxLQUFLLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUU7WUFDM0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEtBQUssT0FBTyxDQUFDLENBQUM7U0FDaEc7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ2xGO0lBQ0gsQ0FBQzs7OEdBbk9VLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY2NvdW50QXBpU2VydmljZSwgUXVvdGVBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IEFjY291bnRBc3NldHNTdGF0ZSwgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLCBMaW5lSXRlbSwgUHJpY2VTdW1tYXJ5LCBRdW90ZURyYWZ0IH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5LCBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbm9vcCwgT2JzZXJ2YWJsZSwgb2YsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBza2lwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmxvd0luZm9TZXJ2aWNlIH0gZnJvbSAnLi9mbG93LWluZm8uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBRdW90ZURyYWZ0U2VydmljZSB7XG4gIHByaXZhdGUgcXVvdGVTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UXVvdGVEcmFmdCB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIGFzc2V0c1N1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBY2NvdW50QXNzZXRzU3RhdGUgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZXNldFN1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkU3ViaiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBpbml0aWFsQ3VycmVudFN0YXRlOiBMaW5lSXRlbVtdID0gW107XG4gIHByaXZhdGUgX2hhc1Vuc2F2ZWRDaGFuZ2VzID0gZmFsc2U7XG5cbiAgcHVibGljIGdldCBpc0luaXRpYWxpemVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkU3ViaiQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbiAgcHVibGljIGdldCBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqJC5nZXRWYWx1ZSgpO1xuICB9XG4gIHB1YmxpYyBzZXQgaXNJbml0aWFsaXplZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWQgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqJC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1Vuc2F2ZWRDaGFuZ2VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oYXNVbnNhdmVkQ2hhbmdlcztcbiAgfVxuICBwdWJsaWMgc2V0IGhhc1Vuc2F2ZWRDaGFuZ2VzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faGFzVW5zYXZlZENoYW5nZXMgPSB2YWx1ZTtcblxuICAgIGlmICghdGhpcy5faGFzVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIHRoaXMuaW5pdGlhbEN1cnJlbnRTdGF0ZSA9IHRoaXMucXVvdGVEcmFmdD8uY3VycmVudFN0YXRlID8/IFtdO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzUHJvZHVjdHMkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlU3ViaiQucGlwZShtYXAoKCkgPT4gdGhpcy5oYXNQcm9kdWN0cykpO1xuICB9XG4gIHB1YmxpYyBnZXQgaGFzUHJvZHVjdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5xdW90ZVN1YmokLnZhbHVlPy5jdXJyZW50U3RhdGUubGVuZ3RoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzQXNzZXRzJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5hc3NldHNTdWJqJC5waXBlKG1hcCgoKSA9PiB0aGlzLmhhc0Fzc2V0cykpO1xuICB9XG4gIHB1YmxpYyBnZXQgaGFzQXNzZXRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMuYXNzZXRzU3ViaiQudmFsdWU/LmN1cnJlbnRTdGF0ZS5sZW5ndGgpO1xuICB9XG5cbiAgcHVibGljIGdldCBhc3NldHNTdGF0ZSgpOiBBY2NvdW50QXNzZXRzU3RhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5hc3NldHNTdWJqJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCQgPSB0aGlzLnJlc2V0U3ViaiQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb250ZXh0OiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dJbmZvU2VydmljZTogRmxvd0luZm9TZXJ2aWNlLFxuICAgIHByaXZhdGUgYWNjb3VudEFwaVNlcnZpY2U6IEFjY291bnRBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcXVvdGVBcGlTZXJ2aWNlOiBRdW90ZUFwaVNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuaXNJbml0aWFsaXplZFN1YmokXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKGlzSW5pdGlhbGl6ZWQgPT4gaXNJbml0aWFsaXplZCksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnF1b3RlU3ViaiQuYXNPYnNlcnZhYmxlKCkpLFxuICAgICAgICBza2lwKDEpLFxuICAgICAgICB0YXAocXVvdGUgPT4gdGhpcy5tYXJrQXNVcGRhdGVkKHF1b3RlKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldFN1YmokLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5xdW90ZVN1YmokLm5leHQobnVsbCk7XG4gICAgdGhpcy5hc3NldHNTdWJqJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHRoaXMuaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KGhlYWRlcklkOiBzdHJpbmcsIHBhcmFtczogRGljdGlvbmFyeTxzdHJpbmc+KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgY3R4ID0gdGhpcy5jb250ZXh0LnJlc29sdmUoKTtcbiAgICBjb25zdCBpc0FjY291bnRNb2RlID0gdGhpcy5jb250ZXh0Lm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UO1xuICAgIGNvbnN0IGFjY291bnRJZCA9IGlzQWNjb3VudE1vZGUgPyBoZWFkZXJJZCA6IGN0eC5wcm9wZXJ0aWVzLkFjY291bnRJZDtcblxuICAgIHJldHVybiB6aXAoXG4gICAgICBhY2NvdW50SWQgPyB0aGlzLmFjY291bnRBcGlTZXJ2aWNlLmdldEFzc2V0c1N0YXRlKGFjY291bnRJZCwgcGFyYW1zKSA6IG9mKG51bGwpLFxuICAgICAgaXNBY2NvdW50TW9kZVxuICAgICAgICA/IG9mKFF1b3RlRHJhZnQuZW1wdHlRdW90ZShDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuQUNDT1VOVCkpXG4gICAgICAgIDogdGhpcy5xdW90ZUFwaVNlcnZpY2UuZ2V0UXVvdGVTdGF0ZShoZWFkZXJJZCwgcGFyYW1zKSxcbiAgICApLnBpcGUoXG4gICAgICB0YXAoKFthc3NldHMsIHF1b3RlXSkgPT4ge1xuICAgICAgICBpZiAoYXNzZXRzKSB7XG4gICAgICAgICAgdGhpcy5hc3NldHNTdWJqJC5uZXh0KGFzc2V0cyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnF1b3RlU3ViaiQubmV4dChxdW90ZSk7XG4gICAgICAgIGlmIChhc3NldHMgJiYgaXNBY2NvdW50TW9kZSkge1xuICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoYXNzZXRzLmNvbnRleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUocXVvdGUuY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgbWFwKCgpID0+IG5vb3AoKSksXG4gICAgICB0YWtlKDEpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmluYWxpemVJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNldEN1cnJlbnRMaW5lSXRlbVN0YXRlKGxpbmVJdGVtczogTGluZUl0ZW1bXSk6IHZvaWQge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlU3ViaiQudmFsdWU7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnF1b3RlU3ViaiQubmV4dCh7XG4gICAgICAuLi5xdW90ZURyYWZ0LFxuICAgICAgY3VycmVudFN0YXRlOiBsaW5lSXRlbXMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUXVvdGVEcmFmdCh1cGRhdGU6IFBhcnRpYWw8UXVvdGVEcmFmdD4pOiB2b2lkIHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZVN1YmokLnZhbHVlO1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZS5jb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbnRleHQuc2V0KHVwZGF0ZS5jb250ZXh0KTtcbiAgICB9XG5cbiAgICB0aGlzLnF1b3RlU3ViaiQubmV4dCh7XG4gICAgICAuLi5xdW90ZURyYWZ0LFxuICAgICAgLi4udXBkYXRlLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUJ5UHJpY2VTdW1tYXJ5KHByaWNlU3VtbWFyeTogUHJpY2VTdW1tYXJ5KTogdm9pZCB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVTdWJqJC52YWx1ZTtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRDdXJyZW50U3RhdGUgPSB0aGlzLmN1cnJlbnRTdGF0ZS5tYXAobGluZUl0ZW0gPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZCA9IHByaWNlU3VtbWFyeS5saW5lSXRlbXMuZmluZChsaSA9PiBsaS5pZCA9PT0gbGluZUl0ZW0uaWQpO1xuICAgICAgcmV0dXJuIHVwZGF0ZWQgPz8gbGluZUl0ZW07XG4gICAgfSk7XG5cbiAgICB0aGlzLnF1b3RlU3ViaiQubmV4dCh7XG4gICAgICAuLi5xdW90ZURyYWZ0LFxuICAgICAgY3VycmVudFN0YXRlOiB1cGRhdGVkQ3VycmVudFN0YXRlLFxuICAgICAgdG90YWxQcmljZXM6IHByaWNlU3VtbWFyeS50b3RhbFByaWNlcyxcbiAgICAgIGFwcHJvdmFsSXRlbXM6IHByaWNlU3VtbWFyeS5hcHByb3ZhbEl0ZW1zLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldEFzc2V0c1N0YXRlKGFzc2V0c1N0YXRlOiBBY2NvdW50QXNzZXRzU3RhdGUpOiB2b2lkIHtcbiAgICB0aGlzLmFzc2V0c1N1YmokLm5leHQoYXNzZXRzU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBxdW90ZURyYWZ0JCgpOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQ+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5xdW90ZVN1YmokLCB0aGlzLmNvbnRleHQucmVzb2x2ZSQoKV0pLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0KSxcbiAgICAgIGZpbHRlcigocXVvdGUpOiBxdW90ZSBpcyBRdW90ZURyYWZ0ID0+IEJvb2xlYW4ocXVvdGUpKSxcbiAgICAgIHNoYXJlUmVwbGF5KCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVvdGVEcmFmdCgpOiBRdW90ZURyYWZ0IHwgbnVsbCB7XG4gICAgY29uc3QgcXVvdGUgPSB0aGlzLnF1b3RlU3ViaiQudmFsdWU7XG5cbiAgICBpZiAoIXF1b3RlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucXVvdGUsXG4gICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHQucmVzb2x2ZSgpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRTdGF0ZSQoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdCQucGlwZShtYXAocXVvdGUgPT4gcXVvdGUuY3VycmVudFN0YXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRTdGF0ZSgpOiBMaW5lSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0Py5jdXJyZW50U3RhdGUgPz8gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RhbmRhbG9uZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mbG93SW5mb1NlcnZpY2UuZmxvdz8ucHJvcGVydGllcy5zdGFuZGFsb25lID8/IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1N0YW5kYWxvbmUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmZsb3dJbmZvU2VydmljZS5mbG93JC5waXBlKG1hcCgoKSA9PiB0aGlzLmlzU3RhbmRhbG9uZSkpO1xuICB9XG5cbiAgcHVibGljIGdldEluaXRpYWxDdXJyZW50U3RhdGUoKTogTGluZUl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbEN1cnJlbnRTdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0VkaXRNb2RlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJlc29sdmUkKCkucGlwZShtYXAoKCkgPT4gdGhpcy5pc0VkaXRNb2RlKCkpKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0VkaXRNb2RlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHQucmVzb2x2ZSgpO1xuXG4gICAgaWYgKGNvbnRleHQubW9kZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLkFDQ09VTlQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChjb250ZXh0Lm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5RVU9URSkge1xuICAgICAgcmV0dXJuIGNvbnRleHQucHJvcGVydGllcy5TdGF0dXMgPT09ICdEcmFmdCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXJrQXNVcGRhdGVkKHF1b3RlOiBRdW90ZURyYWZ0IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChxdW90ZT8uY29udGV4dC5wcm9wZXJ0aWVzWycjbW9kZSddID09PSBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuQUNDT1VOVCkge1xuICAgICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9ICEhcXVvdGUgJiYgIXF1b3RlLmN1cnJlbnRTdGF0ZS5ldmVyeShsaSA9PiBsaS5hY3Rpb25Db2RlID09PSAnRVhJU1QnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9ICFpc0VxdWFsKHRoaXMuaW5pdGlhbEN1cnJlbnRTdGF0ZSwgcXVvdGU/LmN1cnJlbnRTdGF0ZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
@@ -1,16 +0,0 @@
|
|
1
|
-
export var RuntimeMode;
|
2
|
-
(function (RuntimeMode) {
|
3
|
-
RuntimeMode[RuntimeMode["TEST"] = 0] = "TEST";
|
4
|
-
RuntimeMode[RuntimeMode["PROD"] = 1] = "PROD";
|
5
|
-
})(RuntimeMode || (RuntimeMode = {}));
|
6
|
-
export var RuntimeOperation;
|
7
|
-
(function (RuntimeOperation) {
|
8
|
-
RuntimeOperation["INIT"] = "INIT";
|
9
|
-
RuntimeOperation["UPDATE"] = "UPDATE";
|
10
|
-
})(RuntimeOperation || (RuntimeOperation = {}));
|
11
|
-
export var RuntimeStep;
|
12
|
-
(function (RuntimeStep) {
|
13
|
-
RuntimeStep["START"] = "START";
|
14
|
-
RuntimeStep["UPDATE"] = "UPDATE";
|
15
|
-
})(RuntimeStep || (RuntimeStep = {}));
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvdHlwZXMvcnVudGltZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLDZDQUFJLENBQUE7SUFDSiw2Q0FBSSxDQUFBO0FBQ04sQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUMxQixpQ0FBYSxDQUFBO0lBQ2IscUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLDhCQUFlLENBQUE7SUFDZixnQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZXh0UHJvcGVydGllcywgUnVudGltZU1vZGVsLCBVSURlZmluaXRpb25Db250YWluZXIgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcblxuZXhwb3J0IGVudW0gUnVudGltZU1vZGUge1xuICBURVNULFxuICBQUk9ELFxufVxuXG5leHBvcnQgZW51bSBSdW50aW1lT3BlcmF0aW9uIHtcbiAgSU5JVCA9ICdJTklUJyxcbiAgVVBEQVRFID0gJ1VQREFURScsXG59XG5cbmV4cG9ydCBlbnVtIFJ1bnRpbWVTdGVwIHtcbiAgU1RBUlQgPSAnU1RBUlQnLFxuICBVUERBVEUgPSAnVVBEQVRFJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnZvY2F0aW9uQ29udGV4dCB7XG4gIHJ1bnRpbWVPcGVyYXRpb24/OiBSdW50aW1lT3BlcmF0aW9uO1xuICBydW50aW1lU3RlcD86IFJ1bnRpbWVTdGVwO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVDb250ZXh0IHtcbiAgbW9kZWxJZDogc3RyaW5nO1xuICBydW50aW1lTW9kZTogUnVudGltZU1vZGU7XG4gIHJ1bnRpbWVNb2RlbDogUnVudGltZU1vZGVsO1xuICB1aURlZmluaXRpb25Db250YWluZXI/OiBVSURlZmluaXRpb25Db250YWluZXI7XG4gIHByb2R1Y3RJZD86IHN0cmluZztcbiAgcHJvZHVjdE5hbWU/OiBzdHJpbmc7XG4gIHByb2R1Y3RUeXBlPzogc3RyaW5nO1xuICBwcm9wZXJ0aWVzPzogQ29udGV4dFByb3BlcnRpZXM7XG4gIG9mZmVyaW5nSWQ/OiBzdHJpbmc7XG4gIG9mZmVyaW5nSW5zdGFuY2VJZD86IHN0cmluZztcbiAgaW52b2NhdGlvbkNvbnRleHQ/OiBJbnZvY2F0aW9uQ29udGV4dDtcbn1cbiJdfQ==
|
@@ -1,187 +0,0 @@
|
|
1
|
-
import { UUID } from '@veloceapps/core';
|
2
|
-
import { entries, flatten, map, sortBy } from 'lodash';
|
3
|
-
export const findLineItem = (id, lineItems) => {
|
4
|
-
return findLineItemWithComparator(lineItems, (li) => li.id === id);
|
5
|
-
};
|
6
|
-
export const findLineItemWithComparator = (lineItems, comparator) => {
|
7
|
-
let currentLevel = lineItems;
|
8
|
-
while (currentLevel.length) {
|
9
|
-
const found = currentLevel.find(comparator);
|
10
|
-
if (found) {
|
11
|
-
return found;
|
12
|
-
}
|
13
|
-
currentLevel = flatten(currentLevel.map(parent => parent.lineItems));
|
14
|
-
}
|
15
|
-
return;
|
16
|
-
};
|
17
|
-
export const insertLineItem = (lineItem, parentId, toInsert) => {
|
18
|
-
const insertData = lineItem.id === parentId ? [toInsert] : [];
|
19
|
-
return {
|
20
|
-
...lineItem,
|
21
|
-
lineItems: [
|
22
|
-
...insertData,
|
23
|
-
...lineItem.lineItems.map(li => {
|
24
|
-
return insertLineItem(li, parentId, toInsert);
|
25
|
-
}),
|
26
|
-
],
|
27
|
-
};
|
28
|
-
};
|
29
|
-
export const removeLineItem = (lineItem, idToRemove) => {
|
30
|
-
return {
|
31
|
-
...lineItem,
|
32
|
-
lineItems: lineItem.lineItems
|
33
|
-
.map(li => {
|
34
|
-
if (li.id === idToRemove) {
|
35
|
-
return;
|
36
|
-
}
|
37
|
-
else if (li.lineItems.length) {
|
38
|
-
return removeLineItem(li, idToRemove);
|
39
|
-
}
|
40
|
-
return li;
|
41
|
-
})
|
42
|
-
.filter(r => !!r),
|
43
|
-
};
|
44
|
-
};
|
45
|
-
export const replaceLineItem = (lineItem, replaceTo, skipCardinalityCalculation = false) => {
|
46
|
-
if (lineItem.id === replaceTo.id) {
|
47
|
-
if (!skipCardinalityCalculation) {
|
48
|
-
return { ...recalculateCardinalityVariables(lineItem, replaceTo) };
|
49
|
-
}
|
50
|
-
else {
|
51
|
-
return { ...replaceTo };
|
52
|
-
}
|
53
|
-
}
|
54
|
-
return {
|
55
|
-
...lineItem,
|
56
|
-
lineItems: lineItem.lineItems.map(li => replaceLineItem(li, replaceTo, skipCardinalityCalculation)),
|
57
|
-
};
|
58
|
-
};
|
59
|
-
const collectCardinalityComputations = (portDomains) => {
|
60
|
-
const cardinalityComputations = new Map();
|
61
|
-
entries(portDomains).forEach(([key, portDomain]) => {
|
62
|
-
cardinalityComputations.set(key, portDomain.properties['cardinalityComputation'] === 'true');
|
63
|
-
});
|
64
|
-
return cardinalityComputations;
|
65
|
-
};
|
66
|
-
const calculateCardinalityVariables = (lineItems, cardinalityComputations) => {
|
67
|
-
const cardVars = new Map();
|
68
|
-
lineItems
|
69
|
-
.filter(({ port, type }) => !!port && !!type)
|
70
|
-
.forEach(li => {
|
71
|
-
if (cardinalityComputations.get(`${li.port}`)) {
|
72
|
-
const cardinalityVariableName = `#CV-${li.type}@${li.port}`;
|
73
|
-
cardVars.set(cardinalityVariableName, (cardVars.get(cardinalityVariableName) ?? 0) + li.qty);
|
74
|
-
}
|
75
|
-
});
|
76
|
-
return cardVars;
|
77
|
-
};
|
78
|
-
const cardinalityRegexp = new RegExp('#CV-[a-zA-Z0-9_]+@(?<portName>[a-zA-Z0-9_]+)');
|
79
|
-
export const recalculateCardinalityVariables = (original, updated) => {
|
80
|
-
const cardinalityComputations = collectCardinalityComputations(updated.portDomains ?? original.portDomains ?? {});
|
81
|
-
const cardinalityVariables = calculateCardinalityVariables(updated.lineItems, cardinalityComputations);
|
82
|
-
const originalCardinalityVariables = calculateCardinalityVariables(original.lineItems, cardinalityComputations);
|
83
|
-
originalCardinalityVariables.forEach((value, key) => {
|
84
|
-
const execArray = cardinalityRegexp.exec(key);
|
85
|
-
const portName = execArray?.groups?.['portName'];
|
86
|
-
if (!portName || cardinalityComputations.get(portName)) {
|
87
|
-
if (cardinalityVariables.get(key) === value) {
|
88
|
-
// no need to update cardinality if no changes
|
89
|
-
cardinalityVariables.delete(key);
|
90
|
-
}
|
91
|
-
else if (!cardinalityVariables.has(key)) {
|
92
|
-
// remove last item from port
|
93
|
-
cardinalityVariables.set(key, 0);
|
94
|
-
}
|
95
|
-
}
|
96
|
-
});
|
97
|
-
return {
|
98
|
-
...updated,
|
99
|
-
attributes: upsertAttributes(updated.attributes, [...cardinalityVariables].map(([name, value]) => ({ name, value, cfgStatus: 'Changed' }))),
|
100
|
-
};
|
101
|
-
};
|
102
|
-
export const mapAttributes = (attributes) => {
|
103
|
-
return attributes.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});
|
104
|
-
};
|
105
|
-
export const getAttributes = (attributes, names = []) => {
|
106
|
-
const filtered = attributes.filter(({ name }) => names.includes(name));
|
107
|
-
return sortBy(filtered, [({ name }) => names.indexOf(name)]);
|
108
|
-
};
|
109
|
-
export const upsertAttributes = (originalAttributes, attributesToUpsert) => {
|
110
|
-
return attributesToUpsert.reduce((acc, { name, value }) => {
|
111
|
-
const [origAttr] = getAttributes(acc, [name]);
|
112
|
-
return [
|
113
|
-
...acc.filter(attr => attr.name !== name),
|
114
|
-
{ ...(origAttr ?? { name, type: '' }), cfgStatus: origAttr ? 'Changed' : 'User', value },
|
115
|
-
];
|
116
|
-
}, originalAttributes);
|
117
|
-
};
|
118
|
-
export const patchAttributes = (rootLineItem, id, attrs, skipCardinalityCalculation = false) => {
|
119
|
-
const lineItem = findLineItem(id, [rootLineItem]);
|
120
|
-
if (!lineItem) {
|
121
|
-
return rootLineItem;
|
122
|
-
}
|
123
|
-
const attributes = upsertAttributes(lineItem.attributes, attrs);
|
124
|
-
return replaceLineItem(rootLineItem, { ...lineItem, attributes }, skipCardinalityCalculation);
|
125
|
-
};
|
126
|
-
export const getAttributeValue = (attributes, name) => attributes.find(attr => attr.name === name)?.value;
|
127
|
-
export const generateLineItem = (port, type, parentId, attributes = [], lineItems = []) => {
|
128
|
-
return {
|
129
|
-
id: UUID.UUID(),
|
130
|
-
port,
|
131
|
-
type,
|
132
|
-
actionCode: 'ADD',
|
133
|
-
cfgStatus: 'New',
|
134
|
-
attributes: attributes.map(({ name, value }) => ({ cfgStatus: 'User', name, value })),
|
135
|
-
lineItems,
|
136
|
-
parentId,
|
137
|
-
qty: 1,
|
138
|
-
};
|
139
|
-
};
|
140
|
-
export const getRecommendedPrices = (portDomain, type) => {
|
141
|
-
const domainType = portDomain.domainTypes.find(({ name }) => name === type);
|
142
|
-
const [net, list] = domainType?.recommendedPrices
|
143
|
-
?.filter(({ chargeMethod }) => chargeMethod === 'ONE_TIME')
|
144
|
-
.reduce((acc, rp) => {
|
145
|
-
const [netPrice, listPrice] = acc;
|
146
|
-
return [netPrice + rp.netPrice, listPrice + rp.listPrice];
|
147
|
-
}, [0, 0]) ?? [0, 0];
|
148
|
-
return { net, list };
|
149
|
-
};
|
150
|
-
export const getOriginParent = (lineItems, currentLineItem) => {
|
151
|
-
let target = currentLineItem;
|
152
|
-
while (target && target.rampInstanceId) {
|
153
|
-
target = lineItems.find(sub => sub.id === currentLineItem.rampInstanceId);
|
154
|
-
}
|
155
|
-
return target;
|
156
|
-
};
|
157
|
-
export const assetPredicateFn = (lineItem, assetId) => {
|
158
|
-
if (!assetId) {
|
159
|
-
return false;
|
160
|
-
}
|
161
|
-
return lineItem.assetId === assetId || lineItem.openOrderLineItemId === assetId;
|
162
|
-
};
|
163
|
-
export const multiplyLineItems = (lineItem, qty, split) => {
|
164
|
-
if (split) {
|
165
|
-
const unifyIds = (lineItem) => ({
|
166
|
-
...lineItem,
|
167
|
-
id: UUID.UUID(),
|
168
|
-
lineItems: lineItem.lineItems.map(unifyIds),
|
169
|
-
});
|
170
|
-
return map(new Array(qty), () => unifyIds(lineItem));
|
171
|
-
}
|
172
|
-
else {
|
173
|
-
return [
|
174
|
-
{
|
175
|
-
...lineItem,
|
176
|
-
qty: qty,
|
177
|
-
},
|
178
|
-
];
|
179
|
-
}
|
180
|
-
};
|
181
|
-
export const isTechnicalAttribute = (name) => {
|
182
|
-
return name.startsWith('#') || name.startsWith('$');
|
183
|
-
};
|
184
|
-
export const filterOutTechnicalAttributes = (attributes) => {
|
185
|
-
return attributes.filter(({ name }) => !isTechnicalAttribute(name));
|
186
|
-
};
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pdGVtLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS91dGlscy9saW5lLWl0ZW0udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpRCxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RixPQUFPLEVBQWMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEVBQVUsRUFBRSxTQUFxQixFQUF3QixFQUFFO0lBQ3RGLE9BQU8sMEJBQTBCLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQ3hDLFNBQXFCLEVBQ3JCLFVBQXFDLEVBQ2YsRUFBRTtJQUN4QixJQUFJLFlBQVksR0FBRyxTQUFTLENBQUM7SUFFN0IsT0FBTyxZQUFZLENBQUMsTUFBTSxFQUFFO1FBQzFCLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFNUMsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FDdEU7SUFFRCxPQUFPO0FBQ1QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsUUFBa0IsRUFBRSxRQUFnQixFQUFFLFFBQWtCLEVBQVksRUFBRTtJQUNuRyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsRUFB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QUMsUUFBa0IsRUFBRSxHQUFXLEVBQUUsS0FBYyxFQUFjLEVBQUU7SUFDL0YsSUFBSSxLQUFLLEVBQUU7UUFDVCxNQUFNLFFBQVEsR0FBRyxDQUFDLFFBQWtCLEVBQVksRUFBRSxDQUFDLENBQUM7WUFDbEQsR0FBRyxRQUFRO1lBQ1gsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZixTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1NBQzVDLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0tBQ3REO1NBQU07UUFDTCxPQUFPO1lBQ0w7Z0JBQ0UsR0FBRyxRQUFRO2dCQUNYLEdBQUcsRUFBRSxHQUFHO2FBQ1Q7U0FDRixDQUFDO0tBQ0g7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQVksRUFBVyxFQUFFO0lBQzVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLENBQTZCLFVBQWUsRUFBTyxFQUFFO0lBQy9GLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN0RSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIExpbmVJdGVtLCBOZXdBdHRyaWJ1dGUsIFBvcnREb21haW4sIFVVSUQgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnksIGVudHJpZXMsIGZsYXR0ZW4sIG1hcCwgc29ydEJ5IH0gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGNvbnN0IGZpbmRMaW5lSXRlbSA9IChpZDogc3RyaW5nLCBsaW5lSXRlbXM6IExpbmVJdGVtW10pOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCA9PiB7XG4gIHJldHVybiBmaW5kTGluZUl0ZW1XaXRoQ29tcGFyYXRvcihsaW5lSXRlbXMsIChsaTogTGluZUl0ZW0pID0+IGxpLmlkID09PSBpZCk7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZExpbmVJdGVtV2l0aENvbXBhcmF0b3IgPSAoXG4gIGxpbmVJdGVtczogTGluZUl0ZW1bXSxcbiAgY29tcGFyYXRvcjogKGxpOiBMaW5lSXRlbSkgPT4gYm9vbGVhbixcbik6IExpbmVJdGVtIHwgdW5kZWZpbmVkID0+IHtcbiAgbGV0IGN1cnJlbnRMZXZlbCA9IGxpbmVJdGVtcztcblxuICB3aGlsZSAoY3VycmVudExldmVsLmxlbmd0aCkge1xuICAgIGNvbnN0IGZvdW5kID0gY3VycmVudExldmVsLmZpbmQoY29tcGFyYXRvcik7XG5cbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9XG5cbiAgICBjdXJyZW50TGV2ZWwgPSBmbGF0dGVuKGN1cnJlbnRMZXZlbC5tYXAocGFyZW50ID0+IHBhcmVudC5saW5lSXRlbXMpKTtcbiAgfVxuXG4gIHJldHVybjtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRMaW5lSXRlbSA9IChsaW5lSXRlbTogTGluZUl0ZW0sIHBhcmVudElkOiBzdHJpbmcsIHRvSW5zZXJ0OiBMaW5lSXRlbSk6IExpbmVJdGVtID0+IHtcbiAgY29uc3QgaW5zZXJ0RGF0YSA9IGxpbmVJdGVtLmlkID09PSBwYXJlbnRJZCA/IFt0b0luc2VydF0gOiBbXTtcbiAgcmV0dXJuIHtcbiAgICAuLi5saW5lSXRlbSxcbiAgICBsaW5lSXRlbXM6IFtcbiAgICAgIC4uLmluc2VydERhdGEsXG4gICAgICAuLi5saW5lSXRlbS5saW5lSXRlbXMubWFwKGxpID0+IHtcbiAgICAgICAgcmV0dXJuIGluc2VydExpbmVJdGVtKGxpLCBwYXJlbnRJZCwgdG9JbnNlcnQpO1xuICAgICAgfSksXG4gICAgXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVMaW5lSXRlbSA9IChsaW5lSXRlbTogTGluZUl0ZW0sIGlkVG9SZW1vdmU6IHN0cmluZyk6IExpbmVJdGVtID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5saW5lSXRlbSxcbiAgICBsaW5lSXRlbXM6IGxpbmVJdGVtLmxpbmVJdGVtc1xuICAgICAgLm1hcChsaSA9PiB7XG4gICAgICAgIGlmIChsaS5pZCA9PT0gaWRUb1JlbW92ZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChsaS5saW5lSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIHJlbW92ZUxpbmVJdGVtKGxpLCBpZFRvUmVtb3ZlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGk7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihyID0+ICEhcikgYXMgTGluZUl0ZW1bXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXBsYWNlTGluZUl0ZW0gPSAoXG4gIGxpbmVJdGVtOiBMaW5lSXRlbSxcbiAgcmVwbGFjZVRvOiBMaW5lSXRlbSxcbiAgc2tpcENhcmRpbmFsaXR5Q2FsY3VsYXRpb246IGJvb2xlYW4gPSBmYWxzZSxcbik6IExpbmVJdGVtID0+IHtcbiAgaWYgKGxpbmVJdGVtLmlkID09PSByZXBsYWNlVG8uaWQpIHtcbiAgICBpZiAoIXNraXBDYXJkaW5hbGl0eUNhbGN1bGF0aW9uKSB7XG4gICAgICByZXR1cm4geyAuLi5yZWNhbGN1bGF0ZUNhcmRpbmFsaXR5VmFyaWFibGVzKGxpbmVJdGVtLCByZXBsYWNlVG8pIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7IC4uLnJlcGxhY2VUbyB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ubGluZUl0ZW0sXG4gICAgbGluZUl0ZW1zOiBsaW5lSXRlbS5saW5lSXRlbXMubWFwKGxpID0+IHJlcGxhY2VMaW5lSXRlbShsaSwgcmVwbGFjZVRvLCBza2lwQ2FyZGluYWxpdHlDYWxjdWxhdGlvbikpLFxuICB9O1xufTtcblxuY29uc3QgY29sbGVjdENhcmRpbmFsaXR5Q29tcHV0YXRpb25zID0gKHBvcnREb21haW5zOiBEaWN0aW9uYXJ5PFBvcnREb21haW4+KTogTWFwPHN0cmluZywgYm9vbGVhbj4gPT4ge1xuICBjb25zdCBjYXJkaW5hbGl0eUNvbXB1dGF0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xuICBlbnRyaWVzKHBvcnREb21haW5zKS5mb3JFYWNoKChba2V5LCBwb3J0RG9tYWluXSkgPT4ge1xuICAgIGNhcmRpbmFsaXR5Q29tcHV0YXRpb25zLnNldChrZXksIHBvcnREb21haW4ucHJvcGVydGllc1snY2FyZGluYWxpdHlDb21wdXRhdGlvbiddID09PSAndHJ1ZScpO1xuICB9KTtcbiAgcmV0dXJuIGNhcmRpbmFsaXR5Q29tcHV0YXRpb25zO1xufTtcblxuY29uc3QgY2FsY3VsYXRlQ2FyZGluYWxpdHlWYXJpYWJsZXMgPSAoXG4gIGxpbmVJdGVtczogTGluZUl0ZW1bXSxcbiAgY2FyZGluYWxpdHlDb21wdXRhdGlvbnM6IE1hcDxzdHJpbmcsIGJvb2xlYW4+LFxuKTogTWFwPHN0cmluZywgbnVtYmVyPiA9PiB7XG4gIGNvbnN0IGNhcmRWYXJzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgbGluZUl0ZW1zXG4gICAgLmZpbHRlcigoeyBwb3J0LCB0eXBlIH0pID0+ICEhcG9ydCAmJiAhIXR5cGUpXG4gICAgLmZvckVhY2gobGkgPT4ge1xuICAgICAgaWYgKGNhcmRpbmFsaXR5Q29tcHV0YXRpb25zLmdldChgJHtsaS5wb3J0fWApKSB7XG4gICAgICAgIGNvbnN0IGNhcmRpbmFsaXR5VmFyaWFibGVOYW1lID0gYCNDVi0ke2xpLnR5cGV9QCR7bGkucG9ydH1gO1xuICAgICAgICBjYXJkVmFycy5zZXQoY2FyZGluYWxpdHlWYXJpYWJsZU5hbWUsIChjYXJkVmFycy5nZXQoY2FyZGluYWxpdHlWYXJpYWJsZU5hbWUpID8/IDApICsgbGkucXR5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgcmV0dXJuIGNhcmRWYXJzO1xufTtcblxuY29uc3QgY2FyZGluYWxpdHlSZWdleHAgPSBuZXcgUmVnRXhwKCcjQ1YtW2EtekEtWjAtOV9dK0AoPzxwb3J0TmFtZT5bYS16QS1aMC05X10rKScpO1xuXG5leHBvcnQgY29uc3QgcmVjYWxjdWxhdGVDYXJkaW5hbGl0eVZhcmlhYmxlcyA9IChvcmlnaW5hbDogTGluZUl0ZW0sIHVwZGF0ZWQ6IExpbmVJdGVtKTogTGluZUl0ZW0gPT4ge1xuICBjb25zdCBjYXJkaW5hbGl0eUNvbXB1dGF0aW9ucyA9IGNvbGxlY3RDYXJkaW5hbGl0eUNvbXB1dGF0aW9ucyh1cGRhdGVkLnBvcnREb21haW5zID8/IG9yaWdpbmFsLnBvcnREb21haW5zID8/IHt9KTtcbiAgY29uc3QgY2FyZGluYWxpdHlWYXJpYWJsZXMgPSBjYWxjdWxhdGVDYXJkaW5hbGl0eVZhcmlhYmxlcyh1cGRhdGVkLmxpbmVJdGVtcywgY2FyZGluYWxpdHlDb21wdXRhdGlvbnMpO1xuICBjb25zdCBvcmlnaW5hbENhcmRpbmFsaXR5VmFyaWFibGVzID0gY2FsY3VsYXRlQ2FyZGluYWxpdHlWYXJpYWJsZXMob3JpZ2luYWwubGluZUl0ZW1zLCBjYXJkaW5hbGl0eUNvbXB1dGF0aW9ucyk7XG5cbiAgb3JpZ2luYWxDYXJkaW5hbGl0eVZhcmlhYmxlcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgY29uc3QgZXhlY0FycmF5ID0gY2FyZGluYWxpdHlSZWdleHAuZXhlYyhrZXkpO1xuICAgIGNvbnN0IHBvcnROYW1lID0gZXhlY0FycmF5Py5ncm91cHM/LlsncG9ydE5hbWUnXTtcbiAgICBpZiAoIXBvcnROYW1lIHx8IGNhcmRpbmFsaXR5Q29tcHV0YXRpb25zLmdldChwb3J0TmFtZSkpIHtcbiAgICAgIGlmIChjYXJkaW5hbGl0eVZhcmlhYmxlcy5nZXQoa2V5KSA9PT0gdmFsdWUpIHtcbiAgICAgICAgLy8gbm8gbmVlZCB0byB1cGRhdGUgY2FyZGluYWxpdHkgaWYgbm8gY2hhbmdlc1xuICAgICAgICBjYXJkaW5hbGl0eVZhcmlhYmxlcy5kZWxldGUoa2V5KTtcbiAgICAgIH0gZWxzZSBpZiAoIWNhcmRpbmFsaXR5VmFyaWFibGVzLmhhcyhrZXkpKSB7XG4gICAgICAgIC8vIHJlbW92ZSBsYXN0IGl0ZW0gZnJvbSBwb3J0XG4gICAgICAgIGNhcmRpbmFsaXR5VmFyaWFibGVzLnNldChrZXksIDApO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi51cGRhdGVkLFxuICAgIGF0dHJpYnV0ZXM6IHVwc2VydEF0dHJpYnV0ZXMoXG4gICAgICB1cGRhdGVkLmF0dHJpYnV0ZXMsXG4gICAgICBbLi4uY2FyZGluYWxpdHlWYXJpYWJsZXNdLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gKHsgbmFtZSwgdmFsdWUsIGNmZ1N0YXR1czogJ0NoYW5nZWQnIH0pKSxcbiAgICApLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG1hcEF0dHJpYnV0ZXMgPSAoYXR0cmlidXRlczogQXR0cmlidXRlW10pOiBEaWN0aW9uYXJ5PGFueT4gPT4ge1xuICByZXR1cm4gYXR0cmlidXRlcy5yZWR1Y2UoKGFjYywgeyBuYW1lLCB2YWx1ZSB9KSA9PiAoeyAuLi5hY2MsIFtuYW1lXTogdmFsdWUgfSksIHt9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBdHRyaWJ1dGVzID0gKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZVtdLCBuYW1lczogc3RyaW5nW10gPSBbXSk6IEF0dHJpYnV0ZVtdID0+IHtcbiAgY29uc3QgZmlsdGVyZWQgPSBhdHRyaWJ1dGVzLmZpbHRlcigoeyBuYW1lIH0pID0+IG5hbWVzLmluY2x1ZGVzKG5hbWUpKTtcbiAgcmV0dXJuIHNvcnRCeShmaWx0ZXJlZCwgWyh7IG5hbWUgfSk6IG51bWJlciA9PiBuYW1lcy5pbmRleE9mKG5hbWUpXSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBzZXJ0QXR0cmlidXRlcyA9IChvcmlnaW5hbEF0dHJpYnV0ZXM6IEF0dHJpYnV0ZVtdLCBhdHRyaWJ1dGVzVG9VcHNlcnQ6IE5ld0F0dHJpYnV0ZVtdKTogQXR0cmlidXRlW10gPT4ge1xuICByZXR1cm4gYXR0cmlidXRlc1RvVXBzZXJ0LnJlZHVjZSgoYWNjLCB7IG5hbWUsIHZhbHVlIH0pID0+IHtcbiAgICBjb25zdCBbb3JpZ0F0dHJdID0gZ2V0QXR0cmlidXRlcyhhY2MsIFtuYW1lXSk7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLmFjYy5maWx0ZXIoYXR0ciA9PiBhdHRyLm5hbWUgIT09IG5hbWUpLFxuICAgICAgeyAuLi4ob3JpZ0F0dHIgPz8geyBuYW1lLCB0eXBlOiAnJyB9KSwgY2ZnU3RhdHVzOiBvcmlnQXR0ciA/ICdDaGFuZ2VkJyA6ICdVc2VyJywgdmFsdWUgfSxcbiAgICBdO1xuICB9LCBvcmlnaW5hbEF0dHJpYnV0ZXMpO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhdGNoQXR0cmlidXRlcyA9IChcbiAgcm9vdExpbmVJdGVtOiBMaW5lSXRlbSxcbiAgaWQ6IHN0cmluZyxcbiAgYXR0cnM6IE5ld0F0dHJpYnV0ZVtdLFxuICBza2lwQ2FyZGluYWxpdHlDYWxjdWxhdGlvbjogYm9vbGVhbiA9IGZhbHNlLFxuKTogTGluZUl0ZW0gPT4ge1xuICBjb25zdCBsaW5lSXRlbSA9IGZpbmRMaW5lSXRlbShpZCwgW3Jvb3RMaW5lSXRlbV0pO1xuXG4gIGlmICghbGluZUl0ZW0pIHtcbiAgICByZXR1cm4gcm9vdExpbmVJdGVtO1xuICB9XG5cbiAgY29uc3QgYXR0cmlidXRlcyA9IHVwc2VydEF0dHJpYnV0ZXMobGluZUl0ZW0uYXR0cmlidXRlcywgYXR0cnMpO1xuICByZXR1cm4gcmVwbGFjZUxpbmVJdGVtKHJvb3RMaW5lSXRlbSwgeyAuLi5saW5lSXRlbSwgYXR0cmlidXRlcyB9LCBza2lwQ2FyZGluYWxpdHlDYWxjdWxhdGlvbik7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXR0cmlidXRlVmFsdWUgPSAoYXR0cmlidXRlczogQXR0cmlidXRlW10sIG5hbWU6IHN0cmluZyk6IGFueSA9PlxuICBhdHRyaWJ1dGVzLmZpbmQoYXR0ciA9PiBhdHRyLm5hbWUgPT09IG5hbWUpPy52YWx1ZTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlTGluZUl0ZW0gPSAoXG4gIHBvcnQ6IHN0cmluZyxcbiAgdHlwZTogc3RyaW5nLFxuICBwYXJlbnRJZDogc3RyaW5nLFxuICBhdHRyaWJ1dGVzOiBOZXdBdHRyaWJ1dGVbXSA9IFtdLFxuICBsaW5lSXRlbXM6IExpbmVJdGVtW10gPSBbXSxcbik6IExpbmVJdGVtID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDogVVVJRC5VVUlEKCksXG4gICAgcG9ydCxcbiAgICB0eXBlLFxuICAgIGFjdGlvbkNvZGU6ICdBREQnLFxuICAgIGNmZ1N0YXR1czogJ05ldycsXG4gICAgYXR0cmlidXRlczogYXR0cmlidXRlcy5tYXAoKHsgbmFtZSwgdmFsdWUgfSkgPT4gKHsgY2ZnU3RhdHVzOiAnVXNlcicsIG5hbWUsIHZhbHVlIH0pKSxcbiAgICBsaW5lSXRlbXMsXG4gICAgcGFyZW50SWQsXG4gICAgcXR5OiAxLFxuICB9IGFzIExpbmVJdGVtO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlY29tbWVuZGVkUHJpY2VzID0gKHBvcnREb21haW46IFBvcnREb21haW4sIHR5cGU6IHN0cmluZyk6IHsgbmV0OiBudW1iZXI7IGxpc3Q6IG51bWJlciB9ID0+IHtcbiAgY29uc3QgZG9tYWluVHlwZSA9IHBvcnREb21haW4uZG9tYWluVHlwZXMuZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09IHR5cGUpO1xuXG4gIGNvbnN0IFtuZXQsIGxpc3RdID0gZG9tYWluVHlwZT8ucmVjb21tZW5kZWRQcmljZXNcbiAgICA/LmZpbHRlcigoeyBjaGFyZ2VNZXRob2QgfSkgPT4gY2hhcmdlTWV0aG9kID09PSAnT05FX1RJTUUnKVxuICAgIC5yZWR1Y2UoXG4gICAgICAoYWNjLCBycCkgPT4ge1xuICAgICAgICBjb25zdCBbbmV0UHJpY2UsIGxpc3RQcmljZV0gPSBhY2M7XG4gICAgICAgIHJldHVybiBbbmV0UHJpY2UgKyBycC5uZXRQcmljZSwgbGlzdFByaWNlICsgcnAubGlzdFByaWNlXTtcbiAgICAgIH0sXG4gICAgICBbMCwgMF0sXG4gICAgKSA/PyBbMCwgMF07XG5cbiAgcmV0dXJuIHsgbmV0LCBsaXN0IH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0T3JpZ2luUGFyZW50ID0gKGxpbmVJdGVtczogTGluZUl0ZW1bXSwgY3VycmVudExpbmVJdGVtOiBMaW5lSXRlbSk6IExpbmVJdGVtIHwgdW5kZWZpbmVkID0+IHtcbiAgbGV0IHRhcmdldDogTGluZUl0ZW0gfCB1bmRlZmluZWQgPSBjdXJyZW50TGluZUl0ZW07XG4gIHdoaWxlICh0YXJnZXQgJiYgdGFyZ2V0LnJhbXBJbnN0YW5jZUlkKSB7XG4gICAgdGFyZ2V0ID0gbGluZUl0ZW1zLmZpbmQoc3ViID0+IHN1Yi5pZCA9PT0gY3VycmVudExpbmVJdGVtLnJhbXBJbnN0YW5jZUlkKTtcbiAgfVxuICByZXR1cm4gdGFyZ2V0O1xufTtcblxuZXhwb3J0IGNvbnN0IGFzc2V0UHJlZGljYXRlRm4gPSAobGluZUl0ZW06IExpbmVJdGVtLCBhc3NldElkPzogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGlmICghYXNzZXRJZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBsaW5lSXRlbS5hc3NldElkID09PSBhc3NldElkIHx8IGxpbmVJdGVtLm9wZW5PcmRlckxpbmVJdGVtSWQgPT09IGFzc2V0SWQ7XG59O1xuXG5leHBvcnQgY29uc3QgbXVsdGlwbHlMaW5lSXRlbXMgPSAobGluZUl0ZW06IExpbmVJdGVtLCBxdHk6IG51bWJlciwgc3BsaXQ6IGJvb2xlYW4pOiBMaW5lSXRlbVtdID0+IHtcbiAgaWYgKHNwbGl0KSB7XG4gICAgY29uc3QgdW5pZnlJZHMgPSAobGluZUl0ZW06IExpbmVJdGVtKTogTGluZUl0ZW0gPT4gKHtcbiAgICAgIC4uLmxpbmVJdGVtLFxuICAgICAgaWQ6IFVVSUQuVVVJRCgpLFxuICAgICAgbGluZUl0ZW1zOiBsaW5lSXRlbS5saW5lSXRlbXMubWFwKHVuaWZ5SWRzKSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtYXAobmV3IEFycmF5KHF0eSksICgpID0+IHVuaWZ5SWRzKGxpbmVJdGVtKSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgLi4ubGluZUl0ZW0sXG4gICAgICAgIHF0eTogcXR5LFxuICAgICAgfSxcbiAgICBdO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNUZWNobmljYWxBdHRyaWJ1dGUgPSAobmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiBuYW1lLnN0YXJ0c1dpdGgoJyMnKSB8fCBuYW1lLnN0YXJ0c1dpdGgoJyQnKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJPdXRUZWNobmljYWxBdHRyaWJ1dGVzID0gPFQgZXh0ZW5kcyB7IG5hbWU6IHN0cmluZyB9PihhdHRyaWJ1dGVzOiBUW10pOiBUW10gPT4ge1xuICByZXR1cm4gYXR0cmlidXRlcy5maWx0ZXIoKHsgbmFtZSB9KSA9PiAhaXNUZWNobmljYWxBdHRyaWJ1dGUobmFtZSkpO1xufTtcbiJdfQ==
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import { insertLineItem, patchAttributes, removeLineItem, replaceLineItem } from './line-item.utils';
|
2
|
-
export class LineItemWorker {
|
3
|
-
constructor(src) {
|
4
|
-
this.li = { ...src };
|
5
|
-
}
|
6
|
-
insert(parentId, toInsert) {
|
7
|
-
return new LineItemWorker(insertLineItem(this.li, parentId, toInsert));
|
8
|
-
}
|
9
|
-
remove(id) {
|
10
|
-
return new LineItemWorker(removeLineItem(this.li, id));
|
11
|
-
}
|
12
|
-
replace(toReplace, skipCardinalityCalculation = false) {
|
13
|
-
return new LineItemWorker(replaceLineItem(this.li, toReplace, skipCardinalityCalculation));
|
14
|
-
}
|
15
|
-
patchAttribute(attrs, id, skipCardinalityCalculation = false) {
|
16
|
-
return new LineItemWorker(patchAttributes(this.li, id ?? this.li.id, attrs, skipCardinalityCalculation));
|
17
|
-
}
|
18
|
-
}
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pdGVtLndvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvdXRpbHMvbGluZS1pdGVtLndvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFckcsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFBWSxHQUFhO1FBQ3ZCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBZ0IsRUFBRSxRQUFrQjtRQUNoRCxPQUFPLElBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxNQUFNLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLE9BQU8sQ0FBQyxTQUFtQixFQUFFLDZCQUFzQyxLQUFLO1FBQzdFLE9BQU8sSUFBSSxjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRU0sY0FBYyxDQUNuQixLQUFxQixFQUNyQixFQUFXLEVBQ1gsNkJBQXNDLEtBQUs7UUFFM0MsT0FBTyxJQUFJLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUMzRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaW5lSXRlbSwgTmV3QXR0cmlidXRlIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBpbnNlcnRMaW5lSXRlbSwgcGF0Y2hBdHRyaWJ1dGVzLCByZW1vdmVMaW5lSXRlbSwgcmVwbGFjZUxpbmVJdGVtIH0gZnJvbSAnLi9saW5lLWl0ZW0udXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgTGluZUl0ZW1Xb3JrZXIge1xuICBwdWJsaWMgbGk6IExpbmVJdGVtO1xuXG4gIGNvbnN0cnVjdG9yKHNyYzogTGluZUl0ZW0pIHtcbiAgICB0aGlzLmxpID0geyAuLi5zcmMgfTtcbiAgfVxuXG4gIHB1YmxpYyBpbnNlcnQocGFyZW50SWQ6IHN0cmluZywgdG9JbnNlcnQ6IExpbmVJdGVtKTogTGluZUl0ZW1Xb3JrZXIge1xuICAgIHJldHVybiBuZXcgTGluZUl0ZW1Xb3JrZXIoaW5zZXJ0TGluZUl0ZW0odGhpcy5saSwgcGFyZW50SWQsIHRvSW5zZXJ0KSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlKGlkOiBzdHJpbmcpOiBMaW5lSXRlbVdvcmtlciB7XG4gICAgcmV0dXJuIG5ldyBMaW5lSXRlbVdvcmtlcihyZW1vdmVMaW5lSXRlbSh0aGlzLmxpLCBpZCkpO1xuICB9XG5cbiAgcHVibGljIHJlcGxhY2UodG9SZXBsYWNlOiBMaW5lSXRlbSwgc2tpcENhcmRpbmFsaXR5Q2FsY3VsYXRpb246IGJvb2xlYW4gPSBmYWxzZSk6IExpbmVJdGVtV29ya2VyIHtcbiAgICByZXR1cm4gbmV3IExpbmVJdGVtV29ya2VyKHJlcGxhY2VMaW5lSXRlbSh0aGlzLmxpLCB0b1JlcGxhY2UsIHNraXBDYXJkaW5hbGl0eUNhbGN1bGF0aW9uKSk7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2hBdHRyaWJ1dGUoXG4gICAgYXR0cnM6IE5ld0F0dHJpYnV0ZVtdLFxuICAgIGlkPzogc3RyaW5nLFxuICAgIHNraXBDYXJkaW5hbGl0eUNhbGN1bGF0aW9uOiBib29sZWFuID0gZmFsc2UsXG4gICk6IExpbmVJdGVtV29ya2VyIHtcbiAgICByZXR1cm4gbmV3IExpbmVJdGVtV29ya2VyKHBhdGNoQXR0cmlidXRlcyh0aGlzLmxpLCBpZCA/PyB0aGlzLmxpLmlkLCBhdHRycywgc2tpcENhcmRpbmFsaXR5Q2FsY3VsYXRpb24pKTtcbiAgfVxufVxuIl19
|
@@ -1,91 +0,0 @@
|
|
1
|
-
import { HttpErrorResponse } from '@angular/common/http';
|
2
|
-
import { Injectable } from '@angular/core';
|
3
|
-
import { Router } from '@angular/router';
|
4
|
-
import { ConfigurationContextMode, extractErrorDetails, isVeloceError } from '@veloceapps/core';
|
5
|
-
import { ContextService, RuntimeSettingsService } from '@veloceapps/sdk/core';
|
6
|
-
import { catchError, forkJoin, map, of, tap } from 'rxjs';
|
7
|
-
import { FlowRouterService } from '../services/flow-router.service';
|
8
|
-
import { getDefaultProperties } from '../utils';
|
9
|
-
import * as i0 from "@angular/core";
|
10
|
-
import * as i1 from "@angular/router";
|
11
|
-
import * as i2 from "../services/flow-router.service";
|
12
|
-
import * as i3 from "@veloceapps/sdk/core";
|
13
|
-
export class ContextGuard {
|
14
|
-
constructor(router, routerService, contextService, runtimeSettingsService) {
|
15
|
-
this.router = router;
|
16
|
-
this.routerService = routerService;
|
17
|
-
this.contextService = contextService;
|
18
|
-
this.runtimeSettingsService = runtimeSettingsService;
|
19
|
-
}
|
20
|
-
checkActivation(route) {
|
21
|
-
const { queryParams } = route;
|
22
|
-
const { accountId, quoteId, orderId } = queryParams;
|
23
|
-
const rpcMessage = window.RPC_MESSAGE;
|
24
|
-
const mode = this.getConfigurationContextMode(accountId, quoteId, orderId, rpcMessage);
|
25
|
-
// Restrict if mode is not defined
|
26
|
-
if (mode == null) {
|
27
|
-
return this.routerService.showErrorPage$('Mode is undefined');
|
28
|
-
}
|
29
|
-
const headerId = accountId || quoteId || orderId || this.rpcMessageId || 'empty-for-test-mode';
|
30
|
-
// Allow if context is already initialized with the same headerId
|
31
|
-
if (this.contextService.isInitialized) {
|
32
|
-
const currentContext = this.contextService.resolve();
|
33
|
-
if (headerId && currentContext.headerId === headerId) {
|
34
|
-
return of(true);
|
35
|
-
}
|
36
|
-
}
|
37
|
-
// Initialize context and runtime settings
|
38
|
-
return forkJoin([this.contextService.create(headerId, mode), this.runtimeSettingsService.create()]).pipe(tap(([context]) => {
|
39
|
-
this.contextService.update({
|
40
|
-
...context,
|
41
|
-
properties: {
|
42
|
-
...context.properties,
|
43
|
-
...(queryParams ?? {}),
|
44
|
-
...getDefaultProperties({ mode }),
|
45
|
-
},
|
46
|
-
});
|
47
|
-
// Init currency settings
|
48
|
-
this.runtimeSettingsService.initCurrency(context.properties['CurrencyIsoCode']);
|
49
|
-
}), map(() => true), catchError(e => {
|
50
|
-
const message = e instanceof HttpErrorResponse ? e.error.message : e;
|
51
|
-
const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];
|
52
|
-
return this.routerService.showErrorPage$(message, errorDetails);
|
53
|
-
}));
|
54
|
-
}
|
55
|
-
canActivate(route) {
|
56
|
-
return this.checkActivation(route);
|
57
|
-
}
|
58
|
-
canActivateChild(childRoute) {
|
59
|
-
return this.checkActivation(childRoute);
|
60
|
-
}
|
61
|
-
get rpcMessageId() {
|
62
|
-
if (!window.RPC_MESSAGE) {
|
63
|
-
return;
|
64
|
-
}
|
65
|
-
const rpcMessage = JSON.parse(window.RPC_MESSAGE);
|
66
|
-
const veloceReferenceId = rpcMessage.configuration?.VeloceReferenceId;
|
67
|
-
const quoteId = rpcMessage.quote?.Id;
|
68
|
-
return veloceReferenceId || quoteId;
|
69
|
-
}
|
70
|
-
getConfigurationContextMode(accountId, quoteId, orderId, rpcMessage) {
|
71
|
-
if (accountId) {
|
72
|
-
return ConfigurationContextMode.ACCOUNT;
|
73
|
-
}
|
74
|
-
if (quoteId) {
|
75
|
-
return ConfigurationContextMode.QUOTE;
|
76
|
-
}
|
77
|
-
if (orderId) {
|
78
|
-
return ConfigurationContextMode.ORDER;
|
79
|
-
}
|
80
|
-
if (rpcMessage) {
|
81
|
-
return ConfigurationContextMode.REMOTE;
|
82
|
-
}
|
83
|
-
return;
|
84
|
-
}
|
85
|
-
}
|
86
|
-
ContextGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ContextGuard, deps: [{ token: i1.Router }, { token: i2.FlowRouterService }, { token: i3.ContextService }, { token: i3.RuntimeSettingsService }], target: i0.ɵɵFactoryTarget.Injectable });
|
87
|
-
ContextGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ContextGuard });
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ContextGuard, decorators: [{
|
89
|
-
type: Injectable
|
90
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.FlowRouterService }, { type: i3.ContextService }, { type: i3.RuntimeSettingsService }]; } });
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9ndWFyZHMvY29udGV4dC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBeUQsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUN0SCxPQUFPLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7OztBQUtoRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNZLE1BQWMsRUFDZCxhQUFnQyxFQUNoQyxjQUE4QixFQUM5QixzQkFBOEM7UUFIOUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtJQUN2RCxDQUFDO0lBRUcsZUFBZSxDQUFDLEtBQTZCO1FBQ2xELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDOUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsV0FBVyxDQUFDO1FBQ3BELE1B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RUFBRSxDQUFDO1FBRXJDLE9BQU8saUJBQWlCLElBQUksT0FBTyxDQUFDO0lBQ3RDLENBQUM7SUFFTywyQkFBMkIsQ0FDakMsU0FBa0IsRUFDbEIsT0FBZ0IsRUFDaEIsT0FBZ0IsRUFDaEIsVUFBbUI7UUFFbkIsSUFBSSxTQUFTLEVBQUU7WUFDYixPQUFPLHdCQUF3QixDQUFDLE9BQU8sQ0FBQztTQUN6QztRQUVELElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyx3QkFBd0IsQ0FBQyxLQUFLLENBQUM7U0FDdkM7UUFFRCxJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sd0JBQXdCLENBQUMsS0FBSyxDQUFDO1NBQ3ZDO1FBRUQsSUFBSSxVQUFVLEVBQUU7WUFDZCxPQUFPLHdCQUF3QixDQUFDLE1BQU0sQ0FBQztTQUN4QztRQUVELE9BQU87SUFDVCxDQUFDOzt5R0FqR1UsWUFBWTs2R0FBWixZQUFZOzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBDYW5BY3RpdmF0ZUNoaWxkLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLCBleHRyYWN0RXJyb3JEZXRhaWxzLCBpc1ZlbG9jZUVycm9yLCBScGNNZXNzYWdlLCBWbFdpbmRvdyB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFJ1bnRpbWVTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmb3JrSm9pbiwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93Um91dGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctcm91dGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdFByb3BlcnRpZXMgfSBmcm9tICcuLi91dGlscyc7XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBWbFdpbmRvdztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbnRleHRHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlLCBDYW5BY3RpdmF0ZUNoaWxkIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgIHByb3RlY3RlZCByb3V0ZXJTZXJ2aWNlOiBGbG93Um91dGVyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBydW50aW1lU2V0dGluZ3NTZXJ2aWNlOiBSdW50aW1lU2V0dGluZ3NTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIGNoZWNrQWN0aXZhdGlvbihyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgcXVlcnlQYXJhbXMgfSA9IHJvdXRlO1xuICAgIGNvbnN0IHsgYWNjb3VudElkLCBxdW90ZUlkLCBvcmRlcklkIH0gPSBxdWVyeVBhcmFtcztcbiAgICBjb25zdCBycGNNZXNzYWdlID0gd2luZG93LlJQQ19NRVNTQUdFO1xuICAgIGNvbnN0IG1vZGUgPSB0aGlzLmdldENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZShhY2NvdW50SWQsIHF1b3RlSWQsIG9yZGVySWQsIHJwY01lc3NhZ2UpO1xuXG4gICAgLy8gUmVzdHJpY3QgaWYgbW9kZSBpcyBub3QgZGVmaW5lZFxuICAgIGlmIChtb2RlID09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlclNlcnZpY2Uuc2hvd0Vycm9yUGFnZSQoJ01vZGUgaXMgdW5kZWZpbmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaGVhZGVySWQgPSBhY2NvdW50SWQgfHwgcXVvdGVJZCB8fCBvcmRlcklkIHx8IHRoaXMucnBjTWVzc2FnZUlkIHx8ICdlbXB0eS1mb3ItdGVzdC1tb2RlJztcblxuICAgIC8vIEFsbG93IGlmIGNvbnRleHQgaXMgYWxyZWFkeSBpbml0aWFsaXplZCB3aXRoIHRoZSBzYW1lIGhlYWRlcklkXG4gICAgaWYgKHRoaXMuY29udGV4dFNlcnZpY2UuaXNJbml0aWFsaXplZCkge1xuICAgICAgY29uc3QgY3VycmVudENvbnRleHQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcblxuICAgICAgaWYgKGhlYWRlcklkICYmIGN1cnJlbnRDb250ZXh0LmhlYWRlcklkID09PSBoZWFkZXJJZCkge1xuICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBjb250ZXh0IGFuZCBydW50aW1lIHNldHRpbmdzXG4gICAgcmV0dXJuIGZvcmtKb2luKFt0aGlzLmNvbnRleHRTZXJ2aWNlLmNyZWF0ZShoZWFkZXJJZCwgbW9kZSksIHRoaXMucnVudGltZVNldHRpbmdzU2VydmljZS5jcmVhdGUoKV0pLnBpcGUoXG4gICAgICB0YXAoKFtjb250ZXh0XSkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnVwZGF0ZSh7XG4gICAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAuLi5jb250ZXh0LnByb3BlcnRpZXMsXG4gICAgICAgICAgICAuLi4ocXVlcnlQYXJhbXMgPz8ge30pLFxuICAgICAgICAgICAgLi4uZ2V0RGVmYXVsdFByb3BlcnRpZXMoeyBtb2RlIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEluaXQgY3VycmVuY3kgc2V0dGluZ3NcbiAgICAgICAgdGhpcy5ydW50aW1lU2V0dGluZ3NTZXJ2aWNlLmluaXRDdXJyZW5jeShjb250ZXh0LnByb3BlcnRpZXNbJ0N1cnJlbmN5SXNvQ29kZSddKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKCgpID0+IHRydWUpLFxuICAgICAgY2F0Y2hFcnJvcihlID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGUgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSA/IGUuZXJyb3IubWVzc2FnZSA6IGU7XG4gICAgICAgIGNvbnN0IGVycm9yRGV0YWlscyA9IGlzVmVsb2NlRXJyb3IoZS5lcnJvcikgPyBleHRyYWN0RXJyb3JEZXRhaWxzKGUuZXJyb3IpIDogW107XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlclNlcnZpY2Uuc2hvd0Vycm9yUGFnZSQobWVzc2FnZSwgZXJyb3JEZXRhaWxzKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgUHJvbWlzZTxib29sZWFuPiB8IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNoZWNrQWN0aXZhdGlvbihyb3V0ZSk7XG4gIH1cblxuICBwdWJsaWMgY2FuQWN0aXZhdGVDaGlsZChjaGlsZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB8IFByb21pc2U8Ym9vbGVhbj4gfCBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja0FjdGl2YXRpb24oY2hpbGRSb3V0ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBycGNNZXNzYWdlSWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXdpbmRvdy5SUENfTUVTU0FHRSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJwY01lc3NhZ2U6IFJwY01lc3NhZ2UgPSBKU09OLnBhcnNlKHdpbmRvdy5SUENfTUVTU0FHRSk7XG4gICAgY29uc3QgdmVsb2NlUmVmZXJlbmNlSWQgPSBycGNNZXNzYWdlLmNvbmZpZ3VyYXRpb24/LlZlbG9jZVJlZmVyZW5jZUlkO1xuICAgIGNvbnN0IHF1b3RlSWQgPSBycGNNZXNzYWdlLnF1b3RlPy5JZDtcblxuICAgIHJldHVybiB2ZWxvY2VSZWZlcmVuY2VJZCB8fCBxdW90ZUlkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWd1cmF0aW9uQ29udGV4dE1vZGUoXG4gICAgYWNjb3VudElkPzogc3RyaW5nLFxuICAgIHF1b3RlSWQ/OiBzdHJpbmcsXG4gICAgb3JkZXJJZD86IHN0cmluZyxcbiAgICBycGNNZXNzYWdlPzogc3RyaW5nLFxuICApOiBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUgfCB1bmRlZmluZWQge1xuICAgIGlmIChhY2NvdW50SWQpIHtcbiAgICAgIHJldHVybiBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuQUNDT1VOVDtcbiAgICB9XG5cbiAgICBpZiAocXVvdGVJZCkge1xuICAgICAgcmV0dXJuIENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5RVU9URTtcbiAgICB9XG5cbiAgICBpZiAob3JkZXJJZCkge1xuICAgICAgcmV0dXJuIENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5PUkRFUjtcbiAgICB9XG5cbiAgICBpZiAocnBjTWVzc2FnZSkge1xuICAgICAgcmV0dXJuIENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5SRU1PVEU7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG59XG4iXX0=
|
@@ -1,2 +0,0 @@
|
|
1
|
-
export * from './context.guard';
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvZ3VhcmRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRleHQuZ3VhcmQnO1xuIl19
|