@veloceapps/sdk 11.0.0-12 → 11.0.0-120

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/cms/cms.actions.d.ts +94 -29
  2. package/cms/components/element-renderer/element-renderer.component.d.ts +3 -10
  3. package/cms/components/preview/preview.component.d.ts +5 -6
  4. package/cms/components/preview/preview.types.d.ts +0 -4
  5. package/cms/services/element-context.service.d.ts +0 -1
  6. package/cms/types/common.types.d.ts +2 -0
  7. package/cms/types/index.d.ts +0 -1
  8. package/cms/utils/path.utils.d.ts +1 -2
  9. package/cms/vendor-map.d.ts +17 -40
  10. package/core/index.d.ts +1 -1
  11. package/core/modules/configuration/index.d.ts +4 -4
  12. package/core/modules/configuration/services/configuration-runtime.service.d.ts +8 -17
  13. package/core/modules/configuration/services/configuration-state.service.d.ts +3 -3
  14. package/core/modules/configuration/services/configuration.service.d.ts +24 -47
  15. package/core/modules/configuration/services/guided-selling.service.d.ts +15 -0
  16. package/core/modules/configuration/services/test-mode-configuration.service.d.ts +26 -0
  17. package/core/modules/configuration/types/configuration-runtime.types.d.ts +0 -5
  18. package/core/modules/configuration/types/configuration.types.d.ts +4 -2
  19. package/core/modules/configuration/types/index.d.ts +2 -0
  20. package/core/modules/flow-configuration/index.d.ts +0 -3
  21. package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +11 -17
  22. package/core/operators/filter-successful-execute.operator.d.ts +3 -0
  23. package/core/operators/index.d.ts +1 -0
  24. package/core/services/flow-info.service.d.ts +7 -5
  25. package/core/services/flow-state-configuration.service.d.ts +9 -8
  26. package/core/services/flow-state.service.d.ts +6 -15
  27. package/core/services/index.d.ts +1 -1
  28. package/core/services/integration.state.d.ts +1 -1
  29. package/core/services/product-images.service.d.ts +3 -3
  30. package/core/services/runtime-settings.service.d.ts +1 -1
  31. package/core/services/sales-transaction.service.d.ts +9 -10
  32. package/core/types/flow-customization.types.d.ts +2 -2
  33. package/core/types/index.d.ts +0 -1
  34. package/core/utils/index.d.ts +2 -2
  35. package/core/utils/transaction-item.utils.d.ts +7 -0
  36. package/core/utils/transaction-item.worker.d.ts +8 -0
  37. package/esm2020/cms/cms.actions.mjs +93 -71
  38. package/esm2020/cms/cms.default.mjs +2 -3
  39. package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +7 -64
  40. package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +3 -3
  41. package/esm2020/cms/components/preview/preview.component.mjs +19 -28
  42. package/esm2020/cms/components/preview/preview.types.mjs +1 -1
  43. package/esm2020/cms/services/element-context.service.mjs +1 -1
  44. package/esm2020/cms/types/common.types.mjs +1 -1
  45. package/esm2020/cms/types/index.mjs +1 -2
  46. package/esm2020/cms/utils/element.utils.mjs +3 -3
  47. package/esm2020/cms/utils/elements-resolver.mjs +16 -5
  48. package/esm2020/cms/utils/path.utils.mjs +1 -10
  49. package/esm2020/cms/vendor-map.mjs +17 -18
  50. package/esm2020/core/core.module.mjs +3 -6
  51. package/esm2020/core/index.mjs +2 -2
  52. package/esm2020/core/modules/configuration/configuration.module.mjs +17 -4
  53. package/esm2020/core/modules/configuration/index.mjs +5 -5
  54. package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +16 -64
  55. package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +58 -58
  56. package/esm2020/core/modules/configuration/services/configuration.service.mjs +125 -229
  57. package/esm2020/core/modules/configuration/services/guided-selling.service.mjs +62 -0
  58. package/esm2020/core/modules/configuration/services/test-mode-configuration.service.mjs +97 -0
  59. package/esm2020/core/modules/configuration/types/configuration-runtime.types.mjs +1 -1
  60. package/esm2020/core/modules/configuration/types/configuration.types.mjs +1 -1
  61. package/esm2020/core/modules/configuration/types/index.mjs +3 -0
  62. package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +3 -4
  63. package/esm2020/core/modules/flow-configuration/index.mjs +1 -4
  64. package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +31 -39
  65. package/esm2020/core/operators/filter-successful-execute.operator.mjs +5 -0
  66. package/esm2020/core/operators/index.mjs +2 -0
  67. package/esm2020/core/services/flow-info.service.mjs +20 -11
  68. package/esm2020/core/services/flow-state-configuration.service.mjs +55 -25
  69. package/esm2020/core/services/flow-state.service.mjs +34 -82
  70. package/esm2020/core/services/index.mjs +2 -2
  71. package/esm2020/core/services/integration.state.mjs +2 -2
  72. package/esm2020/core/services/product-images.service.mjs +8 -8
  73. package/esm2020/core/services/runtime-settings.service.mjs +3 -3
  74. package/esm2020/core/services/sales-transaction.service.mjs +18 -13
  75. package/esm2020/core/types/flow-customization.types.mjs +1 -1
  76. package/esm2020/core/types/index.mjs +1 -2
  77. package/esm2020/core/utils/index.mjs +3 -3
  78. package/esm2020/core/utils/transaction-item.utils.mjs +60 -0
  79. package/esm2020/core/utils/transaction-item.worker.mjs +16 -0
  80. package/esm2020/src/components/flow-header/flow-header.component.mjs +7 -8
  81. package/esm2020/src/components/guided-selling/guided-selling.component.mjs +7 -8
  82. package/esm2020/src/flow-routing.module.mjs +10 -8
  83. package/esm2020/src/guards/flow.guard.mjs +5 -7
  84. package/esm2020/src/guards/product-unload.guard.mjs +7 -7
  85. package/esm2020/src/index.mjs +1 -2
  86. package/esm2020/src/pages/assets/assets.component.mjs +7 -8
  87. package/esm2020/src/pages/catalog/catalog.component.mjs +7 -8
  88. package/esm2020/src/pages/debug/debug.component.mjs +12 -17
  89. package/esm2020/src/pages/product/product.component.mjs +16 -70
  90. package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +5 -6
  91. package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +7 -8
  92. package/esm2020/src/resolvers/pcm-model.resolver.mjs +12 -0
  93. package/esm2020/src/resolvers/sales-transaction.resolver.mjs +64 -0
  94. package/esm2020/src/resolvers/ui-definition.resolver.mjs +44 -0
  95. package/esm2020/src/services/flow-dialog.service.mjs +3 -24
  96. package/esm2020/src/services/flow-router.service.mjs +17 -24
  97. package/esm2020/src/services/flow.service.mjs +11 -17
  98. package/esm2020/src/types/index.mjs +2 -3
  99. package/esm2020/src/types/route.types.mjs +1 -1
  100. package/fesm2015/veloceapps-sdk-cms.mjs +162 -309
  101. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  102. package/fesm2015/veloceapps-sdk-core.mjs +571 -1166
  103. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  104. package/fesm2015/veloceapps-sdk.mjs +161 -242
  105. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  106. package/fesm2020/veloceapps-sdk-cms.mjs +158 -300
  107. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  108. package/fesm2020/veloceapps-sdk-core.mjs +631 -1197
  109. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  110. package/fesm2020/veloceapps-sdk.mjs +161 -239
  111. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  112. package/package.json +1 -1
  113. package/src/components/flow-header/flow-header.component.d.ts +3 -3
  114. package/src/components/guided-selling/guided-selling.component.d.ts +3 -3
  115. package/src/guards/product-unload.guard.d.ts +3 -3
  116. package/src/index.d.ts +0 -1
  117. package/src/pages/assets/assets.component.d.ts +3 -3
  118. package/src/pages/catalog/catalog.component.d.ts +3 -3
  119. package/src/pages/debug/debug.component.d.ts +2 -4
  120. package/src/pages/product/product.component.d.ts +5 -12
  121. package/src/pages/record-not-found/record-not-found.component.d.ts +2 -3
  122. package/src/pages/shopping-cart/shopping-cart.component.d.ts +3 -3
  123. package/src/resolvers/pcm-model.resolver.d.ts +3 -0
  124. package/src/resolvers/sales-transaction.resolver.d.ts +18 -0
  125. package/src/resolvers/ui-definition.resolver.d.ts +3 -0
  126. package/src/services/flow-dialog.service.d.ts +3 -5
  127. package/src/services/flow-router.service.d.ts +5 -5
  128. package/src/services/flow.service.d.ts +3 -3
  129. package/src/types/index.d.ts +1 -2
  130. package/src/types/route.types.d.ts +0 -5
  131. package/cms/plugins/configuration.plugin.d.ts +0 -23
  132. package/cms/types/configuration.types.d.ts +0 -21
  133. package/core/modules/configuration/helpers.d.ts +0 -7
  134. package/core/modules/configuration/services/runtime-context.service.d.ts +0 -12
  135. package/core/modules/flow-configuration/services/flow-update.service.d.ts +0 -13
  136. package/core/modules/flow-configuration/types/update.types.d.ts +0 -12
  137. package/core/services/quote-draft.service.d.ts +0 -50
  138. package/core/types/runtime.types.d.ts +0 -30
  139. package/core/utils/line-item.utils.d.ts +0 -25
  140. package/core/utils/line-item.worker.d.ts +0 -9
  141. package/esm2020/cms/plugins/configuration.plugin.mjs +0 -109
  142. package/esm2020/cms/types/configuration.types.mjs +0 -2
  143. package/esm2020/core/modules/configuration/helpers.mjs +0 -67
  144. package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +0 -45
  145. package/esm2020/core/modules/flow-configuration/services/flow-update.service.mjs +0 -138
  146. package/esm2020/core/modules/flow-configuration/types/update.types.mjs +0 -2
  147. package/esm2020/core/services/quote-draft.service.mjs +0 -174
  148. package/esm2020/core/types/runtime.types.mjs +0 -16
  149. package/esm2020/core/utils/line-item.utils.mjs +0 -187
  150. package/esm2020/core/utils/line-item.worker.mjs +0 -19
  151. package/esm2020/src/resolvers/quote.resolver.mjs +0 -82
  152. package/esm2020/src/types/context-route.types.mjs +0 -2
  153. package/esm2020/src/types/metrics.types.mjs +0 -2
  154. package/esm2020/src/utils/flow.utils.mjs +0 -14
  155. package/esm2020/src/utils/index.mjs +0 -2
  156. package/src/resolvers/quote.resolver.d.ts +0 -18
  157. package/src/types/context-route.types.d.ts +0 -5
  158. package/src/types/metrics.types.d.ts +0 -5
  159. package/src/utils/flow.utils.d.ts +0 -1
  160. package/src/utils/index.d.ts +0 -1
