@veloceapps/sdk 8.0.0-77 → 8.0.0-79
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +0 -1
- package/cms/types/common.types.d.ts +0 -1
- package/esm2020/cms/types/common.types.mjs +1 -1
- package/esm2020/cms/utils/ui-builder-layout.utils.mjs +1 -3
- package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +5 -5
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +3 -3
- package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +6 -6
- package/esm2020/src/flow-routing.module.mjs +1 -18
- package/esm2020/src/pages/product/product.component.mjs +2 -3
- package/esm2020/src/pages/remote/remote.component.mjs +5 -6
- package/fesm2015/veloceapps-sdk-cms.mjs +2 -2
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +16 -15
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +8 -160
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +0 -2
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +9 -9
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +6 -161
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +1 -9
- package/src/flow-routing.module.d.ts +6 -7
- package/esm2020/runtime/components/component-preview/component-preview.component.mjs +0 -125
- package/esm2020/runtime/components/index.mjs +0 -5
- package/esm2020/runtime/components/section-renderer/section-renderer.component.mjs +0 -67
- package/esm2020/runtime/components/ui-runtime/runtime.component.mjs +0 -440
- package/esm2020/runtime/components/ui-runtime-preview/runtime-preview.component.mjs +0 -108
- package/esm2020/runtime/execution/components/children-placeholder/children-placeholder.component.mjs +0 -60
- package/esm2020/runtime/execution/components/context-provider/context-provider.component.mjs +0 -39
- package/esm2020/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.mjs +0 -67
- package/esm2020/runtime/execution/components/federated/federated.component.mjs +0 -74
- package/esm2020/runtime/execution/components/velo-attribute/velo-attribute.component.mjs +0 -60
- package/esm2020/runtime/execution/components/velo-multiselect/velo-multiselect.component.mjs +0 -130
- package/esm2020/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.mjs +0 -72
- package/esm2020/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.mjs +0 -97
- package/esm2020/runtime/execution/components/velo-port-radio/velo-port-radio.component.mjs +0 -142
- package/esm2020/runtime/execution/components/velo-type/velo-type.component.mjs +0 -119
- package/esm2020/runtime/execution/directives/section-script.directive.mjs +0 -247
- package/esm2020/runtime/execution/directives/sf-query.directive.mjs +0 -35
- package/esm2020/runtime/execution/directives/velo-attribute.directive.mjs +0 -88
- package/esm2020/runtime/execution/directives/velo-port.directive.mjs +0 -376
- package/esm2020/runtime/execution/directives/vl-approval.directive.mjs +0 -23
- package/esm2020/runtime/execution/directives/vl-document-attachments.directive.mjs +0 -36
- package/esm2020/runtime/execution/directives/vl-document-templates.directive.mjs +0 -60
- package/esm2020/runtime/execution/directives/vl-quote.directive.mjs +0 -42
- package/esm2020/runtime/execution/directives/vl-ramp.directive.mjs +0 -55
- package/esm2020/runtime/execution/runtime-execution.module.mjs +0 -133
- package/esm2020/runtime/execution/utils/federated.util.mjs +0 -32
- package/esm2020/runtime/index.mjs +0 -5
- package/esm2020/runtime/runtime.module.mjs +0 -74
- package/esm2020/runtime/services/cart.service.mjs +0 -29
- package/esm2020/runtime/services/collapsible-state.service.mjs +0 -34
- package/esm2020/runtime/services/configuration.service.mjs +0 -119
- package/esm2020/runtime/services/current-state.service.mjs +0 -17
- package/esm2020/runtime/services/form-scope.service.mjs +0 -30
- package/esm2020/runtime/services/index.mjs +0 -4
- package/esm2020/runtime/services/product-model-cache.service.mjs +0 -31
- package/esm2020/runtime/services/runtime-context.service.mjs +0 -60
- package/esm2020/runtime/services/runtime-form.service.mjs +0 -219
- package/esm2020/runtime/services/runtime.service.mjs +0 -115
- package/esm2020/runtime/services/section-helper.service.mjs +0 -27
- package/esm2020/runtime/services/section-scope.service.mjs +0 -36
- package/esm2020/runtime/services/section-store.service.mjs +0 -22
- package/esm2020/runtime/services/section.service.mjs +0 -117
- package/esm2020/runtime/types/bound-data.types.mjs +0 -7
- package/esm2020/runtime/types/index.mjs +0 -3
- package/esm2020/runtime/types/quote-states.types.mjs +0 -2
- package/esm2020/runtime/types/runtime.types.mjs +0 -2
- package/esm2020/runtime/types/script-registry.types.mjs +0 -51
- package/esm2020/runtime/utils/line-item.util.mjs +0 -270
- package/esm2020/runtime/utils/section.utils.mjs +0 -26
- package/esm2020/runtime/utils/sections-binder.helper.mjs +0 -105
- package/esm2020/runtime/veloceapps-sdk-runtime.mjs +0 -5
- package/esm2020/src/pages/legacy-product/legacy-product.component.mjs +0 -137
- package/esm2020/src/pages/legacy-product/legacy-product.module.mjs +0 -19
- package/fesm2015/veloceapps-sdk-runtime.mjs +0 -3770
- package/fesm2015/veloceapps-sdk-runtime.mjs.map +0 -1
- package/fesm2020/veloceapps-sdk-runtime.mjs +0 -3767
- package/fesm2020/veloceapps-sdk-runtime.mjs.map +0 -1
- package/runtime/README.md +0 -5
- package/runtime/components/component-preview/component-preview.component.d.ts +0 -27
- package/runtime/components/index.d.ts +0 -4
- package/runtime/components/section-renderer/section-renderer.component.d.ts +0 -25
- package/runtime/components/ui-runtime/runtime.component.d.ts +0 -53
- package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +0 -27
- package/runtime/execution/components/children-placeholder/children-placeholder.component.d.ts +0 -30
- package/runtime/execution/components/context-provider/context-provider.component.d.ts +0 -14
- package/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.d.ts +0 -25
- package/runtime/execution/components/federated/federated.component.d.ts +0 -36
- package/runtime/execution/components/velo-attribute/velo-attribute.component.d.ts +0 -19
- package/runtime/execution/components/velo-multiselect/velo-multiselect.component.d.ts +0 -35
- package/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.d.ts +0 -22
- package/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.d.ts +0 -22
- package/runtime/execution/components/velo-port-radio/velo-port-radio.component.d.ts +0 -28
- package/runtime/execution/components/velo-type/velo-type.component.d.ts +0 -31
- package/runtime/execution/directives/section-script.directive.d.ts +0 -59
- package/runtime/execution/directives/sf-query.directive.d.ts +0 -15
- package/runtime/execution/directives/velo-attribute.directive.d.ts +0 -26
- package/runtime/execution/directives/velo-port.directive.d.ts +0 -74
- package/runtime/execution/directives/vl-approval.directive.d.ts +0 -10
- package/runtime/execution/directives/vl-document-attachments.directive.d.ts +0 -15
- package/runtime/execution/directives/vl-document-templates.directive.d.ts +0 -33
- package/runtime/execution/directives/vl-quote.directive.d.ts +0 -14
- package/runtime/execution/directives/vl-ramp.directive.d.ts +0 -15
- package/runtime/execution/runtime-execution.module.d.ts +0 -25
- package/runtime/execution/utils/federated.util.d.ts +0 -6
- package/runtime/index.d.ts +0 -4
- package/runtime/runtime.module.d.ts +0 -16
- package/runtime/services/cart.service.d.ts +0 -15
- package/runtime/services/collapsible-state.service.d.ts +0 -15
- package/runtime/services/configuration.service.d.ts +0 -20
- package/runtime/services/current-state.service.d.ts +0 -8
- package/runtime/services/form-scope.service.d.ts +0 -20
- package/runtime/services/index.d.ts +0 -3
- package/runtime/services/product-model-cache.service.d.ts +0 -14
- package/runtime/services/runtime-context.service.d.ts +0 -16
- package/runtime/services/runtime-form.service.d.ts +0 -24
- package/runtime/services/runtime.service.d.ts +0 -44
- package/runtime/services/section-helper.service.d.ts +0 -8
- package/runtime/services/section-scope.service.d.ts +0 -14
- package/runtime/services/section-store.service.d.ts +0 -11
- package/runtime/services/section.service.d.ts +0 -30
- package/runtime/types/bound-data.types.d.ts +0 -13
- package/runtime/types/index.d.ts +0 -2
- package/runtime/types/quote-states.types.d.ts +0 -6
- package/runtime/types/runtime.types.d.ts +0 -19
- package/runtime/types/script-registry.types.d.ts +0 -13
- package/runtime/utils/line-item.util.d.ts +0 -34
- package/runtime/utils/section.utils.d.ts +0 -2
- package/runtime/utils/sections-binder.helper.d.ts +0 -16
- package/src/pages/legacy-product/legacy-product.component.d.ts +0 -37
- package/src/pages/legacy-product/legacy-product.module.d.ts +0 -9
@@ -1,105 +0,0 @@
|
|
1
|
-
import { EntityUtil, SectionPathUtil, UUID } from '@veloceapps/core';
|
2
|
-
import { BoundDataType } from '../types/bound-data.types';
|
3
|
-
import { LineItemUtil } from './line-item.util';
|
4
|
-
export class SectionsBinderHelper {
|
5
|
-
static setLineItemsPath(runtimeModel, rootLineItem, sections, sourceSections, filterFn, pricingEnabled) {
|
6
|
-
const filtered = sections.filter(filterFn);
|
7
|
-
filtered.forEach(section => {
|
8
|
-
const path = section.boundData.path;
|
9
|
-
let foundLineItems;
|
10
|
-
if (path.relative) {
|
11
|
-
foundLineItems = LineItemUtil.findLineItemsByType(runtimeModel, rootLineItem, path.types[0]);
|
12
|
-
}
|
13
|
-
else {
|
14
|
-
const remainder = rootLineItem.path ? SectionPathUtil.cut(runtimeModel, path, rootLineItem.path) : undefined;
|
15
|
-
if (!remainder) {
|
16
|
-
return [];
|
17
|
-
}
|
18
|
-
foundLineItems = LineItemUtil.findLineItemsByPath(runtimeModel, rootLineItem, remainder);
|
19
|
-
}
|
20
|
-
if (section.boundData.entityType === BoundDataType[BoundDataType.TYPE]) {
|
21
|
-
SectionsBinderHelper.bindMatchingLineItems(runtimeModel, foundLineItems, section, sections, sourceSections, pricingEnabled);
|
22
|
-
}
|
23
|
-
else if (section.boundData.entityType === BoundDataType[BoundDataType.ATTRIBUTE]) {
|
24
|
-
foundLineItems = foundLineItems.filter(item => item.attributes &&
|
25
|
-
item.attributes.findIndex(a => a.name.toLowerCase() === section.boundData.name.toLowerCase()) !== -1);
|
26
|
-
foundLineItems.forEach(lineItem => {
|
27
|
-
SectionsBinderHelper.bindLineItem(section, sections, sourceSections, lineItem, pricingEnabled);
|
28
|
-
});
|
29
|
-
}
|
30
|
-
else if (section.boundData.entityType === BoundDataType[BoundDataType.PORT]) {
|
31
|
-
foundLineItems = foundLineItems.filter(item => item.portDomains && item.portDomains[section.boundData.name]);
|
32
|
-
SectionsBinderHelper.bindMatchingLineItems(runtimeModel, foundLineItems, section, sections, sourceSections, pricingEnabled);
|
33
|
-
}
|
34
|
-
return;
|
35
|
-
});
|
36
|
-
return sections;
|
37
|
-
}
|
38
|
-
static isAddAllowed(model, portName, quantityToAdd = 1) {
|
39
|
-
const quantity = this.getQuantity(model, portName);
|
40
|
-
return quantity + quantityToAdd <= +this.getPortMax(model, portName);
|
41
|
-
}
|
42
|
-
static isRemoveAllowed(model, portName, quantityToRemove = 1) {
|
43
|
-
const quantity = this.getQuantity(model, portName);
|
44
|
-
return quantity - quantityToRemove >= +this.getPortMin(model, portName);
|
45
|
-
}
|
46
|
-
static getMaxAllowed(lineItem, portName) {
|
47
|
-
return +this.getPortMax(lineItem, portName) - this.getQuantity(lineItem, portName);
|
48
|
-
}
|
49
|
-
static getQuantityGroupByValue(model, portName) {
|
50
|
-
const quantities = {};
|
51
|
-
if (model && portName) {
|
52
|
-
model.lineItems
|
53
|
-
.filter(li => li.port === portName)
|
54
|
-
.forEach(li => {
|
55
|
-
let quantity = (EntityUtil.isPresent(li.qty) && li.qty) || 1;
|
56
|
-
if (EntityUtil.isPresent(quantities[li.type])) {
|
57
|
-
quantity += quantities[li.type];
|
58
|
-
}
|
59
|
-
quantities[li.type] = quantity;
|
60
|
-
});
|
61
|
-
}
|
62
|
-
return quantities;
|
63
|
-
}
|
64
|
-
static bindMatchingLineItems(runtimeModel, foundLineItems, section, sections, sourceSections, pricingEnabled) {
|
65
|
-
foundLineItems.forEach(lineItem => {
|
66
|
-
const boundSection = SectionsBinderHelper.bindLineItem(section, sections, sourceSections, lineItem, pricingEnabled);
|
67
|
-
SectionsBinderHelper.setLineItemsPath(runtimeModel, lineItem, sections, sourceSections, (sec) => {
|
68
|
-
return sec.boundData && sec.parentId === boundSection.id;
|
69
|
-
}, pricingEnabled);
|
70
|
-
});
|
71
|
-
}
|
72
|
-
static bindLineItem(section, sections, sourceSections, lineItem, pricingEnabled) {
|
73
|
-
const boundSection = section.model ? SectionsBinderHelper.doClone(section, sections, sourceSections) : section;
|
74
|
-
boundSection.model = lineItem;
|
75
|
-
boundSection.pricingEnabled = pricingEnabled;
|
76
|
-
return boundSection;
|
77
|
-
}
|
78
|
-
static doClone(source, sections, sourceSections, parent) {
|
79
|
-
const sourceClass = sourceSections.find(s => s.classId === source.classId);
|
80
|
-
const clone = EntityUtil.clone(sourceClass);
|
81
|
-
clone.id = UUID.UUID();
|
82
|
-
clone.parentId = parent ? parent.id : source.parentId;
|
83
|
-
sections.splice(sections.findIndex(s => s.id === source.id) + 1, 0, clone);
|
84
|
-
sourceSections
|
85
|
-
.filter(s => s.parentId === sourceClass.id)
|
86
|
-
.forEach(s => SectionsBinderHelper.doClone(s, sections, sourceSections, clone));
|
87
|
-
return clone;
|
88
|
-
}
|
89
|
-
static getQuantity(model, portName) {
|
90
|
-
let quantity = 0;
|
91
|
-
model.lineItems
|
92
|
-
.filter(li => li.port === portName)
|
93
|
-
.forEach(li => {
|
94
|
-
quantity += li.qty;
|
95
|
-
});
|
96
|
-
return quantity;
|
97
|
-
}
|
98
|
-
static getPortMax(model, portName) {
|
99
|
-
return model.portDomains[portName].maxCard;
|
100
|
-
}
|
101
|
-
static getPortMin(model, portName) {
|
102
|
-
return model.portDomains[portName].minCard;
|
103
|
-
}
|
104
|
-
}
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbnMtYmluZGVyLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvdXRpbHMvc2VjdGlvbnMtYmluZGVyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFnRCxlQUFlLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sb0JBQW9CO0lBQ3hCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDNUIsWUFBMEIsRUFDMUIsWUFBc0IsRUFDdEIsUUFBbUIsRUFDbkIsY0FBeUIsRUFDekIsUUFBYSxFQUNiLGNBQXVCO1FBRXZCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0MsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QixNQUFNLElBQUksR0FBZ0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDakQsSUFBSSxjQUEwQixDQUFDO1lBQy9CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsY0FBYyxHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM5RjtpQkFBTTtnQkFDTCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQzdHLElBQUksQ0FBQyxT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LENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFdBQVcsQ0FBQyxFQUFFLENBQUM7YUFDMUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFbEYsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFlLEVBQUUsUUFBZ0I7UUFDMUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRWpCLEtBQUssQ0FBQyxTQUFTO2FBQ1osTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7YUFDbEMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ1osUUFBUSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFFTCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFlLEVBQUUsUUFBZ0I7UUFDekQsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM3QyxDQUFDO0lBRU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFlLEVBQUUsUUFBZ0I7UUFDekQsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM3QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlVdGlsLCBMaW5lSXRlbSwgUnVudGltZU1vZGVsLCBTZWN0aW9uLCBTZWN0aW9uUGF0aCwgU2VjdGlvblBhdGhVdGlsLCBVVUlEIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBCb3VuZERhdGFUeXBlIH0gZnJvbSAnLi4vdHlwZXMvYm91bmQtZGF0YS50eXBlcyc7XG5pbXBvcnQgeyBMaW5lSXRlbVV0aWwgfSBmcm9tICcuL2xpbmUtaXRlbS51dGlsJztcblxuZXhwb3J0IGNsYXNzIFNlY3Rpb25zQmluZGVySGVscGVyIHtcbiAgcHVibGljIHN0YXRpYyBzZXRMaW5lSXRlbXNQYXRoKFxuICAgIHJ1bnRpbWVNb2RlbDogUnVudGltZU1vZGVsLFxuICAgIHJvb3RMaW5lSXRlbTogTGluZUl0ZW0sXG4gICAgc2VjdGlvbnM6IFNlY3Rpb25bXSxcbiAgICBzb3VyY2VTZWN0aW9uczogU2VjdGlvbltdLFxuICAgIGZpbHRlckZuOiBhbnksXG4gICAgcHJpY2luZ0VuYWJsZWQ6IGJvb2xlYW4sXG4gICk6IFNlY3Rpb25bXSB7XG4gICAgY29uc3QgZmlsdGVyZWQgPSBzZWN0aW9ucy5maWx0ZXIoZmlsdGVyRm4pO1xuXG4gICAgZmlsdGVyZWQuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIGNvbnN0IHBhdGg6IFNlY3Rpb25QYXRoID0gc2VjdGlvbi5ib3VuZERhdGEucGF0aDtcbiAgICAgIGxldCBmb3VuZExpbmVJdGVtczogTGluZUl0ZW1bXTtcbiAgICAgIGlmIChwYXRoLnJlbGF0aXZlKSB7XG4gICAgICAgIGZvdW5kTGluZUl0ZW1zID0gTGluZUl0ZW1VdGlsLmZpbmRMaW5lSXRlbXNCeVR5cGUocnVudGltZU1vZGVsLCByb290TGluZUl0ZW0sIHBhdGgudHlwZXNbMF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmVtYWluZGVyID0gcm9vdExpbmVJdGVtLnBhdGggPyBTZWN0aW9uUGF0aFV0aWwuY3V0KHJ1bnRpbWVNb2RlbCwgcGF0aCwgcm9vdExpbmVJdGVtLnBhdGgpIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAoIXJlbWFpbmRlcikge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmb3VuZExpbmVJdGVtcyA9IExpbmVJdGVtVXRpbC5maW5kTGluZUl0ZW1zQnlQYXRoKHJ1bnRpbWVNb2RlbCwgcm9vdExpbmVJdGVtLCByZW1haW5kZXIpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2VjdGlvbi5ib3VuZERhdGEuZW50aXR5VHlwZSA9PT0gQm91bmREYXRhVHlwZVtCb3VuZERhdGFUeXBlLlRZUEVdKSB7XG4gICAgICAgIFNlY3Rpb25zQmluZGVySGVscGVyLmJpbmRNYXRjaGluZ0xpbmVJdGVtcyhcbiAgICAgICAgICBydW50aW1lTW9kZWwsXG4gICAgICAgICAgZm91bmRMaW5lSXRlbXMsXG4gICAgICAgICAgc2VjdGlvbixcbiAgICAgICAgICBzZWN0aW9ucyxcbiAgICAgICAgICBzb3VyY2VTZWN0aW9ucyxcbiAgICAgICAgICBwcmljaW5nRW5hYmxlZCxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoc2VjdGlvbi5ib3VuZERhdGEuZW50aXR5VHlwZSA9PT0gQm91bmREYXRhVHlwZVtCb3VuZERhdGFUeXBlLkFUVFJJQlVURV0pIHtcbiAgICAgICAgZm91bmRMaW5lSXRlbXMgPSBmb3VuZExpbmVJdGVtcy5maWx0ZXIoXG4gICAgICAgICAgaXRlbSA9PlxuICAgICAgICAgICAgaXRlbS5hdHRyaWJ1dGVzICYmXG4gICAgICAgICAgICBpdGVtLmF0dHJpYnV0ZXMuZmluZEluZGV4KGEgPT4gYS5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IHNlY3Rpb24uYm91bmREYXRhLm5hbWUudG9Mb3dlckNhc2UoKSkgIT09IC0xLFxuICAgICAgICApO1xuXG4gICAgICAgIGZvdW5kTGluZUl0ZW1zLmZvckVhY2gobGluZUl0ZW0gPT4ge1xuICAgICAgICAgIFNlY3Rpb25zQmluZGVySGVscGVyLmJpbmRMaW5lSXRlbShzZWN0aW9uLCBzZWN0aW9ucywgc291cmNlU2VjdGlvbnMsIGxpbmVJdGVtLCBwcmljaW5nRW5hYmxlZCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChzZWN0aW9uLmJvdW5kRGF0YS5lbnRpdHlUeXBlID09PSBCb3VuZERhdGFUeXBlW0JvdW5kRGF0YVR5cGUuUE9SVF0pIHtcbiAgICAgICAgZm91bmRMaW5lSXRlbXMgPSBmb3VuZExpbmVJdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLnBvcnREb21haW5zICYmIGl0ZW0ucG9ydERvbWFpbnNbc2VjdGlvbi5ib3VuZERhdGEubmFtZV0pO1xuXG4gICAgICAgIFNlY3Rpb25zQmluZGVySGVscGVyLmJpbmRNYXRjaGluZ0xpbmVJdGVtcyhcbiAgICAgICAgICBydW50aW1lTW9kZWwsXG4gICAgICAgICAgZm91bmRMaW5lSXRlbXMsXG4gICAgICAgICAgc2VjdGlvbixcbiAgICAgICAgICBzZWN0aW9ucyxcbiAgICAgICAgICBzb3VyY2VTZWN0aW9ucyxcbiAgICAgICAgICBwcmljaW5nRW5hYmxlZCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNlY3Rpb25zO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc0FkZEFsbG93ZWQobW9kZWw6IExpbmVJdGVtLCBwb3J0TmFtZTogc3RyaW5nLCBxdWFudGl0eVRvQWRkOiBudW1iZXIgPSAxKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcXVhbnRpdHkgPSB0aGlzLmdldFF1YW50aXR5KG1vZGVsLCBwb3J0TmFtZSk7XG5cbiAgICByZXR1cm4gcXVhbnRpdHkgKyBxdWFudGl0eVRvQWRkIDw9ICt0aGlzLmdldFBvcnRNYXgobW9kZWwsIHBvcnROYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNSZW1vdmVBbGxvd2VkKG1vZGVsOiBMaW5lSXRlbSwgcG9ydE5hbWU6IHN0cmluZywgcXVhbnRpdHlUb1JlbW92ZTogbnVtYmVyID0gMSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHF1YW50aXR5ID0gdGhpcy5nZXRRdWFudGl0eShtb2RlbCwgcG9ydE5hbWUpO1xuXG4gICAgcmV0dXJuIHF1YW50aXR5IC0gcXVhbnRpdHlUb1JlbW92ZSA+PSArdGhpcy5nZXRQb3J0TWluKG1vZGVsLCBwb3J0TmFtZSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldE1heEFsbG93ZWQobGluZUl0ZW06IExpbmVJdGVtLCBwb3J0TmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gK3RoaXMuZ2V0UG9ydE1heChsaW5lSXRlbSwgcG9ydE5hbWUpIC0gdGhpcy5nZXRRdWFudGl0eShsaW5lSXRlbSwgcG9ydE5hbWUpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRRdWFudGl0eUdyb3VwQnlWYWx1ZShtb2RlbDogTGluZUl0ZW0sIHBvcnROYW1lOiBzdHJpbmcpOiB7IFtpbmRleDogc3RyaW5nXTogbnVtYmVyIH0ge1xuICAgIGNvbnN0IHF1YW50aXRpZXM6IHsgW2luZGV4OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuXG4gICAgaWYgKG1vZGVsICYmIHBvcnROYW1lKSB7XG4gICAgICBtb2RlbC5saW5lSXRlbXNcbiAgICAgICAgLmZpbHRlcihsaSA9PiBsaS5wb3J0ID09PSBwb3J0TmFtZSlcbiAgICAgICAgLmZvckVhY2gobGkgPT4ge1xuICAgICAgICAgIGxldCBxdWFudGl0eSA9IChFbnRpdHlVdGlsLmlzUHJlc2VudChsaS5xdHkpICYmIGxpLnF0eSkgfHwgMTtcblxuICAgICAgICAgIGlmIChFbnRpdHlVdGlsLmlzUHJlc2VudChxdWFudGl0aWVzW2xpLnR5cGVdKSkge1xuICAgICAgICAgICAgcXVhbnRpdHkgKz0gcXVhbnRpdGllc1tsaS50eXBlXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBxdWFudGl0aWVzW2xpLnR5cGVdID0gcXVhbnRpdHk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBxdWFudGl0aWVzO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYmluZE1hdGNoaW5nTGluZUl0ZW1zKFxuICAgIHJ1bnRpbWVNb2RlbDogUnVudGltZU1vZGVsLFxuICAgIGZvdW5kTGluZUl0ZW1zOiBMaW5lSXRlbVtdLFxuICAgIHNlY3Rpb246IFNlY3Rpb24sXG4gICAgc2VjdGlvbnM6IFNlY3Rpb25bXSxcbiAgICBzb3VyY2VTZWN0aW9uczogU2VjdGlvbltdLFxuICAgIHByaWNpbmdFbmFibGVkOiBib29sZWFuLFxuICApOiB2b2lkIHtcbiAgICBmb3VuZExpbmVJdGVtcy5mb3JFYWNoKGxpbmVJdGVtID0+IHtcbiAgICAgIGNvbnN0IGJvdW5kU2VjdGlvbiA9IFNlY3Rpb25zQmluZGVySGVscGVyLmJpbmRMaW5lSXRlbShcbiAgICAgICAgc2VjdGlvbixcbiAgICAgICAgc2VjdGlvbnMsXG4gICAgICAgIHNvdXJjZVNlY3Rpb25zLFxuICAgICAgICBsaW5lSXRlbSxcbiAgICAgICAgcHJpY2luZ0VuYWJsZWQsXG4gICAgICApO1xuXG4gICAgICBTZWN0aW9uc0JpbmRlckhlbHBlci5zZXRMaW5lSXRlbXNQYXRoKFxuICAgICAgICBydW50aW1lTW9kZWwsXG4gICAgICAgIGxpbmVJdGVtLFxuICAgICAgICBzZWN0aW9ucyxcbiAgICAgICAgc291cmNlU2VjdGlvbnMsXG4gICAgICAgIChzZWM6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBzZWMuYm91bmREYXRhICYmIHNlYy5wYXJlbnRJZCA9PT0gYm91bmRTZWN0aW9uLmlkO1xuICAgICAgICB9LFxuICAgICAgICBwcmljaW5nRW5hYmxlZCxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBiaW5kTGluZUl0ZW0oXG4gICAgc2VjdGlvbjogU2VjdGlvbixcbiAgICBzZWN0aW9uczogU2VjdGlvbltdLFxuICAgIHNvdXJjZVNlY3Rpb25zOiBTZWN0aW9uW10sXG4gICAgbGluZUl0ZW06IExpbmVJdGVtLFxuICAgIHByaWNpbmdFbmFibGVkOiBib29sZWFuLFxuICApOiBTZWN0aW9uIHtcbiAgICBjb25zdCBib3VuZFNlY3Rpb24gPSBzZWN0aW9uLm1vZGVsID8gU2VjdGlvbnNCaW5kZXJIZWxwZXIuZG9DbG9uZShzZWN0aW9uLCBzZWN0aW9ucywgc291cmNlU2VjdGlvbnMpIDogc2VjdGlvbjtcblxuICAgIGJvdW5kU2VjdGlvbi5tb2RlbCA9IGxpbmVJdGVtO1xuICAgIGJvdW5kU2VjdGlvbi5wcmljaW5nRW5hYmxlZCA9IHByaWNpbmdFbmFibGVkO1xuXG4gICAgcmV0dXJuIGJvdW5kU2VjdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGRvQ2xvbmUoc291cmNlOiBTZWN0aW9uLCBzZWN0aW9uczogU2VjdGlvbltdLCBzb3VyY2VTZWN0aW9uczogU2VjdGlvbltdLCBwYXJlbnQ/OiBTZWN0aW9uKTogU2VjdGlvbiB7XG4gICAgY29uc3Qgc291cmNlQ2xhc3MgPSBzb3VyY2VTZWN0aW9ucy5maW5kKHMgPT4gcy5jbGFzc0lkID09PSBzb3VyY2UuY2xhc3NJZCkgYXMgU2VjdGlvbjtcblxuICAgIGNvbnN0IGNsb25lID0gRW50aXR5VXRpbC5jbG9uZShzb3VyY2VDbGFzcyk7XG5cbiAgICBjbG9uZS5pZCA9IFVVSUQuVVVJRCgpO1xuICAgIGNsb25lLnBhcmVudElkID0gcGFyZW50ID8gcGFyZW50LmlkIDogc291cmNlLnBhcmVudElkO1xuXG4gICAgc2VjdGlvbnMuc3BsaWNlKHNlY3Rpb25zLmZpbmRJbmRleChzID0+IHMuaWQgPT09IHNvdXJjZS5pZCkgKyAxLCAwLCBjbG9uZSk7XG4gICAgc291cmNlU2VjdGlvbnNcbiAgICAgIC5maWx0ZXIocyA9PiBzLnBhcmVudElkID09PSBzb3VyY2VDbGFzcy5pZClcbiAgICAgIC5mb3JFYWNoKHMgPT4gU2VjdGlvbnNCaW5kZXJIZWxwZXIuZG9DbG9uZShzLCBzZWN0aW9ucywgc291cmNlU2VjdGlvbnMsIGNsb25lKSk7XG5cbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRRdWFudGl0eShtb2RlbDogTGluZUl0ZW0sIHBvcnROYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGxldCBxdWFudGl0eSA9IDA7XG5cbiAgICBtb2RlbC5saW5lSXRlbXNcbiAgICAgIC5maWx0ZXIobGkgPT4gbGkucG9ydCA9PT0gcG9ydE5hbWUpXG4gICAgICAuZm9yRWFjaChsaSA9PiB7XG4gICAgICAgIHF1YW50aXR5ICs9IGxpLnF0eTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHF1YW50aXR5O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0UG9ydE1heChtb2RlbDogTGluZUl0ZW0sIHBvcnROYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiBtb2RlbC5wb3J0RG9tYWluc1twb3J0TmFtZV0ubWF4Q2FyZDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldFBvcnRNaW4obW9kZWw6IExpbmVJdGVtLCBwb3J0TmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbW9kZWwucG9ydERvbWFpbnNbcG9ydE5hbWVdLm1pbkNhcmQ7XG4gIH1cbn1cbiJdfQ==
|
@@ -1,5 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Generated bundle index. Do not edit.
|
3
|
-
*/
|
4
|
-
export * from './index';
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVsb2NlYXBwcy1zZGstcnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvdmVsb2NlYXBwcy1zZGstcnVudGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
@@ -1,137 +0,0 @@
|
|
1
|
-
import { Component, Inject, Optional } from '@angular/core';
|
2
|
-
import { ActivatedRoute } from '@angular/router';
|
3
|
-
import { QuoteApiService } from '@veloceapps/api';
|
4
|
-
import { EntityUtil } from '@veloceapps/core';
|
5
|
-
import { ContextService, QuoteDraftService, RuntimeOperation } from '@veloceapps/sdk/core';
|
6
|
-
import { CurrentStateService, RuntimeContextService, RuntimeService, } from '@veloceapps/sdk/runtime';
|
7
|
-
import { Subject, of } from 'rxjs';
|
8
|
-
import { first, map, switchMap, take, takeUntil } from 'rxjs/operators';
|
9
|
-
import { FLOW_CUSTOMIZATION } from '../../types';
|
10
|
-
import * as i0 from "@angular/core";
|
11
|
-
import * as i1 from "@angular/router";
|
12
|
-
import * as i2 from "@veloceapps/sdk/core";
|
13
|
-
import * as i3 from "@veloceapps/api";
|
14
|
-
import * as i4 from "@veloceapps/sdk/runtime";
|
15
|
-
export class LegacyProductComponent {
|
16
|
-
constructor(route, quoteDraftService, quoteApiService, contextService, runtimeContextService, runtimeService, currentStateService, customizationService) {
|
17
|
-
this.route = route;
|
18
|
-
this.quoteDraftService = quoteDraftService;
|
19
|
-
this.quoteApiService = quoteApiService;
|
20
|
-
this.contextService = contextService;
|
21
|
-
this.runtimeContextService = runtimeContextService;
|
22
|
-
this.runtimeService = runtimeService;
|
23
|
-
this.currentStateService = currentStateService;
|
24
|
-
this.customizationService = customizationService;
|
25
|
-
this.destroyed$ = new Subject();
|
26
|
-
}
|
27
|
-
ngOnInit() {
|
28
|
-
this.quoteDraftService.quoteDraft$
|
29
|
-
.pipe(first(), takeUntil(this.destroyed$))
|
30
|
-
.subscribe(quote => this.init(quote, this.route.snapshot.queryParams));
|
31
|
-
this.runtimeService.onSolutionStopEvent.pipe(take(1)).subscribe(lineItem => this.onSolutionStop(lineItem));
|
32
|
-
this.runtimeService.onSolutionReadyEvent.pipe(take(1)).subscribe(event => this.onSolutionReady(event));
|
33
|
-
this.runtimeService.onSolutionCancelEvent.pipe(take(1)).subscribe(() => this.onSolutionCancel());
|
34
|
-
}
|
35
|
-
ngOnDestroy() {
|
36
|
-
this.destroyed$.next();
|
37
|
-
this.destroyed$.complete();
|
38
|
-
}
|
39
|
-
onSolutionReady(lineItem) {
|
40
|
-
lineItem.actionCode = lineItem.actionCode ?? 'ADD';
|
41
|
-
}
|
42
|
-
onSolutionCancel() {
|
43
|
-
this.quoteDraftService.quoteDraft$.pipe(first(), takeUntil(this.destroyed$)).subscribe(quote => {
|
44
|
-
window['VELO_BACK_FN'].apply(null, [quote.quoteId]);
|
45
|
-
});
|
46
|
-
}
|
47
|
-
onSolutionUpdated(lineItem) {
|
48
|
-
const states = {
|
49
|
-
configurableRamp: lineItem,
|
50
|
-
currentState: this.currentStateService.currentState,
|
51
|
-
asset: this.getAsset(lineItem),
|
52
|
-
};
|
53
|
-
this.runtimeService.updateRuntime(states);
|
54
|
-
}
|
55
|
-
onSolutionStop(lineItem) {
|
56
|
-
this.quoteDraftService.quoteDraft$.pipe(first(), takeUntil(this.destroyed$)).subscribe(quote => {
|
57
|
-
const quoteToUpsert = {
|
58
|
-
...quote,
|
59
|
-
context: this.contextService.resolve(),
|
60
|
-
currentState: [...(this.currentStateService.currentState || []).filter(li => li.id !== lineItem.id), lineItem],
|
61
|
-
};
|
62
|
-
this.quoteApiService
|
63
|
-
.upsertQuote(quoteToUpsert)
|
64
|
-
.pipe(take(1))
|
65
|
-
.subscribe(quote => {
|
66
|
-
window['VELO_BACK_FN'].apply(null, [quote.quoteId]);
|
67
|
-
});
|
68
|
-
});
|
69
|
-
}
|
70
|
-
init(quote, queryParams) {
|
71
|
-
const productId = queryParams['productId'];
|
72
|
-
const lineItemId = this.getLineItemId(quote, queryParams);
|
73
|
-
this.assets = quote.initialState;
|
74
|
-
lineItemId && quote.currentState ? this.reConfigure(lineItemId, quote.currentState) : this.configure(productId);
|
75
|
-
}
|
76
|
-
getLineItemId(quote, queryParams) {
|
77
|
-
if (EntityUtil.isPresent(queryParams['lineItemId'])) {
|
78
|
-
return queryParams['lineItemId'];
|
79
|
-
}
|
80
|
-
return quote.currentState
|
81
|
-
.filter(lineItem => lineItem.productId === queryParams['productId'])
|
82
|
-
.map(lineItem => lineItem.id)
|
83
|
-
.find(id => id);
|
84
|
-
}
|
85
|
-
configure(productId) {
|
86
|
-
const runtimeContext = this.getRuntimeContext(productId, '', RuntimeOperation.INIT);
|
87
|
-
this.startRuntime({}, runtimeContext);
|
88
|
-
}
|
89
|
-
reConfigure(lineItemId, currentState) {
|
90
|
-
const currentStateItem = EntityUtil.findById(lineItemId, currentState);
|
91
|
-
const runtimeContext = this.getRuntimeContext(currentStateItem.productId, currentStateItem.offeringId, RuntimeOperation.UPDATE);
|
92
|
-
const states = {
|
93
|
-
configurableRamp: currentStateItem,
|
94
|
-
currentState,
|
95
|
-
asset: this.getAsset(currentStateItem),
|
96
|
-
};
|
97
|
-
this.currentStateService.update(currentState);
|
98
|
-
this.startRuntime(states, runtimeContext);
|
99
|
-
}
|
100
|
-
getAsset(lineItem) {
|
101
|
-
return this.assets && this.assets.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);
|
102
|
-
}
|
103
|
-
startRuntime(states, runtimeContext$) {
|
104
|
-
runtimeContext$
|
105
|
-
.pipe(take(1), map(runtimeContext => {
|
106
|
-
this.runtimeService.startRuntime(runtimeContext, states);
|
107
|
-
}))
|
108
|
-
.subscribe();
|
109
|
-
}
|
110
|
-
customizeContext(productId, context) {
|
111
|
-
if (!this.customizationService?.getLegacyUiDefinition) {
|
112
|
-
return of(context);
|
113
|
-
}
|
114
|
-
return this.customizationService.getLegacyUiDefinition(productId).pipe(map(uiDefinitionContainer => ({
|
115
|
-
...context,
|
116
|
-
uiDefinitionContainer: uiDefinitionContainer ?? undefined,
|
117
|
-
})));
|
118
|
-
}
|
119
|
-
getRuntimeContext(productId, offeringId, runtimeOperation) {
|
120
|
-
return this.runtimeContextService.getRuntimeContext(productId, offeringId).pipe(map(runtimeContext => {
|
121
|
-
runtimeContext.invocationContext = { runtimeOperation: RuntimeOperation[runtimeOperation] };
|
122
|
-
return runtimeContext;
|
123
|
-
}), switchMap(runtimeContext => this.customizeContext(productId, runtimeContext)));
|
124
|
-
}
|
125
|
-
}
|
126
|
-
LegacyProductComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LegacyProductComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.QuoteDraftService }, { token: i3.QuoteApiService }, { token: i2.ContextService }, { token: i4.RuntimeContextService }, { token: i4.RuntimeService }, { token: i4.CurrentStateService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
127
|
-
LegacyProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: LegacyProductComponent, selector: "ng-component", ngImport: i0, template: "<vl-runtime #runtimeView (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n", styles: [":host{display:block;height:100%}\n"], dependencies: [{ kind: "component", type: i4.RuntimeComponent, selector: "vl-runtime", outputs: ["solutionUpdated"] }] });
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LegacyProductComponent, decorators: [{
|
129
|
-
type: Component,
|
130
|
-
args: [{ template: "<vl-runtime #runtimeView (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n", styles: [":host{display:block;height:100%}\n"] }]
|
131
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.QuoteDraftService }, { type: i3.QuoteApiService }, { type: i2.ContextService }, { type: i4.RuntimeContextService }, { type: i4.RuntimeService }, { type: i4.CurrentStateService }, { type: undefined, decorators: [{
|
132
|
-
type: Optional
|
133
|
-
}, {
|
134
|
-
type: Inject,
|
135
|
-
args: [FLOW_CUSTOMIZATION]
|
136
|
-
}] }]; } });
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LXByb2R1Y3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL3BhZ2VzL2xlZ2FjeS1wcm9kdWN0L2xlZ2FjeS1wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9wYWdlcy9sZWdhY3ktcHJvZHVjdC9sZWdhY3ktcHJvZHVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBa0MsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0YsT0FBTyxFQUNMLG1CQUFtQixFQUduQixxQkFBcUIsRUFDckIsY0FBYyxHQUdmLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFjLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQXFCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFRcEUsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUNVLEtBQXFCLEVBQ3JCLGlCQUFvQyxFQUNwQyxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixxQkFBNEMsRUFDNUMsY0FBOEIsRUFDOUIsbUJBQXdDLEVB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R0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ25CLGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUM1RixPQUFPLGNBQWMsQ0FBQztRQUN4QixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQzlFLENBQUM7SUFDSixDQUFDOzttSEF6SlUsc0JBQXNCLG9QQWFYLGtCQUFrQjt1R0FiN0Isc0JBQXNCLG9EQ3hCbkMsMEZBQ0E7MkZEdUJhLHNCQUFzQjtrQkFKbEMsU0FBUzs7OzBCQWlCTCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUXVvdGVBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IEVudGl0eVV0aWwsIExpbmVJdGVtLCBRdW90ZURyYWZ0LCBWbFdpbmRvdyB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlLCBSdW50aW1lT3BlcmF0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ3VycmVudFN0YXRlU2VydmljZSxcbiAgTGVnYWN5UnVudGltZUNvbnRleHQsXG4gIFF1b3RlU3RhdGVzLFxuICBSdW50aW1lQ29udGV4dFNlcnZpY2UsXG4gIFJ1bnRpbWVTZXJ2aWNlLFxuICBTb2x1dGlvblJlYWR5QXdhcmUsXG4gIFNvbHV0aW9uVXBkYXRlZEF3YXJlLFxufSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvcnVudGltZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGTE9XX0NVU1RPTUlaQVRJT04sIEZsb3dDdXN0b21pemF0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vbGVnYWN5LXByb2R1Y3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sZWdhY3ktcHJvZHVjdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMZWdhY3lQcm9kdWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFNvbHV0aW9uVXBkYXRlZEF3YXJlLCBTb2x1dGlvblJlYWR5QXdhcmUge1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgYXNzZXRzPzogTGluZUl0ZW1bXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlQXBpU2VydmljZTogUXVvdGVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcnVudGltZUNvbnRleHRTZXJ2aWNlOiBSdW50aW1lQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBydW50aW1lU2VydmljZTogUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjdXJyZW50U3RhdGVTZXJ2aWNlOiBDdXJyZW50U3RhdGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRkxPV19DVVNUT01JWkFUSU9OKSBwcml2YXRlIGN1c3RvbWl6YXRpb25TZXJ2aWNlPzogRmxvd0N1c3RvbWl6YXRpb24sXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0JFxuICAgICAgLnBpcGUoZmlyc3QoKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKHF1b3RlID0+IHRoaXMuaW5pdChxdW90ZSwgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcykpO1xuXG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5vblNvbHV0aW9uU3RvcEV2ZW50LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGxpbmVJdGVtID0+IHRoaXMub25Tb2x1dGlvblN0b3AobGluZUl0ZW0pKTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvblJlYWR5RXZlbnQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZXZlbnQgPT4gdGhpcy5vblNvbHV0aW9uUmVhZHkoZXZlbnQpKTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvbkNhbmNlbEV2ZW50LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub25Tb2x1dGlvbkNhbmNlbCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uU29sdXRpb25SZWFkeShsaW5lSXRlbTogTGluZUl0ZW0pOiB2b2lkIHtcbiAgICBsaW5lSXRlbS5hY3Rpb25Db2RlID0gbGluZUl0ZW0uYWN0aW9uQ29kZSA/PyAnQUREJztcbiAgfVxuXG4gIHB1YmxpYyBvblNvbHV0aW9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHF1b3RlID0+IHtcbiAgICAgIHdpbmRvd1snVkVMT19CQUNLX0ZOJ10uYXBwbHkobnVsbCwgW3F1b3RlLnF1b3RlSWRdKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNvbHV0aW9uVXBkYXRlZChsaW5lSXRlbTogTGluZUl0ZW0pOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZXM6IFF1b3RlU3RhdGVzID0ge1xuICAgICAgY29uZmlndXJhYmxlUmFtcDogbGluZUl0ZW0sXG4gICAgICBjdXJyZW50U3RhdGU6IHRoaXMuY3VycmVudFN0YXRlU2VydmljZS5jdXJyZW50U3RhdGUsXG4gICAgICBhc3NldDogdGhpcy5nZXRBc3NldChsaW5lSXRlbSksXG4gICAgfTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2UudXBkYXRlUnVudGltZShzdGF0ZXMpO1xuICB9XG5cbiAgcHVibGljIG9uU29sdXRpb25TdG9wKGxpbmVJdGVtOiBMaW5lSXRlbSk6IHZvaWQge1xuICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHF1b3RlID0+IHtcbiAgICAgIGNvbnN0IHF1b3RlVG9VcHNlcnQ6IFF1b3RlRHJhZnQgPSB7XG4gICAgICAgIC4uLnF1b3RlLFxuICAgICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKSxcbiAgICAgICAgY3VycmVudFN0YXRlOiBbLi4uKHRoaXMuY3VycmVudFN0YXRlU2VydmljZS5jdXJyZW50U3RhdGUgfHwgW10pLmZpbHRlcihsaSA9PiBsaS5pZCAhPT0gbGluZUl0ZW0uaWQpLCBsaW5lSXRlbV0sXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnF1b3RlQXBpU2VydmljZVxuICAgICAgICAudXBzZXJ0UXVvdGUocXVvdGVUb1Vwc2VydClcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZShxdW90ZSA9PiB7XG4gICAgICAgICAgd2luZG93WydWRUxPX0JBQ0tfRk4nXS5hcHBseShudWxsLCBbcXVvdGUucXVvdGVJZF0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdChxdW90ZTogUXVvdGVEcmFmdCwgcXVlcnlQYXJhbXM6IFBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IHByb2R1Y3RJZCA9IHF1ZXJ5UGFyYW1zWydwcm9kdWN0SWQnXTtcbiAgICBjb25zdCBsaW5lSXRlbUlkID0gdGhpcy5nZXRMaW5lSXRlbUlkKHF1b3RlLCBxdWVyeVBhcmFtcyk7XG4gICAgdGhpcy5hc3NldHMgPSBxdW90ZS5pbml0aWFsU3RhdGU7XG5cbiAgICBsaW5lSXRlbUlkICYmIHF1b3RlLmN1cnJlbnRTdGF0ZSA/IHRoaXMucmVDb25maWd1cmUobGluZUl0ZW1JZCwgcXVvdGUuY3VycmVudFN0YXRlKSA6IHRoaXMuY29uZmlndXJlKHByb2R1Y3RJZCk7XG4gIH1cblxuICBwcml2YXRlIGdldExpbmVJdGVtSWQocXVvdGU6IFF1b3RlRHJhZnQsIHF1ZXJ5UGFyYW1zOiBQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChFbnRpdHlVdGlsLmlzUHJlc2VudChxdWVyeVBhcmFtc1snbGluZUl0ZW1JZCddKSkge1xuICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1zWydsaW5lSXRlbUlkJ107XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1b3RlLmN1cnJlbnRTdGF0ZVxuICAgICAgLmZpbHRlcihsaW5lSXRlbSA9PiBsaW5lSXRlbS5wcm9kdWN0SWQgPT09IHF1ZXJ5UGFyYW1zWydwcm9kdWN0SWQnXSlcbiAgICAgIC5tYXAobGluZUl0ZW0gPT4gbGluZUl0ZW0uaWQpXG4gICAgICAuZmluZChpZCA9PiBpZCk7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZShwcm9kdWN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHJ1bnRpbWVDb250ZXh0ID0gdGhpcy5nZXRSdW50aW1lQ29udGV4dChwcm9kdWN0SWQsICcnLCBSdW50aW1lT3BlcmF0aW9uLklOSVQpO1xuXG4gICAgdGhpcy5zdGFydFJ1bnRpbWUoe30sIHJ1bnRpbWVDb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVDb25maWd1cmUobGluZUl0ZW1JZDogc3RyaW5nLCBjdXJyZW50U3RhdGU6IExpbmVJdGVtW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50U3RhdGVJdGVtID0gRW50aXR5VXRpbC5maW5kQnlJZChsaW5lSXRlbUlkLCBjdXJyZW50U3RhdGUpO1xuICAgIGNvbnN0IHJ1bnRpbWVDb250ZXh0ID0gdGhpcy5nZXRSdW50aW1lQ29udGV4dChcbiAgICAgIGN1cnJlbnRTdGF0ZUl0ZW0ucHJvZHVjdElkLFxuICAgICAgY3VycmVudFN0YXRlSXRlbS5vZmZlcmluZ0lkLFxuICAgICAgUnVudGltZU9wZXJhdGlvbi5VUERBVEUsXG4gICAgKTtcblxuICAgIGNvbnN0IHN0YXRlczogUXVvdGVTdGF0ZXMgPSB7XG4gICAgICBjb25maWd1cmFibGVSYW1wOiBjdXJyZW50U3RhdGVJdGVtLFxuICAgICAgY3VycmVudFN0YXRlLFxuICAgICAgYXNzZXQ6IHRoaXMuZ2V0QXNzZXQoY3VycmVudFN0YXRlSXRlbSksXG4gICAgfTtcblxuICAgIHRoaXMuY3VycmVudFN0YXRlU2VydmljZS51cGRhdGUoY3VycmVudFN0YXRlKTtcbiAgICB0aGlzLnN0YXJ0UnVudGltZShzdGF0ZXMsIHJ1bnRpbWVDb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXNzZXQobGluZUl0ZW06IExpbmVJdGVtKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmFzc2V0cyAmJiB0aGlzLmFzc2V0cy5maW5kKGEgPT4gYS5pZCA9PT0gbGluZUl0ZW0ub3Blbk9yZGVyTGluZUl0ZW1JZCB8fCBhLmlkID09PSBsaW5lSXRlbS5hc3NldElkKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRSdW50aW1lKHN0YXRlczogUXVvdGVTdGF0ZXMsIHJ1bnRpbWVDb250ZXh0JDogT2JzZXJ2YWJsZTxMZWdhY3lSdW50aW1lQ29udGV4dD4pOiB2b2lkIHtcbiAgICBydW50aW1lQ29udGV4dCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAocnVudGltZUNvbnRleHQgPT4ge1xuICAgICAgICAgIHRoaXMucnVudGltZVNlcnZpY2Uuc3RhcnRSdW50aW1lKHJ1bnRpbWVDb250ZXh0LCBzdGF0ZXMpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3VzdG9taXplQ29udGV4dChwcm9kdWN0SWQ6IHN0cmluZywgY29udGV4dDogTGVnYWN5UnVudGltZUNvbnRleHQpOiBPYnNlcnZhYmxlPExlZ2FjeVJ1bnRpbWVDb250ZXh0PiB7XG4gICAgaWYgKCF0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlPy5nZXRMZWdhY3lVaURlZmluaXRpb24pIHtcbiAgICAgIHJldHVybiBvZihjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXRMZWdhY3lVaURlZmluaXRpb24ocHJvZHVjdElkKS5waXBlKFxuICAgICAgbWFwKHVpRGVmaW5pdGlvbkNvbnRhaW5lciA9PiAoe1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICB1aURlZmluaXRpb25Db250YWluZXI6IHVpRGVmaW5pdGlvbkNvbnRhaW5lciA/PyB1bmRlZmluZWQsXG4gICAgICB9KSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UnVudGltZUNvbnRleHQoXG4gICAgcHJvZHVjdElkOiBzdHJpbmcsXG4gICAgb2ZmZXJpbmdJZDogc3RyaW5nLFxuICAgIHJ1bnRpbWVPcGVyYXRpb246IFJ1bnRpbWVPcGVyYXRpb24sXG4gICk6IE9ic2VydmFibGU8TGVnYWN5UnVudGltZUNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lQ29udGV4dFNlcnZpY2UuZ2V0UnVudGltZUNvbnRleHQocHJvZHVjdElkLCBvZmZlcmluZ0lkKS5waXBlKFxuICAgICAgbWFwKHJ1bnRpbWVDb250ZXh0ID0+IHtcbiAgICAgICAgcnVudGltZUNvbnRleHQuaW52b2NhdGlvbkNvbnRleHQgPSB7IHJ1bnRpbWVPcGVyYXRpb246IFJ1bnRpbWVPcGVyYXRpb25bcnVudGltZU9wZXJhdGlvbl0gfTtcbiAgICAgICAgcmV0dXJuIHJ1bnRpbWVDb250ZXh0O1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAocnVudGltZUNvbnRleHQgPT4gdGhpcy5jdXN0b21pemVDb250ZXh0KHByb2R1Y3RJZCwgcnVudGltZUNvbnRleHQpKSxcbiAgICApO1xuICB9XG59XG4iLCI8dmwtcnVudGltZSAjcnVudGltZVZpZXcgKHNvbHV0aW9uVXBkYXRlZCk9XCJvblNvbHV0aW9uVXBkYXRlZCgkZXZlbnQpXCI+PC92bC1ydW50aW1lPlxuIl19
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
2
|
-
import { NgModule } from '@angular/core';
|
3
|
-
import { RuntimeModule } from '@veloceapps/sdk/runtime';
|
4
|
-
import { LegacyProductComponent } from './legacy-product.component';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
export class LegacyProductModule {
|
7
|
-
}
|
8
|
-
LegacyProductModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LegacyProductModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
9
|
-
LegacyProductModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: LegacyProductModule, declarations: [LegacyProductComponent], imports: [CommonModule, RuntimeModule], exports: [LegacyProductComponent] });
|
10
|
-
LegacyProductModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LegacyProductModule, imports: [CommonModule, RuntimeModule] });
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LegacyProductModule, decorators: [{
|
12
|
-
type: NgModule,
|
13
|
-
args: [{
|
14
|
-
declarations: [LegacyProductComponent],
|
15
|
-
imports: [CommonModule, RuntimeModule],
|
16
|
-
exports: [LegacyProductComponent],
|
17
|
-
}]
|
18
|
-
}] });
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LXByb2R1Y3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL3BhZ2VzL2xlZ2FjeS1wcm9kdWN0L2xlZ2FjeS1wcm9kdWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBT3BFLE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQixpQkFKZixzQkFBc0IsYUFDM0IsWUFBWSxFQUFFLGFBQWEsYUFDM0Isc0JBQXNCO2lIQUVyQixtQkFBbUIsWUFIcEIsWUFBWSxFQUFFLGFBQWE7MkZBRzFCLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDdEMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztvQkFDdEMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSdW50aW1lTW9kdWxlIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL3J1bnRpbWUnO1xuaW1wb3J0IHsgTGVnYWN5UHJvZHVjdENvbXBvbmVudCB9IGZyb20gJy4vbGVnYWN5LXByb2R1Y3QuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTGVnYWN5UHJvZHVjdENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJ1bnRpbWVNb2R1bGVdLFxuICBleHBvcnRzOiBbTGVnYWN5UHJvZHVjdENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIExlZ2FjeVByb2R1Y3RNb2R1bGUge31cbiJdfQ==
|