@hh.ru/magritte-ui-scrollable-container 4.5.5 → 4.5.6

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.
@@ -6,7 +6,7 @@ import { Action } from '@hh.ru/magritte-ui-action';
6
6
  import { Breakpoint, useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';
7
7
  import { DotPages } from '@hh.ru/magritte-ui-dot-pages';
8
8
  import { ChevronLeftOutlinedSize24, ChevronRightOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
9
- import { u as useScrollContainer, s as styles } from './useScrollContainer-BpB4K_ac.js';
9
+ import { u as useScrollContainer, s as styles } from './useScrollContainer-DBVUUPpq.js';
10
10
  import { VSpacing } from '@hh.ru/magritte-ui-spacing';
11
11
  import '@hh.ru/magritte-internal-custom-scroll';
12
12
  import './types.js';
package/ScrollableItem.js CHANGED
@@ -7,7 +7,7 @@ import '@hh.ru/magritte-ui-action';
7
7
  import '@hh.ru/magritte-ui-breakpoint';
8
8
  import '@hh.ru/magritte-ui-dot-pages';
9
9
  import '@hh.ru/magritte-ui-icon/icon';
10
- import './useScrollContainer-BpB4K_ac.js';
10
+ import './useScrollContainer-DBVUUPpq.js';
11
11
  import '@hh.ru/magritte-internal-custom-scroll';
12
12
  import './types.js';
13
13
  import './utils.js';
package/index.css CHANGED
@@ -1,542 +1,12 @@
1
1
  :root{
2
- --magritte-typography-title-1-semibold-font-family-v20-1-0:"hh sans";
3
- --magritte-typography-title-1-semibold-font-weight-v20-1-0:500;
4
- --magritte-typography-title-1-semibold-line-height-v20-1-0:60px;
5
- --magritte-typography-title-1-semibold-font-size-v20-1-0:48px;
6
- --magritte-typography-title-1-semibold-letter-spacing-v20-1-0:-0.02em;
7
- --magritte-typography-title-1-semibold-text-indent-v20-1-0:0px;
8
- --magritte-typography-title-1-semibold-text-transform-v20-1-0:none;
9
- --magritte-typography-title-1-semibold-text-decoration-v20-1-0:none;
10
- --magritte-typography-title-2-semibold-font-family-v20-1-0:"hh sans";
11
- --magritte-typography-title-2-semibold-font-weight-v20-1-0:500;
12
- --magritte-typography-title-2-semibold-line-height-v20-1-0:48px;
13
- --magritte-typography-title-2-semibold-font-size-v20-1-0:36px;
14
- --magritte-typography-title-2-semibold-letter-spacing-v20-1-0:-0.0175em;
15
- --magritte-typography-title-2-semibold-text-indent-v20-1-0:0px;
16
- --magritte-typography-title-2-semibold-text-transform-v20-1-0:none;
17
- --magritte-typography-title-2-semibold-text-decoration-v20-1-0:none;
18
- --magritte-typography-title-3-semibold-font-family-v20-1-0:"hh sans";
19
- --magritte-typography-title-3-semibold-font-weight-v20-1-0:500;
20
- --magritte-typography-title-3-semibold-line-height-v20-1-0:40px;
21
- --magritte-typography-title-3-semibold-font-size-v20-1-0:28px;
22
- --magritte-typography-title-3-semibold-letter-spacing-v20-1-0:-0.0125em;
23
- --magritte-typography-title-3-semibold-text-indent-v20-1-0:0px;
24
- --magritte-typography-title-3-semibold-text-transform-v20-1-0:none;
25
- --magritte-typography-title-3-semibold-text-decoration-v20-1-0:none;
26
- --magritte-typography-title-4-semibold-font-family-v20-1-0:"hh sans";
27
- --magritte-typography-title-4-semibold-font-weight-v20-1-0:500;
28
- --magritte-typography-title-4-semibold-line-height-v20-1-0:32px;
29
- --magritte-typography-title-4-semibold-font-size-v20-1-0:22px;
30
- --magritte-typography-title-4-semibold-letter-spacing-v20-1-0:-0.0075em;
31
- --magritte-typography-title-4-semibold-text-indent-v20-1-0:0px;
32
- --magritte-typography-title-4-semibold-text-transform-v20-1-0:none;
33
- --magritte-typography-title-4-semibold-text-decoration-v20-1-0:none;
34
- --magritte-typography-title-5-semibold-font-family-v20-1-0:"hh sans";
35
- --magritte-typography-title-5-semibold-font-weight-v20-1-0:500;
36
- --magritte-typography-title-5-semibold-line-height-v20-1-0:26px;
37
- --magritte-typography-title-5-semibold-font-size-v20-1-0:18px;
38
- --magritte-typography-title-5-semibold-letter-spacing-v20-1-0:0em;
39
- --magritte-typography-title-5-semibold-text-indent-v20-1-0:0px;
40
- --magritte-typography-title-5-semibold-text-transform-v20-1-0:none;
41
- --magritte-typography-title-5-semibold-text-decoration-v20-1-0:none;
42
- --magritte-typography-subtitle-1-semibold-font-family-v20-1-0:"hh sans";
43
- --magritte-typography-subtitle-1-semibold-font-weight-v20-1-0:500;
44
- --magritte-typography-subtitle-1-semibold-line-height-v20-1-0:22px;
45
- --magritte-typography-subtitle-1-semibold-font-size-v20-1-0:16px;
46
- --magritte-typography-subtitle-1-semibold-letter-spacing-v20-1-0:0em;
47
- --magritte-typography-subtitle-1-semibold-text-indent-v20-1-0:0px;
48
- --magritte-typography-subtitle-1-semibold-text-transform-v20-1-0:none;
49
- --magritte-typography-subtitle-1-semibold-text-decoration-v20-1-0:none;
50
- --magritte-typography-subtitle-2-semibold-font-family-v20-1-0:"hh sans";
51
- --magritte-typography-subtitle-2-semibold-font-weight-v20-1-0:500;
52
- --magritte-typography-subtitle-2-semibold-line-height-v20-1-0:20px;
53
- --magritte-typography-subtitle-2-semibold-font-size-v20-1-0:14px;
54
- --magritte-typography-subtitle-2-semibold-letter-spacing-v20-1-0:0.005em;
55
- --magritte-typography-subtitle-2-semibold-text-indent-v20-1-0:0px;
56
- --magritte-typography-subtitle-2-semibold-text-transform-v20-1-0:none;
57
- --magritte-typography-subtitle-2-semibold-text-decoration-v20-1-0:none;
58
- --magritte-typography-subtitle-3-semibold-font-family-v20-1-0:"hh sans";
59
- --magritte-typography-subtitle-3-semibold-font-weight-v20-1-0:500;
60
- --magritte-typography-subtitle-3-semibold-line-height-v20-1-0:18px;
61
- --magritte-typography-subtitle-3-semibold-font-size-v20-1-0:12px;
62
- --magritte-typography-subtitle-3-semibold-letter-spacing-v20-1-0:0.01em;
63
- --magritte-typography-subtitle-3-semibold-text-indent-v20-1-0:0px;
64
- --magritte-typography-subtitle-3-semibold-text-transform-v20-1-0:none;
65
- --magritte-typography-subtitle-3-semibold-text-decoration-v20-1-0:none;
66
- --magritte-typography-subtitle-4-semibold-font-family-v20-1-0:"hh sans";
67
- --magritte-typography-subtitle-4-semibold-font-weight-v20-1-0:500;
68
- --magritte-typography-subtitle-4-semibold-line-height-v20-1-0:16px;
69
- --magritte-typography-subtitle-4-semibold-font-size-v20-1-0:10px;
70
- --magritte-typography-subtitle-4-semibold-letter-spacing-v20-1-0:0.015em;
71
- --magritte-typography-subtitle-4-semibold-text-indent-v20-1-0:0px;
72
- --magritte-typography-subtitle-4-semibold-text-transform-v20-1-0:none;
73
- --magritte-typography-subtitle-4-semibold-text-decoration-v20-1-0:none;
74
- --magritte-typography-label-1-regular-font-family-v20-1-0:"hh sans";
75
- --magritte-typography-label-1-regular-font-weight-v20-1-0:400;
76
- --magritte-typography-label-1-regular-line-height-v20-1-0:26px;
77
- --magritte-typography-label-1-regular-font-size-v20-1-0:18px;
78
- --magritte-typography-label-1-regular-letter-spacing-v20-1-0:-0.005em;
79
- --magritte-typography-label-1-regular-text-indent-v20-1-0:0px;
80
- --magritte-typography-label-1-regular-text-transform-v20-1-0:none;
81
- --magritte-typography-label-1-regular-text-decoration-v20-1-0:none;
82
- --magritte-typography-label-2-regular-font-family-v20-1-0:"hh sans";
83
- --magritte-typography-label-2-regular-font-weight-v20-1-0:400;
84
- --magritte-typography-label-2-regular-line-height-v20-1-0:22px;
85
- --magritte-typography-label-2-regular-font-size-v20-1-0:16px;
86
- --magritte-typography-label-2-regular-letter-spacing-v20-1-0:0em;
87
- --magritte-typography-label-2-regular-text-indent-v20-1-0:0px;
88
- --magritte-typography-label-2-regular-text-transform-v20-1-0:none;
89
- --magritte-typography-label-2-regular-text-decoration-v20-1-0:none;
90
- --magritte-typography-label-3-regular-font-family-v20-1-0:"hh sans";
91
- --magritte-typography-label-3-regular-font-weight-v20-1-0:400;
92
- --magritte-typography-label-3-regular-line-height-v20-1-0:20px;
93
- --magritte-typography-label-3-regular-font-size-v20-1-0:14px;
94
- --magritte-typography-label-3-regular-letter-spacing-v20-1-0:0.005em;
95
- --magritte-typography-label-3-regular-text-indent-v20-1-0:0px;
96
- --magritte-typography-label-3-regular-text-transform-v20-1-0:none;
97
- --magritte-typography-label-3-regular-text-decoration-v20-1-0:none;
98
- --magritte-typography-label-4-regular-font-family-v20-1-0:"hh sans";
99
- --magritte-typography-label-4-regular-font-weight-v20-1-0:400;
100
- --magritte-typography-label-4-regular-line-height-v20-1-0:18px;
101
- --magritte-typography-label-4-regular-font-size-v20-1-0:12px;
102
- --magritte-typography-label-4-regular-letter-spacing-v20-1-0:0.01em;
103
- --magritte-typography-label-4-regular-text-indent-v20-1-0:0px;
104
- --magritte-typography-label-4-regular-text-transform-v20-1-0:none;
105
- --magritte-typography-label-4-regular-text-decoration-v20-1-0:none;
106
- --magritte-typography-label-5-regular-font-family-v20-1-0:"hh sans";
107
- --magritte-typography-label-5-regular-font-weight-v20-1-0:400;
108
- --magritte-typography-label-5-regular-line-height-v20-1-0:14px;
109
- --magritte-typography-label-5-regular-font-size-v20-1-0:10px;
110
- --magritte-typography-label-5-regular-letter-spacing-v20-1-0:0.02em;
111
- --magritte-typography-label-5-regular-text-indent-v20-1-0:0px;
112
- --magritte-typography-label-5-regular-text-transform-v20-1-0:none;
113
- --magritte-typography-label-5-regular-text-decoration-v20-1-0:none;
114
- --magritte-typography-paragraph-1-regular-font-family-v20-1-0:"hh sans";
115
- --magritte-typography-paragraph-1-regular-font-weight-v20-1-0:400;
116
- --magritte-typography-paragraph-1-regular-line-height-v20-1-0:28px;
117
- --magritte-typography-paragraph-1-regular-font-size-v20-1-0:18px;
118
- --magritte-typography-paragraph-1-regular-letter-spacing-v20-1-0:0em;
119
- --magritte-typography-paragraph-1-regular-text-indent-v20-1-0:0px;
120
- --magritte-typography-paragraph-1-regular-text-transform-v20-1-0:none;
121
- --magritte-typography-paragraph-1-regular-text-decoration-v20-1-0:none;
122
- --magritte-typography-paragraph-2-regular-font-family-v20-1-0:"hh sans";
123
- --magritte-typography-paragraph-2-regular-font-weight-v20-1-0:400;
124
- --magritte-typography-paragraph-2-regular-line-height-v20-1-0:26px;
125
- --magritte-typography-paragraph-2-regular-font-size-v20-1-0:16px;
126
- --magritte-typography-paragraph-2-regular-letter-spacing-v20-1-0:0.005em;
127
- --magritte-typography-paragraph-2-regular-text-indent-v20-1-0:0px;
128
- --magritte-typography-paragraph-2-regular-text-transform-v20-1-0:none;
129
- --magritte-typography-paragraph-2-regular-text-decoration-v20-1-0:none;
130
- --magritte-typography-paragraph-3-regular-font-family-v20-1-0:"hh sans";
131
- --magritte-typography-paragraph-3-regular-font-weight-v20-1-0:400;
132
- --magritte-typography-paragraph-3-regular-line-height-v20-1-0:24px;
133
- --magritte-typography-paragraph-3-regular-font-size-v20-1-0:14px;
134
- --magritte-typography-paragraph-3-regular-letter-spacing-v20-1-0:0.01em;
135
- --magritte-typography-paragraph-3-regular-text-indent-v20-1-0:0px;
136
- --magritte-typography-paragraph-3-regular-text-transform-v20-1-0:none;
137
- --magritte-typography-paragraph-3-regular-text-decoration-v20-1-0:none;
138
- --magritte-typography-paragraph-4-regular-font-family-v20-1-0:"hh sans";
139
- --magritte-typography-paragraph-4-regular-font-weight-v20-1-0:400;
140
- --magritte-typography-paragraph-4-regular-line-height-v20-1-0:22px;
141
- --magritte-typography-paragraph-4-regular-font-size-v20-1-0:12px;
142
- --magritte-typography-paragraph-4-regular-letter-spacing-v20-1-0:0.015em;
143
- --magritte-typography-paragraph-4-regular-text-indent-v20-1-0:0px;
144
- --magritte-typography-paragraph-4-regular-text-transform-v20-1-0:none;
145
- --magritte-typography-paragraph-4-regular-text-decoration-v20-1-0:none;
146
- --magritte-typography-_custom-1-semibold-font-family-v20-1-0:"hh sans";
147
- --magritte-typography-_custom-1-semibold-font-weight-v20-1-0:500;
148
- --magritte-typography-_custom-1-semibold-line-height-v20-1-0:28px;
149
- --magritte-typography-_custom-1-semibold-font-size-v20-1-0:18px;
150
- --magritte-typography-_custom-1-semibold-letter-spacing-v20-1-0:0em;
151
- --magritte-typography-_custom-1-semibold-text-indent-v20-1-0:0px;
152
- --magritte-typography-_custom-1-semibold-text-transform-v20-1-0:none;
153
- --magritte-typography-_custom-1-semibold-text-decoration-v20-1-0:none;
154
- --magritte-typography-_custom-2-semibold-font-family-v20-1-0:"hh sans";
155
- --magritte-typography-_custom-2-semibold-font-weight-v20-1-0:500;
156
- --magritte-typography-_custom-2-semibold-line-height-v20-1-0:26px;
157
- --magritte-typography-_custom-2-semibold-font-size-v20-1-0:16px;
158
- --magritte-typography-_custom-2-semibold-letter-spacing-v20-1-0:0.005em;
159
- --magritte-typography-_custom-2-semibold-text-indent-v20-1-0:0px;
160
- --magritte-typography-_custom-2-semibold-text-transform-v20-1-0:none;
161
- --magritte-typography-_custom-2-semibold-text-decoration-v20-1-0:none;
162
- --magritte-typography-_custom-3-semibold-font-family-v20-1-0:"hh sans";
163
- --magritte-typography-_custom-3-semibold-font-weight-v20-1-0:500;
164
- --magritte-typography-_custom-3-semibold-line-height-v20-1-0:24px;
165
- --magritte-typography-_custom-3-semibold-font-size-v20-1-0:14px;
166
- --magritte-typography-_custom-3-semibold-letter-spacing-v20-1-0:0.01em;
167
- --magritte-typography-_custom-3-semibold-text-indent-v20-1-0:0px;
168
- --magritte-typography-_custom-3-semibold-text-transform-v20-1-0:none;
169
- --magritte-typography-_custom-3-semibold-text-decoration-v20-1-0:none;
170
- --magritte-typography-_custom-4-semibold-font-family-v20-1-0:"hh sans";
171
- --magritte-typography-_custom-4-semibold-font-weight-v20-1-0:400;
172
- --magritte-typography-_custom-4-semibold-line-height-v20-1-0:22px;
173
- --magritte-typography-_custom-4-semibold-font-size-v20-1-0:12px;
174
- --magritte-typography-_custom-4-semibold-letter-spacing-v20-1-0:0.015em;
175
- --magritte-typography-_custom-4-semibold-text-indent-v20-1-0:0px;
176
- --magritte-typography-_custom-4-semibold-text-transform-v20-1-0:none;
177
- --magritte-typography-_custom-4-semibold-text-decoration-v20-1-0:none;
178
- --magritte-typography-_custom-5-semibold-font-family-v20-1-0:"hh sans";
179
- --magritte-typography-_custom-5-semibold-font-weight-v20-1-0:400;
180
- --magritte-typography-_custom-5-semibold-line-height-v20-1-0:12px;
181
- --magritte-typography-_custom-5-semibold-font-size-v20-1-0:10px;
182
- --magritte-typography-_custom-5-semibold-letter-spacing-v20-1-0:0.015em;
183
- --magritte-typography-_custom-5-semibold-text-indent-v20-1-0:0px;
184
- --magritte-typography-_custom-5-semibold-text-transform-v20-1-0:none;
185
- --magritte-typography-_custom-5-semibold-text-decoration-v20-1-0:none;
186
- --magritte-typography-_custom-1-medium-font-family-v20-1-0:"hh sans";
187
- --magritte-typography-_custom-1-medium-font-weight-v20-1-0:500;
188
- --magritte-typography-_custom-1-medium-line-height-v20-1-0:28px;
189
- --magritte-typography-_custom-1-medium-font-size-v20-1-0:18px;
190
- --magritte-typography-_custom-1-medium-letter-spacing-v20-1-0:0em;
191
- --magritte-typography-_custom-1-medium-text-indent-v20-1-0:0px;
192
- --magritte-typography-_custom-1-medium-text-transform-v20-1-0:none;
193
- --magritte-typography-_custom-1-medium-text-decoration-v20-1-0:none;
194
- --magritte-typography-_custom-2-medium-font-family-v20-1-0:"hh sans";
195
- --magritte-typography-_custom-2-medium-font-weight-v20-1-0:500;
196
- --magritte-typography-_custom-2-medium-line-height-v20-1-0:26px;
197
- --magritte-typography-_custom-2-medium-font-size-v20-1-0:16px;
198
- --magritte-typography-_custom-2-medium-letter-spacing-v20-1-0:0.005em;
199
- --magritte-typography-_custom-2-medium-text-indent-v20-1-0:0px;
200
- --magritte-typography-_custom-2-medium-text-transform-v20-1-0:none;
201
- --magritte-typography-_custom-2-medium-text-decoration-v20-1-0:none;
202
- --magritte-typography-_custom-3-medium-font-family-v20-1-0:"hh sans";
203
- --magritte-typography-_custom-3-medium-font-weight-v20-1-0:500;
204
- --magritte-typography-_custom-3-medium-line-height-v20-1-0:24px;
205
- --magritte-typography-_custom-3-medium-font-size-v20-1-0:14px;
206
- --magritte-typography-_custom-3-medium-letter-spacing-v20-1-0:0.01em;
207
- --magritte-typography-_custom-3-medium-text-indent-v20-1-0:0px;
208
- --magritte-typography-_custom-3-medium-text-transform-v20-1-0:none;
209
- --magritte-typography-_custom-3-medium-text-decoration-v20-1-0:none;
210
- --magritte-typography-_custom-4-medium-font-family-v20-1-0:"hh sans";
211
- --magritte-typography-_custom-4-medium-font-weight-v20-1-0:500;
212
- --magritte-typography-_custom-4-medium-line-height-v20-1-0:22px;
213
- --magritte-typography-_custom-4-medium-font-size-v20-1-0:12px;
214
- --magritte-typography-_custom-4-medium-letter-spacing-v20-1-0:0.015em;
215
- --magritte-typography-_custom-4-medium-text-indent-v20-1-0:0px;
216
- --magritte-typography-_custom-4-medium-text-transform-v20-1-0:none;
217
- --magritte-typography-_custom-4-medium-text-decoration-v20-1-0:none;
218
- --magritte-typography-_custom-5-medium-font-family-v20-1-0:"hh sans";
219
- --magritte-typography-_custom-5-medium-font-weight-v20-1-0:500;
220
- --magritte-typography-_custom-5-medium-line-height-v20-1-0:12px;
221
- --magritte-typography-_custom-5-medium-font-size-v20-1-0:10px;
222
- --magritte-typography-_custom-5-medium-letter-spacing-v20-1-0:0.015em;
223
- --magritte-typography-_custom-5-medium-text-indent-v20-1-0:0px;
224
- --magritte-typography-_custom-5-medium-text-transform-v20-1-0:none;
225
- --magritte-typography-_custom-5-medium-text-decoration-v20-1-0:none;
226
- --magritte-typography-_custom-1-italic-font-family-v20-1-0:"hh sans";
227
- --magritte-typography-_custom-1-italic-font-weight-v20-1-0:400;
228
- --magritte-typography-_custom-1-italic-line-height-v20-1-0:28px;
229
- --magritte-typography-_custom-1-italic-font-size-v20-1-0:18px;
230
- --magritte-typography-_custom-1-italic-letter-spacing-v20-1-0:0em;
231
- --magritte-typography-_custom-1-italic-text-indent-v20-1-0:0px;
232
- --magritte-typography-_custom-1-italic-text-transform-v20-1-0:none;
233
- --magritte-typography-_custom-1-italic-text-decoration-v20-1-0:none;
234
- --magritte-typography-_custom-2-italic-font-family-v20-1-0:"hh sans";
235
- --magritte-typography-_custom-2-italic-font-weight-v20-1-0:400;
236
- --magritte-typography-_custom-2-italic-line-height-v20-1-0:26px;
237
- --magritte-typography-_custom-2-italic-font-size-v20-1-0:16px;
238
- --magritte-typography-_custom-2-italic-letter-spacing-v20-1-0:0.005em;
239
- --magritte-typography-_custom-2-italic-text-indent-v20-1-0:0px;
240
- --magritte-typography-_custom-2-italic-text-transform-v20-1-0:none;
241
- --magritte-typography-_custom-2-italic-text-decoration-v20-1-0:none;
242
- --magritte-typography-_custom-3-italic-font-family-v20-1-0:"hh sans";
243
- --magritte-typography-_custom-3-italic-font-weight-v20-1-0:400;
244
- --magritte-typography-_custom-3-italic-line-height-v20-1-0:24px;
245
- --magritte-typography-_custom-3-italic-font-size-v20-1-0:14px;
246
- --magritte-typography-_custom-3-italic-letter-spacing-v20-1-0:0.01em;
247
- --magritte-typography-_custom-3-italic-text-indent-v20-1-0:0px;
248
- --magritte-typography-_custom-3-italic-text-transform-v20-1-0:none;
249
- --magritte-typography-_custom-3-italic-text-decoration-v20-1-0:none;
250
- --magritte-typography-_custom-4-italic-font-family-v20-1-0:"hh sans";
251
- --magritte-typography-_custom-4-italic-font-weight-v20-1-0:400;
252
- --magritte-typography-_custom-4-italic-line-height-v20-1-0:22px;
253
- --magritte-typography-_custom-4-italic-font-size-v20-1-0:12px;
254
- --magritte-typography-_custom-4-italic-letter-spacing-v20-1-0:0.015em;
255
- --magritte-typography-_custom-4-italic-text-indent-v20-1-0:0px;
256
- --magritte-typography-_custom-4-italic-text-transform-v20-1-0:none;
257
- --magritte-typography-_custom-4-italic-text-decoration-v20-1-0:none;
258
- --magritte-typography-_custom-5-italic-font-family-v20-1-0:"hh sans";
259
- --magritte-typography-_custom-5-italic-font-weight-v20-1-0:400;
260
- --magritte-typography-_custom-5-italic-line-height-v20-1-0:12px;
261
- --magritte-typography-_custom-5-italic-font-size-v20-1-0:10px;
262
- --magritte-typography-_custom-5-italic-letter-spacing-v20-1-0:0.015em;
263
- --magritte-typography-_custom-5-italic-text-indent-v20-1-0:0px;
264
- --magritte-typography-_custom-5-italic-text-transform-v20-1-0:none;
265
- --magritte-typography-_custom-5-italic-text-decoration-v20-1-0:none;
266
- --magritte-semantic-animation-ease-in-out-tiger-200-timing-function-v20-1-0:cubic-bezier(0.25, 0.1, 0.25, 1);
267
- --magritte-semantic-animation-ease-in-out-tiger-200-duration-v20-1-0:200ms;
2
+ --magritte-semantic-animation-ease-in-out-tiger-200-timing-function-v21-0-0:cubic-bezier(0.25, 0.1, 0.25, 1);
3
+ --magritte-semantic-animation-ease-in-out-tiger-200-duration-v21-0-0:200ms;
268
4
  }
269
- .magritte-with-inter{
270
- --magritte-typography-title-1-semibold-font-family-v20-1-0:"Inter";
271
- --magritte-typography-title-1-semibold-font-weight-v20-1-0:600;
272
- --magritte-typography-title-1-semibold-line-height-v20-1-0:60px;
273
- --magritte-typography-title-1-semibold-font-size-v20-1-0:48px;
274
- --magritte-typography-title-1-semibold-letter-spacing-v20-1-0:-0.02em;
275
- --magritte-typography-title-1-semibold-text-indent-v20-1-0:0px;
276
- --magritte-typography-title-1-semibold-text-transform-v20-1-0:none;
277
- --magritte-typography-title-1-semibold-text-decoration-v20-1-0:none;
278
- --magritte-typography-title-2-semibold-font-family-v20-1-0:"Inter";
279
- --magritte-typography-title-2-semibold-font-weight-v20-1-0:600;
280
- --magritte-typography-title-2-semibold-line-height-v20-1-0:48px;
281
- --magritte-typography-title-2-semibold-font-size-v20-1-0:36px;
282
- --magritte-typography-title-2-semibold-letter-spacing-v20-1-0:-0.0175em;
283
- --magritte-typography-title-2-semibold-text-indent-v20-1-0:0px;
284
- --magritte-typography-title-2-semibold-text-transform-v20-1-0:none;
285
- --magritte-typography-title-2-semibold-text-decoration-v20-1-0:none;
286
- --magritte-typography-title-3-semibold-font-family-v20-1-0:"Inter";
287
- --magritte-typography-title-3-semibold-font-weight-v20-1-0:600;
288
- --magritte-typography-title-3-semibold-line-height-v20-1-0:40px;
289
- --magritte-typography-title-3-semibold-font-size-v20-1-0:28px;
290
- --magritte-typography-title-3-semibold-letter-spacing-v20-1-0:-0.0125em;
291
- --magritte-typography-title-3-semibold-text-indent-v20-1-0:0px;
292
- --magritte-typography-title-3-semibold-text-transform-v20-1-0:none;
293
- --magritte-typography-title-3-semibold-text-decoration-v20-1-0:none;
294
- --magritte-typography-title-4-semibold-font-family-v20-1-0:"Inter";
295
- --magritte-typography-title-4-semibold-font-weight-v20-1-0:600;
296
- --magritte-typography-title-4-semibold-line-height-v20-1-0:32px;
297
- --magritte-typography-title-4-semibold-font-size-v20-1-0:22px;
298
- --magritte-typography-title-4-semibold-letter-spacing-v20-1-0:-0.0075em;
299
- --magritte-typography-title-4-semibold-text-indent-v20-1-0:0px;
300
- --magritte-typography-title-4-semibold-text-transform-v20-1-0:none;
301
- --magritte-typography-title-4-semibold-text-decoration-v20-1-0:none;
302
- --magritte-typography-title-5-semibold-font-family-v20-1-0:"Inter";
303
- --magritte-typography-title-5-semibold-font-weight-v20-1-0:600;
304
- --magritte-typography-title-5-semibold-line-height-v20-1-0:26px;
305
- --magritte-typography-title-5-semibold-font-size-v20-1-0:18px;
306
- --magritte-typography-title-5-semibold-letter-spacing-v20-1-0:0em;
307
- --magritte-typography-title-5-semibold-text-indent-v20-1-0:0px;
308
- --magritte-typography-title-5-semibold-text-transform-v20-1-0:none;
309
- --magritte-typography-title-5-semibold-text-decoration-v20-1-0:none;
310
- --magritte-typography-subtitle-1-semibold-font-family-v20-1-0:"Inter";
311
- --magritte-typography-subtitle-1-semibold-font-weight-v20-1-0:600;
312
- --magritte-typography-subtitle-1-semibold-line-height-v20-1-0:22px;
313
- --magritte-typography-subtitle-1-semibold-font-size-v20-1-0:16px;
314
- --magritte-typography-subtitle-1-semibold-letter-spacing-v20-1-0:0em;
315
- --magritte-typography-subtitle-1-semibold-text-indent-v20-1-0:0px;
316
- --magritte-typography-subtitle-1-semibold-text-transform-v20-1-0:none;
317
- --magritte-typography-subtitle-1-semibold-text-decoration-v20-1-0:none;
318
- --magritte-typography-subtitle-2-semibold-font-family-v20-1-0:"Inter";
319
- --magritte-typography-subtitle-2-semibold-font-weight-v20-1-0:600;
320
- --magritte-typography-subtitle-2-semibold-line-height-v20-1-0:20px;
321
- --magritte-typography-subtitle-2-semibold-font-size-v20-1-0:14px;
322
- --magritte-typography-subtitle-2-semibold-letter-spacing-v20-1-0:0.005em;
323
- --magritte-typography-subtitle-2-semibold-text-indent-v20-1-0:0px;
324
- --magritte-typography-subtitle-2-semibold-text-transform-v20-1-0:none;
325
- --magritte-typography-subtitle-2-semibold-text-decoration-v20-1-0:none;
326
- --magritte-typography-subtitle-3-semibold-font-family-v20-1-0:"Inter";
327
- --magritte-typography-subtitle-3-semibold-font-weight-v20-1-0:600;
328
- --magritte-typography-subtitle-3-semibold-line-height-v20-1-0:18px;
329
- --magritte-typography-subtitle-3-semibold-font-size-v20-1-0:12px;
330
- --magritte-typography-subtitle-3-semibold-letter-spacing-v20-1-0:0.01em;
331
- --magritte-typography-subtitle-3-semibold-text-indent-v20-1-0:0px;
332
- --magritte-typography-subtitle-3-semibold-text-transform-v20-1-0:none;
333
- --magritte-typography-subtitle-3-semibold-text-decoration-v20-1-0:none;
334
- --magritte-typography-subtitle-4-semibold-font-family-v20-1-0:"Inter";
335
- --magritte-typography-subtitle-4-semibold-font-weight-v20-1-0:600;
336
- --magritte-typography-subtitle-4-semibold-line-height-v20-1-0:16px;
337
- --magritte-typography-subtitle-4-semibold-font-size-v20-1-0:10px;
338
- --magritte-typography-subtitle-4-semibold-letter-spacing-v20-1-0:0.015em;
339
- --magritte-typography-subtitle-4-semibold-text-indent-v20-1-0:0px;
340
- --magritte-typography-subtitle-4-semibold-text-transform-v20-1-0:none;
341
- --magritte-typography-subtitle-4-semibold-text-decoration-v20-1-0:none;
342
- --magritte-typography-label-1-regular-font-family-v20-1-0:"Inter";
343
- --magritte-typography-label-1-regular-font-weight-v20-1-0:400;
344
- --magritte-typography-label-1-regular-line-height-v20-1-0:26px;
345
- --magritte-typography-label-1-regular-font-size-v20-1-0:18px;
346
- --magritte-typography-label-1-regular-letter-spacing-v20-1-0:-0.005em;
347
- --magritte-typography-label-1-regular-text-indent-v20-1-0:0px;
348
- --magritte-typography-label-1-regular-text-transform-v20-1-0:none;
349
- --magritte-typography-label-1-regular-text-decoration-v20-1-0:none;
350
- --magritte-typography-label-2-regular-font-family-v20-1-0:"Inter";
351
- --magritte-typography-label-2-regular-font-weight-v20-1-0:400;
352
- --magritte-typography-label-2-regular-line-height-v20-1-0:22px;
353
- --magritte-typography-label-2-regular-font-size-v20-1-0:16px;
354
- --magritte-typography-label-2-regular-letter-spacing-v20-1-0:0em;
355
- --magritte-typography-label-2-regular-text-indent-v20-1-0:0px;
356
- --magritte-typography-label-2-regular-text-transform-v20-1-0:none;
357
- --magritte-typography-label-2-regular-text-decoration-v20-1-0:none;
358
- --magritte-typography-label-3-regular-font-family-v20-1-0:"Inter";
359
- --magritte-typography-label-3-regular-font-weight-v20-1-0:400;
360
- --magritte-typography-label-3-regular-line-height-v20-1-0:20px;
361
- --magritte-typography-label-3-regular-font-size-v20-1-0:14px;
362
- --magritte-typography-label-3-regular-letter-spacing-v20-1-0:0.005em;
363
- --magritte-typography-label-3-regular-text-indent-v20-1-0:0px;
364
- --magritte-typography-label-3-regular-text-transform-v20-1-0:none;
365
- --magritte-typography-label-3-regular-text-decoration-v20-1-0:none;
366
- --magritte-typography-label-4-regular-font-family-v20-1-0:"Inter";
367
- --magritte-typography-label-4-regular-font-weight-v20-1-0:400;
368
- --magritte-typography-label-4-regular-line-height-v20-1-0:18px;
369
- --magritte-typography-label-4-regular-font-size-v20-1-0:12px;
370
- --magritte-typography-label-4-regular-letter-spacing-v20-1-0:0.01em;
371
- --magritte-typography-label-4-regular-text-indent-v20-1-0:0px;
372
- --magritte-typography-label-4-regular-text-transform-v20-1-0:none;
373
- --magritte-typography-label-4-regular-text-decoration-v20-1-0:none;
374
- --magritte-typography-label-5-regular-font-family-v20-1-0:"Inter";
375
- --magritte-typography-label-5-regular-font-weight-v20-1-0:400;
376
- --magritte-typography-label-5-regular-line-height-v20-1-0:14px;
377
- --magritte-typography-label-5-regular-font-size-v20-1-0:10px;
378
- --magritte-typography-label-5-regular-letter-spacing-v20-1-0:0.02em;
379
- --magritte-typography-label-5-regular-text-indent-v20-1-0:0px;
380
- --magritte-typography-label-5-regular-text-transform-v20-1-0:none;
381
- --magritte-typography-label-5-regular-text-decoration-v20-1-0:none;
382
- --magritte-typography-paragraph-1-regular-font-family-v20-1-0:"Inter";
383
- --magritte-typography-paragraph-1-regular-font-weight-v20-1-0:400;
384
- --magritte-typography-paragraph-1-regular-line-height-v20-1-0:28px;
385
- --magritte-typography-paragraph-1-regular-font-size-v20-1-0:18px;
386
- --magritte-typography-paragraph-1-regular-letter-spacing-v20-1-0:0em;
387
- --magritte-typography-paragraph-1-regular-text-indent-v20-1-0:0px;
388
- --magritte-typography-paragraph-1-regular-text-transform-v20-1-0:none;
389
- --magritte-typography-paragraph-1-regular-text-decoration-v20-1-0:none;
390
- --magritte-typography-paragraph-2-regular-font-family-v20-1-0:"Inter";
391
- --magritte-typography-paragraph-2-regular-font-weight-v20-1-0:400;
392
- --magritte-typography-paragraph-2-regular-line-height-v20-1-0:26px;
393
- --magritte-typography-paragraph-2-regular-font-size-v20-1-0:16px;
394
- --magritte-typography-paragraph-2-regular-letter-spacing-v20-1-0:0.005em;
395
- --magritte-typography-paragraph-2-regular-text-indent-v20-1-0:0px;
396
- --magritte-typography-paragraph-2-regular-text-transform-v20-1-0:none;
397
- --magritte-typography-paragraph-2-regular-text-decoration-v20-1-0:none;
398
- --magritte-typography-paragraph-3-regular-font-family-v20-1-0:"Inter";
399
- --magritte-typography-paragraph-3-regular-font-weight-v20-1-0:400;
400
- --magritte-typography-paragraph-3-regular-line-height-v20-1-0:24px;
401
- --magritte-typography-paragraph-3-regular-font-size-v20-1-0:14px;
402
- --magritte-typography-paragraph-3-regular-letter-spacing-v20-1-0:0.01em;
403
- --magritte-typography-paragraph-3-regular-text-indent-v20-1-0:0px;
404
- --magritte-typography-paragraph-3-regular-text-transform-v20-1-0:none;
405
- --magritte-typography-paragraph-3-regular-text-decoration-v20-1-0:none;
406
- --magritte-typography-paragraph-4-regular-font-family-v20-1-0:"Inter";
407
- --magritte-typography-paragraph-4-regular-font-weight-v20-1-0:400;
408
- --magritte-typography-paragraph-4-regular-line-height-v20-1-0:22px;
409
- --magritte-typography-paragraph-4-regular-font-size-v20-1-0:12px;
410
- --magritte-typography-paragraph-4-regular-letter-spacing-v20-1-0:0.015em;
411
- --magritte-typography-paragraph-4-regular-text-indent-v20-1-0:0px;
412
- --magritte-typography-paragraph-4-regular-text-transform-v20-1-0:none;
413
- --magritte-typography-paragraph-4-regular-text-decoration-v20-1-0:none;
414
- --magritte-typography-_custom-1-semibold-font-family-v20-1-0:"Inter";
415
- --magritte-typography-_custom-1-semibold-font-weight-v20-1-0:600;
416
- --magritte-typography-_custom-1-semibold-line-height-v20-1-0:28px;
417
- --magritte-typography-_custom-1-semibold-font-size-v20-1-0:18px;
418
- --magritte-typography-_custom-1-semibold-letter-spacing-v20-1-0:0em;
419
- --magritte-typography-_custom-1-semibold-text-indent-v20-1-0:0px;
420
- --magritte-typography-_custom-1-semibold-text-transform-v20-1-0:none;
421
- --magritte-typography-_custom-1-semibold-text-decoration-v20-1-0:none;
422
- --magritte-typography-_custom-2-semibold-font-family-v20-1-0:"Inter";
423
- --magritte-typography-_custom-2-semibold-font-weight-v20-1-0:600;
424
- --magritte-typography-_custom-2-semibold-line-height-v20-1-0:26px;
425
- --magritte-typography-_custom-2-semibold-font-size-v20-1-0:16px;
426
- --magritte-typography-_custom-2-semibold-letter-spacing-v20-1-0:0.005em;
427
- --magritte-typography-_custom-2-semibold-text-indent-v20-1-0:0px;
428
- --magritte-typography-_custom-2-semibold-text-transform-v20-1-0:none;
429
- --magritte-typography-_custom-2-semibold-text-decoration-v20-1-0:none;
430
- --magritte-typography-_custom-3-semibold-font-family-v20-1-0:"Inter";
431
- --magritte-typography-_custom-3-semibold-font-weight-v20-1-0:600;
432
- --magritte-typography-_custom-3-semibold-line-height-v20-1-0:24px;
433
- --magritte-typography-_custom-3-semibold-font-size-v20-1-0:14px;
434
- --magritte-typography-_custom-3-semibold-letter-spacing-v20-1-0:0.01em;
435
- --magritte-typography-_custom-3-semibold-text-indent-v20-1-0:0px;
436
- --magritte-typography-_custom-3-semibold-text-transform-v20-1-0:none;
437
- --magritte-typography-_custom-3-semibold-text-decoration-v20-1-0:none;
438
- --magritte-typography-_custom-4-semibold-font-family-v20-1-0:"Inter";
439
- --magritte-typography-_custom-4-semibold-font-weight-v20-1-0:400;
440
- --magritte-typography-_custom-4-semibold-line-height-v20-1-0:22px;
441
- --magritte-typography-_custom-4-semibold-font-size-v20-1-0:12px;
442
- --magritte-typography-_custom-4-semibold-letter-spacing-v20-1-0:0.015em;
443
- --magritte-typography-_custom-4-semibold-text-indent-v20-1-0:0px;
444
- --magritte-typography-_custom-4-semibold-text-transform-v20-1-0:none;
445
- --magritte-typography-_custom-4-semibold-text-decoration-v20-1-0:none;
446
- --magritte-typography-_custom-5-semibold-font-family-v20-1-0:"Inter";
447
- --magritte-typography-_custom-5-semibold-font-weight-v20-1-0:400;
448
- --magritte-typography-_custom-5-semibold-line-height-v20-1-0:12px;
449
- --magritte-typography-_custom-5-semibold-font-size-v20-1-0:10px;
450
- --magritte-typography-_custom-5-semibold-letter-spacing-v20-1-0:0.015em;
451
- --magritte-typography-_custom-5-semibold-text-indent-v20-1-0:0px;
452
- --magritte-typography-_custom-5-semibold-text-transform-v20-1-0:none;
453
- --magritte-typography-_custom-5-semibold-text-decoration-v20-1-0:none;
454
- --magritte-typography-_custom-1-medium-font-family-v20-1-0:"Inter";
455
- --magritte-typography-_custom-1-medium-font-weight-v20-1-0:undefined;
456
- --magritte-typography-_custom-1-medium-line-height-v20-1-0:28px;
457
- --magritte-typography-_custom-1-medium-font-size-v20-1-0:18px;
458
- --magritte-typography-_custom-1-medium-letter-spacing-v20-1-0:0em;
459
- --magritte-typography-_custom-1-medium-text-indent-v20-1-0:0px;
460
- --magritte-typography-_custom-1-medium-text-transform-v20-1-0:none;
461
- --magritte-typography-_custom-1-medium-text-decoration-v20-1-0:none;
462
- --magritte-typography-_custom-2-medium-font-family-v20-1-0:"Inter";
463
- --magritte-typography-_custom-2-medium-font-weight-v20-1-0:undefined;
464
- --magritte-typography-_custom-2-medium-line-height-v20-1-0:26px;
465
- --magritte-typography-_custom-2-medium-font-size-v20-1-0:16px;
466
- --magritte-typography-_custom-2-medium-letter-spacing-v20-1-0:0.005em;
467
- --magritte-typography-_custom-2-medium-text-indent-v20-1-0:0px;
468
- --magritte-typography-_custom-2-medium-text-transform-v20-1-0:none;
469
- --magritte-typography-_custom-2-medium-text-decoration-v20-1-0:none;
470
- --magritte-typography-_custom-3-medium-font-family-v20-1-0:"Inter";
471
- --magritte-typography-_custom-3-medium-font-weight-v20-1-0:undefined;
472
- --magritte-typography-_custom-3-medium-line-height-v20-1-0:24px;
473
- --magritte-typography-_custom-3-medium-font-size-v20-1-0:14px;
474
- --magritte-typography-_custom-3-medium-letter-spacing-v20-1-0:0.01em;
475
- --magritte-typography-_custom-3-medium-text-indent-v20-1-0:0px;
476
- --magritte-typography-_custom-3-medium-text-transform-v20-1-0:none;
477
- --magritte-typography-_custom-3-medium-text-decoration-v20-1-0:none;
478
- --magritte-typography-_custom-4-medium-font-family-v20-1-0:"Inter";
479
- --magritte-typography-_custom-4-medium-font-weight-v20-1-0:undefined;
480
- --magritte-typography-_custom-4-medium-line-height-v20-1-0:22px;
481
- --magritte-typography-_custom-4-medium-font-size-v20-1-0:12px;
482
- --magritte-typography-_custom-4-medium-letter-spacing-v20-1-0:0.015em;
483
- --magritte-typography-_custom-4-medium-text-indent-v20-1-0:0px;
484
- --magritte-typography-_custom-4-medium-text-transform-v20-1-0:none;
485
- --magritte-typography-_custom-4-medium-text-decoration-v20-1-0:none;
486
- --magritte-typography-_custom-5-medium-font-family-v20-1-0:"Inter";
487
- --magritte-typography-_custom-5-medium-font-weight-v20-1-0:undefined;
488
- --magritte-typography-_custom-5-medium-line-height-v20-1-0:12px;
489
- --magritte-typography-_custom-5-medium-font-size-v20-1-0:10px;
490
- --magritte-typography-_custom-5-medium-letter-spacing-v20-1-0:0.015em;
491
- --magritte-typography-_custom-5-medium-text-indent-v20-1-0:0px;
492
- --magritte-typography-_custom-5-medium-text-transform-v20-1-0:none;
493
- --magritte-typography-_custom-5-medium-text-decoration-v20-1-0:none;
494
- --magritte-typography-_custom-1-italic-font-family-v20-1-0:"Inter";
495
- --magritte-typography-_custom-1-italic-font-weight-v20-1-0:200;
496
- --magritte-typography-_custom-1-italic-line-height-v20-1-0:28px;
497
- --magritte-typography-_custom-1-italic-font-size-v20-1-0:18px;
498
- --magritte-typography-_custom-1-italic-letter-spacing-v20-1-0:0em;
499
- --magritte-typography-_custom-1-italic-text-indent-v20-1-0:0px;
500
- --magritte-typography-_custom-1-italic-text-transform-v20-1-0:none;
501
- --magritte-typography-_custom-1-italic-text-decoration-v20-1-0:none;
502
- --magritte-typography-_custom-2-italic-font-family-v20-1-0:"Inter";
503
- --magritte-typography-_custom-2-italic-font-weight-v20-1-0:200;
504
- --magritte-typography-_custom-2-italic-line-height-v20-1-0:26px;
505
- --magritte-typography-_custom-2-italic-font-size-v20-1-0:16px;
506
- --magritte-typography-_custom-2-italic-letter-spacing-v20-1-0:0.005em;
507
- --magritte-typography-_custom-2-italic-text-indent-v20-1-0:0px;
508
- --magritte-typography-_custom-2-italic-text-transform-v20-1-0:none;
509
- --magritte-typography-_custom-2-italic-text-decoration-v20-1-0:none;
510
- --magritte-typography-_custom-3-italic-font-family-v20-1-0:"Inter";
511
- --magritte-typography-_custom-3-italic-font-weight-v20-1-0:200;
512
- --magritte-typography-_custom-3-italic-line-height-v20-1-0:24px;
513
- --magritte-typography-_custom-3-italic-font-size-v20-1-0:14px;
514
- --magritte-typography-_custom-3-italic-letter-spacing-v20-1-0:0.01em;
515
- --magritte-typography-_custom-3-italic-text-indent-v20-1-0:0px;
516
- --magritte-typography-_custom-3-italic-text-transform-v20-1-0:none;
517
- --magritte-typography-_custom-3-italic-text-decoration-v20-1-0:none;
518
- --magritte-typography-_custom-4-italic-font-family-v20-1-0:"Inter";
519
- --magritte-typography-_custom-4-italic-font-weight-v20-1-0:200;
520
- --magritte-typography-_custom-4-italic-line-height-v20-1-0:22px;
521
- --magritte-typography-_custom-4-italic-font-size-v20-1-0:12px;
522
- --magritte-typography-_custom-4-italic-letter-spacing-v20-1-0:0.015em;
523
- --magritte-typography-_custom-4-italic-text-indent-v20-1-0:0px;
524
- --magritte-typography-_custom-4-italic-text-transform-v20-1-0:none;
525
- --magritte-typography-_custom-4-italic-text-decoration-v20-1-0:none;
526
- --magritte-typography-_custom-5-italic-font-family-v20-1-0:"Inter";
527
- --magritte-typography-_custom-5-italic-font-weight-v20-1-0:200;
528
- --magritte-typography-_custom-5-italic-line-height-v20-1-0:12px;
529
- --magritte-typography-_custom-5-italic-font-size-v20-1-0:10px;
530
- --magritte-typography-_custom-5-italic-letter-spacing-v20-1-0:0.015em;
531
- --magritte-typography-_custom-5-italic-text-indent-v20-1-0:0px;
532
- --magritte-typography-_custom-5-italic-text-transform-v20-1-0:none;
533
- --magritte-typography-_custom-5-italic-text-decoration-v20-1-0:none;
534
- }
535
- .magritte-scroll-wrapper___vTdZl_4-5-5{
5
+ .magritte-scroll-wrapper___vTdZl_4-5-6{
536
6
  position:relative;
537
7
  touch-action:pan-y pinch-zoom;
538
8
  }
539
- .magritte-scrollable-container___AKIUp_4-5-5{
9
+ .magritte-scrollable-container___AKIUp_4-5-6{
540
10
  display:block;
541
11
  overflow-x:hidden;
542
12
  overflow-x:clip;
@@ -546,57 +16,57 @@
546
16
  padding:0 4px;
547
17
  margin:0 -4px;
548
18
  }
549
- .magritte-fade-both-sides___pBan7_4-5-5:not(.magritte-no-buttons___eCwO-_4-5-5) .magritte-scrollable-container___AKIUp_4-5-5{
19
+ .magritte-fade-both-sides___pBan7_4-5-6:not(.magritte-no-buttons___eCwO-_4-5-6) .magritte-scrollable-container___AKIUp_4-5-6{
550
20
  padding:4px 0;
551
21
  margin:-4px 0;
552
22
  --both-sides-mask:linear-gradient(90deg, transparent 0, transparent 36px, #000 100.504px, #000 calc(100% - 100.50399999999999px), transparent calc(100% - 36px));
553
23
  -webkit-mask:var(--both-sides-mask);
554
24
  mask:var(--both-sides-mask);
555
25
  }
556
- .magritte-fade-left-side___Hlpre_4-5-5:not(.magritte-no-buttons___eCwO-_4-5-5) .magritte-scrollable-container___AKIUp_4-5-5{
26
+ .magritte-fade-left-side___Hlpre_4-5-6:not(.magritte-no-buttons___eCwO-_4-5-6) .magritte-scrollable-container___AKIUp_4-5-6{
557
27
  margin-left:0;
558
28
  padding-left:0;
559
29
  --left-fade-mask:linear-gradient(90deg, transparent 0, transparent 36px, #000 100.504px);
560
30
  -webkit-mask:var(--left-fade-mask);
561
31
  mask:var(--left-fade-mask);
562
32
  }
563
- .magritte-fade-right-side___Lskyt_4-5-5:not(.magritte-no-buttons___eCwO-_4-5-5) .magritte-scrollable-container___AKIUp_4-5-5{
33
+ .magritte-fade-right-side___Lskyt_4-5-6:not(.magritte-no-buttons___eCwO-_4-5-6) .magritte-scrollable-container___AKIUp_4-5-6{
564
34
  padding-right:0;
565
35
  margin-right:0;
566
36
  --right-fade-mask:linear-gradient(90deg, #000 0, #000 calc(100% - 100.50399999999999px), transparent calc(100% - 36px));
567
37
  -webkit-mask:var(--right-fade-mask);
568
38
  mask:var(--right-fade-mask);
569
39
  }
570
- .magritte-scroll-button___4GQu3_4-5-5{
40
+ .magritte-scroll-button___4GQu3_4-5-6{
571
41
  display:none;
572
42
  position:absolute;
573
43
  top:50%;
574
44
  transform:translateY(-50%);
575
45
  }
576
- .magritte-scroll-button-left___UueEY_4-5-5{
46
+ .magritte-scroll-button-left___UueEY_4-5-6{
577
47
  left:0;
578
48
  }
579
- .magritte-fade-left-side___Hlpre_4-5-5:not(.magritte-no-buttons___eCwO-_4-5-5) .magritte-scroll-button-left___UueEY_4-5-5,
580
- .magritte-fade-both-sides___pBan7_4-5-5:not(.magritte-no-buttons___eCwO-_4-5-5) .magritte-scroll-button-left___UueEY_4-5-5{
49
+ .magritte-fade-left-side___Hlpre_4-5-6:not(.magritte-no-buttons___eCwO-_4-5-6) .magritte-scroll-button-left___UueEY_4-5-6,
50
+ .magritte-fade-both-sides___pBan7_4-5-6:not(.magritte-no-buttons___eCwO-_4-5-6) .magritte-scroll-button-left___UueEY_4-5-6{
581
51
  display:block;
582
52
  }
583
- .magritte-scroll-button-right___wZOn-_4-5-5{
53
+ .magritte-scroll-button-right___wZOn-_4-5-6{
584
54
  right:0;
585
55
  }
586
- .magritte-fade-right-side___Lskyt_4-5-5:not(.magritte-no-buttons___eCwO-_4-5-5) .magritte-scroll-button-right___wZOn-_4-5-5,
587
- .magritte-fade-both-sides___pBan7_4-5-5:not(.magritte-no-buttons___eCwO-_4-5-5) .magritte-scroll-button-right___wZOn-_4-5-5{
56
+ .magritte-fade-right-side___Lskyt_4-5-6:not(.magritte-no-buttons___eCwO-_4-5-6) .magritte-scroll-button-right___wZOn-_4-5-6,
57
+ .magritte-fade-both-sides___pBan7_4-5-6:not(.magritte-no-buttons___eCwO-_4-5-6) .magritte-scroll-button-right___wZOn-_4-5-6{
588
58
  display:block;
589
59
  }
590
- .magritte-position-container___1A4Bv_4-5-5{
60
+ .magritte-position-container___1A4Bv_4-5-6{
591
61
  box-sizing:border-box;
592
62
  width:100%;
593
63
  }
594
- .magritte-position-container-animated___XuPNW_4-5-5{
64
+ .magritte-position-container-animated___XuPNW_4-5-6{
595
65
  transition-property:transform;
596
- transition-duration:var(--magritte-semantic-animation-ease-in-out-tiger-200-duration-v20-1-0);
597
- transition-timing-function:var(--magritte-semantic-animation-ease-in-out-tiger-200-timing-function-v20-1-0);
66
+ transition-duration:var(--magritte-semantic-animation-ease-in-out-tiger-200-duration-v21-0-0);
67
+ transition-timing-function:var(--magritte-semantic-animation-ease-in-out-tiger-200-timing-function-v21-0-0);
598
68
  }
599
- .magritte-dot-container___ahtlG_4-5-5{
69
+ .magritte-dot-container___ahtlG_4-5-6{
600
70
  display:flex;
601
71
  justify-content:center;
602
72
  }
package/index.js CHANGED
@@ -8,7 +8,7 @@ import '@hh.ru/magritte-ui-action';
8
8
  import '@hh.ru/magritte-ui-breakpoint';
9
9
  import '@hh.ru/magritte-ui-dot-pages';
10
10
  import '@hh.ru/magritte-ui-icon/icon';
11
- import './useScrollContainer-BpB4K_ac.js';
11
+ import './useScrollContainer-DBVUUPpq.js';
12
12
  import '@hh.ru/magritte-internal-custom-scroll';
13
13
  import './types.js';
14
14
  import './utils.js';
package/index.mock.js CHANGED
@@ -8,7 +8,7 @@ import '@hh.ru/magritte-ui-action';
8
8
  import '@hh.ru/magritte-ui-breakpoint';
9
9
  import '@hh.ru/magritte-ui-dot-pages';
10
10
  import '@hh.ru/magritte-ui-icon/icon';
11
- import './useScrollContainer-BpB4K_ac.js';
11
+ import './useScrollContainer-DBVUUPpq.js';
12
12
  import '@hh.ru/magritte-internal-custom-scroll';
13
13
  import './types.js';
14
14
  import './utils.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-ui-scrollable-container",
3
- "version": "4.5.5",
3
+ "version": "4.5.6",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -20,14 +20,14 @@
20
20
  "watch": "yarn root:watch $(pwd)"
21
21
  },
22
22
  "dependencies": {
23
- "@hh.ru/magritte-design-tokens": "20.1.0",
23
+ "@hh.ru/magritte-design-tokens": "21.0.0",
24
24
  "@hh.ru/magritte-internal-custom-scroll": "1.3.3",
25
- "@hh.ru/magritte-ui-action": "4.4.22",
25
+ "@hh.ru/magritte-ui-action": "4.4.23",
26
26
  "@hh.ru/magritte-ui-breakpoint": "5.0.0",
27
- "@hh.ru/magritte-ui-dot-pages": "3.0.17",
28
- "@hh.ru/magritte-ui-icon": "7.9.10",
27
+ "@hh.ru/magritte-ui-dot-pages": "3.0.18",
28
+ "@hh.ru/magritte-ui-icon": "7.9.11",
29
29
  "@hh.ru/magritte-ui-mock-component": "1.0.12",
30
- "@hh.ru/magritte-ui-spacing": "2.0.37"
30
+ "@hh.ru/magritte-ui-spacing": "2.0.38"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "classnames": ">=2.3.2",
@@ -36,5 +36,5 @@
36
36
  "publishConfig": {
37
37
  "access": "public"
38
38
  },
39
- "gitHead": "2e6dfd27c2b7fce86b6d3662ff7737e5528ea135"
39
+ "gitHead": "d969104667bac3470d222588ac719c4fc9cd06d6"
40
40
  }
@@ -5,7 +5,7 @@ import { initScrollHandlers, clamp } from '@hh.ru/magritte-internal-custom-scrol
5
5
  import { OFFSET_ATTR } from './types.js';
6
6
  import { debounce } from './utils.js';
7
7
 
8
- var styles = {"scroll-wrapper":"magritte-scroll-wrapper___vTdZl_4-5-5","scrollWrapper":"magritte-scroll-wrapper___vTdZl_4-5-5","scrollable-container":"magritte-scrollable-container___AKIUp_4-5-5","scrollableContainer":"magritte-scrollable-container___AKIUp_4-5-5","fade-both-sides":"magritte-fade-both-sides___pBan7_4-5-5","fadeBothSides":"magritte-fade-both-sides___pBan7_4-5-5","no-buttons":"magritte-no-buttons___eCwO-_4-5-5","noButtons":"magritte-no-buttons___eCwO-_4-5-5","fade-left-side":"magritte-fade-left-side___Hlpre_4-5-5","fadeLeftSide":"magritte-fade-left-side___Hlpre_4-5-5","fade-right-side":"magritte-fade-right-side___Lskyt_4-5-5","fadeRightSide":"magritte-fade-right-side___Lskyt_4-5-5","scroll-button":"magritte-scroll-button___4GQu3_4-5-5","scrollButton":"magritte-scroll-button___4GQu3_4-5-5","scroll-button-left":"magritte-scroll-button-left___UueEY_4-5-5","scrollButtonLeft":"magritte-scroll-button-left___UueEY_4-5-5","scroll-button-right":"magritte-scroll-button-right___wZOn-_4-5-5","scrollButtonRight":"magritte-scroll-button-right___wZOn-_4-5-5","position-container":"magritte-position-container___1A4Bv_4-5-5","positionContainer":"magritte-position-container___1A4Bv_4-5-5","position-container-animated":"magritte-position-container-animated___XuPNW_4-5-5","positionContainerAnimated":"magritte-position-container-animated___XuPNW_4-5-5","dot-container":"magritte-dot-container___ahtlG_4-5-5","dotContainer":"magritte-dot-container___ahtlG_4-5-5"};
8
+ var styles = {"scroll-wrapper":"magritte-scroll-wrapper___vTdZl_4-5-6","scrollWrapper":"magritte-scroll-wrapper___vTdZl_4-5-6","scrollable-container":"magritte-scrollable-container___AKIUp_4-5-6","scrollableContainer":"magritte-scrollable-container___AKIUp_4-5-6","fade-both-sides":"magritte-fade-both-sides___pBan7_4-5-6","fadeBothSides":"magritte-fade-both-sides___pBan7_4-5-6","no-buttons":"magritte-no-buttons___eCwO-_4-5-6","noButtons":"magritte-no-buttons___eCwO-_4-5-6","fade-left-side":"magritte-fade-left-side___Hlpre_4-5-6","fadeLeftSide":"magritte-fade-left-side___Hlpre_4-5-6","fade-right-side":"magritte-fade-right-side___Lskyt_4-5-6","fadeRightSide":"magritte-fade-right-side___Lskyt_4-5-6","scroll-button":"magritte-scroll-button___4GQu3_4-5-6","scrollButton":"magritte-scroll-button___4GQu3_4-5-6","scroll-button-left":"magritte-scroll-button-left___UueEY_4-5-6","scrollButtonLeft":"magritte-scroll-button-left___UueEY_4-5-6","scroll-button-right":"magritte-scroll-button-right___wZOn-_4-5-6","scrollButtonRight":"magritte-scroll-button-right___wZOn-_4-5-6","position-container":"magritte-position-container___1A4Bv_4-5-6","positionContainer":"magritte-position-container___1A4Bv_4-5-6","position-container-animated":"magritte-position-container-animated___XuPNW_4-5-6","positionContainerAnimated":"magritte-position-container-animated___XuPNW_4-5-6","dot-container":"magritte-dot-container___ahtlG_4-5-6","dotContainer":"magritte-dot-container___ahtlG_4-5-6"};
9
9
 
10
10
  const BUTTON_WIDTH = 44;
11
11
  const FOCUS_OUTLINE_WIDTH = 4;
@@ -474,4 +474,4 @@ const useScrollContainer = (leftCorrection, rightCorrection, disableButtons, sho
474
474
  };
475
475
 
476
476
  export { styles as s, useScrollContainer as u };
477
- //# sourceMappingURL=useScrollContainer-BpB4K_ac.js.map
477
+ //# sourceMappingURL=useScrollContainer-DBVUUPpq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollContainer-BpB4K_ac.js","sources":["../src/useScrollContainer.ts"],"sourcesContent":["import { useRef, useEffect, RefObject, useCallback, useLayoutEffect, useState } from 'react';\nimport classnames from 'classnames';\n\nimport { ScrollGestureEvent, initScrollHandlers, clamp } from '@hh.ru/magritte-internal-custom-scroll';\nimport { ScrollInternalState, ItemWithOffset, OFFSET_ATTR } from '@hh.ru/magritte-ui-scrollable-container/types';\nimport { debounce } from '@hh.ru/magritte-ui-scrollable-container/utils';\n\nimport styles from './scrollableContainer.less';\n\nconst BUTTON_WIDTH = 44;\nconst FOCUS_OUTLINE_WIDTH = 4;\nconst DEFAULT_DOT = 1;\n\n/**\n * На базе стейта проверяем возможность использования вычисленного index-а\n * @param index значение для проверки\n * @param state Состояние скролла\n */\nconst isIncorrectIndex = (index: number, state: ScrollInternalState) => index < 0 || state.items.length - 1 < index;\n\n/**\n * Валидирует значение анимации и устанавливает ее в контейнер\n * @param translation значение анимации\n * @param state Состояние скролла\n */\nconst setTranslation = (translation: number, state: ScrollInternalState) => {\n const { positionContainerRef, positionContainerWidth, containerWidth } = state;\n if (!positionContainerRef.current) {\n return;\n }\n const prevTranslation = state.positionContainerTranslation;\n state.positionContainerTranslation = clamp(translation, containerWidth - positionContainerWidth, 0);\n positionContainerRef.current.style.transform = `translate3d(${state.positionContainerTranslation}px, 0, 0)`;\n if (prevTranslation !== state.positionContainerTranslation) {\n state.onScroll?.();\n }\n};\n\n/**\n * Вычисляет нужно ли показывать фейды по краям и скрывать кнопки скролла\n * Применяет соответствующие классы к обертке\n * Проверяет что сдвиг контейнера позиционирования находится в допустимых пределах и если нет, то корректирует его\n * @param state Состояние скролла\n */\nconst applyScrollButtonsUpdate = (state: ScrollInternalState) => {\n const { positionContainerRef, wrapperRef, positionContainerWidth, containerWidth } = state;\n let { positionContainerTranslation } = state;\n\n if (!positionContainerRef.current || !wrapperRef.current) {\n return;\n }\n\n if (positionContainerWidth + positionContainerTranslation < containerWidth) {\n positionContainerTranslation = containerWidth - positionContainerWidth;\n setTranslation(positionContainerTranslation, state);\n }\n const isFadeLeft = positionContainerTranslation < 0;\n const isFadeRight = positionContainerTranslation + positionContainerWidth > containerWidth;\n const className = classnames({\n [styles.fadeLeftSide]: isFadeLeft && !isFadeRight,\n [styles.fadeRightSide]: isFadeRight && !isFadeLeft,\n [styles.fadeBothSides]: isFadeRight && isFadeLeft,\n });\n wrapperRef.current.classList.remove(styles.fadeBothSides, styles.fadeLeftSide, styles.fadeRightSide);\n className && wrapperRef.current.classList.add(className);\n};\n\nconst setAnimated = (state: ScrollInternalState, animated: boolean) => {\n state.positionContainerRef.current?.classList.toggle(styles.positionContainerAnimated, animated);\n if (!animated) {\n state.scrollAnimationInProgress = false;\n }\n};\n\n/**\n * Скролл к конкретному элементу группы. Если на момент вызова нет ref контейнера позиционирования, то считаем что\n * функция была при маунте компонента и запоминаем элемент на который нужно скроллить. При маунте вызываем эту функцию\n * еще раз и скроллим к запомненному элементу без анимации.\n * @param state Состояние скролла\n * @param item Элемент к которому нужно подскроллить\n */\nconst scrollTo = (state: ScrollInternalState, item: RefObject<HTMLElement>) => {\n const {\n positionContainerTranslation,\n containerWidth,\n positionContainerRef,\n scrollToItemInProgress,\n disableButtons,\n positionContainerWidth,\n showDotPages,\n items,\n } = state;\n if (!positionContainerRef.current) {\n state.scrollToOnMount = item;\n return;\n }\n\n if (item.current === scrollToItemInProgress?.current) {\n return;\n }\n state.previousActiveIndexItem = items.indexOf(item as unknown as RefObject<HTMLElement & ItemWithOffset>);\n const offset = (item.current as unknown as ItemWithOffset)[OFFSET_ATTR];\n const width = offset.right - offset.left;\n const buttonsCorrection = disableButtons ? 0 : BUTTON_WIDTH;\n\n // нужно ли отцентрировать контейнер по текущему item\n // актуально для режима showDotPages\n // так как контейнер работает как карусель\n const needItemCorrection = showDotPages;\n let translation = positionContainerTranslation;\n if (width > containerWidth) {\n // элемент шире контейнера\n translation = -((width - containerWidth) / 2 + offset.left);\n } else if (offset.left + positionContainerTranslation < buttonsCorrection && positionContainerTranslation < 0) {\n // контейнер движется вправо\n const correction = needItemCorrection ? (containerWidth - width) / 2 : buttonsCorrection;\n translation = -offset.left + correction;\n } else if (\n offset.right + positionContainerTranslation > containerWidth - buttonsCorrection &&\n positionContainerTranslation > containerWidth - positionContainerWidth\n ) {\n // контейнер движется влево\n const correction = needItemCorrection ? (containerWidth - width) / 2 : buttonsCorrection;\n translation = containerWidth - offset.right - correction;\n } else if (showDotPages) {\n // анимация к центру элемента (при необходимости)\n const correction = (containerWidth - width) / 2;\n // если находимся на границе контейнера, то анимации уже не будет (так как граница блока достигнута)\n // то есть translation надо скорректировать на базе контейнера чрз clamp\n translation = clamp(-offset.left + correction, containerWidth - positionContainerWidth, 0);\n }\n\n const isPositionChanged = translation !== positionContainerTranslation;\n const needAnimation = !state.scrollToOnMount && isPositionChanged;\n\n // Если это скролл при маунте, или позиция скролла не изменилась, то его не нужно анимировать\n setAnimated(state, needAnimation);\n setTranslation(translation, state);\n if (needAnimation) {\n state.scrollAnimationInProgress = true;\n state.scrollToItemInProgress = item;\n }\n applyScrollButtonsUpdate(state);\n};\n\n/**\n * Если текущий элемент совпадает с новым\n * Находим следующий активный элемент по направлению и скролим к нему\n */\nconst scrollToNewItemDebounced = debounce((state: ScrollInternalState, indexNearestToCenter: number) => {\n const { previousActiveIndexItem, items, directionRight } = state;\n let index = indexNearestToCenter;\n // определяем ситуацию, когда скрола не хватило до следующего элемента\n if (previousActiveIndexItem === indexNearestToCenter) {\n const indexBasedOnDirection = directionRight ? indexNearestToCenter + 1 : indexNearestToCenter - 1;\n // нужно проверить новый индекс, чтобы не выходить за границы\n if (!isIncorrectIndex(indexBasedOnDirection, state)) {\n index = indexBasedOnDirection;\n state.setActiveDot(index + 1);\n }\n }\n const item: RefObject<HTMLElement> = items[index];\n scrollTo(state, item);\n}, 30);\n\n/**\n * Скролл к конкретному элементу группы (обернуто в debounce)\n */\nconst scrollToDebounced = debounce(\n (state: ScrollInternalState, index: number) => scrollTo(state, state.items[index]),\n 30\n);\n\n/**\n * Пересчитывает позиции элементов и обновляет состояние скролла. Вызывается при изменении размеров контейнера или\n * добавлении/удалении элементов. Проходится по всем элементам и вычисляет сдвиг их правой и левой границы относительно\n * контейнера позиционирования. Сортирует элементы по возрастанию сдвига левой границы. Вычисляет ширину внешнего\n * контейнера и контейнера позиционирования. При вычислении ширины контейнера позиционирования правой его границей\n * считается правая граница самого крайнего справа элемента. Это нужно чтобы при переносе элементов на несколько строк\n * справа не появлялось лишнее пустое пространство.\n * @param state Состояние скролла\n */\nconst recalculateItemPositions = (state: ScrollInternalState) => {\n const { positionContainerRef, containerRef, items, showDotPages, setCountItems } = state;\n\n if (!positionContainerRef.current || !containerRef.current) {\n return;\n }\n const offset = positionContainerRef.current.getBoundingClientRect().left || 0;\n items.forEach((itemRef) => {\n if (!itemRef.current) {\n return;\n }\n const rect = itemRef.current.getBoundingClientRect();\n itemRef.current[OFFSET_ATTR] = { left: rect.left - offset, right: rect.right - offset };\n });\n\n if (showDotPages) {\n setCountItems(items.length);\n }\n\n state.recalcRequired = false;\n // т.к. нам нужна ширина content-box, то вычитаем левую и правую коррекцию, т.к. ей будут равны паддинги\n state.containerWidth =\n containerRef.current.offsetWidth - state.correction.leftCorrection - state.correction.rightCorrection;\n // считаем ширину контейнера позиционирования равной правой границе самого крайнего элемента\n state.positionContainerWidth = items.reduce(\n (position, itemRef) => Math.max(position, itemRef.current?.[OFFSET_ATTR]?.right || 0),\n 0\n );\n if (!state.disableButtons && state.positionContainerWidth > state.containerWidth) {\n state.containerWidth -= FOCUS_OUTLINE_WIDTH;\n }\n\n // если при маунте, когда у нас еще не было информации об элементах и размерах контейнеров был вызван scrollTo,\n // то нужно проскроллить без анимации\n if (state.scrollToOnMount) {\n scrollTo(state, state.scrollToOnMount);\n state.scrollToOnMount = null;\n return;\n }\n\n if (state.showDotPages && state.activeDot && items[state.activeDot - 1] && items[state.activeDot - 1].current) {\n const item = items[state.activeDot - 1].current as HTMLElement & ItemWithOffset;\n const offset = item[OFFSET_ATTR];\n const itemWidth = offset.right - offset.left;\n const translation = (state.containerWidth - itemWidth) / 2 - offset.left;\n\n setAnimated(state, false);\n setTranslation(translation, state);\n }\n\n applyScrollButtonsUpdate(state);\n};\n\n/**\n * Инициализирует ResizeObserver для контейнера и контейнера позиционирования\n */\nconst initResizeObserver = (state: ScrollInternalState) => {\n const { positionContainerRef, containerRef } = state;\n if (!positionContainerRef.current || !containerRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n return () => {};\n }\n const observer = new ResizeObserver(() => {\n recalculateItemPositions(state);\n });\n observer.observe(containerRef.current);\n observer.observe(positionContainerRef.current);\n\n return () => observer.disconnect();\n};\n\n/**\n * На базе стейта считает ближайший элемент, который ближе к центру вью контейнера\n * Между блоками могут быть отступы, тогда centerPoint в offset-ы ни одного из элементов не попадет\n * В этом случае, используем предыдущее значение\n * @param state Состояние скролла\n * @returns Индекс элемента в массиве state.items\n */\nconst findIndexNearestToCenter = (state: ScrollInternalState): number => {\n const centerPoint = state.containerWidth / 2 + Math.abs(state.positionContainerTranslation);\n const indexNearestToCenter = state.items.findIndex((itemRef) => {\n if (!itemRef.current) {\n return false;\n }\n const offset = itemRef.current[OFFSET_ATTR];\n return offset.left < centerPoint && offset.right > centerPoint;\n });\n return indexNearestToCenter !== -1 ? indexNearestToCenter + 1 : state.activeDot;\n};\n\ninterface UseScrollContainer {\n registerItem: (ref: RefObject<HTMLElement>) => void;\n removeItem: (ref: RefObject<HTMLElement>) => void;\n scrollToItem: (ref: RefObject<HTMLElement>) => void;\n scrollToFirstItem: VoidFunction;\n scrollToLastItem: VoidFunction;\n scrollSide: (right?: boolean) => void;\n initScrollHandlers: () => VoidFunction;\n wrapperRef: RefObject<HTMLDivElement>;\n positionContainerRef: RefObject<HTMLDivElement>;\n containerRef: RefObject<HTMLDivElement>;\n countItems: number;\n activeDot: number;\n isScrollRightEnabled: () => boolean;\n isScrollLeftEnabled: () => boolean;\n}\n\nexport const useScrollContainer = (\n leftCorrection: number,\n rightCorrection: number,\n disableButtons: boolean,\n showDotPages?: boolean,\n onScroll?: () => void\n): UseScrollContainer => {\n // need state for dot component\n const [activeDot, setActiveDot] = useState(DEFAULT_DOT);\n const [countItems, setCountItems] = useState(0);\n const scrollStateRef = useRef<ScrollInternalState>({\n wrapperRef: useRef<HTMLDivElement>(null),\n positionContainerRef: useRef<HTMLDivElement>(null),\n containerRef: useRef<HTMLDivElement>(null),\n positionContainerWidth: 0,\n positionContainerTranslation: 0,\n containerWidth: 0,\n items: [],\n correction: { leftCorrection: 0, rightCorrection: 0 },\n disableButtons: false,\n scrollAnimationInProgress: false,\n scrollToOnMount: null,\n recalcRequired: false,\n scrollToItemInProgress: null,\n showDotPages: false,\n activeDot: DEFAULT_DOT,\n needCorrectionOnScrollEnd: false,\n setActiveDot,\n setCountItems,\n directionRight: false,\n previousActiveIndexItem: 0,\n onScroll,\n wasInteracted: false,\n });\n\n scrollStateRef.current.correction = { leftCorrection, rightCorrection };\n scrollStateRef.current.disableButtons = disableButtons;\n scrollStateRef.current.showDotPages = Boolean(showDotPages);\n scrollStateRef.current.activeDot = activeDot;\n scrollStateRef.current.onScroll = onScroll;\n\n // eslint-disable-next-line disable-autofix/react-hooks/exhaustive-deps\n const recalculateItemPositionsDebounced = useCallback(\n debounce(() => recalculateItemPositions(scrollStateRef.current), 10),\n []\n );\n\n const scrollToItem = useCallback((ref: RefObject<HTMLElement>) => {\n if (scrollStateRef.current.recalcRequired) {\n recalculateItemPositions(scrollStateRef.current);\n }\n scrollStateRef.current.wasInteracted = true;\n // set active dot here because user can click on item\n if (scrollStateRef.current.showDotPages) {\n scrollStateRef.current.setActiveDot(\n scrollStateRef.current.items.indexOf(ref as unknown as RefObject<HTMLElement & ItemWithOffset>) + 1\n );\n }\n scrollTo(scrollStateRef.current, ref);\n }, []);\n\n const scrollToFirstItem = useCallback(() => {\n const { items } = scrollStateRef.current;\n items.length > 0 && scrollToItem(items[0]);\n }, [scrollToItem]);\n\n const scrollToLastItem = useCallback(() => {\n const { items } = scrollStateRef.current;\n items.length > 0 && scrollToItem(items[items.length - 1]);\n }, [scrollToItem]);\n\n const scrollSide = useCallback(\n (directionRight?: boolean) => {\n const { containerWidth, positionContainerRef, positionContainerTranslation, showDotPages } =\n scrollStateRef.current;\n scrollStateRef.current.wasInteracted = true;\n if (!positionContainerRef.current) {\n return;\n }\n if (!showDotPages) {\n // move container based on container width\n const translation = positionContainerTranslation + (directionRight ? -containerWidth : containerWidth);\n setAnimated(scrollStateRef.current, true);\n setTranslation(translation, scrollStateRef.current);\n applyScrollButtonsUpdate(scrollStateRef.current);\n } else {\n // calc new dot and check it\n const activeDot = scrollStateRef.current.activeDot;\n const newActiveDot = directionRight ? activeDot + 1 : activeDot - 1;\n if (!isIncorrectIndex(newActiveDot - 1, scrollStateRef.current)) {\n // move container to new select ref\n scrollToItem(scrollStateRef.current.items[newActiveDot - 1]);\n }\n }\n },\n [scrollToItem]\n );\n\n const registerItem = useCallback((ref: RefObject<HTMLElement>) => {\n if (!ref.current) {\n return;\n }\n\n scrollStateRef.current.items.push(ref as unknown as RefObject<HTMLElement & ItemWithOffset>);\n scrollStateRef.current.recalcRequired = true;\n recalculateItemPositions(scrollStateRef.current);\n }, []);\n\n const removeItem = useCallback(\n (ref: RefObject<HTMLElement>) => {\n if (!ref.current) {\n return;\n }\n\n scrollStateRef.current.items = scrollStateRef.current.items.filter(\n (storedRef) => storedRef.current !== ref.current\n );\n recalculateItemPositionsDebounced();\n },\n [recalculateItemPositionsDebounced]\n );\n\n useEffect(() => {\n const { wrapperRef, positionContainerRef, containerRef } = scrollStateRef.current;\n if (!containerRef.current || !positionContainerRef.current || !wrapperRef.current) {\n return void 0;\n }\n\n const transitionEndHandler = (event: TransitionEvent) => {\n if (event.target !== scrollStateRef.current?.positionContainerRef.current) {\n return;\n }\n setAnimated(scrollStateRef.current, false);\n if (scrollStateRef.current) {\n scrollStateRef.current.scrollAnimationInProgress = false;\n scrollStateRef.current.scrollToItemInProgress = null;\n }\n };\n const positionContainer = scrollStateRef.current?.positionContainerRef.current;\n positionContainer?.addEventListener('transitionend', transitionEndHandler);\n\n const resizeObserverCleanup = initResizeObserver(scrollStateRef.current);\n\n return () => {\n resizeObserverCleanup();\n positionContainer?.removeEventListener('transitionend', transitionEndHandler);\n };\n }, []);\n\n useLayoutEffect(() => {\n recalculateItemPositions(scrollStateRef.current);\n if (disableButtons) {\n setAnimated(scrollStateRef.current, false);\n }\n }, [disableButtons, leftCorrection, rightCorrection]);\n\n useEffect(() => {\n const wrapperRef = scrollStateRef.current.wrapperRef.current;\n if (!wrapperRef) {\n return void 0;\n }\n const handleTouchStartHandler = (event: TouchEvent) => {\n event.stopPropagation();\n };\n wrapperRef.addEventListener('touchstart', handleTouchStartHandler);\n return () => {\n wrapperRef.removeEventListener('touchstart', handleTouchStartHandler);\n };\n }, []);\n\n useLayoutEffect(() => {\n /* Эффект нужен для пересчета размеров в случае, когда родительский контейнер открывается с анимацией,\n * на которую не срабатывает ResizeObserver - например, Modal с transition: scale */\n const handleParentTransitionEnd = (event: TransitionEvent) => {\n const { wrapperRef, wasInteracted } = scrollStateRef.current;\n /* wasInteracted - флаг, было ли взаимодействие с компонентом (скролл или подскролл к какому-либо элементу).\n * Если взаимодействие было, то пересчитывать не нужно, тк считаем, что анимации появления родительского контейнера\n * завершились */\n if (\n !wasInteracted &&\n event.target instanceof Element &&\n wrapperRef.current &&\n event.target.contains(wrapperRef.current)\n ) {\n recalculateItemPositions(scrollStateRef.current);\n }\n };\n\n document.addEventListener('transitionend', handleParentTransitionEnd);\n\n return () => {\n document.removeEventListener('transitionend', handleParentTransitionEnd);\n };\n }, []);\n\n const onTouchMove = useCallback((event: ScrollGestureEvent) => {\n if (scrollStateRef.current.scrollAnimationInProgress) {\n return;\n }\n scrollStateRef.current.wasInteracted = true;\n const { positionContainerTranslation } = scrollStateRef.current;\n setTranslation(scrollStateRef.current.positionContainerTranslation + event.delta, scrollStateRef.current);\n if (positionContainerTranslation === scrollStateRef.current.positionContainerTranslation) {\n event.preventDefault();\n }\n if (scrollStateRef.current.showDotPages) {\n // by touch change active dot\n const newActiveDot = findIndexNearestToCenter(scrollStateRef.current);\n // update state\n scrollStateRef.current.setActiveDot(newActiveDot);\n // scheduling correction\n scrollStateRef.current.needCorrectionOnScrollEnd = true;\n }\n }, []);\n\n const onTouchEnd = useCallback(() => {\n const { needCorrectionOnScrollEnd, showDotPages, activeDot } = scrollStateRef.current;\n if (showDotPages && needCorrectionOnScrollEnd) {\n scrollStateRef.current.needCorrectionOnScrollEnd = false;\n // center active element\n scrollToDebounced(scrollStateRef.current, activeDot - 1);\n }\n }, []);\n\n const onWheelMove = useCallback((event: ScrollGestureEvent) => {\n const { recalcRequired, scrollAnimationInProgress, positionContainerTranslation, showDotPages } =\n scrollStateRef.current;\n scrollStateRef.current.wasInteracted = true;\n if (recalcRequired) {\n recalculateItemPositions(scrollStateRef.current);\n }\n if (scrollAnimationInProgress) {\n event.preventDefault();\n return;\n }\n scrollStateRef.current.directionRight = event.delta < 0;\n const translation = positionContainerTranslation + event.delta;\n setTranslation(translation, scrollStateRef.current);\n applyScrollButtonsUpdate(scrollStateRef.current);\n\n // эти значения могут быть не равны только в случае если попытались сдвинуть контейнер дальше\n // допустимого значения, это значит что мы уперлись в левую или правую границу, значит дальнейшие события\n // скролла можно не обрабатывать\n if (translation === scrollStateRef.current.positionContainerTranslation) {\n event.preventDefault();\n }\n if (showDotPages) {\n // by wheel change active dot\n const newActiveDot = findIndexNearestToCenter(scrollStateRef.current);\n scrollStateRef.current.setActiveDot(newActiveDot);\n // center active element\n scrollToNewItemDebounced(scrollStateRef.current, newActiveDot - 1);\n }\n }, []);\n\n const _initScrollHandlers = useCallback(\n () =>\n initScrollHandlers({\n axis: 'horizontal',\n wrapperRef: scrollStateRef.current.wrapperRef,\n onTouchMove,\n onTouchEnd,\n onWheelMove,\n }),\n [onTouchMove, onTouchEnd, onWheelMove]\n );\n\n const isScrollRightEnabled = useCallback(() => {\n const { positionContainerTranslation, positionContainerWidth, containerWidth } = scrollStateRef.current;\n return positionContainerTranslation + positionContainerWidth <= containerWidth;\n }, []);\n\n const isScrollLeftEnabled = useCallback(() => {\n const { positionContainerTranslation } = scrollStateRef.current;\n return positionContainerTranslation >= 0;\n }, []);\n\n return {\n registerItem,\n removeItem,\n scrollToItem,\n scrollToFirstItem,\n scrollToLastItem,\n scrollSide,\n initScrollHandlers: _initScrollHandlers,\n wrapperRef: scrollStateRef.current.wrapperRef,\n positionContainerRef: scrollStateRef.current.positionContainerRef,\n containerRef: scrollStateRef.current.containerRef,\n countItems,\n activeDot,\n isScrollRightEnabled,\n isScrollLeftEnabled,\n };\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useScrollContainer-DBVUUPpq.js","sources":["../src/useScrollContainer.ts"],"sourcesContent":["import { useRef, useEffect, RefObject, useCallback, useLayoutEffect, useState } from 'react';\nimport classnames from 'classnames';\n\nimport { ScrollGestureEvent, initScrollHandlers, clamp } from '@hh.ru/magritte-internal-custom-scroll';\nimport { ScrollInternalState, ItemWithOffset, OFFSET_ATTR } from '@hh.ru/magritte-ui-scrollable-container/types';\nimport { debounce } from '@hh.ru/magritte-ui-scrollable-container/utils';\n\nimport styles from './scrollableContainer.less';\n\nconst BUTTON_WIDTH = 44;\nconst FOCUS_OUTLINE_WIDTH = 4;\nconst DEFAULT_DOT = 1;\n\n/**\n * На базе стейта проверяем возможность использования вычисленного index-а\n * @param index значение для проверки\n * @param state Состояние скролла\n */\nconst isIncorrectIndex = (index: number, state: ScrollInternalState) => index < 0 || state.items.length - 1 < index;\n\n/**\n * Валидирует значение анимации и устанавливает ее в контейнер\n * @param translation значение анимации\n * @param state Состояние скролла\n */\nconst setTranslation = (translation: number, state: ScrollInternalState) => {\n const { positionContainerRef, positionContainerWidth, containerWidth } = state;\n if (!positionContainerRef.current) {\n return;\n }\n const prevTranslation = state.positionContainerTranslation;\n state.positionContainerTranslation = clamp(translation, containerWidth - positionContainerWidth, 0);\n positionContainerRef.current.style.transform = `translate3d(${state.positionContainerTranslation}px, 0, 0)`;\n if (prevTranslation !== state.positionContainerTranslation) {\n state.onScroll?.();\n }\n};\n\n/**\n * Вычисляет нужно ли показывать фейды по краям и скрывать кнопки скролла\n * Применяет соответствующие классы к обертке\n * Проверяет что сдвиг контейнера позиционирования находится в допустимых пределах и если нет, то корректирует его\n * @param state Состояние скролла\n */\nconst applyScrollButtonsUpdate = (state: ScrollInternalState) => {\n const { positionContainerRef, wrapperRef, positionContainerWidth, containerWidth } = state;\n let { positionContainerTranslation } = state;\n\n if (!positionContainerRef.current || !wrapperRef.current) {\n return;\n }\n\n if (positionContainerWidth + positionContainerTranslation < containerWidth) {\n positionContainerTranslation = containerWidth - positionContainerWidth;\n setTranslation(positionContainerTranslation, state);\n }\n const isFadeLeft = positionContainerTranslation < 0;\n const isFadeRight = positionContainerTranslation + positionContainerWidth > containerWidth;\n const className = classnames({\n [styles.fadeLeftSide]: isFadeLeft && !isFadeRight,\n [styles.fadeRightSide]: isFadeRight && !isFadeLeft,\n [styles.fadeBothSides]: isFadeRight && isFadeLeft,\n });\n wrapperRef.current.classList.remove(styles.fadeBothSides, styles.fadeLeftSide, styles.fadeRightSide);\n className && wrapperRef.current.classList.add(className);\n};\n\nconst setAnimated = (state: ScrollInternalState, animated: boolean) => {\n state.positionContainerRef.current?.classList.toggle(styles.positionContainerAnimated, animated);\n if (!animated) {\n state.scrollAnimationInProgress = false;\n }\n};\n\n/**\n * Скролл к конкретному элементу группы. Если на момент вызова нет ref контейнера позиционирования, то считаем что\n * функция была при маунте компонента и запоминаем элемент на который нужно скроллить. При маунте вызываем эту функцию\n * еще раз и скроллим к запомненному элементу без анимации.\n * @param state Состояние скролла\n * @param item Элемент к которому нужно подскроллить\n */\nconst scrollTo = (state: ScrollInternalState, item: RefObject<HTMLElement>) => {\n const {\n positionContainerTranslation,\n containerWidth,\n positionContainerRef,\n scrollToItemInProgress,\n disableButtons,\n positionContainerWidth,\n showDotPages,\n items,\n } = state;\n if (!positionContainerRef.current) {\n state.scrollToOnMount = item;\n return;\n }\n\n if (item.current === scrollToItemInProgress?.current) {\n return;\n }\n state.previousActiveIndexItem = items.indexOf(item as unknown as RefObject<HTMLElement & ItemWithOffset>);\n const offset = (item.current as unknown as ItemWithOffset)[OFFSET_ATTR];\n const width = offset.right - offset.left;\n const buttonsCorrection = disableButtons ? 0 : BUTTON_WIDTH;\n\n // нужно ли отцентрировать контейнер по текущему item\n // актуально для режима showDotPages\n // так как контейнер работает как карусель\n const needItemCorrection = showDotPages;\n let translation = positionContainerTranslation;\n if (width > containerWidth) {\n // элемент шире контейнера\n translation = -((width - containerWidth) / 2 + offset.left);\n } else if (offset.left + positionContainerTranslation < buttonsCorrection && positionContainerTranslation < 0) {\n // контейнер движется вправо\n const correction = needItemCorrection ? (containerWidth - width) / 2 : buttonsCorrection;\n translation = -offset.left + correction;\n } else if (\n offset.right + positionContainerTranslation > containerWidth - buttonsCorrection &&\n positionContainerTranslation > containerWidth - positionContainerWidth\n ) {\n // контейнер движется влево\n const correction = needItemCorrection ? (containerWidth - width) / 2 : buttonsCorrection;\n translation = containerWidth - offset.right - correction;\n } else if (showDotPages) {\n // анимация к центру элемента (при необходимости)\n const correction = (containerWidth - width) / 2;\n // если находимся на границе контейнера, то анимации уже не будет (так как граница блока достигнута)\n // то есть translation надо скорректировать на базе контейнера чрз clamp\n translation = clamp(-offset.left + correction, containerWidth - positionContainerWidth, 0);\n }\n\n const isPositionChanged = translation !== positionContainerTranslation;\n const needAnimation = !state.scrollToOnMount && isPositionChanged;\n\n // Если это скролл при маунте, или позиция скролла не изменилась, то его не нужно анимировать\n setAnimated(state, needAnimation);\n setTranslation(translation, state);\n if (needAnimation) {\n state.scrollAnimationInProgress = true;\n state.scrollToItemInProgress = item;\n }\n applyScrollButtonsUpdate(state);\n};\n\n/**\n * Если текущий элемент совпадает с новым\n * Находим следующий активный элемент по направлению и скролим к нему\n */\nconst scrollToNewItemDebounced = debounce((state: ScrollInternalState, indexNearestToCenter: number) => {\n const { previousActiveIndexItem, items, directionRight } = state;\n let index = indexNearestToCenter;\n // определяем ситуацию, когда скрола не хватило до следующего элемента\n if (previousActiveIndexItem === indexNearestToCenter) {\n const indexBasedOnDirection = directionRight ? indexNearestToCenter + 1 : indexNearestToCenter - 1;\n // нужно проверить новый индекс, чтобы не выходить за границы\n if (!isIncorrectIndex(indexBasedOnDirection, state)) {\n index = indexBasedOnDirection;\n state.setActiveDot(index + 1);\n }\n }\n const item: RefObject<HTMLElement> = items[index];\n scrollTo(state, item);\n}, 30);\n\n/**\n * Скролл к конкретному элементу группы (обернуто в debounce)\n */\nconst scrollToDebounced = debounce(\n (state: ScrollInternalState, index: number) => scrollTo(state, state.items[index]),\n 30\n);\n\n/**\n * Пересчитывает позиции элементов и обновляет состояние скролла. Вызывается при изменении размеров контейнера или\n * добавлении/удалении элементов. Проходится по всем элементам и вычисляет сдвиг их правой и левой границы относительно\n * контейнера позиционирования. Сортирует элементы по возрастанию сдвига левой границы. Вычисляет ширину внешнего\n * контейнера и контейнера позиционирования. При вычислении ширины контейнера позиционирования правой его границей\n * считается правая граница самого крайнего справа элемента. Это нужно чтобы при переносе элементов на несколько строк\n * справа не появлялось лишнее пустое пространство.\n * @param state Состояние скролла\n */\nconst recalculateItemPositions = (state: ScrollInternalState) => {\n const { positionContainerRef, containerRef, items, showDotPages, setCountItems } = state;\n\n if (!positionContainerRef.current || !containerRef.current) {\n return;\n }\n const offset = positionContainerRef.current.getBoundingClientRect().left || 0;\n items.forEach((itemRef) => {\n if (!itemRef.current) {\n return;\n }\n const rect = itemRef.current.getBoundingClientRect();\n itemRef.current[OFFSET_ATTR] = { left: rect.left - offset, right: rect.right - offset };\n });\n\n if (showDotPages) {\n setCountItems(items.length);\n }\n\n state.recalcRequired = false;\n // т.к. нам нужна ширина content-box, то вычитаем левую и правую коррекцию, т.к. ей будут равны паддинги\n state.containerWidth =\n containerRef.current.offsetWidth - state.correction.leftCorrection - state.correction.rightCorrection;\n // считаем ширину контейнера позиционирования равной правой границе самого крайнего элемента\n state.positionContainerWidth = items.reduce(\n (position, itemRef) => Math.max(position, itemRef.current?.[OFFSET_ATTR]?.right || 0),\n 0\n );\n if (!state.disableButtons && state.positionContainerWidth > state.containerWidth) {\n state.containerWidth -= FOCUS_OUTLINE_WIDTH;\n }\n\n // если при маунте, когда у нас еще не было информации об элементах и размерах контейнеров был вызван scrollTo,\n // то нужно проскроллить без анимации\n if (state.scrollToOnMount) {\n scrollTo(state, state.scrollToOnMount);\n state.scrollToOnMount = null;\n return;\n }\n\n if (state.showDotPages && state.activeDot && items[state.activeDot - 1] && items[state.activeDot - 1].current) {\n const item = items[state.activeDot - 1].current as HTMLElement & ItemWithOffset;\n const offset = item[OFFSET_ATTR];\n const itemWidth = offset.right - offset.left;\n const translation = (state.containerWidth - itemWidth) / 2 - offset.left;\n\n setAnimated(state, false);\n setTranslation(translation, state);\n }\n\n applyScrollButtonsUpdate(state);\n};\n\n/**\n * Инициализирует ResizeObserver для контейнера и контейнера позиционирования\n */\nconst initResizeObserver = (state: ScrollInternalState) => {\n const { positionContainerRef, containerRef } = state;\n if (!positionContainerRef.current || !containerRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n return () => {};\n }\n const observer = new ResizeObserver(() => {\n recalculateItemPositions(state);\n });\n observer.observe(containerRef.current);\n observer.observe(positionContainerRef.current);\n\n return () => observer.disconnect();\n};\n\n/**\n * На базе стейта считает ближайший элемент, который ближе к центру вью контейнера\n * Между блоками могут быть отступы, тогда centerPoint в offset-ы ни одного из элементов не попадет\n * В этом случае, используем предыдущее значение\n * @param state Состояние скролла\n * @returns Индекс элемента в массиве state.items\n */\nconst findIndexNearestToCenter = (state: ScrollInternalState): number => {\n const centerPoint = state.containerWidth / 2 + Math.abs(state.positionContainerTranslation);\n const indexNearestToCenter = state.items.findIndex((itemRef) => {\n if (!itemRef.current) {\n return false;\n }\n const offset = itemRef.current[OFFSET_ATTR];\n return offset.left < centerPoint && offset.right > centerPoint;\n });\n return indexNearestToCenter !== -1 ? indexNearestToCenter + 1 : state.activeDot;\n};\n\ninterface UseScrollContainer {\n registerItem: (ref: RefObject<HTMLElement>) => void;\n removeItem: (ref: RefObject<HTMLElement>) => void;\n scrollToItem: (ref: RefObject<HTMLElement>) => void;\n scrollToFirstItem: VoidFunction;\n scrollToLastItem: VoidFunction;\n scrollSide: (right?: boolean) => void;\n initScrollHandlers: () => VoidFunction;\n wrapperRef: RefObject<HTMLDivElement>;\n positionContainerRef: RefObject<HTMLDivElement>;\n containerRef: RefObject<HTMLDivElement>;\n countItems: number;\n activeDot: number;\n isScrollRightEnabled: () => boolean;\n isScrollLeftEnabled: () => boolean;\n}\n\nexport const useScrollContainer = (\n leftCorrection: number,\n rightCorrection: number,\n disableButtons: boolean,\n showDotPages?: boolean,\n onScroll?: () => void\n): UseScrollContainer => {\n // need state for dot component\n const [activeDot, setActiveDot] = useState(DEFAULT_DOT);\n const [countItems, setCountItems] = useState(0);\n const scrollStateRef = useRef<ScrollInternalState>({\n wrapperRef: useRef<HTMLDivElement>(null),\n positionContainerRef: useRef<HTMLDivElement>(null),\n containerRef: useRef<HTMLDivElement>(null),\n positionContainerWidth: 0,\n positionContainerTranslation: 0,\n containerWidth: 0,\n items: [],\n correction: { leftCorrection: 0, rightCorrection: 0 },\n disableButtons: false,\n scrollAnimationInProgress: false,\n scrollToOnMount: null,\n recalcRequired: false,\n scrollToItemInProgress: null,\n showDotPages: false,\n activeDot: DEFAULT_DOT,\n needCorrectionOnScrollEnd: false,\n setActiveDot,\n setCountItems,\n directionRight: false,\n previousActiveIndexItem: 0,\n onScroll,\n wasInteracted: false,\n });\n\n scrollStateRef.current.correction = { leftCorrection, rightCorrection };\n scrollStateRef.current.disableButtons = disableButtons;\n scrollStateRef.current.showDotPages = Boolean(showDotPages);\n scrollStateRef.current.activeDot = activeDot;\n scrollStateRef.current.onScroll = onScroll;\n\n // eslint-disable-next-line disable-autofix/react-hooks/exhaustive-deps\n const recalculateItemPositionsDebounced = useCallback(\n debounce(() => recalculateItemPositions(scrollStateRef.current), 10),\n []\n );\n\n const scrollToItem = useCallback((ref: RefObject<HTMLElement>) => {\n if (scrollStateRef.current.recalcRequired) {\n recalculateItemPositions(scrollStateRef.current);\n }\n scrollStateRef.current.wasInteracted = true;\n // set active dot here because user can click on item\n if (scrollStateRef.current.showDotPages) {\n scrollStateRef.current.setActiveDot(\n scrollStateRef.current.items.indexOf(ref as unknown as RefObject<HTMLElement & ItemWithOffset>) + 1\n );\n }\n scrollTo(scrollStateRef.current, ref);\n }, []);\n\n const scrollToFirstItem = useCallback(() => {\n const { items } = scrollStateRef.current;\n items.length > 0 && scrollToItem(items[0]);\n }, [scrollToItem]);\n\n const scrollToLastItem = useCallback(() => {\n const { items } = scrollStateRef.current;\n items.length > 0 && scrollToItem(items[items.length - 1]);\n }, [scrollToItem]);\n\n const scrollSide = useCallback(\n (directionRight?: boolean) => {\n const { containerWidth, positionContainerRef, positionContainerTranslation, showDotPages } =\n scrollStateRef.current;\n scrollStateRef.current.wasInteracted = true;\n if (!positionContainerRef.current) {\n return;\n }\n if (!showDotPages) {\n // move container based on container width\n const translation = positionContainerTranslation + (directionRight ? -containerWidth : containerWidth);\n setAnimated(scrollStateRef.current, true);\n setTranslation(translation, scrollStateRef.current);\n applyScrollButtonsUpdate(scrollStateRef.current);\n } else {\n // calc new dot and check it\n const activeDot = scrollStateRef.current.activeDot;\n const newActiveDot = directionRight ? activeDot + 1 : activeDot - 1;\n if (!isIncorrectIndex(newActiveDot - 1, scrollStateRef.current)) {\n // move container to new select ref\n scrollToItem(scrollStateRef.current.items[newActiveDot - 1]);\n }\n }\n },\n [scrollToItem]\n );\n\n const registerItem = useCallback((ref: RefObject<HTMLElement>) => {\n if (!ref.current) {\n return;\n }\n\n scrollStateRef.current.items.push(ref as unknown as RefObject<HTMLElement & ItemWithOffset>);\n scrollStateRef.current.recalcRequired = true;\n recalculateItemPositions(scrollStateRef.current);\n }, []);\n\n const removeItem = useCallback(\n (ref: RefObject<HTMLElement>) => {\n if (!ref.current) {\n return;\n }\n\n scrollStateRef.current.items = scrollStateRef.current.items.filter(\n (storedRef) => storedRef.current !== ref.current\n );\n recalculateItemPositionsDebounced();\n },\n [recalculateItemPositionsDebounced]\n );\n\n useEffect(() => {\n const { wrapperRef, positionContainerRef, containerRef } = scrollStateRef.current;\n if (!containerRef.current || !positionContainerRef.current || !wrapperRef.current) {\n return void 0;\n }\n\n const transitionEndHandler = (event: TransitionEvent) => {\n if (event.target !== scrollStateRef.current?.positionContainerRef.current) {\n return;\n }\n setAnimated(scrollStateRef.current, false);\n if (scrollStateRef.current) {\n scrollStateRef.current.scrollAnimationInProgress = false;\n scrollStateRef.current.scrollToItemInProgress = null;\n }\n };\n const positionContainer = scrollStateRef.current?.positionContainerRef.current;\n positionContainer?.addEventListener('transitionend', transitionEndHandler);\n\n const resizeObserverCleanup = initResizeObserver(scrollStateRef.current);\n\n return () => {\n resizeObserverCleanup();\n positionContainer?.removeEventListener('transitionend', transitionEndHandler);\n };\n }, []);\n\n useLayoutEffect(() => {\n recalculateItemPositions(scrollStateRef.current);\n if (disableButtons) {\n setAnimated(scrollStateRef.current, false);\n }\n }, [disableButtons, leftCorrection, rightCorrection]);\n\n useEffect(() => {\n const wrapperRef = scrollStateRef.current.wrapperRef.current;\n if (!wrapperRef) {\n return void 0;\n }\n const handleTouchStartHandler = (event: TouchEvent) => {\n event.stopPropagation();\n };\n wrapperRef.addEventListener('touchstart', handleTouchStartHandler);\n return () => {\n wrapperRef.removeEventListener('touchstart', handleTouchStartHandler);\n };\n }, []);\n\n useLayoutEffect(() => {\n /* Эффект нужен для пересчета размеров в случае, когда родительский контейнер открывается с анимацией,\n * на которую не срабатывает ResizeObserver - например, Modal с transition: scale */\n const handleParentTransitionEnd = (event: TransitionEvent) => {\n const { wrapperRef, wasInteracted } = scrollStateRef.current;\n /* wasInteracted - флаг, было ли взаимодействие с компонентом (скролл или подскролл к какому-либо элементу).\n * Если взаимодействие было, то пересчитывать не нужно, тк считаем, что анимации появления родительского контейнера\n * завершились */\n if (\n !wasInteracted &&\n event.target instanceof Element &&\n wrapperRef.current &&\n event.target.contains(wrapperRef.current)\n ) {\n recalculateItemPositions(scrollStateRef.current);\n }\n };\n\n document.addEventListener('transitionend', handleParentTransitionEnd);\n\n return () => {\n document.removeEventListener('transitionend', handleParentTransitionEnd);\n };\n }, []);\n\n const onTouchMove = useCallback((event: ScrollGestureEvent) => {\n if (scrollStateRef.current.scrollAnimationInProgress) {\n return;\n }\n scrollStateRef.current.wasInteracted = true;\n const { positionContainerTranslation } = scrollStateRef.current;\n setTranslation(scrollStateRef.current.positionContainerTranslation + event.delta, scrollStateRef.current);\n if (positionContainerTranslation === scrollStateRef.current.positionContainerTranslation) {\n event.preventDefault();\n }\n if (scrollStateRef.current.showDotPages) {\n // by touch change active dot\n const newActiveDot = findIndexNearestToCenter(scrollStateRef.current);\n // update state\n scrollStateRef.current.setActiveDot(newActiveDot);\n // scheduling correction\n scrollStateRef.current.needCorrectionOnScrollEnd = true;\n }\n }, []);\n\n const onTouchEnd = useCallback(() => {\n const { needCorrectionOnScrollEnd, showDotPages, activeDot } = scrollStateRef.current;\n if (showDotPages && needCorrectionOnScrollEnd) {\n scrollStateRef.current.needCorrectionOnScrollEnd = false;\n // center active element\n scrollToDebounced(scrollStateRef.current, activeDot - 1);\n }\n }, []);\n\n const onWheelMove = useCallback((event: ScrollGestureEvent) => {\n const { recalcRequired, scrollAnimationInProgress, positionContainerTranslation, showDotPages } =\n scrollStateRef.current;\n scrollStateRef.current.wasInteracted = true;\n if (recalcRequired) {\n recalculateItemPositions(scrollStateRef.current);\n }\n if (scrollAnimationInProgress) {\n event.preventDefault();\n return;\n }\n scrollStateRef.current.directionRight = event.delta < 0;\n const translation = positionContainerTranslation + event.delta;\n setTranslation(translation, scrollStateRef.current);\n applyScrollButtonsUpdate(scrollStateRef.current);\n\n // эти значения могут быть не равны только в случае если попытались сдвинуть контейнер дальше\n // допустимого значения, это значит что мы уперлись в левую или правую границу, значит дальнейшие события\n // скролла можно не обрабатывать\n if (translation === scrollStateRef.current.positionContainerTranslation) {\n event.preventDefault();\n }\n if (showDotPages) {\n // by wheel change active dot\n const newActiveDot = findIndexNearestToCenter(scrollStateRef.current);\n scrollStateRef.current.setActiveDot(newActiveDot);\n // center active element\n scrollToNewItemDebounced(scrollStateRef.current, newActiveDot - 1);\n }\n }, []);\n\n const _initScrollHandlers = useCallback(\n () =>\n initScrollHandlers({\n axis: 'horizontal',\n wrapperRef: scrollStateRef.current.wrapperRef,\n onTouchMove,\n onTouchEnd,\n onWheelMove,\n }),\n [onTouchMove, onTouchEnd, onWheelMove]\n );\n\n const isScrollRightEnabled = useCallback(() => {\n const { positionContainerTranslation, positionContainerWidth, containerWidth } = scrollStateRef.current;\n return positionContainerTranslation + positionContainerWidth <= containerWidth;\n }, []);\n\n const isScrollLeftEnabled = useCallback(() => {\n const { positionContainerTranslation } = scrollStateRef.current;\n return positionContainerTranslation >= 0;\n }, []);\n\n return {\n registerItem,\n removeItem,\n scrollToItem,\n scrollToFirstItem,\n scrollToLastItem,\n scrollSide,\n initScrollHandlers: _initScrollHandlers,\n wrapperRef: scrollStateRef.current.wrapperRef,\n positionContainerRef: scrollStateRef.current.positionContainerRef,\n containerRef: scrollStateRef.current.containerRef,\n countItems,\n activeDot,\n isScrollRightEnabled,\n isScrollLeftEnabled,\n };\n};\n"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@ import 'classnames';
4
4
  import '@hh.ru/magritte-internal-custom-scroll';
5
5
  import './types.js';
6
6
  import './utils.js';
7
- export { u as useScrollContainer } from './useScrollContainer-BpB4K_ac.js';
7
+ export { u as useScrollContainer } from './useScrollContainer-DBVUUPpq.js';
8
8
  //# sourceMappingURL=useScrollContainer.js.map