@pega/react-sdk-overrides 23.1.10 → 23.1.12
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/LICENSE +201 -0
- package/README.md +17 -0
- package/SECURITY.md +10 -0
- package/lib/designSystemExtension/AlertBanner/AlertBanner.tsx +6 -14
- package/lib/designSystemExtension/Banner/Banner.tsx +14 -11
- package/lib/designSystemExtension/CaseSummaryFields/CaseSummaryFields.css +0 -1
- package/lib/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +27 -22
- package/lib/designSystemExtension/DetailsFields/DetailsFields.tsx +14 -20
- package/lib/designSystemExtension/DetailsFields/index.tsx +1 -1
- package/lib/designSystemExtension/FieldGroup/FieldGroup.tsx +44 -19
- package/lib/designSystemExtension/FieldGroupList/FieldGroupList.tsx +7 -12
- package/lib/designSystemExtension/FieldValueList/FieldValueList.tsx +21 -32
- package/lib/designSystemExtension/Operator/Operator.tsx +94 -82
- package/lib/designSystemExtension/Pulse/Pulse.tsx +14 -16
- package/lib/designSystemExtension/RichTextEditor/RichTextEditor.tsx +6 -5
- package/lib/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +14 -14
- package/lib/field/AutoComplete/AutoComplete.tsx +24 -26
- package/lib/field/AutoComplete/config-ext.json +2 -3
- package/lib/field/CancelAlert/CancelAlert.tsx +98 -84
- package/lib/field/CancelAlert/index.tsx +1 -1
- package/lib/field/Checkbox/Checkbox.tsx +120 -63
- package/lib/field/Checkbox/config-ext.json +2 -3
- package/lib/field/Currency/Currency.tsx +25 -50
- package/lib/field/Currency/config-ext.json +2 -3
- package/lib/field/Currency/currency-utils.ts +9 -16
- package/lib/field/Date/Date.tsx +15 -11
- package/lib/field/Date/config-ext.json +2 -3
- package/lib/field/DateTime/DateTime.tsx +9 -9
- package/lib/field/DateTime/config-ext.json +1 -2
- package/lib/field/Decimal/Decimal.tsx +33 -44
- package/lib/field/Decimal/config-ext.json +1 -2
- package/lib/field/Decimal/index.tsx +1 -1
- package/lib/field/Dropdown/Dropdown.tsx +122 -31
- package/lib/field/Dropdown/config-ext.json +1 -2
- package/lib/field/Email/Email.tsx +11 -10
- package/lib/field/Email/config-ext.json +1 -2
- package/lib/field/Email/index.tsx +1 -1
- package/lib/field/Group/Group.tsx +39 -0
- package/lib/field/Group/config-ext.json +7 -0
- package/lib/field/Group/index.tsx +1 -0
- package/lib/field/Integer/Integer.tsx +8 -7
- package/lib/field/Integer/config-ext.json +1 -2
- package/lib/field/MultiSelect/Multiselect.tsx +244 -0
- package/lib/field/MultiSelect/index.tsx +1 -0
- package/lib/field/MultiSelect/utils.ts +230 -0
- package/lib/field/Percentage/Percentage.tsx +46 -41
- package/lib/field/Percentage/config-ext.json +1 -2
- package/lib/field/Phone/Phone.tsx +13 -12
- package/lib/field/Phone/index.tsx +1 -1
- package/lib/field/RadioButtons/RadioButtons.tsx +20 -18
- package/lib/field/RadioButtons/config-ext.json +1 -2
- package/lib/field/RichText/RichText.tsx +8 -7
- package/lib/field/ScalarList/ScalarList.tsx +3 -13
- package/lib/field/ScalarList/config-ext.json +1 -2
- package/lib/field/SemanticLink/SemanticLink.tsx +7 -7
- package/lib/field/SemanticLink/config-ext.json +1 -2
- package/lib/field/SemanticLink/utils.ts +8 -11
- package/lib/field/TextArea/TextArea.tsx +7 -6
- package/lib/field/TextArea/config-ext.json +1 -2
- package/lib/field/TextContent/TextContent.tsx +4 -6
- package/lib/field/TextContent/config-ext.json +1 -2
- package/lib/field/TextInput/TextInput.tsx +9 -7
- package/lib/field/TextInput/config-ext.json +1 -2
- package/lib/field/TextInput/index.tsx +1 -1
- package/lib/field/Time/Time.tsx +11 -11
- package/lib/field/Time/config-ext.json +1 -2
- package/lib/field/URL/URL.tsx +9 -8
- package/lib/field/URL/config-ext.json +1 -2
- package/lib/field/URL/index.tsx +1 -1
- package/lib/field/UserReference/UserReference.tsx +18 -16
- package/lib/field/UserReference/UserReferenceUtils.ts +2 -2
- package/lib/field/UserReference/config-ext.json +1 -2
- package/lib/helpers/attachmentHelpers.ts +13 -8
- package/lib/helpers/case-utils.tsx +4 -8
- package/lib/helpers/common-utils.ts +5 -1
- package/lib/helpers/data_page.ts +3 -7
- package/lib/helpers/date-format-utils.ts +3 -3
- package/lib/helpers/event-utils.ts +3 -3
- package/lib/helpers/field-group-utils.ts +1 -1
- package/lib/helpers/formatters/Boolean.ts +9 -26
- package/lib/helpers/formatters/Currency.ts +15 -21
- package/lib/helpers/formatters/CurrencyMap.ts +505 -501
- package/lib/helpers/formatters/Date.ts +20 -26
- package/lib/helpers/formatters/common.ts +1 -2
- package/lib/helpers/formatters/index.ts +26 -19
- package/lib/helpers/instructions-utils.ts +38 -0
- package/lib/helpers/reactContextHelpers.ts +2 -2
- package/lib/helpers/simpleTableHelpers.ts +59 -83
- package/lib/helpers/state-utils.tsx +5 -9
- package/lib/helpers/template-utils.ts +3 -6
- package/lib/helpers/utils.ts +5 -5
- package/lib/helpers/versionHelpers.ts +1 -4
- package/lib/infra/ActionButtons/ActionButtons.tsx +38 -29
- package/lib/infra/ActionButtons/index.tsx +1 -1
- package/lib/infra/Assignment/Assignment.tsx +99 -79
- package/lib/infra/Assignment/index.tsx +1 -1
- package/lib/infra/AssignmentCard/AssignmentCard.tsx +13 -16
- package/lib/infra/AssignmentCard/index.tsx +1 -1
- package/lib/infra/Containers/FlowContainer/FlowContainer.tsx +67 -213
- package/lib/infra/Containers/FlowContainer/helpers.ts +34 -45
- package/lib/infra/Containers/FlowContainer/index.tsx +1 -1
- package/lib/infra/Containers/ModalViewContainer/ListViewActionButtons/ListViewActionButtons.tsx +65 -0
- package/lib/infra/Containers/ModalViewContainer/ListViewActionButtons/index.tsx +1 -0
- package/lib/infra/Containers/ModalViewContainer/ModalViewContainer.tsx +227 -218
- package/lib/infra/Containers/ModalViewContainer/index.tsx +1 -1
- package/lib/infra/Containers/SimpleView/SimpleView.tsx +48 -0
- package/lib/infra/Containers/SimpleView/helper.ts +125 -0
- package/lib/infra/Containers/SimpleView/index.tsx +1 -0
- package/lib/infra/Containers/ViewContainer/ViewContainer.tsx +36 -46
- package/lib/infra/Containers/helpers.ts +6 -0
- package/lib/infra/DashboardFilter/DashboardFilter.tsx +21 -42
- package/lib/infra/DashboardFilter/filterUtils.tsx +12 -43
- package/lib/infra/DeferLoad/DeferLoad.tsx +22 -28
- package/lib/infra/DeferLoad/index.tsx +1 -1
- package/lib/infra/ErrorBoundary/ErrorBoundary.tsx +16 -30
- package/lib/infra/MultiStep/MultiStep.css +11 -15
- package/lib/infra/MultiStep/MultiStep.tsx +176 -212
- package/lib/infra/MultiStep/index.tsx +1 -1
- package/lib/infra/NavBar/NavBar.css +103 -105
- package/lib/infra/NavBar/NavBar.tsx +19 -31
- package/lib/infra/Reference/Reference.tsx +16 -18
- package/lib/infra/Region/Region.tsx +4 -6
- package/lib/infra/RootContainer/RootContainer.tsx +75 -111
- package/lib/infra/RootContainer/index.tsx +1 -1
- package/lib/infra/Stages/Stages.tsx +32 -39
- package/lib/infra/VerticalTabs/LeftAlignVerticalTabs/LeftAlignVerticalTabs.tsx +11 -11
- package/lib/infra/VerticalTabs/VerticalTabs/VerticalTabs.tsx +21 -28
- package/lib/infra/View/View.tsx +17 -21
- package/lib/template/AppShell/AppShell.css +22 -23
- package/lib/template/AppShell/AppShell.tsx +39 -74
- package/lib/template/BannerPage/BannerPage.tsx +12 -14
- package/lib/template/CaseSummary/CaseSummary.tsx +58 -18
- package/lib/template/CaseSummary/config-ext.json +1 -2
- package/lib/template/CaseView/CaseView.tsx +34 -63
- package/lib/template/CaseView/config-ext.json +1 -2
- package/lib/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +63 -19
- package/lib/template/Confirmation/Confirmation.tsx +12 -17
- package/lib/template/Confirmation/config-ext.json +1 -2
- package/lib/template/DataReference/DataReference.tsx +95 -121
- package/lib/template/DataReference/config-ext.json +1 -2
- package/lib/template/DefaultForm/DefaultForm.css +7 -3
- package/lib/template/DefaultForm/DefaultForm.tsx +13 -16
- package/lib/template/DefaultForm/config-ext.json +1 -2
- package/lib/template/Details/Details/Details.tsx +19 -22
- package/lib/template/Details/DetailsSubTabs/DetailsSubTabs.tsx +9 -13
- package/lib/template/Details/DetailsSubTabs/config-ext.json +1 -2
- package/lib/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +19 -24
- package/lib/template/Details/DetailsThreeColumn/config-ext.json +1 -2
- package/lib/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +19 -25
- package/lib/template/Details/DetailsTwoColumn/config-ext.json +1 -2
- package/lib/template/Details/DetailsTwoColumn/index.tsx +1 -1
- package/lib/template/Details/DynamicTabs/DynamicTabs.tsx +15 -14
- package/lib/template/FieldGroupTemplate/FieldGroupTemplate.tsx +15 -22
- package/lib/template/InlineDashboard/InlineDashboard.tsx +12 -14
- package/lib/template/InlineDashboardPage/InlineDashboardPage.tsx +12 -16
- package/lib/template/ListPage/ListPage.tsx +5 -10
- package/lib/template/ListPage/config-ext.json +1 -2
- package/lib/template/ListView/DefaultViewMeta.ts +1 -3
- package/lib/template/ListView/ListView.tsx +185 -175
- package/lib/template/ListView/config-ext.json +1 -2
- package/lib/template/ListView/hooks.ts +24 -26
- package/lib/template/ListView/utils.ts +51 -87
- package/lib/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +20 -20
- package/lib/template/NarrowWide/NarrowWide/NarrowWide.css +0 -2
- package/lib/template/NarrowWide/NarrowWide/NarrowWide.tsx +25 -38
- package/lib/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +20 -25
- package/lib/template/NarrowWide/NarrowWideDetails/config-ext.json +1 -2
- package/lib/template/NarrowWide/NarrowWideForm/NarrowWideForm.css +0 -2
- package/lib/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +14 -24
- package/lib/template/NarrowWide/NarrowWideForm/config-ext.json +1 -2
- package/lib/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +9 -19
- package/lib/template/NarrowWide/NarrowWidePage/config-ext.json +1 -2
- package/lib/template/OneColumn/OneColumn/OneColumn.tsx +14 -15
- package/lib/template/OneColumn/OneColumn/config-ext.json +1 -2
- package/lib/template/OneColumn/OneColumnPage/OneColumnPage.tsx +3 -10
- package/lib/template/OneColumn/OneColumnPage/config-ext.json +1 -2
- package/lib/template/OneColumn/OneColumnTab/OneColumnTab.tsx +6 -10
- package/lib/template/OneColumn/OneColumnTab/config-ext.json +1 -2
- package/lib/template/PromotedFilters/PromotedFilters.css +1 -1
- package/lib/template/PromotedFilters/PromotedFilters.tsx +32 -28
- package/lib/template/SimpleTable/SimpleTable/SimpleTable.tsx +37 -33
- package/lib/template/SimpleTable/SimpleTable/config-ext.json +1 -2
- package/lib/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +187 -121
- package/lib/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +24 -25
- package/lib/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +30 -30
- package/lib/template/SubTabs/SubTabs.tsx +22 -40
- package/lib/template/SubTabs/config-ext.json +1 -2
- package/lib/template/SubTabs/tabUtils.ts +2 -5
- package/lib/template/TwoColumn/TwoColumn/TwoColumn.css +0 -1
- package/lib/template/TwoColumn/TwoColumn/TwoColumn.tsx +30 -28
- package/lib/template/TwoColumn/TwoColumn/config-ext.json +1 -2
- package/lib/template/TwoColumn/TwoColumnPage/TwoColumnPage.tsx +3 -10
- package/lib/template/TwoColumn/TwoColumnPage/config-ext.json +1 -2
- package/lib/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +30 -28
- package/lib/template/TwoColumn/TwoColumnTab/config-ext.json +1 -2
- package/lib/template/WideNarrow/WideNarrow/WideNarrow.css +0 -2
- package/lib/template/WideNarrow/WideNarrow/WideNarrow.tsx +22 -34
- package/lib/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +24 -28
- package/lib/template/WideNarrow/WideNarrowDetails/config-ext.json +1 -2
- package/lib/template/WideNarrow/WideNarrowForm/WideNarrowForm.css +0 -2
- package/lib/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +13 -21
- package/lib/template/WideNarrow/WideNarrowForm/config-ext.json +1 -2
- package/lib/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +8 -16
- package/lib/template/WideNarrow/WideNarrowPage/config-ext.json +1 -2
- package/lib/template/WideNarrow/WideNarrowPage/index.tsx +1 -1
- package/lib/template/WssNavBar/WssNavBar.tsx +18 -21
- package/lib/widget/AppAnnouncement/AppAnnouncement.tsx +29 -28
- package/lib/widget/AppAnnouncement/config-ext.json +1 -2
- package/lib/widget/Attachment/Attachment.css +60 -1
- package/lib/widget/Attachment/Attachment.tsx +378 -405
- package/lib/widget/Attachment/index.tsx +1 -1
- package/lib/widget/CaseHistory/CaseHistory.tsx +64 -66
- package/lib/widget/CaseHistory/config-ext.json +1 -2
- package/lib/widget/CaseHistory/index.tsx +1 -1
- package/lib/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +16 -18
- package/lib/widget/FileUtility/FileUtility/FileUtility.css +2 -2
- package/lib/widget/FileUtility/FileUtility/FileUtility.tsx +310 -246
- package/lib/widget/FileUtility/FileUtility/config-ext.json +1 -2
- package/lib/widget/Followers/Followers.tsx +23 -20
- package/lib/widget/Followers/config-ext.json +1 -2
- package/lib/widget/QuickCreate/QuickCreate.tsx +68 -42
- package/lib/widget/SummaryItem/SummaryItem.css +9 -9
- package/lib/widget/SummaryItem/SummaryItem.tsx +58 -58
- package/lib/widget/SummaryItem/index.tsx +1 -1
- package/lib/widget/SummaryList/SummaryList.tsx +7 -10
- package/lib/widget/ToDo/ToDo.css +4 -4
- package/lib/widget/ToDo/ToDo.tsx +52 -53
- package/lib/widget/ToDo/config-ext.json +1 -2
- package/package.json +5 -2
- package/lib/helpers/auth.js +0 -834
- package/lib/helpers/authManager.ts +0 -933
- package/lib/helpers/config_access.js +0 -186
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
// Helper singleton class to assist with loading and accessing
|
|
2
|
-
// the SDK Config JSON
|
|
3
|
-
import { isEmptyObject } from './common-utils';
|
|
4
|
-
|
|
5
|
-
// Create a singleton for this class (with async loading of config file) and export it
|
|
6
|
-
// Note: Initialzing SdkConfigAccess to null seems to cause lots of compile issues with references
|
|
7
|
-
// within other components and the value potentially being null (so try to leave it undefined)
|
|
8
|
-
let SdkConfigAccess;
|
|
9
|
-
let SdkConfigAccessCreateInProgress = false;
|
|
10
|
-
|
|
11
|
-
class ConfigAccess {
|
|
12
|
-
constructor() {
|
|
13
|
-
// sdkConfig is the JSON object read from the sdk-config.json file
|
|
14
|
-
this.sdkConfig = {};
|
|
15
|
-
// isConfigLoaded will be updated to true after the async load is complete
|
|
16
|
-
this.isConfigLoaded = false;
|
|
17
|
-
|
|
18
|
-
// The "work" to load the config file is done (asynchronously) via the initialize
|
|
19
|
-
// (Factory function) below)
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Asynchronous initialization of the config file contents.
|
|
24
|
-
* @returns Promise of config file fetch
|
|
25
|
-
*/
|
|
26
|
-
async readSdkConfig() {
|
|
27
|
-
if (isEmptyObject(this.sdkConfig)) {
|
|
28
|
-
return fetch('./sdk-config.json')
|
|
29
|
-
.then(response => {
|
|
30
|
-
if (response.ok) {
|
|
31
|
-
return response.json();
|
|
32
|
-
} else {
|
|
33
|
-
throw new Error(`Failed with status:${response.status}`);
|
|
34
|
-
}
|
|
35
|
-
})
|
|
36
|
-
.then(data => {
|
|
37
|
-
this.sdkConfig = data;
|
|
38
|
-
this.fixupConfigSettings();
|
|
39
|
-
return Promise.resolve(this.sdkConfig);
|
|
40
|
-
})
|
|
41
|
-
.catch(err => {
|
|
42
|
-
console.error('Fetch for sdk-config.js failed.');
|
|
43
|
-
console.error(err);
|
|
44
|
-
return Promise.reject(err);
|
|
45
|
-
});
|
|
46
|
-
} else {
|
|
47
|
-
return Promise.resolve(this.sdkConfig);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// Adjust any settings like setting up defaults or making sure URIs have a trailing slash
|
|
52
|
-
fixupConfigSettings() {
|
|
53
|
-
const oServerConfig = this.sdkConfig['serverConfig'];
|
|
54
|
-
// If not present, then use current root path
|
|
55
|
-
oServerConfig.sdkContentServerUrl = oServerConfig.sdkContentServerUrl || window.location.origin;
|
|
56
|
-
// Needs a trailing slash so add one if not there
|
|
57
|
-
if (!oServerConfig.sdkContentServerUrl.endsWith('/')) {
|
|
58
|
-
oServerConfig.sdkContentServerUrl = `${oServerConfig.sdkContentServerUrl}/`;
|
|
59
|
-
}
|
|
60
|
-
console.log(`Using sdkContentServerUrl: ${this.sdkConfig['serverConfig'].sdkContentServerUrl}`);
|
|
61
|
-
|
|
62
|
-
// Don't want a trailing slash for infinityRestServerUrl
|
|
63
|
-
if (oServerConfig.infinityRestServerUrl.endsWith('/')) {
|
|
64
|
-
oServerConfig.infinityRestServerUrl = oServerConfig.infinityRestServerUrl.slice(0, -1);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// Specify our own internal list of well known portals to exclude (if one not specified)
|
|
68
|
-
if (!oServerConfig.excludePortals) {
|
|
69
|
-
oServerConfig.excludePortals = [
|
|
70
|
-
'pxExpress',
|
|
71
|
-
'Developer',
|
|
72
|
-
'pxPredictionStudio',
|
|
73
|
-
'pxAdminStudio',
|
|
74
|
-
'pyCaseWorker',
|
|
75
|
-
'pyCaseManager7'
|
|
76
|
-
];
|
|
77
|
-
console.warn(
|
|
78
|
-
`No exludePortals entry found within serverConfig section of sdk-config.json. Using the following default list: ["pxExpress", "Developer", "pxPredictionStudio", "pxAdminStudio", "pyCaseWorker", "pyCaseManager7"]`
|
|
79
|
-
);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
*
|
|
85
|
-
* @returns the sdk-config JSON object
|
|
86
|
-
*/
|
|
87
|
-
getSdkConfig = async () => {
|
|
88
|
-
if (isEmptyObject(this.sdkConfig)) {
|
|
89
|
-
await getSdkConfig();
|
|
90
|
-
}
|
|
91
|
-
return this.sdkConfig;
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
*
|
|
96
|
-
* @returns the authConfig block in the SDK Config object
|
|
97
|
-
*/
|
|
98
|
-
getSdkConfigAuth = () => {
|
|
99
|
-
if (isEmptyObject(this.sdkConfig)) {
|
|
100
|
-
const config = this.getSdkConfig();
|
|
101
|
-
}
|
|
102
|
-
return this.sdkConfig['authConfig'];
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
*
|
|
107
|
-
* @returns the serverConfig bloc from the sdk-config.json file
|
|
108
|
-
*/
|
|
109
|
-
getSdkConfigServer = () => {
|
|
110
|
-
if (isEmptyObject(this.sdkConfig)) {
|
|
111
|
-
const config = this.getSdkConfig();
|
|
112
|
-
}
|
|
113
|
-
return this.sdkConfig['serverConfig'];
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* @param {String} key the key to be inserted/updated in serverConfig
|
|
118
|
-
* @param {String} value the value to be assigned to the given key
|
|
119
|
-
*/
|
|
120
|
-
setSdkConfigServer = (key, value) => {
|
|
121
|
-
this.sdkConfig.serverConfig[key] = value;
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Path to the BootstrapCSS
|
|
126
|
-
* @returns the locBootstrapCSS from the serverConfig block of the sdk-config.json file
|
|
127
|
-
*/
|
|
128
|
-
getSdkConfigBootstrapCSS = () => {
|
|
129
|
-
const serverConfig = this.getSdkConfigServer();
|
|
130
|
-
const locBootstrapCSS = serverConfig.locBootstrapCSS;
|
|
131
|
-
if (locBootstrapCSS === undefined) {
|
|
132
|
-
console.error(`locBootstrapCSS: ${locBootstrapCSS}`);
|
|
133
|
-
}
|
|
134
|
-
return locBootstrapCSS;
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// Implement Factory function to allow async load
|
|
139
|
-
// See https://stackoverflow.com/questions/49905178/asynchronous-operations-in-constructor/49906064#49906064 for inspiration
|
|
140
|
-
async function createSdkConfigAccess() {
|
|
141
|
-
// Note that our initialize function returns a promise...
|
|
142
|
-
let singleton = new ConfigAccess();
|
|
143
|
-
await singleton.readSdkConfig();
|
|
144
|
-
return singleton;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
// Initialize exported SdkConfigAccess structure
|
|
148
|
-
async function getSdkConfig() {
|
|
149
|
-
return new Promise(resolve => {
|
|
150
|
-
let idNextCheck = null;
|
|
151
|
-
if (!SdkConfigAccess && !SdkConfigAccessCreateInProgress) {
|
|
152
|
-
SdkConfigAccessCreateInProgress = true;
|
|
153
|
-
createSdkConfigAccess().then(theConfigAccess => {
|
|
154
|
-
// Key initialization of SdkConfigAccess
|
|
155
|
-
SdkConfigAccess = theConfigAccess;
|
|
156
|
-
SdkConfigAccessCreateInProgress = false;
|
|
157
|
-
// console.log(`SdkConfigAccess: ${JSON.stringify(SdkConfigAccess)}`);
|
|
158
|
-
// Create and dispatch the SdkConfigAccessReady event
|
|
159
|
-
const event = new CustomEvent('SdkConfigAccessReady', {});
|
|
160
|
-
document.dispatchEvent(event);
|
|
161
|
-
return resolve(SdkConfigAccess.sdkConfig);
|
|
162
|
-
});
|
|
163
|
-
} else {
|
|
164
|
-
const fnCheckForConfig = () => {
|
|
165
|
-
if (SdkConfigAccess) {
|
|
166
|
-
if (idNextCheck) {
|
|
167
|
-
clearInterval(idNextCheck);
|
|
168
|
-
}
|
|
169
|
-
return resolve(SdkConfigAccess.sdkConfig);
|
|
170
|
-
}
|
|
171
|
-
idNextCheck = setInterval(fnCheckForConfig, 500);
|
|
172
|
-
};
|
|
173
|
-
if (SdkConfigAccess) {
|
|
174
|
-
return resolve(SdkConfigAccess.sdkConfig);
|
|
175
|
-
} else {
|
|
176
|
-
idNextCheck = setInterval(fnCheckForConfig, 500);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
if (true) {
|
|
183
|
-
let ignore = getSdkConfig();
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
export { SdkConfigAccess, getSdkConfig };
|