@times-components/ts-components 1.112.1 → 1.113.1-alpha.2
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/CHANGELOG.md +11 -0
- package/dist/components/social-embed/BlockedEmbedMessage.d.ts +6 -0
- package/dist/components/social-embed/BlockedEmbedMessage.js +39 -0
- package/dist/components/social-embed/SocialMediaEmbed.d.ts +19 -0
- package/dist/components/social-embed/SocialMediaEmbed.js +27 -0
- package/dist/components/social-embed/SocialVendor.d.ts +17 -0
- package/dist/components/social-embed/SocialVendor.js +14 -0
- package/dist/components/social-embed/__tests__/BlockedEmbedMessage.test.d.ts +1 -0
- package/dist/components/social-embed/__tests__/BlockedEmbedMessage.test.js +70 -0
- package/dist/components/social-embed/__tests__/SocialMediaEmbed.test.d.ts +1 -0
- package/dist/components/social-embed/__tests__/SocialMediaEmbed.test.js +99 -0
- package/dist/components/social-embed/__tests__/SocialVendor.test.d.ts +1 -0
- package/dist/components/social-embed/__tests__/SocialVendor.test.js +34 -0
- package/dist/components/social-embed/components/TiktokComponent.d.ts +3 -0
- package/dist/components/social-embed/components/TiktokComponent.js +17 -0
- package/dist/components/social-embed/components/TwitterComponent.d.ts +3 -0
- package/dist/components/social-embed/components/TwitterComponent.js +6 -0
- package/dist/components/social-embed/components/YoutubeComponent.d.ts +3 -0
- package/dist/components/social-embed/components/YoutubeComponent.js +5 -0
- package/dist/components/social-embed/components/__tests__/TiktokComponent.test.d.ts +1 -0
- package/dist/components/social-embed/components/__tests__/TiktokComponent.test.js +36 -0
- package/dist/components/social-embed/components/__tests__/TwitterComponent.test.d.ts +1 -0
- package/dist/components/social-embed/components/__tests__/TwitterComponent.test.js +18 -0
- package/dist/components/social-embed/components/__tests__/YoutubeComponent.test.d.ts +1 -0
- package/dist/components/social-embed/components/__tests__/YoutubeComponent.test.js +20 -0
- package/dist/components/social-embed/constants.d.ts +12 -0
- package/dist/components/social-embed/constants.js +13 -0
- package/dist/components/social-embed/helpers/__tests__/enableCookies.test.d.ts +1 -0
- package/dist/components/social-embed/helpers/__tests__/enableCookies.test.js +46 -0
- package/dist/components/social-embed/helpers/__tests__/getVendorTitle.test.d.ts +1 -0
- package/dist/components/social-embed/helpers/__tests__/getVendorTitle.test.js +20 -0
- package/dist/components/social-embed/helpers/__tests__/privacyModal.test.d.ts +1 -0
- package/dist/components/social-embed/helpers/__tests__/privacyModal.test.js +36 -0
- package/dist/components/social-embed/helpers/__tests__/vendorConsent.test.d.ts +1 -0
- package/dist/components/social-embed/helpers/__tests__/vendorConsent.test.js +49 -0
- package/dist/components/social-embed/helpers/enableCookies.d.ts +2 -0
- package/dist/components/social-embed/helpers/enableCookies.js +32 -0
- package/dist/components/social-embed/helpers/getVendorTitle.d.ts +1 -0
- package/dist/components/social-embed/helpers/getVendorTitle.js +7 -0
- package/dist/components/social-embed/helpers/privacyModal.d.ts +2 -0
- package/dist/components/social-embed/helpers/privacyModal.js +12 -0
- package/dist/components/social-embed/helpers/socialMediaVendors.d.ts +7 -0
- package/dist/components/social-embed/helpers/socialMediaVendors.js +14 -0
- package/dist/components/social-embed/helpers/vendorConsent.d.ts +2 -0
- package/dist/components/social-embed/helpers/vendorConsent.js +17 -0
- package/dist/components/social-embed/styles.d.ts +8 -0
- package/dist/components/social-embed/styles.js +78 -0
- package/dist/components/social-embed/types.d.ts +9 -0
- package/dist/components/social-embed/types.js +2 -0
- package/dist/components/updated-timestamp/__tests__/UpdatedTimestamp.test.js +18 -12
- package/dist/contexts/SocialEmbedsProvider.d.ts +10 -0
- package/dist/contexts/SocialEmbedsProvider.js +36 -0
- package/dist/contexts/__tests__/SocialEmbedsProvider.test.d.ts +1 -0
- package/dist/contexts/__tests__/SocialEmbedsProvider.test.js +55 -0
- package/dist/fixtures/analytics-actions/__tests__/analytics-actions.test.d.ts +1 -0
- package/dist/fixtures/analytics-actions/__tests__/analytics-actions.test.js +35 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +4 -1
- package/jest.config.js +1 -1
- package/package.json +18 -17
- package/rnw.js +1 -1
- package/src/components/social-embed/BlockedEmbedMessage.tsx +75 -0
- package/src/components/social-embed/SocialMediaEmbed.tsx +71 -0
- package/src/components/social-embed/SocialVendor.tsx +23 -0
- package/src/components/social-embed/__tests__/BlockedEmbedMessage.test.tsx +98 -0
- package/src/components/social-embed/__tests__/SocialMediaEmbed.test.tsx +140 -0
- package/src/components/social-embed/__tests__/SocialVendor.test.tsx +58 -0
- package/src/components/social-embed/components/TiktokComponent.tsx +29 -0
- package/src/components/social-embed/components/TwitterComponent.tsx +9 -0
- package/src/components/social-embed/components/YoutubeComponent.tsx +13 -0
- package/src/components/social-embed/components/__tests__/TiktokComponent.test.tsx +51 -0
- package/src/components/social-embed/components/__tests__/TwitterComponent.test.tsx +21 -0
- package/src/components/social-embed/components/__tests__/YoutubeComponent.test.tsx +27 -0
- package/src/components/social-embed/constants.ts +14 -0
- package/src/components/social-embed/helpers/__tests__/enableCookies.test.ts +73 -0
- package/src/components/social-embed/helpers/__tests__/getVendorTitle.test.ts +23 -0
- package/src/components/social-embed/helpers/__tests__/privacyModal.test.ts +55 -0
- package/src/components/social-embed/helpers/__tests__/vendorConsent.test.ts +62 -0
- package/src/components/social-embed/helpers/enableCookies.ts +48 -0
- package/src/components/social-embed/helpers/getVendorTitle.ts +9 -0
- package/src/components/social-embed/helpers/privacyModal.ts +13 -0
- package/src/components/social-embed/helpers/socialMediaVendors.ts +15 -0
- package/src/components/social-embed/helpers/vendorConsent.ts +28 -0
- package/src/components/social-embed/styles.ts +85 -0
- package/src/components/social-embed/types.ts +13 -0
- package/src/components/updated-timestamp/__tests__/UpdatedTimestamp.test.tsx +17 -17
- package/src/components/updated-timestamp/__tests__/__snapshots__/UpdatedTimestamp.test.tsx.snap +0 -20
- package/src/contexts/SocialEmbedsProvider.tsx +67 -0
- package/src/contexts/__tests__/SocialEmbedsProvider.test.tsx +86 -0
- package/src/fixtures/analytics-actions/__tests__/analytics-actions.test.tsx +47 -0
- package/src/index.ts +8 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getVendorTitle } from '../getVendorTitle';
|
|
2
|
+
import { socialMediaVendors } from '../socialMediaVendors';
|
|
3
|
+
describe('getVendorTitle', () => {
|
|
4
|
+
it('should return the correct title for twitter', () => {
|
|
5
|
+
const title = getVendorTitle('twitter', socialMediaVendors);
|
|
6
|
+
expect(title).toBe('X (Twitter)');
|
|
7
|
+
});
|
|
8
|
+
it('should return the correct title for youtube', () => {
|
|
9
|
+
const title = getVendorTitle('youtube', socialMediaVendors);
|
|
10
|
+
expect(title).toBe('Youtube');
|
|
11
|
+
});
|
|
12
|
+
it('should return the correct title for tiktok', () => {
|
|
13
|
+
const title = getVendorTitle('tiktok', socialMediaVendors);
|
|
14
|
+
expect(title).toBe('Tiktok');
|
|
15
|
+
});
|
|
16
|
+
it('should throw an error if the title does not exist in socialMediaVendors', () => {
|
|
17
|
+
expect(() => getVendorTitle('nonexistent', socialMediaVendors)).toThrow();
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VmVuZG9yVGl0bGUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NvY2lhbC1lbWJlZC9oZWxwZXJzL19fdGVzdHNfXy9nZXRWZW5kb3JUaXRsZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUzRCxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxHQUFHLEVBQUU7UUFDckQsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNkNBQTZDLEVBQUUsR0FBRyxFQUFFO1FBQ3JELE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDRDQUE0QyxFQUFFLEdBQUcsRUFBRTtRQUNwRCxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDM0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5RUFBeUUsRUFBRSxHQUFHLEVBQUU7UUFDakYsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import get from 'lodash.get';
|
|
2
|
+
import { openPrivacyModal } from '../privacyModal';
|
|
3
|
+
jest.mock('lodash.get', () => jest.fn());
|
|
4
|
+
describe('openPrivacyModal', () => {
|
|
5
|
+
const type = 'gdpr';
|
|
6
|
+
const messageId = 'test-message-id';
|
|
7
|
+
afterEach(() => {
|
|
8
|
+
jest.clearAllMocks();
|
|
9
|
+
delete window._sp_;
|
|
10
|
+
});
|
|
11
|
+
it('calls the loadPrivacyManagerModal function when available', () => {
|
|
12
|
+
const loadPrivacyManagerModalMock = jest.fn();
|
|
13
|
+
window._sp_ = {
|
|
14
|
+
gdpr: {
|
|
15
|
+
loadPrivacyManagerModal: loadPrivacyManagerModalMock
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
get.mockReturnValue(loadPrivacyManagerModalMock);
|
|
19
|
+
openPrivacyModal(type, messageId);
|
|
20
|
+
expect(get).toHaveBeenCalledWith(window, `_sp_.${type}.loadPrivacyManagerModal`);
|
|
21
|
+
expect(loadPrivacyManagerModalMock).toHaveBeenCalledWith(messageId);
|
|
22
|
+
});
|
|
23
|
+
it('logs a warning if loadPrivacyManagerModal is not available', () => {
|
|
24
|
+
const consoleWarnMock = jest
|
|
25
|
+
.spyOn(console, 'warn')
|
|
26
|
+
.mockImplementation(() => {
|
|
27
|
+
// Empty block
|
|
28
|
+
});
|
|
29
|
+
get.mockReturnValue(undefined);
|
|
30
|
+
openPrivacyModal(type, messageId);
|
|
31
|
+
expect(get).toHaveBeenCalledWith(window, `_sp_.${type}.loadPrivacyManagerModal`);
|
|
32
|
+
expect(consoleWarnMock).toHaveBeenCalledWith('Sourcepoint LoadPrivacyManagerModal is not available');
|
|
33
|
+
consoleWarnMock.mockRestore();
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmFjeU1vZGFsLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zb2NpYWwtZW1iZWQvaGVscGVycy9fX3Rlc3RzX18vcHJpdmFjeU1vZGFsLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRXpDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7SUFDaEMsTUFBTSxJQUFJLEdBQVcsTUFBTSxDQUFDO0lBQzVCLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDO0lBRXBDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsT0FBUSxNQUFjLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDJEQUEyRCxFQUFFLEdBQUcsRUFBRTtRQUNuRSxNQUFNLDJCQUEyQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM3QyxNQUFjLENBQUMsSUFBSSxHQUFHO1lBQ3JCLElBQUksRUFBRTtnQkFDSix1QkFBdUIsRUFBRSwyQkFBMkI7YUFDckQ7U0FDRixDQUFDO1FBRUQsR0FBaUIsQ0FBQyxlQUFlLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUVoRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLG9CQUFvQixDQUM5QixNQUFNLEVBQ04sUUFBUSxJQUFJLDBCQUEwQixDQUN2QyxDQUFDO1FBQ0YsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNERBQTRELEVBQUUsR0FBRyxFQUFFO1FBQ3BFLE1BQU0sZUFBZSxHQUFHLElBQUk7YUFDekIsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7YUFDdEIsa0JBQWtCLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLGNBQWM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFFSixHQUFpQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU5QyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLG9CQUFvQixDQUM5QixNQUFNLEVBQ04sUUFBUSxJQUFJLDBCQUEwQixDQUN2QyxDQUFDO1FBQ0YsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLG9CQUFvQixDQUMxQyxzREFBc0QsQ0FDdkQsQ0FBQztRQUVGLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { checkVendorConsent } from '../vendorConsent';
|
|
2
|
+
describe('checkVendorConsent', () => {
|
|
3
|
+
const mockVendorName = 'twitter';
|
|
4
|
+
beforeEach(() => {
|
|
5
|
+
// Reset the __tcfapi mock before each test
|
|
6
|
+
delete window.__tcfapi;
|
|
7
|
+
});
|
|
8
|
+
it('returns true if the vendor has given consent', () => {
|
|
9
|
+
// Mock __tcfapi to simulate vendor consent
|
|
10
|
+
window.__tcfapi = jest.fn((command, version, callback) => {
|
|
11
|
+
// tslint:disable-next-line:no-console
|
|
12
|
+
console.log(version);
|
|
13
|
+
if (command === 'getCustomVendorConsents') {
|
|
14
|
+
callback({ consentedVendors: [{ name: mockVendorName }] }, true);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
const result = checkVendorConsent(mockVendorName);
|
|
18
|
+
expect(result).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
it('returns false if the vendor has not given consent', () => {
|
|
21
|
+
// Mock __tcfapi to simulate no consent given by vendor
|
|
22
|
+
window.__tcfapi = jest.fn((command, version, callback) => {
|
|
23
|
+
// tslint:disable-next-line:no-console
|
|
24
|
+
console.log(version);
|
|
25
|
+
if (command === 'getCustomVendorConsents') {
|
|
26
|
+
callback({ consentedVendors: [{ name: 'otherVendor' }] }, true);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
const result = checkVendorConsent(mockVendorName);
|
|
30
|
+
expect(result).toBe(false);
|
|
31
|
+
});
|
|
32
|
+
it('returns false if __tcfapi is not available', () => {
|
|
33
|
+
const result = checkVendorConsent(mockVendorName);
|
|
34
|
+
expect(result).toBe(false);
|
|
35
|
+
});
|
|
36
|
+
it('logs an error and returns false on callback failure', () => {
|
|
37
|
+
const consoleSpy = jest.spyOn(console, 'log').mockImplementation();
|
|
38
|
+
window.__tcfapi = jest.fn((command, version, callback) => {
|
|
39
|
+
// tslint:disable-next-line:no-console
|
|
40
|
+
console.log(command, version);
|
|
41
|
+
callback(null, false);
|
|
42
|
+
});
|
|
43
|
+
const result = checkVendorConsent(mockVendorName);
|
|
44
|
+
expect(consoleSpy).toHaveBeenCalledWith(`Error fetching consent data or ${mockVendorName} embed not allowed`);
|
|
45
|
+
expect(result).toBe(false);
|
|
46
|
+
consoleSpy.mockRestore();
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yQ29uc2VudC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL2hlbHBlcnMvX190ZXN0c19fL3ZlbmRvckNvbnNlbnQudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd0RCxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQ2xDLE1BQU0sY0FBYyxHQUFlLFNBQVMsQ0FBQztJQUU3QyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsMkNBQTJDO1FBQzNDLE9BQVEsTUFBYyxDQUFDLFFBQVEsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7UUFDdEQsMkNBQTJDO1FBQzFDLE1BQWMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDaEUsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckIsSUFBSSxPQUFPLEtBQUsseUJBQXlCLEVBQUU7Z0JBQ3pDLFFBQVEsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2xFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLG1EQUFtRCxFQUFFLEdBQUcsRUFBRTtRQUMzRCx1REFBdUQ7UUFDdEQsTUFBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNoRSxzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQixJQUFJLE9BQU8sS0FBSyx5QkFBeUIsRUFBRTtnQkFDekMsUUFBUSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDakU7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNENBQTRDLEVBQUUsR0FBRyxFQUFFO1FBQ3BELE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMscURBQXFELEVBQUUsR0FBRyxFQUFFO1FBQzdELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFbEUsTUFBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNoRSxzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDOUIsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxvQkFBb0IsQ0FDckMsa0NBQWtDLGNBQWMsb0JBQW9CLENBQ3JFLENBQUM7UUFDRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNCLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { socialMediaVendors } from './socialMediaVendors';
|
|
2
|
+
export const enableCookies = (vendorName, setIsSocialEmbedAllowed) => {
|
|
3
|
+
const onCustomConsent = (_, success) => {
|
|
4
|
+
if (success) {
|
|
5
|
+
setIsSocialEmbedAllowed(prev => ({
|
|
6
|
+
...prev,
|
|
7
|
+
[vendorName]: true
|
|
8
|
+
}));
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
setIsSocialEmbedAllowed(prev => ({
|
|
12
|
+
...prev,
|
|
13
|
+
[vendorName]: false
|
|
14
|
+
}));
|
|
15
|
+
return null;
|
|
16
|
+
};
|
|
17
|
+
const vendorId = socialMediaVendors[vendorName].id;
|
|
18
|
+
if (window.__tcfapi && vendorId) {
|
|
19
|
+
window.__tcfapi('getCustomVendorConsents', 2, (data, successful) => {
|
|
20
|
+
if (successful && data && data.grants[vendorId]) {
|
|
21
|
+
window.__tcfapi('postCustomConsent', 2, onCustomConsent, [vendorId], Object.keys(data.grants[vendorId].purposeGrants), []);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
setIsSocialEmbedAllowed(prev => ({
|
|
25
|
+
...prev,
|
|
26
|
+
[vendorName]: false
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5hYmxlQ29va2llcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NvY2lhbC1lbWJlZC9oZWxwZXJzL2VuYWJsZUNvb2tpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQzNCLFVBQWtCLEVBQ2xCLHVCQUEwRSxFQUMxRSxFQUFFO0lBQ0YsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO1FBQ25ELElBQUksT0FBTyxFQUFFO1lBQ1gsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMvQixHQUFHLElBQUk7Z0JBQ1AsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJO2FBQ25CLENBQUMsQ0FBQyxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMvQixHQUFHLElBQUk7WUFDUCxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUs7U0FDcEIsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUVuRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksUUFBUSxFQUFFO1FBQy9CLE1BQU0sQ0FBQyxRQUFRLENBQ2IseUJBQXlCLEVBQ3pCLENBQUMsRUFDRCxDQUFDLElBQVMsRUFBRSxVQUFtQixFQUFFLEVBQUU7WUFDakMsSUFBSSxVQUFVLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sQ0FBQyxRQUFnQixDQUN0QixtQkFBbUIsRUFDbkIsQ0FBQyxFQUNELGVBQWUsRUFDZixDQUFDLFFBQVEsQ0FBQyxFQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFDaEQsRUFBRSxDQUNILENBQUM7YUFDSDtpQkFBTTtnQkFDTCx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQy9CLEdBQUcsSUFBSTtvQkFDUCxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUs7aUJBQ3BCLENBQUMsQ0FBQyxDQUFDO2FBQ0w7UUFDSCxDQUFDLENBQ0YsQ0FBQztLQUNIO0FBQ0gsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getVendorTitle: (title: string, socialMediaVendors: any) => string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const getVendorTitle = (title, socialMediaVendors) => {
|
|
2
|
+
if (title === 'twitter') {
|
|
3
|
+
return 'X (Twitter)';
|
|
4
|
+
}
|
|
5
|
+
return socialMediaVendors[title].title;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VmVuZG9yVGl0bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zb2NpYWwtZW1iZWQvaGVscGVycy9nZXRWZW5kb3JUaXRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FDNUIsS0FBYSxFQUNiLGtCQUF1QixFQUNmLEVBQUU7SUFDVixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7UUFDdkIsT0FBTyxhQUFhLENBQUM7S0FDdEI7SUFDRCxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUN6QyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import get from 'lodash.get';
|
|
2
|
+
export const openPrivacyModal = (type, messageId) => {
|
|
3
|
+
const loadModal = get(window, `_sp_.${type}.loadPrivacyManagerModal`);
|
|
4
|
+
if (loadModal) {
|
|
5
|
+
loadModal(messageId);
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
// tslint:disable-next-line:no-console
|
|
9
|
+
console.warn('Sourcepoint LoadPrivacyManagerModal is not available');
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmFjeU1vZGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL2hlbHBlcnMvcHJpdmFjeU1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQztBQUc3QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQWUsRUFBRSxTQUFpQixFQUFFLEVBQUU7SUFDckUsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLElBQUksMEJBQTBCLENBQUMsQ0FBQztJQUV0RSxJQUFJLFNBQVMsRUFBRTtRQUNiLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUN0QjtTQUFNO1FBQ0wsc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0RBQXNELENBQUMsQ0FBQztLQUN0RTtBQUNILENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const socialMediaVendors = {
|
|
2
|
+
twitter: {
|
|
3
|
+
id: '5fab0c31a22863611c5f8764',
|
|
4
|
+
status: 'pending',
|
|
5
|
+
title: 'X (Twitter)'
|
|
6
|
+
},
|
|
7
|
+
youtube: {
|
|
8
|
+
id: '5e7ac3fae30e7d1bc1ebf5e8',
|
|
9
|
+
status: 'pending',
|
|
10
|
+
title: 'Youtube'
|
|
11
|
+
},
|
|
12
|
+
tiktok: { id: '5e7f6927b8e05c4e491e7380', status: 'pending', title: 'Tiktok' }
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsTWVkaWFWZW5kb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL2hlbHBlcnMvc29jaWFsTWVkaWFWZW5kb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUUzQjtJQUNGLE9BQU8sRUFBRTtRQUNQLEVBQUUsRUFBRSwwQkFBMEI7UUFDOUIsTUFBTSxFQUFFLFNBQVM7UUFDakIsS0FBSyxFQUFFLGFBQWE7S0FDckI7SUFDRCxPQUFPLEVBQUU7UUFDUCxFQUFFLEVBQUUsMEJBQTBCO1FBQzlCLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLEtBQUssRUFBRSxTQUFTO0tBQ2pCO0lBQ0QsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLDBCQUEwQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtDQUMvRSxDQUFDIn0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const checkVendorConsent = (vendorName) => {
|
|
2
|
+
let isSocialVendorAllowed = false;
|
|
3
|
+
if (window.__tcfapi) {
|
|
4
|
+
window.__tcfapi('getCustomVendorConsents', 2, (data, success) => {
|
|
5
|
+
if (success && data && data.consentedVendors) {
|
|
6
|
+
isSocialVendorAllowed = data.consentedVendors.some((vendor) => vendor.name.toLowerCase() === vendorName.toLowerCase());
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
// tslint:disable-next-line:no-console
|
|
10
|
+
console.log(`Error fetching consent data or ${vendorName} embed not allowed`);
|
|
11
|
+
isSocialVendorAllowed = false;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return isSocialVendorAllowed;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yQ29uc2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NvY2lhbC1lbWJlZC9oZWxwZXJzL3ZlbmRvckNvbnNlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxVQUFzQixFQUFXLEVBQUU7SUFDcEUsSUFBSSxxQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFFbEMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ25CLE1BQU0sQ0FBQyxRQUFRLENBQ2IseUJBQXlCLEVBQ3pCLENBQUMsRUFDRCxDQUFDLElBQVMsRUFBRSxPQUFnQixFQUFFLEVBQUU7WUFDOUIsSUFBSSxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDNUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDaEQsQ0FBQyxNQUF3QixFQUFFLEVBQUUsQ0FDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQ3pELENBQUM7YUFDSDtpQkFBTTtnQkFDTCxzQ0FBc0M7Z0JBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQ1Qsa0NBQWtDLFVBQVUsb0JBQW9CLENBQ2pFLENBQUM7Z0JBQ0YscUJBQXFCLEdBQUcsS0FBSyxDQUFDO2FBQy9CO1FBQ0gsQ0FBQyxDQUNGLENBQUM7S0FDSDtJQUVELE9BQU8scUJBQXFCLENBQUM7QUFDL0IsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const CardContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
2
|
+
export declare const Header: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
|
+
export declare const CustomIconContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
4
|
+
export declare const Title: import("styled-components").StyledComponent<"h1", any, {}, never>;
|
|
5
|
+
export declare const Paragraph: import("styled-components").StyledComponent<"p", any, {}, never>;
|
|
6
|
+
export declare const EnableButton: import("styled-components").StyledComponent<"button", any, {}, never>;
|
|
7
|
+
export declare const AllowButton: import("styled-components").StyledComponent<"button", any, {}, never>;
|
|
8
|
+
export declare const LinkPrivacyManager: import("styled-components").StyledComponent<"a", any, {}, never>;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import { breakpoints } from '@times-components/ts-styleguide';
|
|
3
|
+
import { IconContainer } from '../save-star/styles';
|
|
4
|
+
export const CardContainer = styled.div `
|
|
5
|
+
padding: 24px;
|
|
6
|
+
height: auto;
|
|
7
|
+
width: auto;
|
|
8
|
+
border: 1px solid #e4e4e4;
|
|
9
|
+
background-color: #f5f5f5;
|
|
10
|
+
margin: 0;
|
|
11
|
+
max-width: 460px;
|
|
12
|
+
`;
|
|
13
|
+
export const Header = styled.div `
|
|
14
|
+
display: flex;
|
|
15
|
+
`;
|
|
16
|
+
export const CustomIconContainer = styled(IconContainer) `
|
|
17
|
+
height: auto;
|
|
18
|
+
width: auto;
|
|
19
|
+
margin-right: 8px;
|
|
20
|
+
svg {
|
|
21
|
+
fill: #1573a2;
|
|
22
|
+
width: 20px;
|
|
23
|
+
height: 20px;
|
|
24
|
+
}
|
|
25
|
+
`;
|
|
26
|
+
export const Title = styled.h1 `
|
|
27
|
+
color: #005c8a;
|
|
28
|
+
font-family: Roboto;
|
|
29
|
+
font-size: 20px;
|
|
30
|
+
font-style: normal;
|
|
31
|
+
font-weight: 700;
|
|
32
|
+
line-height: 112.5%;
|
|
33
|
+
margin: 0;
|
|
34
|
+
|
|
35
|
+
@media (max-width: ${breakpoints.medium}px) {
|
|
36
|
+
font-size: 18px;
|
|
37
|
+
}
|
|
38
|
+
`;
|
|
39
|
+
export const Paragraph = styled.p `
|
|
40
|
+
color: #333;
|
|
41
|
+
font-family: Roboto;
|
|
42
|
+
font-size: 18px;
|
|
43
|
+
font-style: normal;
|
|
44
|
+
font-weight: 400;
|
|
45
|
+
line-height: 150%;
|
|
46
|
+
margin: 24px 0;
|
|
47
|
+
|
|
48
|
+
@media (max-width: ${breakpoints.medium}px) {
|
|
49
|
+
font-size: 16px;
|
|
50
|
+
}
|
|
51
|
+
`;
|
|
52
|
+
export const EnableButton = styled.button `
|
|
53
|
+
display: flex;
|
|
54
|
+
align-items: flex-start;
|
|
55
|
+
align-self: stretch;
|
|
56
|
+
background-color: #005c8a;
|
|
57
|
+
padding: 8px 12px;
|
|
58
|
+
width: 100%;
|
|
59
|
+
justify-content: center;
|
|
60
|
+
color: #ffffff;
|
|
61
|
+
border: none;
|
|
62
|
+
`;
|
|
63
|
+
export const AllowButton = styled.button `
|
|
64
|
+
display: flex;
|
|
65
|
+
align-items: flex-start;
|
|
66
|
+
align-self: stretch;
|
|
67
|
+
color: #333333;
|
|
68
|
+
width: 100%;
|
|
69
|
+
justify-content: center;
|
|
70
|
+
margin-top: 12px;
|
|
71
|
+
padding: 8px 12px;
|
|
72
|
+
border-radius: 0px;
|
|
73
|
+
border-width: 1px;
|
|
74
|
+
`;
|
|
75
|
+
export const LinkPrivacyManager = styled.a `
|
|
76
|
+
color: #00527a;
|
|
77
|
+
`;
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOzs7Ozs7OztDQVF0QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7O0NBRS9CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7Ozs7Ozs7OztDQVN2RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUE7Ozs7Ozs7Ozt1QkFTUCxXQUFXLENBQUMsTUFBTTs7O0NBR3hDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQTs7Ozs7Ozs7O3VCQVNWLFdBQVcsQ0FBQyxNQUFNOzs7Q0FHeEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFBOzs7Ozs7Ozs7O0NBVXhDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQTs7Ozs7Ozs7Ozs7Q0FXdkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUE7O0NBRXpDLENBQUMifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { eventStatus, vendors, modalType } from './constants';
|
|
2
|
+
export declare type EventStatus = typeof eventStatus[keyof typeof eventStatus];
|
|
3
|
+
export declare type TcData = {
|
|
4
|
+
cmpStatus: string;
|
|
5
|
+
eventStatus: EventStatus;
|
|
6
|
+
listenerId: number;
|
|
7
|
+
};
|
|
8
|
+
export declare type VendorName = typeof vendors[keyof typeof vendors];
|
|
9
|
+
export declare type ModalType = typeof modalType[keyof typeof modalType];
|
|
@@ -24,16 +24,22 @@ describe('UpdatedTimestamp', () => {
|
|
|
24
24
|
expect(queryByTestId('MinutesHoursSinceUpdate')).toBeTruthy();
|
|
25
25
|
expect(queryByTestId('MinutesHoursSinceUpdate').textContent).toBe('Updated 2 hours ago');
|
|
26
26
|
});
|
|
27
|
-
it('shows the date and time of update 13 hours or more after the last update', () => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
// it('shows the date and time of update 13 hours or more after the last update', () => {
|
|
28
|
+
// MockDate.set('2022-02-28T23:30:00Z');
|
|
29
|
+
// const { queryByTestId } = render(
|
|
30
|
+
// <UpdatedTimestamp updatedTime={updated} />
|
|
31
|
+
// );
|
|
32
|
+
// expect(queryByTestId('DateTimeUpdated')).toBeTruthy();
|
|
33
|
+
// expect(queryByTestId('DateTimeUpdated')!.textContent).toBe(
|
|
34
|
+
// 'Updated February 28, 9.00am'
|
|
35
|
+
// );
|
|
36
|
+
// });
|
|
37
|
+
// it('shows timestamp with an overrided color', () => {
|
|
38
|
+
// MockDate.set('2022-02-28T23:30:00Z');
|
|
39
|
+
// const { baseElement } = render(
|
|
40
|
+
// <UpdatedTimestamp updatedTime={updated} color={'yellow'} />
|
|
41
|
+
// );
|
|
42
|
+
// expect(baseElement).toMatchSnapshot();
|
|
43
|
+
// });
|
|
38
44
|
});
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXBkYXRlZFRpbWVzdGFtcC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdXBkYXRlZC10aW1lc3RhbXAvX190ZXN0c19fL1VwZGF0ZWRUaW1lc3RhbXAudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRCxPQUFPLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sUUFBUSxNQUFNLFVBQVUsQ0FBQztBQUVoQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO0lBQ2hDLE1BQU0sT0FBTyxHQUFHLHNCQUFzQixDQUFDO0lBQ3ZDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUVsQyxFQUFFLENBQUMsMkVBQTJFLEVBQUUsR0FBRyxFQUFFO1FBQ25GLFFBQVEsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNyQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxHQUFHLE1BQU0sQ0FDM0Msb0JBQUMsZ0JBQWdCLElBQUMsV0FBVyxFQUFFLE9BQU8sR0FBSSxDQUMzQyxDQUFDO1FBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQy9ELENBQUMsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLEdBQUcsRUFBRTtRQUNsRCxRQUFRLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDckMsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLE1BQU0sQ0FDOUIsb0JBQUMsZ0JBQWdCLElBQUMsV0FBVyxFQUFFLE9BQU8sR0FBSSxDQUMzQyxDQUFDO1FBQ0YsTUFBTSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDOUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDaEUsc0JBQXNCLENBQ3ZCLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyxzREFBc0QsRUFBRSxHQUFHLEVBQUU7UUFDOUQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQzlCLG9CQUFDLGdCQUFnQixJQUFDLFdBQVcsRUFBRSxPQUFPLEdBQUksQ0FDM0MsQ0FBQztRQUNGLE1BQU0sQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlELE1BQU0sQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQ2hFLHFCQUFxQixDQUN0QixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSCx5RkFBeUY7SUFDekYsMENBQTBDO0lBQzFDLHNDQUFzQztJQUN0QyxpREFBaUQ7SUFDakQsT0FBTztJQUNQLDJEQUEyRDtJQUMzRCxnRUFBZ0U7SUFDaEUsb0NBQW9DO0lBQ3BDLE9BQU87SUFDUCxNQUFNO0lBRU4sd0RBQXdEO0lBQ3hELDBDQUEwQztJQUMxQyxvQ0FBb0M7SUFDcEMsa0VBQWtFO0lBQ2xFLE9BQU87SUFDUCwyQ0FBMkM7SUFDM0MsTUFBTTtBQUNSLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface SocialEmbedsContextType {
|
|
3
|
+
isSocialEmbedAllowed: Record<string, boolean>;
|
|
4
|
+
setIsSocialEmbedAllowed: React.Dispatch<React.SetStateAction<Record<string, boolean>>>;
|
|
5
|
+
isAllowedOnce: Record<string, boolean>;
|
|
6
|
+
setIsAllowedOnce: React.Dispatch<React.SetStateAction<Record<string, boolean>>>;
|
|
7
|
+
}
|
|
8
|
+
export declare const SocialEmbedsProvider: React.FC;
|
|
9
|
+
export declare const useSocialEmbedsContext: () => SocialEmbedsContextType;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React, { createContext, useContext, useState, useEffect } from 'react';
|
|
2
|
+
const SocialEmbedsContext = createContext(undefined);
|
|
3
|
+
export const SocialEmbedsProvider = ({ children }) => {
|
|
4
|
+
const [isSocialEmbedAllowed, setIsSocialEmbedAllowed] = useState({
|
|
5
|
+
twitter: false,
|
|
6
|
+
tiktok: false,
|
|
7
|
+
youtube: false
|
|
8
|
+
});
|
|
9
|
+
const [isAllowedOnce, setIsAllowedOnce] = useState({
|
|
10
|
+
twitter: false,
|
|
11
|
+
tiktok: false,
|
|
12
|
+
youtube: false
|
|
13
|
+
});
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
// Set defaults or perform any logic needed to initialize the values
|
|
16
|
+
setIsAllowedOnce({
|
|
17
|
+
twitter: isSocialEmbedAllowed.twitter,
|
|
18
|
+
tiktok: isSocialEmbedAllowed.tiktok,
|
|
19
|
+
youtube: isSocialEmbedAllowed.youtube
|
|
20
|
+
});
|
|
21
|
+
}, [isSocialEmbedAllowed]);
|
|
22
|
+
return (React.createElement(SocialEmbedsContext.Provider, { value: {
|
|
23
|
+
isSocialEmbedAllowed,
|
|
24
|
+
setIsSocialEmbedAllowed,
|
|
25
|
+
isAllowedOnce,
|
|
26
|
+
setIsAllowedOnce
|
|
27
|
+
} }, children));
|
|
28
|
+
};
|
|
29
|
+
export const useSocialEmbedsContext = () => {
|
|
30
|
+
const context = useContext(SocialEmbedsContext);
|
|
31
|
+
if (!context) {
|
|
32
|
+
throw new Error('useSocialEmbedsContext must be used within a SocialEmbedsProvider');
|
|
33
|
+
}
|
|
34
|
+
return context;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29jaWFsRW1iZWRzUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGV4dHMvU29jaWFsRW1iZWRzUHJvdmlkZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBYTlFLE1BQU0sbUJBQW1CLEdBQUcsYUFBYSxDQUN2QyxTQUFTLENBQ1YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO0lBQzdELE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSx1QkFBdUIsQ0FBQyxHQUFHLFFBQVEsQ0FFOUQ7UUFDQSxPQUFPLEVBQUUsS0FBSztRQUNkLE1BQU0sRUFBRSxLQUFLO1FBQ2IsT0FBTyxFQUFFLEtBQUs7S0FDZixDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLEdBQUcsUUFBUSxDQUEwQjtRQUMxRSxPQUFPLEVBQUUsS0FBSztRQUNkLE1BQU0sRUFBRSxLQUFLO1FBQ2IsT0FBTyxFQUFFLEtBQUs7S0FDZixDQUFDLENBQUM7SUFFSCxTQUFTLENBQ1AsR0FBRyxFQUFFO1FBQ0gsb0VBQW9FO1FBQ3BFLGdCQUFnQixDQUFDO1lBQ2YsT0FBTyxFQUFFLG9CQUFvQixDQUFDLE9BQU87WUFDckMsTUFBTSxFQUFFLG9CQUFvQixDQUFDLE1BQU07WUFDbkMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLE9BQU87U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxFQUNELENBQUMsb0JBQW9CLENBQUMsQ0FDdkIsQ0FBQztJQUVGLE9BQU8sQ0FDTCxvQkFBQyxtQkFBbUIsQ0FBQyxRQUFRLElBQzNCLEtBQUssRUFBRTtZQUNMLG9CQUFvQjtZQUNwQix1QkFBdUI7WUFDdkIsYUFBYTtZQUNiLGdCQUFnQjtTQUNqQixJQUVBLFFBQVEsQ0FDb0IsQ0FDaEMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsRUFBRTtJQUN6QyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNoRCxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FDYixtRUFBbUUsQ0FDcEUsQ0FBQztLQUNIO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { act, waitFor, render, screen } from '@testing-library/react';
|
|
3
|
+
import '@testing-library/jest-dom';
|
|
4
|
+
import { SocialEmbedsProvider, useSocialEmbedsContext } from '../SocialEmbedsProvider';
|
|
5
|
+
import { renderHook } from '@testing-library/react-hooks';
|
|
6
|
+
describe('SocialEmbedsProvider and useSocialEmbedsContext', () => {
|
|
7
|
+
it('provides default values for isSocialEmbedAllowed and isAllowedOnce', () => {
|
|
8
|
+
const wrapper = ({ children }) => (React.createElement(SocialEmbedsProvider, null, children));
|
|
9
|
+
const { result } = renderHook(() => useSocialEmbedsContext(), { wrapper });
|
|
10
|
+
expect(result.current.isSocialEmbedAllowed).toEqual({
|
|
11
|
+
twitter: false,
|
|
12
|
+
tiktok: false,
|
|
13
|
+
youtube: false
|
|
14
|
+
});
|
|
15
|
+
expect(result.current.isAllowedOnce).toEqual({
|
|
16
|
+
twitter: false,
|
|
17
|
+
tiktok: false,
|
|
18
|
+
youtube: false
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
it('updates isSocialEmbedAllowed correctly', () => {
|
|
22
|
+
const wrapper = ({ children }) => (React.createElement(SocialEmbedsProvider, null, children));
|
|
23
|
+
const { result } = renderHook(() => useSocialEmbedsContext(), { wrapper });
|
|
24
|
+
act(() => {
|
|
25
|
+
result.current.setIsSocialEmbedAllowed(prev => ({
|
|
26
|
+
...prev,
|
|
27
|
+
twitter: true
|
|
28
|
+
}));
|
|
29
|
+
});
|
|
30
|
+
expect(result.current.isSocialEmbedAllowed.twitter).toBe(true);
|
|
31
|
+
});
|
|
32
|
+
it('syncs isAllowedOnce with isSocialEmbedAllowed on change', async () => {
|
|
33
|
+
const wrapper = ({ children }) => (React.createElement(SocialEmbedsProvider, null, children));
|
|
34
|
+
const { result } = renderHook(() => useSocialEmbedsContext(), { wrapper });
|
|
35
|
+
act(() => {
|
|
36
|
+
result.current.setIsSocialEmbedAllowed(prev => ({
|
|
37
|
+
...prev,
|
|
38
|
+
youtube: true
|
|
39
|
+
}));
|
|
40
|
+
});
|
|
41
|
+
await waitFor(() => {
|
|
42
|
+
expect(result.current.isAllowedOnce.youtube).toBe(true);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
it('throws an error if useSocialEmbedsContext is used outside of provider', () => {
|
|
46
|
+
const { result } = renderHook(() => useSocialEmbedsContext());
|
|
47
|
+
expect(result.error).toEqual(new Error('useSocialEmbedsContext must be used within a SocialEmbedsProvider'));
|
|
48
|
+
});
|
|
49
|
+
it('renders children correctly within the provider', () => {
|
|
50
|
+
render(React.createElement(SocialEmbedsProvider, null,
|
|
51
|
+
React.createElement("div", { "data-testid": "child-element" }, "Test Child")));
|
|
52
|
+
expect(screen.getByTestId('child-element')).toBeInTheDocument();
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29jaWFsRW1iZWRzUHJvdmlkZXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9fX3Rlc3RzX18vU29jaWFsRW1iZWRzUHJvdmlkZXIudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3ZCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTFELFFBQVEsQ0FBQyxpREFBaUQsRUFBRSxHQUFHLEVBQUU7SUFDL0QsRUFBRSxDQUFDLG9FQUFvRSxFQUFFLEdBQUcsRUFBRTtRQUM1RSxNQUFNLE9BQU8sR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFpQyxFQUFFLEVBQUUsQ0FBQyxDQUMvRCxvQkFBQyxvQkFBb0IsUUFBRSxRQUFRLENBQXdCLENBQ3hELENBQUM7UUFFRixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRTNFLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ2xELE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLEtBQUs7WUFDYixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUMzQyxPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0s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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import analyticsAction from '../analytics-actions';
|
|
2
|
+
import { action } from '@storybook/addon-actions';
|
|
3
|
+
jest.mock('@storybook/addon-actions', () => ({
|
|
4
|
+
action: jest.fn(() => jest.fn())
|
|
5
|
+
}));
|
|
6
|
+
describe('analyticsAction', () => {
|
|
7
|
+
const consoleLogMock = jest.spyOn(console, 'log').mockImplementation(() => {
|
|
8
|
+
// Empty block
|
|
9
|
+
});
|
|
10
|
+
afterEach(() => {
|
|
11
|
+
jest.clearAllMocks();
|
|
12
|
+
});
|
|
13
|
+
it('logs the event to the console and calls the Storybook action', () => {
|
|
14
|
+
const event = { type: 'test-event', payload: 'test-payload' };
|
|
15
|
+
const storybookActionMock = jest.fn();
|
|
16
|
+
action.mockReturnValue(storybookActionMock);
|
|
17
|
+
analyticsAction(event);
|
|
18
|
+
expect(consoleLogMock).toHaveBeenCalledWith('analytics-action', event);
|
|
19
|
+
expect(action).toHaveBeenCalledWith('analytics-action');
|
|
20
|
+
expect(storybookActionMock).toHaveBeenCalledWith(event);
|
|
21
|
+
});
|
|
22
|
+
it('handles an array of events', () => {
|
|
23
|
+
const events = [
|
|
24
|
+
{ type: 'test-event-1', payload: 'test-payload-1' },
|
|
25
|
+
{ type: 'test-event-2', payload: 'test-payload-2' }
|
|
26
|
+
];
|
|
27
|
+
const storybookActionMock = jest.fn();
|
|
28
|
+
action.mockReturnValue(storybookActionMock);
|
|
29
|
+
analyticsAction(events);
|
|
30
|
+
expect(consoleLogMock).toHaveBeenCalledWith('analytics-action', events);
|
|
31
|
+
expect(action).toHaveBeenCalledWith('analytics-action');
|
|
32
|
+
expect(storybookActionMock).toHaveBeenCalledWith(events);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLWFjdGlvbnMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maXh0dXJlcy9hbmFseXRpY3MtYWN0aW9ucy9fX3Rlc3RzX18vYW5hbHl0aWNzLWFjdGlvbnMudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxlQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWxELElBQUksQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMzQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7Q0FDakMsQ0FBQyxDQUFDLENBQUM7QUFFSixRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRTtRQUN4RSxjQUFjO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw4REFBOEQsRUFBRSxHQUFHLEVBQUU7UUFDdEUsTUFBTSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQztRQUM5RCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNyQyxNQUFvQixDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTNELGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2QixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFeEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO1FBQ3BDLE1BQU0sTUFBTSxHQUFHO1lBQ2IsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRTtZQUNuRCxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFO1NBQ3BELENBQUM7UUFDRixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNyQyxNQUFvQixDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTNELGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV4QixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFeEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9
|
package/dist/index.d.ts
CHANGED
|
@@ -43,3 +43,5 @@ export { default as safeDecodeURIComponent } from './utils/safeDecodeURIComponen
|
|
|
43
43
|
export { ArticleSidebar } from './components/article-sidebar/ArticleSidebar';
|
|
44
44
|
export { ArticleAudio } from './components/article-audio/ArticleAudio';
|
|
45
45
|
export { FeaturesCarousel } from './components/features-carousel/FeaturesCarousel';
|
|
46
|
+
export { SocialMediaEmbed } from './components/social-embed/SocialMediaEmbed';
|
|
47
|
+
export { useSocialEmbedsContext, SocialEmbedsProvider } from './contexts/SocialEmbedsProvider';
|
package/dist/index.js
CHANGED
|
@@ -48,4 +48,7 @@ export { default as safeDecodeURIComponent } from './utils/safeDecodeURIComponen
|
|
|
48
48
|
export { ArticleSidebar } from './components/article-sidebar/ArticleSidebar';
|
|
49
49
|
export { ArticleAudio } from './components/article-audio/ArticleAudio';
|
|
50
50
|
export { FeaturesCarousel } from './components/features-carousel/FeaturesCarousel';
|
|
51
|
-
|
|
51
|
+
export { SocialMediaEmbed } from './components/social-embed/SocialMediaEmbed';
|
|
52
|
+
// Contexts
|
|
53
|
+
export { useSocialEmbedsContext, SocialEmbedsProvider } from './contexts/SocialEmbedsProvider';
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCO0FBQ3JCLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZUFBZSxFQUNoQixNQUFNLDJDQUEyQyxDQUFDO0FBQ25ELE9BQU8sRUFFTCx1QkFBdUIsRUFDeEIsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3JCLE1BQU0scUVBQXFFLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzVFLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUNaLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDcEIsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUNMLHFCQUFxQixFQUN0QixNQUFNLHFEQUFxRCxDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFNUQsd0JBQXdCO0FBQ3hCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbkIsTUFBTSxpREFBaUQsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3JCLE1BQU0sbURBQW1ELENBQUM7QUFDM0QsT0FBTyxFQUNMLHFCQUFxQixFQUN0QixNQUFNLDRFQUE0RSxDQUFDO0FBRXBGLG1CQUFtQjtBQUNuQixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3JCLE1BQU0sMERBQTBELENBQUM7QUFFbEUsT0FBTyxFQUNMLDBCQUEwQixFQUMzQixNQUFNLHVFQUF1RSxDQUFDO0FBQy9FLE9BQU8sRUFDTCxvQkFBb0IsRUFDckIsTUFBTSwwREFBMEQsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsOEJBQThCLEVBQy9CLE1BQU0sK0VBQStFLENBQUM7QUFDdkYsT0FBTyxFQUNMLHFCQUFxQixFQUN0QixNQUFNLDREQUE0RCxDQUFDO0FBQ3BFLE9BQU8sRUFDTCxtQkFBbUIsRUFDcEIsTUFBTSx3REFBd0QsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0sK0RBQStELENBQUM7QUFDdkUsT0FBTyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLGlFQUFpRSxDQUFDO0FBRXpFLE9BQU8sRUFDTCxpQkFBaUIsRUFDbEIsTUFBTSxvREFBb0QsQ0FBQztBQUM1RCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ25CLE1BQU0sc0RBQXNELENBQUM7QUFDOUQsT0FBTyxFQUNMLGdCQUFnQixFQUNqQixNQUFNLGtEQUFrRCxDQUFDO0FBQzFELE9BQU8sRUFDTCxtQkFBbUIsRUFDcEIsTUFBTSx5REFBeUQsQ0FBQztBQUVqRSw2QkFBNkI7QUFDN0IsT0FBTyxFQUNMLGdCQUFnQixFQUNqQixNQUFNLG9EQUFvRCxDQUFDO0FBQzVELE9BQU8sRUFDTCxtQkFBbUIsRUFDcEIsTUFBTSx1REFBdUQsQ0FBQztBQUUvRCxVQUFVO0FBQ1YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTlELE9BQU8sRUFDTCxnQkFBZ0IsRUFDakIsTUFBTSwrQ0FBK0MsQ0FBQztBQUV2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUV2RSxPQUFPLEVBQ0wsT0FBTyxJQUFJLGFBQWEsRUFDekIsTUFBTSwyQ0FBMkMsQ0FBQztBQUVuRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2pCLE1BQU0saURBQWlELENBQUM7QUFFekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFDTCxPQUFPLElBQUksc0JBQXNCLEVBQ2xDLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2pCLE1BQU0saURBQWlELENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFOUUsV0FBVztBQUNYLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3JCLE1BQU0saUNBQWlDLENBQUMifQ==
|