q2-tecton-platform 1.61.0 → 1.62.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/actionRequiredSetup.js +7 -2
- package/dist/esm/actions/authorizeTransactionWithMfaSetup.js +4 -1
- package/dist/esm/actions/clearCacheSetup.js +7 -4
- package/dist/esm/actions/clearParamsSetup.js +4 -1
- package/dist/esm/actions/closeOverpanelSetup.js +6 -3
- package/dist/esm/actions/index.js +51 -48
- package/dist/esm/actions/keepAliveSetup.js +4 -1
- package/dist/esm/actions/loadingModalSetup.js +4 -1
- package/dist/esm/actions/logToServerSetup.js +6 -3
- package/dist/esm/actions/manageChangesSetup.js +4 -1
- package/dist/esm/actions/navigateToSetup.js +8 -5
- package/dist/esm/actions/openURLSetup.js +4 -1
- package/dist/esm/actions/printWindowSetup.js +4 -1
- package/dist/esm/actions/refetchAccountsSetup.js +4 -1
- package/dist/esm/actions/scrollToSetup.js +7 -4
- package/dist/esm/actions/scrollToTopSetup.js +4 -1
- package/dist/esm/actions/sendAlertSetup.js +4 -1
- package/dist/esm/actions/setParamsSetup.js +6 -3
- package/dist/esm/actions/setTitleSetup.js +6 -3
- package/dist/esm/actions/showActionSheetSetup.js +4 -1
- package/dist/esm/actions/showModalSetup.js +4 -1
- package/dist/esm/actions/showOverpanelSetup.js +10 -7
- package/dist/esm/actions/t.d.ts.map +1 -1
- package/dist/esm/actions/t.js +18 -7
- package/dist/esm/actions/verifyMFASetup.js +4 -1
- package/dist/esm/index.js +5 -1
- package/dist/esm/outlets/index.js +9 -6
- package/dist/esm/outlets/platform-outlet.d.ts.map +1 -1
- package/dist/esm/outlets/platform-outlet.js +84 -50
- package/dist/esm/private-helpers/assetPathResolvers.js +11 -6
- package/dist/esm/private-helpers/cdnOverrideSetup.js +4 -1
- package/dist/esm/private-helpers/contextResolver.js +7 -2
- package/dist/esm/private-helpers/getApplicationModules.js +5 -1
- package/dist/esm/private-helpers/getAuthPayload.js +4 -1
- package/dist/esm/private-helpers/getModuleParams.js +4 -1
- package/dist/esm/private-helpers/index.js +22 -19
- package/dist/esm/private-helpers/mobileSDKCapabilities.js +4 -1
- package/dist/esm/private-helpers/platformCapabilities.js +4 -1
- package/dist/esm/private-helpers/resolveFeature.d.ts +2 -2
- package/dist/esm/private-helpers/resolveFeature.d.ts.map +1 -1
- package/dist/esm/private-helpers/resolveFeature.js +39 -28
- package/dist/esm/private-helpers/resolveMenu.js +23 -18
- package/dist/esm/private-helpers/resolveTabs.js +21 -16
- package/dist/esm/private-helpers/setupRegisterOutlet.js +7 -3
- package/dist/esm/setup/application-modules.js +11 -5
- package/dist/esm/setup/default-capabilities.js +4 -1
- package/dist/esm/setup/dynamic-capabilities.js +4 -1
- package/dist/esm/setup/index.d.ts +1 -1
- package/dist/esm/setup/index.d.ts.map +1 -1
- package/dist/esm/setup/index.js +32 -25
- package/dist/esm/setup/styles.d.ts.map +1 -1
- package/dist/esm/setup/styles.js +22 -11
- package/dist/esm/sources/cacheClearedSetup.js +7 -4
- package/dist/esm/sources/canUserSetup.js +4 -1
- package/dist/esm/sources/getAuthTokenSetup.js +4 -1
- package/dist/esm/sources/getFeatureConfigSetup.js +6 -3
- package/dist/esm/sources/getGlobalScriptsSetup.js +4 -1
- package/dist/esm/sources/getPendoInfoSetup.js +4 -1
- package/dist/esm/sources/getPlatformDimensionsSetup.js +9 -6
- package/dist/esm/sources/getPlatformInfoSetup.js +4 -1
- package/dist/esm/sources/getVersionInfoSetup.js +4 -1
- package/dist/esm/sources/index.js +44 -41
- package/dist/esm/sources/isNavigableSetup.js +6 -3
- package/dist/esm/sources/platformCssPropertiesChangedSetup.d.ts.map +1 -1
- package/dist/esm/sources/platformCssPropertiesChangedSetup.js +22 -12
- package/dist/esm/sources/platformEventNotificationSetup.js +7 -4
- package/dist/esm/sources/platformScrollChangedSetup.js +12 -9
- package/dist/esm/sources/promptForMFASetup.js +6 -3
- package/dist/esm/sources/refetchRequiredSetup.js +7 -4
- package/dist/esm/sources/requestExtensionDataSetup.js +6 -3
- package/dist/esm/sources/requestPlatformDataSetup.js +15 -8
- package/dist/esm/sources/setupModuleParams.js +10 -7
- package/dist/esm/sources/takePictureSetup.js +4 -1
- package/dist/esm/sources/tectonCacheSetup.js +4 -1
- package/dist/esm/types/alerts.js +5 -2
- package/dist/esm/types/config.d.ts +6 -6
- package/dist/esm/types/config.d.ts.map +1 -1
- package/dist/esm/types/config.js +2 -1
- package/dist/esm/types/index.d.ts +3 -3
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/types/index.js +2 -1
- package/dist/esm/types/pendo.js +2 -1
- package/dist/esm/types/utility.js +2 -1
- package/dist/esm/utility/dimensions-helpers.d.ts +1 -1
- package/dist/esm/utility/dimensions-helpers.d.ts.map +1 -1
- package/dist/esm/utility/dimensions-helpers.js +7 -2
- package/dist/esm/utility/filterPublicOverpanels.js +4 -1
- package/dist/esm/utility/getNavigationData.js +6 -3
- package/dist/esm/utility/message-bus.d.ts +4 -2
- package/dist/esm/utility/message-bus.d.ts.map +1 -1
- package/dist/esm/utility/message-bus.js +10 -5
- package/dist/esm/utility/showActionSheet.js +4 -2
- package/dist/esm/utility/validateActionParameters.js +4 -1
- package/dist/esm/utility/windowHelpers.js +7 -2
- package/dist/umd/q2-tecton-platform.js +1 -2
- package/package.json +14 -10
- package/dist/umd/q2-tecton-platform.js.LICENSE.txt +0 -14
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadTectonPlatformOutlet = exports.tectonPlatformOutletObservedAttrs = exports.createLoadingWrapper = exports.buildIframeSrc = exports.shouldDisplayOutlet = void 0;
|
|
4
|
+
const tecton_outlet_base_1 = require("q2-tecton-common/lib/outlets/tecton-outlet-base");
|
|
5
|
+
const message_bus_1 = require("q2-tecton-common/lib/utility/message-bus");
|
|
6
|
+
const rxjs_1 = require("rxjs");
|
|
7
|
+
const addParamToURL_1 = require("q2-tecton-common/lib/utility/addParamToURL");
|
|
8
|
+
const maybe_not_1 = require("maybe-not");
|
|
9
|
+
const getModuleParams_1 = require("../private-helpers/getModuleParams");
|
|
10
|
+
const contextResolver_1 = require("../private-helpers/contextResolver");
|
|
9
11
|
/**
|
|
10
12
|
* Determines if an outlet should be displayed based on rights, context validation,
|
|
11
13
|
* and authentication requirements
|
|
12
14
|
*/
|
|
13
|
-
|
|
15
|
+
function shouldDisplayOutlet(module, feature, memorizedProps, contextHierarchy) {
|
|
14
16
|
var _a, _b, _c, _d;
|
|
15
17
|
const isMFA = feature.isMFA;
|
|
16
18
|
const isRightsEnabled = module.rightsEnabled !== false;
|
|
@@ -21,7 +23,7 @@ export function shouldDisplayOutlet(module, feature, memorizedProps, contextHier
|
|
|
21
23
|
if (!isRightsEnabled) {
|
|
22
24
|
return false;
|
|
23
25
|
}
|
|
24
|
-
return validateContext({
|
|
26
|
+
return (0, contextResolver_1.validateContext)({
|
|
25
27
|
additionalContext: memorizedProps.additionalContext,
|
|
26
28
|
additionalContextRequirements: module.additionalContextRequirements,
|
|
27
29
|
contextValue: memorizedProps.contextValue,
|
|
@@ -30,30 +32,31 @@ export function shouldDisplayOutlet(module, feature, memorizedProps, contextHier
|
|
|
30
32
|
resolvedContext: memorizedProps.resolvedType,
|
|
31
33
|
}, contextHierarchy);
|
|
32
34
|
}
|
|
35
|
+
exports.shouldDisplayOutlet = shouldDisplayOutlet;
|
|
33
36
|
/**
|
|
34
37
|
* Builds the iframe source URL with all necessary parameters
|
|
35
38
|
*/
|
|
36
|
-
|
|
39
|
+
function buildIframeSrc(urlFromConfig, moduleId, memorizedProps, platformOutletElement, params, formPostAuth, legacyControlBus) {
|
|
37
40
|
const urlBeforeParams = formPostAuth && legacyControlBus.buildIframeURL
|
|
38
41
|
? legacyControlBus.buildIframeURL(urlFromConfig)
|
|
39
42
|
: urlFromConfig;
|
|
40
|
-
let iframeSrc =
|
|
41
|
-
if (isBeta(platformOutletElement)) {
|
|
42
|
-
iframeSrc =
|
|
43
|
+
let iframeSrc = (0, addParamToURL_1.default)(urlBeforeParams, Object.assign(Object.assign({ 'tct-id': moduleId, 'tct-ctxid': memorizedProps.contextValue || '', 'tct-ctxname': memorizedProps.contextId || '' }, (0, getModuleParams_1.default)(moduleId, params.currentParams)), { 'tct-maxHeight': platformOutletElement.style.maxHeight, 'tct-maxWidth': platformOutletElement.style.maxWidth, 'tct-baseClass': (0, tecton_outlet_base_1.getBaseClass)(platformOutletElement), 'tct-outlet-name': platformOutletElement.name || '' }));
|
|
44
|
+
if ((0, tecton_outlet_base_1.isBeta)(platformOutletElement)) {
|
|
45
|
+
iframeSrc = (0, addParamToURL_1.default)(iframeSrc, { 'tct-beta': 'true' });
|
|
43
46
|
}
|
|
44
47
|
return iframeSrc;
|
|
45
48
|
}
|
|
49
|
+
exports.buildIframeSrc = buildIframeSrc;
|
|
46
50
|
/**
|
|
47
51
|
* Creates a loading wrapper element with loaders based on module configuration
|
|
48
52
|
*/
|
|
49
|
-
|
|
50
|
-
var _a;
|
|
53
|
+
function createLoadingWrapper(module, minHeight) {
|
|
54
|
+
var _a, _b, _c;
|
|
51
55
|
const loaderWrapper = document.createElement('div');
|
|
52
|
-
loaderWrapper.style.minHeight = minHeight || '0px';
|
|
53
56
|
loaderWrapper.slot = 'loading-wrapper';
|
|
54
57
|
loaderWrapper.classList.add('loading-wrapper');
|
|
55
58
|
loaderWrapper.setAttribute('data-tecton-module', '');
|
|
56
|
-
const loaders = module.loadingOptions ? buildLoaders(module.loadingOptions) : buildLoaders();
|
|
59
|
+
const loaders = module.loadingOptions ? (0, tecton_outlet_base_1.buildLoaders)(module.loadingOptions) : (0, tecton_outlet_base_1.buildLoaders)();
|
|
57
60
|
if ((_a = module.loadingOptions) === null || _a === void 0 ? void 0 : _a.outlet) {
|
|
58
61
|
const outlet = module.loadingOptions.outlet;
|
|
59
62
|
if (outlet.style)
|
|
@@ -61,6 +64,13 @@ export function createLoadingWrapper(module, minHeight) {
|
|
|
61
64
|
if (outlet.classList)
|
|
62
65
|
loaderWrapper.classList.add(...outlet.classList);
|
|
63
66
|
}
|
|
67
|
+
// Add 'spinner-loader' class to vertically center spinner-type loaders
|
|
68
|
+
const loaderType = (_c = (_b = loaders[0]) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.getAttribute('type');
|
|
69
|
+
if (loaderType === null || loaderType === 'spinner') {
|
|
70
|
+
loaderWrapper.classList.add('spinner-loader');
|
|
71
|
+
}
|
|
72
|
+
// Set minHeight AFTER outlet.style to avoid being overwritten by setAttribute
|
|
73
|
+
loaderWrapper.style.minHeight = minHeight || '0px';
|
|
64
74
|
for (const loaderRow of loaders) {
|
|
65
75
|
const row = document.createElement('div');
|
|
66
76
|
row.className = 'q2-row';
|
|
@@ -71,7 +81,8 @@ export function createLoadingWrapper(module, minHeight) {
|
|
|
71
81
|
}
|
|
72
82
|
return loaderWrapper;
|
|
73
83
|
}
|
|
74
|
-
|
|
84
|
+
exports.createLoadingWrapper = createLoadingWrapper;
|
|
85
|
+
exports.tectonPlatformOutletObservedAttrs = [
|
|
75
86
|
{ name: 'additionalContext', reflectAs: String },
|
|
76
87
|
{ name: 'configTree' },
|
|
77
88
|
{ name: 'context', reflectAs: String },
|
|
@@ -80,12 +91,12 @@ export const tectonPlatformOutletObservedAttrs = [
|
|
|
80
91
|
{ name: 'resolvedType', reflectAs: String },
|
|
81
92
|
{ name: 'routeName' },
|
|
82
93
|
];
|
|
83
|
-
|
|
94
|
+
function loadTectonPlatformOutlet(tectonConfig$, params$, legacyControlBus, contextHierarchy) {
|
|
84
95
|
return function tectonPlatformOutlet(messageBus, outletPath, platformOutletElement, memorizedProps$) {
|
|
85
96
|
const placeholder = document.createElement('div');
|
|
86
|
-
const DOM$ = new BehaviorSubject(placeholder);
|
|
87
|
-
const settled$ = new BehaviorSubject(false);
|
|
88
|
-
const effect$ = new BehaviorSubject(() => {
|
|
97
|
+
const DOM$ = new rxjs_1.BehaviorSubject(placeholder);
|
|
98
|
+
const settled$ = new rxjs_1.BehaviorSubject(false);
|
|
99
|
+
const effect$ = new rxjs_1.BehaviorSubject(() => {
|
|
89
100
|
return;
|
|
90
101
|
});
|
|
91
102
|
const getContent = function () {
|
|
@@ -96,29 +107,55 @@ export function loadTectonPlatformOutlet(tectonConfig$, params$, legacyControlBu
|
|
|
96
107
|
};
|
|
97
108
|
};
|
|
98
109
|
let moduleId;
|
|
110
|
+
let currentModuleLoadingOptions;
|
|
99
111
|
const getModuleId = function () {
|
|
100
112
|
return moduleId;
|
|
101
113
|
};
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
114
|
+
const getModuleLoadingOptions = function () {
|
|
115
|
+
return currentModuleLoadingOptions;
|
|
116
|
+
};
|
|
117
|
+
const getShadowRoot = function () {
|
|
118
|
+
return platformOutletElement.shadowRoot;
|
|
119
|
+
};
|
|
120
|
+
const loadingSubscription = (0, tecton_outlet_base_1.setupOutletIFrameLoading)(messageBus, getModuleId, getContent, getModuleLoadingOptions, getShadowRoot);
|
|
121
|
+
const outletInfoSubscription = (0, tecton_outlet_base_1.setupOutletInfo)(messageBus, getModuleId, getContent);
|
|
122
|
+
// Use Subscription to accumulate all cleanup, preventing memory leaks
|
|
123
|
+
const teardownsSubscription = new rxjs_1.Subscription();
|
|
124
|
+
teardownsSubscription.add(loadingSubscription);
|
|
125
|
+
teardownsSubscription.add(outletInfoSubscription);
|
|
126
|
+
// Add BehaviorSubject cleanup - must call .complete() separately from .unsubscribe()
|
|
127
|
+
teardownsSubscription.add(() => {
|
|
128
|
+
// Clear object/function references before completing
|
|
108
129
|
DOM$.next(null);
|
|
130
|
+
DOM$.complete();
|
|
131
|
+
effect$.next(() => { });
|
|
132
|
+
effect$.complete();
|
|
133
|
+
// Primitives can be completed directly without clearing
|
|
134
|
+
settled$.complete();
|
|
135
|
+
});
|
|
136
|
+
// Wrapper BehaviorSubject for parent compatibility - parent expects BehaviorSubject<Teardown>
|
|
137
|
+
const teardown$ = new rxjs_1.BehaviorSubject(() => {
|
|
138
|
+
teardown$.complete();
|
|
139
|
+
teardownsSubscription.unsubscribe();
|
|
109
140
|
});
|
|
110
|
-
const configTree$ = memorizedProps$.pipe(map(props => props.configTree), filter(configTree => !!configTree), distinctUntilChanged());
|
|
111
|
-
const isOverpanel$ = new BehaviorSubject(false);
|
|
141
|
+
const configTree$ = memorizedProps$.pipe((0, rxjs_1.map)(props => props.configTree), (0, rxjs_1.filter)(configTree => !!configTree), (0, rxjs_1.distinctUntilChanged)());
|
|
142
|
+
const isOverpanel$ = new rxjs_1.BehaviorSubject(false);
|
|
112
143
|
const overpanelSubscription = memorizedProps$
|
|
113
|
-
.pipe(map(props => props.overpanel), filter(overpanel => typeof overpanel === 'boolean'), distinctUntilChanged())
|
|
144
|
+
.pipe((0, rxjs_1.map)(props => props.overpanel), (0, rxjs_1.filter)(overpanel => typeof overpanel === 'boolean'), (0, rxjs_1.distinctUntilChanged)())
|
|
114
145
|
.subscribe(isOverpanel$);
|
|
115
|
-
|
|
146
|
+
teardownsSubscription.add(overpanelSubscription);
|
|
147
|
+
// Add isOverpanel$ cleanup (primitive, just complete)
|
|
148
|
+
teardownsSubscription.add(() => {
|
|
149
|
+
isOverpanel$.complete();
|
|
150
|
+
});
|
|
151
|
+
const routeName$ = memorizedProps$.pipe((0, rxjs_1.map)(props => props.routeName), (0, rxjs_1.filter)(routeName => !!routeName), (0, rxjs_1.distinctUntilChanged)());
|
|
116
152
|
const moduleIdChangeSubscription = routeName$
|
|
117
|
-
.pipe(map(routeName => `${outletPath}.${routeName}`), pairwise())
|
|
153
|
+
.pipe((0, rxjs_1.map)(routeName => `${outletPath}.${routeName}`), (0, rxjs_1.pairwise)())
|
|
118
154
|
.subscribe(([oldModuleId]) => {
|
|
119
|
-
sendMessage('clearParams', Maybe.just(JSON.stringify({ moduleId: oldModuleId })));
|
|
155
|
+
(0, message_bus_1.sendMessage)('clearParams', maybe_not_1.Maybe.just(JSON.stringify({ moduleId: oldModuleId })));
|
|
120
156
|
});
|
|
121
|
-
|
|
157
|
+
teardownsSubscription.add(moduleIdChangeSubscription);
|
|
158
|
+
const outletDataSubscription = (0, rxjs_1.combineLatest)(configTree$, isOverpanel$, routeName$).subscribe(([configTree, isOverpanel, routeName]) => {
|
|
122
159
|
const tectonConfig = tectonConfig$.getValue();
|
|
123
160
|
const feature = tectonConfig.features[configTree.featureName];
|
|
124
161
|
if (!feature) {
|
|
@@ -129,6 +166,7 @@ export function loadTectonPlatformOutlet(tectonConfig$, params$, legacyControlBu
|
|
|
129
166
|
const shouldDisplay = shouldDisplayOutlet(module, feature, memorizedProps, contextHierarchy);
|
|
130
167
|
if (shouldDisplay) {
|
|
131
168
|
moduleId = `${outletPath}.${routeName}`;
|
|
169
|
+
currentModuleLoadingOptions = module.loadingOptions;
|
|
132
170
|
const minHeight = memorizedProps.minHeight;
|
|
133
171
|
const featureConfig = tectonConfig.features[configTree.featureName];
|
|
134
172
|
const formPostAuth = !!featureConfig.modules[configTree.moduleName].formPostAuth;
|
|
@@ -137,16 +175,12 @@ export function loadTectonPlatformOutlet(tectonConfig$, params$, legacyControlBu
|
|
|
137
175
|
const allowDirectives = featureConfig.allowDirectives;
|
|
138
176
|
const iframeSrc = buildIframeSrc(urlFromConfig, moduleId, memorizedProps, platformOutletElement, params$.getValue(), formPostAuth, legacyControlBus);
|
|
139
177
|
if (!isOverpanel) {
|
|
140
|
-
const resizerSubscription = setupOutletIFrameResizer(messageBus, getModuleId, getContent);
|
|
141
|
-
|
|
142
|
-
resizerSubscription.unsubscribe();
|
|
143
|
-
});
|
|
178
|
+
const resizerSubscription = (0, tecton_outlet_base_1.setupOutletIFrameResizer)(messageBus, getModuleId, getContent);
|
|
179
|
+
teardownsSubscription.add(resizerSubscription);
|
|
144
180
|
}
|
|
145
|
-
const titleSubscription = setupOutletSetTitleListener(messageBus, getModuleId, getContent);
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
});
|
|
149
|
-
const outletDOM = setupOutletIFrameWrapper(iframeSrc, moduleId, legacyControlBus.getAuthPayload ? legacyControlBus.getAuthPayload() : [], `${configTree.featureName}-${configTree.moduleName}`, platformOutletElement.style.maxHeight, platformOutletElement.style.maxWidth, isOverpanel, formPostAuth, additionalDomains, allowDirectives);
|
|
181
|
+
const titleSubscription = (0, tecton_outlet_base_1.setupOutletSetTitleListener)(messageBus, getModuleId, getContent);
|
|
182
|
+
teardownsSubscription.add(titleSubscription);
|
|
183
|
+
const { element: outletDOM, cleanup: iframeCleanup } = (0, tecton_outlet_base_1.setupOutletIFrameWrapper)(iframeSrc, moduleId, legacyControlBus.getAuthPayload ? legacyControlBus.getAuthPayload() : [], `${configTree.featureName}-${configTree.moduleName}`, platformOutletElement.style.maxHeight, platformOutletElement.style.maxWidth, isOverpanel, formPostAuth, additionalDomains, allowDirectives);
|
|
150
184
|
const loaderWrapper = createLoadingWrapper(module, minHeight);
|
|
151
185
|
DOM$.next(outletDOM);
|
|
152
186
|
effect$.next(() => {
|
|
@@ -159,14 +193,13 @@ export function loadTectonPlatformOutlet(tectonConfig$, params$, legacyControlBu
|
|
|
159
193
|
}
|
|
160
194
|
settled$.next(true);
|
|
161
195
|
});
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
moduleIdChangeSubscription.unsubscribe();
|
|
166
|
-
sendMessage('clearParams', Maybe.just(JSON.stringify({ moduleId })));
|
|
196
|
+
teardownsSubscription.add(() => {
|
|
197
|
+
iframeCleanup();
|
|
198
|
+
(0, message_bus_1.sendMessage)('clearParams', maybe_not_1.Maybe.just(JSON.stringify({ moduleId })));
|
|
167
199
|
});
|
|
168
200
|
}
|
|
169
201
|
});
|
|
202
|
+
teardownsSubscription.add(outletDataSubscription);
|
|
170
203
|
return {
|
|
171
204
|
DOM$,
|
|
172
205
|
settled$,
|
|
@@ -175,3 +208,4 @@ export function loadTectonPlatformOutlet(tectonConfig$, params$, legacyControlBu
|
|
|
175
208
|
};
|
|
176
209
|
};
|
|
177
210
|
}
|
|
211
|
+
exports.loadTectonPlatformOutlet = loadTectonPlatformOutlet;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ifRelativePrependOrigin = exports.setupPathResolvers = exports.NGAM_BASE = void 0;
|
|
4
|
+
const resolveFeature_1 = require("./resolveFeature");
|
|
5
|
+
exports.NGAM_BASE = `${window.location.origin}${window.location.pathname.replace(/\/uux\.aspx/i, '')}`;
|
|
6
|
+
function setupPathResolvers(messageBus, capabilities, legacyControlBus, tectonConfig$, teardowns) {
|
|
4
7
|
let customLanguagePathSubscription;
|
|
5
8
|
const customerAssetPathSubscription = messageBus.sendResponse('getCustomerAssetPath', ({ subPath }) => {
|
|
6
9
|
return Promise.resolve({
|
|
@@ -10,7 +13,7 @@ export function setupPathResolvers(messageBus, capabilities, legacyControlBus, t
|
|
|
10
13
|
if (legacyControlBus.getCustomLanguageURL) {
|
|
11
14
|
capabilities.add('getCustomLanguageURL');
|
|
12
15
|
customLanguagePathSubscription = messageBus.sendResponse('getCustomLanguageURL', async ({ moduleId, langKey }) => {
|
|
13
|
-
const moduleInfo = await getPathResolutionInfo(moduleId.split('.'), legacyControlBus.dynamicConfigFetch);
|
|
16
|
+
const moduleInfo = await (0, resolveFeature_1.getPathResolutionInfo)(moduleId.split('.'), legacyControlBus.dynamicConfigFetch);
|
|
14
17
|
return Promise.resolve({
|
|
15
18
|
path: ifRelativePrependOrigin(legacyControlBus.getCustomLanguageURL(`${langKey}_${moduleInfo.featureName}.json`)),
|
|
16
19
|
});
|
|
@@ -22,7 +25,7 @@ export function setupPathResolvers(messageBus, capabilities, legacyControlBus, t
|
|
|
22
25
|
});
|
|
23
26
|
});
|
|
24
27
|
const getNgamBaseURL = messageBus.sendResponse('getNgamBaseUrl', () => {
|
|
25
|
-
return Promise.resolve({ ngamBase: NGAM_BASE });
|
|
28
|
+
return Promise.resolve({ ngamBase: exports.NGAM_BASE });
|
|
26
29
|
});
|
|
27
30
|
teardowns.push(() => {
|
|
28
31
|
customerAssetPathSubscription.unsubscribe();
|
|
@@ -33,6 +36,8 @@ export function setupPathResolvers(messageBus, capabilities, legacyControlBus, t
|
|
|
33
36
|
}
|
|
34
37
|
});
|
|
35
38
|
}
|
|
36
|
-
|
|
39
|
+
exports.setupPathResolvers = setupPathResolvers;
|
|
40
|
+
function ifRelativePrependOrigin(url) {
|
|
37
41
|
return /^http/.test(url) ? url : `${window.location.origin}/${url}`;
|
|
38
42
|
}
|
|
43
|
+
exports.ifRelativePrependOrigin = ifRelativePrependOrigin;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function cdnOverrideSetup(messageBus, legacyControlBus, capabilities, teardowns) {
|
|
2
4
|
if (legacyControlBus.cdnOverride) {
|
|
3
5
|
capabilities.add('cdnOverride');
|
|
4
6
|
const subscription = messageBus.sendResponse('cdnOverride', () => {
|
|
@@ -9,3 +11,4 @@ export default function cdnOverrideSetup(messageBus, legacyControlBus, capabilit
|
|
|
9
11
|
teardowns.push(() => subscription.unsubscribe());
|
|
10
12
|
}
|
|
11
13
|
}
|
|
14
|
+
exports.default = cdnOverrideSetup;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateContext = exports.getContextHierarchyPath = void 0;
|
|
1
4
|
/**
|
|
2
5
|
* Recursively searches for a node in the hierarchy and returns the path from leaf to root
|
|
3
6
|
*
|
|
@@ -30,7 +33,7 @@ function findPathToRoot(targetNode, currentNode, currentPath = []) {
|
|
|
30
33
|
* @param contextHierarchy - The hierarchical structure to navigate
|
|
31
34
|
* @returns Array of context strings ordered from most specific to most general, or empty array if context not found
|
|
32
35
|
*/
|
|
33
|
-
|
|
36
|
+
function getContextHierarchyPath(contextString, contextHierarchy) {
|
|
34
37
|
if (!contextString || typeof contextString !== 'string') {
|
|
35
38
|
return [];
|
|
36
39
|
}
|
|
@@ -45,6 +48,7 @@ export function getContextHierarchyPath(contextString, contextHierarchy) {
|
|
|
45
48
|
const pathToRoot = findPathToRoot(dataType, categoryNode);
|
|
46
49
|
return pathToRoot.map(type => `${category}::${type}`);
|
|
47
50
|
}
|
|
51
|
+
exports.getContextHierarchyPath = getContextHierarchyPath;
|
|
48
52
|
/**
|
|
49
53
|
* Validates whether a resolved context is a valid subtype of a context rule
|
|
50
54
|
*
|
|
@@ -54,7 +58,7 @@ export function getContextHierarchyPath(contextString, contextHierarchy) {
|
|
|
54
58
|
* @param params.resolvedContext - The resolved context to validate
|
|
55
59
|
* @returns True if resolvedContext is a valid subtype of moduleContext, or if moduleContext is unrestricted
|
|
56
60
|
*/
|
|
57
|
-
|
|
61
|
+
function validateContext(params, contextHierarchy) {
|
|
58
62
|
const { outletContext, moduleContext, resolvedContext, additionalContext, additionalContextRequirements } = params;
|
|
59
63
|
if ((additionalContextRequirements === null || additionalContextRequirements === void 0 ? void 0 : additionalContextRequirements.length) &&
|
|
60
64
|
additionalContext &&
|
|
@@ -70,3 +74,4 @@ export function validateContext(params, contextHierarchy) {
|
|
|
70
74
|
}
|
|
71
75
|
return hierarchyPath.includes(resolvedContext || outletContext);
|
|
72
76
|
}
|
|
77
|
+
exports.validateContext = validateContext;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getApplicationModules = void 0;
|
|
4
|
+
function getApplicationModules(tectonConfig) {
|
|
2
5
|
var _a, _b, _c;
|
|
3
6
|
const applicationModuleContext = 'Application::';
|
|
4
7
|
const applicationModules = {};
|
|
@@ -23,3 +26,4 @@ export function getApplicationModules(tectonConfig) {
|
|
|
23
26
|
}
|
|
24
27
|
return applicationModules;
|
|
25
28
|
}
|
|
29
|
+
exports.getApplicationModules = getApplicationModules;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function getAuthPayloadSetup(messageBus, legacyControlBus, teardowns) {
|
|
2
4
|
const subscription = messageBus.sendResponse('getAuthPayload', () => {
|
|
3
5
|
return Promise.resolve(legacyControlBus.getAuthPayload());
|
|
4
6
|
});
|
|
5
7
|
teardowns.push(() => subscription.unsubscribe());
|
|
6
8
|
}
|
|
9
|
+
exports.default = getAuthPayloadSetup;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function getModuleParams(moduleId, params = {}) {
|
|
2
4
|
return Object.keys(params)
|
|
3
5
|
.filter(item => {
|
|
4
6
|
const lastIndex = item.lastIndexOf('.');
|
|
@@ -12,3 +14,4 @@ export default function getModuleParams(moduleId, params = {}) {
|
|
|
12
14
|
return accumulator;
|
|
13
15
|
}, Object.create({}));
|
|
14
16
|
}
|
|
17
|
+
exports.default = getModuleParams;
|
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const setupRegisterOutlet_1 = require("./setupRegisterOutlet");
|
|
4
|
+
const assetPathResolvers_1 = require("./assetPathResolvers");
|
|
5
|
+
const resolveFeature_1 = require("./resolveFeature");
|
|
6
|
+
const resolveTabs_1 = require("./resolveTabs");
|
|
7
|
+
const resolveMenu_1 = require("./resolveMenu");
|
|
8
|
+
const platformCapabilities_1 = require("./platformCapabilities");
|
|
9
|
+
const getAuthPayload_1 = require("./getAuthPayload");
|
|
10
|
+
const cdnOverrideSetup_1 = require("./cdnOverrideSetup");
|
|
11
|
+
const mobileSDKCapabilities_1 = require("./mobileSDKCapabilities");
|
|
12
|
+
function setupPrivateHelpers(messageBus, legacyControlBus, params$, tectonConfig$, capabilities, teardowns, contextHierarchy = {}) {
|
|
13
|
+
(0, mobileSDKCapabilities_1.default)(messageBus, legacyControlBus, capabilities, teardowns);
|
|
14
|
+
(0, setupRegisterOutlet_1.setupRegisterOutlet)(messageBus, params$, teardowns);
|
|
15
|
+
(0, assetPathResolvers_1.setupPathResolvers)(messageBus, capabilities, legacyControlBus, tectonConfig$, teardowns);
|
|
16
|
+
(0, resolveFeature_1.default)(legacyControlBus, messageBus, tectonConfig$, params$, teardowns, contextHierarchy);
|
|
17
|
+
(0, resolveTabs_1.default)(legacyControlBus, messageBus, tectonConfig$, params$, teardowns, contextHierarchy);
|
|
18
|
+
(0, resolveMenu_1.default)(legacyControlBus, messageBus, tectonConfig$, params$, teardowns, contextHierarchy);
|
|
19
|
+
(0, platformCapabilities_1.default)(messageBus, capabilities, teardowns);
|
|
20
|
+
(0, getAuthPayload_1.default)(messageBus, legacyControlBus, teardowns);
|
|
21
|
+
(0, cdnOverrideSetup_1.default)(messageBus, legacyControlBus, capabilities, teardowns);
|
|
20
22
|
}
|
|
23
|
+
exports.default = setupPrivateHelpers;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function setupMobileSDKCapabilities(messageBus, legacyControlBus, capabilities, teardowns) {
|
|
2
4
|
if (legacyControlBus.getMobileSDKCapabilities) {
|
|
3
5
|
capabilities.add('getMobileSDKCapabilities');
|
|
4
6
|
const subscription = messageBus.sendResponse('getMobileSDKCapabilities', () => {
|
|
@@ -7,3 +9,4 @@ export default function setupMobileSDKCapabilities(messageBus, legacyControlBus,
|
|
|
7
9
|
teardowns.push(() => subscription.unsubscribe());
|
|
8
10
|
}
|
|
9
11
|
}
|
|
12
|
+
exports.default = setupMobileSDKCapabilities;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function platformCapabilitiesSetup(messageBus, capabilities, teardowns) {
|
|
2
4
|
const subscription = messageBus.sendResponse('getPlatformCapabilities', () => {
|
|
3
5
|
const platformCapabilities = Array.from(capabilities);
|
|
4
6
|
return Promise.resolve({
|
|
@@ -7,3 +9,4 @@ export default function platformCapabilitiesSetup(messageBus, capabilities, tear
|
|
|
7
9
|
});
|
|
8
10
|
teardowns.push(() => subscription.unsubscribe());
|
|
9
11
|
}
|
|
12
|
+
exports.default = platformCapabilitiesSetup;
|
|
@@ -58,8 +58,8 @@ export interface IOutletPathResolutionInfo {
|
|
|
58
58
|
configPath: string[];
|
|
59
59
|
pathOrigin: PathOrigin;
|
|
60
60
|
}
|
|
61
|
-
export
|
|
62
|
-
export
|
|
61
|
+
export type IPathResolutionInfo = IOutletPathResolutionInfo | IModulePathResolutionInfo;
|
|
62
|
+
export type PathOrigin = 'legacy' | 'tectonRoute' | 'tectonOverpanel';
|
|
63
63
|
/**
|
|
64
64
|
* Construct a dotnation path through the actual config for this request (configPath).
|
|
65
65
|
* It also returns some ancillary information to that path.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveFeature.d.ts","sourceRoot":"","sources":["../../../src/private-helpers/resolveFeature.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"resolveFeature.d.ts","sourceRoot":"","sources":["../../../src/private-helpers/resolveFeature.ts"],"names":[],"mappings":"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"}
|