@veloceapps/sdk 11.0.0-100 → 11.0.0-102
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/src/pages/product/product.component.mjs +10 -7
- package/esm2020/src/resolvers/ui-definition.resolver.mjs +7 -5
- package/fesm2015/veloceapps-sdk.mjs +11 -6
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +11 -6
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +1 -1
- package/src/pages/product/product.component.d.ts +1 -0
- package/src/resolvers/ui-definition.resolver.d.ts +1 -1
@@ -1,28 +1,31 @@
|
|
1
1
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
2
2
|
import { ConfigurationRuntimeService, ConfigurationStateService } from '@veloceapps/sdk/core';
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
3
|
+
import { BehaviorSubject, tap } from 'rxjs';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
import * as i1 from "@veloceapps/sdk/core";
|
6
|
-
import * as i2 from "@
|
7
|
-
import * as i3 from "@
|
6
|
+
import * as i2 from "@angular/common";
|
7
|
+
import * as i3 from "@veloceapps/sdk/cms";
|
8
8
|
export class ProductComponent {
|
9
9
|
constructor(configurationRuntimeService, configurationStateService) {
|
10
10
|
this.configurationRuntimeService = configurationRuntimeService;
|
11
11
|
this.configurationStateService = configurationStateService;
|
12
12
|
this.uiDefinitionContainer$ = new BehaviorSubject(null);
|
13
|
+
this.showNotFound$ = new BehaviorSubject(false);
|
13
14
|
this.uiDefinitionContainer$.next(this.configurationRuntimeService.uiDefinitionContainer);
|
14
15
|
this.config = {
|
15
16
|
init$: () => this.init$(),
|
16
17
|
};
|
17
18
|
}
|
18
19
|
init$() {
|
19
|
-
return this.configurationStateService.init$()
|
20
|
+
return this.configurationStateService.init$().pipe(tap(() => {
|
21
|
+
this.showNotFound$.next(Boolean(!this.uiDefinitionContainer$.value));
|
22
|
+
}));
|
20
23
|
}
|
21
24
|
}
|
22
25
|
ProductComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductComponent, deps: [{ token: i1.ConfigurationRuntimeService }, { token: i1.ConfigurationStateService }], target: i0.ɵɵFactoryTarget.Component });
|
23
|
-
ProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ProductComponent, selector: "vl-flow-product", ngImport: i0, template: "<vl-cms-preview [uiDefinition]=\"(uiDefinitionContainer$ | async)?.source\" [config]=\"config\"></vl-cms-preview>\n", styles: [""], dependencies: [{ kind: "
|
26
|
+
ProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ProductComponent, selector: "vl-flow-product", ngImport: i0, template: "<vl-cms-preview [uiDefinition]=\"(uiDefinitionContainer$ | async)?.source\" [config]=\"config\"></vl-cms-preview>\n\n<div *ngIf=\"showNotFound$ | async\" class=\"not-found-wrapper\">\n <div class=\"not-found\">\n <div class=\"icon\"></div>\n <div class=\"message\">\n This product doesn't have a linked Configuration UI. <br />\n Please contact your system administrator for further assistance.\n </div>\n </div>\n</div>\n", styles: [".not-found-wrapper{position:absolute;top:0;display:flex;width:100%;height:100%;justify-content:center;align-items:center;background-color:#fff;z-index:1000}.not-found{display:flex;align-items:center;padding:16px;border-radius:8px;gap:8px;background-color:#f5f5f5}.not-found .icon{width:48px;height:42px;background-image:url(\"data:image/svg+xml,%3Csvg width='48' height='42' viewBox='0 0 48 42' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cellipse cx='24.0798' cy='32.6052' rx='2.85714' ry='2.63158' fill='%231F2029'/%3E%3Cpath d='M22.285 3.35831C23.0618 2.06363 24.9382 2.06363 25.715 3.35831L46.1826 37.471C46.9824 38.8041 46.0222 40.5 44.4676 40.5L3.53238 40.5C1.97779 40.5 1.01757 38.8041 1.8174 37.471L22.285 3.35831Z' stroke='%23141414' stroke-width='2'/%3E%3Cpath d='M24 17.342V26.8157' stroke='black' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E%0A\")}.not-found .message{font-size:14px;color:#141414;font-weight:300}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PreviewComponent, selector: "vl-cms-preview", inputs: ["uiDefinition", "config"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
24
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductComponent, decorators: [{
|
25
28
|
type: Component,
|
26
|
-
args: [{ selector: 'vl-flow-product', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vl-cms-preview [uiDefinition]=\"(uiDefinitionContainer$ | async)?.source\" [config]=\"config\"></vl-cms-preview>\n" }]
|
29
|
+
args: [{ selector: 'vl-flow-product', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vl-cms-preview [uiDefinition]=\"(uiDefinitionContainer$ | async)?.source\" [config]=\"config\"></vl-cms-preview>\n\n<div *ngIf=\"showNotFound$ | async\" class=\"not-found-wrapper\">\n <div class=\"not-found\">\n <div class=\"icon\"></div>\n <div class=\"message\">\n This product doesn't have a linked Configuration UI. <br />\n Please contact your system administrator for further assistance.\n </div>\n </div>\n</div>\n", styles: [".not-found-wrapper{position:absolute;top:0;display:flex;width:100%;height:100%;justify-content:center;align-items:center;background-color:#fff;z-index:1000}.not-found{display:flex;align-items:center;padding:16px;border-radius:8px;gap:8px;background-color:#f5f5f5}.not-found .icon{width:48px;height:42px;background-image:url(\"data:image/svg+xml,%3Csvg width='48' height='42' viewBox='0 0 48 42' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cellipse cx='24.0798' cy='32.6052' rx='2.85714' ry='2.63158' fill='%231F2029'/%3E%3Cpath d='M22.285 3.35831C23.0618 2.06363 24.9382 2.06363 25.715 3.35831L46.1826 37.471C46.9824 38.8041 46.0222 40.5 44.4676 40.5L3.53238 40.5C1.97779 40.5 1.01757 38.8041 1.8174 37.471L22.285 3.35831Z' stroke='%23141414' stroke-width='2'/%3E%3Cpath d='M24 17.342V26.8157' stroke='black' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E%0A\")}.not-found .message{font-size:14px;color:#141414;font-weight:300}\n"] }]
|
27
30
|
}], ctorParameters: function () { return [{ type: i1.ConfigurationRuntimeService }, { type: i1.ConfigurationStateService }]; } });
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvcGFnZXMvcHJvZHVjdC9wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9wYWdlcy9wcm9kdWN0L3Byb2R1Y3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsZUFBZSxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFReEQsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixZQUNVLDJCQUF3RCxFQUN4RCx5QkFBb0Q7UUFEcEQsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN4RCw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBTHZELDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUErQixJQUFJLENBQUMsQ0FBQztRQUNqRixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBTXpELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFekYsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRU8sS0FBSztRQUNYLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FDaEQsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzs2R0F0QlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsdURDWjdCLDZiQVdBOzJGRENhLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVJRGVmaW5pdGlvbkNvbnRhaW5lciB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgQ01TUHJldmlld0NvbmZpZyB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jbXMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlLCBDb25maWd1cmF0aW9uU3RhdGVTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCB0YXAgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmwtZmxvdy1wcm9kdWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0Q29tcG9uZW50IHtcbiAgcHVibGljIGNvbmZpZzogQ01TUHJldmlld0NvbmZpZztcbiAgcHVibGljIHVpRGVmaW5pdGlvbkNvbnRhaW5lciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVJRGVmaW5pdGlvbkNvbnRhaW5lciB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgc2hvd05vdEZvdW5kJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlOiBDb25maWd1cmF0aW9uUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uU3RhdGVTZXJ2aWNlOiBDb25maWd1cmF0aW9uU3RhdGVTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLnVpRGVmaW5pdGlvbkNvbnRhaW5lciQubmV4dCh0aGlzLmNvbmZpZ3VyYXRpb25SdW50aW1lU2VydmljZS51aURlZmluaXRpb25Db250YWluZXIpO1xuXG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBpbml0JDogKCkgPT4gdGhpcy5pbml0JCgpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGluaXQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TdGF0ZVNlcnZpY2UuaW5pdCQoKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93Tm90Rm91bmQkLm5leHQoQm9vbGVhbighdGhpcy51aURlZmluaXRpb25Db250YWluZXIkLnZhbHVlKSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iLCI8dmwtY21zLXByZXZpZXcgW3VpRGVmaW5pdGlvbl09XCIodWlEZWZpbml0aW9uQ29udGFpbmVyJCB8IGFzeW5jKT8uc291cmNlXCIgW2NvbmZpZ109XCJjb25maWdcIj48L3ZsLWNtcy1wcmV2aWV3PlxuXG48ZGl2ICpuZ0lmPVwic2hvd05vdEZvdW5kJCB8IGFzeW5jXCIgY2xhc3M9XCJub3QtZm91bmQtd3JhcHBlclwiPlxuICA8ZGl2IGNsYXNzPVwibm90LWZvdW5kXCI+XG4gICAgPGRpdiBjbGFzcz1cImljb25cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiPlxuICAgICAgVGhpcyBwcm9kdWN0IGRvZXNuJ3QgaGF2ZSBhIGxpbmtlZCBDb25maWd1cmF0aW9uIFVJLiA8YnIgLz5cbiAgICAgIFBsZWFzZSBjb250YWN0IHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgZm9yIGZ1cnRoZXIgYXNzaXN0YW5jZS5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { inject } from '@angular/core';
|
2
2
|
import { UIDefinitionsAdminApiService } from '@veloceapps/api/v2';
|
3
3
|
import { ConfigurationRuntimeService, FLOW_CUSTOMIZATION, FlowInfoService } from '@veloceapps/sdk/core';
|
4
|
-
import { map, of, switchMap, tap } from 'rxjs';
|
4
|
+
import { catchError, map, of, switchMap, tap } from 'rxjs';
|
5
5
|
export const resolveUIDefinition = () => {
|
6
6
|
const customizationService = inject(FLOW_CUSTOMIZATION, { optional: true });
|
7
7
|
const flowInfoService = inject(FlowInfoService);
|
@@ -23,13 +23,15 @@ export const resolveUIDefinition = () => {
|
|
23
23
|
return of(uiDefContainer);
|
24
24
|
}
|
25
25
|
if (flowInfoService.context.requiredUIDefinitionId) {
|
26
|
-
return uiDefinitionsAdminApiService.fetch$(flowInfoService.context.requiredUIDefinitionId
|
26
|
+
return uiDefinitionsAdminApiService.fetch$(flowInfoService.context.requiredUIDefinitionId, {
|
27
|
+
skipErrorHandler: true,
|
28
|
+
});
|
27
29
|
}
|
28
30
|
return uiDefinitionsAdminApiService
|
29
31
|
.fetchAll$({
|
30
32
|
productId,
|
31
33
|
defaultUIDefinitionId: flowInfoService.context.defaultUIDefinitionId,
|
32
|
-
})
|
34
|
+
}, { skipErrorHandler: true })
|
33
35
|
.pipe(map((uiDefinitionContainers) => {
|
34
36
|
const uiDefContainer = uiDefinitionContainers[0];
|
35
37
|
if (!uiDefContainer) {
|
@@ -37,6 +39,6 @@ export const resolveUIDefinition = () => {
|
|
37
39
|
}
|
38
40
|
return uiDefContainer;
|
39
41
|
}));
|
40
|
-
}), tap(uiDefContainer => (configurationRuntimeService.uiDefinitionContainer = uiDefContainer)));
|
42
|
+
}), catchError(() => of(null)), tap(uiDefContainer => (configurationRuntimeService.uiDefinitionContainer = uiDefContainer)));
|
41
43
|
};
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZGVmaW5pdGlvbi5yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9yZXNvbHZlcnMvdWktZGVmaW5pdGlvbi5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBNEMsR0FBRyxFQUFFO0lBQy9FLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUUsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sNEJBQTRCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDMUUsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUV4RSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUM5QyxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0tBQzFFO0lBRUQsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUN2QixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxlQUFlLEVBQUU7WUFDeEQsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEI7UUFFRCxPQUFPLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkUsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1FBQ3pCLG9DQUFvQztRQUNwQyxJQUFJLGNBQWMsRUFBRTtZQUNsQixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUMzQjtRQUVELElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtZQUNsRCxPQUFPLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFO2dCQUN6RixnQkFBZ0IsRUFBRSxJQUFJO2FBQ3ZCLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyw0QkFBNEI7YUFDaEMsU0FBUyxDQUNSO1lBQ0UsU0FBUztZQUNULHFCQUFxQixFQUFFLGVBQWUsQ0FBQyxPQUFPLENBQUMscUJBQXFCO1NBQ3JFLEVBQ0QsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FDM0I7YUFDQSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsc0JBQStDLEVBQUUsRUFBRTtZQUN0RCxNQUFNLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixTQUFTLGtCQUFrQixDQUFDLENBQUM7YUFDN0U7WUFFRCxPQUFPLGNBQWMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMxQixHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLHFCQUFxQixHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQzVGLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc29sdmVGbiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBVSURlZmluaXRpb25zQWRtaW5BcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpL3YyJztcbmltcG9ydCB7IFVJRGVmaW5pdGlvbkNvbnRhaW5lciB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlLCBGTE9XX0NVU1RPTUlaQVRJT04sIEZsb3dJbmZvU2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgb2YsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlVUlEZWZpbml0aW9uOiBSZXNvbHZlRm48VUlEZWZpbml0aW9uQ29udGFpbmVyIHwgbnVsbD4gPSAoKSA9PiB7XG4gIGNvbnN0IGN1c3RvbWl6YXRpb25TZXJ2aWNlID0gaW5qZWN0KEZMT1dfQ1VTVE9NSVpBVElPTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgY29uc3QgZmxvd0luZm9TZXJ2aWNlID0gaW5qZWN0KEZsb3dJbmZvU2VydmljZSk7XG4gIGNvbnN0IHVpRGVmaW5pdGlvbnNBZG1pbkFwaVNlcnZpY2UgPSBpbmplY3QoVUlEZWZpbml0aW9uc0FkbWluQXBpU2VydmljZSk7XG4gIGNvbnN0IGNvbmZpZ3VyYXRpb25SdW50aW1lU2VydmljZSA9IGluamVjdChDb25maWd1cmF0aW9uUnVudGltZVNlcnZpY2UpO1xuXG4gIGNvbnN0IHsgcHJvZHVjdElkIH0gPSBmbG93SW5mb1NlcnZpY2UuY29udGV4dDtcbiAgaWYgKCFwcm9kdWN0SWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBzdGFydCBjb25maWd1cmF0aW9uIGZvciAncHJvZHVjdElkID09IG51bGwnYCk7XG4gIH1cblxuICByZXR1cm4gb2YodW5kZWZpbmVkKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAvLyBUcnkgcmVzb2x2aW5nIHZpYSBjdXN0b21pemF0aW9uIHNlcnZpY2VcbiAgICAgIGlmICghcHJvZHVjdElkIHx8ICFjdXN0b21pemF0aW9uU2VydmljZT8uZ2V0VWlEZWZpbml0aW9uKSB7XG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY3VzdG9taXphdGlvblNlcnZpY2UuZ2V0VWlEZWZpbml0aW9uKGZsb3dJbmZvU2VydmljZS5jb250ZXh0KTtcbiAgICB9KSxcbiAgICBzd2l0Y2hNYXAodWlEZWZDb250YWluZXIgPT4ge1xuICAgICAgLy8gUmVzb2x2ZSBVSURlZmluaXRpb24gZnJvbSB0aGUgb3JnXG4gICAgICBpZiAodWlEZWZDb250YWluZXIpIHtcbiAgICAgICAgcmV0dXJuIG9mKHVpRGVmQ29udGFpbmVyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZsb3dJbmZvU2VydmljZS5jb250ZXh0LnJlcXVpcmVkVUlEZWZpbml0aW9uSWQpIHtcbiAgICAgICAgcmV0dXJuIHVpRGVmaW5pdGlvbnNBZG1pbkFwaVNlcnZpY2UuZmV0Y2gkKGZsb3dJbmZvU2VydmljZS5jb250ZXh0LnJlcXVpcmVkVUlEZWZpbml0aW9uSWQsIHtcbiAgICAgICAgICBza2lwRXJyb3JIYW5kbGVyOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVpRGVmaW5pdGlvbnNBZG1pbkFwaVNlcnZpY2VcbiAgICAgICAgLmZldGNoQWxsJChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm9kdWN0SWQsXG4gICAgICAgICAgICBkZWZhdWx0VUlEZWZpbml0aW9uSWQ6IGZsb3dJbmZvU2VydmljZS5jb250ZXh0LmRlZmF1bHRVSURlZmluaXRpb25JZCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgc2tpcEVycm9ySGFuZGxlcjogdHJ1ZSB9LFxuICAgICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgodWlEZWZpbml0aW9uQ29udGFpbmVyczogVUlEZWZpbml0aW9uQ29udGFpbmVyW10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHVpRGVmQ29udGFpbmVyID0gdWlEZWZpbml0aW9uQ29udGFpbmVyc1swXTtcbiAgICAgICAgICAgIGlmICghdWlEZWZDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVSSBEZWZpbml0aW9uIGZvciBwcm9kdWN0SWQ9JHtwcm9kdWN0SWR9IGlzIG5vdCByZXNvbHZlZGApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdWlEZWZDb250YWluZXI7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfSksXG4gICAgY2F0Y2hFcnJvcigoKSA9PiBvZihudWxsKSksXG4gICAgdGFwKHVpRGVmQ29udGFpbmVyID0+IChjb25maWd1cmF0aW9uUnVudGltZVNlcnZpY2UudWlEZWZpbml0aW9uQ29udGFpbmVyID0gdWlEZWZDb250YWluZXIpKSxcbiAgKTtcbn07XG4iXX0=
|
@@ -1128,20 +1128,23 @@ class ProductComponent {
|
|
1128
1128
|
this.configurationRuntimeService = configurationRuntimeService;
|
1129
1129
|
this.configurationStateService = configurationStateService;
|
1130
1130
|
this.uiDefinitionContainer$ = new BehaviorSubject(null);
|
1131
|
+
this.showNotFound$ = new BehaviorSubject(false);
|
1131
1132
|
this.uiDefinitionContainer$.next(this.configurationRuntimeService.uiDefinitionContainer);
|
1132
1133
|
this.config = {
|
1133
1134
|
init$: () => this.init$(),
|
1134
1135
|
};
|
1135
1136
|
}
|
1136
1137
|
init$() {
|
1137
|
-
return this.configurationStateService.init$()
|
1138
|
+
return this.configurationStateService.init$().pipe(tap(() => {
|
1139
|
+
this.showNotFound$.next(Boolean(!this.uiDefinitionContainer$.value));
|
1140
|
+
}));
|
1138
1141
|
}
|
1139
1142
|
}
|
1140
1143
|
ProductComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductComponent, deps: [{ token: i3$1.ConfigurationRuntimeService }, { token: i3$1.ConfigurationStateService }], target: i0.ɵɵFactoryTarget.Component });
|
1141
|
-
ProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ProductComponent, selector: "vl-flow-product", ngImport: i0, template: "<vl-cms-preview [uiDefinition]=\"(uiDefinitionContainer$ | async)?.source\" [config]=\"config\"></vl-cms-preview>\n", styles: [""], dependencies: [{ kind: "component", type: i5.PreviewComponent, selector: "vl-cms-preview", inputs: ["uiDefinition", "config"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
1144
|
+
ProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ProductComponent, selector: "vl-flow-product", ngImport: i0, template: "<vl-cms-preview [uiDefinition]=\"(uiDefinitionContainer$ | async)?.source\" [config]=\"config\"></vl-cms-preview>\n\n<div *ngIf=\"showNotFound$ | async\" class=\"not-found-wrapper\">\n <div class=\"not-found\">\n <div class=\"icon\"></div>\n <div class=\"message\">\n This product doesn't have a linked Configuration UI. <br />\n Please contact your system administrator for further assistance.\n </div>\n </div>\n</div>\n", styles: [".not-found-wrapper{position:absolute;top:0;display:flex;width:100%;height:100%;justify-content:center;align-items:center;background-color:#fff;z-index:1000}.not-found{display:flex;align-items:center;padding:16px;border-radius:8px;gap:8px;background-color:#f5f5f5}.not-found .icon{width:48px;height:42px;background-image:url(\"data:image/svg+xml,%3Csvg width='48' height='42' viewBox='0 0 48 42' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cellipse cx='24.0798' cy='32.6052' rx='2.85714' ry='2.63158' fill='%231F2029'/%3E%3Cpath d='M22.285 3.35831C23.0618 2.06363 24.9382 2.06363 25.715 3.35831L46.1826 37.471C46.9824 38.8041 46.0222 40.5 44.4676 40.5L3.53238 40.5C1.97779 40.5 1.01757 38.8041 1.8174 37.471L22.285 3.35831Z' stroke='%23141414' stroke-width='2'/%3E%3Cpath d='M24 17.342V26.8157' stroke='black' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E%0A\")}.not-found .message{font-size:14px;color:#141414;font-weight:300}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PreviewComponent, selector: "vl-cms-preview", inputs: ["uiDefinition", "config"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
1142
1145
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductComponent, decorators: [{
|
1143
1146
|
type: Component,
|
1144
|
-
args: [{ selector: 'vl-flow-product', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vl-cms-preview [uiDefinition]=\"(uiDefinitionContainer$ | async)?.source\" [config]=\"config\"></vl-cms-preview>\n" }]
|
1147
|
+
args: [{ selector: 'vl-flow-product', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vl-cms-preview [uiDefinition]=\"(uiDefinitionContainer$ | async)?.source\" [config]=\"config\"></vl-cms-preview>\n\n<div *ngIf=\"showNotFound$ | async\" class=\"not-found-wrapper\">\n <div class=\"not-found\">\n <div class=\"icon\"></div>\n <div class=\"message\">\n This product doesn't have a linked Configuration UI. <br />\n Please contact your system administrator for further assistance.\n </div>\n </div>\n</div>\n", styles: [".not-found-wrapper{position:absolute;top:0;display:flex;width:100%;height:100%;justify-content:center;align-items:center;background-color:#fff;z-index:1000}.not-found{display:flex;align-items:center;padding:16px;border-radius:8px;gap:8px;background-color:#f5f5f5}.not-found .icon{width:48px;height:42px;background-image:url(\"data:image/svg+xml,%3Csvg width='48' height='42' viewBox='0 0 48 42' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cellipse cx='24.0798' cy='32.6052' rx='2.85714' ry='2.63158' fill='%231F2029'/%3E%3Cpath d='M22.285 3.35831C23.0618 2.06363 24.9382 2.06363 25.715 3.35831L46.1826 37.471C46.9824 38.8041 46.0222 40.5 44.4676 40.5L3.53238 40.5C1.97779 40.5 1.01757 38.8041 1.8174 37.471L22.285 3.35831Z' stroke='%23141414' stroke-width='2'/%3E%3Cpath d='M24 17.342V26.8157' stroke='black' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E%0A\")}.not-found .message{font-size:14px;color:#141414;font-weight:300}\n"] }]
|
1145
1148
|
}], ctorParameters: function () { return [{ type: i3$1.ConfigurationRuntimeService }, { type: i3$1.ConfigurationStateService }]; } });
|
1146
1149
|
|
1147
1150
|
class ProductModule {
|
@@ -1426,13 +1429,15 @@ const resolveUIDefinition = () => {
|
|
1426
1429
|
return of(uiDefContainer);
|
1427
1430
|
}
|
1428
1431
|
if (flowInfoService.context.requiredUIDefinitionId) {
|
1429
|
-
return uiDefinitionsAdminApiService.fetch$(flowInfoService.context.requiredUIDefinitionId
|
1432
|
+
return uiDefinitionsAdminApiService.fetch$(flowInfoService.context.requiredUIDefinitionId, {
|
1433
|
+
skipErrorHandler: true,
|
1434
|
+
});
|
1430
1435
|
}
|
1431
1436
|
return uiDefinitionsAdminApiService
|
1432
1437
|
.fetchAll$({
|
1433
1438
|
productId,
|
1434
1439
|
defaultUIDefinitionId: flowInfoService.context.defaultUIDefinitionId,
|
1435
|
-
})
|
1440
|
+
}, { skipErrorHandler: true })
|
1436
1441
|
.pipe(map((uiDefinitionContainers) => {
|
1437
1442
|
const uiDefContainer = uiDefinitionContainers[0];
|
1438
1443
|
if (!uiDefContainer) {
|
@@ -1440,7 +1445,7 @@ const resolveUIDefinition = () => {
|
|
1440
1445
|
}
|
1441
1446
|
return uiDefContainer;
|
1442
1447
|
}));
|
1443
|
-
}), tap(uiDefContainer => (configurationRuntimeService.uiDefinitionContainer = uiDefContainer)));
|
1448
|
+
}), catchError(() => of(null)), tap(uiDefContainer => (configurationRuntimeService.uiDefinitionContainer = uiDefContainer)));
|
1444
1449
|
};
|
1445
1450
|
|
1446
1451
|
const rootRoute = {
|