@veloceapps/sdk 8.0.0-98 → 9.0.0-0
Sign up to get free protection for your applications and to get access to all the features.
- package/cms/README.md +0 -20
- package/cms/cms.actions.d.ts +13 -1
- package/cms/components/preview/preview.component.d.ts +2 -3
- package/cms/components/preview/preview.types.d.ts +4 -0
- package/cms/index.d.ts +1 -0
- package/cms/modules/runtime/services/runtime.service.d.ts +1 -1
- package/cms/services/index.d.ts +0 -1
- package/cms/services/resources.service.d.ts +2 -0
- package/cms/types/index.d.ts +0 -1
- package/cms/utils/element-metadata-worker.d.ts +11 -0
- package/cms/utils/elements-resolver.d.ts +0 -2
- package/cms/utils/index.d.ts +3 -0
- package/cms/utils/transpilation-worker.d.ts +13 -0
- package/cms/vendor-map.d.ts +23 -18
- package/core/README.md +20 -0
- package/core/modules/configuration/configuration.module.d.ts +2 -1
- package/core/modules/configuration/helpers.d.ts +2 -1
- package/core/modules/configuration/index.d.ts +1 -1
- package/core/modules/configuration/services/configuration-state.service.d.ts +54 -0
- package/core/modules/configuration/services/configuration.service.d.ts +6 -6
- package/core/modules/configuration/types/configuration.types.d.ts +4 -0
- package/core/modules/flow-configuration/flow-configuration.module.d.ts +2 -1
- package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +5 -0
- package/core/services/context.service.d.ts +2 -0
- package/core/services/flow-info.service.d.ts +29 -0
- package/core/services/flow-state-configuration.service.d.ts +19 -0
- package/core/services/flow-state.service.d.ts +80 -0
- package/core/services/index.d.ts +4 -1
- package/core/services/quote-draft.service.d.ts +12 -28
- package/core/types/flow-customization.types.d.ts +22 -0
- package/core/types/flow-state.types.d.ts +11 -0
- package/core/types/index.d.ts +3 -1
- package/{cms → core}/types/integration.types.d.ts +1 -1
- package/core/utils/line-item.utils.d.ts +1 -3
- package/esm2020/cms/cms.actions.mjs +21 -1
- package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +3 -3
- package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +3 -3
- package/esm2020/cms/components/preview/preview.component.mjs +10 -10
- package/esm2020/cms/components/preview/preview.module.mjs +2 -2
- package/esm2020/cms/components/preview/preview.types.mjs +1 -1
- package/esm2020/cms/index.mjs +2 -1
- package/esm2020/cms/launcher.module.mjs +4 -4
- package/esm2020/cms/modules/migrations/migrations.mjs +2 -2
- package/esm2020/cms/modules/migrations/services/migrations.service.mjs +6 -2
- package/esm2020/cms/modules/runtime/services/compilation.service.mjs +11 -7
- package/esm2020/cms/modules/runtime/services/runtime.service.mjs +4 -4
- package/esm2020/cms/plugins/configuration.plugin.mjs +8 -4
- package/esm2020/cms/services/index.mjs +1 -2
- package/esm2020/cms/services/io-provider.service.mjs +10 -9
- package/esm2020/cms/services/resources.service.mjs +10 -6
- package/esm2020/cms/services/templates.service.mjs +10 -9
- package/esm2020/cms/types/index.mjs +1 -2
- package/esm2020/cms/utils/element-metadata-worker.mjs +31 -0
- package/esm2020/cms/utils/elements-resolver.mjs +13 -27
- package/esm2020/cms/utils/encoding.utils.mjs +3 -2
- package/esm2020/cms/utils/index.mjs +4 -1
- package/esm2020/cms/utils/path.utils.mjs +3 -3
- package/esm2020/cms/utils/script.utils.mjs +19 -15
- package/esm2020/cms/utils/transpilation-worker.mjs +52 -0
- package/esm2020/cms/vendor-map.mjs +12 -5
- package/esm2020/core/core.module.mjs +19 -3
- package/esm2020/core/modules/configuration/configuration.module.mjs +7 -23
- package/esm2020/core/modules/configuration/helpers.mjs +21 -1
- package/esm2020/core/modules/configuration/index.mjs +2 -2
- package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +335 -0
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +56 -50
- package/esm2020/core/modules/configuration/types/configuration.types.mjs +1 -1
- package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +6 -6
- package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +12 -9
- package/esm2020/core/services/context.service.mjs +17 -5
- package/esm2020/core/services/flow-info.service.mjs +99 -0
- package/esm2020/core/services/flow-state-configuration.service.mjs +53 -0
- package/esm2020/core/services/flow-state.service.mjs +512 -0
- package/esm2020/core/services/index.mjs +5 -2
- package/esm2020/core/services/integration.state.mjs +36 -0
- package/esm2020/core/services/product-images.service.mjs +4 -5
- package/esm2020/core/services/quote-draft.service.mjs +39 -91
- package/esm2020/core/services/runtime-settings.service.mjs +7 -5
- package/esm2020/core/types/flow-customization.types.mjs +3 -0
- package/esm2020/core/types/flow-state.types.mjs +2 -0
- package/esm2020/core/types/index.mjs +4 -2
- package/esm2020/core/types/integration.types.mjs +2 -0
- package/esm2020/core/utils/line-item.utils.mjs +33 -32
- package/esm2020/src/components/doc-gen/doc-gen.component.mjs +52 -55
- package/esm2020/src/components/flow-header/flow-header.component.mjs +108 -0
- package/esm2020/src/components/flow-header/flow-header.module.mjs +19 -0
- package/esm2020/src/components/flow-header/index.mjs +2 -0
- package/esm2020/src/components/guided-selling/guided-selling.component.mjs +40 -48
- package/esm2020/src/configure-primeng.mjs +33 -0
- package/esm2020/src/flow-routing.module.mjs +5 -18
- package/esm2020/src/flow.component.mjs +22 -37
- package/esm2020/src/flow.module.mjs +7 -5
- package/esm2020/src/guards/context.guard.mjs +6 -11
- package/esm2020/src/guards/flow.guard.mjs +23 -9
- package/esm2020/src/pages/assets/assets.component.mjs +30 -34
- package/esm2020/src/pages/catalog/catalog.component.mjs +30 -34
- package/esm2020/src/pages/debug/debug.component.mjs +2 -2
- package/esm2020/src/pages/product/product.component.mjs +34 -20
- package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +6 -3
- package/esm2020/src/pages/remote/remote.component.mjs +15 -14
- package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +31 -35
- package/esm2020/src/resolvers/flow.resolver.mjs +37 -55
- package/esm2020/src/resolvers/quote.resolver.mjs +55 -67
- package/esm2020/src/services/doc-gen.service.mjs +4 -3
- package/esm2020/src/services/flow-dialog.service.mjs +21 -6
- package/esm2020/src/services/flow-router.service.mjs +56 -15
- package/esm2020/src/services/flow.service.mjs +76 -48
- package/esm2020/src/services/guided-selling.service.mjs +5 -4
- package/esm2020/src/services/index.mjs +3 -1
- package/esm2020/src/types/index.mjs +1 -2
- package/fesm2015/veloceapps-sdk-cms.mjs +286 -192
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +1195 -427
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +801 -1455
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +291 -207
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +1176 -454
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +770 -1420
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +8 -7
- package/src/components/doc-gen/doc-gen.component.d.ts +7 -10
- package/src/components/flow-header/flow-header.component.d.ts +25 -0
- package/src/components/flow-header/flow-header.module.d.ts +9 -0
- package/src/components/flow-header/index.d.ts +1 -0
- package/src/components/guided-selling/guided-selling.component.d.ts +6 -9
- package/src/configure-primeng.d.ts +1 -0
- package/src/flow-routing.module.d.ts +1 -2
- package/src/flow.component.d.ts +7 -12
- package/src/flow.module.d.ts +2 -2
- package/src/guards/context.guard.d.ts +0 -1
- package/src/guards/flow.guard.d.ts +1 -1
- package/src/pages/assets/assets.component.d.ts +5 -7
- package/src/pages/catalog/catalog.component.d.ts +5 -7
- package/src/pages/product/product.component.d.ts +8 -7
- package/src/pages/record-not-found/record-not-found.component.d.ts +2 -0
- package/src/pages/remote/remote.component.d.ts +2 -3
- package/src/pages/shopping-cart/shopping-cart.component.d.ts +5 -7
- package/src/resolvers/flow.resolver.d.ts +6 -9
- package/src/resolvers/quote.resolver.d.ts +7 -14
- package/src/services/doc-gen.service.d.ts +1 -1
- package/src/services/flow-dialog.service.d.ts +5 -2
- package/src/services/flow-router.service.d.ts +7 -3
- package/src/services/flow.service.d.ts +10 -12
- package/src/services/guided-selling.service.d.ts +1 -1
- package/src/services/index.d.ts +2 -0
- package/src/types/index.d.ts +0 -1
- package/core/modules/configuration/services/configuration.state.d.ts +0 -30
- package/core/services/metric-calculation/metric-calculation.service.d.ts +0 -25
- package/core/services/metric-calculation/metric-calculation.types.d.ts +0 -1
- package/core/services/metric-calculation/metric-calculation.utils.d.ts +0 -5
- package/esm2020/cms/services/integration.state.mjs +0 -37
- package/esm2020/cms/types/integration.types.mjs +0 -2
- package/esm2020/core/modules/configuration/services/configuration.state.mjs +0 -142
- package/esm2020/core/services/metric-calculation/metric-calculation.service.mjs +0 -85
- package/esm2020/core/services/metric-calculation/metric-calculation.types.mjs +0 -2
- package/esm2020/core/services/metric-calculation/metric-calculation.utils.mjs +0 -42
- package/esm2020/src/components/header/cart-overlay/cart-preview.component.mjs +0 -119
- package/esm2020/src/components/header/cart-overlay/cart-preview.module.mjs +0 -47
- package/esm2020/src/components/header/header.component.mjs +0 -355
- package/esm2020/src/components/header/header.module.mjs +0 -52
- package/esm2020/src/components/header/header.types.mjs +0 -2
- package/esm2020/src/components/header/metrics/index.mjs +0 -2
- package/esm2020/src/components/header/metrics/metrics.component.mjs +0 -255
- package/esm2020/src/components/header/metrics/metrics.definitions.mjs +0 -2
- package/esm2020/src/components/header/metrics/metrics.module.mjs +0 -69
- package/esm2020/src/pages/empty-account/empty-account.component.mjs +0 -12
- package/esm2020/src/pages/empty-account/empty-account.module.mjs +0 -20
- package/esm2020/src/types/flow-customization.types.mjs +0 -3
- package/src/components/header/cart-overlay/cart-preview.component.d.ts +0 -36
- package/src/components/header/cart-overlay/cart-preview.module.d.ts +0 -14
- package/src/components/header/header.component.d.ts +0 -70
- package/src/components/header/header.module.d.ts +0 -16
- package/src/components/header/header.types.d.ts +0 -20
- package/src/components/header/metrics/index.d.ts +0 -1
- package/src/components/header/metrics/metrics.component.d.ts +0 -67
- package/src/components/header/metrics/metrics.definitions.d.ts +0 -1
- package/src/components/header/metrics/metrics.module.d.ts +0 -18
- package/src/pages/empty-account/empty-account.component.d.ts +0 -5
- package/src/pages/empty-account/empty-account.module.d.ts +0 -10
- package/src/types/flow-customization.types.d.ts +0 -12
- /package/{cms → core}/services/integration.state.d.ts +0 -0
@@ -18,7 +18,20 @@ export class ContextService {
|
|
18
18
|
return this.context.pipe(map(Boolean));
|
19
19
|
}
|
20
20
|
get mode() {
|
21
|
-
return this.resolve().properties
|
21
|
+
return this.resolve().properties['#mode'];
|
22
|
+
}
|
23
|
+
get isEditMode$() {
|
24
|
+
return this.resolve$().pipe(map(() => this.isEditMode));
|
25
|
+
}
|
26
|
+
get isEditMode() {
|
27
|
+
const context = this.resolve();
|
28
|
+
if (context.properties['#mode'] === ConfigurationContextMode.ACCOUNT) {
|
29
|
+
return true;
|
30
|
+
}
|
31
|
+
if (context.properties['#mode'] === ConfigurationContextMode.QUOTE) {
|
32
|
+
return context.properties.Status === 'Draft';
|
33
|
+
}
|
34
|
+
return false;
|
22
35
|
}
|
23
36
|
resolve() {
|
24
37
|
if (!this.context.value) {
|
@@ -71,9 +84,8 @@ export class ContextService {
|
|
71
84
|
}
|
72
85
|
}
|
73
86
|
ContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ContextService, deps: [{ token: i1.ContextApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
74
|
-
ContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ContextService
|
87
|
+
ContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ContextService });
|
75
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ContextService, decorators: [{
|
76
|
-
type: Injectable
|
77
|
-
args: [{ providedIn: 'root' }]
|
89
|
+
type: Injectable
|
78
90
|
}], ctorParameters: function () { return [{ type: i1.ContextApiService }]; } });
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUdsRCxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUZoRCxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQThCLElBQUksQ0FBQyxDQUFDO0lBRWQsQ0FBQztJQUU1RCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxH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QUVGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWxDLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7MkdBckdVLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dEFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGknO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNvbnRleHQsIENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29udGV4dFNlcnZpY2Uge1xuICBwcml2YXRlIGNvbnRleHQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbmZpZ3VyYXRpb25Db250ZXh0IHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250ZXh0QXBpU2VydmljZTogQ29udGV4dEFwaVNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGdldCBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMuY29udGV4dC52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzSW5pdGlhbGl6ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQucGlwZShtYXAoQm9vbGVhbikpO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2RlKCk6IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZSgpLnByb3BlcnRpZXNbJyNtb2RlJ107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRWRpdE1vZGUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmUkKCkucGlwZShtYXAoKCkgPT4gdGhpcy5pc0VkaXRNb2RlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRWRpdE1vZGUoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMucmVzb2x2ZSgpO1xuXG4gICAgaWYgKGNvbnRleHQucHJvcGVydGllc1snI21vZGUnXSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLkFDQ09VTlQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChjb250ZXh0LnByb3BlcnRpZXNbJyNtb2RlJ10gPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5RVU9URSkge1xuICAgICAgcmV0dXJuIGNvbnRleHQucHJvcGVydGllcy5TdGF0dXMgPT09ICdEcmFmdCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHJlc29sdmUoKTogQ29uZmlndXJhdGlvbkNvbnRleHQge1xuICAgIGlmICghdGhpcy5jb250ZXh0LnZhbHVlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbnRleHQgaXMgbm90IGluaXRpYWxpemVkIHlldCEnKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyAuLi50aGlzLmNvbnRleHQudmFsdWUgfTtcbiAgfVxuXG4gIHB1YmxpYyByZXNvbHZlJCgpOiBPYnNlcnZhYmxlPENvbmZpZ3VyYXRpb25Db250ZXh0PiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5waXBlKGZpbHRlcigoY3R4KTogY3R4IGlzIENvbmZpZ3VyYXRpb25Db250ZXh0ID0+IEJvb2xlYW4oY3R4KSkpO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZShoZWFkZXJJZDogc3RyaW5nLCBtb2RlOiBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUpOiBPYnNlcnZhYmxlPENvbmZpZ3VyYXRpb25Db250ZXh0PiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dEFwaVNlcnZpY2UuZ2V0Q29udGV4dChoZWFkZXJJZCwgbW9kZSkucGlwZShcbiAgICAgIHRhcChjb250ZXh0ID0+IHRoaXMuY29udGV4dC5uZXh0KG1lcmdlKG5ldyBDb25maWd1cmF0aW9uQ29udGV4dChoZWFkZXJJZCwgbW9kZSksIGNvbnRleHQpKSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5yZXNvbHZlKCkgYXMgQ29uZmlndXJhdGlvbkNvbnRleHQpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaW5pdFRlc3RNb2RlKCk6IE9ic2VydmFibGU8Q29uZmlndXJhdGlvbkNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoJ1Rlc3RJZCcsIENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5URVNUKS5waXBlKFxuICAgICAgbWFwKGNvbnRleHQgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUoe1xuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIC4uLmNvbnRleHQucHJvcGVydGllcyxcbiAgICAgICAgICAgIFJ1bnRpbWVNb2RlOiBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuVEVTVCxcbiAgICAgICAgICAgIFN0YXJ0RGF0ZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygwLCAxMCksXG4gICAgICAgICAgICBzdGFuZGFsb25lOiAndHJ1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZShwYXJ0aWFsQ29udGV4dDogUGFydGlhbDxDb25maWd1cmF0aW9uQ29udGV4dD4pOiBDb25maWd1cmF0aW9uQ29udGV4dCB7XG4gICAgY29uc3Qgb3JpZ2luYWxDb250ZXh0ID0gdGhpcy5yZXNvbHZlKCk7XG5cbiAgICBjb25zdCB1cGRhdGVkQ29udGV4dDogQ29uZmlndXJhdGlvbkNvbnRleHQgPSB7XG4gICAgICAuLi5vcmlnaW5hbENvbnRleHQsXG4gICAgICAuLi4ocGFydGlhbENvbnRleHQgYXMgQ29uZmlndXJhdGlvbkNvbnRleHQpLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAuLi5vcmlnaW5hbENvbnRleHQucHJvcGVydGllcyxcbiAgICAgICAgLi4ucGFydGlhbENvbnRleHQucHJvcGVydGllcyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMuY29udGV4dC5uZXh0KHVwZGF0ZWRDb250ZXh0KTtcblxuICAgIHJldHVybiB1cGRhdGVkQ29udGV4dDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQoY29udGV4dDogQ29uZmlndXJhdGlvbkNvbnRleHQpOiBDb25maWd1cmF0aW9uQ29udGV4dCB7XG4gICAgY29uc3Qgb3JpZ2luYWxDb250ZXh0ID0gdGhpcy5yZXNvbHZlKCk7XG5cbiAgICBjb25zdCB1cGRhdGVkQ29udGV4dDogQ29uZmlndXJhdGlvbkNvbnRleHQgPSB7XG4gICAgICAuLi5vcmlnaW5hbENvbnRleHQsXG4gICAgICAuLi5jb250ZXh0LFxuICAgIH07XG5cbiAgICB0aGlzLmNvbnRleHQubmV4dCh1cGRhdGVkQ29udGV4dCk7XG5cbiAgICByZXR1cm4gdXBkYXRlZENvbnRleHQ7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC5uZXh0KG51bGwpO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,99 @@
|
|
1
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
2
|
+
import { FlowsApiService, UITemplatesApiService } from '@veloceapps/api';
|
3
|
+
import { UITemplateType } from '@veloceapps/core';
|
4
|
+
import { isEmpty } from 'lodash';
|
5
|
+
import { BehaviorSubject, catchError, forkJoin, map, noop, of, switchMap, tap, throwError } from 'rxjs';
|
6
|
+
import { FLOW_CUSTOMIZATION } from '../types';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
import * as i1 from "@veloceapps/api";
|
9
|
+
export class FlowInfoService {
|
10
|
+
get flow() {
|
11
|
+
return this.flowSubj$.value;
|
12
|
+
}
|
13
|
+
set flow(value) {
|
14
|
+
this.flowSubj$.next(value);
|
15
|
+
}
|
16
|
+
get isLegacy() {
|
17
|
+
return !!this.flow && this.flow?.properties.stateful == null;
|
18
|
+
}
|
19
|
+
get isStateful() {
|
20
|
+
return !!this.flow?.properties.stateful;
|
21
|
+
}
|
22
|
+
constructor(flowsApiService, templatesApiService, customizationService) {
|
23
|
+
this.flowsApiService = flowsApiService;
|
24
|
+
this.templatesApiService = templatesApiService;
|
25
|
+
this.customizationService = customizationService;
|
26
|
+
this.templates = {};
|
27
|
+
this.defaultTemplates = {
|
28
|
+
flowEngine: 'Flow Engine',
|
29
|
+
};
|
30
|
+
this.flowSubj$ = new BehaviorSubject(null);
|
31
|
+
this.flow$ = this.flowSubj$.asObservable();
|
32
|
+
}
|
33
|
+
init$(flowId, params) {
|
34
|
+
this.params = params;
|
35
|
+
return this.flowsApiService.getFlow(flowId).pipe(switchMap(flow => this.initFlowTemplates$(flow).pipe(map(() => flow))), tap(flow => this.flowSubj$.next(flow)), map(noop), catchError(e => {
|
36
|
+
this.flowSubj$.next(null);
|
37
|
+
return throwError(() => e);
|
38
|
+
}));
|
39
|
+
}
|
40
|
+
cleanup() {
|
41
|
+
this.flowSubj$.next(null);
|
42
|
+
this.params = undefined;
|
43
|
+
this.templates = {};
|
44
|
+
}
|
45
|
+
initFlowTemplates$(flow) {
|
46
|
+
if (isEmpty(flow.properties.templates)) {
|
47
|
+
return of(undefined);
|
48
|
+
}
|
49
|
+
return forkJoin([
|
50
|
+
this.templatesApiService.fetchTemplates$(),
|
51
|
+
this.customizationService?.getTemplates?.() ?? of([]),
|
52
|
+
]).pipe(map(([templates, localTemplates]) => {
|
53
|
+
Object.entries({ ...this.defaultTemplates, ...flow.properties.templates }).forEach(([key, name]) => {
|
54
|
+
const type = this.remapTemplateName(key);
|
55
|
+
if (type) {
|
56
|
+
this.templates[type] =
|
57
|
+
localTemplates.find(template => template.name === name && template.type === type) ??
|
58
|
+
templates.find(template => template.name === name && template.type === type);
|
59
|
+
}
|
60
|
+
});
|
61
|
+
}));
|
62
|
+
}
|
63
|
+
remapTemplateName(templateType) {
|
64
|
+
switch (templateType) {
|
65
|
+
case 'flowEngine':
|
66
|
+
return UITemplateType.FLOW_ENGINE;
|
67
|
+
default:
|
68
|
+
break;
|
69
|
+
}
|
70
|
+
switch (templateType) {
|
71
|
+
case 'assets':
|
72
|
+
case 'shoppingCart':
|
73
|
+
// No separate Assets template at the moment
|
74
|
+
return UITemplateType.SHOPPING_CART;
|
75
|
+
case 'catalog':
|
76
|
+
return UITemplateType.CATALOG;
|
77
|
+
case 'docGen':
|
78
|
+
return UITemplateType.DOCGEN;
|
79
|
+
case 'guidedSelling':
|
80
|
+
return UITemplateType.GUIDED_SELLING;
|
81
|
+
case 'flowHeader':
|
82
|
+
return UITemplateType.FLOW_HEADER;
|
83
|
+
default:
|
84
|
+
break;
|
85
|
+
}
|
86
|
+
return undefined;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
FlowInfoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowInfoService, deps: [{ token: i1.FlowsApiService }, { token: i1.UITemplatesApiService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
90
|
+
FlowInfoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowInfoService });
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowInfoService, decorators: [{
|
92
|
+
type: Injectable
|
93
|
+
}], ctorParameters: function () { return [{ type: i1.FlowsApiService }, { type: i1.UITemplatesApiService }, { type: undefined, decorators: [{
|
94
|
+
type: Optional
|
95
|
+
}, {
|
96
|
+
type: Inject,
|
97
|
+
args: [FLOW_CUSTOMIZATION]
|
98
|
+
}] }]; } });
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1pbmZvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3NlcnZpY2VzL2Zsb3ctaW5mby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUFzQyxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwSCxPQUFPLEVBQXFCLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFHakUsTUFBTSxPQUFPLGVBQWU7SUFLMUIsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBVyxJQUFJLENBQUMsS0FBa0I7UUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDMUMs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SUFBSSxDQUFDLENBQUM7aUJBQ2hGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGlCQUFpQixDQUFDLFlBQW9CO1FBQzVDLFFBQVEsWUFBa0QsRUFBRTtZQUMxRCxLQUFLLFlBQVk7Z0JBQ2YsT0FBTyxjQUFjLENBQUMsV0FBVyxDQUFDO1lBQ3BDO2dCQUNFLE1BQU07U0FDVDtRQUVELFFBQVEsWUFBc0MsRUFBRTtZQUM5QyxLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssY0FBYztnQkFDakIsNENBQTRDO2dCQUM1QyxPQUFPLGNBQWMsQ0FBQyxhQUFhLENBQUM7WUFDdEMsS0FBSyxTQUFTO2dCQUNaLE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQztZQUNoQyxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQy9CLEtBQUssZUFBZTtnQkFDbEIsT0FBTyxjQUFjLENBQUMsY0FBYyxDQUFDO1lBQ3ZDLEtBQUssWUFBWTtnQkFDZixPQUFPLGNBQWMsQ0FBQyxXQUFXLENBQUM7WUFDcEM7Z0JBQ0UsTUFBTTtTQUNUO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7NEdBckdVLGVBQWUsc0ZBNEJKLGtCQUFrQjtnSEE1QjdCLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBNkJOLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZsb3dzQXBpU2VydmljZSwgVUlUZW1wbGF0ZXNBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IEZsb3csIEZsb3dUZW1wbGF0ZXNNYXAsIFVJVGVtcGxhdGUsIFVJVGVtcGxhdGVUeXBlIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY2F0Y2hFcnJvciwgZm9ya0pvaW4sIG1hcCwgbm9vcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93Q3VzdG9taXphdGlvbiwgRkxPV19DVVNUT01JWkFUSU9OIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd0luZm9TZXJ2aWNlIHtcbiAgcHVibGljIGZsb3ckOiBPYnNlcnZhYmxlPEZsb3cgfCBudWxsPjtcbiAgcHVibGljIHBhcmFtcz86IFBhcmFtcztcbiAgcHVibGljIHRlbXBsYXRlczogeyBba2V5IGluIFVJVGVtcGxhdGVUeXBlXT86IFVJVGVtcGxhdGUgfSA9IHt9O1xuXG4gIHB1YmxpYyBnZXQgZmxvdygpOiBGbG93IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZmxvd1N1YmokLnZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgZmxvdyh2YWx1ZTogRmxvdyB8IG51bGwpIHtcbiAgICB0aGlzLmZsb3dTdWJqJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNMZWdhY3koKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5mbG93ICYmIHRoaXMuZmxvdz8ucHJvcGVydGllcy5zdGF0ZWZ1bCA9PSBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1N0YXRlZnVsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZmxvdz8ucHJvcGVydGllcy5zdGF0ZWZ1bDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFRlbXBsYXRlcyA9IHtcbiAgICBmbG93RW5naW5lOiAnRmxvdyBFbmdpbmUnLFxuICB9O1xuICBwcml2YXRlIGZsb3dTdWJqJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmxvdyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmxvd3NBcGlTZXJ2aWNlOiBGbG93c0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZXNBcGlTZXJ2aWNlOiBVSVRlbXBsYXRlc0FwaVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGTE9XX0NVU1RPTUlaQVRJT04pIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U/OiBGbG93Q3VzdG9taXphdGlvbixcbiAgKSB7XG4gICAgdGhpcy5mbG93JCA9IHRoaXMuZmxvd1N1YmokLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGluaXQkKGZsb3dJZDogc3RyaW5nLCBwYXJhbXM6IFBhcmFtcyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgIHJldHVybiB0aGlzLmZsb3dzQXBpU2VydmljZS5nZXRGbG93KGZsb3dJZCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChmbG93ID0+IHRoaXMuaW5pdEZsb3dUZW1wbGF0ZXMkKGZsb3cpLnBpcGUobWFwKCgpID0+IGZsb3cpKSksXG4gICAgICB0YXAoZmxvdyA9PiB0aGlzLmZsb3dTdWJqJC5uZXh0KGZsb3cpKSxcbiAgICAgIG1hcChub29wKSxcbiAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XG4gICAgICAgIHRoaXMuZmxvd1N1YmokLm5leHQobnVsbCk7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGUpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhbnVwKCk6IHZvaWQge1xuICAgIHRoaXMuZmxvd1N1YmokLm5leHQobnVsbCk7XG4gICAgdGhpcy5wYXJhbXMgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50ZW1wbGF0ZXMgPSB7fTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZsb3dUZW1wbGF0ZXMkKGZsb3c6IEZsb3cpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBpZiAoaXNFbXB0eShmbG93LnByb3BlcnRpZXMudGVtcGxhdGVzKSkge1xuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcmtKb2luKFtcbiAgICAgIHRoaXMudGVtcGxhdGVzQXBpU2VydmljZS5mZXRjaFRlbXBsYXRlcyQoKSxcbiAgICAgIHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2U/LmdldFRlbXBsYXRlcz8uKCkgPz8gb2YoW10pLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt0ZW1wbGF0ZXMsIGxvY2FsVGVtcGxhdGVzXSkgPT4ge1xuICAgICAgICBPYmplY3QuZW50cmllcyh7IC4uLnRoaXMuZGVmYXVsdFRlbXBsYXRlcywgLi4uZmxvdy5wcm9wZXJ0aWVzLnRlbXBsYXRlcyB9KS5mb3JFYWNoKChba2V5LCBuYW1lXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLnJlbWFwVGVtcGxhdGVOYW1lKGtleSk7XG5cbiAgICAgICAgICBpZiAodHlwZSkge1xuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZXNbdHlwZV0gPVxuICAgICAgICAgICAgICBsb2NhbFRlbXBsYXRlcy5maW5kKHRlbXBsYXRlID0+IHRlbXBsYXRlLm5hbWUgPT09IG5hbWUgJiYgdGVtcGxhdGUudHlwZSA9PT0gdHlwZSkgPz9cbiAgICAgICAgICAgICAgdGVtcGxhdGVzLmZpbmQodGVtcGxhdGUgPT4gdGVtcGxhdGUubmFtZSA9PT0gbmFtZSAmJiB0ZW1wbGF0ZS50eXBlID09PSB0eXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtYXBUZW1wbGF0ZU5hbWUodGVtcGxhdGVUeXBlOiBzdHJpbmcpOiBVSVRlbXBsYXRlVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgc3dpdGNoICh0ZW1wbGF0ZVR5cGUgYXMga2V5b2YgdHlwZW9mIHRoaXMuZGVmYXVsdFRlbXBsYXRlcykge1xuICAgICAgY2FzZSAnZmxvd0VuZ2luZSc6XG4gICAgICAgIHJldHVybiBVSVRlbXBsYXRlVHlwZS5GTE9XX0VOR0lORTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGVtcGxhdGVUeXBlIGFzIGtleW9mIEZsb3dUZW1wbGF0ZXNNYXApIHtcbiAgICAgIGNhc2UgJ2Fzc2V0cyc6XG4gICAgICBjYXNlICdzaG9wcGluZ0NhcnQnOlxuICAgICAgICAvLyBObyBzZXBhcmF0ZSBBc3NldHMgdGVtcGxhdGUgYXQgdGhlIG1vbWVudFxuICAgICAgICByZXR1cm4gVUlUZW1wbGF0ZVR5cGUuU0hPUFBJTkdfQ0FSVDtcbiAgICAgIGNhc2UgJ2NhdGFsb2cnOlxuICAgICAgICByZXR1cm4gVUlUZW1wbGF0ZVR5cGUuQ0FUQUxPRztcbiAgICAgIGNhc2UgJ2RvY0dlbic6XG4gICAgICAgIHJldHVybiBVSVRlbXBsYXRlVHlwZS5ET0NHRU47XG4gICAgICBjYXNlICdndWlkZWRTZWxsaW5nJzpcbiAgICAgICAgcmV0dXJuIFVJVGVtcGxhdGVUeXBlLkdVSURFRF9TRUxMSU5HO1xuICAgICAgY2FzZSAnZmxvd0hlYWRlcic6XG4gICAgICAgIHJldHVybiBVSVRlbXBsYXRlVHlwZS5GTE9XX0hFQURFUjtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { FlowStateApiService } from '@veloceapps/api';
|
3
|
+
import { BehaviorSubject, map, noop, of, switchMap, tap } from 'rxjs';
|
4
|
+
import { generateConfigurationLineItem } from '../modules/configuration';
|
5
|
+
import { FlowConfigurationService } from '../modules/flow-configuration';
|
6
|
+
import { FlowInfoService } from './flow-info.service';
|
7
|
+
import { FlowStateService } from './flow-state.service';
|
8
|
+
import * as i0 from "@angular/core";
|
9
|
+
import * as i1 from "./flow-info.service";
|
10
|
+
import * as i2 from "../modules/flow-configuration";
|
11
|
+
import * as i3 from "@veloceapps/api";
|
12
|
+
import * as i4 from "./flow-state.service";
|
13
|
+
export class FlowStateConfigurationService {
|
14
|
+
constructor(flowInfoService, flowConfigurationService, flowStateApiService, flowStateService) {
|
15
|
+
this.flowInfoService = flowInfoService;
|
16
|
+
this.flowConfigurationService = flowConfigurationService;
|
17
|
+
this.flowStateApiService = flowStateApiService;
|
18
|
+
this.flowStateService = flowStateService;
|
19
|
+
this.configurationStateId$ = new BehaviorSubject(null);
|
20
|
+
}
|
21
|
+
get configurationStateId() {
|
22
|
+
return this.configurationStateId$.value;
|
23
|
+
}
|
24
|
+
addToCart$(props) {
|
25
|
+
let request$;
|
26
|
+
const stateful = this.flowInfoService.flow?.properties.stateful;
|
27
|
+
if (stateful) {
|
28
|
+
const stateId = this.flowStateService.stateId;
|
29
|
+
if (!stateId) {
|
30
|
+
request$ = of();
|
31
|
+
}
|
32
|
+
else {
|
33
|
+
const lineItem = generateConfigurationLineItem(props, props.qty);
|
34
|
+
request$ = this.flowStateApiService.newConfiguration(stateId, { lineItem }).pipe(tap(r => this.configurationStateId$.next(r.stateId)), switchMap(() => {
|
35
|
+
if (!this.configurationStateId) {
|
36
|
+
return of();
|
37
|
+
}
|
38
|
+
return this.flowStateApiService.saveConfiguration(stateId, this.configurationStateId).pipe(tap(() => this.configurationStateId$.next(null)), map(noop));
|
39
|
+
}));
|
40
|
+
}
|
41
|
+
}
|
42
|
+
else {
|
43
|
+
request$ = this.flowConfigurationService.addToCart$(props).pipe(map(noop));
|
44
|
+
}
|
45
|
+
return request$.pipe(switchMap(() => this.flowStateService.executeRequest$({}, true)), map(noop));
|
46
|
+
}
|
47
|
+
}
|
48
|
+
FlowStateConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, deps: [{ token: i1.FlowInfoService }, { token: i2.FlowConfigurationService }, { token: i3.FlowStateApiService }, { token: i4.FlowStateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
49
|
+
FlowStateConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService });
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, decorators: [{
|
51
|
+
type: Injectable
|
52
|
+
}], ctorParameters: function () { return [{ type: i1.FlowInfoService }, { type: i2.FlowConfigurationService }, { type: i3.FlowStateApiService }, { type: i4.FlowStateService }]; } });
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zdGF0ZS1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3NlcnZpY2VzL2Zsb3ctc3RhdGUtY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw2QkFBNkIsRUFBeUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUd4RCxNQUFNLE9BQU8sNkJBQTZCO0lBR3hDLFlBQ1UsZUFBZ0MsRUFDaEMsd0JBQWtELEVBQ2xELG1CQUF3QyxFQUN4QyxnQkFBa0M7UUFIbEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTnBDLDBCQUFxQixHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztJQU90RSxDQUFDO0lBRUosSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBNEI7UUFDNUMsSUFBSSxRQUFRLENBQUM7UUFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ2hFLElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztZQUM5QyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNaLFFBQVEsR0FBRyxFQUFFLEVBQUUsQ0FBQzthQUNqQjtpQkFBTTtnQkFDTCxNQUFNLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqRSxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUM5RSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUNwRCxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7d0JBQzlCLE9BQU8sRUFBRSxFQUFFLENBQUM7cUJBQ2I7b0JBQ0QsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FDeEYsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDaEQsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUNWLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQzthQUNIO1NBQ0Y7YUFBTTtZQUNMLFFBQVEsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUM1RTtRQUVELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FDbEIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQ2hFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FDVixDQUFDO0lBQ0osQ0FBQzs7MEhBNUNVLDZCQUE2Qjs4SEFBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbG93U3RhdGVBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBub29wLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdlbmVyYXRlQ29uZmlndXJhdGlvbkxpbmVJdGVtLCBOZXdDb25maWd1cmF0aW9uUHJvcHMgfSBmcm9tICcuLi9tb2R1bGVzL2NvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbW9kdWxlcy9mbG93LWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgRmxvd0luZm9TZXJ2aWNlIH0gZnJvbSAnLi9mbG93LWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBGbG93U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9mbG93LXN0YXRlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd1N0YXRlQ29uZmlndXJhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGNvbmZpZ3VyYXRpb25TdGF0ZUlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmbG93SW5mb1NlcnZpY2U6IEZsb3dJbmZvU2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dDb25maWd1cmF0aW9uU2VydmljZTogRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZmxvd1N0YXRlQXBpU2VydmljZTogRmxvd1N0YXRlQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dTdGF0ZVNlcnZpY2U6IEZsb3dTdGF0ZVNlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgZ2V0IGNvbmZpZ3VyYXRpb25TdGF0ZUlkKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TdGF0ZUlkJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb0NhcnQkKHByb3BzOiBOZXdDb25maWd1cmF0aW9uUHJvcHMpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBsZXQgcmVxdWVzdCQ7XG4gICAgY29uc3Qgc3RhdGVmdWwgPSB0aGlzLmZsb3dJbmZvU2VydmljZS5mbG93Py5wcm9wZXJ0aWVzLnN0YXRlZnVsO1xuICAgIGlmIChzdGF0ZWZ1bCkge1xuICAgICAgY29uc3Qgc3RhdGVJZCA9IHRoaXMuZmxvd1N0YXRlU2VydmljZS5zdGF0ZUlkO1xuICAgICAgaWYgKCFzdGF0ZUlkKSB7XG4gICAgICAgIHJlcXVlc3QkID0gb2YoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGxpbmVJdGVtID0gZ2VuZXJhdGVDb25maWd1cmF0aW9uTGluZUl0ZW0ocHJvcHMsIHByb3BzLnF0eSk7XG4gICAgICAgIHJlcXVlc3QkID0gdGhpcy5mbG93U3RhdGVBcGlTZXJ2aWNlLm5ld0NvbmZpZ3VyYXRpb24oc3RhdGVJZCwgeyBsaW5lSXRlbSB9KS5waXBlKFxuICAgICAgICAgIHRhcChyID0+IHRoaXMuY29uZmlndXJhdGlvblN0YXRlSWQkLm5leHQoci5zdGF0ZUlkKSksXG4gICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb25maWd1cmF0aW9uU3RhdGVJZCkge1xuICAgICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZsb3dTdGF0ZUFwaVNlcnZpY2Uuc2F2ZUNvbmZpZ3VyYXRpb24oc3RhdGVJZCwgdGhpcy5jb25maWd1cmF0aW9uU3RhdGVJZCkucGlwZShcbiAgICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMuY29uZmlndXJhdGlvblN0YXRlSWQkLm5leHQobnVsbCkpLFxuICAgICAgICAgICAgICBtYXAobm9vcCksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXF1ZXN0JCA9IHRoaXMuZmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLmFkZFRvQ2FydCQocHJvcHMpLnBpcGUobWFwKG5vb3ApKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVxdWVzdCQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmZsb3dTdGF0ZVNlcnZpY2UuZXhlY3V0ZVJlcXVlc3QkKHt9LCB0cnVlKSksXG4gICAgICBtYXAobm9vcCksXG4gICAgKTtcbiAgfVxufVxuIl19
|