@hh.ru/magritte-ui-scrollable-container 6.5.2 → 6.5.3
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/ObservableValue.js +17 -17
- package/ObservableValue.js.map +1 -1
- package/ScrollStateProvider.d.ts +2 -2
- package/ScrollStateProvider.js +11 -11
- package/ScrollStateProvider.js.map +1 -1
- package/ScrollableContainer.d.ts +8 -8
- package/ScrollableContainer.js +99 -60
- package/ScrollableContainer.js.map +1 -1
- package/ScrollableContainerButton.d.ts +1 -1
- package/ScrollableContainerButton.js +15 -12
- package/ScrollableContainerButton.js.map +1 -1
- package/ScrollableContainerDefaultLayout.d.ts +1 -1
- package/ScrollableContainerDefaultLayout.js +130 -68
- package/ScrollableContainerDefaultLayout.js.map +1 -1
- package/ScrollableContainerDotPages.d.ts +1 -1
- package/ScrollableContainerDotPages.js +59 -47
- package/ScrollableContainerDotPages.js.map +1 -1
- package/ScrollableContainerGallery.d.ts +1 -1
- package/ScrollableContainerGallery.js +85 -54
- package/ScrollableContainerGallery.js.map +1 -1
- package/ScrollableItem.d.ts +1 -1
- package/ScrollableItem.js +22 -12
- package/ScrollableItem.js.map +1 -1
- package/index.css +19 -19
- package/index.d.ts +6 -6
- package/index.js +1 -1
- package/index.mock.d.ts +4 -4
- package/index.mock.js +21 -21
- package/index.mock.js.map +1 -1
- package/package.json +6 -6
- package/scrollableContainer-CWsF-84M.js +5 -0
- package/scrollableContainer-CWsF-84M.js.map +1 -0
- package/types.js +1 -1
- package/types.js.map +1 -1
- package/useScrollContainer.js +181 -157
- package/useScrollContainer.js.map +1 -1
- package/useScrollableControls.d.ts +2 -2
- package/useScrollableControls.js +90 -72
- package/useScrollableControls.js.map +1 -1
- package/utils.d.ts +2 -2
- package/utils.js +157 -254
- package/utils.js.map +1 -1
- package/scrollableContainer-C0a8z9uL.js +0 -5
- package/scrollableContainer-C0a8z9uL.js.map +0 -1
package/ObservableValue.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
class ObservableValue {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
on(_event, callback) {
|
|
18
|
-
this.listeners.add(callback);
|
|
19
|
-
return () => this.listeners.delete(callback);
|
|
3
|
+
value;
|
|
4
|
+
listeners = /* @__PURE__ */ new Set();
|
|
5
|
+
constructor(initial) {
|
|
6
|
+
this.value = initial;
|
|
7
|
+
}
|
|
8
|
+
get() {
|
|
9
|
+
return this.value;
|
|
10
|
+
}
|
|
11
|
+
set(value) {
|
|
12
|
+
if (this.value !== value || Array.isArray(this.value)) {
|
|
13
|
+
this.value = value;
|
|
14
|
+
this.listeners.forEach((listener) => listener(value));
|
|
20
15
|
}
|
|
16
|
+
}
|
|
17
|
+
on(_event, callback) {
|
|
18
|
+
this.listeners.add(callback);
|
|
19
|
+
return () => this.listeners.delete(callback);
|
|
20
|
+
}
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export { ObservableValue };
|
package/ObservableValue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservableValue.js","sources":["src/ObservableValue.ts"],"sourcesContent":["export interface ObservableValueInterface<T> {\n get(): T;\n set(value: T): void;\n on(event: 'change', callback: (value: T) => void): VoidFunction;\n}\n\nexport class ObservableValue<T> implements ObservableValueInterface<T> {\n private value: T;\n private listeners = new Set<(value: T) => void>();\n\n constructor(initial: T) {\n this.value = initial;\n }\n\n get(): T {\n return this.value;\n }\n\n set(value: T): void {\n if (this.value !== value || Array.isArray(this.value)) {\n this.value = value;\n this.listeners.forEach((listener) => listener(value));\n }\n }\n\n on(_event: 'change', callback: (value: T) => void): VoidFunction {\n this.listeners.add(callback);\n return () => this.listeners.delete(callback);\n }\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ObservableValue.js","sources":["src/ObservableValue.ts"],"sourcesContent":["export interface ObservableValueInterface<T> {\n get(): T;\n set(value: T): void;\n on(event: 'change', callback: (value: T) => void): VoidFunction;\n}\n\nexport class ObservableValue<T> implements ObservableValueInterface<T> {\n private value: T;\n private listeners = new Set<(value: T) => void>();\n\n constructor(initial: T) {\n this.value = initial;\n }\n\n get(): T {\n return this.value;\n }\n\n set(value: T): void {\n if (this.value !== value || Array.isArray(this.value)) {\n this.value = value;\n this.listeners.forEach((listener) => listener(value));\n }\n }\n\n on(_event: 'change', callback: (value: T) => void): VoidFunction {\n this.listeners.add(callback);\n return () => this.listeners.delete(callback);\n }\n}\n"],"names":[],"mappings":"AAMO,MAAM,eAA0D,CAAA;AAAA,EAC3D,KAAA,CAAA;AAAA,EACA,SAAA,uBAAgB,GAAwB,EAAA,CAAA;AAAA,EAEhD,YAAY,OAAY,EAAA;AACpB,IAAA,IAAA,CAAK,KAAQ,GAAA,OAAA,CAAA;AAAA,GACjB;AAAA,EAEA,GAAS,GAAA;AACL,IAAA,OAAO,IAAK,CAAA,KAAA,CAAA;AAAA,GAChB;AAAA,EAEA,IAAI,KAAgB,EAAA;AAChB,IAAA,IAAI,KAAK,KAAU,KAAA,KAAA,IAAS,MAAM,OAAQ,CAAA,IAAA,CAAK,KAAK,CAAG,EAAA;AACnD,MAAA,IAAA,CAAK,KAAQ,GAAA,KAAA,CAAA;AACb,MAAA,IAAA,CAAK,UAAU,OAAQ,CAAA,CAAC,QAAa,KAAA,QAAA,CAAS,KAAK,CAAC,CAAA,CAAA;AAAA,KACxD;AAAA,GACJ;AAAA,EAEA,EAAA,CAAG,QAAkB,QAA4C,EAAA;AAC7D,IAAK,IAAA,CAAA,SAAA,CAAU,IAAI,QAAQ,CAAA,CAAA;AAC3B,IAAA,OAAO,MAAM,IAAA,CAAK,SAAU,CAAA,MAAA,CAAO,QAAQ,CAAA,CAAA;AAAA,GAC/C;AACJ;;;;"}
|
package/ScrollStateProvider.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type RefObject } from 'react';
|
|
2
2
|
import { MotionValue } from 'motion/react';
|
|
3
|
-
import { ObservableValue } from '
|
|
4
|
-
import { type ItemWithOffset, type ScrollSnapAlign } from '
|
|
3
|
+
import { ObservableValue } from './ObservableValue';
|
|
4
|
+
import { type ItemWithOffset, type ScrollSnapAlign } from './types';
|
|
5
5
|
export type BehaviorScrollType = 'animate' | 'instant';
|
|
6
6
|
export interface ScrollState {
|
|
7
7
|
/** ширина контента, которая складывается из ширины элементов галереи */
|
package/ScrollStateProvider.js
CHANGED
|
@@ -4,17 +4,17 @@ import { MotionValue } from 'motion/react';
|
|
|
4
4
|
import { ObservableValue } from './ObservableValue.js';
|
|
5
5
|
|
|
6
6
|
const createScrollState = () => ({
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
7
|
+
contentWidth: new ObservableValue(0),
|
|
8
|
+
viewportWidth: new ObservableValue(0),
|
|
9
|
+
items: new ObservableValue([]),
|
|
10
|
+
scrollPosition: new MotionValue(0),
|
|
11
|
+
springScrollPosition: null,
|
|
12
|
+
defaultButtonsCorrection: new ObservableValue(0),
|
|
13
|
+
leftCorrection: new ObservableValue(0),
|
|
14
|
+
rightCorrection: new ObservableValue(0),
|
|
15
|
+
indexForDeferScroll: -1,
|
|
16
|
+
behaviorScrollTypeDeferScroll: "animate",
|
|
17
|
+
scrollSnapAlign: "none"
|
|
18
18
|
});
|
|
19
19
|
const ScrollStateContext = createContext(createScrollState());
|
|
20
20
|
const useScrollState = () => useContext(ScrollStateContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollStateProvider.js","sources":["src/ScrollStateProvider.tsx"],"sourcesContent":["import { type RefObject, createContext, useContext } from 'react';\nimport { MotionValue } from 'motion/react';\n\nimport { ObservableValue } from '@hh.ru/magritte-ui-scrollable-container/ObservableValue';\nimport { type ItemWithOffset, type ScrollSnapAlign } from '@hh.ru/magritte-ui-scrollable-container/types';\n\nexport type BehaviorScrollType = 'animate' | 'instant';\n\nexport interface ScrollState {\n /** ширина контента, которая складывается из ширины элементов галереи */\n contentWidth: ObservableValue<number>;\n /** ширина вьюпорта для просмотра галереи */\n viewportWidth: ObservableValue<number>;\n /** элементы галереи */\n items: ObservableValue<RefObject<HTMLElement & ItemWithOffset>[]>;\n /** текущая позиция */\n scrollPosition: MotionValue<number>;\n /** текущая позиция, обернется в spring */\n springScrollPosition: MotionValue<number> | null;\n /** Определяет, как ближайший элемент будет размещён во вьюпорте при автоматическом скролле */\n scrollSnapAlign: ScrollSnapAlign;\n /**\n * флаг коррекции \"по умолчанию\"\n * возникает при использовании \"стандартных\" (по спеке) кнопок в fade\n */\n defaultButtonsCorrection: ObservableValue<number>;\n /** значения коррекции */\n leftCorrection: ObservableValue<number>;\n rightCorrection: ObservableValue<number>;\n /** индекс элемента для отложенного скролла */\n indexForDeferScroll: number;\n /** тип поведения для отложенного скролла */\n behaviorScrollTypeDeferScroll: BehaviorScrollType;\n}\n\nexport const createScrollState = (): ScrollState => ({\n contentWidth: new ObservableValue(0),\n viewportWidth: new ObservableValue(0),\n items: new ObservableValue<RefObject<HTMLElement & ItemWithOffset>[]>([]),\n scrollPosition: new MotionValue(0),\n springScrollPosition: null,\n defaultButtonsCorrection: new ObservableValue(0),\n leftCorrection: new ObservableValue(0),\n rightCorrection: new ObservableValue(0),\n indexForDeferScroll: -1,\n behaviorScrollTypeDeferScroll: 'animate',\n scrollSnapAlign: 'none',\n});\n\nexport const ScrollStateContext = createContext<ScrollState>(createScrollState());\n\nexport const useScrollState = (): ScrollState => useContext(ScrollStateContext);\n"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"ScrollStateProvider.js","sources":["src/ScrollStateProvider.tsx"],"sourcesContent":["import { type RefObject, createContext, useContext } from 'react';\nimport { MotionValue } from 'motion/react';\n\nimport { ObservableValue } from '@hh.ru/magritte-ui-scrollable-container/ObservableValue';\nimport { type ItemWithOffset, type ScrollSnapAlign } from '@hh.ru/magritte-ui-scrollable-container/types';\n\nexport type BehaviorScrollType = 'animate' | 'instant';\n\nexport interface ScrollState {\n /** ширина контента, которая складывается из ширины элементов галереи */\n contentWidth: ObservableValue<number>;\n /** ширина вьюпорта для просмотра галереи */\n viewportWidth: ObservableValue<number>;\n /** элементы галереи */\n items: ObservableValue<RefObject<HTMLElement & ItemWithOffset>[]>;\n /** текущая позиция */\n scrollPosition: MotionValue<number>;\n /** текущая позиция, обернется в spring */\n springScrollPosition: MotionValue<number> | null;\n /** Определяет, как ближайший элемент будет размещён во вьюпорте при автоматическом скролле */\n scrollSnapAlign: ScrollSnapAlign;\n /**\n * флаг коррекции \"по умолчанию\"\n * возникает при использовании \"стандартных\" (по спеке) кнопок в fade\n */\n defaultButtonsCorrection: ObservableValue<number>;\n /** значения коррекции */\n leftCorrection: ObservableValue<number>;\n rightCorrection: ObservableValue<number>;\n /** индекс элемента для отложенного скролла */\n indexForDeferScroll: number;\n /** тип поведения для отложенного скролла */\n behaviorScrollTypeDeferScroll: BehaviorScrollType;\n}\n\nexport const createScrollState = (): ScrollState => ({\n contentWidth: new ObservableValue(0),\n viewportWidth: new ObservableValue(0),\n items: new ObservableValue<RefObject<HTMLElement & ItemWithOffset>[]>([]),\n scrollPosition: new MotionValue(0),\n springScrollPosition: null,\n defaultButtonsCorrection: new ObservableValue(0),\n leftCorrection: new ObservableValue(0),\n rightCorrection: new ObservableValue(0),\n indexForDeferScroll: -1,\n behaviorScrollTypeDeferScroll: 'animate',\n scrollSnapAlign: 'none',\n});\n\nexport const ScrollStateContext = createContext<ScrollState>(createScrollState());\n\nexport const useScrollState = (): ScrollState => useContext(ScrollStateContext);\n"],"names":[],"mappings":";;;;AAmCO,MAAM,oBAAoB,OAAoB;AAAA,EACjD,YAAA,EAAc,IAAI,eAAA,CAAgB,CAAC,CAAA;AAAA,EACnC,aAAA,EAAe,IAAI,eAAA,CAAgB,CAAC,CAAA;AAAA,EACpC,KAAO,EAAA,IAAI,eAA2D,CAAA,EAAE,CAAA;AAAA,EACxE,cAAA,EAAgB,IAAI,WAAA,CAAY,CAAC,CAAA;AAAA,EACjC,oBAAsB,EAAA,IAAA;AAAA,EACtB,wBAAA,EAA0B,IAAI,eAAA,CAAgB,CAAC,CAAA;AAAA,EAC/C,cAAA,EAAgB,IAAI,eAAA,CAAgB,CAAC,CAAA;AAAA,EACrC,eAAA,EAAiB,IAAI,eAAA,CAAgB,CAAC,CAAA;AAAA,EACtC,mBAAqB,EAAA,CAAA,CAAA;AAAA,EACrB,6BAA+B,EAAA,SAAA;AAAA,EAC/B,eAAiB,EAAA,MAAA;AACrB,CAAA,EAAA;AAEa,MAAA,kBAAA,GAAqB,aAA2B,CAAA,iBAAA,EAAmB,EAAA;AAEnE,MAAA,cAAA,GAAiB,MAAmB,UAAA,CAAW,kBAAkB;;;;"}
|
package/ScrollableContainer.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ScrollableContainerLeft, ScrollableContainerRight } from '
|
|
2
|
-
import { ScrollableContainerDefaultLayout } from '
|
|
3
|
-
import { ScrollableContainerDotPages } from '
|
|
4
|
-
import { ScrollableContainerGallery } from '
|
|
5
|
-
import { ScrollableItem } from '
|
|
6
|
-
import { ScrollableControls } from '
|
|
1
|
+
import { ScrollableContainerLeft, ScrollableContainerRight } from './ScrollableContainerButton';
|
|
2
|
+
import { ScrollableContainerDefaultLayout } from './ScrollableContainerDefaultLayout';
|
|
3
|
+
import { ScrollableContainerDotPages } from './ScrollableContainerDotPages';
|
|
4
|
+
import { ScrollableContainerGallery } from './ScrollableContainerGallery';
|
|
5
|
+
import { ScrollableItem } from './ScrollableItem';
|
|
6
|
+
import { ScrollableControls } from './types';
|
|
7
7
|
export interface ScrollableContainerComponents {
|
|
8
8
|
Left: typeof ScrollableContainerLeft;
|
|
9
9
|
Right: typeof ScrollableContainerRight;
|
|
@@ -12,9 +12,9 @@ export interface ScrollableContainerComponents {
|
|
|
12
12
|
Gallery: typeof ScrollableContainerGallery;
|
|
13
13
|
DotPages: typeof ScrollableContainerDotPages;
|
|
14
14
|
}
|
|
15
|
-
declare const ScrollableContainerComponent: import("react").ForwardRefExoticComponent<import("
|
|
15
|
+
declare const ScrollableContainerComponent: import("react").ForwardRefExoticComponent<import("./types").SpacingCorrectionProps & {
|
|
16
16
|
children: import("react").ReactNode;
|
|
17
|
-
scrollSnapAlign?: import("
|
|
17
|
+
scrollSnapAlign?: import("./types").ScrollSnapAlign;
|
|
18
18
|
} & import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<ScrollableControls>>;
|
|
19
19
|
declare const ScrollableContainer: typeof ScrollableContainerComponent & ScrollableContainerComponents;
|
|
20
20
|
export { ScrollableContainer };
|
package/ScrollableContainer.js
CHANGED
|
@@ -11,7 +11,7 @@ import { ScrollableContainerGallery } from './ScrollableContainerGallery.js';
|
|
|
11
11
|
import { ScrollableItem } from './ScrollableItem.js';
|
|
12
12
|
import { useScrollableControlsWithState } from './useScrollableControls.js';
|
|
13
13
|
import { getActualCorrection, useInitOnce } from './utils.js';
|
|
14
|
-
import { s as styles } from './scrollableContainer-
|
|
14
|
+
import { s as styles } from './scrollableContainer-CWsF-84M.js';
|
|
15
15
|
import 'motion/react';
|
|
16
16
|
import './ObservableValue.js';
|
|
17
17
|
import '@hh.ru/magritte-common-use-translation';
|
|
@@ -24,57 +24,85 @@ import './useScrollContainer.js';
|
|
|
24
24
|
import '@hh.ru/magritte-common-func-utils';
|
|
25
25
|
import '@hh.ru/magritte-internal-custom-scroll';
|
|
26
26
|
|
|
27
|
-
const ScrollableContainerComponent = forwardRef(
|
|
27
|
+
const ScrollableContainerComponent = forwardRef(
|
|
28
|
+
({
|
|
29
|
+
children,
|
|
30
|
+
scrollSnapAlign = "none",
|
|
31
|
+
correction = 0,
|
|
32
|
+
correctionXS,
|
|
33
|
+
correctionS,
|
|
34
|
+
correctionM,
|
|
35
|
+
correctionL,
|
|
36
|
+
correctionXL,
|
|
37
|
+
correctionXXL,
|
|
38
|
+
correctionLeftXS,
|
|
39
|
+
correctionLeftS,
|
|
40
|
+
correctionLeftM,
|
|
41
|
+
correctionLeftL,
|
|
42
|
+
correctionLeftXL,
|
|
43
|
+
correctionLeftXXL,
|
|
44
|
+
correctionRightXS,
|
|
45
|
+
correctionRightS,
|
|
46
|
+
correctionRightM,
|
|
47
|
+
correctionRightL,
|
|
48
|
+
correctionRightXL,
|
|
49
|
+
correctionRightXXL,
|
|
50
|
+
style,
|
|
51
|
+
...props
|
|
52
|
+
}, controlsRef) => {
|
|
28
53
|
const breakpoint = useBreakpoint();
|
|
29
54
|
const spacingCorrectionStyles = useMemo(() => {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
const correctionValue = getActualCorrection(
|
|
56
|
+
{
|
|
57
|
+
correction,
|
|
58
|
+
correctionXS,
|
|
59
|
+
correctionS,
|
|
60
|
+
correctionM,
|
|
61
|
+
correctionL,
|
|
62
|
+
correctionXL,
|
|
63
|
+
correctionXXL,
|
|
64
|
+
correctionLeftXS,
|
|
65
|
+
correctionLeftS,
|
|
66
|
+
correctionLeftM,
|
|
67
|
+
correctionLeftL,
|
|
68
|
+
correctionLeftXL,
|
|
69
|
+
correctionLeftXXL,
|
|
70
|
+
correctionRightXS,
|
|
71
|
+
correctionRightS,
|
|
72
|
+
correctionRightM,
|
|
73
|
+
correctionRightL,
|
|
74
|
+
correctionRightXL,
|
|
75
|
+
correctionRightXXL
|
|
76
|
+
},
|
|
77
|
+
breakpoint.breakpoint
|
|
78
|
+
);
|
|
79
|
+
return {
|
|
80
|
+
marginLeft: -correctionValue.leftCorrection,
|
|
81
|
+
marginRight: -correctionValue.rightCorrection,
|
|
82
|
+
paddingLeft: correctionValue.leftCorrection,
|
|
83
|
+
paddingRight: correctionValue.rightCorrection
|
|
84
|
+
};
|
|
57
85
|
}, [
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
86
|
+
correction,
|
|
87
|
+
correctionXS,
|
|
88
|
+
correctionS,
|
|
89
|
+
correctionM,
|
|
90
|
+
correctionL,
|
|
91
|
+
correctionXL,
|
|
92
|
+
correctionXXL,
|
|
93
|
+
correctionLeftXS,
|
|
94
|
+
correctionLeftS,
|
|
95
|
+
correctionLeftM,
|
|
96
|
+
correctionLeftL,
|
|
97
|
+
correctionLeftXL,
|
|
98
|
+
correctionLeftXXL,
|
|
99
|
+
correctionRightXS,
|
|
100
|
+
correctionRightS,
|
|
101
|
+
correctionRightM,
|
|
102
|
+
correctionRightL,
|
|
103
|
+
correctionRightXL,
|
|
104
|
+
correctionRightXXL,
|
|
105
|
+
breakpoint.breakpoint
|
|
78
106
|
]);
|
|
79
107
|
const scrollState = useInitOnce(createScrollState);
|
|
80
108
|
scrollState.scrollSnapAlign = scrollSnapAlign;
|
|
@@ -82,17 +110,28 @@ const ScrollableContainerComponent = forwardRef(({ children, scrollSnapAlign = '
|
|
|
82
110
|
scrollState.rightCorrection.set(spacingCorrectionStyles.paddingRight);
|
|
83
111
|
const controls = useScrollableControlsWithState(scrollState);
|
|
84
112
|
useImperativeHandle(controlsRef, () => controls, [controls]);
|
|
85
|
-
return
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
|
|
113
|
+
return /* @__PURE__ */ jsx(
|
|
114
|
+
"div",
|
|
115
|
+
{
|
|
116
|
+
role: "region",
|
|
117
|
+
"data-qa": "scrollable-container__wrapper",
|
|
118
|
+
className: classnames(styles.scrollWrapper),
|
|
119
|
+
style: {
|
|
120
|
+
...{
|
|
121
|
+
"--magritte-ui-scrollabe-container-ml": `${spacingCorrectionStyles.marginLeft}px`,
|
|
122
|
+
"--magritte-ui-scrollabe-container-mr": `${spacingCorrectionStyles.marginRight}px`,
|
|
123
|
+
"--magritte-ui-scrollabe-container-pl": `${spacingCorrectionStyles.paddingLeft}px`,
|
|
124
|
+
"--magritte-ui-scrollabe-container-pr": `${spacingCorrectionStyles.paddingRight}px`
|
|
125
|
+
},
|
|
126
|
+
...style || {}
|
|
127
|
+
},
|
|
128
|
+
...props,
|
|
129
|
+
children: /* @__PURE__ */ jsx(ScrollStateContext.Provider, { value: scrollState, children })
|
|
130
|
+
}
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
);
|
|
134
|
+
ScrollableContainerComponent.displayName = "ScrollableContainer";
|
|
96
135
|
const ScrollableContainer = ScrollableContainerComponent;
|
|
97
136
|
ScrollableContainer.Left = ScrollableContainerLeft;
|
|
98
137
|
ScrollableContainer.Right = ScrollableContainerRight;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollableContainer.js","sources":["src/ScrollableContainer.tsx"],"sourcesContent":["import { forwardRef, useImperativeHandle, useMemo, type CSSProperties } from 'react';\nimport classnames from 'classnames';\n\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { ScrollStateContext, createScrollState } from '@hh.ru/magritte-ui-scrollable-container/ScrollStateProvider';\nimport {\n ScrollableContainerLeft,\n ScrollableContainerRight,\n} from '@hh.ru/magritte-ui-scrollable-container/ScrollableContainerButton';\nimport { ScrollableContainerDefaultLayout } from '@hh.ru/magritte-ui-scrollable-container/ScrollableContainerDefaultLayout';\nimport { ScrollableContainerDotPages } from '@hh.ru/magritte-ui-scrollable-container/ScrollableContainerDotPages';\nimport { ScrollableContainerGallery } from '@hh.ru/magritte-ui-scrollable-container/ScrollableContainerGallery';\nimport { ScrollableItem } from '@hh.ru/magritte-ui-scrollable-container/ScrollableItem';\nimport { ScrollableContainerProps, ScrollableControls } from '@hh.ru/magritte-ui-scrollable-container/types';\nimport { useScrollableControlsWithState } from '@hh.ru/magritte-ui-scrollable-container/useScrollableControls';\nimport { getActualCorrection, useInitOnce } from '@hh.ru/magritte-ui-scrollable-container/utils';\n\nimport styles from './scrollableContainer.less';\n\nexport interface ScrollableContainerComponents {\n Left: typeof ScrollableContainerLeft;\n Right: typeof ScrollableContainerRight;\n Item: typeof ScrollableItem;\n DefaultLayout: typeof ScrollableContainerDefaultLayout;\n Gallery: typeof ScrollableContainerGallery;\n DotPages: typeof ScrollableContainerDotPages;\n}\n\nconst ScrollableContainerComponent = forwardRef<ScrollableControls, ScrollableContainerProps>(\n (\n {\n children,\n scrollSnapAlign = 'none',\n correction = 0,\n correctionXS,\n correctionS,\n correctionM,\n correctionL,\n correctionXL,\n correctionXXL,\n correctionLeftXS,\n correctionLeftS,\n correctionLeftM,\n correctionLeftL,\n correctionLeftXL,\n correctionLeftXXL,\n correctionRightXS,\n correctionRightS,\n correctionRightM,\n correctionRightL,\n correctionRightXL,\n correctionRightXXL,\n style,\n ...props\n },\n controlsRef\n ) => {\n const breakpoint = useBreakpoint();\n const spacingCorrectionStyles = useMemo(() => {\n const correctionValue = getActualCorrection(\n {\n correction,\n correctionXS,\n correctionS,\n correctionM,\n correctionL,\n correctionXL,\n correctionXXL,\n correctionLeftXS,\n correctionLeftS,\n correctionLeftM,\n correctionLeftL,\n correctionLeftXL,\n correctionLeftXXL,\n correctionRightXS,\n correctionRightS,\n correctionRightM,\n correctionRightL,\n correctionRightXL,\n correctionRightXXL,\n },\n breakpoint.breakpoint\n );\n return {\n marginLeft: -correctionValue.leftCorrection,\n marginRight: -correctionValue.rightCorrection,\n paddingLeft: correctionValue.leftCorrection,\n paddingRight: correctionValue.rightCorrection,\n };\n }, [\n correction,\n correctionXS,\n correctionS,\n correctionM,\n correctionL,\n correctionXL,\n correctionXXL,\n correctionLeftXS,\n correctionLeftS,\n correctionLeftM,\n correctionLeftL,\n correctionLeftXL,\n correctionLeftXXL,\n correctionRightXS,\n correctionRightS,\n correctionRightM,\n correctionRightL,\n correctionRightXL,\n correctionRightXXL,\n breakpoint.breakpoint,\n ]);\n\n const scrollState = useInitOnce(createScrollState);\n scrollState.scrollSnapAlign = scrollSnapAlign;\n scrollState.leftCorrection.set(spacingCorrectionStyles.paddingLeft);\n scrollState.rightCorrection.set(spacingCorrectionStyles.paddingRight);\n\n const controls = useScrollableControlsWithState(scrollState);\n useImperativeHandle(controlsRef, () => controls, [controls]);\n\n return (\n <div\n role=\"region\"\n data-qa=\"scrollable-container__wrapper\"\n className={classnames(styles.scrollWrapper)}\n style={{\n ...({\n '--magritte-ui-scrollabe-container-ml': `${spacingCorrectionStyles.marginLeft}px`,\n '--magritte-ui-scrollabe-container-mr': `${spacingCorrectionStyles.marginRight}px`,\n '--magritte-ui-scrollabe-container-pl': `${spacingCorrectionStyles.paddingLeft}px`,\n '--magritte-ui-scrollabe-container-pr': `${spacingCorrectionStyles.paddingRight}px`,\n } as CSSProperties),\n ...(style || {}),\n }}\n {...props}\n >\n <ScrollStateContext.Provider value={scrollState}>{children}</ScrollStateContext.Provider>\n </div>\n );\n }\n);\n\nScrollableContainerComponent.displayName = 'ScrollableContainer';\n\nconst ScrollableContainer = ScrollableContainerComponent as typeof ScrollableContainerComponent &\n ScrollableContainerComponents;\n\nScrollableContainer.Left = ScrollableContainerLeft;\nScrollableContainer.Right = ScrollableContainerRight;\nScrollableContainer.Item = ScrollableItem;\nScrollableContainer.Gallery = ScrollableContainerGallery;\nScrollableContainer.DefaultLayout = ScrollableContainerDefaultLayout;\nScrollableContainer.DotPages = ScrollableContainerDotPages;\n\nexport { ScrollableContainer };\n"],"names":[
|
|
1
|
+
{"version":3,"file":"ScrollableContainer.js","sources":["src/ScrollableContainer.tsx"],"sourcesContent":["import { forwardRef, useImperativeHandle, useMemo, type CSSProperties } from 'react';\nimport classnames from 'classnames';\n\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { ScrollStateContext, createScrollState } from '@hh.ru/magritte-ui-scrollable-container/ScrollStateProvider';\nimport {\n ScrollableContainerLeft,\n ScrollableContainerRight,\n} from '@hh.ru/magritte-ui-scrollable-container/ScrollableContainerButton';\nimport { ScrollableContainerDefaultLayout } from '@hh.ru/magritte-ui-scrollable-container/ScrollableContainerDefaultLayout';\nimport { ScrollableContainerDotPages } from '@hh.ru/magritte-ui-scrollable-container/ScrollableContainerDotPages';\nimport { ScrollableContainerGallery } from '@hh.ru/magritte-ui-scrollable-container/ScrollableContainerGallery';\nimport { ScrollableItem } from '@hh.ru/magritte-ui-scrollable-container/ScrollableItem';\nimport { ScrollableContainerProps, ScrollableControls } from '@hh.ru/magritte-ui-scrollable-container/types';\nimport { useScrollableControlsWithState } from '@hh.ru/magritte-ui-scrollable-container/useScrollableControls';\nimport { getActualCorrection, useInitOnce } from '@hh.ru/magritte-ui-scrollable-container/utils';\n\nimport styles from './scrollableContainer.less';\n\nexport interface ScrollableContainerComponents {\n Left: typeof ScrollableContainerLeft;\n Right: typeof ScrollableContainerRight;\n Item: typeof ScrollableItem;\n DefaultLayout: typeof ScrollableContainerDefaultLayout;\n Gallery: typeof ScrollableContainerGallery;\n DotPages: typeof ScrollableContainerDotPages;\n}\n\nconst ScrollableContainerComponent = forwardRef<ScrollableControls, ScrollableContainerProps>(\n (\n {\n children,\n scrollSnapAlign = 'none',\n correction = 0,\n correctionXS,\n correctionS,\n correctionM,\n correctionL,\n correctionXL,\n correctionXXL,\n correctionLeftXS,\n correctionLeftS,\n correctionLeftM,\n correctionLeftL,\n correctionLeftXL,\n correctionLeftXXL,\n correctionRightXS,\n correctionRightS,\n correctionRightM,\n correctionRightL,\n correctionRightXL,\n correctionRightXXL,\n style,\n ...props\n },\n controlsRef\n ) => {\n const breakpoint = useBreakpoint();\n const spacingCorrectionStyles = useMemo(() => {\n const correctionValue = getActualCorrection(\n {\n correction,\n correctionXS,\n correctionS,\n correctionM,\n correctionL,\n correctionXL,\n correctionXXL,\n correctionLeftXS,\n correctionLeftS,\n correctionLeftM,\n correctionLeftL,\n correctionLeftXL,\n correctionLeftXXL,\n correctionRightXS,\n correctionRightS,\n correctionRightM,\n correctionRightL,\n correctionRightXL,\n correctionRightXXL,\n },\n breakpoint.breakpoint\n );\n return {\n marginLeft: -correctionValue.leftCorrection,\n marginRight: -correctionValue.rightCorrection,\n paddingLeft: correctionValue.leftCorrection,\n paddingRight: correctionValue.rightCorrection,\n };\n }, [\n correction,\n correctionXS,\n correctionS,\n correctionM,\n correctionL,\n correctionXL,\n correctionXXL,\n correctionLeftXS,\n correctionLeftS,\n correctionLeftM,\n correctionLeftL,\n correctionLeftXL,\n correctionLeftXXL,\n correctionRightXS,\n correctionRightS,\n correctionRightM,\n correctionRightL,\n correctionRightXL,\n correctionRightXXL,\n breakpoint.breakpoint,\n ]);\n\n const scrollState = useInitOnce(createScrollState);\n scrollState.scrollSnapAlign = scrollSnapAlign;\n scrollState.leftCorrection.set(spacingCorrectionStyles.paddingLeft);\n scrollState.rightCorrection.set(spacingCorrectionStyles.paddingRight);\n\n const controls = useScrollableControlsWithState(scrollState);\n useImperativeHandle(controlsRef, () => controls, [controls]);\n\n return (\n <div\n role=\"region\"\n data-qa=\"scrollable-container__wrapper\"\n className={classnames(styles.scrollWrapper)}\n style={{\n ...({\n '--magritte-ui-scrollabe-container-ml': `${spacingCorrectionStyles.marginLeft}px`,\n '--magritte-ui-scrollabe-container-mr': `${spacingCorrectionStyles.marginRight}px`,\n '--magritte-ui-scrollabe-container-pl': `${spacingCorrectionStyles.paddingLeft}px`,\n '--magritte-ui-scrollabe-container-pr': `${spacingCorrectionStyles.paddingRight}px`,\n } as CSSProperties),\n ...(style || {}),\n }}\n {...props}\n >\n <ScrollStateContext.Provider value={scrollState}>{children}</ScrollStateContext.Provider>\n </div>\n );\n }\n);\n\nScrollableContainerComponent.displayName = 'ScrollableContainer';\n\nconst ScrollableContainer = ScrollableContainerComponent as typeof ScrollableContainerComponent &\n ScrollableContainerComponents;\n\nScrollableContainer.Left = ScrollableContainerLeft;\nScrollableContainer.Right = ScrollableContainerRight;\nScrollableContainer.Item = ScrollableItem;\nScrollableContainer.Gallery = ScrollableContainerGallery;\nScrollableContainer.DefaultLayout = ScrollableContainerDefaultLayout;\nScrollableContainer.DotPages = ScrollableContainerDotPages;\n\nexport { ScrollableContainer };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type FC } from 'react';
|
|
2
|
-
import type { ScrollableContainerButtonProps } from '
|
|
2
|
+
import type { ScrollableContainerButtonProps } from './types';
|
|
3
3
|
export declare const ScrollableContainerLeft: FC<ScrollableContainerButtonProps>;
|
|
4
4
|
export declare const ScrollableContainerRight: FC<ScrollableContainerButtonProps>;
|
|
@@ -10,19 +10,22 @@ import './utils.js';
|
|
|
10
10
|
import '@hh.ru/magritte-ui-breakpoint';
|
|
11
11
|
import './types.js';
|
|
12
12
|
|
|
13
|
-
const ScrolllableContainerScrollButton = ({
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
const ScrolllableContainerScrollButton = ({
|
|
14
|
+
children,
|
|
15
|
+
toRight = false
|
|
16
|
+
}) => {
|
|
17
|
+
const { scrollLeft, scrollRight } = useScrollableControls();
|
|
18
|
+
if (!isValidElement(children)) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const defaultDataQa = `scrollable-container__scroll-button-${toRight ? "right" : "left"}`;
|
|
22
|
+
return cloneElement(children, {
|
|
23
|
+
"data-qa": children.props["data-qa"] || defaultDataQa,
|
|
24
|
+
onClick: () => toRight ? scrollRight() : scrollLeft()
|
|
25
|
+
});
|
|
23
26
|
};
|
|
24
|
-
const ScrollableContainerLeft = ({ children }) =>
|
|
25
|
-
const ScrollableContainerRight = ({ children }) =>
|
|
27
|
+
const ScrollableContainerLeft = ({ children }) => /* @__PURE__ */ jsx(ScrolllableContainerScrollButton, { children });
|
|
28
|
+
const ScrollableContainerRight = ({ children }) => /* @__PURE__ */ jsx(ScrolllableContainerScrollButton, { toRight: true, children });
|
|
26
29
|
|
|
27
30
|
export { ScrollableContainerLeft, ScrollableContainerRight };
|
|
28
31
|
//# sourceMappingURL=ScrollableContainerButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollableContainerButton.js","sources":["src/ScrollableContainerButton.tsx"],"sourcesContent":["import { cloneElement, isValidElement, type FC } from 'react';\n\nimport type { ControlWithClick, ScrollableContainerButtonProps } from '@hh.ru/magritte-ui-scrollable-container/types';\nimport { useScrollableControls } from '@hh.ru/magritte-ui-scrollable-container/useScrollableControls';\n\nconst ScrolllableContainerScrollButton: FC<ScrollableContainerButtonProps & { toRight?: boolean }> = ({\n children,\n toRight = false,\n}) => {\n const { scrollLeft, scrollRight } = useScrollableControls();\n if (!isValidElement<ControlWithClick>(children)) {\n return null;\n }\n const defaultDataQa = `scrollable-container__scroll-button-${toRight ? 'right' : 'left'}`;\n return cloneElement(children, {\n 'data-qa': children.props['data-qa'] || defaultDataQa,\n onClick: () => (toRight ? scrollRight() : scrollLeft()),\n });\n};\n\nexport const ScrollableContainerLeft: FC<ScrollableContainerButtonProps> = ({ children }) => (\n <ScrolllableContainerScrollButton>{children}</ScrolllableContainerScrollButton>\n);\n\nexport const ScrollableContainerRight: FC<ScrollableContainerButtonProps> = ({ children }) => (\n <ScrolllableContainerScrollButton toRight>{children}</ScrolllableContainerScrollButton>\n);\n"],"names":[
|
|
1
|
+
{"version":3,"file":"ScrollableContainerButton.js","sources":["src/ScrollableContainerButton.tsx"],"sourcesContent":["import { cloneElement, isValidElement, type FC } from 'react';\n\nimport type { ControlWithClick, ScrollableContainerButtonProps } from '@hh.ru/magritte-ui-scrollable-container/types';\nimport { useScrollableControls } from '@hh.ru/magritte-ui-scrollable-container/useScrollableControls';\n\nconst ScrolllableContainerScrollButton: FC<ScrollableContainerButtonProps & { toRight?: boolean }> = ({\n children,\n toRight = false,\n}) => {\n const { scrollLeft, scrollRight } = useScrollableControls();\n if (!isValidElement<ControlWithClick>(children)) {\n return null;\n }\n const defaultDataQa = `scrollable-container__scroll-button-${toRight ? 'right' : 'left'}`;\n return cloneElement(children, {\n 'data-qa': children.props['data-qa'] || defaultDataQa,\n onClick: () => (toRight ? scrollRight() : scrollLeft()),\n });\n};\n\nexport const ScrollableContainerLeft: FC<ScrollableContainerButtonProps> = ({ children }) => (\n <ScrolllableContainerScrollButton>{children}</ScrolllableContainerScrollButton>\n);\n\nexport const ScrollableContainerRight: FC<ScrollableContainerButtonProps> = ({ children }) => (\n <ScrolllableContainerScrollButton toRight>{children}</ScrolllableContainerScrollButton>\n);\n"],"names":[],"mappings":";;;;;;;;;;;AAKA,MAAM,mCAA+F,CAAC;AAAA,EAClG,QAAA;AAAA,EACA,OAAU,GAAA,KAAA;AACd,CAAM,KAAA;AACF,EAAA,MAAM,EAAE,UAAA,EAAY,WAAY,EAAA,GAAI,qBAAsB,EAAA,CAAA;AAC1D,EAAI,IAAA,CAAC,cAAiC,CAAA,QAAQ,CAAG,EAAA;AAC7C,IAAO,OAAA,IAAA,CAAA;AAAA,GACX;AACA,EAAA,MAAM,aAAgB,GAAA,CAAA,oCAAA,EAAuC,OAAU,GAAA,OAAA,GAAU,MAAM,CAAA,CAAA,CAAA;AACvF,EAAA,OAAO,aAAa,QAAU,EAAA;AAAA,IAC1B,SAAW,EAAA,QAAA,CAAS,KAAM,CAAA,SAAS,CAAK,IAAA,aAAA;AAAA,IACxC,OAAS,EAAA,MAAO,OAAU,GAAA,WAAA,KAAgB,UAAW,EAAA;AAAA,GACxD,CAAA,CAAA;AACL,CAAA,CAAA;AAEO,MAAM,0BAA8D,CAAC,EAAE,UAC1E,qBAAA,GAAA,CAAC,oCAAkC,QAAS,EAAA,EAAA;AAGnC,MAAA,wBAAA,GAA+D,CAAC,EAAE,QAAA,uBAC1E,GAAA,CAAA,gCAAA,EAAA,EAAiC,OAAO,EAAA,IAAA,EAAE,QAAS,EAAA;;;;"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type FC } from 'react';
|
|
2
|
-
import type { ScrollableContainerDefaultLayoutProps } from '
|
|
2
|
+
import type { ScrollableContainerDefaultLayoutProps } from './types';
|
|
3
3
|
export declare const ScrollableContainerDefaultLayout: FC<ScrollableContainerDefaultLayoutProps>;
|