@govflanders/vl-widget-global-header-types 2.0.5 → 2.0.7
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/README.md +56 -0
- package/dist/client/access-menu.d.ts +16 -0
- package/dist/client/branding.d.ts +22 -0
- package/dist/client/client.d.ts +28 -7
- package/dist/client/contact.d.ts +30 -0
- package/docs/assets/highlight.css +7 -0
- package/docs/functions/bootstrap.html +1 -1
- package/docs/index.html +137 -1
- package/docs/interfaces/AccessMenuMethods.html +33 -9
- package/docs/interfaces/AlertConfig.html +4 -4
- package/docs/interfaces/Application.html +4 -4
- package/docs/interfaces/ApplicationMenuLink.html +5 -5
- package/docs/interfaces/Authorization.html +4 -4
- package/docs/interfaces/BUR.html +5 -5
- package/docs/interfaces/BaseEntity.html +4 -4
- package/docs/interfaces/BrandingConfigColors.html +3 -3
- package/docs/interfaces/BrandingConfigHost.html +5 -5
- package/docs/interfaces/BrandingConfigUmbrella.html +4 -4
- package/docs/interfaces/BrandingMethods.html +45 -12
- package/docs/interfaces/Channel.html +11 -11
- package/docs/interfaces/ContactMethods.html +29 -8
- package/docs/interfaces/ContactOption.html +14 -14
- package/docs/interfaces/ContactOptionRef.html +4 -4
- package/docs/interfaces/EA.html +4 -4
- package/docs/interfaces/EnrichedServicePoints.html +5 -5
- package/docs/interfaces/GID.html +4 -4
- package/docs/interfaces/GlobalHeaderClient.html +36 -12
- package/docs/interfaces/IDPData.html +4 -4
- package/docs/interfaces/Image.html +4 -4
- package/docs/interfaces/LB.html +4 -4
- package/docs/interfaces/Link.html +3 -3
- package/docs/interfaces/LinkWithTarget.html +4 -4
- package/docs/interfaces/MainLink.html +5 -5
- package/docs/interfaces/OV.html +4 -4
- package/docs/interfaces/ProfileConfig.html +7 -7
- package/docs/interfaces/ServicePoints.html +5 -5
- package/docs/interfaces/Session.html +2 -2
- package/docs/interfaces/User.html +3 -3
- package/docs/interfaces/VER.html +4 -4
- package/docs/types/AlertModifier.html +1 -1
- package/docs/types/BrandingConfigLevel.html +1 -1
- package/docs/types/CapacityCode.html +1 -1
- package/docs/types/ChannelIcon.html +1 -1
- package/docs/types/ChannelType.html +1 -1
- package/docs/types/CobrowseChannel.html +1 -1
- package/docs/types/ContactOptionSocialPlatform.html +1 -1
- package/docs/types/ContactServiceEndpoints.html +1 -1
- package/docs/types/EnrichedServicePoint.html +1 -1
- package/docs/types/Entity.html +1 -1
- package/docs/types/ServicePoint.html +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -277,6 +277,62 @@ client.accessMenu.setMainLinks([
|
|
|
277
277
|
]);
|
|
278
278
|
```
|
|
279
279
|
|
|
280
|
+
## Content Security Policy (CSP)
|
|
281
|
+
|
|
282
|
+
To ensure the secure integration of the **Global Header Widget**, you need to configure your Content Security Policy (CSP) with the following directives:
|
|
283
|
+
|
|
284
|
+
### Production Environment CSP Configuration
|
|
285
|
+
|
|
286
|
+
The minimum required CSP directives for using the global-header in a production environment are:
|
|
287
|
+
|
|
288
|
+
| Directive | Value |
|
|
289
|
+
|--------------|--------------------------------------------|
|
|
290
|
+
| `connect-src`| `https://widgets.vlaanderen.be` |
|
|
291
|
+
| `connect-src`| `wss://chat.contactcenter.vlaanderen.be` |
|
|
292
|
+
| `connect-src`| `https://chat.contactcenter.vlaanderen.be` |
|
|
293
|
+
| `connect-src`| `https://contactapi.vlaanderen.be` |
|
|
294
|
+
| `font-src` | `https://ui.vlaanderen.be` |
|
|
295
|
+
| `font-src` | `https://assets.vlaanderen.be` |
|
|
296
|
+
| `font-src` | `https://widgets.vlaanderen.be` |
|
|
297
|
+
| `img-src` | `data:` |
|
|
298
|
+
| `img-src` | `https://assets.vlaanderen.be` |
|
|
299
|
+
| `img-src` | `https://widgets.vlaanderen.be` |
|
|
300
|
+
| `script-src` | `https://widgets.vlaanderen.be` |
|
|
301
|
+
|
|
302
|
+
### TNI Environment CSP Configuration
|
|
303
|
+
|
|
304
|
+
The minimum required CSP directives for using the global-header in a TNI environment are:
|
|
305
|
+
|
|
306
|
+
| Directive | Value |
|
|
307
|
+
|--------------|---------------------------------------------|
|
|
308
|
+
| `connect-src`| `https://tni.widgets.dev-vlaanderen.be` |
|
|
309
|
+
| `connect-src`| `wss://tni.contactapi.uat-vlaanderen.be` |
|
|
310
|
+
| `connect-src`| `https://chat.contactcenter.dev-vlaanderen.be` |
|
|
311
|
+
| `connect-src`| `https://tni.contactapi.uat-vlaanderen.be` |
|
|
312
|
+
| `font-src` | `https://ui.vlaanderen.be` |
|
|
313
|
+
| `font-src` | `https://assets.vlaanderen.be` |
|
|
314
|
+
| `font-src` | `https://tni.widgets.vlaanderen.be` |
|
|
315
|
+
| `img-src` | `data:` |
|
|
316
|
+
| `img-src` | `https://assets.vlaanderen.be` |
|
|
317
|
+
| `img-src` | `https://tni.widgets.vlaanderen.be` |
|
|
318
|
+
| `script-src` | `https://tni.widgets.vlaanderen.be` |
|
|
319
|
+
|
|
320
|
+
### Additional CSP for Screensharing
|
|
321
|
+
|
|
322
|
+
If you're using the screensharing extension in the contact menu, include the following additional directives:
|
|
323
|
+
|
|
324
|
+
| Directive | Value (Production & TNI) |
|
|
325
|
+
|--------------|------------------------------------------|
|
|
326
|
+
| `connect-src`| `cobrowse.io` |
|
|
327
|
+
| `connect-src`| `*.cobrowse.io` |
|
|
328
|
+
| `connect-src`| `wss://*.cobrowse.io` |
|
|
329
|
+
|
|
330
|
+
### Further Information
|
|
331
|
+
|
|
332
|
+
For more detailed information about the cobrowse CSP settings, please refer to the [Cobrowse SDK Installation Guide](https://docs.cobrowse.io/sdk-installation/web#content-security-policies-csps).
|
|
333
|
+
|
|
334
|
+
Ensure that your CSP settings are correctly configured to avoid any issues with the widget's functionality and security. If you have any questions or need further assistance, please refer to the [Contact Information](#contact-information) section.
|
|
335
|
+
|
|
280
336
|
## Contact Information
|
|
281
337
|
|
|
282
338
|
If you need assistance or have any questions regarding the **Global Header Widget**, feel free to reach out to us:
|
|
@@ -5,46 +5,62 @@ export interface AccessMenuMethods {
|
|
|
5
5
|
* Set the main links
|
|
6
6
|
* @param mainLinks The main links to set
|
|
7
7
|
* @returns The result of the operation
|
|
8
|
+
* @example
|
|
9
|
+
* const success = await globalHeaderClient.accessMenu.setMainLinks([{ label: 'Home', href: '/', isExternal: false }]);
|
|
8
10
|
*/
|
|
9
11
|
setMainLinks: (mainLinks: Translatable<MainLink>[]) => Promise<boolean>;
|
|
10
12
|
/**
|
|
11
13
|
* Add an application menu link
|
|
12
14
|
* @param link The application menu link to add
|
|
13
15
|
* @returns The updated list of application menu links
|
|
16
|
+
* @example
|
|
17
|
+
* const updatedLinks = await globalHeaderClient.accessMenu.addApplicationMenuLink({ label: 'Dashboard', href: '/dashboard' });
|
|
14
18
|
*/
|
|
15
19
|
addApplicationMenuLink: (link: Translatable<ApplicationMenuLink>) => Promise<Translatable<ApplicationMenuLink>[]>;
|
|
16
20
|
/**
|
|
17
21
|
* Add multiple application menu links
|
|
18
22
|
* @param links The application menu links to add
|
|
19
23
|
* @returns The updated list of application menu links
|
|
24
|
+
* @example
|
|
25
|
+
* const updatedLinks = await globalHeaderClient.accessMenu.addApplicationMenuLinks([{ label: 'Profile', href: '/profile' }]);
|
|
20
26
|
*/
|
|
21
27
|
addApplicationMenuLinks: (links: Translatable<ApplicationMenuLink>[]) => Promise<Translatable<ApplicationMenuLink>[]>;
|
|
22
28
|
/**
|
|
23
29
|
* Set all application menu links
|
|
24
30
|
* @param links The application menu links to set
|
|
25
31
|
* @returns The updated list of application menu links
|
|
32
|
+
* @example
|
|
33
|
+
* const updatedLinks = await globalHeaderClient.accessMenu.setApplicationMenuLinks([{ label: 'Settings', href: '/settings' }]);
|
|
26
34
|
*/
|
|
27
35
|
setApplicationMenuLinks: (links: Translatable<ApplicationMenuLink>[]) => Promise<Translatable<ApplicationMenuLink>[]>;
|
|
28
36
|
/**
|
|
29
37
|
* Set the profile configuration
|
|
30
38
|
* @param profileConfig The profile configuration to set
|
|
31
39
|
* @returns The result of the operation
|
|
40
|
+
* @example
|
|
41
|
+
* const success = await globalHeaderClient.accessMenu.setProfile({ active: true, loginUrl: '/login', logoutUrl: '/logout' });
|
|
32
42
|
*/
|
|
33
43
|
setProfile: (profileConfig: Partial<ProfileConfig>) => Promise<boolean>;
|
|
34
44
|
/**
|
|
35
45
|
* Get the profile configuration
|
|
36
46
|
* @returns The profile configuration
|
|
47
|
+
* @example
|
|
48
|
+
* const profile = await globalHeaderClient.accessMenu.getProfile();
|
|
37
49
|
*/
|
|
38
50
|
getProfile: () => Promise<Partial<ProfileConfig>>;
|
|
39
51
|
/**
|
|
40
52
|
* Get the application name
|
|
41
53
|
* @returns The application name
|
|
54
|
+
* @example
|
|
55
|
+
* const appName = await globalHeaderClient.accessMenu.getApplicationName();
|
|
42
56
|
*/
|
|
43
57
|
getApplicationName: () => Promise<string>;
|
|
44
58
|
/**
|
|
45
59
|
* Set the application name
|
|
46
60
|
* @param applicationName The application name to set
|
|
47
61
|
* @returns The result of the operation
|
|
62
|
+
* @example
|
|
63
|
+
* const success = await globalHeaderClient.accessMenu.setApplicationName('My Application');
|
|
48
64
|
*/
|
|
49
65
|
setApplicationName: (applicationName: Translatable<string>) => Promise<boolean>;
|
|
50
66
|
}
|
|
@@ -3,35 +3,47 @@ export interface BrandingMethods {
|
|
|
3
3
|
/**
|
|
4
4
|
* Get the branding level
|
|
5
5
|
* @returns The branding level
|
|
6
|
+
* @example
|
|
7
|
+
* const level = await globalHeaderClient.branding.getLevel();
|
|
6
8
|
*/
|
|
7
9
|
getLevel: () => Promise<number>;
|
|
8
10
|
/**
|
|
9
11
|
* Set the branding level
|
|
10
12
|
* @param level The branding level to set
|
|
11
13
|
* @returns A boolean indicating the success of the operation
|
|
14
|
+
* @example
|
|
15
|
+
* const success = await globalHeaderClient.branding.setLevel(2);
|
|
12
16
|
*/
|
|
13
17
|
setLevel: (level: number) => Promise<boolean>;
|
|
14
18
|
/**
|
|
15
19
|
* Get the branding colors
|
|
16
20
|
* @returns The branding colors
|
|
21
|
+
* @example
|
|
22
|
+
* const colors = await globalHeaderClient.branding.getColors();
|
|
17
23
|
*/
|
|
18
24
|
getColors: () => Promise<BrandingConfigColors>;
|
|
19
25
|
/**
|
|
20
26
|
* Get a specific branding color
|
|
21
27
|
* @param type The type of the branding color to retrieve
|
|
22
28
|
* @returns The requested branding color
|
|
29
|
+
* @example
|
|
30
|
+
* const color = await globalHeaderClient.branding.getColor('primary');
|
|
23
31
|
*/
|
|
24
32
|
getColor: (type: keyof BrandingConfigColors) => Promise<string>;
|
|
25
33
|
/**
|
|
26
34
|
* Set the branding colors
|
|
27
35
|
* @param colors The branding colors to set
|
|
28
36
|
* @returns A boolean indicating the success of the operation
|
|
37
|
+
* @example
|
|
38
|
+
* const success = await globalHeaderClient.branding.setColors({ primary: '#000000', functional: '#FFFFFF' });
|
|
29
39
|
*/
|
|
30
40
|
setColors: (colors: BrandingConfigColors) => Promise<boolean>;
|
|
31
41
|
/**
|
|
32
42
|
* Set a specific branding color
|
|
33
43
|
* @param args The branding color type and value to set
|
|
34
44
|
* @returns A boolean indicating the success of the operation
|
|
45
|
+
* @example
|
|
46
|
+
* const success = await globalHeaderClient.branding.setColor({ type: 'primary', value: '#FF0000' });
|
|
35
47
|
*/
|
|
36
48
|
setColor: (args: {
|
|
37
49
|
type: keyof BrandingConfigColors;
|
|
@@ -40,28 +52,38 @@ export interface BrandingMethods {
|
|
|
40
52
|
/**
|
|
41
53
|
* Get the branding host configuration
|
|
42
54
|
* @returns The branding host configuration
|
|
55
|
+
* @example
|
|
56
|
+
* const hostConfig = await globalHeaderClient.branding.getHost();
|
|
43
57
|
*/
|
|
44
58
|
getHost: () => Promise<Partial<BrandingConfigHost>>;
|
|
45
59
|
/**
|
|
46
60
|
* Set the branding host configuration
|
|
47
61
|
* @param host The branding host configuration to set
|
|
48
62
|
* @returns A boolean indicating the success of the operation
|
|
63
|
+
* @example
|
|
64
|
+
* const success = await globalHeaderClient.branding.setHost({ label: 'My Host', href: 'https://example.com', logo: { src: 'logo.png', alt: 'Logo' } });
|
|
49
65
|
*/
|
|
50
66
|
setHost: (host: Partial<BrandingConfigHost>) => Promise<boolean>;
|
|
51
67
|
/**
|
|
52
68
|
* Get the branding umbrella configuration
|
|
53
69
|
* @returns The branding umbrella configuration
|
|
70
|
+
* @example
|
|
71
|
+
* const umbrellaConfig = await globalHeaderClient.branding.getUmbrella();
|
|
54
72
|
*/
|
|
55
73
|
getUmbrella: () => Promise<Partial<BrandingConfigUmbrella>>;
|
|
56
74
|
/**
|
|
57
75
|
* Set the branding umbrella configuration
|
|
58
76
|
* @param umbrella The branding umbrella configuration to set
|
|
59
77
|
* @returns A boolean indicating the success of the operation
|
|
78
|
+
* @example
|
|
79
|
+
* const success = await globalHeaderClient.branding.setUmbrella({ label: 'Umbrella', href: 'https://umbrella.com' });
|
|
60
80
|
*/
|
|
61
81
|
setUmbrella: (umbrella: Partial<BrandingConfigUmbrella>) => Promise<boolean>;
|
|
62
82
|
/**
|
|
63
83
|
* Get the branding variables
|
|
64
84
|
* @returns A record of CSS variable names and their values
|
|
85
|
+
* @example
|
|
86
|
+
* const variables = await globalHeaderClient.branding.getVariables();
|
|
65
87
|
*/
|
|
66
88
|
getVariables: () => Promise<Record<string, string>>;
|
|
67
89
|
}
|
package/dist/client/client.d.ts
CHANGED
|
@@ -9,37 +9,58 @@ import { Config } from '../config';
|
|
|
9
9
|
*/
|
|
10
10
|
export interface GlobalHeaderClient {
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* Methods related to the **hulp nodig?** menu.
|
|
13
13
|
*/
|
|
14
14
|
contact: ContactMethods;
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* Methods related to the **Aanmelden** menu.
|
|
17
17
|
*/
|
|
18
18
|
accessMenu: AccessMenuMethods;
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
20
|
+
* Methods related to the branding of the widget. This includes:
|
|
21
|
+
* - Colors
|
|
22
|
+
* - Branding level
|
|
23
|
+
* - Umbrella
|
|
24
|
+
* - Host
|
|
21
25
|
*/
|
|
22
26
|
branding: BrandingMethods;
|
|
23
27
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
28
|
+
* Enable or disable navigation within the global header.
|
|
29
|
+
* When navigation is disabled, all interactive elements like the access menu,
|
|
30
|
+
* contact menu, and header links will not work or be hidden.
|
|
31
|
+
*
|
|
32
|
+
* This is useful for scenarios like consent screens, where you don't want users
|
|
33
|
+
* to navigate away from the page by clicking on the header.
|
|
34
|
+
*
|
|
35
|
+
* @param enabled - A boolean value indicating whether navigation should be enabled (true) or disabled (false).
|
|
36
|
+
* @returns A promise that resolves to a boolean, confirming if the navigation state was successfully updated.
|
|
37
|
+
* @example
|
|
38
|
+
* const success = await globalHeaderClient.setNavigationEnabled(false);
|
|
27
39
|
*/
|
|
28
40
|
setNavigationEnabled: (enabled: boolean) => Promise<boolean>;
|
|
29
41
|
/**
|
|
30
42
|
* Get the current configuration.
|
|
31
|
-
*
|
|
43
|
+
* This is the configuration for the widget ID given in the embed or entry script.
|
|
44
|
+
*
|
|
45
|
+
* @returns A promise that resolves to the current configuration.
|
|
46
|
+
* If an error occurs during retrieval, the promise will be rejected with an error message.
|
|
47
|
+
* @example
|
|
48
|
+
* const config = await globalHeaderClient.getConfig();
|
|
32
49
|
*/
|
|
33
50
|
getConfig: () => Promise<Config>;
|
|
34
51
|
/**
|
|
35
52
|
* Mount the Global Header Widget.
|
|
36
53
|
* @param element The element to mount the widget to. If omitted, mounts at the top of the page.
|
|
37
54
|
* @returns A boolean indicating if the widget was mounted successfully.
|
|
55
|
+
* @example
|
|
56
|
+
* const success = await globalHeaderClient.mount(document.getElementById('header'));
|
|
38
57
|
*/
|
|
39
58
|
mount: (element?: HTMLElement) => Promise<boolean>;
|
|
40
59
|
/**
|
|
41
60
|
* Unmount the Global Header Widget.
|
|
42
61
|
* @returns A boolean indicating if the widget was unmounted successfully.
|
|
62
|
+
* @example
|
|
63
|
+
* const success = await globalHeaderClient.unmount();
|
|
43
64
|
*/
|
|
44
65
|
unmount: () => Promise<boolean>;
|
|
45
66
|
}
|
package/dist/client/contact.d.ts
CHANGED
|
@@ -4,37 +4,67 @@ export interface ContactMethods {
|
|
|
4
4
|
/**
|
|
5
5
|
* Get the current service points
|
|
6
6
|
* @returns A promise that resolves to the current service points
|
|
7
|
+
* @example
|
|
8
|
+
* const servicePoints = await globalHeaderClient.contact.getServicePoints();
|
|
7
9
|
*/
|
|
8
10
|
getServicePoints: () => Promise<EnrichedServicePoints>;
|
|
9
11
|
/**
|
|
10
12
|
* Set the service points
|
|
11
13
|
* @param servicePoints The service points to set
|
|
12
14
|
* @returns A promise that resolves to the set service points
|
|
15
|
+
* @example
|
|
16
|
+
* const updatedServicePoints = await globalHeaderClient.contact.setServicePoints({
|
|
17
|
+
* displayMode: "grouped",
|
|
18
|
+
* groupLabel: "Neem contact op met een woonmaatschappij",
|
|
19
|
+
* contextual: [
|
|
20
|
+
* { type: "contactOption", contactGroupId: "OVO002919" },
|
|
21
|
+
* { type: "contactOption", contactGroupId: "OVO002884" },
|
|
22
|
+
* { type: "contactOption", contactGroupId: "OVO002940" },
|
|
23
|
+
* { type: "contactOption", contactGroupId: "OVO039151" },
|
|
24
|
+
* { type: "contactOption", contactGroupId: "OVO025805" },
|
|
25
|
+
* { type: "contactOption", contactGroupId: "OVO002499" },
|
|
26
|
+
* { type: "link", href: "https://www.vlaanderen.be/wonen-in-vlaanderen/zoek-een-organisatie/", label: "Zoek een woonmaatschappij in uw buurt" }
|
|
27
|
+
* ],
|
|
28
|
+
* defaults: [
|
|
29
|
+
* { type: "contactOption", contactGroupId: "vlaanderen", label: "Algemene contactopties van de Vlaamse overheid" },
|
|
30
|
+
* { type: "link", href: "https://www.google.be" }
|
|
31
|
+
* ]
|
|
32
|
+
* });
|
|
13
33
|
*/
|
|
14
34
|
setServicePoints: (args: Translatable<ServicePoints>) => Promise<Translatable<ServicePoints>>;
|
|
15
35
|
/**
|
|
16
36
|
* Reset the service points to the initial values from the configuration.
|
|
17
37
|
* @returns A promise that resolves when the service points have been reset.
|
|
38
|
+
* @example
|
|
39
|
+
* const success = await globalHeaderClient.contact.resetServicePoints();
|
|
18
40
|
*/
|
|
19
41
|
resetServicePoints: () => Promise<boolean>;
|
|
20
42
|
/**
|
|
21
43
|
* Open the contact panel.
|
|
22
44
|
* @returns A promise that resolves to true if the contact panel was opened.
|
|
45
|
+
* @example
|
|
46
|
+
* const isOpen = await globalHeaderClient.contact.open();
|
|
23
47
|
*/
|
|
24
48
|
open: () => Promise<boolean>;
|
|
25
49
|
/**
|
|
26
50
|
* Close the contact panel.
|
|
27
51
|
* @returns A promise that resolves to true if the contact panel was closed.
|
|
52
|
+
* @example
|
|
53
|
+
* const isClosed = await globalHeaderClient.contact.close();
|
|
28
54
|
*/
|
|
29
55
|
close: () => Promise<boolean>;
|
|
30
56
|
/**
|
|
31
57
|
* Toggle the contact panel.
|
|
32
58
|
* @returns A promise that resolves to true if the contact panel is now open.
|
|
59
|
+
* @example
|
|
60
|
+
* const isToggled = await globalHeaderClient.contact.toggle();
|
|
33
61
|
*/
|
|
34
62
|
toggle: () => Promise<boolean>;
|
|
35
63
|
/**
|
|
36
64
|
* Check if the contact panel is open.
|
|
37
65
|
* @returns A promise that resolves to true if the contact panel is open.
|
|
66
|
+
* @example
|
|
67
|
+
* const isOpen = await globalHeaderClient.contact.isOpen();
|
|
38
68
|
*/
|
|
39
69
|
isOpen: () => Promise<boolean>;
|
|
40
70
|
}
|
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
--dark-hl-12: #C586C0;
|
|
28
28
|
--light-hl-13: #267F99;
|
|
29
29
|
--dark-hl-13: #4EC9B0;
|
|
30
|
+
--light-hl-14: #098658;
|
|
31
|
+
--dark-hl-14: #B5CEA8;
|
|
30
32
|
--light-code-background: #FFFFFF;
|
|
31
33
|
--dark-code-background: #1E1E1E;
|
|
32
34
|
}
|
|
@@ -46,6 +48,7 @@
|
|
|
46
48
|
--hl-11: var(--light-hl-11);
|
|
47
49
|
--hl-12: var(--light-hl-12);
|
|
48
50
|
--hl-13: var(--light-hl-13);
|
|
51
|
+
--hl-14: var(--light-hl-14);
|
|
49
52
|
--code-background: var(--light-code-background);
|
|
50
53
|
} }
|
|
51
54
|
|
|
@@ -64,6 +67,7 @@
|
|
|
64
67
|
--hl-11: var(--dark-hl-11);
|
|
65
68
|
--hl-12: var(--dark-hl-12);
|
|
66
69
|
--hl-13: var(--dark-hl-13);
|
|
70
|
+
--hl-14: var(--dark-hl-14);
|
|
67
71
|
--code-background: var(--dark-code-background);
|
|
68
72
|
} }
|
|
69
73
|
|
|
@@ -82,6 +86,7 @@
|
|
|
82
86
|
--hl-11: var(--light-hl-11);
|
|
83
87
|
--hl-12: var(--light-hl-12);
|
|
84
88
|
--hl-13: var(--light-hl-13);
|
|
89
|
+
--hl-14: var(--light-hl-14);
|
|
85
90
|
--code-background: var(--light-code-background);
|
|
86
91
|
}
|
|
87
92
|
|
|
@@ -100,6 +105,7 @@
|
|
|
100
105
|
--hl-11: var(--dark-hl-11);
|
|
101
106
|
--hl-12: var(--dark-hl-12);
|
|
102
107
|
--hl-13: var(--dark-hl-13);
|
|
108
|
+
--hl-14: var(--dark-hl-14);
|
|
103
109
|
--code-background: var(--dark-code-background);
|
|
104
110
|
}
|
|
105
111
|
|
|
@@ -117,4 +123,5 @@
|
|
|
117
123
|
.hl-11 { color: var(--hl-11); }
|
|
118
124
|
.hl-12 { color: var(--hl-12); }
|
|
119
125
|
.hl-13 { color: var(--hl-13); }
|
|
126
|
+
.hl-14 { color: var(--hl-14); }
|
|
120
127
|
pre, code { background: var(--code-background); }
|
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
</div></div></section><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="bootstrap" class="tsd-anchor"></a><span class="tsd-kind-call-signature">bootstrap</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">url</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/GlobalHeaderClient.html" class="tsd-signature-type tsd-kind-interface">GlobalHeaderClient</a><span class="tsd-signature-symbol">></span><a href="#bootstrap" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">url</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The entry URL which has a form like this:
|
|
6
6
|
<code>https://prod.widgets.burgerprofiel.vlaanderen.be/api/v2/widget/your-widget-id/entry</code></p>
|
|
7
7
|
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/GlobalHeaderClient.html" class="tsd-signature-type tsd-kind-interface">GlobalHeaderClient</a><span class="tsd-signature-symbol">></span></h4><p>The GlobalHeaderClient object.</p>
|
|
8
|
-
<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://bitbucket.org/vlaamseoverheid/vl-widgets/src/
|
|
8
|
+
<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://bitbucket.org/vlaamseoverheid/vl-widgets/src/49037f41489a2e8c74cc8d7cdeaedc409bd90176/packages/global-header-types/src/bootstrap.ts#lines-21">global-header-types/src/bootstrap.ts:21</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">Global Header</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
package/docs/index.html
CHANGED
|
@@ -146,6 +146,142 @@ Action Required:</p>
|
|
|
146
146
|
<pre><code class="typescript"><span class="hl-12">import</span><span class="hl-2"> { </span><span class="hl-7">GlobalHeaderClient</span><span class="hl-2">, </span><span class="hl-7">MainLink</span><span class="hl-2"> } </span><span class="hl-12">from</span><span class="hl-2"> </span><span class="hl-11">'@govflanders/vl-widget-global-header-types'</span><span class="hl-2">;</span><br/><br/><span class="hl-9">const</span><span class="hl-2"> </span><span class="hl-10">client</span><span class="hl-2">: </span><span class="hl-13">GlobalHeaderClient</span><span class="hl-2"> = </span><span class="hl-7">window</span><span class="hl-2">.</span><span class="hl-7">globalHeaderClient</span><span class="hl-2">;</span><br/><br/><span class="hl-9">const</span><span class="hl-2"> </span><span class="hl-10">contactLink</span><span class="hl-2">: </span><span class="hl-13">MainLink</span><span class="hl-2"> = {</span><br/><span class="hl-2"> </span><span class="hl-7">label:</span><span class="hl-2"> </span><span class="hl-11">'Contact'</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-7">href:</span><span class="hl-2"> </span><span class="hl-11">'/contact'</span><span class="hl-2">,</span><br/><span class="hl-2">};</span><br/><br/><span class="hl-9">const</span><span class="hl-2"> </span><span class="hl-10">feedbackLink</span><span class="hl-2">: </span><span class="hl-13">MainLink</span><span class="hl-2"> = {</span><br/><span class="hl-2"> </span><span class="hl-7">label:</span><span class="hl-2"> </span><span class="hl-11">'Feedback'</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-7">href:</span><span class="hl-2"> </span><span class="hl-11">'https://example.com/feedback'</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-7">isExternal:</span><span class="hl-2"> </span><span class="hl-9">true</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-7">target:</span><span class="hl-2"> </span><span class="hl-11">'_blank'</span><span class="hl-2">,</span><br/><span class="hl-2">};</span><br/><br/><span class="hl-7">client</span><span class="hl-2">.</span><span class="hl-7">accessMenu</span><span class="hl-2">.</span><span class="hl-8">setMainLinks</span><span class="hl-2">([</span><br/><span class="hl-2"> </span><span class="hl-7">contactLink</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-7">feedbackLink</span><span class="hl-2">,</span><br/><span class="hl-2">]);</span>
|
|
147
147
|
</code><button type="button">Copy</button></pre>
|
|
148
148
|
|
|
149
|
+
<a id="content-security-policy-csp" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Content Security Policy (CSP)<a href="#content-security-policy-csp" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>To ensure the secure integration of the <strong>Global Header Widget</strong>, you need to configure your Content Security Policy (CSP) with the following directives:</p>
|
|
150
|
+
<a id="production-environment-csp-configuration" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Production Environment CSP Configuration<a href="#production-environment-csp-configuration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>The minimum required CSP directives for using the global-header in a production environment are:</p>
|
|
151
|
+
<table>
|
|
152
|
+
<thead>
|
|
153
|
+
<tr>
|
|
154
|
+
<th>Directive</th>
|
|
155
|
+
<th>Value</th>
|
|
156
|
+
</tr>
|
|
157
|
+
</thead>
|
|
158
|
+
<tbody>
|
|
159
|
+
<tr>
|
|
160
|
+
<td><code>connect-src</code></td>
|
|
161
|
+
<td><code>https://widgets.vlaanderen.be</code></td>
|
|
162
|
+
</tr>
|
|
163
|
+
<tr>
|
|
164
|
+
<td><code>connect-src</code></td>
|
|
165
|
+
<td><code>wss://chat.contactcenter.vlaanderen.be</code></td>
|
|
166
|
+
</tr>
|
|
167
|
+
<tr>
|
|
168
|
+
<td><code>connect-src</code></td>
|
|
169
|
+
<td><code>https://chat.contactcenter.vlaanderen.be</code></td>
|
|
170
|
+
</tr>
|
|
171
|
+
<tr>
|
|
172
|
+
<td><code>connect-src</code></td>
|
|
173
|
+
<td><code>https://contactapi.vlaanderen.be</code></td>
|
|
174
|
+
</tr>
|
|
175
|
+
<tr>
|
|
176
|
+
<td><code>font-src</code></td>
|
|
177
|
+
<td><code>https://ui.vlaanderen.be</code></td>
|
|
178
|
+
</tr>
|
|
179
|
+
<tr>
|
|
180
|
+
<td><code>font-src</code></td>
|
|
181
|
+
<td><code>https://assets.vlaanderen.be</code></td>
|
|
182
|
+
</tr>
|
|
183
|
+
<tr>
|
|
184
|
+
<td><code>font-src</code></td>
|
|
185
|
+
<td><code>https://widgets.vlaanderen.be</code></td>
|
|
186
|
+
</tr>
|
|
187
|
+
<tr>
|
|
188
|
+
<td><code>img-src</code></td>
|
|
189
|
+
<td><code>data:</code></td>
|
|
190
|
+
</tr>
|
|
191
|
+
<tr>
|
|
192
|
+
<td><code>img-src</code></td>
|
|
193
|
+
<td><code>https://assets.vlaanderen.be</code></td>
|
|
194
|
+
</tr>
|
|
195
|
+
<tr>
|
|
196
|
+
<td><code>img-src</code></td>
|
|
197
|
+
<td><code>https://widgets.vlaanderen.be</code></td>
|
|
198
|
+
</tr>
|
|
199
|
+
<tr>
|
|
200
|
+
<td><code>script-src</code></td>
|
|
201
|
+
<td><code>https://widgets.vlaanderen.be</code></td>
|
|
202
|
+
</tr>
|
|
203
|
+
</tbody>
|
|
204
|
+
</table>
|
|
205
|
+
<a id="tni-environment-csp-configuration" class="tsd-anchor"></a><h3 class="tsd-anchor-link">TNI Environment CSP Configuration<a href="#tni-environment-csp-configuration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>The minimum required CSP directives for using the global-header in a TNI environment are:</p>
|
|
206
|
+
<table>
|
|
207
|
+
<thead>
|
|
208
|
+
<tr>
|
|
209
|
+
<th>Directive</th>
|
|
210
|
+
<th>Value</th>
|
|
211
|
+
</tr>
|
|
212
|
+
</thead>
|
|
213
|
+
<tbody>
|
|
214
|
+
<tr>
|
|
215
|
+
<td><code>connect-src</code></td>
|
|
216
|
+
<td><code>https://tni.widgets.dev-vlaanderen.be</code></td>
|
|
217
|
+
</tr>
|
|
218
|
+
<tr>
|
|
219
|
+
<td><code>connect-src</code></td>
|
|
220
|
+
<td><code>wss://tni.contactapi.uat-vlaanderen.be</code></td>
|
|
221
|
+
</tr>
|
|
222
|
+
<tr>
|
|
223
|
+
<td><code>connect-src</code></td>
|
|
224
|
+
<td><code>https://chat.contactcenter.dev-vlaanderen.be</code></td>
|
|
225
|
+
</tr>
|
|
226
|
+
<tr>
|
|
227
|
+
<td><code>connect-src</code></td>
|
|
228
|
+
<td><code>https://tni.contactapi.uat-vlaanderen.be</code></td>
|
|
229
|
+
</tr>
|
|
230
|
+
<tr>
|
|
231
|
+
<td><code>font-src</code></td>
|
|
232
|
+
<td><code>https://ui.vlaanderen.be</code></td>
|
|
233
|
+
</tr>
|
|
234
|
+
<tr>
|
|
235
|
+
<td><code>font-src</code></td>
|
|
236
|
+
<td><code>https://assets.vlaanderen.be</code></td>
|
|
237
|
+
</tr>
|
|
238
|
+
<tr>
|
|
239
|
+
<td><code>font-src</code></td>
|
|
240
|
+
<td><code>https://tni.widgets.vlaanderen.be</code></td>
|
|
241
|
+
</tr>
|
|
242
|
+
<tr>
|
|
243
|
+
<td><code>img-src</code></td>
|
|
244
|
+
<td><code>data:</code></td>
|
|
245
|
+
</tr>
|
|
246
|
+
<tr>
|
|
247
|
+
<td><code>img-src</code></td>
|
|
248
|
+
<td><code>https://assets.vlaanderen.be</code></td>
|
|
249
|
+
</tr>
|
|
250
|
+
<tr>
|
|
251
|
+
<td><code>img-src</code></td>
|
|
252
|
+
<td><code>https://tni.widgets.vlaanderen.be</code></td>
|
|
253
|
+
</tr>
|
|
254
|
+
<tr>
|
|
255
|
+
<td><code>script-src</code></td>
|
|
256
|
+
<td><code>https://tni.widgets.vlaanderen.be</code></td>
|
|
257
|
+
</tr>
|
|
258
|
+
</tbody>
|
|
259
|
+
</table>
|
|
260
|
+
<a id="additional-csp-for-screensharing" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Additional CSP for Screensharing<a href="#additional-csp-for-screensharing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>If you're using the screensharing extension in the contact menu, include the following additional directives:</p>
|
|
261
|
+
<table>
|
|
262
|
+
<thead>
|
|
263
|
+
<tr>
|
|
264
|
+
<th>Directive</th>
|
|
265
|
+
<th>Value (Production & TNI)</th>
|
|
266
|
+
</tr>
|
|
267
|
+
</thead>
|
|
268
|
+
<tbody>
|
|
269
|
+
<tr>
|
|
270
|
+
<td><code>connect-src</code></td>
|
|
271
|
+
<td><code>cobrowse.io</code></td>
|
|
272
|
+
</tr>
|
|
273
|
+
<tr>
|
|
274
|
+
<td><code>connect-src</code></td>
|
|
275
|
+
<td><code>*.cobrowse.io</code></td>
|
|
276
|
+
</tr>
|
|
277
|
+
<tr>
|
|
278
|
+
<td><code>connect-src</code></td>
|
|
279
|
+
<td><code>wss://*.cobrowse.io</code></td>
|
|
280
|
+
</tr>
|
|
281
|
+
</tbody>
|
|
282
|
+
</table>
|
|
283
|
+
<a id="further-information" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Further Information<a href="#further-information" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>For more detailed information about the cobrowse CSP settings, please refer to the <a href="https://docs.cobrowse.io/sdk-installation/web#content-security-policies-csps" target="_blank" class="external">Cobrowse SDK Installation Guide</a>.</p>
|
|
284
|
+
<p>Ensure that your CSP settings are correctly configured to avoid any issues with the widget's functionality and security. If you have any questions or need further assistance, please refer to the <a href="#contact-information">Contact Information</a> section.</p>
|
|
149
285
|
<a id="contact-information" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Contact Information<a href="#contact-information" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>If you need assistance or have any questions regarding the <strong>Global Header Widget</strong>, feel free to reach out to us:</p>
|
|
150
286
|
<ul>
|
|
151
287
|
<li><strong>Support Portal</strong>: <a href="https://vlaamseoverheid.atlassian.net/wiki/spaces/IKPubliek/pages/2339897467/Widget-platform" target="_blank" class="external">Widget platform</a></li>
|
|
@@ -168,4 +304,4 @@ Action Required:</p>
|
|
|
168
304
|
<li>Flanders Widget API Usage</li>
|
|
169
305
|
<li>V4 to V5 Migration Guide</li>
|
|
170
306
|
</ul>
|
|
171
|
-
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#introduction"><span>Introduction</span></a><a href="#adding-a-flanders-global-header-to-your-website"><span>Adding a <wbr/>Flanders <wbr/>Global <wbr/>Header to <wbr/>Your <wbr/>Website</span></a><ul><li><a href="#using-the-embed-script-automatic-mounting"><span>Using the <wbr/>Embed <wbr/>Script (<wbr/>Automatic <wbr/>Mounting)</span></a></li><li><a href="#using-the-entry-script-manual-mounting"><span>Using the <wbr/>Entry <wbr/>Script (<wbr/>Manual <wbr/>Mounting)</span></a></li><li><a href="#summary"><span>Summary</span></a></li></ul><a href="#using-the-windowglobalheaderclient-api"><span>Using the window.global<wbr/>Header<wbr/>Client API</span></a><a href="#migration-guide-upgrading-from-v4-to-v5"><span>Migration guide: <wbr/>Upgrading from v4 to v5</span></a><ul><li><a href="#remove-client-library-script-links"><span>Remove client library script links</span></a></li><li><a href="#eliminate-installable-packages"><span>Eliminate installable packages</span></a></li><li><a href="#update-embed-script-links"><span>Update <wbr/>Embed script links</span></a></li><li><a href="#update-api-usage"><span>Update API usage</span></a></li><li><ul><li><a href="#changes-in-session-management"><span>Changes in <wbr/>Session <wbr/>Management</span></a></li><li><a href="#changes-in-the-profile-method"><span>Changes in the <wbr/>Profile <wbr/>Method</span></a></li></ul></li><li><a href="#accessing-windowglobalheaderclient"><span>Accessing window.global<wbr/>Header<wbr/>Client</span></a></li><li><a href="#verify-styling-and-rendering"><span>Verify <wbr/>Styling and <wbr/>Rendering</span></a></li></ul><a href="#language-switching"><span>Language <wbr/>Switching</span></a><a href="#browser-support"><span>Browser <wbr/>Support</span></a><a href="#typescript-support"><span>Typescript <wbr/>Support</span></a><ul><li><a href="#installation"><span>Installation</span></a></li><li><a href="#usage-example"><span>Usage example</span></a></li></ul><a href="#contact-information"><span>Contact <wbr/>Information</span></a><a href="#search-keywords"><span>Search <wbr/>Keywords</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">Global Header</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
307
|
+
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#introduction"><span>Introduction</span></a><a href="#adding-a-flanders-global-header-to-your-website"><span>Adding a <wbr/>Flanders <wbr/>Global <wbr/>Header to <wbr/>Your <wbr/>Website</span></a><ul><li><a href="#using-the-embed-script-automatic-mounting"><span>Using the <wbr/>Embed <wbr/>Script (<wbr/>Automatic <wbr/>Mounting)</span></a></li><li><a href="#using-the-entry-script-manual-mounting"><span>Using the <wbr/>Entry <wbr/>Script (<wbr/>Manual <wbr/>Mounting)</span></a></li><li><a href="#summary"><span>Summary</span></a></li></ul><a href="#using-the-windowglobalheaderclient-api"><span>Using the window.global<wbr/>Header<wbr/>Client API</span></a><a href="#migration-guide-upgrading-from-v4-to-v5"><span>Migration guide: <wbr/>Upgrading from v4 to v5</span></a><ul><li><a href="#remove-client-library-script-links"><span>Remove client library script links</span></a></li><li><a href="#eliminate-installable-packages"><span>Eliminate installable packages</span></a></li><li><a href="#update-embed-script-links"><span>Update <wbr/>Embed script links</span></a></li><li><a href="#update-api-usage"><span>Update API usage</span></a></li><li><ul><li><a href="#changes-in-session-management"><span>Changes in <wbr/>Session <wbr/>Management</span></a></li><li><a href="#changes-in-the-profile-method"><span>Changes in the <wbr/>Profile <wbr/>Method</span></a></li></ul></li><li><a href="#accessing-windowglobalheaderclient"><span>Accessing window.global<wbr/>Header<wbr/>Client</span></a></li><li><a href="#verify-styling-and-rendering"><span>Verify <wbr/>Styling and <wbr/>Rendering</span></a></li></ul><a href="#language-switching"><span>Language <wbr/>Switching</span></a><a href="#browser-support"><span>Browser <wbr/>Support</span></a><a href="#typescript-support"><span>Typescript <wbr/>Support</span></a><ul><li><a href="#installation"><span>Installation</span></a></li><li><a href="#usage-example"><span>Usage example</span></a></li></ul><a href="#content-security-policy-csp"><span>Content <wbr/>Security <wbr/>Policy (CSP)</span></a><ul><li><a href="#production-environment-csp-configuration"><span>Production <wbr/>Environment CSP <wbr/>Configuration</span></a></li><li><a href="#tni-environment-csp-configuration"><span>TNI <wbr/>Environment CSP <wbr/>Configuration</span></a></li><li><a href="#additional-csp-for-screensharing"><span>Additional CSP for <wbr/>Screensharing</span></a></li><li><a href="#further-information"><span>Further <wbr/>Information</span></a></li></ul><a href="#contact-information"><span>Contact <wbr/>Information</span></a><a href="#search-keywords"><span>Search <wbr/>Keywords</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">Global Header</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|