@@ -1,174 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { AccountApiService } from '@veloceapps/api';
3
- import { ConfigurationContextMode, QuoteDraft } from '@veloceapps/core';
4
- import { isEqual } from 'lodash';
5
- import { BehaviorSubject, noop, of, zip } from 'rxjs';
6
- import { filter, map, shareReplay, skip, switchMap, take, tap } from 'rxjs/operators';
7
- import { FlowInfoService } from './flow-info.service';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "./flow-info.service";
10
- import * as i2 from "@veloceapps/api";
11
- /**
12
- * @deprecated
13
- */
14
- export class QuoteDraftService {
15
- get isInitialized$() {
16
- return this.isInitializedSubj$.asObservable();
17
- }
18
- get isInitialized() {
19
- return this.isInitializedSubj$.getValue();
20
- }
21
- set isInitialized(value) {
22
- if (this.isInitialized !== value) {
23
- this.isInitializedSubj$.next(value);
24
- }
25
- }
26
- get hasUnsavedChanges() {
27
- return this._hasUnsavedChanges;
28
- }
29
- set hasUnsavedChanges(value) {
30
- this._hasUnsavedChanges = value;
31
- if (!this._hasUnsavedChanges) {
32
- this.initialCurrentState = this.quoteDraft?.currentState ?? [];
33
- }
34
- }
35
- get hasProducts$() {
36
- return this.quoteSubj$.pipe(map(() => this.hasProducts));
37
- }
38
- get hasProducts() {
39
- return Boolean(this.quoteSubj$.value?.currentState.length);
40
- }
41
- get hasAssets$() {
42
- return this.assetsSubj$.pipe(map(() => this.hasAssets));
43
- }
44
- get hasAssets() {
45
- return Boolean(this.assetsSubj$.value?.currentState.length);
46
- }
47
- get assetsState() {
48
- return this.assetsSubj$.value;
49
- }
50
- constructor(flowInfoService, accountApiService) {
51
- this.flowInfoService = flowInfoService;
52
- this.accountApiService = accountApiService;
53
- this.quoteSubj$ = new BehaviorSubject(null);
54
- this.assetsSubj$ = new BehaviorSubject(null);
55
- this.resetSubj$ = new BehaviorSubject(true);
56
- this.isInitializedSubj$ = new BehaviorSubject(false);
57
- this.initialCurrentState = [];
58
- this._hasUnsavedChanges = false;
59
- this.reset$ = this.resetSubj$.asObservable();
60
- this.isInitializedSubj$
61
- .pipe(filter(isInitialized => isInitialized), switchMap(() => this.quoteSubj$.asObservable()), skip(1), tap(quote => this.markAsUpdated(quote)))
62
- .subscribe();
63
- }
64
- reset() {
65
- this.resetSubj$.next(true);
66
- this.quoteSubj$.next(null);
67
- this.assetsSubj$.next(null);
68
- this.isInitialized = false;
69
- this.hasUnsavedChanges = false;
70
- }
71
- init(headerId, params) {
72
- const isAccountMode = this.flowInfoService.context.mode === ConfigurationContextMode.ACCOUNT;
73
- const accountId = isAccountMode ? headerId : this.flowInfoService.context['accountId'];
74
- return zip(accountId ? this.accountApiService.getAssetsState(accountId, params) : of(null), isAccountMode
75
- ? of(QuoteDraft.emptyQuote(ConfigurationContextMode.ACCOUNT))
76
- : of(QuoteDraft.emptyQuote(ConfigurationContextMode.QUOTE))).pipe(tap(([assets, quote]) => {
77
- if (assets) {
78
- this.assetsSubj$.next(assets);
79
- }
80
- this.quoteSubj$.next(quote);
81
- }), map(() => noop()), take(1));
82
- }
83
- finalizeInit() {
84
- this.isInitialized = true;
85
- this.hasUnsavedChanges = false;
86
- }
87
- setCurrentLineItemState(lineItems) {
88
- const quoteDraft = this.quoteSubj$.value;
89
- if (!quoteDraft) {
90
- return;
91
- }
92
- this.quoteSubj$.next({
93
- ...quoteDraft,
94
- currentState: lineItems,
95
- });
96
- }
97
- updateQuoteDraft(update) {
98
- const quoteDraft = this.quoteSubj$.value;
99
- if (!quoteDraft) {
100
- return;
101
- }
102
- this.quoteSubj$.next({
103
- ...quoteDraft,
104
- ...update,
105
- });
106
- }
107
- updateByPriceSummary(priceSummary) {
108
- const quoteDraft = this.quoteSubj$.value;
109
- if (!quoteDraft) {
110
- return;
111
- }
112
- const updatedCurrentState = this.currentState.map(lineItem => {
113
- const updated = priceSummary.lineItems.find(li => li.id === lineItem.id);
114
- return updated ?? lineItem;
115
- });
116
- this.quoteSubj$.next({
117
- ...quoteDraft,
118
- currentState: updatedCurrentState,
119
- totalPrices: priceSummary.totalPrices,
120
- approvalItems: priceSummary.approvalItems,
121
- });
122
- }
123
- setAssetsState(assetsState) {
124
- this.assetsSubj$.next(assetsState);
125
- }
126
- get quoteDraft$() {
127
- return this.quoteSubj$.pipe(map(() => this.quoteDraft), filter((quote) => Boolean(quote)), shareReplay());
128
- }
129
- get quoteDraft() {
130
- return this.quoteSubj$.value;
131
- }
132
- get currentState$() {
133
- return this.quoteDraft$.pipe(map(quote => quote.currentState));
134
- }
135
- get currentState() {
136
- return this.quoteDraft?.currentState ?? [];
137
- }
138
- get isStandalone() {
139
- return this.flowInfoService.flow?.properties.standalone ?? false;
140
- }
141
- get isStandalone$() {
142
- return this.flowInfoService.flow$.pipe(map(() => this.isStandalone));
143
- }
144
- getInitialCurrentState() {
145
- return this.initialCurrentState;
146
- }
147
- isEditMode$() {
148
- return this.quoteDraft$.pipe(map(() => this.isEditMode()));
149
- }
150
- isEditMode() {
151
- const context = this.quoteDraft?.context;
152
- if (context?.mode === ConfigurationContextMode.ACCOUNT) {
153
- return true;
154
- }
155
- if (context?.mode === ConfigurationContextMode.QUOTE) {
156
- return context.properties.Status === 'Draft';
157
- }
158
- return false;
159
- }
160
- markAsUpdated(quote) {
161
- if (quote?.context.properties['#mode'] === ConfigurationContextMode.ACCOUNT) {
162
- this.hasUnsavedChanges = !!quote && !quote.currentState.every(li => li.actionCode === 'EXIST');
163
- }
164
- else {
165
- this.hasUnsavedChanges = !isEqual(this.initialCurrentState, quote?.currentState);
166
- }
167
- }
168
- }
169
- QuoteDraftService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteDraftService, deps: [{ token: i1.FlowInfoService }, { token: i2.AccountApiService }], target: i0.ɵɵFactoryTarget.Injectable });
170
- QuoteDraftService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteDraftService });
171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteDraftService, decorators: [{
172
- type: Injectable
173
- }], ctorParameters: function () { return [{ type: i1.FlowInfoService }, { type: i2.AccountApiService }]; } });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUtZHJhZnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvc2VydmljZXMvcXVvdGUtZHJhZnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBc0Isd0JBQXdCLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BILE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRXREOztHQUVHO0FBRUgsTUFBTSxPQUFPLGlCQUFpQjtJQVE1QixJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUNELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsSUFBVyxhQUFhLENBQUMsS0FBYztRQUNyQyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRUQsSUFBVyxpQkFBaUI7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QVUsRUFBRSxPQUFPLENBQUM7UUFFekMsSUFBSSxPQUFPLEVBQUUsSUFBSSxLQUFLLHdCQUF3QixDQUFDLE9BQU8sRUFBRTtZQUN0RCxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxPQUFPLEVBQUUsSUFBSSxLQUFLLHdCQUF3QixDQUFDLEtBQUssRUFBRTtZQUNwRCxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQztTQUM5QztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUF3QjtRQUM1QyxJQUFJLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLHdCQUF3QixDQUFDLE9BQU8sRUFBRTtZQUMzRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsS0FBSyxPQUFPLENBQUMsQ0FBQztTQUNoRzthQUFNO1lBQ0wsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDbEY7SUFDSCxDQUFDOzs4R0EzTVUsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjY291bnRBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IEFjY291bnRBc3NldHNTdGF0ZSwgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLCBMaW5lSXRlbSwgUHJpY2VTdW1tYXJ5LCBRdW90ZURyYWZ0IH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5LCBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbm9vcCwgT2JzZXJ2YWJsZSwgb2YsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBza2lwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZsb3dJbmZvU2VydmljZSB9IGZyb20gJy4vZmxvdy1pbmZvLnNlcnZpY2UnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBRdW90ZURyYWZ0U2VydmljZSB7XG4gIHByaXZhdGUgcXVvdGVTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UXVvdGVEcmFmdCB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIGFzc2V0c1N1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBY2NvdW50QXNzZXRzU3RhdGUgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZXNldFN1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkU3ViaiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBpbml0aWFsQ3VycmVudFN0YXRlOiBMaW5lSXRlbVtdID0gW107XG4gIHByaXZhdGUgX2hhc1Vuc2F2ZWRDaGFuZ2VzID0gZmFsc2U7XG5cbiAgcHVibGljIGdldCBpc0luaXRpYWxpemVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkU3ViaiQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbiAgcHVibGljIGdldCBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqJC5nZXRWYWx1ZSgpO1xuICB9XG4gIHB1YmxpYyBzZXQgaXNJbml0aWFsaXplZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWQgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqJC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1Vuc2F2ZWRDaGFuZ2VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oYXNVbnNhdmVkQ2hhbmdlcztcbiAgfVxuICBwdWJsaWMgc2V0IGhhc1Vuc2F2ZWRDaGFuZ2VzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faGFzVW5zYXZlZENoYW5nZXMgPSB2YWx1ZTtcblxuICAgIGlmICghdGhpcy5faGFzVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIHRoaXMuaW5pdGlhbEN1cnJlbnRTdGF0ZSA9IHRoaXMucXVvdGVEcmFmdD8uY3VycmVudFN0YXRlID8/IFtdO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzUHJvZHVjdHMkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlU3ViaiQucGlwZShtYXAoKCkgPT4gdGhpcy5oYXNQcm9kdWN0cykpO1xuICB9XG4gIHB1YmxpYyBnZXQgaGFzUHJvZHVjdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5xdW90ZVN1YmokLnZhbHVlPy5jdXJyZW50U3RhdGUubGVuZ3RoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzQXNzZXRzJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5hc3NldHNTdWJqJC5waXBlKG1hcCgoKSA9PiB0aGlzLmhhc0Fzc2V0cykpO1xuICB9XG4gIHB1YmxpYyBnZXQgaGFzQXNzZXRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMuYXNzZXRzU3ViaiQudmFsdWU/LmN1cnJlbnRTdGF0ZS5sZW5ndGgpO1xuICB9XG5cbiAgcHVibGljIGdldCBhc3NldHNTdGF0ZSgpOiBBY2NvdW50QXNzZXRzU3RhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5hc3NldHNTdWJqJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCQgPSB0aGlzLnJlc2V0U3ViaiQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmbG93SW5mb1NlcnZpY2U6IEZsb3dJbmZvU2VydmljZSwgcHJpdmF0ZSBhY2NvdW50QXBpU2VydmljZTogQWNjb3VudEFwaVNlcnZpY2UpIHtcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihpc0luaXRpYWxpemVkID0+IGlzSW5pdGlhbGl6ZWQpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5xdW90ZVN1YmokLmFzT2JzZXJ2YWJsZSgpKSxcbiAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgdGFwKHF1b3RlID0+IHRoaXMubWFya0FzVXBkYXRlZChxdW90ZSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRTdWJqJC5uZXh0KHRydWUpO1xuICAgIHRoaXMucXVvdGVTdWJqJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuYXNzZXRzU3ViaiQubmV4dChudWxsKTtcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgaW5pdChoZWFkZXJJZDogc3RyaW5nLCBwYXJhbXM6IERpY3Rpb25hcnk8c3RyaW5nPik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IGlzQWNjb3VudE1vZGUgPSB0aGlzLmZsb3dJbmZvU2VydmljZS5jb250ZXh0Lm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UO1xuICAgIGNvbnN0IGFjY291bnRJZCA9IGlzQWNjb3VudE1vZGUgPyBoZWFkZXJJZCA6IHRoaXMuZmxvd0luZm9TZXJ2aWNlLmNvbnRleHRbJ2FjY291bnRJZCddO1xuXG4gICAgcmV0dXJuIHppcChcbiAgICAgIGFjY291bnRJZCA/IHRoaXMuYWNjb3VudEFwaVNlcnZpY2UuZ2V0QXNzZXRzU3RhdGUoYWNjb3VudElkLCBwYXJhbXMpIDogb2YobnVsbCksXG4gICAgICBpc0FjY291bnRNb2RlXG4gICAgICAgID8gb2YoUXVvdGVEcmFmdC5lbXB0eVF1b3RlKENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UKSlcbiAgICAgICAgOiBvZihRdW90ZURyYWZ0LmVtcHR5UXVvdGUoQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLlFVT1RFKSksXG4gICAgKS5waXBlKFxuICAgICAgdGFwKChbYXNzZXRzLCBxdW90ZV0pID0+IHtcbiAgICAgICAgaWYgKGFzc2V0cykge1xuICAgICAgICAgIHRoaXMuYXNzZXRzU3ViaiQubmV4dChhc3NldHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5xdW90ZVN1YmokLm5leHQocXVvdGUpO1xuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4gbm9vcCgpKSxcbiAgICAgIHRha2UoMSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5hbGl6ZUluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2V0Q3VycmVudExpbmVJdGVtU3RhdGUobGluZUl0ZW1zOiBMaW5lSXRlbVtdKTogdm9pZCB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVTdWJqJC52YWx1ZTtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucXVvdGVTdWJqJC5uZXh0KHtcbiAgICAgIC4uLnF1b3RlRHJhZnQsXG4gICAgICBjdXJyZW50U3RhdGU6IGxpbmVJdGVtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVRdW90ZURyYWZ0KHVwZGF0ZTogUGFydGlhbDxRdW90ZURyYWZ0Pik6IHZvaWQge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlU3ViaiQudmFsdWU7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnF1b3RlU3ViaiQubmV4dCh7XG4gICAgICAuLi5xdW90ZURyYWZ0LFxuICAgICAgLi4udXBkYXRlLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUJ5UHJpY2VTdW1tYXJ5KHByaWNlU3VtbWFyeTogUHJpY2VTdW1tYXJ5KTogdm9pZCB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVTdWJqJC52YWx1ZTtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRDdXJyZW50U3RhdGUgPSB0aGlzLmN1cnJlbnRTdGF0ZS5tYXAobGluZUl0ZW0gPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZCA9IHByaWNlU3VtbWFyeS5saW5lSXRlbXMuZmluZChsaSA9PiBsaS5pZCA9PT0gbGluZUl0ZW0uaWQpO1xuICAgICAgcmV0dXJuIHVwZGF0ZWQgPz8gbGluZUl0ZW07XG4gICAgfSk7XG5cbiAgICB0aGlzLnF1b3RlU3ViaiQubmV4dCh7XG4gICAgICAuLi5xdW90ZURyYWZ0LFxuICAgICAgY3VycmVudFN0YXRlOiB1cGRhdGVkQ3VycmVudFN0YXRlLFxuICAgICAgdG90YWxQcmljZXM6IHByaWNlU3VtbWFyeS50b3RhbFByaWNlcyxcbiAgICAgIGFwcHJvdmFsSXRlbXM6IHByaWNlU3VtbWFyeS5hcHByb3ZhbEl0ZW1zLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldEFzc2V0c1N0YXRlKGFzc2V0c1N0YXRlOiBBY2NvdW50QXNzZXRzU3RhdGUpOiB2b2lkIHtcbiAgICB0aGlzLmFzc2V0c1N1YmokLm5leHQoYXNzZXRzU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBxdW90ZURyYWZ0JCgpOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQ+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZVN1YmokLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0KSxcbiAgICAgIGZpbHRlcigocXVvdGUpOiBxdW90ZSBpcyBRdW90ZURyYWZ0ID0+IEJvb2xlYW4ocXVvdGUpKSxcbiAgICAgIHNoYXJlUmVwbGF5KCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVvdGVEcmFmdCgpOiBRdW90ZURyYWZ0IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVTdWJqJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudFN0YXRlJCgpOiBPYnNlcnZhYmxlPExpbmVJdGVtW10+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0JC5waXBlKG1hcChxdW90ZSA9PiBxdW90ZS5jdXJyZW50U3RhdGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudFN0YXRlKCk6IExpbmVJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnQ/LmN1cnJlbnRTdGF0ZSA/PyBbXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTdGFuZGFsb25lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZsb3dJbmZvU2VydmljZS5mbG93Py5wcm9wZXJ0aWVzLnN0YW5kYWxvbmUgPz8gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RhbmRhbG9uZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuZmxvd0luZm9TZXJ2aWNlLmZsb3ckLnBpcGUobWFwKCgpID0+IHRoaXMuaXNTdGFuZGFsb25lKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SW5pdGlhbEN1cnJlbnRTdGF0ZSgpOiBMaW5lSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsQ3VycmVudFN0YXRlO1xuICB9XG5cbiAgcHVibGljIGlzRWRpdE1vZGUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnQkLnBpcGUobWFwKCgpID0+IHRoaXMuaXNFZGl0TW9kZSgpKSk7XG4gIH1cblxuICBwdWJsaWMgaXNFZGl0TW9kZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5xdW90ZURyYWZ0Py5jb250ZXh0O1xuXG4gICAgaWYgKGNvbnRleHQ/Lm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dD8ubW9kZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLlFVT1RFKSB7XG4gICAgICByZXR1cm4gY29udGV4dC5wcm9wZXJ0aWVzLlN0YXR1cyA9PT0gJ0RyYWZ0JztcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIG1hcmtBc1VwZGF0ZWQocXVvdGU6IFF1b3RlRHJhZnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHF1b3RlPy5jb250ZXh0LnByb3BlcnRpZXNbJyNtb2RlJ10gPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UKSB7XG4gICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gISFxdW90ZSAmJiAhcXVvdGUuY3VycmVudFN0YXRlLmV2ZXJ5KGxpID0+IGxpLmFjdGlvbkNvZGUgPT09ICdFWElTVCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gIWlzRXF1YWwodGhpcy5pbml0aWFsQ3VycmVudFN0YXRlLCBxdW90ZT8uY3VycmVudFN0YXRlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -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,82 +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, UITemplateType } from '@veloceapps/core';
5
- import { FlowInfoService, FlowStateService, QuoteDraftService } from '@veloceapps/sdk/core';
6
- import { catchError, from, map, of, switchMap } from 'rxjs';
7
- import { FlowRouterService } from '../services/flow-router.service';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/router";
10
- import * as i2 from "@veloceapps/sdk/core";
11
- import * as i3 from "../services/flow-router.service";
12
- export class QuoteResolver {
13
- constructor(router, quoteDraftService, routerService, flowInfoService, flowStateService) {
14
- this.router = router;
15
- this.quoteDraftService = quoteDraftService;
16
- this.routerService = routerService;
17
- this.flowInfoService = flowInfoService;
18
- this.flowStateService = flowStateService;
19
- }
20
- resolve(route) {
21
- const flow = this.flowInfoService.flow;
22
- if (!flow) {
23
- return of(false);
24
- }
25
- if (this.flowStateService.isInitialized()) {
26
- return of(true);
27
- }
28
- return this.flowStateService.init$().pipe(switchMap(() => this.checkDynamicNavigation$(route)), catchError(e => {
29
- console.error(e);
30
- const message = e instanceof HttpErrorResponse ? e.error.message : e;
31
- const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];
32
- return this.routerService.showErrorPage$(message, errorDetails);
33
- }));
34
- }
35
- checkDynamicNavigation$(route) {
36
- const flow = this.flowInfoService.flow;
37
- if (!flow) {
38
- return of(true);
39
- }
40
- if (flow.properties.suppressInitialNavigation || flow.properties.standalone) {
41
- return of(true);
42
- }
43
- return this.getNavigateTo().pipe(switchMap(navigateTo => {
44
- if (!navigateTo) {
45
- return of(true);
46
- }
47
- const parentUrl = this.routerService.getFlowRootPath(route);
48
- return from(this.router.navigate([parentUrl + navigateTo], {
49
- queryParams: route.queryParams,
50
- replaceUrl: true,
51
- }));
52
- }));
53
- }
54
- getNavigateTo() {
55
- const flow = this.flowInfoService.flow;
56
- let navigateTo;
57
- if (flow?.properties.stateful) {
58
- return this.flowStateService.select$(UITemplateType.FLOW_ENGINE, 'NAVIGATE_TO').pipe(map(r => {
59
- if (r.success) {
60
- return r.result;
61
- }
62
- return '';
63
- }));
64
- }
65
- else {
66
- const isAccountMode = this.flowInfoService.context.mode === ConfigurationContextMode.ACCOUNT;
67
- if (isAccountMode || this.quoteDraftService.hasAssets) {
68
- navigateTo = '/assets';
69
- }
70
- else if (this.quoteDraftService.hasProducts) {
71
- navigateTo = '/cart';
72
- }
73
- }
74
- return of(navigateTo);
75
- }
76
- }
77
- QuoteResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteResolver, deps: [{ token: i1.Router }, { token: i2.QuoteDraftService }, { token: i3.FlowRouterService }, { token: i2.FlowInfoService }, { token: i2.FlowStateService }], target: i0.ɵɵFactoryTarget.Injectable });
78
- QuoteResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteResolver });
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: QuoteResolver, decorators: [{
80
- type: Injectable
81
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.QuoteDraftService }, { type: i3.FlowRouterService }, { type: i2.FlowInfoService }, { type: i2.FlowStateService }]; } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvcmVzb2x2ZXJzL3F1b3RlLnJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUEwQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RixPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7QUFHcEUsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFDVSxNQUFjLEVBQ2QsaUJBQW9DLEVBQ3BDLGFBQWdDLEVBQ2hDLGVBQWdDLEVBQ2hDLGdCQUFrQztRQUpsQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFDaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDekMsQ0FBQztJQUVHLE9BQU8sQ0FBQyxLQUE2QjtRQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1Qs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QUFVLEdBQUcsU0FBUyxDQUFDO2FBQ3hCO2lCQUFNLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRTtnQkFDN0MsVUFBVSxHQUFHLE9BQU8sQ0FBQzthQUN0QjtTQUNGO1FBRUQsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7MEdBaEZVLGFBQWE7OEdBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLCBleHRyYWN0RXJyb3JEZXRhaWxzLCBpc1ZlbG9jZUVycm9yLCBVSVRlbXBsYXRlVHlwZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRmxvd0luZm9TZXJ2aWNlLCBGbG93U3RhdGVTZXJ2aWNlLCBRdW90ZURyYWZ0U2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcblxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZnJvbSwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93Um91dGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctcm91dGVyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUXVvdGVSZXNvbHZlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBxdW90ZURyYWZ0U2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXJTZXJ2aWNlOiBGbG93Um91dGVyU2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dJbmZvU2VydmljZTogRmxvd0luZm9TZXJ2aWNlLFxuICAgIHByaXZhdGUgZmxvd1N0YXRlU2VydmljZTogRmxvd1N0YXRlU2VydmljZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyByZXNvbHZlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgZmxvdyA9IHRoaXMuZmxvd0luZm9TZXJ2aWNlLmZsb3c7XG4gICAgaWYgKCFmbG93KSB7XG4gICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZsb3dTdGF0ZVNlcnZpY2UuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZmxvd1N0YXRlU2VydmljZS5pbml0JCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jaGVja0R5bmFtaWNOYXZpZ2F0aW9uJChyb3V0ZSkpLFxuICAgICAgY2F0Y2hFcnJvcihlID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGUgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSA/IGUuZXJyb3IubWVzc2FnZSA6IGU7XG4gICAgICAgIGNvbnN0IGVycm9yRGV0YWlscyA9IGlzVmVsb2NlRXJyb3IoZS5lcnJvcikgPyBleHRyYWN0RXJyb3JEZXRhaWxzKGUuZXJyb3IpIDogW107XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlclNlcnZpY2Uuc2hvd0Vycm9yUGFnZSQobWVzc2FnZSwgZXJyb3JEZXRhaWxzKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRHluYW1pY05hdmlnYXRpb24kKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgZmxvdyA9IHRoaXMuZmxvd0luZm9TZXJ2aWNlLmZsb3c7XG4gICAgaWYgKCFmbG93KSB7XG4gICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgfVxuXG4gICAgaWYgKGZsb3cucHJvcGVydGllcy5zdXBwcmVzc0luaXRpYWxOYXZpZ2F0aW9uIHx8IGZsb3cucHJvcGVydGllcy5zdGFuZGFsb25lKSB7XG4gICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0TmF2aWdhdGVUbygpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAobmF2aWdhdGVUbyA9PiB7XG4gICAgICAgIGlmICghbmF2aWdhdGVUbykge1xuICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcmVudFVybCA9IHRoaXMucm91dGVyU2VydmljZS5nZXRGbG93Um9vdFBhdGgocm91dGUpO1xuXG4gICAgICAgIHJldHVybiBmcm9tKFxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYXJlbnRVcmwgKyBuYXZpZ2F0ZVRvXSwge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHJvdXRlLnF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgcmVwbGFjZVVybDogdHJ1ZSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldE5hdmlnYXRlVG8oKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBmbG93ID0gdGhpcy5mbG93SW5mb1NlcnZpY2UuZmxvdztcbiAgICBsZXQgbmF2aWdhdGVUbzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGlmIChmbG93Py5wcm9wZXJ0aWVzLnN0YXRlZnVsKSB7XG4gICAgICByZXR1cm4gdGhpcy5mbG93U3RhdGVTZXJ2aWNlLnNlbGVjdCQ8c3RyaW5nPihVSVRlbXBsYXRlVHlwZS5GTE9XX0VOR0lORSwgJ05BVklHQVRFX1RPJykucGlwZShcbiAgICAgICAgbWFwKHIgPT4ge1xuICAgICAgICAgIGlmIChyLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHJldHVybiByLnJlc3VsdDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGlzQWNjb3VudE1vZGUgPSB0aGlzLmZsb3dJbmZvU2VydmljZS5jb250ZXh0Lm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UO1xuICAgICAgaWYgKGlzQWNjb3VudE1vZGUgfHwgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5oYXNBc3NldHMpIHtcbiAgICAgICAgbmF2aWdhdGVUbyA9ICcvYXNzZXRzJztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5xdW90ZURyYWZ0U2VydmljZS5oYXNQcm9kdWN0cykge1xuICAgICAgICBuYXZpZ2F0ZVRvID0gJy9jYXJ0JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gb2YobmF2aWdhdGVUbyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1yb3V0ZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy90eXBlcy9jb250ZXh0LXJvdXRlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0Um91dGVEYXRhIHtcbiAgbW9kZTogQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlO1xuICBoZWFkZXJJZDogc3RyaW5nO1xufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy90eXBlcy9tZXRyaWNzLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE1ldHJpYyB7XG4gIGtleTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZpc2libGU6IGJvb2xlYW47XG59XG4iXX0=
@@ -1,14 +0,0 @@
1
- import { SalesforceIdUtils } from '@veloceapps/core';
2
- export const getFlowObjectIdPropertyName = (id) => {
3
- const objectName = SalesforceIdUtils.getSfObjectNameById(id);
4
- switch (objectName) {
5
- case 'Account':
6
- return 'accountId';
7
- case 'Order':
8
- return 'orderId';
9
- case 'Quote':
10
- default:
11
- return 'quoteId';
12
- }
13
- };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy91dGlscy9mbG93LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXJELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsRUFBVSxFQUFVLEVBQUU7SUFDaEUsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFN0QsUUFBUSxVQUFVLEVBQUU7UUFDbEIsS0FBSyxTQUFTO1lBQ1osT0FBTyxXQUFXLENBQUM7UUFDckIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxTQUFTLENBQUM7UUFDbkIsS0FBSyxPQUFPLENBQUM7UUFDYjtZQUNFLE9BQU8sU0FBUyxDQUFDO0tBQ3BCO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FsZXNmb3JjZUlkVXRpbHMgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcblxuZXhwb3J0IGNvbnN0IGdldEZsb3dPYmplY3RJZFByb3BlcnR5TmFtZSA9IChpZDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgb2JqZWN0TmFtZSA9IFNhbGVzZm9yY2VJZFV0aWxzLmdldFNmT2JqZWN0TmFtZUJ5SWQoaWQpO1xuXG4gIHN3aXRjaCAob2JqZWN0TmFtZSkge1xuICAgIGNhc2UgJ0FjY291bnQnOlxuICAgICAgcmV0dXJuICdhY2NvdW50SWQnO1xuICAgIGNhc2UgJ09yZGVyJzpcbiAgICAgIHJldHVybiAnb3JkZXJJZCc7XG4gICAgY2FzZSAnUXVvdGUnOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ3F1b3RlSWQnO1xuICB9XG59O1xuIl19
@@ -1,2 +0,0 @@
1
- export * from './flow.utils';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Zsb3cudXRpbHMnO1xuIl19
@@ -1,18 +0,0 @@
1
- import { ActivatedRouteSnapshot, Router } from '@angular/router';
2
- import { FlowInfoService, FlowStateService, QuoteDraftService } from '@veloceapps/sdk/core';
3
- import { Observable } from 'rxjs';
4
- import { FlowRouterService } from '../services/flow-router.service';
5
- import * as i0 from "@angular/core";
6
- export declare class QuoteResolver {
7
- private router;
8
- private quoteDraftService;
9
- private routerService;
10
- private flowInfoService;
11
- private flowStateService;
12
- constructor(router: Router, quoteDraftService: QuoteDraftService, routerService: FlowRouterService, flowInfoService: FlowInfoService, flowStateService: FlowStateService);
13
- resolve(route: ActivatedRouteSnapshot): Observable<boolean>;
14
- private checkDynamicNavigation$;
15
- private getNavigateTo;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<QuoteResolver, never>;
17
- static ɵprov: i0.ɵɵInjectableDeclaration<QuoteResolver>;
18
- }
@@ -1,5 +0,0 @@
1
- import { ConfigurationContextMode } from '@veloceapps/core';
2
- export interface ContextRouteData {
3
- mode: ConfigurationContextMode;
4
- headerId: string;
5
- }
@@ -1,5 +0,0 @@
1
- export interface Metric {
2
- key: string;
3
- name: string;
4
- visible: boolean;
5
- }