@times-components/ts-components 1.146.2-a0ffbb6bc2acbec91d140a39f6be06256e702094.5 → 1.146.2-c12ed7999a41984c2ba8c437357e7a5df1914881.48
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/carousel-component/CarouselComponent.stories.d.ts +1 -0
- package/dist/components/carousel-component/CarouselComponent.stories.js +146 -0
- package/dist/components/carousel-component/CarouselItem.d.ts +3 -0
- package/dist/components/carousel-component/CarouselItem.js +12 -0
- package/dist/components/carousel-component/DefaultNavigationArrow.d.ts +8 -0
- package/dist/components/carousel-component/DefaultNavigationArrow.js +6 -0
- package/dist/components/carousel-component/DefaultPageDot.d.ts +8 -0
- package/dist/components/carousel-component/DefaultPageDot.js +4 -0
- package/dist/components/carousel-component/__tests__/CarouselComponent.test.d.ts +1 -0
- package/dist/components/carousel-component/__tests__/CarouselComponent.test.js +163 -0
- package/dist/components/carousel-component/__tests__/CarouselItem.test.d.ts +1 -0
- package/dist/components/carousel-component/__tests__/CarouselItem.test.js +80 -0
- package/dist/components/carousel-component/__tests__/DefaultNavigationArrow.test.d.ts +1 -0
- package/dist/components/carousel-component/__tests__/DefaultNavigationArrow.test.js +62 -0
- package/dist/components/carousel-component/__tests__/DefaultPageDot.test.d.ts +1 -0
- package/dist/components/carousel-component/__tests__/DefaultPageDot.test.js +68 -0
- package/dist/components/carousel-component/hooks/__tests__/useCarousel.test.d.ts +1 -0
- package/dist/components/carousel-component/hooks/__tests__/useCarousel.test.js +459 -0
- package/dist/components/carousel-component/hooks/useCarousel.d.ts +2 -0
- package/dist/components/carousel-component/hooks/useCarousel.js +167 -0
- package/dist/components/carousel-component/index.d.ts +4 -0
- package/dist/components/carousel-component/index.js +20 -0
- package/dist/components/carousel-component/styles.d.ts +28 -0
- package/dist/components/carousel-component/styles.js +172 -0
- package/dist/components/carousel-component/types.d.ts +53 -0
- package/dist/components/carousel-component/types.js +2 -0
- package/dist/components/social-embed/SocialMediaEmbed.js +15 -122
- package/dist/components/social-embed/SocialVendor.d.ts +16 -1
- package/dist/components/social-embed/SocialVendor.js +2 -41
- package/dist/components/social-embed/__tests__/SocialVendor.test.js +1 -8
- package/dist/components/social-embed/constants.d.ts +0 -1
- package/dist/components/social-embed/constants.js +2 -3
- package/dist/components/social-embed/helpers/socialMediaVendors.js +1 -6
- package/dist/components/social-embed/styles.d.ts +0 -1
- package/dist/components/social-embed/styles.js +1 -28
- package/dist/components/trip-cards/SkeletonCard.d.ts +7 -0
- package/dist/components/trip-cards/SkeletonCard.js +22 -0
- package/dist/components/trip-cards/TripCard.d.ts +3 -0
- package/dist/components/trip-cards/TripCard.js +61 -0
- package/dist/components/trip-cards/TripCards.stories.d.ts +1 -0
- package/dist/components/trip-cards/TripCards.stories.js +159 -0
- package/dist/components/trip-cards/TripCardsLayout.d.ts +3 -0
- package/dist/components/trip-cards/TripCardsLayout.js +63 -0
- package/dist/components/trip-cards/__tests__/SkeletonCard.test.d.ts +1 -0
- package/dist/components/trip-cards/__tests__/SkeletonCard.test.js +139 -0
- package/dist/components/trip-cards/__tests__/TripCard.test.d.ts +1 -0
- package/dist/components/trip-cards/__tests__/TripCard.test.js +165 -0
- package/dist/components/trip-cards/__tests__/TripCardsLayout.test.d.ts +1 -0
- package/dist/components/trip-cards/__tests__/TripCardsLayout.test.js +353 -0
- package/dist/components/trip-cards/__tests__/assets.test.d.ts +1 -0
- package/dist/components/trip-cards/__tests__/assets.test.js +165 -0
- package/dist/components/trip-cards/__tests__/helpers.test.d.ts +1 -0
- package/dist/components/trip-cards/__tests__/helpers.test.js +221 -0
- package/dist/components/trip-cards/__tests__/index.test.d.ts +1 -0
- package/dist/components/trip-cards/__tests__/index.test.js +482 -0
- package/dist/components/trip-cards/__tests__/mockData.test.d.ts +1 -0
- package/dist/components/trip-cards/__tests__/mockData.test.js +57 -0
- package/dist/components/trip-cards/__tests__/skeletonStyles.test.d.ts +1 -0
- package/dist/components/trip-cards/__tests__/skeletonStyles.test.js +194 -0
- package/dist/components/trip-cards/assets/BoatIcon.d.ts +1 -0
- package/dist/components/trip-cards/assets/BoatIcon.js +4 -0
- package/dist/components/trip-cards/assets/CalendarIcon.d.ts +1 -0
- package/dist/components/trip-cards/assets/CalendarIcon.js +4 -0
- package/dist/components/trip-cards/assets/ChevronRightIcon.d.ts +1 -0
- package/dist/components/trip-cards/assets/ChevronRightIcon.js +4 -0
- package/dist/components/trip-cards/assets/LocationIcon.d.ts +1 -0
- package/dist/components/trip-cards/assets/LocationIcon.js +4 -0
- package/dist/components/trip-cards/assets/MoonIcon.d.ts +1 -0
- package/dist/components/trip-cards/assets/MoonIcon.js +4 -0
- package/dist/components/trip-cards/assets/index.d.ts +6 -0
- package/dist/components/trip-cards/assets/index.js +7 -0
- package/dist/components/trip-cards/helpers.d.ts +11 -0
- package/dist/components/trip-cards/helpers.js +144 -0
- package/dist/components/trip-cards/index.d.ts +4 -0
- package/dist/components/trip-cards/index.js +68 -0
- package/dist/components/trip-cards/mockData.d.ts +3 -0
- package/dist/components/trip-cards/mockData.js +317 -0
- package/dist/components/trip-cards/skeletonStyles.d.ts +9 -0
- package/dist/components/trip-cards/skeletonStyles.js +37 -0
- package/dist/components/trip-cards/styles.d.ts +43 -0
- package/dist/components/trip-cards/styles.js +404 -0
- package/dist/components/trip-cards/types.d.ts +121 -0
- package/dist/components/trip-cards/types.js +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/dist/utils/cookie.d.ts +1 -0
- package/dist/utils/cookie.js +8 -1
- package/package.json +3 -3
- package/rnw.js +1 -1
- package/src/components/carousel-component/CarouselComponent.stories.tsx +220 -0
- package/src/components/carousel-component/CarouselItem.tsx +26 -0
- package/src/components/carousel-component/DefaultNavigationArrow.tsx +37 -0
- package/src/components/carousel-component/DefaultPageDot.tsx +20 -0
- package/src/components/carousel-component/__tests__/CarouselComponent.test.tsx +259 -0
- package/src/components/carousel-component/__tests__/CarouselItem.test.tsx +140 -0
- package/src/components/carousel-component/__tests__/DefaultNavigationArrow.test.tsx +153 -0
- package/src/components/carousel-component/__tests__/DefaultPageDot.test.tsx +105 -0
- package/src/components/carousel-component/hooks/__tests__/useCarousel.test.ts +625 -0
- package/src/components/carousel-component/hooks/useCarousel.ts +229 -0
- package/src/components/carousel-component/index.tsx +92 -0
- package/src/components/carousel-component/styles.ts +188 -0
- package/src/components/carousel-component/types.ts +62 -0
- package/src/components/social-embed/SocialMediaEmbed.tsx +1 -111
- package/src/components/social-embed/SocialVendor.tsx +1 -46
- package/src/components/social-embed/__tests__/SocialVendor.test.tsx +0 -11
- package/src/components/social-embed/constants.ts +1 -2
- package/src/components/social-embed/helpers/socialMediaVendors.ts +0 -5
- package/src/components/social-embed/styles.ts +0 -30
- package/src/components/trip-cards/SkeletonCard.tsx +64 -0
- package/src/components/trip-cards/TripCard.tsx +172 -0
- package/src/components/trip-cards/TripCards.stories.tsx +224 -0
- package/src/components/trip-cards/TripCardsLayout.tsx +162 -0
- package/src/components/trip-cards/__tests__/SkeletonCard.test.tsx +169 -0
- package/src/components/trip-cards/__tests__/TripCard.test.tsx +255 -0
- package/src/components/trip-cards/__tests__/TripCardsLayout.test.tsx +671 -0
- package/src/components/trip-cards/__tests__/assets.test.tsx +206 -0
- package/src/components/trip-cards/__tests__/helpers.test.ts +273 -0
- package/src/components/trip-cards/__tests__/index.test.tsx +554 -0
- package/src/components/trip-cards/__tests__/mockData.test.ts +67 -0
- package/src/components/trip-cards/__tests__/skeletonStyles.test.tsx +256 -0
- package/src/components/trip-cards/assets/BoatIcon.tsx +17 -0
- package/src/components/trip-cards/assets/CalendarIcon.tsx +17 -0
- package/src/components/trip-cards/assets/ChevronRightIcon.tsx +20 -0
- package/src/components/trip-cards/assets/LocationIcon.tsx +17 -0
- package/src/components/trip-cards/assets/MoonIcon.tsx +17 -0
- package/src/components/trip-cards/assets/index.ts +7 -0
- package/src/components/trip-cards/helpers.ts +181 -0
- package/src/components/trip-cards/index.tsx +120 -0
- package/src/components/trip-cards/mockData.ts +345 -0
- package/src/components/trip-cards/skeletonStyles.ts +46 -0
- package/src/components/trip-cards/styles.ts +450 -0
- package/src/components/trip-cards/types.ts +130 -0
- package/src/index.ts +2 -0
- package/src/utils/cookie.ts +8 -0
- package/dist/components/social-embed/components/FacebookComponent.d.ts +0 -6
- package/dist/components/social-embed/components/FacebookComponent.js +0 -74
- package/src/components/social-embed/components/FacebookComponent.tsx +0 -93
|
@@ -3,53 +3,14 @@ import { Twitter } from './components/TwitterComponent';
|
|
|
3
3
|
import { Youtube } from './components/YoutubeComponent';
|
|
4
4
|
import { TikTok } from './components/TiktokComponent';
|
|
5
5
|
import { Instagram } from './components/InstagramComponent';
|
|
6
|
-
import { Facebook } from './components/FacebookComponent';
|
|
7
|
-
import { useSocialEmbedsContext } from '../../contexts/SocialEmbedsProvider';
|
|
8
|
-
import { BlockedEmbedMessage } from './BlockedEmbedMessage';
|
|
9
6
|
const vendors = {
|
|
10
7
|
twitter: Twitter,
|
|
11
8
|
youtube: Youtube,
|
|
12
9
|
tiktok: TikTok,
|
|
13
|
-
instagram: Instagram
|
|
14
|
-
facebook: Facebook
|
|
10
|
+
instagram: Instagram
|
|
15
11
|
};
|
|
16
12
|
export const Vendor = ({ vendorName, url }) => {
|
|
17
|
-
const { isSocialEmbedAllowed, isAllowedOnce } = useSocialEmbedsContext();
|
|
18
|
-
// Step 2: Only mount the actual social vendor component after consent
|
|
19
|
-
const allowed = isSocialEmbedAllowed[vendorName] === true ||
|
|
20
|
-
isAllowedOnce[vendorName] === true;
|
|
21
|
-
if (!allowed && ['instagram', 'twitter', 'facebook'].includes(vendorName)) {
|
|
22
|
-
return React.createElement(BlockedEmbedMessage, { vendorName: vendorName });
|
|
23
|
-
}
|
|
24
13
|
const Component = vendors[vendorName];
|
|
25
14
|
return React.createElement(Component, { url: url });
|
|
26
15
|
};
|
|
27
|
-
|
|
28
|
-
import { Twitter } from './components/TwitterComponent';
|
|
29
|
-
import { Youtube } from './components/YoutubeComponent';
|
|
30
|
-
import { TikTok } from './components/TiktokComponent';
|
|
31
|
-
import { Instagram } from './components/InstagramComponent';
|
|
32
|
-
import { Facebook } from './components/FacebookComponent';
|
|
33
|
-
|
|
34
|
-
const vendors = {
|
|
35
|
-
twitter: Twitter,
|
|
36
|
-
youtube: Youtube,
|
|
37
|
-
tiktok: TikTok,
|
|
38
|
-
instagram: Instagram,
|
|
39
|
-
facebook: Facebook
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
export type VendorName = keyof typeof vendors;
|
|
43
|
-
|
|
44
|
-
export const Vendor = ({
|
|
45
|
-
vendorName,
|
|
46
|
-
url
|
|
47
|
-
}: {
|
|
48
|
-
vendorName: VendorName;
|
|
49
|
-
url: string;
|
|
50
|
-
}) => {
|
|
51
|
-
const Component = vendors[vendorName];
|
|
52
|
-
return <Component url={url} />;
|
|
53
|
-
};
|
|
54
|
-
*/
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29jaWFsVmVuZG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL1NvY2lhbFZlbmRvci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHNUQsTUFBTSxPQUFPLEdBQUc7SUFDZCxPQUFPLEVBQUUsT0FBTztJQUNoQixPQUFPLEVBQUUsT0FBTztJQUNoQixNQUFNLEVBQUUsTUFBTTtJQUNkLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxRQUFRO0NBQ25CLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxFQUNyQixVQUFVLEVBQ1YsR0FBRyxFQUlKLEVBQUUsRUFBRTtJQUNILE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsR0FBRyxzQkFBc0IsRUFBRSxDQUFDO0lBRXpFLHNFQUFzRTtJQUN2RSxNQUFNLE9BQU8sR0FDWixvQkFBb0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJO1FBQ3pDLGFBQWEsQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLENBQUM7SUFHckMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ3pFLE9BQU8sb0JBQUMsbUJBQW1CLElBQUMsVUFBVSxFQUFFLFVBQXdCLEdBQUksQ0FBQztLQUN0RTtJQUVDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxPQUFPLG9CQUFDLFNBQVMsSUFBQyxHQUFHLEVBQUUsR0FBRyxHQUFJLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRyJ9
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29jaWFsVmVuZG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL1NvY2lhbFZlbmRvci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU1RCxNQUFNLE9BQU8sR0FBRztJQUNkLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsU0FBUyxFQUFFLFNBQVM7Q0FDckIsQ0FBQztBQUlGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEVBQ3JCLFVBQVUsRUFDVixHQUFHLEVBSUosRUFBRSxFQUFFO0lBQ0gsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sb0JBQUMsU0FBUyxJQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUksQ0FBQztBQUNqQyxDQUFDLENBQUMifQ==
|
|
@@ -15,9 +15,6 @@ jest.mock('../components/TiktokComponent', () => ({
|
|
|
15
15
|
jest.mock('../components/InstagramComponent', () => ({
|
|
16
16
|
Instagram: jest.fn(() => (React.createElement("div", { "data-testid": "instagram-component" }, "Instagram Component")))
|
|
17
17
|
}));
|
|
18
|
-
jest.mock('../components/FacebookComponent', () => ({
|
|
19
|
-
Facebook: jest.fn(() => (React.createElement("div", { "data-testid": "facebook-component" }, "Facebook Component")))
|
|
20
|
-
}));
|
|
21
18
|
describe('Vendor Component', () => {
|
|
22
19
|
const renderVendor = (vendorName, url) => render(React.createElement(Vendor, { vendorName: vendorName, url: url }));
|
|
23
20
|
it('renders the Twitter component when vendorName is "twitter"', () => {
|
|
@@ -36,13 +33,9 @@ describe('Vendor Component', () => {
|
|
|
36
33
|
renderVendor('instagram', 'https://instagram.com/some/video');
|
|
37
34
|
expect(screen.getByTestId('instagram-component')).toBeInTheDocument();
|
|
38
35
|
});
|
|
39
|
-
it('renders the Facebook component when vendorName is "facebook"', () => {
|
|
40
|
-
renderVendor('facebook', 'https://facebook.com/some/video');
|
|
41
|
-
expect(screen.getByTestId('facebook-component')).toBeInTheDocument();
|
|
42
|
-
});
|
|
43
36
|
it('throws an error if an invalid vendorName is provided', () => {
|
|
44
37
|
const renderInvalidVendor = () => render(React.createElement(Vendor, { vendorName: 'invalid', url: "https://example.com" }));
|
|
45
38
|
expect(renderInvalidVendor).toThrowError();
|
|
46
39
|
});
|
|
47
40
|
});
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29jaWFsVmVuZG9yLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zb2NpYWwtZW1iZWQvX190ZXN0c19fL1NvY2lhbFZlbmRvci50ZXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxrQkFBa0I7QUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQ3JCLDRDQUFpQixtQkFBbUIsd0JBQXdCLENBQzdELENBQUM7Q0FDSCxDQUFDLENBQUMsQ0FBQztBQUVKLElBQUksQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNqRCxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUNyQiw0Q0FBaUIsbUJBQW1CLHdCQUF3QixDQUM3RCxDQUFDO0NBQ0gsQ0FBQyxDQUFDLENBQUM7QUFFSixJQUFJLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDaEQsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FDcEIsNENBQWlCLGtCQUFrQix1QkFBdUIsQ0FDM0QsQ0FBQztDQUNILENBQUMsQ0FBQyxDQUFDO0FBRUosSUFBSSxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQ3ZCLDRDQUFpQixxQkFBcUIsMEJBQTBCLENBQ2pFLENBQUM7Q0FDSCxDQUFDLENBQUMsQ0FBQztBQUVKLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7SUFDaEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxVQUFzQixFQUFFLEdBQVcsRUFBRSxFQUFFLENBQzNELE1BQU0sQ0FBQyxvQkFBQyxNQUFNLElBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFJLENBQUMsQ0FBQztJQUV2RCxFQUFFLENBQUMsNERBQTRELEVBQUUsR0FBRyxFQUFFO1FBQ3BFLFlBQVksQ0FBQyxTQUF1QixFQUFFLGdDQUFnQyxDQUFDLENBQUM7UUFDeEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDdEUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNERBQTRELEVBQUUsR0FBRyxFQUFFO1FBQ3BFLFlBQVksQ0FBQyxTQUF1QixFQUFFLGdDQUFnQyxDQUFDLENBQUM7UUFDeEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDdEUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMERBQTBELEVBQUUsR0FBRyxFQUFFO1FBQ2xFLFlBQVksQ0FDVixRQUFzQixFQUN0QiwrQ0FBK0MsQ0FDaEQsQ0FBQztRQUNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGdFQUFnRSxFQUFFLEdBQUcsRUFBRTtRQUN4RSxZQUFZLENBQUMsV0FBeUIsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHNEQUFzRCxFQUFFLEdBQUcsRUFBRTtRQUM5RCxNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRSxDQUMvQixNQUFNLENBQ0osb0JBQUMsTUFBTSxJQUNMLFVBQVUsRUFBRSxTQUF1QixFQUNuQyxHQUFHLEVBQUMscUJBQXFCLEdBQ3pCLENBQ0gsQ0FBQztRQUNKLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -9,7 +9,6 @@ export const eventStatus = {
|
|
|
9
9
|
};
|
|
10
10
|
export const vendors = {
|
|
11
11
|
instagram: 'instagram',
|
|
12
|
-
twitter: 'twitter'
|
|
13
|
-
facebook: 'facebook'
|
|
12
|
+
twitter: 'twitter'
|
|
14
13
|
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDdkIsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTTtDQUNKLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsa0JBQWtCLEVBQUUsb0JBQW9CO0NBQ2hDLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsU0FBUyxFQUFFLFdBQVc7SUFDdEIsT0FBTyxFQUFFLFNBQVM7Q0FDVixDQUFDIn0=
|
|
@@ -18,11 +18,6 @@ export const socialMediaVendors = {
|
|
|
18
18
|
id: '5e717c8e69966540e4554f05',
|
|
19
19
|
status: 'pending',
|
|
20
20
|
title: 'Instagram'
|
|
21
|
-
},
|
|
22
|
-
facebook: {
|
|
23
|
-
id: '5e8dj207kee725du372h892',
|
|
24
|
-
status: 'pending',
|
|
25
|
-
title: 'Facebook'
|
|
26
21
|
}
|
|
27
22
|
};
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsTWVkaWFWZW5kb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL2hlbHBlcnMvc29jaWFsTWVkaWFWZW5kb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUUzQjtJQUNGLE9BQU8sRUFBRTtRQUNQLEVBQUUsRUFBRSwwQkFBMEI7UUFDOUIsTUFBTSxFQUFFLFNBQVM7UUFDakIsS0FBSyxFQUFFLGFBQWE7S0FDckI7SUFDRCxPQUFPLEVBQUU7UUFDUCxFQUFFLEVBQUUsMEJBQTBCO1FBQzlCLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLEtBQUssRUFBRSxTQUFTO0tBQ2pCO0lBQ0QsTUFBTSxFQUFFO1FBQ04sRUFBRSxFQUFFLDBCQUEwQjtRQUM5QixNQUFNLEVBQUUsU0FBUztRQUNqQixLQUFLLEVBQUUsUUFBUTtLQUNoQjtJQUNELFNBQVMsRUFBRTtRQUNULEVBQUUsRUFBRSwwQkFBMEI7UUFDOUIsTUFBTSxFQUFFLFNBQVM7UUFDakIsS0FBSyxFQUFFLFdBQVc7S0FDbkI7Q0FDRixDQUFDIn0=
|
|
@@ -7,4 +7,3 @@ export declare const EnableButton: import("styled-components").StyledComponent<"
|
|
|
7
7
|
export declare const AllowButton: import("styled-components").StyledComponent<"button", any, {}, never>;
|
|
8
8
|
export declare const LinkPrivacyManager: import("styled-components").StyledComponent<"a", any, {}, never>;
|
|
9
9
|
export declare const InstagramContainer: import("styled-components").StyledComponent<"blockquote", any, {}, never>;
|
|
10
|
-
export declare const FacebookContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
@@ -87,31 +87,4 @@ export const InstagramContainer = styled.blockquote `
|
|
|
87
87
|
width: calc(100% - 2px);
|
|
88
88
|
position: relative;
|
|
89
89
|
`;
|
|
90
|
-
|
|
91
|
-
width: 100%;
|
|
92
|
-
max-width: 540px;
|
|
93
|
-
margin: 24px auto;
|
|
94
|
-
|
|
95
|
-
background: #ffffff;
|
|
96
|
-
border: 1px solid #dadde1;
|
|
97
|
-
border-radius: 8px;
|
|
98
|
-
|
|
99
|
-
min-height: 200px;
|
|
100
|
-
|
|
101
|
-
display: flex;
|
|
102
|
-
justify-content: center;
|
|
103
|
-
align-items: center;
|
|
104
|
-
|
|
105
|
-
iframe {
|
|
106
|
-
width: 100% !important;
|
|
107
|
-
border: none;
|
|
108
|
-
overflow: hidden;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
span,
|
|
112
|
-
.fb-post,
|
|
113
|
-
.fb-video {
|
|
114
|
-
width: 100% !important;
|
|
115
|
-
}
|
|
116
|
-
`;
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOzs7Ozs7OztDQVF0QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7O0NBRS9CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7Ozs7Ozs7OztDQVN2RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUE7Ozs7Ozs7Ozt1QkFTUCxXQUFXLENBQUMsTUFBTTs7O0NBR3hDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQTs7Ozs7Ozs7O3VCQVNWLFdBQVcsQ0FBQyxNQUFNOzs7Q0FHeEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFBOzs7Ozs7Ozs7O0NBVXhDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQTs7Ozs7Ozs7Ozs7Q0FXdkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUE7O0NBRXpDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFBOzs7Ozs7Ozs7OztDQVdsRCxDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0EwQjFDLENBQUMifQ==
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOzs7Ozs7OztDQVF0QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7O0NBRS9CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7Ozs7Ozs7OztDQVN2RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUE7Ozs7Ozs7Ozt1QkFTUCxXQUFXLENBQUMsTUFBTTs7O0NBR3hDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQTs7Ozs7Ozs7O3VCQVNWLFdBQVcsQ0FBQyxNQUFNOzs7Q0FHeEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFBOzs7Ozs7Ozs7O0NBVXhDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQTs7Ozs7Ozs7Ozs7Q0FXdkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUE7O0NBRXpDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFBOzs7Ozs7Ozs7OztDQVdsRCxDQUFDIn0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Placeholder } from '@times-components/image';
|
|
3
|
+
import { CardContainer, ImageContainer, CardContent, TopContainer, BottomContainer, DataPointsList, DataPoint, PriceSection, PriceContainer } from './styles';
|
|
4
|
+
import { SkeletonLine, SkeletonHeadline, SkeletonPrice, SkeletonButton } from './skeletonStyles';
|
|
5
|
+
import { defaultTripCardImgHeight } from './helpers';
|
|
6
|
+
export const SkeletonCard = ({ isStaticGrid, imgHeight = {}, forceStaticGrid }) => {
|
|
7
|
+
return (React.createElement(CardContainer, { "data-testid": "skeleton-card-container" },
|
|
8
|
+
React.createElement(ImageContainer, Object.assign({ "data-testid": "skeleton-image-container", isStaticGrid: isStaticGrid && !forceStaticGrid }, { ...defaultTripCardImgHeight, ...imgHeight }),
|
|
9
|
+
React.createElement(Placeholder, null)),
|
|
10
|
+
React.createElement(CardContent, { "data-testid": "skeleton-card-content" },
|
|
11
|
+
React.createElement(TopContainer, { "data-testid": "skeleton-top-container" },
|
|
12
|
+
React.createElement(SkeletonHeadline, { "data-testid": "skeleton-headline" }),
|
|
13
|
+
React.createElement(DataPointsList, { "data-testid": "skeleton-data-points-list" }, [1, 2, 3, 4].map(i => (React.createElement(DataPoint, { key: i, "data-testid": `skeleton-data-point-${i}` },
|
|
14
|
+
React.createElement(SkeletonLine, { width: "80px", "data-testid": `skeleton-line-${i}` })))))),
|
|
15
|
+
React.createElement(BottomContainer, { "data-testid": "skeleton-bottom-container" },
|
|
16
|
+
React.createElement(PriceSection, { "data-testid": "skeleton-price-section" },
|
|
17
|
+
React.createElement(PriceContainer, { "data-testid": "skeleton-price-container" },
|
|
18
|
+
React.createElement(SkeletonLine, { width: "40px", marginBottom: "4px", "data-testid": "skeleton-price-label" }),
|
|
19
|
+
React.createElement(SkeletonPrice, { "data-testid": "skeleton-price" }))),
|
|
20
|
+
React.createElement(SkeletonButton, { as: "div", "data-testid": "skeleton-button" })))));
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b25DYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJpcC1jYXJkcy9Ta2VsZXRvbkNhcmQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBYSxNQUFNLE9BQU8sQ0FBQztBQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUNMLGFBQWEsRUFDYixjQUFjLEVBQ2QsV0FBVyxFQUNYLFlBQVksRUFDWixlQUFlLEVBQ2YsY0FBYyxFQUNkLFNBQVMsRUFDVCxZQUFZLEVBQ1osY0FBYyxFQUNmLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFDTCxZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixjQUFjLEVBQ2YsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUlwQixDQUFDLEVBQUUsWUFBWSxFQUFFLFNBQVMsR0FBRyxFQUFFLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRTtJQUN6RCxPQUFPLENBQ0wsb0JBQUMsYUFBYSxtQkFBYSx5QkFBeUI7UUFDbEQsb0JBQUMsY0FBYyxpQ0FDRCwwQkFBMEIsRUFDdEMsWUFBWSxFQUFFLFlBQVksSUFBSSxDQUFDLGVBQWUsSUFDMUMsRUFBRSxHQUFHLHdCQUF3QixFQUFFLEdBQUcsU0FBUyxFQUFFO1lBRWpELG9CQUFDLFdBQVcsT0FBRyxDQUNBO1FBQ2pCLG9CQUFDLFdBQVcsbUJBQWEsdUJBQXVCO1lBQzlDLG9CQUFDLFlBQVksbUJBQWEsd0JBQXdCO2dCQUNoRCxvQkFBQyxnQkFBZ0IsbUJBQWEsbUJBQW1CLEdBQUc7Z0JBQ3BELG9CQUFDLGNBQWMsbUJBQWEsMkJBQTJCLElBQ3BELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDckIsb0JBQUMsU0FBUyxJQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFlLHVCQUF1QixDQUFDLEVBQUU7b0JBQ3hELG9CQUFDLFlBQVksSUFBQyxLQUFLLEVBQUMsTUFBTSxpQkFBYyxpQkFBaUIsQ0FBQyxFQUFFLEdBQUksQ0FDdEQsQ0FDYixDQUFDLENBQ2EsQ0FDSjtZQUNmLG9CQUFDLGVBQWUsbUJBQWEsMkJBQTJCO2dCQUN0RCxvQkFBQyxZQUFZLG1CQUFhLHdCQUF3QjtvQkFDaEQsb0JBQUMsY0FBYyxtQkFBYSwwQkFBMEI7d0JBQ3BELG9CQUFDLFlBQVksSUFDWCxLQUFLLEVBQUMsTUFBTSxFQUNaLFlBQVksRUFBQyxLQUFLLGlCQUNOLHNCQUFzQixHQUNsQzt3QkFDRixvQkFBQyxhQUFhLG1CQUFhLGdCQUFnQixHQUFHLENBQy9CLENBQ0o7Z0JBQ2Ysb0JBQUMsY0FBYyxJQUFDLEVBQUUsRUFBQyxLQUFLLGlCQUFhLGlCQUFpQixHQUFHLENBQ3pDLENBQ04sQ0FDQSxDQUNqQixDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { Placeholder } from '@times-components/image';
|
|
3
|
+
import { CardContainer, ImageContainer, CardImage, OfferLabel, GiftBanner, CardContent, TopContainer, BottomContainer, Headline, DataPointsList, DataPoint, DataIcon, PriceSection, PriceContainer, OfferContainer, PriceLabel, OriginalPrice, CurrentPrice, LogoContainer, CTAButton, PriceSuffix, StyledLink } from './styles';
|
|
4
|
+
import { MoonIcon, LocationIcon, BoatIcon, CalendarIcon } from './assets';
|
|
5
|
+
import { tealiumTrackingHandler } from '../../helpers/tracking/TrackingHandler';
|
|
6
|
+
import { getPreferredEdition } from '../../utils/cookie';
|
|
7
|
+
export const TripCard = ({ card, isStaticGrid, imgHeight = {} }) => {
|
|
8
|
+
const [imageLoaded, setImageLoaded] = useState(false);
|
|
9
|
+
const trackEvent = (eventName) => {
|
|
10
|
+
tealiumTrackingHandler(eventName, 'navigation', 'click', card.headline, undefined, {
|
|
11
|
+
app_content_location: getPreferredEdition()
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
const handleCardClick = (type) => () => type === 'headline'
|
|
15
|
+
? trackEvent(`trip card: ${card.headline}`)
|
|
16
|
+
: trackEvent('trip card: img click');
|
|
17
|
+
const handleCTAClick = () => trackEvent(`trip card: ${card.cta_text || 'View Itinerary'}`);
|
|
18
|
+
const handleLogoClick = () => trackEvent(`trip card: ${card.logo_name}`);
|
|
19
|
+
return (React.createElement(CardContainer, null,
|
|
20
|
+
React.createElement(StyledLink, { href: card.cta_url, target: "_blank", rel: "noopener noreferrer", onClick: handleCardClick('img') },
|
|
21
|
+
React.createElement(ImageContainer, Object.assign({ isStaticGrid: isStaticGrid }, imgHeight),
|
|
22
|
+
!imageLoaded && React.createElement(Placeholder, null),
|
|
23
|
+
React.createElement(CardImage, { src: card.image, alt: card.headline, onLoad: () => setImageLoaded(true), isLoaded: imageLoaded }),
|
|
24
|
+
card.offer_label && React.createElement(OfferLabel, null, card.offer_label),
|
|
25
|
+
card.gift_banner && React.createElement(GiftBanner, null, card.gift_banner))),
|
|
26
|
+
React.createElement(CardContent, null,
|
|
27
|
+
React.createElement(TopContainer, null,
|
|
28
|
+
React.createElement(StyledLink, { href: card.cta_url, target: "_blank", rel: "noopener noreferrer", onClick: handleCardClick('headline') },
|
|
29
|
+
React.createElement(Headline, null, card.headline)),
|
|
30
|
+
React.createElement(DataPointsList, null,
|
|
31
|
+
card.date && (React.createElement(DataPoint, null,
|
|
32
|
+
React.createElement(DataIcon, null,
|
|
33
|
+
React.createElement(CalendarIcon, null)),
|
|
34
|
+
React.createElement("span", null, card.date))),
|
|
35
|
+
card.duration && (React.createElement(DataPoint, null,
|
|
36
|
+
React.createElement(DataIcon, null,
|
|
37
|
+
React.createElement(MoonIcon, null)),
|
|
38
|
+
React.createElement("span", null, card.duration))),
|
|
39
|
+
card.route && (React.createElement(DataPoint, null,
|
|
40
|
+
React.createElement(DataIcon, null,
|
|
41
|
+
React.createElement(LocationIcon, null)),
|
|
42
|
+
React.createElement("span", null, card.route))),
|
|
43
|
+
card.ship && (React.createElement(DataPoint, null,
|
|
44
|
+
React.createElement(DataIcon, null,
|
|
45
|
+
React.createElement(BoatIcon, null)),
|
|
46
|
+
React.createElement("span", null, card.ship))))),
|
|
47
|
+
React.createElement(BottomContainer, null,
|
|
48
|
+
React.createElement(PriceSection, null,
|
|
49
|
+
React.createElement(PriceContainer, null,
|
|
50
|
+
card.price !== 'Enquire now' && (React.createElement(OfferContainer, null,
|
|
51
|
+
React.createElement(PriceLabel, null, "From"),
|
|
52
|
+
card.original_price && (React.createElement(OriginalPrice, null, card.original_price)))),
|
|
53
|
+
React.createElement(CurrentPrice, { "$isEnquire": card.price === 'Enquire now' },
|
|
54
|
+
card.price,
|
|
55
|
+
card.price !== 'Enquire now' && React.createElement(PriceSuffix, null, "pp"))),
|
|
56
|
+
card.logo && (React.createElement(LogoContainer, null,
|
|
57
|
+
React.createElement("a", { href: card.logo_url, target: "_blank", rel: "noopener noreferrer", onClick: handleLogoClick },
|
|
58
|
+
React.createElement("img", { src: card.logo, alt: "Partner logo" }))))),
|
|
59
|
+
React.createElement(CTAButton, { href: card.cta_url, target: "_blank", rel: "noopener noreferrer", onClick: handleCTAClick }, card.cta_text || 'View Itinerary')))));
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJpcENhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy90cmlwLWNhcmRzL1RyaXBDYXJkLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFNLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsT0FBTyxFQUNMLGFBQWEsRUFDYixjQUFjLEVBQ2QsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixlQUFlLEVBQ2YsUUFBUSxFQUNSLGNBQWMsRUFDZCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixjQUFjLEVBQ2QsY0FBYyxFQUNkLFVBQVUsRUFDVixhQUFhLEVBQ2IsWUFBWSxFQUNaLGFBQWEsRUFDYixTQUFTLEVBQ1QsV0FBVyxFQUNYLFVBQVUsRUFDWCxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXpELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBc0IsQ0FBQyxFQUMxQyxJQUFJLEVBQ0osWUFBWSxFQUNaLFNBQVMsR0FBRyxFQUFFLEVBQ2YsRUFBRSxFQUFFO0lBQ0gsTUFBTSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUU7UUFDdkMsc0JBQXNCLENBQ3BCLFNBQVMsRUFDVCxZQUFZLEVBQ1osT0FBTyxFQUNQLElBQUksQ0FBQyxRQUFRLEVBQ2IsU0FBUyxFQUNUO1lBQ0Usb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUU7U0FDNUMsQ0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUF3QixFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FDekQsSUFBSSxLQUFLLFVBQVU7UUFDakIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFekMsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFLENBQzFCLFVBQVUsQ0FBQyxjQUFjLElBQUksQ0FBQyxRQUFRLElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRWhFLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFjLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRXpFLE9BQU8sQ0FDTCxvQkFBQyxhQUFhO1FBQ1osb0JBQUMsVUFBVSxJQUNULElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUNsQixNQUFNLEVBQUMsUUFBUSxFQUNmLEdBQUcsRUFBQyxxQkFBcUIsRUFDekIsT0FBTyxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUM7WUFFL0Isb0JBQUMsY0FBYyxrQkFBQyxZQUFZLEVBQUUsWUFBWSxJQUFNLFNBQVM7Z0JBQ3RELENBQUMsV0FBVyxJQUFJLG9CQUFDLFdBQVcsT0FBRztnQkFDaEMsb0JBQUMsU0FBUyxJQUNSLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUNmLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUNsQixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUNsQyxRQUFRLEVBQUUsV0FBVyxHQUNyQjtnQkFDRCxJQUFJLENBQUMsV0FBVyxJQUFJLG9CQUFDLFVBQVUsUUFBRSxJQUFJLENBQUMsV0FBVyxDQUFjO2dCQUMvRCxJQUFJLENBQUMsV0FBVyxJQUFJLG9CQUFDLFVBQVUsUUFBRSxJQUFJLENBQUMsV0FBVyxDQUFjLENBQ2pELENBQ047UUFFYixvQkFBQyxXQUFXO1lBQ1Ysb0JBQUMsWUFBWTtnQkFDWCxvQkFBQyxVQUFVLElBQ1QsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQ2xCLE1BQU0sRUFBQyxRQUFRLEVBQ2YsR0FBRyxFQUFDLHFCQUFxQixFQUN6QixPQUFPLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQztvQkFFcEMsb0JBQUMsUUFBUSxRQUFFLElBQUksQ0FBQyxRQUFRLENBQVksQ0FDekI7Z0JBRWIsb0JBQUMsY0FBYztvQkFDWixJQUFJLENBQUMsSUFBSSxJQUFJLENBQ1osb0JBQUMsU0FBUzt3QkFDUixvQkFBQyxRQUFROzRCQUNQLG9CQUFDLFlBQVksT0FBRyxDQUNQO3dCQUNYLGtDQUFPLElBQUksQ0FBQyxJQUFJLENBQVEsQ0FDZCxDQUNiO29CQUNBLElBQUksQ0FBQyxRQUFRLElBQUksQ0FDaEIsb0JBQUMsU0FBUzt3QkFDUixvQkFBQyxRQUFROzRCQUNQLG9CQUFDLFFBQVEsT0FBRyxDQUNIO3dCQUNYLGtDQUFPLElBQUksQ0FBQyxRQUFRLENBQVEsQ0FDbEIsQ0FDYjtvQkFDQSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQ2Isb0JBQUMsU0FBUzt3QkFDUixvQkFBQyxRQUFROzRCQUNQLG9CQUFDLFlBQVksT0FBRyxDQUNQO3dCQUNYLGtDQUFPLElBQUksQ0FBQyxLQUFLLENBQVEsQ0FDZixDQUNiO29CQUNBLElBQUksQ0FBQyxJQUFJLElBQUksQ0FDWixvQkFBQyxTQUFTO3dCQUNSLG9CQUFDLFFBQVE7NEJBQ1Asb0JBQUMsUUFBUSxPQUFHLENBQ0g7d0JBQ1gsa0NBQU8sSUFBSSxDQUFDLElBQUksQ0FBUSxDQUNkLENBQ2IsQ0FDYyxDQUNKO1lBRWYsb0JBQUMsZUFBZTtnQkFDZCxvQkFBQyxZQUFZO29CQUNYLG9CQUFDLGNBQWM7d0JBQ1osSUFBSSxDQUFDLEtBQUssS0FBSyxhQUFhLElBQUksQ0FDL0Isb0JBQUMsY0FBYzs0QkFDWixvQkFBQyxVQUFVLGVBQWtCOzRCQUM3QixJQUFJLENBQUMsY0FBYyxJQUFJLENBQ3RCLG9CQUFDLGFBQWEsUUFBRSxJQUFJLENBQUMsY0FBYyxDQUFpQixDQUNyRCxDQUNjLENBQ2xCO3dCQUNELG9CQUFDLFlBQVksa0JBQWEsSUFBSSxDQUFDLEtBQUssS0FBSyxhQUFhOzRCQUNuRCxJQUFJLENBQUMsS0FBSzs0QkFDVixJQUFJLENBQUMsS0FBSyxLQUFLLGFBQWEsSUFBSSxvQkFBQyxXQUFXLGFBQWlCLENBQ2pELENBQ0E7b0JBRWhCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FDWixvQkFBQyxhQUFhO3dCQUNaLDJCQUNFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUNuQixNQUFNLEVBQUMsUUFBUSxFQUNmLEdBQUcsRUFBQyxxQkFBcUIsRUFDekIsT0FBTyxFQUFFLGVBQWU7NEJBRXhCLDZCQUFLLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBQyxjQUFjLEdBQUcsQ0FDeEMsQ0FDVSxDQUNqQixDQUNZO2dCQUVmLG9CQUFDLFNBQVMsSUFDUixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFDbEIsTUFBTSxFQUFDLFFBQVEsRUFDZixHQUFHLEVBQUMscUJBQXFCLEVBQ3pCLE9BQU8sRUFBRSxjQUFjLElBRXRCLElBQUksQ0FBQyxRQUFRLElBQUksZ0JBQWdCLENBQ3hCLENBQ0ksQ0FDTixDQUNBLENBQ2pCLENBQUM7QUFDSixDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { storiesOf } from '@storybook/react';
|
|
3
|
+
import { TripCards } from './index';
|
|
4
|
+
import styled from 'styled-components';
|
|
5
|
+
import { defaultTripCardImgHeight } from './helpers';
|
|
6
|
+
const spacing = (multiplier) => `${multiplier * 8}px`;
|
|
7
|
+
const breakpoints = {
|
|
8
|
+
medium: 768,
|
|
9
|
+
wide: 1024
|
|
10
|
+
};
|
|
11
|
+
const InteractiveContainer = styled.div `
|
|
12
|
+
position: relative;
|
|
13
|
+
margin-bottom: ${spacing(4)};
|
|
14
|
+
padding: 0 ${spacing(2)};
|
|
15
|
+
|
|
16
|
+
@media (min-width: ${breakpoints.medium}px) {
|
|
17
|
+
width: 80.8%;
|
|
18
|
+
margin-left: auto;
|
|
19
|
+
margin-right: auto;
|
|
20
|
+
padding: 0;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@media (min-width: ${breakpoints.wide}px) {
|
|
24
|
+
width: 56.2%;
|
|
25
|
+
}
|
|
26
|
+
`;
|
|
27
|
+
storiesOf('Typescript Component/TripCards', module)
|
|
28
|
+
.add('Channel View Two Cards', () => (React.createElement(TripCards, { element: {
|
|
29
|
+
class: 'trip-cards',
|
|
30
|
+
tripcards: btoa(JSON.stringify([2074350, 2140335])),
|
|
31
|
+
title: 'Similar cruises',
|
|
32
|
+
titleurl: 'https://www.thetimes.com/travel/holidays',
|
|
33
|
+
description: 'Brought to you by Times Holidays'
|
|
34
|
+
}, useMockData: true, maxWidthItemConfig: {
|
|
35
|
+
xs: '85%',
|
|
36
|
+
mobile: '87%',
|
|
37
|
+
tablet: '44%',
|
|
38
|
+
desktop: '314px',
|
|
39
|
+
xl: '368px'
|
|
40
|
+
}, widthContainerConfig: {
|
|
41
|
+
tablet: '728px',
|
|
42
|
+
desktop: '984px',
|
|
43
|
+
xl: '1144px'
|
|
44
|
+
} })))
|
|
45
|
+
.add('Channel View Three Cards', () => (React.createElement(TripCards, { element: {
|
|
46
|
+
class: 'trip-cards',
|
|
47
|
+
tripcards: btoa(JSON.stringify([2074350, 2140335, 2177685])),
|
|
48
|
+
title: 'Featured Voyages',
|
|
49
|
+
titleurl: 'https://www.thetimes.com/travel/holidays',
|
|
50
|
+
description: 'Handpicked by our travel experts'
|
|
51
|
+
}, forceStaticGrid: true, maxWidthItemConfig: {
|
|
52
|
+
xs: '85%',
|
|
53
|
+
mobile: '87%',
|
|
54
|
+
tablet: '44%',
|
|
55
|
+
desktop: '314px',
|
|
56
|
+
xl: '368px'
|
|
57
|
+
}, widthContainerConfig: {
|
|
58
|
+
tablet: '728px',
|
|
59
|
+
desktop: '984px',
|
|
60
|
+
xl: '1144px'
|
|
61
|
+
}, useMockData: true })))
|
|
62
|
+
.add('Article View Two Trip Cards', () => (React.createElement(InteractiveContainer, null,
|
|
63
|
+
React.createElement(TripCards, { element: {
|
|
64
|
+
class: 'trip-cards',
|
|
65
|
+
tripcards: btoa(JSON.stringify([2074350, 2140335])),
|
|
66
|
+
title: 'Similar cruises',
|
|
67
|
+
titleurl: 'https://www.thetimes.com/travel/holidays',
|
|
68
|
+
description: 'Brought to you by Times Holidays'
|
|
69
|
+
}, useMockData: true, maxWidthItemConfig: {
|
|
70
|
+
mobile: '320px',
|
|
71
|
+
tablet: '260px',
|
|
72
|
+
desktop: '260px',
|
|
73
|
+
xl: '300px'
|
|
74
|
+
}, widthContainerConfig: {
|
|
75
|
+
mobile: '390px',
|
|
76
|
+
tablet: '620px',
|
|
77
|
+
desktop: '574px',
|
|
78
|
+
xl: '663px'
|
|
79
|
+
}, imgHeight: defaultTripCardImgHeight }))))
|
|
80
|
+
.add('Article View Three Cards', () => (React.createElement(InteractiveContainer, null,
|
|
81
|
+
React.createElement(TripCards, { element: {
|
|
82
|
+
class: 'trip-cards',
|
|
83
|
+
tripcards: btoa(JSON.stringify([2074350, 2140335, 2177685])),
|
|
84
|
+
title: 'Similar cruises',
|
|
85
|
+
titleurl: 'https://www.thetimes.com/travel/holidays',
|
|
86
|
+
description: 'Brought to you by Times Holidays'
|
|
87
|
+
}, useMockData: true, maxWidthItemConfig: {
|
|
88
|
+
mobile: '320px',
|
|
89
|
+
tablet: '260px',
|
|
90
|
+
desktop: '260px',
|
|
91
|
+
xl: '300px'
|
|
92
|
+
}, widthContainerConfig: {
|
|
93
|
+
mobile: '390px',
|
|
94
|
+
tablet: '620px',
|
|
95
|
+
desktop: '574px',
|
|
96
|
+
xl: '663px'
|
|
97
|
+
}, imgHeight: { ...defaultTripCardImgHeight, $heightXs: '100%' } }))))
|
|
98
|
+
.add('Article View Two Trip Cards', () => (React.createElement(InteractiveContainer, null,
|
|
99
|
+
React.createElement(TripCards, { element: {
|
|
100
|
+
class: 'trip-cards',
|
|
101
|
+
tripcards: btoa(JSON.stringify([2074350, 2140335])),
|
|
102
|
+
title: 'Similar cruises',
|
|
103
|
+
titleurl: 'https://www.thetimes.com/travel/holidays',
|
|
104
|
+
description: 'Brought to you by Times Holidays'
|
|
105
|
+
}, useMockData: true, maxWidthItemConfig: {
|
|
106
|
+
mobile: '320px',
|
|
107
|
+
tablet: '260px',
|
|
108
|
+
desktop: '260px',
|
|
109
|
+
xl: '300px'
|
|
110
|
+
}, widthContainerConfig: {
|
|
111
|
+
mobile: '390px',
|
|
112
|
+
tablet: '620px',
|
|
113
|
+
desktop: '574px',
|
|
114
|
+
xl: '663px'
|
|
115
|
+
}, imgHeight: defaultTripCardImgHeight }))))
|
|
116
|
+
.add('Article View Trip Cards', () => (React.createElement(InteractiveContainer, null,
|
|
117
|
+
React.createElement(TripCards, { element: {
|
|
118
|
+
class: 'trip-cards',
|
|
119
|
+
tripcards: btoa(JSON.stringify([2074350, 2140335, 2177685])),
|
|
120
|
+
title: 'Similar cruises',
|
|
121
|
+
titleurl: 'https://www.thetimes.com/travel/holidays',
|
|
122
|
+
description: 'Brought to you by Times Holidays'
|
|
123
|
+
}, useMockData: true, maxWidthItemConfig: {
|
|
124
|
+
mobile: '320px',
|
|
125
|
+
tablet: '260px',
|
|
126
|
+
desktop: '260px',
|
|
127
|
+
xl: '300px'
|
|
128
|
+
}, widthContainerConfig: {
|
|
129
|
+
mobile: '390px',
|
|
130
|
+
tablet: '620px',
|
|
131
|
+
desktop: '574px',
|
|
132
|
+
xl: '663px'
|
|
133
|
+
}, imgHeight: defaultTripCardImgHeight }))))
|
|
134
|
+
.add('Article View Six Cards', () => (React.createElement(InteractiveContainer, null,
|
|
135
|
+
React.createElement(TripCards, { element: {
|
|
136
|
+
class: 'trip-cards',
|
|
137
|
+
tripcards: btoa(JSON.stringify([
|
|
138
|
+
2074350,
|
|
139
|
+
2140335,
|
|
140
|
+
2177685,
|
|
141
|
+
2074351,
|
|
142
|
+
2140336,
|
|
143
|
+
2177686
|
|
144
|
+
])),
|
|
145
|
+
title: 'Similar cruises',
|
|
146
|
+
titleurl: 'https://www.thetimes.com/travel/holidays',
|
|
147
|
+
description: 'Brought to you by Times Holidays'
|
|
148
|
+
}, useMockData: true, maxWidthItemConfig: {
|
|
149
|
+
mobile: '320px',
|
|
150
|
+
tablet: '260px',
|
|
151
|
+
desktop: '260px',
|
|
152
|
+
xl: '300px'
|
|
153
|
+
}, widthContainerConfig: {
|
|
154
|
+
mobile: '390px',
|
|
155
|
+
tablet: '620px',
|
|
156
|
+
desktop: '574px',
|
|
157
|
+
xl: '663px'
|
|
158
|
+
}, imgHeight: defaultTripCardImgHeight }))));
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJpcENhcmRzLnN0b3JpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy90cmlwLWNhcmRzL1RyaXBDYXJkcy5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDcEMsT0FBTyxNQUFNLE1BQU0sbUJBQW1CLENBQUM7QUFDdkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJELE1BQU0sT0FBTyxHQUFHLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQUMsR0FBRyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFFOUQsTUFBTSxXQUFXLEdBQUc7SUFDbEIsTUFBTSxFQUFFLEdBQUc7SUFDWCxJQUFJLEVBQUUsSUFBSTtDQUNYLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7O21CQUVwQixPQUFPLENBQUMsQ0FBQyxDQUFDO2VBQ2QsT0FBTyxDQUFDLENBQUMsQ0FBQzs7dUJBRUYsV0FBVyxDQUFDLE1BQU07Ozs7Ozs7dUJBT2xCLFdBQVcsQ0FBQyxJQUFJOzs7Q0FHdEMsQ0FBQztBQUVGLFNBQVMsQ0FBQyxnQ0FBZ0MsRUFBRSxNQUFNLENBQUM7S0FDaEQsR0FBRyxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQ25DLG9CQUFDLFNBQVMsSUFDUixPQUFPLEVBQUU7UUFDUCxLQUFLLEVBQUUsWUFBWTtRQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNuRCxLQUFLLEVBQUUsaUJBQWlCO1FBQ3hCLFFBQVEsRUFBRSwwQ0FBMEM7UUFDcEQsV0FBVyxFQUFFLGtDQUFrQztLQUNoRCxFQUNELFdBQVcsRUFBRSxJQUFJLEVBQ2pCLGtCQUFrQixFQUFFO1FBQ2xCLEVBQUUsRUFBRSxLQUFLO1FBQ1QsTUFBTSxFQUFFLEtBQUs7UUFDYixNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEVBQUUsRUFBRSxPQUFPO0tBQ1osRUFDRCxvQkFBb0IsRUFBRTtRQUNwQixNQUFNLEVBQUUsT0FBTztRQUNmLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEVBQUUsRUFBRSxRQUFRO0tBQ2IsR0FDRCxDQUNILENBQUM7S0FDRCxHQUFHLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FDckMsb0JBQUMsU0FBUyxJQUNSLE9BQU8sRUFBRTtRQUNQLEtBQUssRUFBRSxZQUFZO1FBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM1RCxLQUFLLEVBQUUsa0JBQWtCO1FBQ3pCLFFBQVEsRUFBRSwwQ0FBMEM7UUFDcEQsV0FBVyxFQUFFLGtDQUFrQztLQUNoRCxFQUNELGVBQWUsRUFBRSxJQUFJLEVBQ3JCLGtCQUFrQixFQUFFO1FBQ2xCLEVBQUUsRUFBRSxLQUFLO1FBQ1QsTUFBTSxFQUFFLEtBQUs7UUFDYixNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEVBQUUsRUFBRSxPQUFPO0tBQ1osRUFDRCxvQkFBb0IsRUFBRTtRQUNwQixNQUFNLEVBQUUsT0FBTztRQUNmLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEVBQUUsRUFBRSxRQUFRO0tBQ2IsRUFDRCxXQUFXLEVBQUUsSUFBSSxHQUNqQixDQUNILENBQUM7S0FDRCxHQUFHLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FDeEMsb0JBQUMsb0JBQW9CO0lBQ25CLG9CQUFDLFNBQVMsSUFDUixPQUFPLEVBQUU7WUFDUCxLQUFLLEVBQUUsWUFBWTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNuRCxLQUFLLEVBQUUsaUJBQWlCO1lBQ3hCLFFBQVEsRUFBRSwwQ0FBMEM7WUFDcEQsV0FBVyxFQUFFLGtDQUFrQztTQUNoRCxFQUNELFdBQVcsRUFBRSxJQUFJLEVBQ2pCLGtCQUFrQixFQUFFO1lBQ2xCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsT0FBTztZQUNoQixFQUFFLEVBQUUsT0FBTztTQUNaLEVBQ0Qsb0JBQW9CLEVBQUU7WUFDcEIsTUFBTSxFQUFFLE9BQU87WUFDZixNQUFNLEVBQUUsT0FBTztZQUNmLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLEVBQUUsRUFBRSxPQUFPO1NBQ1osRUFDRCxTQUFTLEVBQUUsd0JBQXdCLEdBQ25DLENBQ21CLENBQ3hCLENBQUM7S0FDRCxHQUFHLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FDckMsb0JBQUMsb0JBQW9CO0lBQ25CLG9CQUFDLFNBQVMsSUFDUixPQUFPLEVBQUU7WUFDUCxLQUFLLEVBQUUsWUFBWTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDNUQsS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixRQUFRLEVBQUUsMENBQTBDO1lBQ3BELFdBQVcsRUFBRSxrQ0FBa0M7U0FDaEQsRUFDRCxXQUFXLEVBQUUsSUFBSSxFQUNqQixrQkFBa0IsRUFBRTtZQUNsQixNQUFNLEVBQUUsT0FBTztZQUNmLE1BQU0sRUFBRSxPQUFPO1lBQ2YsT0FBTyxFQUFFLE9BQU87WUFDaEIsRUFBRSxFQUFFLE9BQU87U0FDWixFQUNELG9CQUFvQixFQUFFO1lBQ3BCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsT0FBTztZQUNoQixFQUFFLEVBQUUsT0FBTztTQUNaLEVBQ0QsU0FBUyxFQUFFLEVBQUUsR0FBRyx3QkFBd0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQzdELENBQ21CLENBQ3hCLENBQUM7S0FDRCxHQUFHLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FDeEMsb0JBQUMsb0JBQW9CO0lBQ25CLG9CQUFDLFNBQVMsSUFDUixPQUFPLEVBQUU7WUFDUCxLQUFLLEVBQUUsWUFBWTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNuRCxLQUFLLEVBQUUsaUJBQWlCO1lBQ3hCLFFBQVEsRUFBRSwwQ0FBMEM7WUFDcEQsV0FBVyxFQUFFLGtDQUFrQztTQUNoRCxFQUNELFdBQVcsRUFBRSxJQUFJLEVBQ2pCLGtCQUFrQixFQUFFO1lBQ2xCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsT0FBTztZQUNoQixFQUFFLEVBQUUsT0FBTztTQUNaLEVBQ0Qsb0JBQW9CLEVBQUU7WUFDcEIsTUFBTSxFQUFFLE9BQU87WUFDZixNQUFNLEVBQUUsT0FBTztZQUNmLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLEVBQUUsRUFBRSxPQUFPO1NBQ1osRUFDRCxTQUFTLEVBQUUsd0JBQXdCLEdBQ25DLENBQ21CLENBQ3hCLENBQUM7S0FDRCxHQUFHLENBQUMseUJBQXlCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FDcEMsb0JBQUMsb0JBQW9CO0lBQ25CLG9CQUFDLFNBQVMsSUFDUixPQUFPLEVBQUU7WUFDUCxLQUFLLEVBQUUsWUFBWTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDNUQsS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixRQUFRLEVBQUUsMENBQTBDO1lBQ3BELFdBQVcsRUFBRSxrQ0FBa0M7U0FDaEQsRUFDRCxXQUFXLEVBQUUsSUFBSSxFQUNqQixrQkFBa0IsRUFBRTtZQUNsQixNQUFNLEVBQUUsT0FBTztZQUNmLE1BQU0sRUFBRSxPQUFPO1lBQ2YsT0FBTyxFQUFFLE9BQU87WUFDaEIsRUFBRSxFQUFFLE9BQU87U0FDWixFQUNELG9CQUFvQixFQUFFO1lBQ3BCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsT0FBTztZQUNoQixFQUFFLEVBQUUsT0FBTztTQUNaLEVBQ0QsU0FBUyxFQUFFLHdCQUF3QixHQUNuQyxDQUNtQixDQUN4QixDQUFDO0tBQ0QsR0FBRyxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQ25DLG9CQUFDLG9CQUFvQjtJQUNuQixvQkFBQyxTQUFTLElBQ1IsT0FBTyxFQUFFO1lBQ1AsS0FBSyxFQUFFLFlBQVk7WUFDbkIsU0FBUyxFQUFFLElBQUksQ0FDYixJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNiLE9BQU87Z0JBQ1AsT0FBTztnQkFDUCxPQUFPO2dCQUNQLE9BQU87Z0JBQ1AsT0FBTztnQkFDUCxPQUFPO2FBQ1IsQ0FBQyxDQUNIO1lBQ0QsS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixRQUFRLEVBQUUsMENBQTBDO1lBQ3BELFdBQVcsRUFBRSxrQ0FBa0M7U0FDaEQsRUFDRCxXQUFXLEVBQUUsSUFBSSxFQUNqQixrQkFBa0IsRUFBRTtZQUNsQixNQUFNLEVBQUUsT0FBTztZQUNmLE1BQU0sRUFBRSxPQUFPO1lBQ2YsT0FBTyxFQUFFLE9BQU87WUFDaEIsRUFBRSxFQUFFLE9BQU87U0FDWixFQUNELG9CQUFvQixFQUFFO1lBQ3BCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsT0FBTztZQUNoQixFQUFFLEVBQUUsT0FBTztTQUNaLEVBQ0QsU0FBUyxFQUFFLHdCQUF3QixHQUNuQyxDQUNtQixDQUN4QixDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import React, { useRef, useState, useEffect } from 'react';
|
|
2
|
+
import { CarouselComponent, CarouselItem } from '../carousel-component';
|
|
3
|
+
import { Container, TitleSection, TitleBar, TitleContent, Title, Subtitle, TitleLink, StaticCardsGrid, StyledLink } from './styles';
|
|
4
|
+
import { ChevronRightIcon } from './assets';
|
|
5
|
+
import { tealiumTrackingHandler } from '../../helpers/tracking/TrackingHandler';
|
|
6
|
+
import { getPreferredEdition } from '../../utils/cookie';
|
|
7
|
+
export const TripCardsLayout = ({ element, items, CardComponent, itemsPerPage, widthContainerConfig = {}, widthItemConfig, maxWidthItemConfig, imgHeight, forceStaticGrid }) => {
|
|
8
|
+
const { titleurl, title, description } = element;
|
|
9
|
+
const gridRef = useRef(null);
|
|
10
|
+
const [hasOverflow, setHasOverflow] = useState(false);
|
|
11
|
+
const [isTabletMobile, setIsTabletMobile] = useState(false);
|
|
12
|
+
const isStaticGrid = items.length === 2 || forceStaticGrid;
|
|
13
|
+
// Handle responsive breakpoint detection
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
const mediaQuery = window.matchMedia('(max-width: 1024px)');
|
|
16
|
+
const handleMediaChange = (e) => {
|
|
17
|
+
setIsTabletMobile(e.matches);
|
|
18
|
+
};
|
|
19
|
+
handleMediaChange(mediaQuery);
|
|
20
|
+
mediaQuery.addEventListener('change', handleMediaChange);
|
|
21
|
+
return () => {
|
|
22
|
+
mediaQuery.removeEventListener('change', handleMediaChange);
|
|
23
|
+
};
|
|
24
|
+
}, []);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (!isStaticGrid || !gridRef.current) {
|
|
27
|
+
setHasOverflow(false);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const checkOverflow = () => {
|
|
31
|
+
if (gridRef.current) {
|
|
32
|
+
const isOverflowing = gridRef.current.scrollWidth > gridRef.current.clientWidth;
|
|
33
|
+
setHasOverflow(isOverflowing);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
checkOverflow();
|
|
37
|
+
const resizeObserver = new ResizeObserver(checkOverflow);
|
|
38
|
+
resizeObserver.observe(gridRef.current);
|
|
39
|
+
return () => {
|
|
40
|
+
resizeObserver.disconnect();
|
|
41
|
+
};
|
|
42
|
+
}, [isStaticGrid, items.length]);
|
|
43
|
+
const shouldUseCarousel = (isTabletMobile && items.length >= 3) || !isStaticGrid || hasOverflow;
|
|
44
|
+
const onTitleClick = () => {
|
|
45
|
+
tealiumTrackingHandler(`trip cards component ${title}`, 'navigation', 'click', undefined, undefined, {
|
|
46
|
+
app_content_location: getPreferredEdition()
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
return (React.createElement(Container, Object.assign({ "data-testid": "trip-cards-container" }, widthContainerConfig),
|
|
50
|
+
React.createElement(TitleSection, { "data-testid": "title-section" },
|
|
51
|
+
React.createElement(TitleBar, { "data-testid": "title-bar", applyRightPadding: !!widthContainerConfig.mobile },
|
|
52
|
+
React.createElement(TitleContent, { "data-testid": "title-content" },
|
|
53
|
+
titleurl ? (React.createElement(StyledLink, { href: titleurl, target: "_blank", rel: "noopener noreferrer", onClick: onTitleClick, "data-testid": "trip-cards-title-link" },
|
|
54
|
+
React.createElement(Title, { "data-testid": "trip-cards-title" }, title))) : (React.createElement(Title, { "data-testid": "trip-cards-title" }, title)),
|
|
55
|
+
React.createElement(Subtitle, { "data-testid": "trip-cards-subtitle" }, description)),
|
|
56
|
+
titleurl && (React.createElement(TitleLink, { href: titleurl, target: "_blank", rel: "noopener noreferrer", "data-testid": "title-link", onClick: onTitleClick },
|
|
57
|
+
React.createElement(ChevronRightIcon, null))))),
|
|
58
|
+
!shouldUseCarousel ? (React.createElement(StaticCardsGrid, { "data-testid": "static-cards-grid", ref: gridRef }, items.map(item => (React.createElement(CardComponent, { imgHeight: imgHeight, key: item.id, card: item.data, isStaticGrid: true, forceStaticGrid: forceStaticGrid }))))) : (React.createElement(CarouselComponent, { items: items.map(item => (React.createElement(CarouselItem, { key: item.id, widthItemConfig: widthItemConfig, maxWidthItemConfig: maxWidthItemConfig },
|
|
59
|
+
React.createElement(CardComponent, { card: item.data, imgHeight: imgHeight })))), options: {
|
|
60
|
+
itemsPerPage
|
|
61
|
+
}, showArrows: !isStaticGrid, showDots: true }))));
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJpcENhcmRzTGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJpcC1jYXJkcy9UcmlwQ2FyZHNMYXlvdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQU0sTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXhFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDUixZQUFZLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDWCxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFekQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUE2QixDQUFDLEVBQ3hELE9BQU8sRUFDUCxLQUFLLEVBQ0wsYUFBYSxFQUNiLFlBQVksRUFDWixvQkFBb0IsR0FBRyxFQUFFLEVBQ3pCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsU0FBUyxFQUNULGVBQWUsRUFDaEIsRUFBRSxFQUFFO0lBQ0gsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ2pELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBaUIsSUFBSSxDQUFDLENBQUM7SUFDN0MsTUFBTSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsTUFBTSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxH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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|