@times-components/ts-components 1.104.1-alpha.46 → 1.104.1-alpha.53
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/components/social-embed/SocialMediaEmbed.js +17 -77
- package/dist/components/social-embed/__tests__/SocialMediaEmbed.test.js +8 -23
- package/dist/components/social-embed/helpers/enableCookies.d.ts +1 -0
- package/dist/components/social-embed/helpers/enableCookies.js +22 -0
- package/dist/components/social-embed/helpers/getVendorTitle.d.ts +1 -0
- package/dist/components/social-embed/helpers/getVendorTitle.js +9 -0
- package/dist/components/social-embed/helpers/privacyModal.d.ts +5 -0
- package/dist/components/social-embed/helpers/privacyModal.js +17 -0
- package/dist/components/social-embed/helpers/socialMediaVendors.d.ts +6 -0
- package/dist/components/social-embed/helpers/socialMediaVendors.js +5 -0
- package/dist/components/social-embed/helpers/vendorConsent.d.ts +1 -0
- package/dist/components/social-embed/helpers/vendorConsent.js +17 -0
- package/package.json +3 -3
- package/rnw.js +1 -1
- package/src/components/social-embed/SocialMediaEmbed.tsx +21 -106
- package/src/components/social-embed/__tests__/SocialMediaEmbed.test.tsx +7 -22
- package/src/components/social-embed/helpers/enableCookies.ts +37 -0
- package/src/components/social-embed/helpers/getVendorTitle.ts +11 -0
- package/src/components/social-embed/helpers/privacyModal.ts +17 -0
- package/src/components/social-embed/helpers/socialMediaVendors.ts +6 -0
- package/src/components/social-embed/helpers/vendorConsent.ts +30 -0
|
@@ -1,32 +1,18 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
2
|
import { AllowButton, CardContainer, EnableButton, LinkPrivacyManager, Paragraph, Title, CustomIconContainer, Header } from './styles';
|
|
3
|
-
import get from 'lodash.get';
|
|
4
3
|
import { InfoIcon } from '../inline-message/InfoIcon';
|
|
5
|
-
|
|
6
|
-
import
|
|
4
|
+
import { openPrivacyModal, ModalType } from './helpers/privacyModal';
|
|
5
|
+
import { checkVendorConsent } from './helpers/vendorConsent';
|
|
6
|
+
import { getVendorTitle } from './helpers/getVendorTitle';
|
|
7
|
+
import { enableCookies } from './helpers/enableCookies';
|
|
8
|
+
import { socialMediaVendors } from './helpers/socialMediaVendors';
|
|
7
9
|
export const SocialMediaEmbed = ({ element, url, vendorName }) => {
|
|
8
10
|
const [allowedOnce, setAllowedOnce] = useState(false);
|
|
9
11
|
const [isSocialAllowed, setIsSocialAllowed] = useState(false);
|
|
10
|
-
const checkVendorConsent = () => {
|
|
11
|
-
if (window.__tcfapi) {
|
|
12
|
-
window.__tcfapi('getCustomVendorConsents', 2, (data, success) => {
|
|
13
|
-
if (success && data && data.consentedVendors) {
|
|
14
|
-
const isSocialVendorAllowed = data.consentedVendors.some((vendor) => vendor.name.toLowerCase() === vendorName.toLowerCase());
|
|
15
|
-
setIsSocialAllowed(isSocialVendorAllowed);
|
|
16
|
-
// tslint:disable-next-line:no-console
|
|
17
|
-
console.log(`Consent check for ${vendorName}:`, isSocialVendorAllowed);
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
// tslint:disable-next-line:no-console
|
|
21
|
-
console.log(`Error fetching consent data or ${vendorName} embed not allowed`);
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
12
|
useEffect(() => {
|
|
27
13
|
// tslint:disable-next-line:no-console
|
|
28
|
-
console.log('useEffect enterred');
|
|
29
|
-
checkVendorConsent();
|
|
14
|
+
console.log('useEffect enterred', element);
|
|
15
|
+
checkVendorConsent(vendorName, setIsSocialAllowed);
|
|
30
16
|
}, [vendorName, allowedOnce, isSocialAllowed]);
|
|
31
17
|
useEffect(() => {
|
|
32
18
|
if (isSocialAllowed || allowedOnce) {
|
|
@@ -36,22 +22,13 @@ export const SocialMediaEmbed = ({ element, url, vendorName }) => {
|
|
|
36
22
|
script.rel = 'import';
|
|
37
23
|
document.body.appendChild(script);
|
|
38
24
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
})(ModalType || (ModalType = {}));
|
|
45
|
-
const openPrivacyModal = (type, messageId) => {
|
|
46
|
-
const loadModal = get(window, `_sp_.${type}.loadPrivacyManagerModal`);
|
|
47
|
-
if (loadModal) {
|
|
48
|
-
loadModal(messageId);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
// tslint:disable-next-line:no-console
|
|
52
|
-
console.warn('Sourcepoint LoadPrivacyManagerModal is not available');
|
|
25
|
+
const wrapper = document.getElementById('interactiveWrapper');
|
|
26
|
+
if (wrapper) {
|
|
27
|
+
const twitterEmbed = document.createElement('twitter-embed');
|
|
28
|
+
twitterEmbed.setAttribute('url', url);
|
|
29
|
+
wrapper.appendChild(twitterEmbed);
|
|
53
30
|
}
|
|
54
|
-
};
|
|
31
|
+
}, [isSocialAllowed, allowedOnce]);
|
|
55
32
|
const allowCookiesOnce = () => {
|
|
56
33
|
setAllowedOnce(true);
|
|
57
34
|
setIsSocialAllowed(true);
|
|
@@ -60,61 +37,24 @@ export const SocialMediaEmbed = ({ element, url, vendorName }) => {
|
|
|
60
37
|
e.preventDefault();
|
|
61
38
|
openPrivacyModal(ModalType.GDPR, window.__TIMES_CONFIG__.sourcepoint.gdprMessageId);
|
|
62
39
|
};
|
|
63
|
-
const socialMediaVendors = {
|
|
64
|
-
twitter: { id: '5fab0c31a22863611c5f8764', status: 'pending' },
|
|
65
|
-
youtube: { id: '5e7ac3fae30e7d1bc1ebf5e8', status: 'pending' }
|
|
66
|
-
};
|
|
67
|
-
const getVendorTitle = (title) => {
|
|
68
|
-
if (title === 'twitter') {
|
|
69
|
-
return 'X (Twitter)';
|
|
70
|
-
}
|
|
71
|
-
return socialMediaVendors[title].id || title;
|
|
72
|
-
};
|
|
73
|
-
const enableCookies = (providerName) => {
|
|
74
|
-
const onCustomConsent = (_, success) => {
|
|
75
|
-
if (success) {
|
|
76
|
-
setIsSocialAllowed(true);
|
|
77
|
-
return {
|
|
78
|
-
...socialMediaVendors.vendorName,
|
|
79
|
-
[vendorName]: {
|
|
80
|
-
...socialMediaVendors[providerName],
|
|
81
|
-
status: 'accepted'
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
return null;
|
|
86
|
-
};
|
|
87
|
-
const vendorId = socialMediaVendors[providerName].id;
|
|
88
|
-
if (window.__tcfapi && vendorId) {
|
|
89
|
-
window.__tcfapi('getCustomVendorConsents', 2, (data, successful) => {
|
|
90
|
-
if (successful && data && data.grants[vendorId]) {
|
|
91
|
-
window.__tcfapi('postCustomConsent', 2, onCustomConsent, [vendorId], Object.keys(data.grants[vendorId].purposeGrants), []);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
// tslint:disable-next-line:no-console
|
|
95
|
-
console.error(`${vendorName} vendor consent not available:`, data);
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
40
|
// tslint:disable-next-line:no-console
|
|
101
41
|
console.log('allowedOnce', allowedOnce);
|
|
102
42
|
// tslint:disable-next-line:no-console
|
|
103
43
|
console.log('allowedOnce || isSocialAllowed', allowedOnce || isSocialAllowed);
|
|
104
44
|
// tslint:disable-next-line:no-console
|
|
105
45
|
console.log('allowedOnce && isSocialAllowed', allowedOnce && isSocialAllowed);
|
|
106
|
-
return isSocialAllowed || allowedOnce ? (React.createElement(
|
|
46
|
+
return isSocialAllowed || allowedOnce ? (React.createElement("div", { id: "interactiveWrapper" })) : (React.createElement(CardContainer, null,
|
|
107
47
|
React.createElement(Header, null,
|
|
108
48
|
React.createElement(CustomIconContainer, null,
|
|
109
49
|
React.createElement(InfoIcon, null)),
|
|
110
50
|
React.createElement(Title, null,
|
|
111
|
-
getVendorTitle(vendorName),
|
|
51
|
+
getVendorTitle(vendorName, socialMediaVendors),
|
|
112
52
|
" content blocked")),
|
|
113
53
|
React.createElement(Paragraph, null,
|
|
114
54
|
"Please enable cookies and other technologies to view this content. You can update your cookies preferences any time using",
|
|
115
55
|
' ',
|
|
116
56
|
React.createElement(LinkPrivacyManager, { href: "#", onClick: handlePrivacyManagerClick }, "privacy manager.")),
|
|
117
|
-
React.createElement(EnableButton, { onClick: () => enableCookies(vendorName) }, "Enable cookies"),
|
|
57
|
+
React.createElement(EnableButton, { onClick: () => enableCookies(vendorName, setIsSocialAllowed) }, "Enable cookies"),
|
|
118
58
|
React.createElement(AllowButton, { onClick: allowCookiesOnce }, "Allow cookies once")));
|
|
119
59
|
};
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29jaWFsTWVkaWFFbWJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NvY2lhbC1lbWJlZC9Tb2NpYWxNZWRpYUVtYmVkLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDbkQsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixTQUFTLEVBQ1QsS0FBSyxFQUNMLG1CQUFtQixFQUNuQixNQUFNLEVBQ1AsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBa0JsRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBK0IsQ0FBQyxFQUMzRCxPQUFPLEVBQ1AsR0FBRyxFQUNILFVBQVUsRUFDWCxFQUFFLEVBQUU7SUFDSCxNQUFNLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxNQUFNLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTlELFNBQVMsQ0FDUCxHQUFHLEVBQUU7UUFDSCxzQ0FBc0M7UUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxP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
|
|
@@ -7,9 +7,8 @@ import get from 'lodash.get';
|
|
|
7
7
|
jest.mock('@times-components/interactive-wrapper', () => jest.fn(() => React.createElement("div", null, "InteractiveWrapper")));
|
|
8
8
|
jest.mock('lodash.get');
|
|
9
9
|
const mockTcfApi = jest.fn();
|
|
10
|
-
describe('
|
|
10
|
+
describe('SocialMediaEmbed', () => {
|
|
11
11
|
beforeEach(() => {
|
|
12
|
-
// Reset mocks before each test
|
|
13
12
|
mockTcfApi.mockReset();
|
|
14
13
|
window.__tcfapi = mockTcfApi;
|
|
15
14
|
/* tslint:disable:no-empty */
|
|
@@ -18,7 +17,6 @@ describe('TwitterEmbed', () => {
|
|
|
18
17
|
jest.spyOn(global.console, 'warn').mockImplementation(() => { });
|
|
19
18
|
});
|
|
20
19
|
afterEach(() => {
|
|
21
|
-
// Restore mocks after each test
|
|
22
20
|
jest.restoreAllMocks();
|
|
23
21
|
});
|
|
24
22
|
it('renders Twitter content if consent is given for Twitter', () => {
|
|
@@ -32,8 +30,8 @@ describe('TwitterEmbed', () => {
|
|
|
32
30
|
};
|
|
33
31
|
const url = 'https://twitter.com';
|
|
34
32
|
render(React.createElement(SocialMediaEmbed, { element: mockElement, url: url, vendorName: 'twitter' }));
|
|
35
|
-
|
|
36
|
-
expect(
|
|
33
|
+
const twitterEmbedElement = document.querySelector('twitter-embed');
|
|
34
|
+
expect(twitterEmbedElement).toHaveAttribute('url', url);
|
|
37
35
|
});
|
|
38
36
|
it('renders blocked content message if consent for Twitter is not given', () => {
|
|
39
37
|
mockTcfApi.mockImplementation((_, __, callback) => {
|
|
@@ -46,7 +44,6 @@ describe('TwitterEmbed', () => {
|
|
|
46
44
|
};
|
|
47
45
|
const url = 'https://twitter.com';
|
|
48
46
|
render(React.createElement(SocialMediaEmbed, { element: mockElement, url: url, vendorName: 'twitter' }));
|
|
49
|
-
// Assert that the blocked content message is rendered
|
|
50
47
|
expect(screen.getByText('X (Twitter) content blocked')).toBeInTheDocument();
|
|
51
48
|
expect(screen.getByText('privacy manager.')).toBeInTheDocument();
|
|
52
49
|
expect(screen.getByRole('button', { name: /Enable cookies/i })).toBeInTheDocument();
|
|
@@ -68,11 +65,10 @@ describe('TwitterEmbed', () => {
|
|
|
68
65
|
const url = 'https://twitter.com';
|
|
69
66
|
render(React.createElement(SocialMediaEmbed, { element: mockElement, url: url, vendorName: 'twitter' }));
|
|
70
67
|
fireEvent.click(screen.getByRole('button', { name: /Enable cookies/i }));
|
|
71
|
-
// Ensure that the __tcfapi function is called with the correct arguments
|
|
72
68
|
expect(mockTcfApi).toHaveBeenCalledWith('getCustomVendorConsents', 2, expect.any(Function));
|
|
73
69
|
expect(mockTcfApi).toHaveBeenCalledWith('postCustomConsent', 2, expect.any(Function), ['5fab0c31a22863611c5f8764'], expect.any(Array), []);
|
|
74
|
-
|
|
75
|
-
expect(
|
|
70
|
+
const twitterEmbedElement = document.querySelector('twitter-embed');
|
|
71
|
+
expect(twitterEmbedElement).toHaveAttribute('url', url);
|
|
76
72
|
});
|
|
77
73
|
it('allows cookies once and unblocks Twitter content temporarily', () => {
|
|
78
74
|
// Mock implementation for __tcfapi
|
|
@@ -90,26 +86,20 @@ describe('TwitterEmbed', () => {
|
|
|
90
86
|
};
|
|
91
87
|
const url = 'https://twitter.com';
|
|
92
88
|
render(React.createElement(SocialMediaEmbed, { element: mockElement, url: url, vendorName: 'twitter' }));
|
|
93
|
-
// Click the "Allow cookies once" button
|
|
94
89
|
fireEvent.click(screen.getByRole('button', { name: /Allow cookies once/i }));
|
|
95
|
-
|
|
96
|
-
expect(
|
|
97
|
-
// Mock that cookies are not permanently set, and content should be blocked again after refresh
|
|
98
|
-
// Here, we just verify that consent was not permanently stored
|
|
90
|
+
const twitterEmbedElement = document.querySelector('twitter-embed');
|
|
91
|
+
expect(twitterEmbedElement).toHaveAttribute('url', url);
|
|
99
92
|
mockTcfApi.mockReset(); // Reset the mock to simulate a new page load without consent
|
|
100
93
|
render(React.createElement(SocialMediaEmbed, { element: mockElement, url: url, vendorName: 'twitter' }));
|
|
101
|
-
// Ensure that the blocked content message is rendered again after refresh
|
|
102
94
|
expect(screen.getByText('X (Twitter) content blocked')).toBeInTheDocument();
|
|
103
95
|
});
|
|
104
96
|
it('opens privacy modal when available', () => {
|
|
105
97
|
const mockLoadPrivacyManagerModal = jest.fn();
|
|
106
|
-
// Mock the sourcepoint configuration
|
|
107
98
|
window.__TIMES_CONFIG__ = {
|
|
108
99
|
sourcepoint: {
|
|
109
100
|
gdprMessageId: 'messageIdForGDPR'
|
|
110
101
|
}
|
|
111
102
|
};
|
|
112
|
-
// Mock get to return loadPrivacyManagerModal function
|
|
113
103
|
get.mockReturnValue(mockLoadPrivacyManagerModal);
|
|
114
104
|
const mockElement = {
|
|
115
105
|
attributes: {},
|
|
@@ -118,14 +108,11 @@ describe('TwitterEmbed', () => {
|
|
|
118
108
|
};
|
|
119
109
|
const url = 'https://twitter.com';
|
|
120
110
|
render(React.createElement(SocialMediaEmbed, { element: mockElement, url: url, vendorName: 'twitter' }));
|
|
121
|
-
// Simulate user clicking the privacy manager link
|
|
122
111
|
const privacyManagerLink = screen.getByText('privacy manager.');
|
|
123
112
|
fireEvent.click(privacyManagerLink);
|
|
124
|
-
// Ensure that the privacy modal load function is called with the correct message ID
|
|
125
113
|
expect(mockLoadPrivacyManagerModal).toHaveBeenCalledWith('messageIdForGDPR');
|
|
126
114
|
});
|
|
127
115
|
it('handles missing privacy modal gracefully', () => {
|
|
128
|
-
// Mock get to return undefined (no privacy modal available)
|
|
129
116
|
get.mockReturnValue(undefined);
|
|
130
117
|
const mockElement = {
|
|
131
118
|
attributes: {},
|
|
@@ -134,11 +121,9 @@ describe('TwitterEmbed', () => {
|
|
|
134
121
|
};
|
|
135
122
|
const url = 'https://twitter.com';
|
|
136
123
|
render(React.createElement(SocialMediaEmbed, { element: mockElement, url: url, vendorName: 'twitter' }));
|
|
137
|
-
// Simulate user clicking the privacy manager link
|
|
138
124
|
const privacyManagerLink = screen.getByText('privacy manager.');
|
|
139
125
|
fireEvent.click(privacyManagerLink);
|
|
140
|
-
// Ensure that the console.warn is triggered
|
|
141
126
|
expect(global.console.warn).toHaveBeenCalledWith('Sourcepoint LoadPrivacyManagerModal is not available');
|
|
142
127
|
});
|
|
143
128
|
});
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29jaWFsTWVkaWFFbWJlZC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL19fdGVzdHNfXy9Tb2NpYWxNZWRpYUVtYmVkLnRlc3QudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQztBQUU3QixnQ0FBZ0M7QUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUUsQ0FDdEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzREFBNkIsQ0FBQyxDQUM3QyxDQUFDO0FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUV4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7QUFFN0IsUUFBUSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtJQUNoQyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBRTdCLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0QsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxr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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const enableCookies: (vendorName: string, setIsSocialAllowed: (allowed: boolean) => void) => void;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { socialMediaVendors } from './socialMediaVendors';
|
|
2
|
+
export const enableCookies = (vendorName, setIsSocialAllowed) => {
|
|
3
|
+
const onCustomConsent = (_, success) => {
|
|
4
|
+
if (success) {
|
|
5
|
+
setIsSocialAllowed(true);
|
|
6
|
+
}
|
|
7
|
+
return null;
|
|
8
|
+
};
|
|
9
|
+
const vendorId = socialMediaVendors[vendorName].id;
|
|
10
|
+
if (window.__tcfapi && vendorId) {
|
|
11
|
+
window.__tcfapi('getCustomVendorConsents', 2, (data, successful) => {
|
|
12
|
+
if (successful && data && data.grants[vendorId]) {
|
|
13
|
+
window.__tcfapi('postCustomConsent', 2, onCustomConsent, [vendorId], Object.keys(data.grants[vendorId].purposeGrants), []);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
// tslint:disable-next-line:no-console
|
|
17
|
+
console.error(`${vendorName} vendor consent not available:`, data);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5hYmxlQ29va2llcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NvY2lhbC1lbWJlZC9oZWxwZXJzL2VuYWJsZUNvb2tpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQzNCLFVBQWtCLEVBQ2xCLGtCQUE4QyxFQUM5QyxFQUFFO0lBQ0YsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO1FBQ25ELElBQUksT0FBTyxFQUFFO1lBQ1gsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUVuRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksUUFBUSxFQUFFO1FBQy9CLE1BQU0sQ0FBQyxRQUFRLENBQ2IseUJBQXlCLEVBQ3pCLENBQUMsRUFDRCxDQUFDLElBQVMsRUFBRSxVQUFtQixFQUFFLEVBQUU7WUFDakMsSUFBSSxVQUFVLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sQ0FBQyxRQUFnQixDQUN0QixtQkFBbUIsRUFDbkIsQ0FBQyxFQUNELGVBQWUsRUFDZixDQUFDLFFBQVEsQ0FBQyxFQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFDaEQsRUFBRSxDQUNILENBQUM7YUFDSDtpQkFBTTtnQkFDTCxzQ0FBc0M7Z0JBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ3BFO1FBQ0gsQ0FBQyxDQUNGLENBQUM7S0FDSDtBQUNILENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getVendorTitle: (title: string, socialMediaVendors: any) => string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const getVendorTitle = (title, socialMediaVendors) => {
|
|
2
|
+
if (title === 'twitter') {
|
|
3
|
+
return 'X (Twitter)';
|
|
4
|
+
}
|
|
5
|
+
return socialMediaVendors[title] && socialMediaVendors[title].id
|
|
6
|
+
? socialMediaVendors[title].id
|
|
7
|
+
: title;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VmVuZG9yVGl0bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zb2NpYWwtZW1iZWQvaGVscGVycy9nZXRWZW5kb3JUaXRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FDNUIsS0FBYSxFQUNiLGtCQUF1QixFQUNmLEVBQUU7SUFDVixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7UUFDdkIsT0FBTyxhQUFhLENBQUM7S0FDdEI7SUFDRCxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDOUQsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDOUIsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNaLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import get from 'lodash.get';
|
|
2
|
+
export var ModalType;
|
|
3
|
+
(function (ModalType) {
|
|
4
|
+
ModalType["GDPR"] = "gdpr";
|
|
5
|
+
ModalType["CCPA"] = "ccpa";
|
|
6
|
+
})(ModalType || (ModalType = {}));
|
|
7
|
+
export const openPrivacyModal = (type, messageId) => {
|
|
8
|
+
const loadModal = get(window, `_sp_.${type}.loadPrivacyManagerModal`);
|
|
9
|
+
if (loadModal) {
|
|
10
|
+
loadModal(messageId);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
// tslint:disable-next-line:no-console
|
|
14
|
+
console.warn('Sourcepoint LoadPrivacyManagerModal is not available');
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmFjeU1vZGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL2hlbHBlcnMvcHJpdmFjeU1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQztBQUU3QixNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLDBCQUFhLENBQUE7SUFDYiwwQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLFNBQVMsS0FBVCxTQUFTLFFBR3BCO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFlLEVBQUUsU0FBaUIsRUFBRSxFQUFFO0lBQ3JFLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxJQUFJLDBCQUEwQixDQUFDLENBQUM7SUFFdEUsSUFBSSxTQUFTLEVBQUU7UUFDYixTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDdEI7U0FBTTtRQUNMLHNDQUFzQztRQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLHNEQUFzRCxDQUFDLENBQUM7S0FDdEU7QUFDSCxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const socialMediaVendors = {
|
|
2
|
+
twitter: { id: '5fab0c31a22863611c5f8764', status: 'pending' },
|
|
3
|
+
youtube: { id: '5e7ac3fae30e7d1bc1ebf5e8', status: 'pending' }
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsTWVkaWFWZW5kb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL2hlbHBlcnMvc29jaWFsTWVkaWFWZW5kb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUUzQjtJQUNGLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO0lBQzlELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO0NBQy9ELENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const checkVendorConsent: (vendorName: string, setIsSocialAllowed: (allowed: boolean) => void) => void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const checkVendorConsent = (vendorName, setIsSocialAllowed) => {
|
|
2
|
+
if (window.__tcfapi) {
|
|
3
|
+
window.__tcfapi('getCustomVendorConsents', 2, (data, success) => {
|
|
4
|
+
if (success && data && data.consentedVendors) {
|
|
5
|
+
const isSocialVendorAllowed = data.consentedVendors.some((vendor) => vendor.name.toLowerCase() === vendorName.toLowerCase());
|
|
6
|
+
setIsSocialAllowed(isSocialVendorAllowed);
|
|
7
|
+
// tslint:disable-next-line:no-console
|
|
8
|
+
console.log(`Consent check for ${vendorName}:`, isSocialVendorAllowed);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
// tslint:disable-next-line:no-console
|
|
12
|
+
console.log(`Error fetching consent data or ${vendorName} embed not allowed`);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yQ29uc2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NvY2lhbC1lbWJlZC9oZWxwZXJzL3ZlbmRvckNvbnNlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FDaEMsVUFBa0IsRUFDbEIsa0JBQThDLEVBQzlDLEVBQUU7SUFDRixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7UUFDbkIsTUFBTSxDQUFDLFFBQVEsQ0FDYix5QkFBeUIsRUFDekIsQ0FBQyxFQUNELENBQUMsSUFBUyxFQUFFLE9BQWdCLEVBQUUsRUFBRTtZQUM5QixJQUFJLE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUM1QyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ3RELENBQUMsTUFBd0IsRUFBRSxFQUFFLENBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUN6RCxDQUFDO2dCQUNGLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLENBQUM7Z0JBQzFDLHNDQUFzQztnQkFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FDVCxxQkFBcUIsVUFBVSxHQUFHLEVBQ2xDLHFCQUFxQixDQUN0QixDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsc0NBQXNDO2dCQUN0QyxPQUFPLENBQUMsR0FBRyxDQUNULGtDQUFrQyxVQUFVLG9CQUFvQixDQUNqRSxDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQ0YsQ0FBQztLQUNIO0FBQ0gsQ0FBQyxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@times-components/ts-components",
|
|
3
|
-
"version": "1.104.1-alpha.
|
|
3
|
+
"version": "1.104.1-alpha.53+1e01f0e472",
|
|
4
4
|
"description": "Reuseable Typescript React Components ",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"dev": "dist/index.js",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"@times-components/link": "^3.17.34",
|
|
59
59
|
"@times-components/provider": "^1.41.4",
|
|
60
60
|
"@times-components/provider-queries": "^2.23.3",
|
|
61
|
-
"@times-components/related-articles": "^6.17.89-alpha.
|
|
61
|
+
"@times-components/related-articles": "^6.17.89-alpha.53+1e01f0e472",
|
|
62
62
|
"@times-components/ts-slices": "^1.9.23",
|
|
63
63
|
"@times-components/ts-styleguide": "^1.50.34",
|
|
64
64
|
"@times-components/utils": "^6.26.0",
|
|
@@ -118,5 +118,5 @@
|
|
|
118
118
|
"@testing-library/jest-dom/extend-expect"
|
|
119
119
|
]
|
|
120
120
|
},
|
|
121
|
-
"gitHead": "
|
|
121
|
+
"gitHead": "1e01f0e4728799b96e12d59b08ca4446dd250430"
|
|
122
122
|
}
|