@times-components/ts-components 1.145.1-76ee0965069e2a17bc1f8dcf02d24e8fefd6869a.0 → 1.145.1-7e7a12feaf05c514789e802bf49cadca92e6a2b9.10
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.js +146 -0
- package/dist/components/carousel-component/CarouselItem.d.ts +3 -0
- package/dist/components/carousel-component/CarouselItem.js +11 -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/{opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.d.ts → carousel-component/__tests__/CarouselComponent.test.d.ts} +0 -1
- 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 +175 -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 +27 -0
- package/dist/components/carousel-component/styles.js +169 -0
- package/dist/components/carousel-component/types.d.ts +53 -0
- package/dist/components/carousel-component/types.js +2 -0
- package/dist/components/opta/football/opta-match-stats/shared/styles.js +1 -8
- package/dist/components/trip-cards/SkeletonCard.d.ts +6 -0
- package/dist/components/trip-cards/SkeletonCard.js +21 -0
- package/dist/components/trip-cards/TripCard.d.ts +3 -0
- package/dist/components/trip-cards/TripCard.js +49 -0
- package/dist/components/trip-cards/TripCards.stories.d.ts +1 -0
- package/dist/components/trip-cards/TripCards.stories.js +189 -0
- package/dist/components/trip-cards/TripCardsLayout.d.ts +3 -0
- package/dist/components/trip-cards/TripCardsLayout.js +37 -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 +95 -0
- package/dist/components/trip-cards/__tests__/TripCardsLayout.test.d.ts +1 -0
- package/dist/components/trip-cards/__tests__/TripCardsLayout.test.js +277 -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 +216 -0
- package/dist/components/trip-cards/__tests__/index.test.d.ts +1 -0
- package/dist/components/trip-cards/__tests__/index.test.js +433 -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 +4 -0
- package/dist/components/trip-cards/helpers.js +115 -0
- package/dist/components/trip-cards/index.d.ts +4 -0
- package/dist/components/trip-cards/index.js +70 -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 +38 -0
- package/dist/components/trip-cards/styles.js +401 -0
- package/dist/components/trip-cards/types.d.ts +119 -0
- package/dist/components/trip-cards/types.js +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -4
- 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 +25 -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 +231 -0
- package/src/components/carousel-component/index.tsx +92 -0
- package/src/components/carousel-component/styles.ts +185 -0
- package/src/components/carousel-component/types.ts +62 -0
- 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/shared/styles.ts +0 -8
- package/src/components/opta/football/opta-match-stats/stats-graphs/__tests__/__snapshots__/OptaMatchStatsGraphs.test.tsx.snap +1 -1
- package/src/components/trip-cards/SkeletonCard.tsx +62 -0
- package/src/components/trip-cards/TripCard.tsx +143 -0
- package/src/components/trip-cards/TripCards.stories.tsx +254 -0
- package/src/components/trip-cards/TripCardsLayout.tsx +108 -0
- package/src/components/trip-cards/__tests__/SkeletonCard.test.tsx +169 -0
- package/src/components/trip-cards/__tests__/TripCard.test.tsx +120 -0
- package/src/components/trip-cards/__tests__/TripCardsLayout.test.tsx +532 -0
- package/src/components/trip-cards/__tests__/assets.test.tsx +206 -0
- package/src/components/trip-cards/__tests__/helpers.test.ts +266 -0
- package/src/components/trip-cards/__tests__/index.test.tsx +495 -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 +150 -0
- package/src/components/trip-cards/index.tsx +119 -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 +446 -0
- package/src/components/trip-cards/types.ts +128 -0
- package/src/index.ts +2 -3
- package/dist/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.d.ts +0 -10
- package/dist/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.js +0 -69
- package/dist/components/opta/football/opta-match-stats/matchday-live/MobileWidget.d.ts +0 -12
- package/dist/components/opta/football/opta-match-stats/matchday-live/MobileWidget.js +0 -90
- package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.d.ts +0 -12
- package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.js +0 -10
- package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.js +0 -24
- package/dist/components/opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.js +0 -48
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.d.ts +0 -1
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.js +0 -19
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.d.ts +0 -12
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.js +0 -67
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.d.ts +0 -6
- package/dist/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.js +0 -714
- package/src/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.tsx +0 -108
- package/src/components/opta/football/opta-match-stats/matchday-live/MobileWidget.tsx +0 -158
- package/src/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.tsx +0 -38
- package/src/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.tsx +0 -23
- package/src/components/opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.tsx +0 -61
- package/src/components/opta/football/opta-match-stats/matchday-live/__tests__/__snapshots__/OptaMatchStatsMatchdayLive.test.tsx.snap +0 -61
- package/src/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.tsx +0 -19
- package/src/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.tsx +0 -81
- package/src/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.tsx +0 -745
- /package/dist/components/{opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.d.ts → carousel-component/CarouselComponent.stories.d.ts} +0 -0
|
@@ -0,0 +1,146 @@
|
|
|
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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
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ItemContainer } from './styles';
|
|
3
|
+
export const CarouselItem = ({ children, widthItemConfig = {
|
|
4
|
+
mobile: '90%',
|
|
5
|
+
tablet: '70%',
|
|
6
|
+
desktop: 'calc(50% - 10px)',
|
|
7
|
+
xl: 'calc(50% - 10px)'
|
|
8
|
+
}, maxWidthItemConfig, className }) => {
|
|
9
|
+
return (React.createElement(ItemContainer, { widthItemConfig: widthItemConfig, maxWidthItemConfig: maxWidthItemConfig, className: className }, children));
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2Fyb3VzZWxJdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY2Fyb3VzZWwtY29tcG9uZW50L0Nhcm91c2VsSXRlbS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHekMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFnQyxDQUFDLEVBQ3hELFFBQVEsRUFDUixlQUFlLEdBQUc7SUFDaEIsTUFBTSxFQUFFLEtBQUs7SUFDYixNQUFNLEVBQUUsS0FBSztJQUNiLE9BQU8sRUFBRSxrQkFBa0I7SUFDM0IsRUFBRSxFQUFFLGtCQUFrQjtDQUN2QixFQUNELGtCQUFrQixFQUNsQixTQUFTLEVBQ1YsRUFBRSxFQUFFO0lBQ0gsT0FBTyxDQUNMLG9CQUFDLGFBQWEsSUFDWixlQUFlLEVBQUUsZUFBZSxFQUNoQyxrQkFBa0IsRUFBRSxrQkFBa0IsRUFDdEMsU0FBUyxFQUFFLFNBQVMsSUFFbkIsUUFBUSxDQUNLLENBQ2pCLENBQUM7QUFDSixDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
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==
|
|
@@ -0,0 +1,4 @@
|
|
|
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==
|
|
@@ -0,0 +1,163 @@
|
|
|
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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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
|
+
import '@testing-library/jest-dom';
|
|
4
|
+
import { CarouselItem } from '../CarouselItem';
|
|
5
|
+
describe('CarouselItem', () => {
|
|
6
|
+
it('renders children correctly', () => {
|
|
7
|
+
render(React.createElement(CarouselItem, null,
|
|
8
|
+
React.createElement("div", null, "Test Content")));
|
|
9
|
+
expect(screen.getByText('Test Content')).toBeInTheDocument();
|
|
10
|
+
});
|
|
11
|
+
it('applies custom className', () => {
|
|
12
|
+
const { container } = render(React.createElement(CarouselItem, { className: "custom-class" },
|
|
13
|
+
React.createElement("div", null, "Test Content")));
|
|
14
|
+
expect(container.firstChild).toHaveClass('custom-class');
|
|
15
|
+
});
|
|
16
|
+
it('uses default widthConfig when not provided', () => {
|
|
17
|
+
const { container } = render(React.createElement(CarouselItem, null,
|
|
18
|
+
React.createElement("div", null, "Test Content")));
|
|
19
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
20
|
+
});
|
|
21
|
+
it('accepts custom widthConfig', () => {
|
|
22
|
+
render(React.createElement(CarouselItem, { widthItemConfig: {
|
|
23
|
+
xs: '70%',
|
|
24
|
+
mobile: '90%',
|
|
25
|
+
tablet: '45%',
|
|
26
|
+
desktop: '30%',
|
|
27
|
+
xl: '25%'
|
|
28
|
+
} },
|
|
29
|
+
React.createElement("div", null, "Test Content")));
|
|
30
|
+
expect(screen.getByText('Test Content')).toBeInTheDocument();
|
|
31
|
+
});
|
|
32
|
+
it('accepts partial widthConfig', () => {
|
|
33
|
+
render(React.createElement(CarouselItem, { widthItemConfig: {
|
|
34
|
+
mobile: '80%',
|
|
35
|
+
desktop: '40%'
|
|
36
|
+
} },
|
|
37
|
+
React.createElement("div", null, "Test Content")));
|
|
38
|
+
expect(screen.getByText('Test Content')).toBeInTheDocument();
|
|
39
|
+
});
|
|
40
|
+
it('renders multiple children correctly', () => {
|
|
41
|
+
render(React.createElement(CarouselItem, null,
|
|
42
|
+
React.createElement("div", null, "Child 1"),
|
|
43
|
+
React.createElement("div", null, "Child 2"),
|
|
44
|
+
React.createElement("div", null, "Child 3")));
|
|
45
|
+
expect(screen.getByText('Child 1')).toBeInTheDocument();
|
|
46
|
+
expect(screen.getByText('Child 2')).toBeInTheDocument();
|
|
47
|
+
expect(screen.getByText('Child 3')).toBeInTheDocument();
|
|
48
|
+
});
|
|
49
|
+
it('handles complex child components', () => {
|
|
50
|
+
const ComplexChild = () => (React.createElement("div", null,
|
|
51
|
+
React.createElement("h1", null, "Title"),
|
|
52
|
+
React.createElement("p", null, "Description"),
|
|
53
|
+
React.createElement("button", null, "Action")));
|
|
54
|
+
render(React.createElement(CarouselItem, null,
|
|
55
|
+
React.createElement(ComplexChild, null)));
|
|
56
|
+
expect(screen.getByText('Title')).toBeInTheDocument();
|
|
57
|
+
expect(screen.getByText('Description')).toBeInTheDocument();
|
|
58
|
+
expect(screen.getByText('Action')).toBeInTheDocument();
|
|
59
|
+
});
|
|
60
|
+
it('applies className along with widthConfig', () => {
|
|
61
|
+
const { container } = render(React.createElement(CarouselItem, { className: "custom-item", widthItemConfig: {
|
|
62
|
+
mobile: '90%',
|
|
63
|
+
desktop: '45%'
|
|
64
|
+
} },
|
|
65
|
+
React.createElement("div", null, "Test Content")));
|
|
66
|
+
expect(container.firstChild).toHaveClass('custom-item');
|
|
67
|
+
expect(screen.getByText('Test Content')).toBeInTheDocument();
|
|
68
|
+
});
|
|
69
|
+
it('renders with no props except children', () => {
|
|
70
|
+
render(React.createElement(CarouselItem, null,
|
|
71
|
+
React.createElement("div", null, "Minimal Content")));
|
|
72
|
+
expect(screen.getByText('Minimal Content')).toBeInTheDocument();
|
|
73
|
+
});
|
|
74
|
+
it('handles empty widthConfig object', () => {
|
|
75
|
+
render(React.createElement(CarouselItem, { widthItemConfig: {} },
|
|
76
|
+
React.createElement("div", null, "Test Content")));
|
|
77
|
+
expect(screen.getByText('Test Content')).toBeInTheDocument();
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2Fyb3VzZWxJdGVtLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jYXJvdXNlbC1jb21wb25lbnQvX190ZXN0c19fL0Nhcm91c2VsSXRlbS50ZXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtJQUM1QixFQUFFLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO1FBQ3BDLE1BQU0sQ0FDSixvQkFBQyxZQUFZO1lBQ1gsZ0RBQXVCLENBQ1YsQ0FDaEIsQ0FBQztRQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMvRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7UUFDbEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FDMUIsb0JBQUMsWUFBWSxJQUFDLFNBQVMsRUFBQyxjQUFjO1lBQ3BDLGdEQUF1QixDQUNWLENBQ2hCLENBQUM7UUFFRixNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7UUFDcEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FDMUIsb0JBQUMsWUFBWTtZQUNYLGdEQUF1QixDQUNWLENBQ2hCLENBQUM7UUFFRixNQUFNLENB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render, screen, fireEvent } from '@testing-library/react';
|
|
3
|
+
import '@testing-library/jest-dom';
|
|
4
|
+
import { DefaultNavigationArrow } from '../DefaultNavigationArrow';
|
|
5
|
+
describe('DefaultNavigationArrow', () => {
|
|
6
|
+
const mockOnClick = jest.fn();
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
mockOnClick.mockClear();
|
|
9
|
+
});
|
|
10
|
+
it('renders left arrow', () => {
|
|
11
|
+
render(React.createElement(DefaultNavigationArrow, { direction: "left", onClick: mockOnClick, disabled: false }));
|
|
12
|
+
const button = screen.getByLabelText('Previous items');
|
|
13
|
+
expect(button).toBeInTheDocument();
|
|
14
|
+
});
|
|
15
|
+
it('renders right arrow', () => {
|
|
16
|
+
render(React.createElement(DefaultNavigationArrow, { direction: "right", onClick: mockOnClick, disabled: false }));
|
|
17
|
+
const button = screen.getByLabelText('Next items');
|
|
18
|
+
expect(button).toBeInTheDocument();
|
|
19
|
+
});
|
|
20
|
+
it('calls onClick when clicked', () => {
|
|
21
|
+
render(React.createElement(DefaultNavigationArrow, { direction: "left", onClick: mockOnClick, disabled: false }));
|
|
22
|
+
const button = screen.getByLabelText('Previous items');
|
|
23
|
+
fireEvent.click(button);
|
|
24
|
+
expect(mockOnClick).toHaveBeenCalledTimes(1);
|
|
25
|
+
});
|
|
26
|
+
it('does not call onClick when disabled', () => {
|
|
27
|
+
render(React.createElement(DefaultNavigationArrow, { direction: "left", onClick: mockOnClick, disabled: true }));
|
|
28
|
+
const button = screen.getByLabelText('Previous items');
|
|
29
|
+
fireEvent.click(button);
|
|
30
|
+
expect(mockOnClick).not.toHaveBeenCalled();
|
|
31
|
+
});
|
|
32
|
+
it('applies disabled styling when disabled', () => {
|
|
33
|
+
render(React.createElement(DefaultNavigationArrow, { direction: "left", onClick: mockOnClick, disabled: true }));
|
|
34
|
+
const button = screen.getByLabelText('Previous items');
|
|
35
|
+
expect(button).toHaveAttribute('disabled');
|
|
36
|
+
});
|
|
37
|
+
it('renders SVG icon', () => {
|
|
38
|
+
const { container } = render(React.createElement(DefaultNavigationArrow, { direction: "left", onClick: mockOnClick, disabled: false }));
|
|
39
|
+
const svg = container.querySelector('svg');
|
|
40
|
+
expect(svg).toBeInTheDocument();
|
|
41
|
+
});
|
|
42
|
+
it('has correct aria-label for accessibility', () => {
|
|
43
|
+
const { rerender } = render(React.createElement(DefaultNavigationArrow, { direction: "left", onClick: mockOnClick, disabled: false }));
|
|
44
|
+
expect(screen.getByLabelText('Previous items')).toBeInTheDocument();
|
|
45
|
+
rerender(React.createElement(DefaultNavigationArrow, { direction: "right", onClick: mockOnClick, disabled: false }));
|
|
46
|
+
expect(screen.getByLabelText('Next items')).toBeInTheDocument();
|
|
47
|
+
});
|
|
48
|
+
it('renders as a button element', () => {
|
|
49
|
+
render(React.createElement(DefaultNavigationArrow, { direction: "left", onClick: mockOnClick, disabled: false }));
|
|
50
|
+
const button = screen.getByLabelText('Previous items');
|
|
51
|
+
expect(button.tagName).toBe('BUTTON');
|
|
52
|
+
});
|
|
53
|
+
it('applies correct styles based on direction', () => {
|
|
54
|
+
const { container, rerender } = render(React.createElement(DefaultNavigationArrow, { direction: "left", onClick: mockOnClick, disabled: false }));
|
|
55
|
+
let button = container.querySelector('button');
|
|
56
|
+
expect(button).toBeInTheDocument();
|
|
57
|
+
rerender(React.createElement(DefaultNavigationArrow, { direction: "right", onClick: mockOnClick, disabled: false }));
|
|
58
|
+
button = container.querySelector('button');
|
|
59
|
+
expect(button).toBeInTheDocument();
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdE5hdmlnYXRpb25BcnJvdy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY2Fyb3VzZWwtY29tcG9uZW50L19fdGVzdHNfXy9EZWZhdWx0TmF2aWdhdGlvbkFycm93LnRlc3QudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRW5FLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7SUFDdEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBRTlCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO1FBQzVCLE1BQU0sQ0FDSixvQkFBQyxzQkFBc0IsSUFDckIsU0FBUyxFQUFDLE1BQU0sRUFDaEIsT0FBTyxFQUFFLFdBQVcsRUFDcEIsUUFBUSxFQUFFLEtBQUssR0FDZixDQUNILENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO1FBQzdCLE1BQU0sQ0FDSixvQkFBQyxzQkFBc0IsSUFDckIsU0FBUyxFQUFDLE9BQU8sRUFDakIsT0FBTyxFQUFFLFdBQVcsRUFDcEIs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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|