@c8y/bootstrap 1019.0.3

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.
@@ -0,0 +1 @@
1
+ export * from './resolvers/options-resolver';
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './resolvers/options-resolver';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { ApplicationRemotePlugins } from '@c8y/client';
2
+ export declare function loadOptions(): Promise<any>;
3
+ export declare function getAllMFRemotes(options: Array<{
4
+ remotes?: object;
5
+ }>): ApplicationRemotePlugins;
6
+ export declare function loginOptions(): Promise<unknown>;
7
+ export declare function loadUrlOptions(): any;
8
+ export declare function clearUrlOptionsCache(): void;
9
+ /**
10
+ * Apply the given options to the C8Y_APP object in the window and update the document elements.
11
+ * @param options - An object containing configuration options for the C8Y_APP object.
12
+ * @returns - The updated options object.
13
+ */
14
+ export declare function applyOptions(options: Record<string, unknown>): Record<string, unknown>;
15
+ export declare function setVersion(options: any): void;
16
+ export declare function updateTitle({ globalTitle }: {
17
+ globalTitle: any;
18
+ }, document: any): void;
19
+ export declare function updateFavicon({ faviconUrl }: {
20
+ faviconUrl?: string;
21
+ }, document: any): void;
22
+ export declare function updateBrandingUrl({ brandingUrl }: {
23
+ brandingUrl: any;
24
+ }, document: any): void;
25
+ export declare function updateCss({ brandingCssVars, extraCssUrls }: {
26
+ brandingCssVars: any;
27
+ extraCssUrls: any;
28
+ }, document: any): void;
29
+ export declare function updateTranslations(options: any): void;
@@ -0,0 +1,288 @@
1
+ import { forEach, get, reduce, union } from 'lodash';
2
+ import chroma from 'chroma-js';
3
+ let staticOptionsCache;
4
+ let urlOptionsCache;
5
+ export async function loadOptions() {
6
+ const urlOptions = loadUrlOptions(); // used for debugging or preview
7
+ const staticOptions = loadStaticOptions();
8
+ const dynamicOptions = await loadDynamicOptions();
9
+ const localDynamicOptions = await loadLocalDynamicOptions();
10
+ const previewOptions = loadPreviewOptions();
11
+ // languages are to be merged and not replaced
12
+ const languages = {
13
+ ...(staticOptions.languages || {}),
14
+ ...(localDynamicOptions.languages || {}),
15
+ ...(dynamicOptions.languages || {}),
16
+ ...(urlOptions.languages || {})
17
+ };
18
+ let remotes;
19
+ if (urlOptions?.forceUrlRemotes) {
20
+ remotes = getAllMFRemotes([urlOptions]);
21
+ }
22
+ else {
23
+ remotes = getAllMFRemotes([
24
+ staticOptions,
25
+ localDynamicOptions,
26
+ dynamicOptions,
27
+ urlOptions,
28
+ previewOptions
29
+ ]);
30
+ }
31
+ const options = {
32
+ versions: {
33
+ ng1: __VERSION_NG1__,
34
+ ngx: __VERSION_NGX__,
35
+ package: __VERSION_PACKAGE__
36
+ },
37
+ ...staticOptions,
38
+ ...localDynamicOptions,
39
+ ...dynamicOptions,
40
+ ...urlOptions,
41
+ ...previewOptions,
42
+ remotes,
43
+ languages,
44
+ remoteModules: []
45
+ };
46
+ options.C8Y_INSTANCE_OPTIONS = { ...options }; // for compatability with c8yBase.getOptions in ng1-modules
47
+ // If no shades are defined, we auto generate shades. This was implemented with the
48
+ // re-design in 10.17. Branding editor should later define the shades. So long we
49
+ // auto generate shades out of the primary color and based on the referenceShades.
50
+ const shouldApplyShadeColors = hasBrandPrimary(options.brandingCssVars) && !hasAnyBrandShade(options.brandingCssVars);
51
+ if (shouldApplyShadeColors) {
52
+ options.brandingCssVars = getShadeColorBrandingCssVars(options.brandingCssVars);
53
+ }
54
+ return options;
55
+ }
56
+ function getShadeColorBrandingCssVars(brandingCssVars) {
57
+ const shades = generateShades(brandingCssVars['brand-primary']);
58
+ let i = 1;
59
+ for (const shade of shades) {
60
+ brandingCssVars['c8y-brand-' + i + '0'] = shade;
61
+ i++;
62
+ }
63
+ return brandingCssVars;
64
+ }
65
+ function generateShades(inputColor) {
66
+ const referenceShades = [
67
+ '#134158',
68
+ '#1C5569',
69
+ '#058192',
70
+ '#22A6AA',
71
+ '#3CC1B7',
72
+ '#8ADBD5',
73
+ '#C5EDEA',
74
+ '#EBF9F8'
75
+ ];
76
+ // Calculate the luminance of the reference shades
77
+ const referenceLuminances = referenceShades.map(color => chroma(color).luminance());
78
+ // Generate shades of the input color with the same luminance as the reference shades
79
+ const generatedShades = referenceLuminances.map(luminance => chroma(inputColor).luminance(luminance).hex());
80
+ // Calculate the distance between the input color and each color in the generatedShades array
81
+ const distances = generatedShades.map(color => chroma.deltaE(inputColor, color));
82
+ // Find the index of the color with the smallest distance
83
+ const index = distances.indexOf(Math.min(...distances));
84
+ generatedShades[index] = inputColor;
85
+ return generatedShades;
86
+ }
87
+ function hasBrandPrimary(brandingCssVars) {
88
+ return !!brandingCssVars?.['brand-primary'];
89
+ }
90
+ function hasAnyBrandShade(brandingCssVars) {
91
+ if (!brandingCssVars) {
92
+ return false;
93
+ }
94
+ return !!Object.keys(brandingCssVars).some(value => /brand-[1-8]0/.test(value));
95
+ }
96
+ export function getAllMFRemotes(options) {
97
+ return reduce(options, (allRemotes, mfRemote) => {
98
+ const { remotes } = mfRemote;
99
+ forEach(remotes, (remoteModules, remoteContextPath) => {
100
+ const currentRemotes = get(allRemotes, remoteContextPath, []);
101
+ allRemotes[remoteContextPath] = union(currentRemotes, remoteModules);
102
+ });
103
+ return allRemotes;
104
+ }, {});
105
+ }
106
+ function loadStaticOptions() {
107
+ if (!staticOptionsCache) {
108
+ staticOptionsCache =
109
+ JSON.parse(document.querySelector('#static-options').innerText) || {};
110
+ }
111
+ return { ...staticOptionsCache, ...loadUrlOptions() };
112
+ }
113
+ export async function loginOptions() {
114
+ const hostName = location.origin;
115
+ return await requestRemoteOptions(hostName + '/tenant/loginOptions');
116
+ }
117
+ export function loadUrlOptions() {
118
+ if (!urlOptionsCache) {
119
+ const query = location.search.substr(1).split('&');
120
+ urlOptionsCache = query.reduce((options, keyValuePair) => {
121
+ if (keyValuePair) {
122
+ if (keyValuePair.match(/=/)) {
123
+ const [key, value] = keyValuePair.split(/=/);
124
+ try {
125
+ options[key] = JSON.parse(decodeURIComponent(value));
126
+ }
127
+ catch (error) {
128
+ console.warn(`Failed to parse option ${key}: ${error}`);
129
+ options[key] = value;
130
+ }
131
+ }
132
+ else {
133
+ options[keyValuePair] = true;
134
+ }
135
+ }
136
+ return options;
137
+ }, {});
138
+ }
139
+ return urlOptionsCache;
140
+ }
141
+ export function clearUrlOptionsCache() {
142
+ urlOptionsCache = undefined;
143
+ }
144
+ async function loadLocalDynamicOptions() {
145
+ const remoteOptions = await requestRemoteOptions(`cumulocity.json?nocache=${String(Math.random()).substr(2)}`);
146
+ return remoteOptions;
147
+ }
148
+ async function loadDynamicOptions() {
149
+ let { dynamicOptionsUrl } = loadStaticOptions();
150
+ let remoteOptions = {};
151
+ if (dynamicOptionsUrl) {
152
+ dynamicOptionsUrl = dynamicOptionsUrl.match(/\?/)
153
+ ? dynamicOptionsUrl
154
+ : `${dynamicOptionsUrl}?nocache=${String(Math.random()).substr(2)}`;
155
+ remoteOptions = await requestRemoteOptions(dynamicOptionsUrl);
156
+ }
157
+ return remoteOptions;
158
+ }
159
+ function loadPreviewOptions() {
160
+ if (window.C8Y_PREVIEW) {
161
+ return window.C8Y_PREVIEW;
162
+ }
163
+ return {};
164
+ }
165
+ async function requestRemoteOptions(url) {
166
+ return new Promise((resolve, reject) => {
167
+ const request = new XMLHttpRequest();
168
+ let options = {};
169
+ const onload = () => {
170
+ if (request.status >= 200 && request.status < 400) {
171
+ try {
172
+ options = JSON.parse(request.responseText);
173
+ }
174
+ catch (e) {
175
+ // do nothing
176
+ }
177
+ Object.keys(options).forEach(key => {
178
+ const value = options[key];
179
+ if (typeof value === 'string') {
180
+ try {
181
+ const parsed = JSON.parse(value);
182
+ if (typeof parsed === 'object') {
183
+ options[key] = parsed;
184
+ }
185
+ }
186
+ catch (e) {
187
+ // do nothing
188
+ }
189
+ }
190
+ });
191
+ }
192
+ resolve(options);
193
+ };
194
+ request.open('GET', url, true);
195
+ request.setRequestHeader('UseXBasic', 'true');
196
+ request.onload = onload;
197
+ request.onerror = e => reject(e);
198
+ request.send();
199
+ });
200
+ }
201
+ /**
202
+ * Update the window object with the given options and modules.
203
+ * @param windowObj - The global window object.
204
+ * @param c8yAppVarName - The variable name used for the C8Y_APP object.
205
+ * @param options - An object containing configuration options for the C8Y_APP object.
206
+ * @param modulesToCopy - An array of angularjs modules to be added to the C8Y_APP object.
207
+ * @returns - The updated window object.
208
+ */
209
+ function updateWindowObject(windowObj, c8yAppVarName, options) {
210
+ windowObj.C8Y_APP = windowObj[c8yAppVarName] = { modules: [], ...options };
211
+ return windowObj;
212
+ }
213
+ /**
214
+ * Apply the given options to the C8Y_APP object in the window and update the document elements.
215
+ * @param options - An object containing configuration options for the C8Y_APP object.
216
+ * @returns - The updated options object.
217
+ */
218
+ export function applyOptions(options) {
219
+ const c8yAppVarName = options['c8yAppVarName'] || 'C8Y_APP';
220
+ const updatedWindow = updateWindowObject(window, c8yAppVarName, options);
221
+ options = updatedWindow[c8yAppVarName];
222
+ setVersion(options);
223
+ updateTitle(options, document);
224
+ updateFavicon(options, document);
225
+ updateBrandingUrl(options, document);
226
+ updateCss(options, document);
227
+ updateTranslations(options);
228
+ return options;
229
+ }
230
+ export function setVersion(options) {
231
+ const { c8yVersionName = 'UI_VERSION' } = options;
232
+ window[c8yVersionName] = options.versions.ng1 || options.versions.ngx;
233
+ }
234
+ export function updateTitle({ globalTitle }, document) {
235
+ if (!globalTitle) {
236
+ return;
237
+ }
238
+ const titleEl = document.querySelector('title');
239
+ titleEl.innerText = `${globalTitle} - ${titleEl.innerText}`;
240
+ }
241
+ export function updateFavicon({ faviconUrl = 'favicon.ico' }, document) {
242
+ const link = document.createElement('link');
243
+ link.setAttribute('rel', 'icon');
244
+ link.setAttribute('href', faviconUrl);
245
+ document.querySelector('head').appendChild(link);
246
+ }
247
+ export function updateBrandingUrl({ brandingUrl }, document) {
248
+ if (!brandingUrl) {
249
+ if (__ENTRY_BRANDING__) {
250
+ /**
251
+ * Added ngGlobalStyle. Without it, the Angular webpack configuration only uses less-loader for project styles (c8y/style package).
252
+ * After adding ngGlobalStyle, the rest of the loaders: postcss, css, and mini-css-extract will be applied to the project styles.
253
+ */
254
+ import(/* webpackChunkName: "branding" */ `${__ENTRY_BRANDING__}?ngGlobalStyle`);
255
+ }
256
+ else {
257
+ throw new Error('Branding definition missing.');
258
+ }
259
+ }
260
+ else {
261
+ const link = document.createElement('link');
262
+ link.setAttribute('rel', 'stylesheet');
263
+ link.setAttribute('href', brandingUrl);
264
+ document.querySelector('head').appendChild(link);
265
+ }
266
+ }
267
+ export function updateCss({ brandingCssVars, extraCssUrls }, document) {
268
+ if (Array.isArray(extraCssUrls)) {
269
+ extraCssUrls.forEach(url => {
270
+ const link = document.createElement('link');
271
+ link.setAttribute('rel', 'stylesheet');
272
+ link.setAttribute('href', url);
273
+ document.querySelector('head').appendChild(link);
274
+ });
275
+ }
276
+ if (brandingCssVars) {
277
+ const vars = Object.keys(brandingCssVars).map(key => `--${key}: ${brandingCssVars[key]};`);
278
+ const style = document.createElement('style');
279
+ style.appendChild(document.createTextNode(`:root{\n${vars.join('\n')}\n}`));
280
+ document.querySelector('body').appendChild(style);
281
+ }
282
+ }
283
+ export function updateTranslations(options) {
284
+ if (options?.i18nExtra) {
285
+ options.langsDetails = { ...options.langsDetails, ...options.i18nExtra };
286
+ }
287
+ }
288
+ //# sourceMappingURL=options-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options-resolver.js","sourceRoot":"","sources":["../../resolvers/options-resolver.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@c8y/bootstrap",
3
+ "version": "1019.0.3",
4
+ "license": "Apache-2.0",
5
+ "author": "Cumulocity",
6
+ "description": "Bootstrap layer",
7
+ "type": "module",
8
+ "exports": {
9
+ ".": "./dist/index.js"
10
+ },
11
+ "main": "./dist/index.js",
12
+ "engines": {
13
+ "node": ">=14"
14
+ },
15
+ "scripts": {
16
+ "build": "rimraf dist && tsc -p ./tsconfig.json"
17
+ },
18
+ "files": [
19
+ "dist/"
20
+ ],
21
+ "devDependencies": {
22
+ "typescript": "4.9.5"
23
+ },
24
+ "builders": "./dist/builders.json",
25
+ "keywords": [
26
+ "Cumulocity",
27
+ "IoT",
28
+ "m2m",
29
+ "devkit",
30
+ "tools"
31
+ ],
32
+ "dependencies": {
33
+ "chroma-js": "2.4.2",
34
+ "lodash": "4.17.21"
35
+ }
36
+ }