@times-components/ts-components 1.146.2-0f9388fe36c532b90db3f35d17847fc17a611f1e.44 → 1.146.2-784617dc4a33959b8795da1d7f425c9929322fae.24

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.
Files changed (138) hide show
  1. package/dist/components/travel-mini-cta/__tests__/index.test.js +262 -0
  2. package/dist/components/travel-mini-cta/index.d.ts +10 -0
  3. package/dist/components/travel-mini-cta/index.js +93 -0
  4. package/dist/components/travel-mini-cta/styles.d.ts +42 -0
  5. package/dist/components/travel-mini-cta/styles.js +268 -0
  6. package/dist/components/travel-mini-cta/travel-mini-cta.stories.js +8 -0
  7. package/dist/components/travel-mini-cta/types.d.ts +10 -0
  8. package/dist/components/{trip-cards → travel-mini-cta}/types.js +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +2 -2
  11. package/dist/utils/applyDarkMode.d.ts +1 -0
  12. package/dist/utils/applyDarkMode.js +12 -0
  13. package/dist/utils/getMediaQuery.d.ts +11 -0
  14. package/dist/utils/getMediaQuery.js +19 -0
  15. package/dist/utils/index.d.ts +2 -0
  16. package/dist/utils/index.js +3 -0
  17. package/package.json +3 -3
  18. package/rnw.js +1 -1
  19. package/src/components/travel-mini-cta/__tests__/__snapshots__/index.test.tsx.snap +211 -0
  20. package/src/components/travel-mini-cta/__tests__/index.test.tsx +330 -0
  21. package/src/components/travel-mini-cta/index.tsx +190 -0
  22. package/src/components/travel-mini-cta/styles.ts +331 -0
  23. package/src/components/travel-mini-cta/travel-mini-cta.stories.tsx +23 -0
  24. package/src/components/travel-mini-cta/types.ts +10 -0
  25. package/src/index.ts +1 -2
  26. package/src/utils/applyDarkMode.ts +12 -0
  27. package/src/utils/getMediaQuery.ts +25 -0
  28. package/src/utils/index.ts +2 -0
  29. package/dist/components/carousel-component/CarouselComponent.stories.js +0 -146
  30. package/dist/components/carousel-component/CarouselItem.d.ts +0 -3
  31. package/dist/components/carousel-component/CarouselItem.js +0 -12
  32. package/dist/components/carousel-component/DefaultNavigationArrow.d.ts +0 -8
  33. package/dist/components/carousel-component/DefaultNavigationArrow.js +0 -6
  34. package/dist/components/carousel-component/DefaultPageDot.d.ts +0 -8
  35. package/dist/components/carousel-component/DefaultPageDot.js +0 -4
  36. package/dist/components/carousel-component/__tests__/CarouselComponent.test.d.ts +0 -1
  37. package/dist/components/carousel-component/__tests__/CarouselComponent.test.js +0 -163
  38. package/dist/components/carousel-component/__tests__/CarouselItem.test.d.ts +0 -1
  39. package/dist/components/carousel-component/__tests__/CarouselItem.test.js +0 -80
  40. package/dist/components/carousel-component/__tests__/DefaultNavigationArrow.test.d.ts +0 -1
  41. package/dist/components/carousel-component/__tests__/DefaultNavigationArrow.test.js +0 -62
  42. package/dist/components/carousel-component/__tests__/DefaultPageDot.test.d.ts +0 -1
  43. package/dist/components/carousel-component/__tests__/DefaultPageDot.test.js +0 -68
  44. package/dist/components/carousel-component/hooks/__tests__/useCarousel.test.d.ts +0 -1
  45. package/dist/components/carousel-component/hooks/__tests__/useCarousel.test.js +0 -459
  46. package/dist/components/carousel-component/hooks/useCarousel.d.ts +0 -2
  47. package/dist/components/carousel-component/hooks/useCarousel.js +0 -167
  48. package/dist/components/carousel-component/index.d.ts +0 -4
  49. package/dist/components/carousel-component/index.js +0 -20
  50. package/dist/components/carousel-component/styles.d.ts +0 -28
  51. package/dist/components/carousel-component/styles.js +0 -172
  52. package/dist/components/carousel-component/types.d.ts +0 -53
  53. package/dist/components/carousel-component/types.js +0 -2
  54. package/dist/components/trip-cards/SkeletonCard.d.ts +0 -7
  55. package/dist/components/trip-cards/SkeletonCard.js +0 -22
  56. package/dist/components/trip-cards/TripCard.d.ts +0 -3
  57. package/dist/components/trip-cards/TripCard.js +0 -49
  58. package/dist/components/trip-cards/TripCards.stories.d.ts +0 -1
  59. package/dist/components/trip-cards/TripCards.stories.js +0 -159
  60. package/dist/components/trip-cards/TripCardsLayout.d.ts +0 -3
  61. package/dist/components/trip-cards/TripCardsLayout.js +0 -56
  62. package/dist/components/trip-cards/__tests__/SkeletonCard.test.d.ts +0 -1
  63. package/dist/components/trip-cards/__tests__/SkeletonCard.test.js +0 -139
  64. package/dist/components/trip-cards/__tests__/TripCard.test.d.ts +0 -1
  65. package/dist/components/trip-cards/__tests__/TripCard.test.js +0 -95
  66. package/dist/components/trip-cards/__tests__/TripCardsLayout.test.d.ts +0 -1
  67. package/dist/components/trip-cards/__tests__/TripCardsLayout.test.js +0 -314
  68. package/dist/components/trip-cards/__tests__/assets.test.d.ts +0 -1
  69. package/dist/components/trip-cards/__tests__/assets.test.js +0 -165
  70. package/dist/components/trip-cards/__tests__/helpers.test.d.ts +0 -1
  71. package/dist/components/trip-cards/__tests__/helpers.test.js +0 -220
  72. package/dist/components/trip-cards/__tests__/index.test.js +0 -478
  73. package/dist/components/trip-cards/__tests__/mockData.test.d.ts +0 -1
  74. package/dist/components/trip-cards/__tests__/mockData.test.js +0 -57
  75. package/dist/components/trip-cards/__tests__/skeletonStyles.test.d.ts +0 -1
  76. package/dist/components/trip-cards/__tests__/skeletonStyles.test.js +0 -194
  77. package/dist/components/trip-cards/assets/BoatIcon.d.ts +0 -1
  78. package/dist/components/trip-cards/assets/BoatIcon.js +0 -4
  79. package/dist/components/trip-cards/assets/CalendarIcon.d.ts +0 -1
  80. package/dist/components/trip-cards/assets/CalendarIcon.js +0 -4
  81. package/dist/components/trip-cards/assets/ChevronRightIcon.d.ts +0 -1
  82. package/dist/components/trip-cards/assets/ChevronRightIcon.js +0 -4
  83. package/dist/components/trip-cards/assets/LocationIcon.d.ts +0 -1
  84. package/dist/components/trip-cards/assets/LocationIcon.js +0 -4
  85. package/dist/components/trip-cards/assets/MoonIcon.d.ts +0 -1
  86. package/dist/components/trip-cards/assets/MoonIcon.js +0 -4
  87. package/dist/components/trip-cards/assets/index.d.ts +0 -6
  88. package/dist/components/trip-cards/assets/index.js +0 -7
  89. package/dist/components/trip-cards/helpers.d.ts +0 -11
  90. package/dist/components/trip-cards/helpers.js +0 -138
  91. package/dist/components/trip-cards/index.d.ts +0 -4
  92. package/dist/components/trip-cards/index.js +0 -68
  93. package/dist/components/trip-cards/mockData.d.ts +0 -3
  94. package/dist/components/trip-cards/mockData.js +0 -317
  95. package/dist/components/trip-cards/skeletonStyles.d.ts +0 -9
  96. package/dist/components/trip-cards/skeletonStyles.js +0 -37
  97. package/dist/components/trip-cards/styles.d.ts +0 -43
  98. package/dist/components/trip-cards/styles.js +0 -404
  99. package/dist/components/trip-cards/types.d.ts +0 -119
  100. package/src/components/carousel-component/CarouselComponent.stories.tsx +0 -220
  101. package/src/components/carousel-component/CarouselItem.tsx +0 -26
  102. package/src/components/carousel-component/DefaultNavigationArrow.tsx +0 -37
  103. package/src/components/carousel-component/DefaultPageDot.tsx +0 -20
  104. package/src/components/carousel-component/__tests__/CarouselComponent.test.tsx +0 -259
  105. package/src/components/carousel-component/__tests__/CarouselItem.test.tsx +0 -140
  106. package/src/components/carousel-component/__tests__/DefaultNavigationArrow.test.tsx +0 -153
  107. package/src/components/carousel-component/__tests__/DefaultPageDot.test.tsx +0 -105
  108. package/src/components/carousel-component/hooks/__tests__/useCarousel.test.ts +0 -625
  109. package/src/components/carousel-component/hooks/useCarousel.ts +0 -229
  110. package/src/components/carousel-component/index.tsx +0 -92
  111. package/src/components/carousel-component/styles.ts +0 -188
  112. package/src/components/carousel-component/types.ts +0 -62
  113. package/src/components/trip-cards/SkeletonCard.tsx +0 -64
  114. package/src/components/trip-cards/TripCard.tsx +0 -140
  115. package/src/components/trip-cards/TripCards.stories.tsx +0 -224
  116. package/src/components/trip-cards/TripCardsLayout.tsx +0 -145
  117. package/src/components/trip-cards/__tests__/SkeletonCard.test.tsx +0 -169
  118. package/src/components/trip-cards/__tests__/TripCard.test.tsx +0 -120
  119. package/src/components/trip-cards/__tests__/TripCardsLayout.test.tsx +0 -583
  120. package/src/components/trip-cards/__tests__/assets.test.tsx +0 -206
  121. package/src/components/trip-cards/__tests__/helpers.test.ts +0 -272
  122. package/src/components/trip-cards/__tests__/index.test.tsx +0 -550
  123. package/src/components/trip-cards/__tests__/mockData.test.ts +0 -67
  124. package/src/components/trip-cards/__tests__/skeletonStyles.test.tsx +0 -256
  125. package/src/components/trip-cards/assets/BoatIcon.tsx +0 -17
  126. package/src/components/trip-cards/assets/CalendarIcon.tsx +0 -17
  127. package/src/components/trip-cards/assets/ChevronRightIcon.tsx +0 -20
  128. package/src/components/trip-cards/assets/LocationIcon.tsx +0 -17
  129. package/src/components/trip-cards/assets/MoonIcon.tsx +0 -17
  130. package/src/components/trip-cards/assets/index.ts +0 -7
  131. package/src/components/trip-cards/helpers.ts +0 -176
  132. package/src/components/trip-cards/index.tsx +0 -119
  133. package/src/components/trip-cards/mockData.ts +0 -345
  134. package/src/components/trip-cards/skeletonStyles.ts +0 -46
  135. package/src/components/trip-cards/styles.ts +0 -450
  136. package/src/components/trip-cards/types.ts +0 -128
  137. /package/dist/components/{trip-cards → travel-mini-cta}/__tests__/index.test.d.ts +0 -0
  138. /package/dist/components/{carousel-component/CarouselComponent.stories.d.ts → travel-mini-cta/travel-mini-cta.stories.d.ts} +0 -0
