q2-tecton-platform 1.55.3 → 1.56.0
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/dist/bundle-report.json +1 -1
- package/dist/esm/actions/showOverpanelSetup.d.ts +0 -9
- package/dist/esm/actions/showOverpanelSetup.d.ts.map +1 -1
- package/dist/esm/actions/showOverpanelSetup.js +93 -36
- package/dist/esm/setup/index.d.ts +31 -29
- package/dist/esm/setup/index.d.ts.map +1 -1
- package/dist/esm/setup/index.js +54 -0
- package/dist/esm/types/config.d.ts +3 -2
- package/dist/esm/types/config.d.ts.map +1 -1
- package/dist/esm/utility/filterPublicOverpanels.d.ts +4 -0
- package/dist/esm/utility/filterPublicOverpanels.d.ts.map +1 -0
- package/dist/esm/utility/filterPublicOverpanels.js +18 -0
- package/dist/umd/q2-tecton-platform.js +1 -1
- package/package.json +4 -4
@@ -1,5 +1,6 @@
|
|
1
1
|
import { getPathResolutionInfo } from '../private-helpers/resolveFeature.js';
|
2
2
|
import validateActionParameters from '../utility/validateActionParameters.js';
|
3
|
+
import filterPublicOverpanels from '../utility/filterPublicOverpanels.js';
|
3
4
|
/**
|
4
5
|
* Setup the showOverpanel API
|
5
6
|
*
|
@@ -15,44 +16,100 @@ export default function showOverpanelSetup(messageBus, tectonConfig$, legacyCont
|
|
15
16
|
if (legacyControlBus.showOverpanel) {
|
16
17
|
capabilities.add('showOverpanel');
|
17
18
|
const subscription = messageBus.sendResponse('showOverpanel', async (messageBody) => {
|
18
|
-
var _a, _b, _c, _d, _e, _f, _g
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
19
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
20
|
+
try {
|
21
|
+
let featureConfig;
|
22
|
+
let overpanelConfig;
|
23
|
+
let overpanelConfigPath;
|
24
|
+
let platformOverpanels = [];
|
25
|
+
if (legacyControlBus.getPlatformOverpanels) {
|
26
|
+
platformOverpanels = await legacyControlBus.getPlatformOverpanels();
|
27
|
+
}
|
28
|
+
if (messageBody.useRouteConfig) {
|
29
|
+
/*
|
30
|
+
Called from contextual menus
|
31
|
+
Use the feature passed in the message
|
32
|
+
*/
|
33
|
+
const [featureName, moduleName] = messageBody.overpanelPath.split('.');
|
34
|
+
overpanelConfig = await legacyControlBus.dynamicConfigFetch(featureName, moduleName);
|
35
|
+
overpanelConfigPath = messageBody.overpanelPath;
|
36
|
+
featureConfig = await legacyControlBus.dynamicConfigFetch(overpanelConfig.featureName);
|
37
|
+
}
|
38
|
+
else if (platformOverpanels.includes(messageBody.overpanelPath)) {
|
39
|
+
/*
|
40
|
+
Overpanel is a platform overpanel
|
41
|
+
Use the feature passed in the message
|
42
|
+
*/
|
43
|
+
overpanelConfig = {
|
44
|
+
moduleName: messageBody.overpanelPath,
|
45
|
+
};
|
46
|
+
overpanelConfigPath = messageBody.overpanelPath;
|
47
|
+
featureConfig = {
|
48
|
+
legacyOverpanelName: messageBody.overpanelPath,
|
49
|
+
legacy: true,
|
50
|
+
};
|
51
|
+
}
|
52
|
+
else {
|
53
|
+
const publicOverpanels = filterPublicOverpanels(tectonConfig$.value);
|
54
|
+
const publicOverpanelConfig = publicOverpanels[messageBody.overpanelPath];
|
55
|
+
let resolvedInfo;
|
56
|
+
/*
|
57
|
+
Check if the overpanel is an available public overpanel
|
58
|
+
If it is, use the feature from the public overpanel config
|
59
|
+
*/
|
60
|
+
if (publicOverpanelConfig) {
|
61
|
+
overpanelConfig = publicOverpanelConfig;
|
62
|
+
overpanelConfigPath = `${publicOverpanelConfig.featureName}.${messageBody.overpanelPath}`;
|
63
|
+
featureConfig = await legacyControlBus.dynamicConfigFetch(publicOverpanelConfig.featureName);
|
64
|
+
}
|
65
|
+
else {
|
66
|
+
/*
|
67
|
+
Final check for the overpanel is in the current feature
|
68
|
+
Look for configuredOverpanels in the current feature
|
69
|
+
If no overpanel is found by this step, throw an error
|
70
|
+
*/
|
71
|
+
resolvedInfo = await getPathResolutionInfo(messageBody.moduleId.split('.'), legacyControlBus.dynamicConfigFetch);
|
72
|
+
overpanelConfig = await legacyControlBus
|
73
|
+
.dynamicConfigFetch(resolvedInfo.featureName)
|
74
|
+
.then(feature => {
|
75
|
+
var _a;
|
76
|
+
const overpanel = (_a = feature.configuredOverpanels) === null || _a === void 0 ? void 0 : _a[messageBody.overpanelPath];
|
77
|
+
if (!overpanel) {
|
78
|
+
throw new Error(`Overpanel ${messageBody.overpanelPath} not found.`);
|
79
|
+
}
|
80
|
+
return overpanel;
|
81
|
+
});
|
82
|
+
overpanelConfigPath = `${resolvedInfo.featureName}.${messageBody.overpanelPath}`;
|
83
|
+
featureConfig = await legacyControlBus.dynamicConfigFetch(overpanelConfig.featureName);
|
84
|
+
}
|
85
|
+
}
|
86
|
+
if (featureConfig.legacy && !featureConfig.legacyOverpanelName) {
|
87
|
+
throw new Error('Tried to call a legacy overpanel, but config is missing a legacyOverpanelName');
|
88
|
+
}
|
89
|
+
if (messageBody.params && legacyControlBus.updateParams && !featureConfig.legacy) {
|
90
|
+
const actionParameters = (_c = (_b = (_a = featureConfig.modules) === null || _a === void 0 ? void 0 : _a[overpanelConfig.moduleName]) === null || _b === void 0 ? void 0 : _b.meta) === null || _c === void 0 ? void 0 : _c.params;
|
91
|
+
if (actionParameters) {
|
92
|
+
validateActionParameters(messageBody.params, actionParameters);
|
93
|
+
legacyControlBus.updateParams(`tectonOverpanel.${overpanelConfigPath}`, messageBody.params, actionParameters);
|
94
|
+
}
|
95
|
+
}
|
96
|
+
const overpanelId = featureConfig.legacy
|
97
|
+
? messageBody.params
|
98
|
+
? JSON.stringify(messageBody.params)
|
99
|
+
: ''
|
100
|
+
: overpanelConfigPath;
|
101
|
+
const legacyOverpanelName = featureConfig.legacy ? featureConfig.legacyOverpanelName : undefined;
|
102
|
+
const overpanelConfigOptions = ('options' in overpanelConfig && overpanelConfig.options) || {};
|
103
|
+
const size = ((_d = messageBody.options) === null || _d === void 0 ? void 0 : _d.size) || overpanelConfigOptions.size;
|
104
|
+
const height = ((_e = messageBody.options) === null || _e === void 0 ? void 0 : _e.height) || overpanelConfigOptions.height;
|
105
|
+
const fullWidth = ((_f = messageBody.options) === null || _f === void 0 ? void 0 : _f.fullWidth) || overpanelConfigOptions.fullWidth;
|
106
|
+
const [, , module] = messageBody.moduleId.split('.');
|
107
|
+
const testId = ((_g = messageBody.options) === null || _g === void 0 ? void 0 : _g.testId) || overpanelConfigOptions.testId || module;
|
108
|
+
return legacyControlBus.showOverpanel(overpanelId, !!fullWidth, legacyOverpanelName, size, height, testId);
|
27
109
|
}
|
28
|
-
|
29
|
-
|
30
|
-
// overpanelPath is the name of the overpanel
|
31
|
-
const resolvedInfo = await getPathResolutionInfo(messageBody.moduleId.split('.'), legacyControlBus.dynamicConfigFetch);
|
32
|
-
overpanelConfig = await legacyControlBus
|
33
|
-
.dynamicConfigFetch(resolvedInfo.featureName)
|
34
|
-
.then(x => x.configuredOverpanels[messageBody.overpanelPath]);
|
35
|
-
overpanelConfigPath = `${resolvedInfo.featureName}.${messageBody.overpanelPath}`;
|
110
|
+
catch (error) {
|
111
|
+
return Promise.reject(error);
|
36
112
|
}
|
37
|
-
const featureConfig = await legacyControlBus.dynamicConfigFetch(overpanelConfig.featureName);
|
38
|
-
if (featureConfig.legacy && !featureConfig.legacyOverpanelName) {
|
39
|
-
throw new Error('Tried to call a legacy overpanel, but config is missing a legacyOverpanelName');
|
40
|
-
}
|
41
|
-
const actionParameters = featureConfig.modules[overpanelConfig.moduleName].meta.params;
|
42
|
-
validateActionParameters(messageBody.params, actionParameters);
|
43
|
-
if (messageBody.params && legacyControlBus.updateParams && !featureConfig.legacy) {
|
44
|
-
legacyControlBus.updateParams(`tectonOverpanel.${overpanelConfigPath}`, messageBody.params, actionParameters);
|
45
|
-
}
|
46
|
-
const overpanelId = featureConfig.legacy && messageBody.params
|
47
|
-
? JSON.stringify(messageBody.params)
|
48
|
-
: overpanelConfigPath;
|
49
|
-
const legacyOverpanelName = featureConfig.legacy ? featureConfig.legacyOverpanelName : undefined;
|
50
|
-
const size = ((_a = messageBody.options) === null || _a === void 0 ? void 0 : _a.size) || ((_b = overpanelConfig.options) === null || _b === void 0 ? void 0 : _b.size);
|
51
|
-
const height = ((_c = messageBody.options) === null || _c === void 0 ? void 0 : _c.height) || ((_d = overpanelConfig.options) === null || _d === void 0 ? void 0 : _d.height);
|
52
|
-
const fullWidth = ((_e = messageBody.options) === null || _e === void 0 ? void 0 : _e.fullWidth) || ((_f = overpanelConfig.options) === null || _f === void 0 ? void 0 : _f.fullWidth);
|
53
|
-
const [, , module] = messageBody.moduleId.split('.');
|
54
|
-
const testId = ((_g = messageBody.options) === null || _g === void 0 ? void 0 : _g.testId) || ((_h = overpanelConfig.options) === null || _h === void 0 ? void 0 : _h.testId) || module;
|
55
|
-
return legacyControlBus.showOverpanel(overpanelId, !!fullWidth, legacyOverpanelName, size, height, testId);
|
56
113
|
});
|
57
114
|
teardowns.push(() => subscription.unsubscribe());
|
58
115
|
}
|
@@ -9,80 +9,81 @@ import { Change, Verb } from 'q2-tecton-common/lib/types/config';
|
|
9
9
|
import { PartialRecord } from 'q2-tecton-common/lib/types/record';
|
10
10
|
import ICssThemeProperty from 'q2-tecton-common/lib/types/cssThemeProperty';
|
11
11
|
import { MobileSDKCapabilityResponse } from 'q2-tecton-common/lib/types/mobile';
|
12
|
-
import {
|
12
|
+
import { OverpanelOptions } from 'q2-tecton-common/lib/types/overpanels';
|
13
13
|
import { IOpenUrlOptions } from '../actions/openURLSetup';
|
14
14
|
import { IPlatformEvent } from '../sources/platformEventNotificationSetup';
|
15
15
|
export interface ITectonPlatformControls {
|
16
|
+
accessConfig?(key: string): IDict<string>;
|
17
|
+
actionRequired?(uuid: string, title: string, message?: string): void;
|
16
18
|
authorizeTransactionWithMfa?(promptOptions: IDict<any>): Promise<void>;
|
19
|
+
buildIframeURL?(url: string): string;
|
17
20
|
cdnOverride?(): Promise<string>;
|
21
|
+
clearCacheByPrefix?(prefix: string): void;
|
22
|
+
clearLoadingModal?(): void;
|
23
|
+
clearParams?(moduleId: string): void;
|
24
|
+
clearTransferCache?(tranIdHash?: string[], accountIdHash?: string[]): void;
|
25
|
+
closeOverpanel?(): void;
|
26
|
+
cssPropertiesChanged?(fn: (cssProperties: ICssThemeProperty[]) => void): void;
|
27
|
+
executeDynamicPlatformAPI?(functionName: string, args: any[]): Promise<IDict<string>>;
|
18
28
|
dynamicConfigFetch(featureName: string): Promise<FeatureManifest>;
|
19
29
|
dynamicConfigFetch(featureName: string, moduleName: string): Promise<IModuleConfig>;
|
20
30
|
getAuthPayload(): [{
|
21
31
|
key: string;
|
22
32
|
value: string;
|
23
33
|
}];
|
34
|
+
getAuthToken?(): Promise<string>;
|
24
35
|
getBaseAssetPath(subPath: string): string;
|
36
|
+
getCapabilities?(...args: string[]): IDict<boolean>;
|
25
37
|
getCurrentLanguage(): string;
|
26
38
|
getCurrentTheme(): string;
|
27
39
|
getCustomLanguageURL(fileName: string): string;
|
28
40
|
getCustomerSpecificAssetPath(path: string): string;
|
29
41
|
getFeatureConfig(configVariables: string[]): Promise<IDict<any>>;
|
30
|
-
|
31
|
-
accessConfig?(key: string): IDict<string>;
|
32
|
-
buildIframeURL?(url: string): string;
|
33
|
-
clearCacheByPrefix?(prefix: string): void;
|
34
|
-
clearLoadingModal?(): void;
|
35
|
-
manageChanges?(changeData: PartialRecord<Verb, Change[]>): Promise<XMLHttpRequest>;
|
36
|
-
clearParams?(moduleId: string): void;
|
37
|
-
clearTransferCache?(tranIdHash?: string[], accountIdHash?: string[]): void;
|
38
|
-
closeOverpanel?(): void;
|
39
|
-
executeDynamicPlatformAPI?(functionName: string, args: any[]): Promise<IDict<string>>;
|
40
|
-
getCapabilities?(...args: string[]): IDict<boolean>;
|
42
|
+
getGlobalScripts?(): Promise<string[]>;
|
41
43
|
getPendoInfo?(): PendoInfo;
|
42
44
|
getPlatformInfo?(requestedInfo: string[]): Promise<IDict<string>>;
|
43
|
-
|
44
|
-
|
45
|
-
|
45
|
+
getPlatformOverpanels?(): Promise<string[]>;
|
46
|
+
getPlatformRootSelector?(): string | undefined;
|
47
|
+
getMobileSDKCapabilities?(): Promise<MobileSDKCapabilityResponse>;
|
48
|
+
getSurroundingOffsets(): {
|
49
|
+
top: number;
|
50
|
+
bottom: number;
|
51
|
+
};
|
46
52
|
getUUXInfo?(): IUUXInfo;
|
53
|
+
getVersionInfo?(): IVersionInfo;
|
47
54
|
isUUXPath?(featureKey: string, options?: IDict<any>): boolean;
|
48
|
-
keepAlive?(): void;
|
49
55
|
languageChanged?(fn: (lang: string) => void): void;
|
50
|
-
registerLogoffHook?(fn: () => void): void;
|
51
56
|
logToServer?(featureName: string, message: string, logLevel: string): void;
|
57
|
+
manageChanges?(changeData: PartialRecord<Verb, Change[]>): Promise<XMLHttpRequest>;
|
52
58
|
navigateTo?(legacy: boolean, key: string, urlParams?: string[], queryParams?: IDict<any>): void;
|
53
|
-
platformEventNotification?(fn: (event: IPlatformEvent) => void): void;
|
54
59
|
openURL?(url: string, options: IOpenUrlOptions): void;
|
60
|
+
platformEventNotification?(fn: (event: IPlatformEvent) => void): void;
|
55
61
|
promptForMFA?(featureName: string, promptOptions: IDict<any>): Promise<void>;
|
62
|
+
keepAlive?(): void;
|
56
63
|
refetchAccountsNotification?(): void;
|
57
64
|
refetchRequired?(fn: (type: string) => void): void;
|
65
|
+
registerLogoffHook?(fn: () => void): void;
|
66
|
+
removeActionRequired?(uuid: string): void;
|
58
67
|
requestExtensionData?(featureName: string, requestBody?: IDict<any>): Promise<IExtensionResponse>;
|
59
68
|
sendAlert?(alertMessage: IPlatformAlertOptions): Promise<string | void>;
|
60
|
-
sendRequest?(route: string, method: string, requestBody?: string): Promise<TectonResponse>;
|
61
69
|
sendFormDataRequest?(route: string, method: string, requestBody?: FormData): Promise<TectonResponse>;
|
70
|
+
sendRequest?(route: string, method: string, requestBody?: string): Promise<TectonResponse>;
|
62
71
|
setOverpanelTitle?(title: string): void;
|
63
72
|
setPageTitle?(title: string): void;
|
64
73
|
setupDynamicPlatformAPI?(): Set<string>;
|
74
|
+
showActionSheet?(data: ActionSheetData): Promise<ActionSheetListCloseData>;
|
65
75
|
showLoadingModal?(title: string): void;
|
66
76
|
showModal?(options: IDict<any>): Promise<string>;
|
67
|
-
showOverpanel?(overpanelId: string, fullWidth:
|
68
|
-
showActionSheet?(data: ActionSheetData): Promise<ActionSheetListCloseData>;
|
77
|
+
showOverpanel?(overpanelId: string, fullWidth: OverpanelOptions['fullWidth'], legacyOverpanelName: string | undefined, size: OverpanelOptions['size'], height: OverpanelOptions['height'], testId: OverpanelOptions['testId']): Promise<IDict<any> | void>;
|
69
78
|
takePicture?(options: {
|
70
79
|
overlayText?: string;
|
71
80
|
helpText?: string;
|
72
81
|
}): Promise<string>;
|
73
82
|
themeChanged?(fn: (theme: string) => void): void;
|
74
|
-
cssPropertiesChanged?(fn: (cssProperties: ICssThemeProperty[]) => void): void;
|
75
83
|
updateParams?(moduleId: string, params?: IDict<string>, paramOptions?: IDict<ParamOptions>): void;
|
76
|
-
actionRequired?(uuid: string, title: string, message?: string): void;
|
77
|
-
removeActionRequired?(uuid: string): void;
|
78
|
-
getSurroundingOffsets(): {
|
79
|
-
top: number;
|
80
|
-
bottom: number;
|
81
|
-
};
|
82
84
|
verifyMFA?(options: {
|
83
85
|
token: string;
|
84
86
|
}): Promise<any>;
|
85
|
-
getMobileSDKCapabilities?(): Promise<MobileSDKCapabilityResponse>;
|
86
87
|
}
|
87
88
|
export interface ITectonPlatformInputAPI {
|
88
89
|
configForOverpanel(overpanelId: string): Promise<IModuleConfig>;
|
@@ -96,6 +97,7 @@ export interface ITectonPlatformInputAPI {
|
|
96
97
|
updateConfig(config: TectonRuntimeConfig): void;
|
97
98
|
verifyConfig(): void;
|
98
99
|
updateApplicationModules(isAuthenticated: boolean): void;
|
100
|
+
overpanelOverrideLookup(overpanelKey: string): Promise<IModuleConfig | IDict<any>>;
|
99
101
|
}
|
100
102
|
export interface IParamsChanged {
|
101
103
|
changedParams: IDict<string>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/setup/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAEtG,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnG,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AASvC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,iBAAiB,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/setup/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/setup/index.js
CHANGED
@@ -114,6 +114,60 @@ export function init(tectonConfig, legacyControlBus, testOptions) {
|
|
114
114
|
});
|
115
115
|
},
|
116
116
|
configForOverpanel,
|
117
|
+
overpanelOverrideLookup(overpanelKey) {
|
118
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
119
|
+
const configValue = tectonConfig$.getValue();
|
120
|
+
const overpanelOverrides = configValue.overpanelOverrides || [];
|
121
|
+
const overpanelOverride = overpanelOverrides.find((overpanelOverride) => overpanelOverride.overpanelName === overpanelKey);
|
122
|
+
const { featureName = '', overpanelName = '' } = (_a = overpanelOverride === null || overpanelOverride === void 0 ? void 0 : overpanelOverride.override) !== null && _a !== void 0 ? _a : {};
|
123
|
+
const overpanelPath = `${featureName}.${overpanelName}`;
|
124
|
+
const overpanelFeatureConfig = (_b = configValue.features) === null || _b === void 0 ? void 0 : _b[featureName];
|
125
|
+
const failureConditions = [
|
126
|
+
{
|
127
|
+
condition: !overpanelOverride,
|
128
|
+
message: `No overpanel override found for ${overpanelKey}.`,
|
129
|
+
},
|
130
|
+
{
|
131
|
+
condition: !featureName || !overpanelName,
|
132
|
+
message: `Invalid overpanel override configuration for ${overpanelKey}.`,
|
133
|
+
},
|
134
|
+
{
|
135
|
+
condition: !overpanelFeatureConfig,
|
136
|
+
message: `Feature ${featureName} not found in config.`,
|
137
|
+
},
|
138
|
+
{
|
139
|
+
condition: (overpanelFeatureConfig === null || overpanelFeatureConfig === void 0 ? void 0 : overpanelFeatureConfig.rightsEnabled) === false,
|
140
|
+
message: `Feature ${featureName} is not enabled for this user.`,
|
141
|
+
},
|
142
|
+
{
|
143
|
+
condition: !((_c = overpanelFeatureConfig === null || overpanelFeatureConfig === void 0 ? void 0 : overpanelFeatureConfig.configuredOverpanels) === null || _c === void 0 ? void 0 : _c[overpanelName]),
|
144
|
+
message: `Override overpanel ${overpanelName} not found in config.`,
|
145
|
+
},
|
146
|
+
{
|
147
|
+
condition: ((_g = (_d = overpanelFeatureConfig === null || overpanelFeatureConfig === void 0 ? void 0 : overpanelFeatureConfig.modules) === null || _d === void 0 ? void 0 : _d[(_f = (_e = overpanelFeatureConfig === null || overpanelFeatureConfig === void 0 ? void 0 : overpanelFeatureConfig.configuredOverpanels) === null || _e === void 0 ? void 0 : _e[overpanelName]) === null || _f === void 0 ? void 0 : _f.moduleName]) === null || _g === void 0 ? void 0 : _g.rightsEnabled) === false,
|
148
|
+
message: `The module ${(_j = (_h = overpanelFeatureConfig === null || overpanelFeatureConfig === void 0 ? void 0 : overpanelFeatureConfig.configuredOverpanels) === null || _h === void 0 ? void 0 : _h[overpanelName]) === null || _j === void 0 ? void 0 : _j.moduleName} for feature ${featureName} is not enabled for this user.`,
|
149
|
+
},
|
150
|
+
];
|
151
|
+
for (const { condition, message } of failureConditions) {
|
152
|
+
if (condition) {
|
153
|
+
return Promise.resolve({
|
154
|
+
override: false,
|
155
|
+
message,
|
156
|
+
});
|
157
|
+
}
|
158
|
+
}
|
159
|
+
return configForOverpanel(overpanelPath).then(overpanelConfig => {
|
160
|
+
const override = {
|
161
|
+
override: true,
|
162
|
+
overpanelId: overpanelPath,
|
163
|
+
overpanelConfig,
|
164
|
+
};
|
165
|
+
if (overpanelOverride === null || overpanelOverride === void 0 ? void 0 : overpanelOverride.contextInfo) {
|
166
|
+
override.contextInfo = overpanelOverride.contextInfo;
|
167
|
+
}
|
168
|
+
return Promise.resolve(override);
|
169
|
+
});
|
170
|
+
},
|
117
171
|
updateApplicationModules(isAuthenticated) {
|
118
172
|
setupApplicationModules(tectonConfig, isAuthenticated);
|
119
173
|
},
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { IDict } from './utility';
|
2
2
|
import { LoadingOptions } from 'q2-tecton-common/lib/types/config';
|
3
|
-
import {
|
3
|
+
import { OverpanelOptions, OverpanelOverride } from 'q2-tecton-common/lib/types/overpanels';
|
4
4
|
export interface ConfiguredOutlets {
|
5
5
|
[outletName: string]: IModuleLookup[] | ITabLookup[] | IMenuLookup[];
|
6
6
|
}
|
@@ -27,10 +27,10 @@ export interface IModuleConfig {
|
|
27
27
|
configuredOutlets: ConfiguredOutlets;
|
28
28
|
additionalDomains?: string[] | undefined;
|
29
29
|
allowDirectives?: string[] | undefined;
|
30
|
-
options?: IOverpanelOptions;
|
31
30
|
}
|
32
31
|
export interface IOverpanelConfig extends IModuleConfig {
|
33
32
|
public?: boolean;
|
33
|
+
options?: OverpanelOptions;
|
34
34
|
}
|
35
35
|
export declare type DepositAccountTypes = 'Account::Deposit' | 'Account::Checking' | 'Account::MoneyMarket' | 'Account::Savings' | 'Account::CertificateOfDeposit' | 'Account::Goal';
|
36
36
|
export declare type LoanAccountTypes = 'Account::Loan' | 'Account::Installment' | 'Account::Commercial' | 'Account::Mortgage' | 'Account::LineOfCredit' | 'Account::HomeEquity';
|
@@ -108,6 +108,7 @@ export interface FeatureManifest {
|
|
108
108
|
}
|
109
109
|
export interface TectonRuntimeConfig {
|
110
110
|
features: IDict<FeatureManifest>;
|
111
|
+
overpanelOverrides?: OverpanelOverride[];
|
111
112
|
}
|
112
113
|
export interface IOverpanelModuleMeta<S extends ModuleShape = ModuleShape, C extends ModuleContext = ModuleContext, R extends object = object> extends IModuleMeta<IModuleType<S, C, true>> {
|
113
114
|
response?: R;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { TectonRuntimeConfig } from '../types/config';
|
2
|
+
import { PublicOverpanels } from 'q2-tecton-common/lib/types/overpanels';
|
3
|
+
export default function filterPublicOverpanels(tectonConfig: TectonRuntimeConfig): PublicOverpanels;
|
4
|
+
//# sourceMappingURL=filterPublicOverpanels.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"filterPublicOverpanels.d.ts","sourceRoot":"","sources":["../../../src/utility/filterPublicOverpanels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,YAAY,EAAE,mBAAmB,GAAG,gBAAgB,CAsBlG"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
export default function filterPublicOverpanels(tectonConfig) {
|
2
|
+
// Filter and transform the configuredOverpanels to only include public ones
|
3
|
+
// and ensure they have a featureName set to the parentKey if it is not already set.
|
4
|
+
return Object.entries(tectonConfig.features).reduce((publicOverpanels, [parentKey, parentValue]) => {
|
5
|
+
const configuredOverpanels = parentValue.configuredOverpanels;
|
6
|
+
if (configuredOverpanels) {
|
7
|
+
Object.entries(configuredOverpanels)
|
8
|
+
.filter(([_, overpanel]) => overpanel.public === true)
|
9
|
+
.forEach(([key, overpanel]) => {
|
10
|
+
if (!overpanel.featureName) {
|
11
|
+
overpanel.featureName = parentKey;
|
12
|
+
}
|
13
|
+
publicOverpanels[key] = overpanel;
|
14
|
+
});
|
15
|
+
}
|
16
|
+
return publicOverpanels;
|
17
|
+
}, {});
|
18
|
+
}
|