@times-components/ts-components 1.146.2-be27d508c972211ad80599875cd69c63bf67d4b1.45 → 1.146.2-e5795a0ef59e2adb61ba52aeb7332fda4405cb7a.4
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/opta/football/opta-match-stats/matchday-live/DesktopWidget.d.ts +10 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.js +69 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/MobileWidget.d.ts +12 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/MobileWidget.js +90 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.d.ts +12 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.js +10 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.js +24 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/__tests__/MobileWidget.test.js +57 -0
- package/dist/components/{carousel-component/__tests__/DefaultPageDot.test.d.ts → opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.d.ts} +1 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.js +48 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.d.ts +1 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.js +19 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.d.ts +12 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.js +67 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.d.ts +6 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.js +736 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/NavigationWrapper.test.js +33 -0
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/WidgetContainer.test.js +36 -0
- package/dist/components/opta/football/opta-match-stats/shared/styles.js +8 -1
- package/dist/components/opta/football/opta-match-stats/summary/OptaMatchStatsSummary.js +2 -2
- package/dist/components/opta/football/opta-match-stats/summary/OptaMatchStatsSummary.stories.js +1 -1
- package/dist/components/opta/football/opta-match-stats/summary/WidgetContainer.js +19 -5
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/package.json +3 -3
- package/rnw.js +1 -1
- package/src/components/opta/football/opta-match-stats/commentary/__tests__/__snapshots__/OptaMatchStatsCommentary.test.tsx.snap +1 -1
- package/src/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.tsx +108 -0
- package/src/components/opta/football/opta-match-stats/matchday-live/MobileWidget.tsx +158 -0
- package/src/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.tsx +38 -0
- package/src/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.tsx +23 -0
- package/src/components/opta/football/opta-match-stats/matchday-live/__tests__/MobileWidget.test.tsx +69 -0
- package/src/components/opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.tsx +61 -0
- package/src/components/opta/football/opta-match-stats/matchday-live/__tests__/__snapshots__/OptaMatchStatsMatchdayLive.test.tsx.snap +61 -0
- package/src/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.tsx +19 -0
- package/src/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.tsx +81 -0
- package/src/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.tsx +767 -0
- package/src/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/NavigationWrapper.test.tsx +67 -0
- package/src/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/WidgetContainer.test.tsx +64 -0
- package/src/components/opta/football/opta-match-stats/shared/styles.ts +8 -0
- package/src/components/opta/football/opta-match-stats/stats-graphs/__tests__/__snapshots__/OptaMatchStatsGraphs.test.tsx.snap +1 -1
- package/src/components/opta/football/opta-match-stats/summary/OptaMatchStatsSummary.stories.tsx +1 -1
- package/src/components/opta/football/opta-match-stats/summary/OptaMatchStatsSummary.tsx +1 -1
- package/src/components/opta/football/opta-match-stats/summary/WidgetContainer.tsx +18 -4
- package/src/components/opta/football/opta-match-stats/summary/__tests__/__snapshots__/OptaMatchStatsSummary.test.tsx.snap +1 -1
- package/src/index.ts +3 -2
- package/dist/components/carousel-component/CarouselComponent.stories.js +0 -146
- package/dist/components/carousel-component/CarouselItem.d.ts +0 -3
- package/dist/components/carousel-component/CarouselItem.js +0 -12
- package/dist/components/carousel-component/DefaultNavigationArrow.d.ts +0 -8
- package/dist/components/carousel-component/DefaultNavigationArrow.js +0 -6
- package/dist/components/carousel-component/DefaultPageDot.d.ts +0 -8
- package/dist/components/carousel-component/DefaultPageDot.js +0 -4
- package/dist/components/carousel-component/__tests__/CarouselComponent.test.js +0 -163
- package/dist/components/carousel-component/__tests__/CarouselItem.test.js +0 -80
- package/dist/components/carousel-component/__tests__/DefaultNavigationArrow.test.js +0 -62
- package/dist/components/carousel-component/__tests__/DefaultPageDot.test.js +0 -68
- package/dist/components/carousel-component/hooks/__tests__/useCarousel.test.d.ts +0 -1
- package/dist/components/carousel-component/hooks/__tests__/useCarousel.test.js +0 -459
- package/dist/components/carousel-component/hooks/useCarousel.d.ts +0 -2
- package/dist/components/carousel-component/hooks/useCarousel.js +0 -167
- package/dist/components/carousel-component/index.d.ts +0 -4
- package/dist/components/carousel-component/index.js +0 -20
- package/dist/components/carousel-component/styles.d.ts +0 -28
- package/dist/components/carousel-component/styles.js +0 -172
- package/dist/components/carousel-component/types.d.ts +0 -53
- package/dist/components/carousel-component/types.js +0 -2
- package/dist/components/trip-cards/SkeletonCard.d.ts +0 -7
- package/dist/components/trip-cards/SkeletonCard.js +0 -22
- package/dist/components/trip-cards/TripCard.d.ts +0 -3
- package/dist/components/trip-cards/TripCard.js +0 -49
- package/dist/components/trip-cards/TripCards.stories.d.ts +0 -1
- package/dist/components/trip-cards/TripCards.stories.js +0 -159
- package/dist/components/trip-cards/TripCardsLayout.d.ts +0 -3
- package/dist/components/trip-cards/TripCardsLayout.js +0 -56
- package/dist/components/trip-cards/__tests__/SkeletonCard.test.d.ts +0 -1
- package/dist/components/trip-cards/__tests__/SkeletonCard.test.js +0 -139
- package/dist/components/trip-cards/__tests__/TripCard.test.d.ts +0 -1
- package/dist/components/trip-cards/__tests__/TripCard.test.js +0 -95
- package/dist/components/trip-cards/__tests__/TripCardsLayout.test.d.ts +0 -1
- package/dist/components/trip-cards/__tests__/TripCardsLayout.test.js +0 -314
- package/dist/components/trip-cards/__tests__/assets.test.d.ts +0 -1
- package/dist/components/trip-cards/__tests__/assets.test.js +0 -165
- package/dist/components/trip-cards/__tests__/helpers.test.d.ts +0 -1
- package/dist/components/trip-cards/__tests__/helpers.test.js +0 -220
- package/dist/components/trip-cards/__tests__/index.test.d.ts +0 -1
- package/dist/components/trip-cards/__tests__/index.test.js +0 -478
- package/dist/components/trip-cards/__tests__/mockData.test.d.ts +0 -1
- package/dist/components/trip-cards/__tests__/mockData.test.js +0 -57
- package/dist/components/trip-cards/__tests__/skeletonStyles.test.d.ts +0 -1
- package/dist/components/trip-cards/__tests__/skeletonStyles.test.js +0 -194
- package/dist/components/trip-cards/assets/BoatIcon.d.ts +0 -1
- package/dist/components/trip-cards/assets/BoatIcon.js +0 -4
- package/dist/components/trip-cards/assets/CalendarIcon.d.ts +0 -1
- package/dist/components/trip-cards/assets/CalendarIcon.js +0 -4
- package/dist/components/trip-cards/assets/ChevronRightIcon.d.ts +0 -1
- package/dist/components/trip-cards/assets/ChevronRightIcon.js +0 -4
- package/dist/components/trip-cards/assets/LocationIcon.d.ts +0 -1
- package/dist/components/trip-cards/assets/LocationIcon.js +0 -4
- package/dist/components/trip-cards/assets/MoonIcon.d.ts +0 -1
- package/dist/components/trip-cards/assets/MoonIcon.js +0 -4
- package/dist/components/trip-cards/assets/index.d.ts +0 -6
- package/dist/components/trip-cards/assets/index.js +0 -7
- package/dist/components/trip-cards/helpers.d.ts +0 -11
- package/dist/components/trip-cards/helpers.js +0 -138
- package/dist/components/trip-cards/index.d.ts +0 -4
- package/dist/components/trip-cards/index.js +0 -68
- package/dist/components/trip-cards/mockData.d.ts +0 -3
- package/dist/components/trip-cards/mockData.js +0 -317
- package/dist/components/trip-cards/skeletonStyles.d.ts +0 -9
- package/dist/components/trip-cards/skeletonStyles.js +0 -37
- package/dist/components/trip-cards/styles.d.ts +0 -43
- package/dist/components/trip-cards/styles.js +0 -404
- package/dist/components/trip-cards/types.d.ts +0 -119
- package/dist/components/trip-cards/types.js +0 -2
- package/src/components/carousel-component/CarouselComponent.stories.tsx +0 -220
- package/src/components/carousel-component/CarouselItem.tsx +0 -26
- package/src/components/carousel-component/DefaultNavigationArrow.tsx +0 -37
- package/src/components/carousel-component/DefaultPageDot.tsx +0 -20
- package/src/components/carousel-component/__tests__/CarouselComponent.test.tsx +0 -259
- package/src/components/carousel-component/__tests__/CarouselItem.test.tsx +0 -140
- package/src/components/carousel-component/__tests__/DefaultNavigationArrow.test.tsx +0 -153
- package/src/components/carousel-component/__tests__/DefaultPageDot.test.tsx +0 -105
- package/src/components/carousel-component/hooks/__tests__/useCarousel.test.ts +0 -625
- package/src/components/carousel-component/hooks/useCarousel.ts +0 -229
- package/src/components/carousel-component/index.tsx +0 -92
- package/src/components/carousel-component/styles.ts +0 -188
- package/src/components/carousel-component/types.ts +0 -62
- package/src/components/trip-cards/SkeletonCard.tsx +0 -64
- package/src/components/trip-cards/TripCard.tsx +0 -140
- package/src/components/trip-cards/TripCards.stories.tsx +0 -224
- package/src/components/trip-cards/TripCardsLayout.tsx +0 -145
- package/src/components/trip-cards/__tests__/SkeletonCard.test.tsx +0 -169
- package/src/components/trip-cards/__tests__/TripCard.test.tsx +0 -120
- package/src/components/trip-cards/__tests__/TripCardsLayout.test.tsx +0 -583
- package/src/components/trip-cards/__tests__/assets.test.tsx +0 -206
- package/src/components/trip-cards/__tests__/helpers.test.ts +0 -272
- package/src/components/trip-cards/__tests__/index.test.tsx +0 -550
- package/src/components/trip-cards/__tests__/mockData.test.ts +0 -67
- package/src/components/trip-cards/__tests__/skeletonStyles.test.tsx +0 -256
- package/src/components/trip-cards/assets/BoatIcon.tsx +0 -17
- package/src/components/trip-cards/assets/CalendarIcon.tsx +0 -17
- package/src/components/trip-cards/assets/ChevronRightIcon.tsx +0 -20
- package/src/components/trip-cards/assets/LocationIcon.tsx +0 -17
- package/src/components/trip-cards/assets/MoonIcon.tsx +0 -17
- package/src/components/trip-cards/assets/index.ts +0 -7
- package/src/components/trip-cards/helpers.ts +0 -176
- package/src/components/trip-cards/index.tsx +0 -119
- package/src/components/trip-cards/mockData.ts +0 -345
- package/src/components/trip-cards/skeletonStyles.ts +0 -46
- package/src/components/trip-cards/styles.ts +0 -450
- package/src/components/trip-cards/types.ts +0 -128
- /package/dist/components/{carousel-component/CarouselComponent.stories.d.ts → opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.d.ts} +0 -0
- /package/dist/components/{carousel-component/__tests__/CarouselComponent.test.d.ts → opta/football/opta-match-stats/matchday-live/__tests__/MobileWidget.test.d.ts} +0 -0
- /package/dist/components/{carousel-component/__tests__/CarouselItem.test.d.ts → opta/football/opta-match-stats/matchday-live/styles/__tests__/NavigationWrapper.test.d.ts} +0 -0
- /package/dist/components/{carousel-component/__tests__/DefaultNavigationArrow.test.d.ts → opta/football/opta-match-stats/matchday-live/styles/__tests__/WidgetContainer.test.d.ts} +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '@testing-library/react';
|
|
3
|
+
import '@testing-library/jest-dom';
|
|
4
|
+
import { NavigationWrapper } from '../NavigationWrapper';
|
|
5
|
+
|
|
6
|
+
const HomeColour = { light: '#123456', dark: '#abcdef' };
|
|
7
|
+
const AwayColour = { light: '#654321', dark: '#fedcba' };
|
|
8
|
+
|
|
9
|
+
describe('Matchday Live NavigationWrapper', () => {
|
|
10
|
+
it('renders with active home', () => {
|
|
11
|
+
const { container } = render(
|
|
12
|
+
<NavigationWrapper
|
|
13
|
+
isApp={false}
|
|
14
|
+
activeTeam="home"
|
|
15
|
+
homeTeamColor={HomeColour}
|
|
16
|
+
awayTeamColor={AwayColour}
|
|
17
|
+
>
|
|
18
|
+
<div className="navigation-buttons">
|
|
19
|
+
<button className="active home">Home</button>
|
|
20
|
+
<button className="away">Away</button>
|
|
21
|
+
</div>
|
|
22
|
+
<div className="home-widget-container">Home widget</div>
|
|
23
|
+
<div className="away-widget-container">Away widget</div>
|
|
24
|
+
</NavigationWrapper>
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
expect(container.querySelector('.navigation-buttons')).toBeInTheDocument();
|
|
28
|
+
expect(
|
|
29
|
+
container.querySelector('.navigation-buttons .active.home')
|
|
30
|
+
).toBeInTheDocument();
|
|
31
|
+
expect(
|
|
32
|
+
container.querySelector('.home-widget-container')
|
|
33
|
+
).toBeInTheDocument();
|
|
34
|
+
expect(
|
|
35
|
+
container.querySelector('.away-widget-container')
|
|
36
|
+
).toBeInTheDocument();
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('renders with active away and isApp true', () => {
|
|
40
|
+
const { container } = render(
|
|
41
|
+
<NavigationWrapper
|
|
42
|
+
isApp={true}
|
|
43
|
+
activeTeam="away"
|
|
44
|
+
homeTeamColor={HomeColour}
|
|
45
|
+
awayTeamColor={AwayColour}
|
|
46
|
+
>
|
|
47
|
+
<div className="navigation-buttons">
|
|
48
|
+
<button className="home">Home</button>
|
|
49
|
+
<button className="active away">Away</button>
|
|
50
|
+
</div>
|
|
51
|
+
<div className="home-widget-container">Home widget</div>
|
|
52
|
+
<div className="away-widget-container">Away widget</div>
|
|
53
|
+
</NavigationWrapper>
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
expect(container.querySelector('.navigation-buttons')).toBeInTheDocument();
|
|
57
|
+
expect(
|
|
58
|
+
container.querySelector('.navigation-buttons .active.away')
|
|
59
|
+
).toBeInTheDocument();
|
|
60
|
+
expect(
|
|
61
|
+
container.querySelector('.home-widget-container')
|
|
62
|
+
).toBeInTheDocument();
|
|
63
|
+
expect(
|
|
64
|
+
container.querySelector('.away-widget-container')
|
|
65
|
+
).toBeInTheDocument();
|
|
66
|
+
});
|
|
67
|
+
});
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '@testing-library/react';
|
|
3
|
+
import '@testing-library/jest-dom';
|
|
4
|
+
import { WidgetContainer } from '../WidgetContainer';
|
|
5
|
+
|
|
6
|
+
describe('Matchday Live WidgetContainer', () => {
|
|
7
|
+
const baseProps = {
|
|
8
|
+
isApp: true,
|
|
9
|
+
homeTeamColor: { light: '#000000', dark: '#a19c9cff' },
|
|
10
|
+
awayTeamColor: { light: '#007A3F', dark: '#007A3F' }
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
it('generates styles', () => {
|
|
14
|
+
const { container } = render(
|
|
15
|
+
<WidgetContainer {...baseProps}>
|
|
16
|
+
<div className="Opta">
|
|
17
|
+
<div className="Opta_W">content</div>
|
|
18
|
+
</div>
|
|
19
|
+
</WidgetContainer>
|
|
20
|
+
);
|
|
21
|
+
expect(container.querySelector('.Opta > .Opta_W')).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it('generates dark-mode styles under .Opta-Overlay .Opta-Flex', () => {
|
|
25
|
+
const { container } = render(
|
|
26
|
+
<WidgetContainer {...baseProps}>
|
|
27
|
+
<div className="Opta-Overlay">
|
|
28
|
+
<div className="Opta-Flex">flex</div>
|
|
29
|
+
</div>
|
|
30
|
+
</WidgetContainer>
|
|
31
|
+
);
|
|
32
|
+
expect(container.querySelector('.Opta-Overlay .Opta-Flex')).toBeTruthy();
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('applies home-widget-container styles', () => {
|
|
36
|
+
const { container } = render(
|
|
37
|
+
<WidgetContainer {...baseProps} className="home-widget-container">
|
|
38
|
+
<div className="Opta-MatchHeader">
|
|
39
|
+
<div className="Opta-Away">Away Team</div>
|
|
40
|
+
</div>
|
|
41
|
+
</WidgetContainer>
|
|
42
|
+
);
|
|
43
|
+
expect(
|
|
44
|
+
container.querySelector(
|
|
45
|
+
'.home-widget-container .Opta-MatchHeader .Opta-Away'
|
|
46
|
+
)
|
|
47
|
+
).toBeTruthy();
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('applies away-widget-container styles', () => {
|
|
51
|
+
const { container } = render(
|
|
52
|
+
<WidgetContainer {...baseProps} className="away-widget-container">
|
|
53
|
+
<div className="Opta-MatchHeader">
|
|
54
|
+
<div className="Opta-Home">Home Team</div>
|
|
55
|
+
</div>
|
|
56
|
+
</WidgetContainer>
|
|
57
|
+
);
|
|
58
|
+
expect(
|
|
59
|
+
container.querySelector(
|
|
60
|
+
'.away-widget-container .Opta-MatchHeader .Opta-Home'
|
|
61
|
+
)
|
|
62
|
+
).toBeTruthy();
|
|
63
|
+
});
|
|
64
|
+
});
|
|
@@ -54,5 +54,13 @@ export const WidgetWrapper = styled.div<{
|
|
|
54
54
|
@media (max-width: ${maxMDBreakpoint}px) {
|
|
55
55
|
display: none;
|
|
56
56
|
}
|
|
57
|
+
|
|
58
|
+
${props =>
|
|
59
|
+
props.isApp &&
|
|
60
|
+
`
|
|
61
|
+
@media(prefers-color-scheme: dark) {
|
|
62
|
+
color: ${darkTextColor} !important;
|
|
63
|
+
}
|
|
64
|
+
`}
|
|
57
65
|
}
|
|
58
66
|
`;
|
|
@@ -94,9 +94,14 @@ export const WidgetContainer = styled.div<{
|
|
|
94
94
|
.Opta-Team {
|
|
95
95
|
flex: 1;
|
|
96
96
|
font-family: ${fonts.headline};
|
|
97
|
-
font-size:
|
|
97
|
+
font-size: 20px;
|
|
98
98
|
font-weight: 800;
|
|
99
99
|
color: ${textColor};
|
|
100
|
+
|
|
101
|
+
@media (min-width: ${1024}px) {
|
|
102
|
+
font-size: 24px;
|
|
103
|
+
}
|
|
104
|
+
|
|
100
105
|
${props =>
|
|
101
106
|
props.isApp &&
|
|
102
107
|
`
|
|
@@ -316,14 +321,23 @@ export const WidgetContainer = styled.div<{
|
|
|
316
321
|
display: flex;
|
|
317
322
|
text-align: right;
|
|
318
323
|
}
|
|
324
|
+
|
|
325
|
+
&.Opta-Home {
|
|
326
|
+
.Opta-Event-Player {
|
|
327
|
+
text-align: left;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
&.Opta-Away {
|
|
332
|
+
.Opta-Event-Player {
|
|
333
|
+
text-align: right;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
319
336
|
}
|
|
320
337
|
|
|
321
338
|
.Opta-Event-Text {
|
|
322
339
|
display: flex;
|
|
323
340
|
align-items: center;
|
|
324
|
-
.Opta-Event-Player {
|
|
325
|
-
text-align: left;
|
|
326
|
-
}
|
|
327
341
|
|
|
328
342
|
&.Opta-Home {
|
|
329
343
|
li {
|
package/src/index.ts
CHANGED
|
@@ -104,8 +104,6 @@ export {
|
|
|
104
104
|
default as ArticleHeader
|
|
105
105
|
} from './components/article-header/ArticleHeader';
|
|
106
106
|
|
|
107
|
-
export { TripCards } from './components/trip-cards';
|
|
108
|
-
|
|
109
107
|
export {
|
|
110
108
|
UpdatedTimestamp
|
|
111
109
|
} from './components/updated-timestamp/UpdatedTimestamp';
|
|
@@ -154,3 +152,6 @@ export {
|
|
|
154
152
|
export {
|
|
155
153
|
OptaMatchStatsCommentary
|
|
156
154
|
} from './components/opta/football/opta-match-stats/commentary/OptaMatchStatsCommentary';
|
|
155
|
+
export {
|
|
156
|
+
OptaMatchStatsMatchdayLive
|
|
157
|
+
} from './components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive';
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { storiesOf } from '@storybook/react';
|
|
3
|
-
import { CarouselComponent, CarouselItem } from './index';
|
|
4
|
-
import styled from 'styled-components';
|
|
5
|
-
// Simple card component for demos
|
|
6
|
-
const SimpleCard = styled.div `
|
|
7
|
-
background: ${props => props.color};
|
|
8
|
-
height: 300px;
|
|
9
|
-
border-radius: 8px;
|
|
10
|
-
display: flex;
|
|
11
|
-
align-items: center;
|
|
12
|
-
justify-content: center;
|
|
13
|
-
color: white;
|
|
14
|
-
font-size: 24px;
|
|
15
|
-
font-weight: 600;
|
|
16
|
-
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
17
|
-
`;
|
|
18
|
-
const Container = styled.div `
|
|
19
|
-
max-width: 1200px;
|
|
20
|
-
margin: 40px auto;
|
|
21
|
-
padding: 0 20px;
|
|
22
|
-
`;
|
|
23
|
-
const Title = styled.h2 `
|
|
24
|
-
margin-bottom: 24px;
|
|
25
|
-
font-size: 24px;
|
|
26
|
-
font-weight: 600;
|
|
27
|
-
`;
|
|
28
|
-
storiesOf('Typescript Component/CarouselComponent', module)
|
|
29
|
-
.add('Two Cards Per Page', () => {
|
|
30
|
-
const colors = [
|
|
31
|
-
'#005C8A',
|
|
32
|
-
'#FF6B6B',
|
|
33
|
-
'#4ECDC4',
|
|
34
|
-
'#45B7D1',
|
|
35
|
-
'#96CEB4',
|
|
36
|
-
'#FFEAA7'
|
|
37
|
-
];
|
|
38
|
-
const items = colors.map((color, index) => (React.createElement(CarouselItem, { key: index, widthItemConfig: {
|
|
39
|
-
mobile: '90%',
|
|
40
|
-
tablet: '70%',
|
|
41
|
-
desktop: 'calc(47% - 10px)'
|
|
42
|
-
} },
|
|
43
|
-
React.createElement(SimpleCard, { color: color },
|
|
44
|
-
"Card ",
|
|
45
|
-
index + 1))));
|
|
46
|
-
return (React.createElement(Container, null,
|
|
47
|
-
React.createElement(Title, null, "Two Cards Per Page (with peek)"),
|
|
48
|
-
React.createElement(CarouselComponent, { items: items, options: {
|
|
49
|
-
itemsPerPage: 2
|
|
50
|
-
}, showArrows: true, showDots: true })));
|
|
51
|
-
})
|
|
52
|
-
.add('Three Cards Per Page', () => {
|
|
53
|
-
const colors = [
|
|
54
|
-
'#005C8A',
|
|
55
|
-
'#FF6B6B',
|
|
56
|
-
'#4ECDC4',
|
|
57
|
-
'#45B7D1',
|
|
58
|
-
'#96CEB4',
|
|
59
|
-
'#FFEAA7',
|
|
60
|
-
'#DFE6E9',
|
|
61
|
-
'#74B9FF',
|
|
62
|
-
'#A29BFE'
|
|
63
|
-
];
|
|
64
|
-
const items = colors.map((color, index) => (React.createElement(CarouselItem, { key: index, widthItemConfig: {
|
|
65
|
-
mobile: '85%',
|
|
66
|
-
tablet: '40%',
|
|
67
|
-
desktop: 'calc(31% - 14px)'
|
|
68
|
-
} },
|
|
69
|
-
React.createElement(SimpleCard, { color: color },
|
|
70
|
-
"Card ",
|
|
71
|
-
index + 1))));
|
|
72
|
-
return (React.createElement(Container, null,
|
|
73
|
-
React.createElement(Title, null, "Three Cards Per Page (with peek)"),
|
|
74
|
-
React.createElement(CarouselComponent, { items: items, options: {
|
|
75
|
-
itemsPerPage: 3
|
|
76
|
-
}, showArrows: true, showDots: true })));
|
|
77
|
-
})
|
|
78
|
-
.add('Minimal Example', () => {
|
|
79
|
-
const items = [
|
|
80
|
-
React.createElement(CarouselItem, { key: "1", widthItemConfig: {
|
|
81
|
-
mobile: '90%',
|
|
82
|
-
tablet: '70%',
|
|
83
|
-
desktop: 'calc(47% - 10px)'
|
|
84
|
-
} },
|
|
85
|
-
React.createElement(SimpleCard, { color: "#005C8A" }, "Card 1")),
|
|
86
|
-
React.createElement(CarouselItem, { key: "2", widthItemConfig: {
|
|
87
|
-
mobile: '90%',
|
|
88
|
-
tablet: '70%',
|
|
89
|
-
desktop: 'calc(47% - 10px)'
|
|
90
|
-
} },
|
|
91
|
-
React.createElement(SimpleCard, { color: "#FF6B6B" }, "Card 2")),
|
|
92
|
-
React.createElement(CarouselItem, { key: "3", widthItemConfig: {
|
|
93
|
-
mobile: '90%',
|
|
94
|
-
tablet: '70%',
|
|
95
|
-
desktop: 'calc(47% - 10px)'
|
|
96
|
-
} },
|
|
97
|
-
React.createElement(SimpleCard, { color: "#4ECDC4" }, "Card 3")),
|
|
98
|
-
React.createElement(CarouselItem, { key: "4", widthItemConfig: {
|
|
99
|
-
mobile: '90%',
|
|
100
|
-
tablet: '70%',
|
|
101
|
-
desktop: 'calc(47% - 10px)'
|
|
102
|
-
} },
|
|
103
|
-
React.createElement(SimpleCard, { color: "#45B7D1" }, "Card 4"))
|
|
104
|
-
];
|
|
105
|
-
return (React.createElement(Container, null,
|
|
106
|
-
React.createElement(Title, null, "Simple 4 Cards"),
|
|
107
|
-
React.createElement(CarouselComponent, { items: items })));
|
|
108
|
-
})
|
|
109
|
-
.add('Without Navigation', () => {
|
|
110
|
-
const colors = ['#005C8A', '#FF6B6B', '#4ECDC4', '#45B7D1'];
|
|
111
|
-
const items = colors.map((color, index) => (React.createElement(CarouselItem, { key: index, widthItemConfig: {
|
|
112
|
-
mobile: '90%',
|
|
113
|
-
tablet: '70%',
|
|
114
|
-
desktop: 'calc(47% - 10px)'
|
|
115
|
-
} },
|
|
116
|
-
React.createElement(SimpleCard, { color: color },
|
|
117
|
-
"Card ",
|
|
118
|
-
index + 1))));
|
|
119
|
-
return (React.createElement(Container, null,
|
|
120
|
-
React.createElement(Title, null, "Scroll Only (No Arrows/Dots)"),
|
|
121
|
-
React.createElement(CarouselComponent, { items: items, showArrows: false, showDots: false })));
|
|
122
|
-
})
|
|
123
|
-
.add('Three Cards Exact Width (No Peek)', () => {
|
|
124
|
-
const colors = [
|
|
125
|
-
'#005C8A',
|
|
126
|
-
'#FF6B6B',
|
|
127
|
-
'#4ECDC4',
|
|
128
|
-
'#45B7D1',
|
|
129
|
-
'#96CEB4',
|
|
130
|
-
'#FFEAA7'
|
|
131
|
-
];
|
|
132
|
-
const items = colors.map((color, index) => (React.createElement(CarouselItem, { key: index, widthItemConfig: {
|
|
133
|
-
mobile: '90%',
|
|
134
|
-
tablet: '70%',
|
|
135
|
-
desktop: 'calc(33% - 10px)'
|
|
136
|
-
} },
|
|
137
|
-
React.createElement(SimpleCard, { color: color },
|
|
138
|
-
"Card ",
|
|
139
|
-
index + 1))));
|
|
140
|
-
return (React.createElement(Container, null,
|
|
141
|
-
React.createElement(Title, null, "Three Cards Per Page (exact width, no peek)"),
|
|
142
|
-
React.createElement(CarouselComponent, { items: items, options: {
|
|
143
|
-
itemsPerPage: 3
|
|
144
|
-
}, showArrows: true, showDots: true })));
|
|
145
|
-
});
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2Fyb3VzZWxDb21wb25lbnQuc3Rvcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Nhcm91c2VsLWNvbXBvbmVudC9DYXJvdXNlbENvbXBvbmVudC5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUQsT0FBTyxNQUFNLE1BQU0sbUJBQW1CLENBQUM7QUFFdkMsa0NBQWtDO0FBQ2xDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQW1CO2dCQUNoQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLOzs7Ozs7Ozs7O0NBVW5DLENBQUM7QUFFRixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOzs7O0NBSTNCLENBQUM7QUFFRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFBOzs7O0NBSXRCLENBQUM7QUFFRixTQUFTLENBQUMsd0NBQXdDLEVBQUUsTUFBTSxDQUFDO0tBQ3hELEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUU7SUFDOUIsTUFBTSxNQUFNLEdBQUc7UUFDYixTQUFTO1FBQ1QsU0FBUztRQUNULFNBQVM7UUFDVCxTQUFTO1FBQ1QsU0FBUztRQUNULFNBQVM7S0FDVixDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQ3pDLG9CQUFDLFlBQVksSUFDWCxHQUFHLEVBQUUsS0FBSyxFQUNWLGVBQWUsRUFBRTtZQUNmLE1BQU0sRUFBRSxLQUFLO1lBQ2IsTUFBTSxFQUFFLEtBQUs7WUFDYixP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
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ItemContainer } from './styles';
|
|
3
|
-
export const CarouselItem = ({ children, widthItemConfig = {
|
|
4
|
-
xs: '85%',
|
|
5
|
-
mobile: '85%',
|
|
6
|
-
tablet: '70%',
|
|
7
|
-
desktop: 'calc(50% - 10px)',
|
|
8
|
-
xl: 'calc(50% - 10px)'
|
|
9
|
-
}, maxWidthItemConfig, className }) => {
|
|
10
|
-
return (React.createElement(ItemContainer, { widthItemConfig: widthItemConfig, maxWidthItemConfig: maxWidthItemConfig, className: className }, children));
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2Fyb3VzZWxJdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY2Fyb3VzZWwtY29tcG9uZW50L0Nhcm91c2VsSXRlbS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHekMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFnQyxDQUFDLEVBQ3hELFFBQVEsRUFDUixlQUFlLEdBQUc7SUFDaEIsRUFBRSxFQUFFLEtBQUs7SUFDVCxNQUFNLEVBQUUsS0FBSztJQUNiLE1BQU0sRUFBRSxLQUFLO0lBQ2IsT0FBTyxFQUFFLGtCQUFrQjtJQUMzQixFQUFFLEVBQUUsa0JBQWtCO0NBQ3ZCLEVBQ0Qsa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVixFQUFFLEVBQUU7SUFDSCxPQUFPLENBQ0wsb0JBQUMsYUFBYSxJQUNaLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLGtCQUFrQixFQUFFLGtCQUFrQixFQUN0QyxTQUFTLEVBQUUsU0FBUyxJQUVuQixRQUFRLENBQ0ssQ0FDakIsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { NavigationArrowButton } from './styles';
|
|
3
|
-
export const DefaultNavigationArrow = ({ direction, onClick, disabled }) => (React.createElement(NavigationArrowButton, { direction: direction, onClick: onClick, disabled: disabled, "aria-label": `${direction === 'left' ? 'Previous' : 'Next'} items` },
|
|
4
|
-
React.createElement("svg", { width: "24", height: "24", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
|
|
5
|
-
React.createElement("path", { d: direction === 'left' ? 'M10 12L6 8L10 4' : 'M6 12L10 8L6 4', stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }))));
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdE5hdmlnYXRpb25BcnJvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Nhcm91c2VsLWNvbXBvbmVudC9EZWZhdWx0TmF2aWdhdGlvbkFycm93LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBUWpELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFtQyxDQUFDLEVBQ3JFLFNBQVMsRUFDVCxPQUFPLEVBQ1AsUUFBUSxFQUNULEVBQUUsRUFBRSxDQUFDLENBQ0osb0JBQUMscUJBQXFCLElBQ3BCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFFBQVEsRUFBRSxRQUFRLGdCQUNOLEdBQUcsU0FBUyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLFFBQVE7SUFFakUsNkJBQ0UsS0FBSyxFQUFDLElBQUksRUFDVixNQUFNLEVBQUMsSUFBSSxFQUNYLE9BQU8sRUFBQyxXQUFXLEVBQ25CLElBQUksRUFBQyxNQUFNLEVBQ1gsS0FBSyxFQUFDLDRCQUE0QjtRQUVsQyw4QkFDRSxDQUFDLEVBQUUsU0FBUyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUM5RCxNQUFNLEVBQUMsY0FBYyxFQUNyQixXQUFXLEVBQUMsS0FBSyxFQUNqQixhQUFhLEVBQUMsT0FBTyxFQUNyQixjQUFjLEVBQUMsT0FBTyxHQUN0QixDQUNFLENBQ2dCLENBQ3pCLENBQUMifQ==
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { PageDotButton } from './styles';
|
|
3
|
-
export const DefaultPageDot = ({ active, onClick, index }) => (React.createElement(PageDotButton, { active: active, onClick: onClick, "aria-label": `Go to page ${index + 1}` }));
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFBhZ2VEb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jYXJvdXNlbC1jb21wb25lbnQvRGVmYXVsdFBhZ2VEb3QudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBUXpDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBMkIsQ0FBQyxFQUNyRCxNQUFNLEVBQ04sT0FBTyxFQUNQLEtBQUssRUFDTixFQUFFLEVBQUUsQ0FBQyxDQUNKLG9CQUFDLGFBQWEsSUFDWixNQUFNLEVBQUUsTUFBTSxFQUNkLE9BQU8sRUFBRSxPQUFPLGdCQUNKLGNBQWMsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUNyQyxDQUNILENBQUMifQ==
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { render, screen, fireEvent } from '@testing-library/react';
|
|
3
|
-
import '@testing-library/jest-dom';
|
|
4
|
-
import { CarouselComponent } from '../index';
|
|
5
|
-
describe('CarouselComponent', () => {
|
|
6
|
-
const mockItems = [
|
|
7
|
-
React.createElement("div", { key: "1" }, "Item 1"),
|
|
8
|
-
React.createElement("div", { key: "2" }, "Item 2"),
|
|
9
|
-
React.createElement("div", { key: "3" }, "Item 3"),
|
|
10
|
-
React.createElement("div", { key: "4" }, "Item 4")
|
|
11
|
-
];
|
|
12
|
-
beforeEach(() => {
|
|
13
|
-
Element.prototype.scrollTo = jest.fn();
|
|
14
|
-
});
|
|
15
|
-
it('renders all items', () => {
|
|
16
|
-
render(React.createElement(CarouselComponent, { items: mockItems }));
|
|
17
|
-
expect(screen.getByText('Item 1')).toBeInTheDocument();
|
|
18
|
-
expect(screen.getByText('Item 2')).toBeInTheDocument();
|
|
19
|
-
expect(screen.getByText('Item 3')).toBeInTheDocument();
|
|
20
|
-
expect(screen.getByText('Item 4')).toBeInTheDocument();
|
|
21
|
-
});
|
|
22
|
-
it('renders navigation arrows by default', () => {
|
|
23
|
-
render(React.createElement(CarouselComponent, { items: mockItems }));
|
|
24
|
-
const prevButton = screen.getByLabelText('Previous items');
|
|
25
|
-
const nextButton = screen.getByLabelText('Next items');
|
|
26
|
-
expect(prevButton).toBeInTheDocument();
|
|
27
|
-
expect(nextButton).toBeInTheDocument();
|
|
28
|
-
});
|
|
29
|
-
it('hides navigation arrows when showArrows is false', () => {
|
|
30
|
-
render(React.createElement(CarouselComponent, { items: mockItems, showArrows: false }));
|
|
31
|
-
const buttons = screen.getAllByRole('button');
|
|
32
|
-
expect(buttons.length).toBe(2);
|
|
33
|
-
});
|
|
34
|
-
it('renders pagination dots by default', () => {
|
|
35
|
-
render(React.createElement(CarouselComponent, { items: mockItems }));
|
|
36
|
-
const dots = screen
|
|
37
|
-
.getAllByRole('button')
|
|
38
|
-
.filter(btn => !btn.querySelector('svg'));
|
|
39
|
-
expect(dots.length).toBeGreaterThan(0);
|
|
40
|
-
});
|
|
41
|
-
it('hides pagination dots when showDots is false', () => {
|
|
42
|
-
render(React.createElement(CarouselComponent, { items: mockItems, showDots: false, showArrows: false }));
|
|
43
|
-
const buttons = screen.queryAllByRole('button');
|
|
44
|
-
expect(buttons.length).toBe(0);
|
|
45
|
-
});
|
|
46
|
-
it('applies custom className', () => {
|
|
47
|
-
const { container } = render(React.createElement(CarouselComponent, { items: mockItems, className: "custom-carousel" }));
|
|
48
|
-
expect(container.querySelector('.custom-carousel')).toBeInTheDocument();
|
|
49
|
-
});
|
|
50
|
-
it('handles itemsPerPage option', () => {
|
|
51
|
-
render(React.createElement(CarouselComponent, { items: mockItems, options: { itemsPerPage: 1 } }));
|
|
52
|
-
const dots = screen
|
|
53
|
-
.getAllByRole('button')
|
|
54
|
-
.filter(btn => !btn.querySelector('svg'));
|
|
55
|
-
expect(dots.length).toBe(4);
|
|
56
|
-
});
|
|
57
|
-
it('handles empty items array', () => {
|
|
58
|
-
const { container } = render(React.createElement(CarouselComponent, { items: [] }));
|
|
59
|
-
expect(container.querySelector('[role="button"]')).not.toBeInTheDocument();
|
|
60
|
-
});
|
|
61
|
-
it('handles single item', () => {
|
|
62
|
-
render(React.createElement(CarouselComponent, { items: [React.createElement("div", { key: "1" }, "Single Item")] }));
|
|
63
|
-
expect(screen.getByText('Single Item')).toBeInTheDocument();
|
|
64
|
-
});
|
|
65
|
-
it('calls onPageChange callback when provided', () => {
|
|
66
|
-
const onPageChange = jest.fn();
|
|
67
|
-
render(React.createElement(CarouselComponent, { items: mockItems, options: { onPageChange } }));
|
|
68
|
-
const nextButton = screen
|
|
69
|
-
.getAllByRole('button')
|
|
70
|
-
.find(btn => btn.querySelector('svg'));
|
|
71
|
-
if (nextButton) {
|
|
72
|
-
fireEvent.click(nextButton);
|
|
73
|
-
expect(onPageChange).toHaveBeenCalled();
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
it('renders with custom arrow component', () => {
|
|
77
|
-
const CustomArrow = ({ direction }) => (React.createElement("button", null,
|
|
78
|
-
"Custom ",
|
|
79
|
-
direction));
|
|
80
|
-
render(React.createElement(CarouselComponent, { items: mockItems, arrowComponent: CustomArrow }));
|
|
81
|
-
const customArrows = screen.getAllByText(/Custom/);
|
|
82
|
-
expect(customArrows.length).toBe(2);
|
|
83
|
-
expect(customArrows[0]).toBeInTheDocument();
|
|
84
|
-
});
|
|
85
|
-
it('renders with custom dot component', () => {
|
|
86
|
-
const CustomDot = ({ index }) => (React.createElement("button", null,
|
|
87
|
-
"Dot ",
|
|
88
|
-
index));
|
|
89
|
-
render(React.createElement(CarouselComponent, { items: mockItems, dotComponent: CustomDot }));
|
|
90
|
-
const customDots = screen.getAllByText(/Dot/);
|
|
91
|
-
expect(customDots.length).toBe(2);
|
|
92
|
-
expect(customDots[0]).toBeInTheDocument();
|
|
93
|
-
});
|
|
94
|
-
it('navigates to next page when next arrow is clicked', () => {
|
|
95
|
-
render(React.createElement(CarouselComponent, { items: mockItems, options: { itemsPerPage: 2 } }));
|
|
96
|
-
const nextButton = screen.getByLabelText('Next items');
|
|
97
|
-
fireEvent.click(nextButton);
|
|
98
|
-
expect(Element.prototype.scrollTo).toHaveBeenCalled();
|
|
99
|
-
});
|
|
100
|
-
it('navigates to previous page when previous arrow is clicked', () => {
|
|
101
|
-
render(React.createElement(CarouselComponent, { items: mockItems, options: { itemsPerPage: 2 } }));
|
|
102
|
-
const nextButton = screen.getByLabelText('Next items');
|
|
103
|
-
const prevButton = screen.getByLabelText('Previous items');
|
|
104
|
-
fireEvent.click(nextButton);
|
|
105
|
-
fireEvent.click(prevButton);
|
|
106
|
-
expect(Element.prototype.scrollTo).toHaveBeenCalled();
|
|
107
|
-
});
|
|
108
|
-
it('handles mouse drag events', () => {
|
|
109
|
-
const { container } = render(React.createElement(CarouselComponent, { items: mockItems, options: { itemsPerPage: 2 } }));
|
|
110
|
-
const carouselRow = container.querySelector('div > div > div');
|
|
111
|
-
if (carouselRow) {
|
|
112
|
-
fireEvent.mouseDown(carouselRow, { pageX: 100 });
|
|
113
|
-
fireEvent.mouseMove(carouselRow, { pageX: 50 });
|
|
114
|
-
fireEvent.mouseUp(carouselRow);
|
|
115
|
-
}
|
|
116
|
-
expect(carouselRow).toBeInTheDocument();
|
|
117
|
-
});
|
|
118
|
-
it('disables previous arrow on first page', () => {
|
|
119
|
-
render(React.createElement(CarouselComponent, { items: mockItems, options: { itemsPerPage: 2 } }));
|
|
120
|
-
const prevButton = screen.getByLabelText('Previous items');
|
|
121
|
-
expect(prevButton).toBeDisabled();
|
|
122
|
-
});
|
|
123
|
-
it('renders correct number of page dots', () => {
|
|
124
|
-
render(React.createElement(CarouselComponent, { items: mockItems, options: { itemsPerPage: 2 } }));
|
|
125
|
-
const dots = screen
|
|
126
|
-
.getAllByRole('button')
|
|
127
|
-
.filter(btn => !btn.querySelector('svg'));
|
|
128
|
-
expect(dots.length).toBe(2);
|
|
129
|
-
});
|
|
130
|
-
it('handles page dot click', () => {
|
|
131
|
-
render(React.createElement(CarouselComponent, { items: mockItems, options: { itemsPerPage: 2 } }));
|
|
132
|
-
const dots = screen
|
|
133
|
-
.getAllByRole('button')
|
|
134
|
-
.filter(btn => !btn.querySelector('svg'));
|
|
135
|
-
if (dots[1]) {
|
|
136
|
-
fireEvent.click(dots[1]);
|
|
137
|
-
expect(Element.prototype.scrollTo).toHaveBeenCalled();
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
it('hides dots when there is only one page', () => {
|
|
141
|
-
render(React.createElement(CarouselComponent, { items: [React.createElement("div", { key: "1" }, "Item 1")], options: { itemsPerPage: 2 } }));
|
|
142
|
-
const dots = screen
|
|
143
|
-
.queryAllByRole('button')
|
|
144
|
-
.filter(btn => !btn.querySelector('svg'));
|
|
145
|
-
expect(dots.length).toBe(0);
|
|
146
|
-
});
|
|
147
|
-
it('handles mouse leave event during drag', () => {
|
|
148
|
-
const { container } = render(React.createElement(CarouselComponent, { items: mockItems, options: { itemsPerPage: 2 } }));
|
|
149
|
-
const carouselRow = container.querySelector('div > div > div');
|
|
150
|
-
if (carouselRow) {
|
|
151
|
-
fireEvent.mouseDown(carouselRow, { pageX: 100 });
|
|
152
|
-
fireEvent.mouseMove(carouselRow, { pageX: 50 });
|
|
153
|
-
fireEvent.mouseLeave(carouselRow);
|
|
154
|
-
}
|
|
155
|
-
expect(carouselRow).toBeInTheDocument();
|
|
156
|
-
});
|
|
157
|
-
it('applies correct styles to carousel container', () => {
|
|
158
|
-
const { container } = render(React.createElement(CarouselComponent, { items: mockItems }));
|
|
159
|
-
const carouselContainer = container.firstChild;
|
|
160
|
-
expect(carouselContainer).toBeInTheDocument();
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2Fyb3VzZWxDb21wb25lbnQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Nhcm91c2VsLWNvbXBvbmVudC9fX3Rlc3RzX18vQ2Fyb3VzZWxDb21wb25lbnQudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTdDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDakMsTUFBTSxTQUFTLEdBQUc7UUFDaEIsNkJBQUssR0FBRyxFQUFDLEdBQUcsYUFBYTtRQUN6Qiw2QkFBSyxHQUFHLEVBQUMsR0FBRyxhQUFhO1FBQ3pCLDZCQUFLLEdBQUcsRUFBQyxHQUFHLGFBQWE7UUFDekIsNkJBQUssR0FBRyxFQUFDLEdBQUcsYUFBYTtLQUMxQixDQUFDO0lBRUYsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7UUFDM0IsTUFBTSxDQUFDLG9CQUFDLGlCQUFpQixJQUFDLEtBQUssRUFBRSxTQUFTLEdBQUksQ0FBQyxDQUFDO1FBRWhELE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN2RCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdkQs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
|