@@ -1,314 +0,0 @@
1
- import React from 'react';
2
- import { render, screen } from '@testing-library/react';
3
- import '@testing-library/jest-dom';
4
- import { TripCardsLayout } from '../TripCardsLayout';
5
- const mockElement = {
6
- class: 'trip-cards',
7
- tripcards: btoa(JSON.stringify([1, 2])),
8
- title: 'Test Cruises',
9
- titleurl: 'https://example.com',
10
- description: 'Test Description'
11
- };
12
- const MockCard = ({ card }) => (React.createElement("div", { "data-testid": "mock-card" }, card ? card.headline || 'Mock Card' : 'Mock Card'));
13
- // Mock ResizeObserver
14
- global.ResizeObserver = class ResizeObserver {
15
- observe() {
16
- // Mock implementation
17
- }
18
- unobserve() {
19
- // Mock implementation
20
- }
21
- disconnect() {
22
- // Mock implementation
23
- }
24
- };
25
- describe('TripCardsLayout', () => {
26
- beforeEach(() => {
27
- Element.prototype.scrollTo = jest.fn();
28
- // Mock matchMedia for each test
29
- Object.defineProperty(window, 'matchMedia', {
30
- writable: true,
31
- configurable: true,
32
- value: jest.fn().mockImplementation(query => ({
33
- matches: false,
34
- media: query,
35
- onchange: null,
36
- addListener: jest.fn(),
37
- removeListener: jest.fn(),
38
- addEventListener: jest.fn(),
39
- removeEventListener: jest.fn(),
40
- dispatchEvent: jest.fn()
41
- }))
42
- });
43
- });
44
- describe('Rendering', () => {
45
- it('renders with title and description', () => {
46
- const items = [
47
- { id: '1', data: undefined },
48
- { id: '2', data: undefined }
49
- ];
50
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
51
- expect(screen.getByText('Test Cruises')).toBeInTheDocument();
52
- expect(screen.getByText('Test Description')).toBeInTheDocument();
53
- });
54
- it('renders empty title when not provided', () => {
55
- const elementWithoutTitle = {
56
- ...mockElement,
57
- title: undefined
58
- };
59
- const items = [{ id: '1', data: undefined }];
60
- const { container } = render(React.createElement(TripCardsLayout, { element: elementWithoutTitle, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
61
- const title = container.querySelector('h2');
62
- expect(title).toBeInTheDocument();
63
- expect(title).toBeEmptyDOMElement();
64
- });
65
- it('renders empty description when not provided', () => {
66
- const elementWithoutDesc = {
67
- ...mockElement,
68
- description: undefined
69
- };
70
- const items = [{ id: '1', data: undefined }];
71
- const { container } = render(React.createElement(TripCardsLayout, { element: elementWithoutDesc, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
72
- const description = container.querySelector('p');
73
- expect(description).toBeInTheDocument();
74
- expect(description).toBeEmptyDOMElement();
75
- });
76
- it('renders title link when provided', () => {
77
- const items = [{ id: '1', data: undefined }];
78
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
79
- const link = screen.getByTestId('trip-cards-title-link');
80
- expect(link).toHaveAttribute('href', 'https://example.com');
81
- expect(link).toHaveAttribute('target', '_blank');
82
- expect(link).toHaveAttribute('rel', 'noopener noreferrer');
83
- });
84
- it('renders two links when titleurl is provided', () => {
85
- const items = [{ id: '1', data: undefined }];
86
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
87
- const links = screen.getAllByRole('link');
88
- expect(links).toHaveLength(2);
89
- const titleLink = screen.getByTestId('trip-cards-title-link');
90
- const iconLink = screen.getByTestId('title-link');
91
- expect(titleLink).toHaveAttribute('href', 'https://example.com');
92
- expect(iconLink).toHaveAttribute('href', 'https://example.com');
93
- });
94
- it('does not render title link when not provided', () => {
95
- const elementWithoutLink = {
96
- ...mockElement,
97
- titleurl: undefined
98
- };
99
- const items = [{ id: '1', data: undefined }];
100
- render(React.createElement(TripCardsLayout, { element: elementWithoutLink, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
101
- const links = screen.queryAllByRole('link');
102
- expect(links.length).toBe(0);
103
- });
104
- it('renders ChevronRightIcon in title link', () => {
105
- const items = [{ id: '1', data: undefined }];
106
- const { container } = render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
107
- const svg = container.querySelector('svg');
108
- expect(svg).toBeInTheDocument();
109
- });
110
- });
111
- describe('Static Grid Layout', () => {
112
- it('renders static grid for exactly 2 items', () => {
113
- const items = [
114
- { id: '1', data: undefined },
115
- { id: '2', data: undefined }
116
- ];
117
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
118
- const staticGrid = screen.getByTestId('static-cards-grid');
119
- expect(staticGrid).toBeInTheDocument();
120
- });
121
- it('renders correct number of cards in static grid', () => {
122
- const items = [
123
- { id: '1', data: undefined },
124
- { id: '2', data: undefined }
125
- ];
126
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
127
- const cards = screen.getAllByTestId('mock-card');
128
- expect(cards.length).toBe(2);
129
- });
130
- it('passes correct props to CardComponent in static grid', () => {
131
- const mockData = {
132
- cruise_id: '1',
133
- image: 'test.jpg',
134
- headline: 'Test Cruise',
135
- date: 'Jan 2024',
136
- duration: '7 nights',
137
- route: 'Test Route',
138
- ship: 'Test Ship',
139
- price: '£1000',
140
- logo: 'logo.png',
141
- logo_url: 'https://example.com',
142
- cta_url: 'https://example.com',
143
- cta_text: 'View'
144
- };
145
- const items = [{ id: '1', data: mockData }, { id: '2', data: undefined }];
146
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
147
- expect(screen.getByText('Test Cruise')).toBeInTheDocument();
148
- });
149
- });
150
- describe('Carousel Layout', () => {
151
- it('renders carousel for more than 2 items', () => {
152
- const items = [
153
- { id: '1', data: undefined },
154
- { id: '2', data: undefined },
155
- { id: '3', data: undefined }
156
- ];
157
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
158
- const cards = screen.getAllByTestId('mock-card');
159
- expect(cards.length).toBe(3);
160
- });
161
- it('renders navigation arrows in carousel', () => {
162
- const items = [
163
- { id: '1', data: undefined },
164
- { id: '2', data: undefined },
165
- { id: '3', data: undefined }
166
- ];
167
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
168
- expect(screen.getByLabelText('Previous items')).toBeInTheDocument();
169
- expect(screen.getByLabelText('Next items')).toBeInTheDocument();
170
- });
171
- it('renders page dots in carousel', () => {
172
- const items = [
173
- { id: '1', data: undefined },
174
- { id: '2', data: undefined },
175
- { id: '3', data: undefined },
176
- { id: '4', data: undefined }
177
- ];
178
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
179
- expect(screen.getByLabelText('Previous items')).toBeInTheDocument();
180
- expect(screen.getByLabelText('Next items')).toBeInTheDocument();
181
- // With 4 items and 2 per page, we have 2 pages, so we should have 2 dot buttons
182
- const pageDots = screen.getAllByLabelText(/Go to page/i);
183
- expect(pageDots.length).toBe(2);
184
- });
185
- it('renders carousel for 1 item', () => {
186
- const items = [{ id: '1', data: undefined }];
187
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
188
- const cards = screen.getAllByTestId('mock-card');
189
- expect(cards.length).toBe(1);
190
- });
191
- it('wraps cards in CarouselItem with correct widthConfig', () => {
192
- const items = [
193
- { id: '1', data: undefined },
194
- { id: '2', data: undefined },
195
- { id: '3', data: undefined }
196
- ];
197
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
198
- // Verify carousel is rendering by checking for cards
199
- const cards = screen.getAllByTestId('mock-card');
200
- expect(cards.length).toBe(3);
201
- });
202
- });
203
- describe('Card Rendering', () => {
204
- it('renders each item with unique key', () => {
205
- const items = [
206
- { id: 'card-1', data: undefined },
207
- { id: 'card-2', data: undefined }
208
- ];
209
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
210
- const cards = screen.getAllByTestId('mock-card');
211
- expect(cards.length).toBe(2);
212
- });
213
- it('passes data to CardComponent', () => {
214
- const mockData = {
215
- cruise_id: '123',
216
- image: 'image.jpg',
217
- headline: 'Specific Cruise',
218
- date: 'Feb 2024',
219
- duration: '10 nights',
220
- route: 'Route A',
221
- ship: 'Ship X',
222
- price: '£2000',
223
- logo: 'logo.png',
224
- logo_url: 'https://example.com',
225
- cta_url: 'https://example.com',
226
- cta_text: 'Book'
227
- };
228
- const items = [
229
- { id: '1', data: mockData },
230
- { id: '2', data: undefined },
231
- { id: '3', data: undefined }
232
- ];
233
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
234
- expect(screen.getByText('Specific Cruise')).toBeInTheDocument();
235
- });
236
- it('handles empty items array', () => {
237
- const { container } = render(React.createElement(TripCardsLayout, { element: mockElement, items: [], CardComponent: MockCard, itemsPerPage: 2 }));
238
- expect(container.firstChild).toBeInTheDocument();
239
- const cards = screen.queryAllByTestId('mock-card');
240
- expect(cards.length).toBe(0);
241
- });
242
- });
243
- describe('Container Structure', () => {
244
- it('renders main container', () => {
245
- const items = [{ id: '1', data: undefined }];
246
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
247
- const mainContainer = screen.getByTestId('trip-cards-container');
248
- expect(mainContainer).toBeInTheDocument();
249
- });
250
- it('renders title section', () => {
251
- const items = [{ id: '1', data: undefined }];
252
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
253
- const titleSection = screen.getByTestId('title-section');
254
- expect(titleSection).toBeInTheDocument();
255
- });
256
- it('renders title bar with content', () => {
257
- const items = [{ id: '1', data: undefined }];
258
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
259
- const titleBar = screen.getByTestId('title-bar');
260
- const titleContent = screen.getByTestId('title-content');
261
- expect(titleBar).toBeInTheDocument();
262
- expect(titleContent).toBeInTheDocument();
263
- });
264
- });
265
- describe('ItemsPerPage', () => {
266
- it('respects itemsPerPage prop', () => {
267
- const items = Array.from({ length: 6 }, (_, i) => ({
268
- id: `${i}`,
269
- data: undefined
270
- }));
271
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 3 }));
272
- const cards = screen.getAllByTestId('mock-card');
273
- expect(cards.length).toBe(6);
274
- });
275
- it('handles itemsPerPage of 1', () => {
276
- const items = [
277
- { id: '1', data: undefined },
278
- { id: '2', data: undefined }
279
- ];
280
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 1 }));
281
- const cards = screen.getAllByTestId('mock-card');
282
- expect(cards.length).toBe(2);
283
- });
284
- });
285
- describe('Edge Cases', () => {
286
- it('handles large number of items', () => {
287
- const items = Array.from({ length: 50 }, (_, i) => ({
288
- id: `${i}`,
289
- data: undefined
290
- }));
291
- render(React.createElement(TripCardsLayout, { element: mockElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
292
- const cards = screen.getAllByTestId('mock-card');
293
- expect(cards.length).toBe(50);
294
- });
295
- it('handles empty title and description', () => {
296
- const emptyElement = {
297
- ...mockElement,
298
- title: '',
299
- description: ''
300
- };
301
- const items = [{ id: '1', data: undefined }];
302
- const { container } = render(React.createElement(TripCardsLayout, { element: emptyElement, items: items, CardComponent: MockCard, itemsPerPage: 2 }));
303
- const title = container.querySelector('h2');
304
- const description = container.querySelector('p');
305
- expect(title).toBeInTheDocument();
306
- expect(description).toBeInTheDocument();
307
- if (title && description) {
308
- expect(title.textContent).toBe('');
309
- expect(description.textContent).toBe('');
310
- }
311
- });
312
- });
313
- });
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJpcENhcmRzTGF5b3V0LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy90cmlwLWNhcmRzL19fdGVzdHNfXy9UcmlwQ2FyZHNMYXlvdXQudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTywyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHckQsTUFBTSxXQUFXLEdBQUc7SUFDbEIsS0FBSyxFQUFFLFlBQVk7SUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsS0FBSyxFQUFFLGNBQWM7SUFDckIsUUFBUSxFQUFFLHFCQUFxQjtJQUMvQixXQUFXLEVBQUUsa0JBQWtCO0NBQ2hDLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUE4QixFQUFFLEVBQUUsQ0FBQyxDQUN6RCw0Q0FBaUIsV0FBVyxJQUN6QixJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQzlDLENBQ1AsQ0FBQztBQUVGLHNCQUFzQjtBQUN0QixNQUFNLENBQUMsY0FBYyxHQUFHLE1BQU0sY0FBYztJQUNuQyxPQUFPO1FBQ1osc0JBQXNCO0lBQ3hCLENBQUM7SUFDTSxTQUFTO1FBQ2Qsc0JBQXNCO0lBQ3hCLENBQUM7SUFDTSxVQUFVO1FBQ2Ysc0JBQXNCO0lBQ3hCLENBQUM7Q0FDRixDQUFDO0FBRUYsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtJQUMvQixVQUFVLENBQUMsR0FBRyxF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
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom';
@@ -1,165 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import '@testing-library/jest-dom';
4
- import { BoatIcon, CalendarIcon, ChevronRightIcon, LocationIcon, MoonIcon } from '../assets';
5
- describe('Trip Cards Assets', () => {
6
- describe('BoatIcon', () => {
7
- it('renders correctly', () => {
8
- const { container } = render(React.createElement(BoatIcon, null));
9
- const svg = container.querySelector('svg');
10
- expect(svg).toBeInTheDocument();
11
- });
12
- it('has correct viewBox', () => {
13
- const { container } = render(React.createElement(BoatIcon, null));
14
- const svg = container.querySelector('svg');
15
- expect(svg).toHaveAttribute('viewBox');
16
- });
17
- it('accepts custom props', () => {
18
- const { container } = render(React.createElement(BoatIcon, { className: "custom-class" }));
19
- const svg = container.querySelector('svg');
20
- expect(svg).toHaveClass('custom-class');
21
- });
22
- it('has fill attribute', () => {
23
- const { container } = render(React.createElement(BoatIcon, null));
24
- const svg = container.querySelector('svg');
25
- expect(svg).toHaveAttribute('fill');
26
- });
27
- });
28
- describe('CalendarIcon', () => {
29
- it('renders correctly', () => {
30
- const { container } = render(React.createElement(CalendarIcon, null));
31
- const svg = container.querySelector('svg');
32
- expect(svg).toBeInTheDocument();
33
- });
34
- it('has correct viewBox', () => {
35
- const { container } = render(React.createElement(CalendarIcon, null));
36
- const svg = container.querySelector('svg');
37
- expect(svg).toHaveAttribute('viewBox');
38
- });
39
- it('accepts custom props', () => {
40
- const { container } = render(React.createElement(CalendarIcon, { "data-testid": "calendar" }));
41
- const svg = container.querySelector('svg');
42
- expect(svg).toHaveAttribute('data-testid', 'calendar');
43
- });
44
- it('renders path elements', () => {
45
- const { container } = render(React.createElement(CalendarIcon, null));
46
- const paths = container.querySelectorAll('path');
47
- expect(paths.length).toBeGreaterThan(0);
48
- });
49
- });
50
- describe('ChevronRightIcon', () => {
51
- it('renders correctly', () => {
52
- const { container } = render(React.createElement(ChevronRightIcon, null));
53
- const svg = container.querySelector('svg');
54
- expect(svg).toBeInTheDocument();
55
- });
56
- it('has correct dimensions', () => {
57
- const { container } = render(React.createElement(ChevronRightIcon, null));
58
- const svg = container.querySelector('svg');
59
- expect(svg).toHaveAttribute('width', '16');
60
- expect(svg).toHaveAttribute('height', '16');
61
- });
62
- it('has correct viewBox', () => {
63
- const { container } = render(React.createElement(ChevronRightIcon, null));
64
- const svg = container.querySelector('svg');
65
- expect(svg).toHaveAttribute('viewBox', '0 0 16 16');
66
- });
67
- it('renders with currentColor stroke', () => {
68
- const { container } = render(React.createElement(ChevronRightIcon, null));
69
- const path = container.querySelector('path');
70
- expect(path).toHaveAttribute('stroke', 'currentColor');
71
- });
72
- it('accepts custom props', () => {
73
- const { container } = render(React.createElement(ChevronRightIcon, { style: { color: 'red' } }));
74
- const svg = container.querySelector('svg');
75
- expect(svg).toHaveStyle({ color: 'red' });
76
- });
77
- });
78
- describe('LocationIcon', () => {
79
- it('renders correctly', () => {
80
- const { container } = render(React.createElement(LocationIcon, null));
81
- const svg = container.querySelector('svg');
82
- expect(svg).toBeInTheDocument();
83
- });
84
- it('has correct viewBox', () => {
85
- const { container } = render(React.createElement(LocationIcon, null));
86
- const svg = container.querySelector('svg');
87
- expect(svg).toHaveAttribute('viewBox');
88
- });
89
- it('accepts custom props', () => {
90
- const { container } = render(React.createElement(LocationIcon, { "aria-label": "location" }));
91
- const svg = container.querySelector('svg');
92
- expect(svg).toHaveAttribute('aria-label', 'location');
93
- });
94
- it('renders path elements', () => {
95
- const { container } = render(React.createElement(LocationIcon, null));
96
- const path = container.querySelector('path');
97
- expect(path).toBeInTheDocument();
98
- });
99
- });
100
- describe('MoonIcon', () => {
101
- it('renders correctly', () => {
102
- const { container } = render(React.createElement(MoonIcon, null));
103
- const svg = container.querySelector('svg');
104
- expect(svg).toBeInTheDocument();
105
- });
106
- it('has correct viewBox', () => {
107
- const { container } = render(React.createElement(MoonIcon, null));
108
- const svg = container.querySelector('svg');
109
- expect(svg).toHaveAttribute('viewBox');
110
- });
111
- it('has correct dimensions', () => {
112
- const { container } = render(React.createElement(MoonIcon, null));
113
- const svg = container.querySelector('svg');
114
- expect(svg).toHaveAttribute('width');
115
- expect(svg).toHaveAttribute('height');
116
- });
117
- it('accepts custom props', () => {
118
- const { container } = render(React.createElement(MoonIcon, { id: "moon-icon" }));
119
- const svg = container.querySelector('svg');
120
- expect(svg).toHaveAttribute('id', 'moon-icon');
121
- });
122
- it('renders path with fill color', () => {
123
- const { container } = render(React.createElement(MoonIcon, null));
124
- const path = container.querySelector('path');
125
- expect(path).toHaveAttribute('fill');
126
- });
127
- });
128
- describe('Icons Integration', () => {
129
- it('all icons render without errors', () => {
130
- const { container } = render(React.createElement("div", null,
131
- React.createElement(BoatIcon, null),
132
- React.createElement(CalendarIcon, null),
133
- React.createElement(ChevronRightIcon, null),
134
- React.createElement(LocationIcon, null),
135
- React.createElement(MoonIcon, null)));
136
- const svgs = container.querySelectorAll('svg');
137
- expect(svgs.length).toBe(5);
138
- });
139
- it('icons can be styled with className', () => {
140
- const { container } = render(React.createElement("div", null,
141
- React.createElement(BoatIcon, { className: "icon-style" }),
142
- React.createElement(CalendarIcon, { className: "icon-style" }),
143
- React.createElement(LocationIcon, { className: "icon-style" })));
144
- const svgs = container.querySelectorAll('.icon-style');
145
- expect(svgs.length).toBe(3);
146
- });
147
- it('icons maintain SVG structure', () => {
148
- const icons = [
149
- React.createElement(BoatIcon, { key: "boat" }),
150
- React.createElement(CalendarIcon, { key: "calendar" }),
151
- React.createElement(ChevronRightIcon, { key: "chevron" }),
152
- React.createElement(LocationIcon, { key: "location" }),
153
- React.createElement(MoonIcon, { key: "moon" })
154
- ];
155
- icons.forEach(icon => {
156
- const { container } = render(icon);
157
- const svg = container.querySelector('svg');
158
- if (svg) {
159
- expect(svg.tagName).toBe('svg');
160
- }
161
- });
162
- });
163
- });
164
- });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy90cmlwLWNhcmRzL19fdGVzdHNfXy9hc3NldHMudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRCxPQUFPLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osUUFBUSxFQUNULE1BQU0sV0FBVyxDQUFDO0FBRW5CLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDakMsUUFBUSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUU7UUFDeEIsRUFBRSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsRUFBRTtZQUMzQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLG9CQUFDLFFBQVEsT0FBRyxDQUFDLENBQUM7WUFDM0MsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7WUFDN0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxRQUFRLE9BQUcsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUU7WUFDOUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxRQUFRLElBQUMsU0FBUyxFQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7WUFDcEUsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtZQUM1QixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLG9CQUFDLFFBQVEsT0FBRyxDQUFDLENBQUM7WUFDM0MsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtRQUM1QixFQUFFLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO1lBQzNCLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsb0JBQUMsWUFBWSxPQUFHLENBQUMsQ0FBQztZQUMvQyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtZQUM3QixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLG9CQUFDLFlBQVksT0FBRyxDQUFDLENBQUM7WUFDL0MsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtZQUM5QixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLG9CQUFDLFlBQVksbUJBQWEsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUN0RSxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtZQUMvQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLG9CQUFDLFlBQVksT0FBRyxDQUFDLENBQUM7WUFDL0MsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pELE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO1FBQ2hDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7WUFDM0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxnQkFBZ0IsT0FBRyxDQUFDLENBQUM7WUFDbkQsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7WUFDaEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxnQkFBZ0IsT0FBRyxDQUFDLENBQUM7WUFDbkQsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7WUFDN0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxnQkFBZ0IsT0FBRyxDQUFDLENBQUM7WUFDbkQsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7WUFDMUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxnQkFBZ0IsT0FBRyxDQUFDLENBQUM7WUFDbkQsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUU7WUFDOUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FDMUIsb0JBQUMsZ0JBQWdCLElBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFJLENBQzlDLENBQUM7WUFDRixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7UUFDNUIsRUFBRSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsRUFBRTtZQUMzQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLG9CQUFDLFlBQVksT0FBRyxDQUFDLENBQUM7WUFDL0MsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7WUFDN0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxZQUFZLE9BQUcsQ0FBQyxDQUFDO1lBQy9DLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUU7WUFDOUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxZQUFZLGtCQUFZLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDckUsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7WUFDL0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxZQUFZLE9BQUcsQ0FBQyxDQUFDO1lBQy9DLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0MsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1FBQ3hCLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7WUFDM0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxRQUFRLE9BQUcsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO1lBQzdCLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsb0JBQUMsUUFBUSxPQUFHLENBQUMsQ0FBQztZQUMzQyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsb0JBQUMsUUFBUSxPQUFHLENBQUMsQ0FBQztZQUMzQyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUU7WUFDOUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxRQUFRLElBQUMsRUFBRSxFQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFDMUQsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7WUFDdEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxRQUFRLE9BQUcsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0MsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsRUFBRTtRQUNqQyxFQUFFLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO1lBQ3pDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQzFCO2dCQUNFLG9CQUFDLFFBQVEsT0FBRztnQkFDWixvQkFBQyxZQUFZLE9BQUc7Z0JBQ2hCLG9CQUFDLGdCQUFnQixPQUFHO2dCQUNwQixvQkFBQyxZQUFZLE9BQUc7Z0JBQ2hCLG9CQUFDLFFBQVEsT0FBRyxDQUNSLENBQ1AsQ0FBQztZQUVGLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLEVBQUU7WUFDNUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FDMUI7Z0JBQ0Usb0JBQUMsUUFBUSxJQUFDLFNBQVMsRUFBQyxZQUFZLEdBQUc7Z0JBQ25DLG9CQUFDLFlBQVksSUFBQyxTQUFTLEVBQUMsWUFBWSxHQUFHO2dCQUN2QyxvQkFBQyxZQUFZLElBQUMsU0FBUyxFQUFDLFlBQVksR0FBRyxDQUNuQyxDQUNQLENBQUM7WUFFRixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdkQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO1lBQ3RDLE1BQU0sS0FBSyxHQUFHO2dCQUNaLG9CQUFDLFFBQVEsSUFBQyxHQUFHLEVBQUMsTUFBTSxHQUFHO2dCQUN2QixvQkFBQyxZQUFZLElBQUMsR0FBRyxFQUFDLFVBQVUsR0FBRztnQkFDL0Isb0JBQUMsZ0JBQWdCLElBQUMsR0FBRyxFQUFDLFNBQVMsR0FBRztnQkFDbEMsb0JBQUMsWUFBWSxJQUFDLEdBQUcsRUFBQyxVQUFVLEdBQUc7Z0JBQy9CLG9CQUFDLFFBQVEsSUFBQyxHQUFHLEVBQUMsTUFBTSxHQUFHO2FBQ3hCLENBQUM7WUFFRixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNuQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuQyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLEdBQUcsRUFBRTtvQkFDUCxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDakM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9