@prom-ui/core 0.0.13 → 0.0.16
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/Body/index.js +1 -1
- package/Body/package.json +2 -2
- package/Body/style.css +741 -1
- package/Box/index.js +1 -1
- package/Box/package.json +2 -2
- package/Box/style.css +9676 -1
- package/Button/index.js +1 -1
- package/Button/package.json +2 -2
- package/Button/style.css +3393 -1
- package/ButtonPageUp/index.js +0 -2
- package/ButtonPageUp/package.json +3 -3
- package/Checkbox/index.js +1 -1
- package/Checkbox/package.json +3 -3
- package/Checkbox/style.css +133 -1
- package/Flex/index.js +1 -1
- package/Flex/package.json +2 -2
- package/Flex/style.css +786 -1
- package/Grid/index.js +1 -1
- package/Grid/package.json +2 -2
- package/Grid/style.css +7350 -1
- package/Icon/index.js +1 -1
- package/Icon/package.json +2 -2
- package/Icon/style.css +46 -1
- package/Image/index.js +1 -1
- package/Image/package.json +2 -2
- package/Image/style.css +664 -1
- package/ImageEmoji/package.json +2 -2
- package/Input/index.js +1 -1
- package/Input/package.json +2 -2
- package/Input/style.css +345 -1
- package/KeyPress/package.json +1 -1
- package/Line/index.js +1 -1
- package/Line/package.json +2 -2
- package/Line/style.css +138 -1
- package/Link/index.js +1 -1
- package/Link/package.json +2 -2
- package/Link/style.css +259 -1
- package/List/index.js +1 -1
- package/List/package.json +2 -2
- package/List/style.css +312 -1
- package/OutsideClick/package.json +1 -1
- package/Picture/index.js +1 -1
- package/Picture/package.json +2 -2
- package/Picture/style.css +1426 -1
- package/Portal/package.json +1 -1
- package/Rating/index.js +1 -1
- package/Rating/package.json +2 -2
- package/Rating/style.css +26 -1
- package/Scroll/index.js +1 -1
- package/Scroll/package.json +2 -2
- package/Scroll/style.css +169 -1
- package/ScrollControls/ScrollControlsButton.d.ts +12 -0
- package/ScrollControls/index.d.ts +8 -0
- package/ScrollControls/index.js +250 -0
- package/ScrollControls/package.json +11 -0
- package/ScrollControls/style.css +67 -0
- package/Skeleton/index.js +1 -1
- package/Skeleton/package.json +2 -2
- package/Skeleton/style.css +145 -1
- package/Spinner/index.js +1 -1
- package/Spinner/package.json +2 -2
- package/Spinner/style.css +80 -1
- package/Text/index.js +1 -1
- package/Text/package.json +2 -2
- package/Text/style.css +840 -1
- package/TextEmoji/package.json +2 -2
- package/Tumbler/index.js +1 -1
- package/Tumbler/package.json +3 -3
- package/Tumbler/style.css +118 -1
- package/base/colors.css +80 -0
- package/base/media.css +5 -0
- package/base/reset.css +120 -0
- package/base/round.css +12 -0
- package/base/spacing.css +12 -0
- package/base/typography.css +12 -0
- package/package.json +21 -21
package/Portal/package.json
CHANGED
package/Rating/index.js
CHANGED
package/Rating/package.json
CHANGED
package/Rating/style.css
CHANGED
|
@@ -1 +1,26 @@
|
|
|
1
|
-
.Rating__ek-rating___fJb0G{
|
|
1
|
+
.Rating__ek-rating___fJb0G {
|
|
2
|
+
display: block;
|
|
3
|
+
-webkit-tap-highlight-color: transparent;
|
|
4
|
+
box-sizing: border-box;
|
|
5
|
+
height: 1em;
|
|
6
|
+
width: calc(1em * 5)
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.Rating__ek-rating___fJb0G:focus {
|
|
10
|
+
outline: none;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.Rating__ek-rating_size_small___YZP0u {
|
|
14
|
+
height: 14px;
|
|
15
|
+
width: calc(14px * 5);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.Rating__ek-rating_size_default___X0xeh {
|
|
19
|
+
height: 18px;
|
|
20
|
+
width: calc(18px * 5);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.Rating__ek-rating_size_big___fQ-Lk {
|
|
24
|
+
height: 22px;
|
|
25
|
+
width: calc(22px * 5);
|
|
26
|
+
}
|
package/Scroll/index.js
CHANGED
package/Scroll/package.json
CHANGED
package/Scroll/style.css
CHANGED
|
@@ -1 +1,169 @@
|
|
|
1
|
-
.Scroll__ek-scroll___m6Vr5
|
|
1
|
+
.Scroll__ek-scroll___m6Vr5 {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-wrap: nowrap;
|
|
4
|
+
flex-direction: row;
|
|
5
|
+
overflow-x: auto;
|
|
6
|
+
overflow-y: hidden;
|
|
7
|
+
-webkit-overflow-scrolling: touch;
|
|
8
|
+
list-style: none;
|
|
9
|
+
padding: 0;
|
|
10
|
+
margin: 0;
|
|
11
|
+
box-sizing: border-box
|
|
12
|
+
}
|
|
13
|
+
.Scroll__ek-scroll___m6Vr5::after,
|
|
14
|
+
.Scroll__ek-scroll___m6Vr5::before {
|
|
15
|
+
content: "";
|
|
16
|
+
align-self: normal;
|
|
17
|
+
}
|
|
18
|
+
.Scroll__ek-scroll__item___bfetG {
|
|
19
|
+
margin: 0;
|
|
20
|
+
padding: 0;
|
|
21
|
+
flex: 0 0 auto;
|
|
22
|
+
box-sizing: border-box;
|
|
23
|
+
}
|
|
24
|
+
.Scroll__ek-scroll__item_blackhole_width-fit-content___k-fNo {
|
|
25
|
+
width: -webkit-fit-content;
|
|
26
|
+
width: -moz-fit-content;
|
|
27
|
+
width: fit-content;
|
|
28
|
+
}
|
|
29
|
+
.Scroll__ek-scroll__item_blackhole_width-max-content___s8gGl {
|
|
30
|
+
width: -webkit-max-content;
|
|
31
|
+
width: -moz-max-content;
|
|
32
|
+
width: max-content;
|
|
33
|
+
}
|
|
34
|
+
.Scroll__ek-scroll_padding_xxs___9vZpV::after,
|
|
35
|
+
.Scroll__ek-scroll_padding_xxs___9vZpV::before {
|
|
36
|
+
flex: 0 0 var(--pds-spacing-xxs);
|
|
37
|
+
}
|
|
38
|
+
.Scroll__ek-scroll_padding_xs___L5kMA::after,
|
|
39
|
+
.Scroll__ek-scroll_padding_xs___L5kMA::before {
|
|
40
|
+
flex: 0 0 var(--pds-spacing-xs);
|
|
41
|
+
}
|
|
42
|
+
.Scroll__ek-scroll_padding_s___Nr3Ig::after,
|
|
43
|
+
.Scroll__ek-scroll_padding_s___Nr3Ig::before {
|
|
44
|
+
flex: 0 0 var(--pds-spacing-s);
|
|
45
|
+
}
|
|
46
|
+
.Scroll__ek-scroll_padding_m___hcRCz::after,
|
|
47
|
+
.Scroll__ek-scroll_padding_m___hcRCz::before {
|
|
48
|
+
flex: 0 0 var(--pds-spacing-m);
|
|
49
|
+
}
|
|
50
|
+
.Scroll__ek-scroll_padding_l___SKeiS::after,
|
|
51
|
+
.Scroll__ek-scroll_padding_l___SKeiS::before {
|
|
52
|
+
flex: 0 0 var(--pds-spacing-l);
|
|
53
|
+
}
|
|
54
|
+
.Scroll__ek-scroll_padding_xl___MG4J-::after,
|
|
55
|
+
.Scroll__ek-scroll_padding_xl___MG4J-::before {
|
|
56
|
+
flex: 0 0 var(--pds-spacing-xl);
|
|
57
|
+
}
|
|
58
|
+
.Scroll__ek-scroll_padding_xxl___m8ou2::after,
|
|
59
|
+
.Scroll__ek-scroll_padding_xxl___m8ou2::before {
|
|
60
|
+
flex: 0 0 var(--pds-spacing-xxl);
|
|
61
|
+
}
|
|
62
|
+
.Scroll__ek-scroll_padding_3xl___xy72W::after,
|
|
63
|
+
.Scroll__ek-scroll_padding_3xl___xy72W::before {
|
|
64
|
+
flex: 0 0 var(--pds-spacing-3xl);
|
|
65
|
+
}
|
|
66
|
+
.Scroll__ek-scroll_padding_4xl___gzW-I::after,
|
|
67
|
+
.Scroll__ek-scroll_padding_4xl___gzW-I::before {
|
|
68
|
+
flex: 0 0 var(--pds-spacing-4xl);
|
|
69
|
+
}
|
|
70
|
+
.Scroll__ek-scroll_padding_5xl___JErmt::after,
|
|
71
|
+
.Scroll__ek-scroll_padding_5xl___JErmt::before {
|
|
72
|
+
flex: 0 0 var(--pds-spacing-5xl);
|
|
73
|
+
}
|
|
74
|
+
.Scroll__ek-scroll_column_1___n5mTi > .Scroll__ek-scroll__item___bfetG {
|
|
75
|
+
flex-basis: calc(100% / 1);
|
|
76
|
+
min-width: 0;
|
|
77
|
+
}
|
|
78
|
+
.Scroll__ek-scroll_column_2___GqdmF > .Scroll__ek-scroll__item___bfetG {
|
|
79
|
+
flex-basis: calc(100% / 2);
|
|
80
|
+
min-width: 0;
|
|
81
|
+
}
|
|
82
|
+
.Scroll__ek-scroll_column_3___DKZCp > .Scroll__ek-scroll__item___bfetG {
|
|
83
|
+
flex-basis: calc(100% / 3);
|
|
84
|
+
min-width: 0;
|
|
85
|
+
}
|
|
86
|
+
.Scroll__ek-scroll_column_4___-Nf-L > .Scroll__ek-scroll__item___bfetG {
|
|
87
|
+
flex-basis: calc(100% / 4);
|
|
88
|
+
min-width: 0;
|
|
89
|
+
}
|
|
90
|
+
.Scroll__ek-scroll_column_5___OxDq- > .Scroll__ek-scroll__item___bfetG {
|
|
91
|
+
flex-basis: calc(100% / 5);
|
|
92
|
+
min-width: 0;
|
|
93
|
+
}
|
|
94
|
+
.Scroll__ek-scroll_column_6___wP8Pu > .Scroll__ek-scroll__item___bfetG {
|
|
95
|
+
flex-basis: calc(100% / 6);
|
|
96
|
+
min-width: 0;
|
|
97
|
+
}
|
|
98
|
+
.Scroll__ek-scroll_column_7___-ZDSB > .Scroll__ek-scroll__item___bfetG {
|
|
99
|
+
flex-basis: calc(100% / 7);
|
|
100
|
+
min-width: 0;
|
|
101
|
+
}
|
|
102
|
+
.Scroll__ek-scroll_column_8___PnnsU > .Scroll__ek-scroll__item___bfetG {
|
|
103
|
+
flex-basis: calc(100% / 8);
|
|
104
|
+
min-width: 0;
|
|
105
|
+
}
|
|
106
|
+
.Scroll__ek-scroll_column_9___DDqgb > .Scroll__ek-scroll__item___bfetG {
|
|
107
|
+
flex-basis: calc(100% / 9);
|
|
108
|
+
min-width: 0;
|
|
109
|
+
}
|
|
110
|
+
.Scroll__ek-scroll_column_10___Hh-uZ > .Scroll__ek-scroll__item___bfetG {
|
|
111
|
+
flex-basis: calc(100% / 10);
|
|
112
|
+
min-width: 0;
|
|
113
|
+
}
|
|
114
|
+
.Scroll__ek-scroll_gap_xxs___15vfK > .Scroll__ek-scroll__item___bfetG + .Scroll__ek-scroll__item___bfetG {
|
|
115
|
+
margin-left: var(--pds-spacing-xxs);
|
|
116
|
+
}
|
|
117
|
+
.Scroll__ek-scroll_gap_xs___Kvr2J > .Scroll__ek-scroll__item___bfetG + .Scroll__ek-scroll__item___bfetG {
|
|
118
|
+
margin-left: var(--pds-spacing-xs);
|
|
119
|
+
}
|
|
120
|
+
.Scroll__ek-scroll_gap_s___71-or > .Scroll__ek-scroll__item___bfetG + .Scroll__ek-scroll__item___bfetG {
|
|
121
|
+
margin-left: var(--pds-spacing-s);
|
|
122
|
+
}
|
|
123
|
+
.Scroll__ek-scroll_gap_m___glUvB > .Scroll__ek-scroll__item___bfetG + .Scroll__ek-scroll__item___bfetG {
|
|
124
|
+
margin-left: var(--pds-spacing-m);
|
|
125
|
+
}
|
|
126
|
+
.Scroll__ek-scroll_gap_l___pQC7Z > .Scroll__ek-scroll__item___bfetG + .Scroll__ek-scroll__item___bfetG {
|
|
127
|
+
margin-left: var(--pds-spacing-l);
|
|
128
|
+
}
|
|
129
|
+
.Scroll__ek-scroll_gap_xl___L1iAD > .Scroll__ek-scroll__item___bfetG + .Scroll__ek-scroll__item___bfetG {
|
|
130
|
+
margin-left: var(--pds-spacing-xl);
|
|
131
|
+
}
|
|
132
|
+
.Scroll__ek-scroll_gap_xxl___wVNm- > .Scroll__ek-scroll__item___bfetG + .Scroll__ek-scroll__item___bfetG {
|
|
133
|
+
margin-left: var(--pds-spacing-xxl);
|
|
134
|
+
}
|
|
135
|
+
.Scroll__ek-scroll_gap_3xl___4tQXK > .Scroll__ek-scroll__item___bfetG + .Scroll__ek-scroll__item___bfetG {
|
|
136
|
+
margin-left: var(--pds-spacing-3xl);
|
|
137
|
+
}
|
|
138
|
+
.Scroll__ek-scroll_gap_4xl___1-5dw > .Scroll__ek-scroll__item___bfetG + .Scroll__ek-scroll__item___bfetG {
|
|
139
|
+
margin-left: var(--pds-spacing-4xl);
|
|
140
|
+
}
|
|
141
|
+
.Scroll__ek-scroll_gap_5xl___ym2qM > .Scroll__ek-scroll__item___bfetG + .Scroll__ek-scroll__item___bfetG {
|
|
142
|
+
margin-left: var(--pds-spacing-5xl);
|
|
143
|
+
}
|
|
144
|
+
.Scroll__ek-scroll_bar_none___c1gVV {
|
|
145
|
+
-ms-overflow-style: none; /* for Internet Explorer, Edge */
|
|
146
|
+
scrollbar-width: none /* for Firefox */
|
|
147
|
+
}
|
|
148
|
+
.Scroll__ek-scroll_bar_none___c1gVV::-webkit-scrollbar {
|
|
149
|
+
display: none;
|
|
150
|
+
}
|
|
151
|
+
.Scroll__ek-scroll_bar_auto___-TbaH {
|
|
152
|
+
-ms-overflow-style: auto; /* for Internet Explorer, Edge */
|
|
153
|
+
scrollbar-width: auto /* for Firefox */
|
|
154
|
+
}
|
|
155
|
+
.Scroll__ek-scroll_bar_auto___-TbaH::-webkit-scrollbar {
|
|
156
|
+
display: auto; /* stylelint-disable-line csstree/validator */
|
|
157
|
+
}
|
|
158
|
+
.Scroll__ek-scroll_align_normal___zoDjM {
|
|
159
|
+
align-items: normal;
|
|
160
|
+
}
|
|
161
|
+
.Scroll__ek-scroll_align_start___4mACC {
|
|
162
|
+
align-items: flex-start;
|
|
163
|
+
}
|
|
164
|
+
.Scroll__ek-scroll_align_center___3PWHW {
|
|
165
|
+
align-items: center;
|
|
166
|
+
}
|
|
167
|
+
.Scroll__ek-scroll_align_end___AwLLA {
|
|
168
|
+
align-items: flex-end;
|
|
169
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type tScrollControlsButton = {
|
|
3
|
+
hideOnDisabled?: boolean;
|
|
4
|
+
children?: any;
|
|
5
|
+
isActive?: boolean;
|
|
6
|
+
onClickNext?: () => void;
|
|
7
|
+
onClickPrev?: () => void;
|
|
8
|
+
theme?: 'white' | 'gray';
|
|
9
|
+
zIndex?: number;
|
|
10
|
+
scrollRef: React.RefObject<HTMLElement>;
|
|
11
|
+
};
|
|
12
|
+
export declare const ScrollControlsButton: React.FC<tScrollControlsButton>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { tScrollControlsButton } from './ScrollControlsButton';
|
|
3
|
+
export declare type tScrollControls = tScrollControlsButton & {
|
|
4
|
+
className?: string;
|
|
5
|
+
children: (ref: React.RefObject<HTMLElement>) => void;
|
|
6
|
+
showOnHover?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const ScrollControls: React.FC<tScrollControls>;
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('./style.css');
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
6
|
+
|
|
7
|
+
var React = require('react');
|
|
8
|
+
var PropTypes = require('prop-types');
|
|
9
|
+
var classNames = require('classnames');
|
|
10
|
+
var ttag = require('ttag');
|
|
11
|
+
var Button = require('@prom-ui/core/Button');
|
|
12
|
+
var Icon = require('@prom-ui/core/Icon');
|
|
13
|
+
var Left = require('@prom-ui/icons/Left');
|
|
14
|
+
var Right = require('@prom-ui/icons/Right');
|
|
15
|
+
|
|
16
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
17
|
+
|
|
18
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
19
|
+
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
20
|
+
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
21
|
+
|
|
22
|
+
/******************************************************************************
|
|
23
|
+
Copyright (c) Microsoft Corporation.
|
|
24
|
+
|
|
25
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
26
|
+
purpose with or without fee is hereby granted.
|
|
27
|
+
|
|
28
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
29
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
30
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
31
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
32
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
33
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
34
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
35
|
+
***************************************************************************** */
|
|
36
|
+
|
|
37
|
+
var __assign = function() {
|
|
38
|
+
__assign = Object.assign || function __assign(t) {
|
|
39
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
40
|
+
s = arguments[i];
|
|
41
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
42
|
+
}
|
|
43
|
+
return t;
|
|
44
|
+
};
|
|
45
|
+
return __assign.apply(this, arguments);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
function __rest(s, e) {
|
|
49
|
+
var t = {};
|
|
50
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
51
|
+
t[p] = s[p];
|
|
52
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
53
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
54
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
55
|
+
t[p[i]] = s[p[i]];
|
|
56
|
+
}
|
|
57
|
+
return t;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function __makeTemplateObject(cooked, raw) {
|
|
61
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
62
|
+
return cooked;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
var css = {"root":"ScrollControls__root___mOlOq","buttonCommon":"ScrollControls__buttonCommon___rZcyK","prev":"ScrollControls__prev___cF2KB ScrollControls__buttonCommon___rZcyK","next":"ScrollControls__next___9B-9g ScrollControls__buttonCommon___rZcyK","icon":"ScrollControls__icon___lzBzL","showOnHover":"ScrollControls__showOnHover___StbVV","hideOnDisabled":"ScrollControls__hideOnDisabled___IONkE"};
|
|
66
|
+
|
|
67
|
+
var DIRECTION_NEXT = 1;
|
|
68
|
+
var DIRECTION_PREV = -1;
|
|
69
|
+
var CONTROLS_UPDATE_DELAY = 100;
|
|
70
|
+
var ScrollControlsButton = function (_a) {
|
|
71
|
+
var _b, _c;
|
|
72
|
+
|
|
73
|
+
var scrollRef = _a.scrollRef,
|
|
74
|
+
_d = _a.hideOnDisabled,
|
|
75
|
+
hideOnDisabled = _d === void 0 ? false : _d,
|
|
76
|
+
_e = _a.isActive,
|
|
77
|
+
isActive = _e === void 0 ? true : _e,
|
|
78
|
+
onClickNext = _a.onClickNext,
|
|
79
|
+
onClickPrev = _a.onClickPrev,
|
|
80
|
+
zIndex = _a.zIndex,
|
|
81
|
+
_f = _a.theme,
|
|
82
|
+
theme = _f === void 0 ? 'white' : _f,
|
|
83
|
+
children = _a.children;
|
|
84
|
+
var updateControlsTimer = React.useRef(null);
|
|
85
|
+
|
|
86
|
+
var _g = React.useState({
|
|
87
|
+
prev: false,
|
|
88
|
+
next: false
|
|
89
|
+
}),
|
|
90
|
+
controlsVisible = _g[0],
|
|
91
|
+
setControlsVisible = _g[1];
|
|
92
|
+
|
|
93
|
+
var updateControlsVisible = function (nextScrollLeft) {
|
|
94
|
+
var _a = scrollRef.current,
|
|
95
|
+
scrollLeft = _a.scrollLeft,
|
|
96
|
+
scrollWidth = _a.scrollWidth,
|
|
97
|
+
clientWidth = _a.clientWidth;
|
|
98
|
+
var currentScrollLeft = (Number.isInteger(nextScrollLeft) ? nextScrollLeft : scrollLeft) || 0;
|
|
99
|
+
setControlsVisible({
|
|
100
|
+
prev: currentScrollLeft > 1,
|
|
101
|
+
next: currentScrollLeft < scrollWidth - clientWidth
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
var updateScrollLeft = function (direction) {
|
|
106
|
+
var _a = scrollRef.current,
|
|
107
|
+
scrollLeft = _a.scrollLeft,
|
|
108
|
+
clientWidth = _a.clientWidth;
|
|
109
|
+
var offset = clientWidth * direction;
|
|
110
|
+
updateControlsVisible(scrollLeft + offset);
|
|
111
|
+
requestAnimationFrame(function () {
|
|
112
|
+
if (scrollRef.current) {
|
|
113
|
+
scrollRef.current.scrollBy({
|
|
114
|
+
left: offset,
|
|
115
|
+
behavior: 'smooth'
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
var handleOnClickPrev = function () {
|
|
122
|
+
if (typeof onClickPrev === 'function') {
|
|
123
|
+
onClickPrev();
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
updateScrollLeft(DIRECTION_PREV);
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
var handleOnClickNext = function () {
|
|
130
|
+
if (typeof onClickNext === 'function') {
|
|
131
|
+
onClickNext();
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
updateScrollLeft(DIRECTION_NEXT);
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
var handleOnScroll = function () {
|
|
138
|
+
if (updateControlsTimer.current) {
|
|
139
|
+
clearTimeout(updateControlsTimer.current);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
updateControlsTimer.current = setTimeout(updateControlsVisible, CONTROLS_UPDATE_DELAY);
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
React.useEffect(function () {
|
|
146
|
+
if (scrollRef.current && isActive) {
|
|
147
|
+
updateControlsVisible();
|
|
148
|
+
scrollRef.current.addEventListener('scroll', handleOnScroll);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return function () {
|
|
152
|
+
if (scrollRef.current && isActive) {
|
|
153
|
+
scrollRef.current.removeEventListener('scroll', handleOnScroll);
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
}, [isActive, children]);
|
|
157
|
+
|
|
158
|
+
if (isActive && (controlsVisible.prev || controlsVisible.next)) {
|
|
159
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(Button.Button, {
|
|
160
|
+
"button-theme": theme,
|
|
161
|
+
"button-round": 'xs',
|
|
162
|
+
"button-weight": 'normal',
|
|
163
|
+
"button-padding": 'none xxs',
|
|
164
|
+
className: classNames__default["default"](css.prev, (_b = {}, _b[css.hideOnDisabled] = hideOnDisabled, _b)),
|
|
165
|
+
onClick: handleOnClickPrev,
|
|
166
|
+
style: {
|
|
167
|
+
zIndex: zIndex
|
|
168
|
+
},
|
|
169
|
+
disabled: !controlsVisible.prev,
|
|
170
|
+
title: ttag.t(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\u041D\u0430\u0437\u0430\u0434"], ["\u041D\u0430\u0437\u0430\u0434"])))
|
|
171
|
+
}, React__default["default"].createElement(Icon.Icon, {
|
|
172
|
+
className: css.icon,
|
|
173
|
+
"icon-as": Left.Left
|
|
174
|
+
})), React__default["default"].createElement(Button.Button, {
|
|
175
|
+
"button-theme": theme,
|
|
176
|
+
"button-round": 'xs',
|
|
177
|
+
"button-weight": 'normal',
|
|
178
|
+
"button-padding": 'none xxs',
|
|
179
|
+
className: classNames__default["default"](css.next, (_c = {}, _c[css.hideOnDisabled] = hideOnDisabled, _c)),
|
|
180
|
+
onClick: handleOnClickNext,
|
|
181
|
+
style: {
|
|
182
|
+
zIndex: zIndex
|
|
183
|
+
},
|
|
184
|
+
disabled: !controlsVisible.next,
|
|
185
|
+
title: ttag.t(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\u0414\u0430\u043B\u0435\u0435"], ["\u0414\u0430\u043B\u0435\u0435"])))
|
|
186
|
+
}, React__default["default"].createElement(Icon.Icon, {
|
|
187
|
+
className: css.icon,
|
|
188
|
+
"icon-as": Right.Right
|
|
189
|
+
})));
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
return null;
|
|
193
|
+
};
|
|
194
|
+
var templateObject_1, templateObject_2;
|
|
195
|
+
|
|
196
|
+
var ScrollControls = React.forwardRef(function (_a, ref) {
|
|
197
|
+
var _b;
|
|
198
|
+
|
|
199
|
+
var children = _a.children,
|
|
200
|
+
className = _a.className,
|
|
201
|
+
_c = _a.hideOnDisabled,
|
|
202
|
+
hideOnDisabled = _c === void 0 ? false : _c,
|
|
203
|
+
_d = _a.isActive,
|
|
204
|
+
isActive = _d === void 0 ? true : _d,
|
|
205
|
+
onClickNext = _a.onClickNext,
|
|
206
|
+
onClickPrev = _a.onClickPrev,
|
|
207
|
+
_e = _a.showOnHover,
|
|
208
|
+
showOnHover = _e === void 0 ? false : _e,
|
|
209
|
+
zIndex = _a.zIndex,
|
|
210
|
+
_f = _a.theme,
|
|
211
|
+
theme = _f === void 0 ? 'white' : _f,
|
|
212
|
+
props = __rest(_a, ["children", "className", "hideOnDisabled", "isActive", "onClickNext", "onClickPrev", "showOnHover", "zIndex", "theme"]);
|
|
213
|
+
|
|
214
|
+
var scrollRef = React.useRef(null);
|
|
215
|
+
return React__default["default"].createElement("div", __assign({
|
|
216
|
+
ref: ref,
|
|
217
|
+
className: classNames__default["default"](css.root, className, (_b = {}, _b[css.showOnHover] = showOnHover, _b))
|
|
218
|
+
}, props), children(scrollRef), React__default["default"].createElement(ScrollControlsButton, {
|
|
219
|
+
scrollRef: scrollRef,
|
|
220
|
+
hideOnDisabled: hideOnDisabled,
|
|
221
|
+
isActive: isActive,
|
|
222
|
+
onClickNext: onClickNext,
|
|
223
|
+
onClickPrev: onClickPrev,
|
|
224
|
+
zIndex: zIndex,
|
|
225
|
+
theme: theme
|
|
226
|
+
}, children));
|
|
227
|
+
});
|
|
228
|
+
ScrollControls.propTypes = {
|
|
229
|
+
/** Принимает children как функцию, `(scrollRef) =>` */
|
|
230
|
+
// children: PropTypes.func.isRequired,
|
|
231
|
+
|
|
232
|
+
/** Если передать `false` компонент перестанет работать */
|
|
233
|
+
isActive: PropTypes__default["default"].bool,
|
|
234
|
+
onClickNext: PropTypes__default["default"].func,
|
|
235
|
+
onClickPrev: PropTypes__default["default"].func,
|
|
236
|
+
|
|
237
|
+
/** Показывать при наведении */
|
|
238
|
+
showOnHover: PropTypes__default["default"].bool,
|
|
239
|
+
|
|
240
|
+
/** Скрыть если не активно */
|
|
241
|
+
hideOnDisabled: PropTypes__default["default"].bool,
|
|
242
|
+
|
|
243
|
+
/** Устанавливает z-index кнопкам */
|
|
244
|
+
zIndex: PropTypes__default["default"].number,
|
|
245
|
+
|
|
246
|
+
/** Устанавливает цвет кнопок */
|
|
247
|
+
theme: PropTypes__default["default"].oneOf(['white', 'gray'])
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
exports.ScrollControls = ScrollControls;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
.ScrollControls__root___mOlOq {
|
|
2
|
+
position: relative;
|
|
3
|
+
overflow: hidden;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.ScrollControls__buttonCommon___rZcyK {
|
|
7
|
+
position: absolute;
|
|
8
|
+
top: 50%;
|
|
9
|
+
transform: translateY(-50%);
|
|
10
|
+
border: 0;
|
|
11
|
+
box-shadow: 0 0 10px rgba(0, 0, 0, .08);
|
|
12
|
+
height: 66px;
|
|
13
|
+
max-width: 30px;
|
|
14
|
+
max-height: 50%;
|
|
15
|
+
min-height: 24px
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.ScrollControls__buttonCommon___rZcyK:disabled {
|
|
19
|
+
opacity: .3;
|
|
20
|
+
pointer-events: auto;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.ScrollControls__buttonCommon___rZcyK:active {
|
|
24
|
+
background: var(--black-200);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.ScrollControls__prev___cF2KB {
|
|
28
|
+
left: 0;
|
|
29
|
+
margin-left: var(--pds-spacing-xs);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.ScrollControls__next___9B-9g {
|
|
33
|
+
right: 0;
|
|
34
|
+
margin-right: var(--pds-spacing-xs);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.ScrollControls__icon___lzBzL {
|
|
38
|
+
display: block;
|
|
39
|
+
width: auto;
|
|
40
|
+
height: 24px;
|
|
41
|
+
fill: currentColor;
|
|
42
|
+
max-height: 80%;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.ScrollControls__showOnHover___StbVV .ScrollControls__next___9B-9g {
|
|
46
|
+
right: -40px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.ScrollControls__showOnHover___StbVV .ScrollControls__prev___cF2KB {
|
|
50
|
+
left: -40px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.ScrollControls__hideOnDisabled___IONkE:disabled {
|
|
54
|
+
opacity: 0;
|
|
55
|
+
pointer-events: none;
|
|
56
|
+
visibility: hidden;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@media (hover: hover) {
|
|
60
|
+
.ScrollControls__showOnHover___StbVV:hover .ScrollControls__next___9B-9g {
|
|
61
|
+
right: 0;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.ScrollControls__showOnHover___StbVV:hover .ScrollControls__prev___cF2KB {
|
|
65
|
+
left: 0;
|
|
66
|
+
}
|
|
67
|
+
}
|
package/Skeleton/index.js
CHANGED