@hh.ru/magritte-ui-scrollable-container 4.4.3 → 4.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ScrollableContainer.js +1 -1
- package/ScrollableItem.js +1 -1
- package/index.css +549 -19
- package/index.js +1 -1
- package/index.mock.js +1 -1
- package/package.json +7 -7
- package/{useScrollContainer-DZWVjt0b.js → useScrollContainer-H5QZsUZy.js} +2 -2
- package/{useScrollContainer-DZWVjt0b.js.map → useScrollContainer-H5QZsUZy.js.map} +1 -1
- package/useScrollContainer.js +1 -1
package/ScrollableContainer.js
CHANGED
|
@@ -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-
|
|
9
|
+
import { u as useScrollContainer, s as styles } from './useScrollContainer-H5QZsUZy.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-
|
|
10
|
+
import './useScrollContainer-H5QZsUZy.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,12 +1,542 @@
|
|
|
1
1
|
:root{
|
|
2
|
-
--magritte-
|
|
3
|
-
--magritte-
|
|
2
|
+
--magritte-typography-title-1-semibold-font-family-v20-0-0:"hh sans";
|
|
3
|
+
--magritte-typography-title-1-semibold-font-weight-v20-0-0:500;
|
|
4
|
+
--magritte-typography-title-1-semibold-line-height-v20-0-0:60px;
|
|
5
|
+
--magritte-typography-title-1-semibold-font-size-v20-0-0:48px;
|
|
6
|
+
--magritte-typography-title-1-semibold-letter-spacing-v20-0-0:-0.02em;
|
|
7
|
+
--magritte-typography-title-1-semibold-text-indent-v20-0-0:0px;
|
|
8
|
+
--magritte-typography-title-1-semibold-text-transform-v20-0-0:none;
|
|
9
|
+
--magritte-typography-title-1-semibold-text-decoration-v20-0-0:none;
|
|
10
|
+
--magritte-typography-title-2-semibold-font-family-v20-0-0:"hh sans";
|
|
11
|
+
--magritte-typography-title-2-semibold-font-weight-v20-0-0:500;
|
|
12
|
+
--magritte-typography-title-2-semibold-line-height-v20-0-0:48px;
|
|
13
|
+
--magritte-typography-title-2-semibold-font-size-v20-0-0:36px;
|
|
14
|
+
--magritte-typography-title-2-semibold-letter-spacing-v20-0-0:-0.0175em;
|
|
15
|
+
--magritte-typography-title-2-semibold-text-indent-v20-0-0:0px;
|
|
16
|
+
--magritte-typography-title-2-semibold-text-transform-v20-0-0:none;
|
|
17
|
+
--magritte-typography-title-2-semibold-text-decoration-v20-0-0:none;
|
|
18
|
+
--magritte-typography-title-3-semibold-font-family-v20-0-0:"hh sans";
|
|
19
|
+
--magritte-typography-title-3-semibold-font-weight-v20-0-0:500;
|
|
20
|
+
--magritte-typography-title-3-semibold-line-height-v20-0-0:40px;
|
|
21
|
+
--magritte-typography-title-3-semibold-font-size-v20-0-0:28px;
|
|
22
|
+
--magritte-typography-title-3-semibold-letter-spacing-v20-0-0:-0.0125em;
|
|
23
|
+
--magritte-typography-title-3-semibold-text-indent-v20-0-0:0px;
|
|
24
|
+
--magritte-typography-title-3-semibold-text-transform-v20-0-0:none;
|
|
25
|
+
--magritte-typography-title-3-semibold-text-decoration-v20-0-0:none;
|
|
26
|
+
--magritte-typography-title-4-semibold-font-family-v20-0-0:"hh sans";
|
|
27
|
+
--magritte-typography-title-4-semibold-font-weight-v20-0-0:500;
|
|
28
|
+
--magritte-typography-title-4-semibold-line-height-v20-0-0:32px;
|
|
29
|
+
--magritte-typography-title-4-semibold-font-size-v20-0-0:22px;
|
|
30
|
+
--magritte-typography-title-4-semibold-letter-spacing-v20-0-0:-0.0075em;
|
|
31
|
+
--magritte-typography-title-4-semibold-text-indent-v20-0-0:0px;
|
|
32
|
+
--magritte-typography-title-4-semibold-text-transform-v20-0-0:none;
|
|
33
|
+
--magritte-typography-title-4-semibold-text-decoration-v20-0-0:none;
|
|
34
|
+
--magritte-typography-title-5-semibold-font-family-v20-0-0:"hh sans";
|
|
35
|
+
--magritte-typography-title-5-semibold-font-weight-v20-0-0:500;
|
|
36
|
+
--magritte-typography-title-5-semibold-line-height-v20-0-0:26px;
|
|
37
|
+
--magritte-typography-title-5-semibold-font-size-v20-0-0:18px;
|
|
38
|
+
--magritte-typography-title-5-semibold-letter-spacing-v20-0-0:0em;
|
|
39
|
+
--magritte-typography-title-5-semibold-text-indent-v20-0-0:0px;
|
|
40
|
+
--magritte-typography-title-5-semibold-text-transform-v20-0-0:none;
|
|
41
|
+
--magritte-typography-title-5-semibold-text-decoration-v20-0-0:none;
|
|
42
|
+
--magritte-typography-subtitle-1-semibold-font-family-v20-0-0:"hh sans";
|
|
43
|
+
--magritte-typography-subtitle-1-semibold-font-weight-v20-0-0:500;
|
|
44
|
+
--magritte-typography-subtitle-1-semibold-line-height-v20-0-0:22px;
|
|
45
|
+
--magritte-typography-subtitle-1-semibold-font-size-v20-0-0:16px;
|
|
46
|
+
--magritte-typography-subtitle-1-semibold-letter-spacing-v20-0-0:0em;
|
|
47
|
+
--magritte-typography-subtitle-1-semibold-text-indent-v20-0-0:0px;
|
|
48
|
+
--magritte-typography-subtitle-1-semibold-text-transform-v20-0-0:none;
|
|
49
|
+
--magritte-typography-subtitle-1-semibold-text-decoration-v20-0-0:none;
|
|
50
|
+
--magritte-typography-subtitle-2-semibold-font-family-v20-0-0:"hh sans";
|
|
51
|
+
--magritte-typography-subtitle-2-semibold-font-weight-v20-0-0:500;
|
|
52
|
+
--magritte-typography-subtitle-2-semibold-line-height-v20-0-0:20px;
|
|
53
|
+
--magritte-typography-subtitle-2-semibold-font-size-v20-0-0:14px;
|
|
54
|
+
--magritte-typography-subtitle-2-semibold-letter-spacing-v20-0-0:0.005em;
|
|
55
|
+
--magritte-typography-subtitle-2-semibold-text-indent-v20-0-0:0px;
|
|
56
|
+
--magritte-typography-subtitle-2-semibold-text-transform-v20-0-0:none;
|
|
57
|
+
--magritte-typography-subtitle-2-semibold-text-decoration-v20-0-0:none;
|
|
58
|
+
--magritte-typography-subtitle-3-semibold-font-family-v20-0-0:"hh sans";
|
|
59
|
+
--magritte-typography-subtitle-3-semibold-font-weight-v20-0-0:500;
|
|
60
|
+
--magritte-typography-subtitle-3-semibold-line-height-v20-0-0:18px;
|
|
61
|
+
--magritte-typography-subtitle-3-semibold-font-size-v20-0-0:12px;
|
|
62
|
+
--magritte-typography-subtitle-3-semibold-letter-spacing-v20-0-0:0.01em;
|
|
63
|
+
--magritte-typography-subtitle-3-semibold-text-indent-v20-0-0:0px;
|
|
64
|
+
--magritte-typography-subtitle-3-semibold-text-transform-v20-0-0:none;
|
|
65
|
+
--magritte-typography-subtitle-3-semibold-text-decoration-v20-0-0:none;
|
|
66
|
+
--magritte-typography-subtitle-4-semibold-font-family-v20-0-0:"hh sans";
|
|
67
|
+
--magritte-typography-subtitle-4-semibold-font-weight-v20-0-0:500;
|
|
68
|
+
--magritte-typography-subtitle-4-semibold-line-height-v20-0-0:16px;
|
|
69
|
+
--magritte-typography-subtitle-4-semibold-font-size-v20-0-0:10px;
|
|
70
|
+
--magritte-typography-subtitle-4-semibold-letter-spacing-v20-0-0:0.015em;
|
|
71
|
+
--magritte-typography-subtitle-4-semibold-text-indent-v20-0-0:0px;
|
|
72
|
+
--magritte-typography-subtitle-4-semibold-text-transform-v20-0-0:none;
|
|
73
|
+
--magritte-typography-subtitle-4-semibold-text-decoration-v20-0-0:none;
|
|
74
|
+
--magritte-typography-label-1-regular-font-family-v20-0-0:"hh sans";
|
|
75
|
+
--magritte-typography-label-1-regular-font-weight-v20-0-0:400;
|
|
76
|
+
--magritte-typography-label-1-regular-line-height-v20-0-0:26px;
|
|
77
|
+
--magritte-typography-label-1-regular-font-size-v20-0-0:18px;
|
|
78
|
+
--magritte-typography-label-1-regular-letter-spacing-v20-0-0:-0.005em;
|
|
79
|
+
--magritte-typography-label-1-regular-text-indent-v20-0-0:0px;
|
|
80
|
+
--magritte-typography-label-1-regular-text-transform-v20-0-0:none;
|
|
81
|
+
--magritte-typography-label-1-regular-text-decoration-v20-0-0:none;
|
|
82
|
+
--magritte-typography-label-2-regular-font-family-v20-0-0:"hh sans";
|
|
83
|
+
--magritte-typography-label-2-regular-font-weight-v20-0-0:400;
|
|
84
|
+
--magritte-typography-label-2-regular-line-height-v20-0-0:22px;
|
|
85
|
+
--magritte-typography-label-2-regular-font-size-v20-0-0:16px;
|
|
86
|
+
--magritte-typography-label-2-regular-letter-spacing-v20-0-0:0em;
|
|
87
|
+
--magritte-typography-label-2-regular-text-indent-v20-0-0:0px;
|
|
88
|
+
--magritte-typography-label-2-regular-text-transform-v20-0-0:none;
|
|
89
|
+
--magritte-typography-label-2-regular-text-decoration-v20-0-0:none;
|
|
90
|
+
--magritte-typography-label-3-regular-font-family-v20-0-0:"hh sans";
|
|
91
|
+
--magritte-typography-label-3-regular-font-weight-v20-0-0:400;
|
|
92
|
+
--magritte-typography-label-3-regular-line-height-v20-0-0:20px;
|
|
93
|
+
--magritte-typography-label-3-regular-font-size-v20-0-0:14px;
|
|
94
|
+
--magritte-typography-label-3-regular-letter-spacing-v20-0-0:0.005em;
|
|
95
|
+
--magritte-typography-label-3-regular-text-indent-v20-0-0:0px;
|
|
96
|
+
--magritte-typography-label-3-regular-text-transform-v20-0-0:none;
|
|
97
|
+
--magritte-typography-label-3-regular-text-decoration-v20-0-0:none;
|
|
98
|
+
--magritte-typography-label-4-regular-font-family-v20-0-0:"hh sans";
|
|
99
|
+
--magritte-typography-label-4-regular-font-weight-v20-0-0:400;
|
|
100
|
+
--magritte-typography-label-4-regular-line-height-v20-0-0:18px;
|
|
101
|
+
--magritte-typography-label-4-regular-font-size-v20-0-0:12px;
|
|
102
|
+
--magritte-typography-label-4-regular-letter-spacing-v20-0-0:0.01em;
|
|
103
|
+
--magritte-typography-label-4-regular-text-indent-v20-0-0:0px;
|
|
104
|
+
--magritte-typography-label-4-regular-text-transform-v20-0-0:none;
|
|
105
|
+
--magritte-typography-label-4-regular-text-decoration-v20-0-0:none;
|
|
106
|
+
--magritte-typography-label-5-regular-font-family-v20-0-0:"hh sans";
|
|
107
|
+
--magritte-typography-label-5-regular-font-weight-v20-0-0:400;
|
|
108
|
+
--magritte-typography-label-5-regular-line-height-v20-0-0:14px;
|
|
109
|
+
--magritte-typography-label-5-regular-font-size-v20-0-0:10px;
|
|
110
|
+
--magritte-typography-label-5-regular-letter-spacing-v20-0-0:0.02em;
|
|
111
|
+
--magritte-typography-label-5-regular-text-indent-v20-0-0:0px;
|
|
112
|
+
--magritte-typography-label-5-regular-text-transform-v20-0-0:none;
|
|
113
|
+
--magritte-typography-label-5-regular-text-decoration-v20-0-0:none;
|
|
114
|
+
--magritte-typography-paragraph-1-regular-font-family-v20-0-0:"hh sans";
|
|
115
|
+
--magritte-typography-paragraph-1-regular-font-weight-v20-0-0:400;
|
|
116
|
+
--magritte-typography-paragraph-1-regular-line-height-v20-0-0:28px;
|
|
117
|
+
--magritte-typography-paragraph-1-regular-font-size-v20-0-0:18px;
|
|
118
|
+
--magritte-typography-paragraph-1-regular-letter-spacing-v20-0-0:0em;
|
|
119
|
+
--magritte-typography-paragraph-1-regular-text-indent-v20-0-0:0px;
|
|
120
|
+
--magritte-typography-paragraph-1-regular-text-transform-v20-0-0:none;
|
|
121
|
+
--magritte-typography-paragraph-1-regular-text-decoration-v20-0-0:none;
|
|
122
|
+
--magritte-typography-paragraph-2-regular-font-family-v20-0-0:"hh sans";
|
|
123
|
+
--magritte-typography-paragraph-2-regular-font-weight-v20-0-0:400;
|
|
124
|
+
--magritte-typography-paragraph-2-regular-line-height-v20-0-0:26px;
|
|
125
|
+
--magritte-typography-paragraph-2-regular-font-size-v20-0-0:16px;
|
|
126
|
+
--magritte-typography-paragraph-2-regular-letter-spacing-v20-0-0:0.005em;
|
|
127
|
+
--magritte-typography-paragraph-2-regular-text-indent-v20-0-0:0px;
|
|
128
|
+
--magritte-typography-paragraph-2-regular-text-transform-v20-0-0:none;
|
|
129
|
+
--magritte-typography-paragraph-2-regular-text-decoration-v20-0-0:none;
|
|
130
|
+
--magritte-typography-paragraph-3-regular-font-family-v20-0-0:"hh sans";
|
|
131
|
+
--magritte-typography-paragraph-3-regular-font-weight-v20-0-0:400;
|
|
132
|
+
--magritte-typography-paragraph-3-regular-line-height-v20-0-0:24px;
|
|
133
|
+
--magritte-typography-paragraph-3-regular-font-size-v20-0-0:14px;
|
|
134
|
+
--magritte-typography-paragraph-3-regular-letter-spacing-v20-0-0:0.01em;
|
|
135
|
+
--magritte-typography-paragraph-3-regular-text-indent-v20-0-0:0px;
|
|
136
|
+
--magritte-typography-paragraph-3-regular-text-transform-v20-0-0:none;
|
|
137
|
+
--magritte-typography-paragraph-3-regular-text-decoration-v20-0-0:none;
|
|
138
|
+
--magritte-typography-paragraph-4-regular-font-family-v20-0-0:"hh sans";
|
|
139
|
+
--magritte-typography-paragraph-4-regular-font-weight-v20-0-0:400;
|
|
140
|
+
--magritte-typography-paragraph-4-regular-line-height-v20-0-0:22px;
|
|
141
|
+
--magritte-typography-paragraph-4-regular-font-size-v20-0-0:12px;
|
|
142
|
+
--magritte-typography-paragraph-4-regular-letter-spacing-v20-0-0:0.015em;
|
|
143
|
+
--magritte-typography-paragraph-4-regular-text-indent-v20-0-0:0px;
|
|
144
|
+
--magritte-typography-paragraph-4-regular-text-transform-v20-0-0:none;
|
|
145
|
+
--magritte-typography-paragraph-4-regular-text-decoration-v20-0-0:none;
|
|
146
|
+
--magritte-typography-_custom-1-semibold-font-family-v20-0-0:"hh sans";
|
|
147
|
+
--magritte-typography-_custom-1-semibold-font-weight-v20-0-0:500;
|
|
148
|
+
--magritte-typography-_custom-1-semibold-line-height-v20-0-0:28px;
|
|
149
|
+
--magritte-typography-_custom-1-semibold-font-size-v20-0-0:18px;
|
|
150
|
+
--magritte-typography-_custom-1-semibold-letter-spacing-v20-0-0:0em;
|
|
151
|
+
--magritte-typography-_custom-1-semibold-text-indent-v20-0-0:0px;
|
|
152
|
+
--magritte-typography-_custom-1-semibold-text-transform-v20-0-0:none;
|
|
153
|
+
--magritte-typography-_custom-1-semibold-text-decoration-v20-0-0:none;
|
|
154
|
+
--magritte-typography-_custom-2-semibold-font-family-v20-0-0:"hh sans";
|
|
155
|
+
--magritte-typography-_custom-2-semibold-font-weight-v20-0-0:500;
|
|
156
|
+
--magritte-typography-_custom-2-semibold-line-height-v20-0-0:26px;
|
|
157
|
+
--magritte-typography-_custom-2-semibold-font-size-v20-0-0:16px;
|
|
158
|
+
--magritte-typography-_custom-2-semibold-letter-spacing-v20-0-0:0.005em;
|
|
159
|
+
--magritte-typography-_custom-2-semibold-text-indent-v20-0-0:0px;
|
|
160
|
+
--magritte-typography-_custom-2-semibold-text-transform-v20-0-0:none;
|
|
161
|
+
--magritte-typography-_custom-2-semibold-text-decoration-v20-0-0:none;
|
|
162
|
+
--magritte-typography-_custom-3-semibold-font-family-v20-0-0:"hh sans";
|
|
163
|
+
--magritte-typography-_custom-3-semibold-font-weight-v20-0-0:500;
|
|
164
|
+
--magritte-typography-_custom-3-semibold-line-height-v20-0-0:24px;
|
|
165
|
+
--magritte-typography-_custom-3-semibold-font-size-v20-0-0:14px;
|
|
166
|
+
--magritte-typography-_custom-3-semibold-letter-spacing-v20-0-0:0.01em;
|
|
167
|
+
--magritte-typography-_custom-3-semibold-text-indent-v20-0-0:0px;
|
|
168
|
+
--magritte-typography-_custom-3-semibold-text-transform-v20-0-0:none;
|
|
169
|
+
--magritte-typography-_custom-3-semibold-text-decoration-v20-0-0:none;
|
|
170
|
+
--magritte-typography-_custom-4-semibold-font-family-v20-0-0:"hh sans";
|
|
171
|
+
--magritte-typography-_custom-4-semibold-font-weight-v20-0-0:400;
|
|
172
|
+
--magritte-typography-_custom-4-semibold-line-height-v20-0-0:22px;
|
|
173
|
+
--magritte-typography-_custom-4-semibold-font-size-v20-0-0:12px;
|
|
174
|
+
--magritte-typography-_custom-4-semibold-letter-spacing-v20-0-0:0.015em;
|
|
175
|
+
--magritte-typography-_custom-4-semibold-text-indent-v20-0-0:0px;
|
|
176
|
+
--magritte-typography-_custom-4-semibold-text-transform-v20-0-0:none;
|
|
177
|
+
--magritte-typography-_custom-4-semibold-text-decoration-v20-0-0:none;
|
|
178
|
+
--magritte-typography-_custom-5-semibold-font-family-v20-0-0:"hh sans";
|
|
179
|
+
--magritte-typography-_custom-5-semibold-font-weight-v20-0-0:400;
|
|
180
|
+
--magritte-typography-_custom-5-semibold-line-height-v20-0-0:12px;
|
|
181
|
+
--magritte-typography-_custom-5-semibold-font-size-v20-0-0:10px;
|
|
182
|
+
--magritte-typography-_custom-5-semibold-letter-spacing-v20-0-0:0.015em;
|
|
183
|
+
--magritte-typography-_custom-5-semibold-text-indent-v20-0-0:0px;
|
|
184
|
+
--magritte-typography-_custom-5-semibold-text-transform-v20-0-0:none;
|
|
185
|
+
--magritte-typography-_custom-5-semibold-text-decoration-v20-0-0:none;
|
|
186
|
+
--magritte-typography-_custom-1-medium-font-family-v20-0-0:"hh sans";
|
|
187
|
+
--magritte-typography-_custom-1-medium-font-weight-v20-0-0:500;
|
|
188
|
+
--magritte-typography-_custom-1-medium-line-height-v20-0-0:28px;
|
|
189
|
+
--magritte-typography-_custom-1-medium-font-size-v20-0-0:18px;
|
|
190
|
+
--magritte-typography-_custom-1-medium-letter-spacing-v20-0-0:0em;
|
|
191
|
+
--magritte-typography-_custom-1-medium-text-indent-v20-0-0:0px;
|
|
192
|
+
--magritte-typography-_custom-1-medium-text-transform-v20-0-0:none;
|
|
193
|
+
--magritte-typography-_custom-1-medium-text-decoration-v20-0-0:none;
|
|
194
|
+
--magritte-typography-_custom-2-medium-font-family-v20-0-0:"hh sans";
|
|
195
|
+
--magritte-typography-_custom-2-medium-font-weight-v20-0-0:500;
|
|
196
|
+
--magritte-typography-_custom-2-medium-line-height-v20-0-0:26px;
|
|
197
|
+
--magritte-typography-_custom-2-medium-font-size-v20-0-0:16px;
|
|
198
|
+
--magritte-typography-_custom-2-medium-letter-spacing-v20-0-0:0.005em;
|
|
199
|
+
--magritte-typography-_custom-2-medium-text-indent-v20-0-0:0px;
|
|
200
|
+
--magritte-typography-_custom-2-medium-text-transform-v20-0-0:none;
|
|
201
|
+
--magritte-typography-_custom-2-medium-text-decoration-v20-0-0:none;
|
|
202
|
+
--magritte-typography-_custom-3-medium-font-family-v20-0-0:"hh sans";
|
|
203
|
+
--magritte-typography-_custom-3-medium-font-weight-v20-0-0:500;
|
|
204
|
+
--magritte-typography-_custom-3-medium-line-height-v20-0-0:24px;
|
|
205
|
+
--magritte-typography-_custom-3-medium-font-size-v20-0-0:14px;
|
|
206
|
+
--magritte-typography-_custom-3-medium-letter-spacing-v20-0-0:0.01em;
|
|
207
|
+
--magritte-typography-_custom-3-medium-text-indent-v20-0-0:0px;
|
|
208
|
+
--magritte-typography-_custom-3-medium-text-transform-v20-0-0:none;
|
|
209
|
+
--magritte-typography-_custom-3-medium-text-decoration-v20-0-0:none;
|
|
210
|
+
--magritte-typography-_custom-4-medium-font-family-v20-0-0:"hh sans";
|
|
211
|
+
--magritte-typography-_custom-4-medium-font-weight-v20-0-0:500;
|
|
212
|
+
--magritte-typography-_custom-4-medium-line-height-v20-0-0:22px;
|
|
213
|
+
--magritte-typography-_custom-4-medium-font-size-v20-0-0:12px;
|
|
214
|
+
--magritte-typography-_custom-4-medium-letter-spacing-v20-0-0:0.015em;
|
|
215
|
+
--magritte-typography-_custom-4-medium-text-indent-v20-0-0:0px;
|
|
216
|
+
--magritte-typography-_custom-4-medium-text-transform-v20-0-0:none;
|
|
217
|
+
--magritte-typography-_custom-4-medium-text-decoration-v20-0-0:none;
|
|
218
|
+
--magritte-typography-_custom-5-medium-font-family-v20-0-0:"hh sans";
|
|
219
|
+
--magritte-typography-_custom-5-medium-font-weight-v20-0-0:500;
|
|
220
|
+
--magritte-typography-_custom-5-medium-line-height-v20-0-0:12px;
|
|
221
|
+
--magritte-typography-_custom-5-medium-font-size-v20-0-0:10px;
|
|
222
|
+
--magritte-typography-_custom-5-medium-letter-spacing-v20-0-0:0.015em;
|
|
223
|
+
--magritte-typography-_custom-5-medium-text-indent-v20-0-0:0px;
|
|
224
|
+
--magritte-typography-_custom-5-medium-text-transform-v20-0-0:none;
|
|
225
|
+
--magritte-typography-_custom-5-medium-text-decoration-v20-0-0:none;
|
|
226
|
+
--magritte-typography-_custom-1-italic-font-family-v20-0-0:"hh sans";
|
|
227
|
+
--magritte-typography-_custom-1-italic-font-weight-v20-0-0:400;
|
|
228
|
+
--magritte-typography-_custom-1-italic-line-height-v20-0-0:28px;
|
|
229
|
+
--magritte-typography-_custom-1-italic-font-size-v20-0-0:18px;
|
|
230
|
+
--magritte-typography-_custom-1-italic-letter-spacing-v20-0-0:0em;
|
|
231
|
+
--magritte-typography-_custom-1-italic-text-indent-v20-0-0:0px;
|
|
232
|
+
--magritte-typography-_custom-1-italic-text-transform-v20-0-0:none;
|
|
233
|
+
--magritte-typography-_custom-1-italic-text-decoration-v20-0-0:none;
|
|
234
|
+
--magritte-typography-_custom-2-italic-font-family-v20-0-0:"hh sans";
|
|
235
|
+
--magritte-typography-_custom-2-italic-font-weight-v20-0-0:400;
|
|
236
|
+
--magritte-typography-_custom-2-italic-line-height-v20-0-0:26px;
|
|
237
|
+
--magritte-typography-_custom-2-italic-font-size-v20-0-0:16px;
|
|
238
|
+
--magritte-typography-_custom-2-italic-letter-spacing-v20-0-0:0.005em;
|
|
239
|
+
--magritte-typography-_custom-2-italic-text-indent-v20-0-0:0px;
|
|
240
|
+
--magritte-typography-_custom-2-italic-text-transform-v20-0-0:none;
|
|
241
|
+
--magritte-typography-_custom-2-italic-text-decoration-v20-0-0:none;
|
|
242
|
+
--magritte-typography-_custom-3-italic-font-family-v20-0-0:"hh sans";
|
|
243
|
+
--magritte-typography-_custom-3-italic-font-weight-v20-0-0:400;
|
|
244
|
+
--magritte-typography-_custom-3-italic-line-height-v20-0-0:24px;
|
|
245
|
+
--magritte-typography-_custom-3-italic-font-size-v20-0-0:14px;
|
|
246
|
+
--magritte-typography-_custom-3-italic-letter-spacing-v20-0-0:0.01em;
|
|
247
|
+
--magritte-typography-_custom-3-italic-text-indent-v20-0-0:0px;
|
|
248
|
+
--magritte-typography-_custom-3-italic-text-transform-v20-0-0:none;
|
|
249
|
+
--magritte-typography-_custom-3-italic-text-decoration-v20-0-0:none;
|
|
250
|
+
--magritte-typography-_custom-4-italic-font-family-v20-0-0:"hh sans";
|
|
251
|
+
--magritte-typography-_custom-4-italic-font-weight-v20-0-0:400;
|
|
252
|
+
--magritte-typography-_custom-4-italic-line-height-v20-0-0:22px;
|
|
253
|
+
--magritte-typography-_custom-4-italic-font-size-v20-0-0:12px;
|
|
254
|
+
--magritte-typography-_custom-4-italic-letter-spacing-v20-0-0:0.015em;
|
|
255
|
+
--magritte-typography-_custom-4-italic-text-indent-v20-0-0:0px;
|
|
256
|
+
--magritte-typography-_custom-4-italic-text-transform-v20-0-0:none;
|
|
257
|
+
--magritte-typography-_custom-4-italic-text-decoration-v20-0-0:none;
|
|
258
|
+
--magritte-typography-_custom-5-italic-font-family-v20-0-0:"hh sans";
|
|
259
|
+
--magritte-typography-_custom-5-italic-font-weight-v20-0-0:400;
|
|
260
|
+
--magritte-typography-_custom-5-italic-line-height-v20-0-0:12px;
|
|
261
|
+
--magritte-typography-_custom-5-italic-font-size-v20-0-0:10px;
|
|
262
|
+
--magritte-typography-_custom-5-italic-letter-spacing-v20-0-0:0.015em;
|
|
263
|
+
--magritte-typography-_custom-5-italic-text-indent-v20-0-0:0px;
|
|
264
|
+
--magritte-typography-_custom-5-italic-text-transform-v20-0-0:none;
|
|
265
|
+
--magritte-typography-_custom-5-italic-text-decoration-v20-0-0:none;
|
|
266
|
+
--magritte-semantic-animation-ease-in-out-tiger-200-timing-function-v20-0-0:cubic-bezier(0.25, 0.1, 0.25, 1);
|
|
267
|
+
--magritte-semantic-animation-ease-in-out-tiger-200-duration-v20-0-0:200ms;
|
|
4
268
|
}
|
|
5
|
-
.magritte-
|
|
269
|
+
.magritte-with-inter{
|
|
270
|
+
--magritte-typography-title-1-semibold-font-family-v20-0-0:"Inter";
|
|
271
|
+
--magritte-typography-title-1-semibold-font-weight-v20-0-0:600;
|
|
272
|
+
--magritte-typography-title-1-semibold-line-height-v20-0-0:60px;
|
|
273
|
+
--magritte-typography-title-1-semibold-font-size-v20-0-0:48px;
|
|
274
|
+
--magritte-typography-title-1-semibold-letter-spacing-v20-0-0:-0.02em;
|
|
275
|
+
--magritte-typography-title-1-semibold-text-indent-v20-0-0:0px;
|
|
276
|
+
--magritte-typography-title-1-semibold-text-transform-v20-0-0:none;
|
|
277
|
+
--magritte-typography-title-1-semibold-text-decoration-v20-0-0:none;
|
|
278
|
+
--magritte-typography-title-2-semibold-font-family-v20-0-0:"Inter";
|
|
279
|
+
--magritte-typography-title-2-semibold-font-weight-v20-0-0:600;
|
|
280
|
+
--magritte-typography-title-2-semibold-line-height-v20-0-0:48px;
|
|
281
|
+
--magritte-typography-title-2-semibold-font-size-v20-0-0:36px;
|
|
282
|
+
--magritte-typography-title-2-semibold-letter-spacing-v20-0-0:-0.0175em;
|
|
283
|
+
--magritte-typography-title-2-semibold-text-indent-v20-0-0:0px;
|
|
284
|
+
--magritte-typography-title-2-semibold-text-transform-v20-0-0:none;
|
|
285
|
+
--magritte-typography-title-2-semibold-text-decoration-v20-0-0:none;
|
|
286
|
+
--magritte-typography-title-3-semibold-font-family-v20-0-0:"Inter";
|
|
287
|
+
--magritte-typography-title-3-semibold-font-weight-v20-0-0:600;
|
|
288
|
+
--magritte-typography-title-3-semibold-line-height-v20-0-0:40px;
|
|
289
|
+
--magritte-typography-title-3-semibold-font-size-v20-0-0:28px;
|
|
290
|
+
--magritte-typography-title-3-semibold-letter-spacing-v20-0-0:-0.0125em;
|
|
291
|
+
--magritte-typography-title-3-semibold-text-indent-v20-0-0:0px;
|
|
292
|
+
--magritte-typography-title-3-semibold-text-transform-v20-0-0:none;
|
|
293
|
+
--magritte-typography-title-3-semibold-text-decoration-v20-0-0:none;
|
|
294
|
+
--magritte-typography-title-4-semibold-font-family-v20-0-0:"Inter";
|
|
295
|
+
--magritte-typography-title-4-semibold-font-weight-v20-0-0:600;
|
|
296
|
+
--magritte-typography-title-4-semibold-line-height-v20-0-0:32px;
|
|
297
|
+
--magritte-typography-title-4-semibold-font-size-v20-0-0:22px;
|
|
298
|
+
--magritte-typography-title-4-semibold-letter-spacing-v20-0-0:-0.0075em;
|
|
299
|
+
--magritte-typography-title-4-semibold-text-indent-v20-0-0:0px;
|
|
300
|
+
--magritte-typography-title-4-semibold-text-transform-v20-0-0:none;
|
|
301
|
+
--magritte-typography-title-4-semibold-text-decoration-v20-0-0:none;
|
|
302
|
+
--magritte-typography-title-5-semibold-font-family-v20-0-0:"Inter";
|
|
303
|
+
--magritte-typography-title-5-semibold-font-weight-v20-0-0:600;
|
|
304
|
+
--magritte-typography-title-5-semibold-line-height-v20-0-0:26px;
|
|
305
|
+
--magritte-typography-title-5-semibold-font-size-v20-0-0:18px;
|
|
306
|
+
--magritte-typography-title-5-semibold-letter-spacing-v20-0-0:0em;
|
|
307
|
+
--magritte-typography-title-5-semibold-text-indent-v20-0-0:0px;
|
|
308
|
+
--magritte-typography-title-5-semibold-text-transform-v20-0-0:none;
|
|
309
|
+
--magritte-typography-title-5-semibold-text-decoration-v20-0-0:none;
|
|
310
|
+
--magritte-typography-subtitle-1-semibold-font-family-v20-0-0:"Inter";
|
|
311
|
+
--magritte-typography-subtitle-1-semibold-font-weight-v20-0-0:600;
|
|
312
|
+
--magritte-typography-subtitle-1-semibold-line-height-v20-0-0:22px;
|
|
313
|
+
--magritte-typography-subtitle-1-semibold-font-size-v20-0-0:16px;
|
|
314
|
+
--magritte-typography-subtitle-1-semibold-letter-spacing-v20-0-0:0em;
|
|
315
|
+
--magritte-typography-subtitle-1-semibold-text-indent-v20-0-0:0px;
|
|
316
|
+
--magritte-typography-subtitle-1-semibold-text-transform-v20-0-0:none;
|
|
317
|
+
--magritte-typography-subtitle-1-semibold-text-decoration-v20-0-0:none;
|
|
318
|
+
--magritte-typography-subtitle-2-semibold-font-family-v20-0-0:"Inter";
|
|
319
|
+
--magritte-typography-subtitle-2-semibold-font-weight-v20-0-0:600;
|
|
320
|
+
--magritte-typography-subtitle-2-semibold-line-height-v20-0-0:20px;
|
|
321
|
+
--magritte-typography-subtitle-2-semibold-font-size-v20-0-0:14px;
|
|
322
|
+
--magritte-typography-subtitle-2-semibold-letter-spacing-v20-0-0:0.005em;
|
|
323
|
+
--magritte-typography-subtitle-2-semibold-text-indent-v20-0-0:0px;
|
|
324
|
+
--magritte-typography-subtitle-2-semibold-text-transform-v20-0-0:none;
|
|
325
|
+
--magritte-typography-subtitle-2-semibold-text-decoration-v20-0-0:none;
|
|
326
|
+
--magritte-typography-subtitle-3-semibold-font-family-v20-0-0:"Inter";
|
|
327
|
+
--magritte-typography-subtitle-3-semibold-font-weight-v20-0-0:600;
|
|
328
|
+
--magritte-typography-subtitle-3-semibold-line-height-v20-0-0:18px;
|
|
329
|
+
--magritte-typography-subtitle-3-semibold-font-size-v20-0-0:12px;
|
|
330
|
+
--magritte-typography-subtitle-3-semibold-letter-spacing-v20-0-0:0.01em;
|
|
331
|
+
--magritte-typography-subtitle-3-semibold-text-indent-v20-0-0:0px;
|
|
332
|
+
--magritte-typography-subtitle-3-semibold-text-transform-v20-0-0:none;
|
|
333
|
+
--magritte-typography-subtitle-3-semibold-text-decoration-v20-0-0:none;
|
|
334
|
+
--magritte-typography-subtitle-4-semibold-font-family-v20-0-0:"Inter";
|
|
335
|
+
--magritte-typography-subtitle-4-semibold-font-weight-v20-0-0:600;
|
|
336
|
+
--magritte-typography-subtitle-4-semibold-line-height-v20-0-0:16px;
|
|
337
|
+
--magritte-typography-subtitle-4-semibold-font-size-v20-0-0:10px;
|
|
338
|
+
--magritte-typography-subtitle-4-semibold-letter-spacing-v20-0-0:0.015em;
|
|
339
|
+
--magritte-typography-subtitle-4-semibold-text-indent-v20-0-0:0px;
|
|
340
|
+
--magritte-typography-subtitle-4-semibold-text-transform-v20-0-0:none;
|
|
341
|
+
--magritte-typography-subtitle-4-semibold-text-decoration-v20-0-0:none;
|
|
342
|
+
--magritte-typography-label-1-regular-font-family-v20-0-0:"Inter";
|
|
343
|
+
--magritte-typography-label-1-regular-font-weight-v20-0-0:400;
|
|
344
|
+
--magritte-typography-label-1-regular-line-height-v20-0-0:26px;
|
|
345
|
+
--magritte-typography-label-1-regular-font-size-v20-0-0:18px;
|
|
346
|
+
--magritte-typography-label-1-regular-letter-spacing-v20-0-0:-0.005em;
|
|
347
|
+
--magritte-typography-label-1-regular-text-indent-v20-0-0:0px;
|
|
348
|
+
--magritte-typography-label-1-regular-text-transform-v20-0-0:none;
|
|
349
|
+
--magritte-typography-label-1-regular-text-decoration-v20-0-0:none;
|
|
350
|
+
--magritte-typography-label-2-regular-font-family-v20-0-0:"Inter";
|
|
351
|
+
--magritte-typography-label-2-regular-font-weight-v20-0-0:400;
|
|
352
|
+
--magritte-typography-label-2-regular-line-height-v20-0-0:22px;
|
|
353
|
+
--magritte-typography-label-2-regular-font-size-v20-0-0:16px;
|
|
354
|
+
--magritte-typography-label-2-regular-letter-spacing-v20-0-0:0em;
|
|
355
|
+
--magritte-typography-label-2-regular-text-indent-v20-0-0:0px;
|
|
356
|
+
--magritte-typography-label-2-regular-text-transform-v20-0-0:none;
|
|
357
|
+
--magritte-typography-label-2-regular-text-decoration-v20-0-0:none;
|
|
358
|
+
--magritte-typography-label-3-regular-font-family-v20-0-0:"Inter";
|
|
359
|
+
--magritte-typography-label-3-regular-font-weight-v20-0-0:400;
|
|
360
|
+
--magritte-typography-label-3-regular-line-height-v20-0-0:20px;
|
|
361
|
+
--magritte-typography-label-3-regular-font-size-v20-0-0:14px;
|
|
362
|
+
--magritte-typography-label-3-regular-letter-spacing-v20-0-0:0.005em;
|
|
363
|
+
--magritte-typography-label-3-regular-text-indent-v20-0-0:0px;
|
|
364
|
+
--magritte-typography-label-3-regular-text-transform-v20-0-0:none;
|
|
365
|
+
--magritte-typography-label-3-regular-text-decoration-v20-0-0:none;
|
|
366
|
+
--magritte-typography-label-4-regular-font-family-v20-0-0:"Inter";
|
|
367
|
+
--magritte-typography-label-4-regular-font-weight-v20-0-0:400;
|
|
368
|
+
--magritte-typography-label-4-regular-line-height-v20-0-0:18px;
|
|
369
|
+
--magritte-typography-label-4-regular-font-size-v20-0-0:12px;
|
|
370
|
+
--magritte-typography-label-4-regular-letter-spacing-v20-0-0:0.01em;
|
|
371
|
+
--magritte-typography-label-4-regular-text-indent-v20-0-0:0px;
|
|
372
|
+
--magritte-typography-label-4-regular-text-transform-v20-0-0:none;
|
|
373
|
+
--magritte-typography-label-4-regular-text-decoration-v20-0-0:none;
|
|
374
|
+
--magritte-typography-label-5-regular-font-family-v20-0-0:"Inter";
|
|
375
|
+
--magritte-typography-label-5-regular-font-weight-v20-0-0:400;
|
|
376
|
+
--magritte-typography-label-5-regular-line-height-v20-0-0:14px;
|
|
377
|
+
--magritte-typography-label-5-regular-font-size-v20-0-0:10px;
|
|
378
|
+
--magritte-typography-label-5-regular-letter-spacing-v20-0-0:0.02em;
|
|
379
|
+
--magritte-typography-label-5-regular-text-indent-v20-0-0:0px;
|
|
380
|
+
--magritte-typography-label-5-regular-text-transform-v20-0-0:none;
|
|
381
|
+
--magritte-typography-label-5-regular-text-decoration-v20-0-0:none;
|
|
382
|
+
--magritte-typography-paragraph-1-regular-font-family-v20-0-0:"Inter";
|
|
383
|
+
--magritte-typography-paragraph-1-regular-font-weight-v20-0-0:400;
|
|
384
|
+
--magritte-typography-paragraph-1-regular-line-height-v20-0-0:28px;
|
|
385
|
+
--magritte-typography-paragraph-1-regular-font-size-v20-0-0:18px;
|
|
386
|
+
--magritte-typography-paragraph-1-regular-letter-spacing-v20-0-0:0em;
|
|
387
|
+
--magritte-typography-paragraph-1-regular-text-indent-v20-0-0:0px;
|
|
388
|
+
--magritte-typography-paragraph-1-regular-text-transform-v20-0-0:none;
|
|
389
|
+
--magritte-typography-paragraph-1-regular-text-decoration-v20-0-0:none;
|
|
390
|
+
--magritte-typography-paragraph-2-regular-font-family-v20-0-0:"Inter";
|
|
391
|
+
--magritte-typography-paragraph-2-regular-font-weight-v20-0-0:400;
|
|
392
|
+
--magritte-typography-paragraph-2-regular-line-height-v20-0-0:26px;
|
|
393
|
+
--magritte-typography-paragraph-2-regular-font-size-v20-0-0:16px;
|
|
394
|
+
--magritte-typography-paragraph-2-regular-letter-spacing-v20-0-0:0.005em;
|
|
395
|
+
--magritte-typography-paragraph-2-regular-text-indent-v20-0-0:0px;
|
|
396
|
+
--magritte-typography-paragraph-2-regular-text-transform-v20-0-0:none;
|
|
397
|
+
--magritte-typography-paragraph-2-regular-text-decoration-v20-0-0:none;
|
|
398
|
+
--magritte-typography-paragraph-3-regular-font-family-v20-0-0:"Inter";
|
|
399
|
+
--magritte-typography-paragraph-3-regular-font-weight-v20-0-0:400;
|
|
400
|
+
--magritte-typography-paragraph-3-regular-line-height-v20-0-0:24px;
|
|
401
|
+
--magritte-typography-paragraph-3-regular-font-size-v20-0-0:14px;
|
|
402
|
+
--magritte-typography-paragraph-3-regular-letter-spacing-v20-0-0:0.01em;
|
|
403
|
+
--magritte-typography-paragraph-3-regular-text-indent-v20-0-0:0px;
|
|
404
|
+
--magritte-typography-paragraph-3-regular-text-transform-v20-0-0:none;
|
|
405
|
+
--magritte-typography-paragraph-3-regular-text-decoration-v20-0-0:none;
|
|
406
|
+
--magritte-typography-paragraph-4-regular-font-family-v20-0-0:"Inter";
|
|
407
|
+
--magritte-typography-paragraph-4-regular-font-weight-v20-0-0:400;
|
|
408
|
+
--magritte-typography-paragraph-4-regular-line-height-v20-0-0:22px;
|
|
409
|
+
--magritte-typography-paragraph-4-regular-font-size-v20-0-0:12px;
|
|
410
|
+
--magritte-typography-paragraph-4-regular-letter-spacing-v20-0-0:0.015em;
|
|
411
|
+
--magritte-typography-paragraph-4-regular-text-indent-v20-0-0:0px;
|
|
412
|
+
--magritte-typography-paragraph-4-regular-text-transform-v20-0-0:none;
|
|
413
|
+
--magritte-typography-paragraph-4-regular-text-decoration-v20-0-0:none;
|
|
414
|
+
--magritte-typography-_custom-1-semibold-font-family-v20-0-0:"Inter";
|
|
415
|
+
--magritte-typography-_custom-1-semibold-font-weight-v20-0-0:600;
|
|
416
|
+
--magritte-typography-_custom-1-semibold-line-height-v20-0-0:28px;
|
|
417
|
+
--magritte-typography-_custom-1-semibold-font-size-v20-0-0:18px;
|
|
418
|
+
--magritte-typography-_custom-1-semibold-letter-spacing-v20-0-0:0em;
|
|
419
|
+
--magritte-typography-_custom-1-semibold-text-indent-v20-0-0:0px;
|
|
420
|
+
--magritte-typography-_custom-1-semibold-text-transform-v20-0-0:none;
|
|
421
|
+
--magritte-typography-_custom-1-semibold-text-decoration-v20-0-0:none;
|
|
422
|
+
--magritte-typography-_custom-2-semibold-font-family-v20-0-0:"Inter";
|
|
423
|
+
--magritte-typography-_custom-2-semibold-font-weight-v20-0-0:600;
|
|
424
|
+
--magritte-typography-_custom-2-semibold-line-height-v20-0-0:26px;
|
|
425
|
+
--magritte-typography-_custom-2-semibold-font-size-v20-0-0:16px;
|
|
426
|
+
--magritte-typography-_custom-2-semibold-letter-spacing-v20-0-0:0.005em;
|
|
427
|
+
--magritte-typography-_custom-2-semibold-text-indent-v20-0-0:0px;
|
|
428
|
+
--magritte-typography-_custom-2-semibold-text-transform-v20-0-0:none;
|
|
429
|
+
--magritte-typography-_custom-2-semibold-text-decoration-v20-0-0:none;
|
|
430
|
+
--magritte-typography-_custom-3-semibold-font-family-v20-0-0:"Inter";
|
|
431
|
+
--magritte-typography-_custom-3-semibold-font-weight-v20-0-0:600;
|
|
432
|
+
--magritte-typography-_custom-3-semibold-line-height-v20-0-0:24px;
|
|
433
|
+
--magritte-typography-_custom-3-semibold-font-size-v20-0-0:14px;
|
|
434
|
+
--magritte-typography-_custom-3-semibold-letter-spacing-v20-0-0:0.01em;
|
|
435
|
+
--magritte-typography-_custom-3-semibold-text-indent-v20-0-0:0px;
|
|
436
|
+
--magritte-typography-_custom-3-semibold-text-transform-v20-0-0:none;
|
|
437
|
+
--magritte-typography-_custom-3-semibold-text-decoration-v20-0-0:none;
|
|
438
|
+
--magritte-typography-_custom-4-semibold-font-family-v20-0-0:"Inter";
|
|
439
|
+
--magritte-typography-_custom-4-semibold-font-weight-v20-0-0:400;
|
|
440
|
+
--magritte-typography-_custom-4-semibold-line-height-v20-0-0:22px;
|
|
441
|
+
--magritte-typography-_custom-4-semibold-font-size-v20-0-0:12px;
|
|
442
|
+
--magritte-typography-_custom-4-semibold-letter-spacing-v20-0-0:0.015em;
|
|
443
|
+
--magritte-typography-_custom-4-semibold-text-indent-v20-0-0:0px;
|
|
444
|
+
--magritte-typography-_custom-4-semibold-text-transform-v20-0-0:none;
|
|
445
|
+
--magritte-typography-_custom-4-semibold-text-decoration-v20-0-0:none;
|
|
446
|
+
--magritte-typography-_custom-5-semibold-font-family-v20-0-0:"Inter";
|
|
447
|
+
--magritte-typography-_custom-5-semibold-font-weight-v20-0-0:400;
|
|
448
|
+
--magritte-typography-_custom-5-semibold-line-height-v20-0-0:12px;
|
|
449
|
+
--magritte-typography-_custom-5-semibold-font-size-v20-0-0:10px;
|
|
450
|
+
--magritte-typography-_custom-5-semibold-letter-spacing-v20-0-0:0.015em;
|
|
451
|
+
--magritte-typography-_custom-5-semibold-text-indent-v20-0-0:0px;
|
|
452
|
+
--magritte-typography-_custom-5-semibold-text-transform-v20-0-0:none;
|
|
453
|
+
--magritte-typography-_custom-5-semibold-text-decoration-v20-0-0:none;
|
|
454
|
+
--magritte-typography-_custom-1-medium-font-family-v20-0-0:"Inter";
|
|
455
|
+
--magritte-typography-_custom-1-medium-font-weight-v20-0-0:undefined;
|
|
456
|
+
--magritte-typography-_custom-1-medium-line-height-v20-0-0:28px;
|
|
457
|
+
--magritte-typography-_custom-1-medium-font-size-v20-0-0:18px;
|
|
458
|
+
--magritte-typography-_custom-1-medium-letter-spacing-v20-0-0:0em;
|
|
459
|
+
--magritte-typography-_custom-1-medium-text-indent-v20-0-0:0px;
|
|
460
|
+
--magritte-typography-_custom-1-medium-text-transform-v20-0-0:none;
|
|
461
|
+
--magritte-typography-_custom-1-medium-text-decoration-v20-0-0:none;
|
|
462
|
+
--magritte-typography-_custom-2-medium-font-family-v20-0-0:"Inter";
|
|
463
|
+
--magritte-typography-_custom-2-medium-font-weight-v20-0-0:undefined;
|
|
464
|
+
--magritte-typography-_custom-2-medium-line-height-v20-0-0:26px;
|
|
465
|
+
--magritte-typography-_custom-2-medium-font-size-v20-0-0:16px;
|
|
466
|
+
--magritte-typography-_custom-2-medium-letter-spacing-v20-0-0:0.005em;
|
|
467
|
+
--magritte-typography-_custom-2-medium-text-indent-v20-0-0:0px;
|
|
468
|
+
--magritte-typography-_custom-2-medium-text-transform-v20-0-0:none;
|
|
469
|
+
--magritte-typography-_custom-2-medium-text-decoration-v20-0-0:none;
|
|
470
|
+
--magritte-typography-_custom-3-medium-font-family-v20-0-0:"Inter";
|
|
471
|
+
--magritte-typography-_custom-3-medium-font-weight-v20-0-0:undefined;
|
|
472
|
+
--magritte-typography-_custom-3-medium-line-height-v20-0-0:24px;
|
|
473
|
+
--magritte-typography-_custom-3-medium-font-size-v20-0-0:14px;
|
|
474
|
+
--magritte-typography-_custom-3-medium-letter-spacing-v20-0-0:0.01em;
|
|
475
|
+
--magritte-typography-_custom-3-medium-text-indent-v20-0-0:0px;
|
|
476
|
+
--magritte-typography-_custom-3-medium-text-transform-v20-0-0:none;
|
|
477
|
+
--magritte-typography-_custom-3-medium-text-decoration-v20-0-0:none;
|
|
478
|
+
--magritte-typography-_custom-4-medium-font-family-v20-0-0:"Inter";
|
|
479
|
+
--magritte-typography-_custom-4-medium-font-weight-v20-0-0:undefined;
|
|
480
|
+
--magritte-typography-_custom-4-medium-line-height-v20-0-0:22px;
|
|
481
|
+
--magritte-typography-_custom-4-medium-font-size-v20-0-0:12px;
|
|
482
|
+
--magritte-typography-_custom-4-medium-letter-spacing-v20-0-0:0.015em;
|
|
483
|
+
--magritte-typography-_custom-4-medium-text-indent-v20-0-0:0px;
|
|
484
|
+
--magritte-typography-_custom-4-medium-text-transform-v20-0-0:none;
|
|
485
|
+
--magritte-typography-_custom-4-medium-text-decoration-v20-0-0:none;
|
|
486
|
+
--magritte-typography-_custom-5-medium-font-family-v20-0-0:"Inter";
|
|
487
|
+
--magritte-typography-_custom-5-medium-font-weight-v20-0-0:undefined;
|
|
488
|
+
--magritte-typography-_custom-5-medium-line-height-v20-0-0:12px;
|
|
489
|
+
--magritte-typography-_custom-5-medium-font-size-v20-0-0:10px;
|
|
490
|
+
--magritte-typography-_custom-5-medium-letter-spacing-v20-0-0:0.015em;
|
|
491
|
+
--magritte-typography-_custom-5-medium-text-indent-v20-0-0:0px;
|
|
492
|
+
--magritte-typography-_custom-5-medium-text-transform-v20-0-0:none;
|
|
493
|
+
--magritte-typography-_custom-5-medium-text-decoration-v20-0-0:none;
|
|
494
|
+
--magritte-typography-_custom-1-italic-font-family-v20-0-0:"Inter";
|
|
495
|
+
--magritte-typography-_custom-1-italic-font-weight-v20-0-0:200;
|
|
496
|
+
--magritte-typography-_custom-1-italic-line-height-v20-0-0:28px;
|
|
497
|
+
--magritte-typography-_custom-1-italic-font-size-v20-0-0:18px;
|
|
498
|
+
--magritte-typography-_custom-1-italic-letter-spacing-v20-0-0:0em;
|
|
499
|
+
--magritte-typography-_custom-1-italic-text-indent-v20-0-0:0px;
|
|
500
|
+
--magritte-typography-_custom-1-italic-text-transform-v20-0-0:none;
|
|
501
|
+
--magritte-typography-_custom-1-italic-text-decoration-v20-0-0:none;
|
|
502
|
+
--magritte-typography-_custom-2-italic-font-family-v20-0-0:"Inter";
|
|
503
|
+
--magritte-typography-_custom-2-italic-font-weight-v20-0-0:200;
|
|
504
|
+
--magritte-typography-_custom-2-italic-line-height-v20-0-0:26px;
|
|
505
|
+
--magritte-typography-_custom-2-italic-font-size-v20-0-0:16px;
|
|
506
|
+
--magritte-typography-_custom-2-italic-letter-spacing-v20-0-0:0.005em;
|
|
507
|
+
--magritte-typography-_custom-2-italic-text-indent-v20-0-0:0px;
|
|
508
|
+
--magritte-typography-_custom-2-italic-text-transform-v20-0-0:none;
|
|
509
|
+
--magritte-typography-_custom-2-italic-text-decoration-v20-0-0:none;
|
|
510
|
+
--magritte-typography-_custom-3-italic-font-family-v20-0-0:"Inter";
|
|
511
|
+
--magritte-typography-_custom-3-italic-font-weight-v20-0-0:200;
|
|
512
|
+
--magritte-typography-_custom-3-italic-line-height-v20-0-0:24px;
|
|
513
|
+
--magritte-typography-_custom-3-italic-font-size-v20-0-0:14px;
|
|
514
|
+
--magritte-typography-_custom-3-italic-letter-spacing-v20-0-0:0.01em;
|
|
515
|
+
--magritte-typography-_custom-3-italic-text-indent-v20-0-0:0px;
|
|
516
|
+
--magritte-typography-_custom-3-italic-text-transform-v20-0-0:none;
|
|
517
|
+
--magritte-typography-_custom-3-italic-text-decoration-v20-0-0:none;
|
|
518
|
+
--magritte-typography-_custom-4-italic-font-family-v20-0-0:"Inter";
|
|
519
|
+
--magritte-typography-_custom-4-italic-font-weight-v20-0-0:200;
|
|
520
|
+
--magritte-typography-_custom-4-italic-line-height-v20-0-0:22px;
|
|
521
|
+
--magritte-typography-_custom-4-italic-font-size-v20-0-0:12px;
|
|
522
|
+
--magritte-typography-_custom-4-italic-letter-spacing-v20-0-0:0.015em;
|
|
523
|
+
--magritte-typography-_custom-4-italic-text-indent-v20-0-0:0px;
|
|
524
|
+
--magritte-typography-_custom-4-italic-text-transform-v20-0-0:none;
|
|
525
|
+
--magritte-typography-_custom-4-italic-text-decoration-v20-0-0:none;
|
|
526
|
+
--magritte-typography-_custom-5-italic-font-family-v20-0-0:"Inter";
|
|
527
|
+
--magritte-typography-_custom-5-italic-font-weight-v20-0-0:200;
|
|
528
|
+
--magritte-typography-_custom-5-italic-line-height-v20-0-0:12px;
|
|
529
|
+
--magritte-typography-_custom-5-italic-font-size-v20-0-0:10px;
|
|
530
|
+
--magritte-typography-_custom-5-italic-letter-spacing-v20-0-0:0.015em;
|
|
531
|
+
--magritte-typography-_custom-5-italic-text-indent-v20-0-0:0px;
|
|
532
|
+
--magritte-typography-_custom-5-italic-text-transform-v20-0-0:none;
|
|
533
|
+
--magritte-typography-_custom-5-italic-text-decoration-v20-0-0:none;
|
|
534
|
+
}
|
|
535
|
+
.magritte-scroll-wrapper___vTdZl_4-4-4{
|
|
6
536
|
position:relative;
|
|
7
537
|
touch-action:pan-y pinch-zoom;
|
|
8
538
|
}
|
|
9
|
-
.magritte-scrollable-container___AKIUp_4-4-
|
|
539
|
+
.magritte-scrollable-container___AKIUp_4-4-4{
|
|
10
540
|
display:block;
|
|
11
541
|
overflow-x:hidden;
|
|
12
542
|
overflow-x:clip;
|
|
@@ -16,57 +546,57 @@
|
|
|
16
546
|
padding:0 4px;
|
|
17
547
|
margin:0 -4px;
|
|
18
548
|
}
|
|
19
|
-
.magritte-fade-both-sides___pBan7_4-4-
|
|
549
|
+
.magritte-fade-both-sides___pBan7_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scrollable-container___AKIUp_4-4-4{
|
|
20
550
|
padding:4px 0;
|
|
21
551
|
margin:-4px 0;
|
|
22
552
|
--both-sides-mask:linear-gradient(90deg, transparent 0, transparent 36px, #000 100.504px, #000 calc(100% - 100.50399999999999px), transparent calc(100% - 36px));
|
|
23
553
|
-webkit-mask:var(--both-sides-mask);
|
|
24
554
|
mask:var(--both-sides-mask);
|
|
25
555
|
}
|
|
26
|
-
.magritte-fade-left-side___Hlpre_4-4-
|
|
556
|
+
.magritte-fade-left-side___Hlpre_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scrollable-container___AKIUp_4-4-4{
|
|
27
557
|
margin-left:0;
|
|
28
558
|
padding-left:0;
|
|
29
559
|
--left-fade-mask:linear-gradient(90deg, transparent 0, transparent 36px, #000 100.504px);
|
|
30
560
|
-webkit-mask:var(--left-fade-mask);
|
|
31
561
|
mask:var(--left-fade-mask);
|
|
32
562
|
}
|
|
33
|
-
.magritte-fade-right-side___Lskyt_4-4-
|
|
563
|
+
.magritte-fade-right-side___Lskyt_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scrollable-container___AKIUp_4-4-4{
|
|
34
564
|
padding-right:0;
|
|
35
565
|
margin-right:0;
|
|
36
566
|
--right-fade-mask:linear-gradient(90deg, #000 0, #000 calc(100% - 100.50399999999999px), transparent calc(100% - 36px));
|
|
37
567
|
-webkit-mask:var(--right-fade-mask);
|
|
38
568
|
mask:var(--right-fade-mask);
|
|
39
569
|
}
|
|
40
|
-
.magritte-scroll-button___4GQu3_4-4-
|
|
570
|
+
.magritte-scroll-button___4GQu3_4-4-4{
|
|
41
571
|
display:none;
|
|
42
572
|
position:absolute;
|
|
43
573
|
top:50%;
|
|
44
574
|
transform:translateY(-50%);
|
|
45
575
|
}
|
|
46
|
-
.magritte-scroll-button-left___UueEY_4-4-
|
|
576
|
+
.magritte-scroll-button-left___UueEY_4-4-4{
|
|
47
577
|
left:0;
|
|
48
578
|
}
|
|
49
|
-
.magritte-fade-left-side___Hlpre_4-4-
|
|
50
|
-
.magritte-fade-both-sides___pBan7_4-4-
|
|
579
|
+
.magritte-fade-left-side___Hlpre_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scroll-button-left___UueEY_4-4-4,
|
|
580
|
+
.magritte-fade-both-sides___pBan7_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scroll-button-left___UueEY_4-4-4{
|
|
51
581
|
display:block;
|
|
52
582
|
}
|
|
53
|
-
.magritte-scroll-button-right___wZOn-_4-4-
|
|
583
|
+
.magritte-scroll-button-right___wZOn-_4-4-4{
|
|
54
584
|
right:0;
|
|
55
585
|
}
|
|
56
|
-
.magritte-fade-right-side___Lskyt_4-4-
|
|
57
|
-
.magritte-fade-both-sides___pBan7_4-4-
|
|
586
|
+
.magritte-fade-right-side___Lskyt_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scroll-button-right___wZOn-_4-4-4,
|
|
587
|
+
.magritte-fade-both-sides___pBan7_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scroll-button-right___wZOn-_4-4-4{
|
|
58
588
|
display:block;
|
|
59
589
|
}
|
|
60
|
-
.magritte-position-container___1A4Bv_4-4-
|
|
590
|
+
.magritte-position-container___1A4Bv_4-4-4{
|
|
61
591
|
box-sizing:border-box;
|
|
62
592
|
width:100%;
|
|
63
593
|
}
|
|
64
|
-
.magritte-position-container-animated___XuPNW_4-4-
|
|
594
|
+
.magritte-position-container-animated___XuPNW_4-4-4{
|
|
65
595
|
transition-property:transform;
|
|
66
|
-
transition-duration:var(--magritte-semantic-animation-ease-in-out-tiger-200-duration-
|
|
67
|
-
transition-timing-function:var(--magritte-semantic-animation-ease-in-out-tiger-200-timing-function-
|
|
596
|
+
transition-duration:var(--magritte-semantic-animation-ease-in-out-tiger-200-duration-v20-0-0);
|
|
597
|
+
transition-timing-function:var(--magritte-semantic-animation-ease-in-out-tiger-200-timing-function-v20-0-0);
|
|
68
598
|
}
|
|
69
|
-
.magritte-dot-container___ahtlG_4-4-
|
|
599
|
+
.magritte-dot-container___ahtlG_4-4-4{
|
|
70
600
|
display:flex;
|
|
71
601
|
justify-content:center;
|
|
72
602
|
}
|
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-
|
|
11
|
+
import './useScrollContainer-H5QZsUZy.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-
|
|
11
|
+
import './useScrollContainer-H5QZsUZy.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.4.
|
|
3
|
+
"version": "4.4.4",
|
|
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": "
|
|
23
|
+
"@hh.ru/magritte-design-tokens": "20.0.0",
|
|
24
24
|
"@hh.ru/magritte-internal-custom-scroll": "1.3.1",
|
|
25
|
-
"@hh.ru/magritte-ui-action": "4.4.
|
|
25
|
+
"@hh.ru/magritte-ui-action": "4.4.16",
|
|
26
26
|
"@hh.ru/magritte-ui-breakpoint": "4.1.0",
|
|
27
|
-
"@hh.ru/magritte-ui-dot-pages": "3.0.
|
|
28
|
-
"@hh.ru/magritte-ui-icon": "7.9.
|
|
27
|
+
"@hh.ru/magritte-ui-dot-pages": "3.0.12",
|
|
28
|
+
"@hh.ru/magritte-ui-icon": "7.9.5",
|
|
29
29
|
"@hh.ru/magritte-ui-mock-component": "1.0.11",
|
|
30
|
-
"@hh.ru/magritte-ui-spacing": "2.0.
|
|
30
|
+
"@hh.ru/magritte-ui-spacing": "2.0.33"
|
|
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": "
|
|
39
|
+
"gitHead": "c433893f26e96398f781c1b7698d13bdcb442d48"
|
|
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, scheduleForAnimationFrame } from './utils.js';
|
|
7
7
|
|
|
8
|
-
var styles = {"scroll-wrapper":"magritte-scroll-wrapper___vTdZl_4-4-
|
|
8
|
+
var styles = {"scroll-wrapper":"magritte-scroll-wrapper___vTdZl_4-4-4","scrollWrapper":"magritte-scroll-wrapper___vTdZl_4-4-4","scrollable-container":"magritte-scrollable-container___AKIUp_4-4-4","scrollableContainer":"magritte-scrollable-container___AKIUp_4-4-4","fade-both-sides":"magritte-fade-both-sides___pBan7_4-4-4","fadeBothSides":"magritte-fade-both-sides___pBan7_4-4-4","no-buttons":"magritte-no-buttons___eCwO-_4-4-4","noButtons":"magritte-no-buttons___eCwO-_4-4-4","fade-left-side":"magritte-fade-left-side___Hlpre_4-4-4","fadeLeftSide":"magritte-fade-left-side___Hlpre_4-4-4","fade-right-side":"magritte-fade-right-side___Lskyt_4-4-4","fadeRightSide":"magritte-fade-right-side___Lskyt_4-4-4","scroll-button":"magritte-scroll-button___4GQu3_4-4-4","scrollButton":"magritte-scroll-button___4GQu3_4-4-4","scroll-button-left":"magritte-scroll-button-left___UueEY_4-4-4","scrollButtonLeft":"magritte-scroll-button-left___UueEY_4-4-4","scroll-button-right":"magritte-scroll-button-right___wZOn-_4-4-4","scrollButtonRight":"magritte-scroll-button-right___wZOn-_4-4-4","position-container":"magritte-position-container___1A4Bv_4-4-4","positionContainer":"magritte-position-container___1A4Bv_4-4-4","position-container-animated":"magritte-position-container-animated___XuPNW_4-4-4","positionContainerAnimated":"magritte-position-container-animated___XuPNW_4-4-4","dot-container":"magritte-dot-container___ahtlG_4-4-4","dotContainer":"magritte-dot-container___ahtlG_4-4-4"};
|
|
9
9
|
|
|
10
10
|
const BUTTON_WIDTH = 44;
|
|
11
11
|
const FOCUS_OUTLINE_WIDTH = 4;
|
|
@@ -443,4 +443,4 @@ const useScrollContainer = (leftCorrection, rightCorrection, disableButtons, sho
|
|
|
443
443
|
};
|
|
444
444
|
|
|
445
445
|
export { styles as s, useScrollContainer as u };
|
|
446
|
-
//# sourceMappingURL=useScrollContainer-
|
|
446
|
+
//# sourceMappingURL=useScrollContainer-H5QZsUZy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollContainer-DZWVjt0b.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, scheduleForAnimationFrame } 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 state.positionContainerTranslation = clamp(translation, containerWidth - positionContainerWidth, 0);\n positionContainerRef.current.style.transform = `translate3d(${state.positionContainerTranslation}px, 0, 0)`;\n state.onScroll?.();\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 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 let firstCall = true;\n const observer = new ResizeObserver(\n scheduleForAnimationFrame(() => {\n if (firstCall) {\n firstCall = false;\n return;\n }\n recalculateItemPositions(state);\n })\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 });\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 // 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 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 const onTouchMove = useCallback((event: ScrollGestureEvent) => {\n if (scrollStateRef.current.scrollAnimationInProgress) {\n return;\n }\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 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-H5QZsUZy.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, scheduleForAnimationFrame } 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 state.positionContainerTranslation = clamp(translation, containerWidth - positionContainerWidth, 0);\n positionContainerRef.current.style.transform = `translate3d(${state.positionContainerTranslation}px, 0, 0)`;\n state.onScroll?.();\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 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 let firstCall = true;\n const observer = new ResizeObserver(\n scheduleForAnimationFrame(() => {\n if (firstCall) {\n firstCall = false;\n return;\n }\n recalculateItemPositions(state);\n })\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 });\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 // 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 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 const onTouchMove = useCallback((event: ScrollGestureEvent) => {\n if (scrollStateRef.current.scrollAnimationInProgress) {\n return;\n }\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 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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"}
|
package/useScrollContainer.js
CHANGED
|
@@ -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-
|
|
7
|
+
export { u as useScrollContainer } from './useScrollContainer-H5QZsUZy.js';
|
|
8
8
|
//# sourceMappingURL=useScrollContainer.js.map
|