@prom-ui/core 0.0.17 → 0.0.18
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/package.json +1 -1
- package/Box/package.json +1 -1
- package/Button/package.json +1 -1
- package/ButtonPageUp/package.json +1 -1
- package/Checkbox/package.json +1 -1
- package/Flex/package.json +1 -1
- package/Grid/package.json +1 -1
- package/Icon/package.json +1 -1
- package/Image/package.json +1 -1
- package/ImageEmoji/package.json +1 -1
- package/Input/package.json +1 -1
- package/KeyPress/package.json +1 -1
- package/Line/package.json +1 -1
- package/Link/package.json +1 -1
- package/List/package.json +1 -1
- package/OutsideClick/package.json +1 -1
- package/Picture/package.json +1 -1
- package/PortableOverlay/index.d.ts +12 -0
- package/PortableOverlay/index.js +114 -0
- package/PortableOverlay/package.json +10 -0
- package/PortableOverlay/style.css +44 -0
- package/Portal/index.d.ts +2 -2
- package/Portal/package.json +1 -1
- package/Rating/package.json +1 -1
- package/Scroll/package.json +1 -1
- package/ScrollControls/package.json +1 -1
- package/SideOverlay/blocks.d.ts +14 -0
- package/SideOverlay/index.d.ts +31 -0
- package/SideOverlay/index.js +254 -0
- package/SideOverlay/package.json +12 -0
- package/SideOverlay/style.css +208 -0
- package/SideOverlay/utils.d.ts +8 -0
- package/Skeleton/package.json +1 -1
- package/Spinner/package.json +1 -1
- package/Text/package.json +1 -1
- package/TextEmoji/package.json +1 -1
- package/Tumbler/package.json +1 -1
- package/package.json +3 -2
package/Body/package.json
CHANGED
package/Box/package.json
CHANGED
package/Button/package.json
CHANGED
package/Checkbox/package.json
CHANGED
package/Flex/package.json
CHANGED
package/Grid/package.json
CHANGED
package/Icon/package.json
CHANGED
package/Image/package.json
CHANGED
package/ImageEmoji/package.json
CHANGED
package/Input/package.json
CHANGED
package/KeyPress/package.json
CHANGED
package/Line/package.json
CHANGED
package/Link/package.json
CHANGED
package/List/package.json
CHANGED
package/Picture/package.json
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { tSideOverlayProps } from '@prom-ui/core/SideOverlay';
|
|
3
|
+
export declare type tPortableOverlayProps = {
|
|
4
|
+
bodyGrey?: boolean;
|
|
5
|
+
className?: string;
|
|
6
|
+
headerClassname?: string;
|
|
7
|
+
title?: any;
|
|
8
|
+
visible?: boolean;
|
|
9
|
+
fullScreen?: boolean;
|
|
10
|
+
onScroll?: () => void;
|
|
11
|
+
};
|
|
12
|
+
export declare const PortableOverlay: React.FC<tSideOverlayProps & tPortableOverlayProps>;
|
|
@@ -0,0 +1,114 @@
|
|
|
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 classSet = require('classnames');
|
|
10
|
+
var Button = require('@prom-ui/core/Button');
|
|
11
|
+
var Icon = require('@prom-ui/core/Icon');
|
|
12
|
+
var SideOverlay = require('@prom-ui/core/SideOverlay');
|
|
13
|
+
var Text = require('@prom-ui/core/Text');
|
|
14
|
+
var Left = require('@prom-ui/icons/Left');
|
|
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 classSet__default = /*#__PURE__*/_interopDefaultLegacy(classSet);
|
|
21
|
+
|
|
22
|
+
var css = {"header":"PortableOverlay__header___seSVI","content":"PortableOverlay__content___2dqdx","contentGrey":"PortableOverlay__contentGrey___hNlfq","item":"PortableOverlay__item___hWWcF","itemTitle":"PortableOverlay__itemTitle___Pewzr","popupFullScreen":"PortableOverlay__popupFullScreen___hiqqZ"};
|
|
23
|
+
|
|
24
|
+
var PortableOverlay = function (_a) {
|
|
25
|
+
var _b;
|
|
26
|
+
|
|
27
|
+
var _c = _a.bodyGrey,
|
|
28
|
+
bodyGrey = _c === void 0 ? false : _c,
|
|
29
|
+
children = _a.children,
|
|
30
|
+
className = _a.className,
|
|
31
|
+
headerClassname = _a.headerClassname,
|
|
32
|
+
onClose = _a.onClose,
|
|
33
|
+
onScroll = _a.onScroll,
|
|
34
|
+
title = _a.title,
|
|
35
|
+
_d = _a.visible,
|
|
36
|
+
visible = _d === void 0 ? false : _d,
|
|
37
|
+
_e = _a.fullScreen,
|
|
38
|
+
fullScreen = _e === void 0 ? false : _e,
|
|
39
|
+
_f = _a.useTouchScrollable,
|
|
40
|
+
useTouchScrollable = _f === void 0 ? true : _f,
|
|
41
|
+
_g = _a.useScrollLock,
|
|
42
|
+
useScrollLock = _g === void 0 ? true : _g,
|
|
43
|
+
_h = _a.useOutsideClose,
|
|
44
|
+
useOutsideClose = _h === void 0 ? true : _h,
|
|
45
|
+
dataQaId = _a.dataQaId,
|
|
46
|
+
contentRef = _a.contentRef;
|
|
47
|
+
return React__default["default"].createElement(SideOverlay.SideOverlay, {
|
|
48
|
+
open: visible,
|
|
49
|
+
placement: 'right',
|
|
50
|
+
onClose: onClose,
|
|
51
|
+
padding: 'none',
|
|
52
|
+
useCloseButton: false,
|
|
53
|
+
useTouchScrollable: useTouchScrollable,
|
|
54
|
+
useScrollLock: useScrollLock,
|
|
55
|
+
useOutsideClose: useOutsideClose,
|
|
56
|
+
className: className,
|
|
57
|
+
size: fullScreen ? '100%' : 400,
|
|
58
|
+
classNames: {
|
|
59
|
+
Popup: fullScreen ? css.popupFullScreen : null
|
|
60
|
+
},
|
|
61
|
+
dataQaId: visible ? dataQaId : 'closed_popup',
|
|
62
|
+
contentRef: contentRef
|
|
63
|
+
}, React__default["default"].createElement("div", {
|
|
64
|
+
className: classSet__default["default"](css.header, headerClassname)
|
|
65
|
+
}, React__default["default"].createElement("div", {
|
|
66
|
+
className: css.item
|
|
67
|
+
}, onClose && React__default["default"].createElement(Button.Button, {
|
|
68
|
+
"button-padding": 'xxs',
|
|
69
|
+
"button-theme": 'white-inherit',
|
|
70
|
+
onClick: onClose,
|
|
71
|
+
"data-qaid": 'back'
|
|
72
|
+
}, React__default["default"].createElement(Icon.Icon, {
|
|
73
|
+
"icon-as": Left.Left,
|
|
74
|
+
style: {
|
|
75
|
+
width: 24,
|
|
76
|
+
height: 24
|
|
77
|
+
}
|
|
78
|
+
}))), React__default["default"].createElement("div", {
|
|
79
|
+
className: css.itemTitle,
|
|
80
|
+
"data-qaid": 'popup_title'
|
|
81
|
+
}, React__default["default"].createElement(Text.Text, {
|
|
82
|
+
"text-color": 'white',
|
|
83
|
+
"text-size": 'h5',
|
|
84
|
+
"text-weight": 'bold',
|
|
85
|
+
"text-align": 'center',
|
|
86
|
+
"data-qaid": 'title'
|
|
87
|
+
}, typeof title === 'function' ? title() : title)), React__default["default"].createElement("div", {
|
|
88
|
+
className: css.item
|
|
89
|
+
}, null)), React__default["default"].createElement("div", {
|
|
90
|
+
className: classSet__default["default"](css.content, (_b = {}, _b[css.contentGrey] = bodyGrey, _b)),
|
|
91
|
+
onScroll: onScroll
|
|
92
|
+
}, children));
|
|
93
|
+
};
|
|
94
|
+
PortableOverlay.propTypes = {
|
|
95
|
+
visible: PropTypes__default["default"].bool,
|
|
96
|
+
title: PropTypes__default["default"].any,
|
|
97
|
+
children: PropTypes__default["default"].any,
|
|
98
|
+
onClose: PropTypes__default["default"].func,
|
|
99
|
+
onScroll: PropTypes__default["default"].func,
|
|
100
|
+
className: PropTypes__default["default"].string,
|
|
101
|
+
dataQaId: PropTypes__default["default"].string,
|
|
102
|
+
|
|
103
|
+
/** @ignore */
|
|
104
|
+
fullScreen: PropTypes__default["default"].bool,
|
|
105
|
+
useTouchScrollable: PropTypes__default["default"].bool,
|
|
106
|
+
useScrollLock: PropTypes__default["default"].bool,
|
|
107
|
+
useOutsideClose: PropTypes__default["default"].bool,
|
|
108
|
+
headerClassname: PropTypes__default["default"].string,
|
|
109
|
+
|
|
110
|
+
/** Устанавливает серый цвет фона, по умолчанию белый */
|
|
111
|
+
bodyGrey: PropTypes__default["default"].bool
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
exports.PortableOverlay = PortableOverlay;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
.PortableOverlay__header___seSVI {
|
|
2
|
+
position: -webkit-sticky;
|
|
3
|
+
position: sticky;
|
|
4
|
+
top: 0;
|
|
5
|
+
z-index: 10;
|
|
6
|
+
display: flex;
|
|
7
|
+
height: 50px;
|
|
8
|
+
background: var(--violet-500);
|
|
9
|
+
justify-content: space-between;
|
|
10
|
+
align-items: center;
|
|
11
|
+
padding: 0 var(--pds-spacing-s);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.PortableOverlay__content___2dqdx {
|
|
15
|
+
height: calc(100% - 50px);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.PortableOverlay__content___2dqdx::after {
|
|
19
|
+
clear: both;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.PortableOverlay__content___2dqdx::after,
|
|
23
|
+
.PortableOverlay__content___2dqdx::before {
|
|
24
|
+
content: "";
|
|
25
|
+
display: table;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.PortableOverlay__contentGrey___hNlfq {
|
|
29
|
+
background: var(--black-100);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.PortableOverlay__item___hWWcF {
|
|
33
|
+
width: 40px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.PortableOverlay__itemTitle___Pewzr {
|
|
37
|
+
flex: 1;
|
|
38
|
+
min-width: 1px;
|
|
39
|
+
overflow: hidden;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.PortableOverlay__popupFullScreen___hiqqZ {
|
|
43
|
+
max-width: 100%;
|
|
44
|
+
}
|
package/Portal/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare type
|
|
2
|
+
declare type tPortalProps = {
|
|
3
3
|
id?: string;
|
|
4
4
|
isActive?: boolean;
|
|
5
5
|
children?: any;
|
|
6
6
|
};
|
|
7
|
-
export declare const Portal: React.FC<
|
|
7
|
+
export declare const Portal: React.FC<tPortalProps>;
|
|
8
8
|
export {};
|
package/Portal/package.json
CHANGED
package/Rating/package.json
CHANGED
package/Scroll/package.json
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare const Root: any;
|
|
3
|
+
export declare const Backdrop: any;
|
|
4
|
+
export declare const Popup: any;
|
|
5
|
+
export declare const Content: any;
|
|
6
|
+
export declare const Close: any;
|
|
7
|
+
declare type tAnimateProps = {
|
|
8
|
+
enabled?: boolean;
|
|
9
|
+
open?: boolean;
|
|
10
|
+
onEnter?: () => void;
|
|
11
|
+
children?: React.ReactNode;
|
|
12
|
+
};
|
|
13
|
+
export declare const Animate: React.FC<tAnimateProps>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type tClassNames = {
|
|
3
|
+
Root?: string;
|
|
4
|
+
Backdrop?: string;
|
|
5
|
+
Popup?: string;
|
|
6
|
+
Content?: string;
|
|
7
|
+
Close?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare type tSideOverlayProps = {
|
|
10
|
+
animationEnabled?: boolean;
|
|
11
|
+
open?: boolean;
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
className?: string;
|
|
14
|
+
classNames?: tClassNames;
|
|
15
|
+
onOpen?: () => void;
|
|
16
|
+
onClose?: () => void;
|
|
17
|
+
padding?: string | number;
|
|
18
|
+
placement?: 'top' | 'right' | 'bottom' | 'left';
|
|
19
|
+
size?: string | number;
|
|
20
|
+
useCloseButton?: boolean;
|
|
21
|
+
useEscapeClose?: boolean;
|
|
22
|
+
useOutsideClose?: boolean;
|
|
23
|
+
usePortal?: boolean;
|
|
24
|
+
useScrollLock?: boolean;
|
|
25
|
+
useTouchScrollable?: boolean;
|
|
26
|
+
zIndex?: string | number;
|
|
27
|
+
dataQaId?: string;
|
|
28
|
+
contentRef?: React.RefObject<HTMLElement>;
|
|
29
|
+
};
|
|
30
|
+
export declare const SideOverlay: React.FC<tSideOverlayProps>;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('./style.css');
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
6
|
+
|
|
7
|
+
var React = require('react');
|
|
8
|
+
var ttag = require('ttag');
|
|
9
|
+
var PropTypes = require('prop-types');
|
|
10
|
+
var ScrollLock = require('react-scrolllock');
|
|
11
|
+
var Portal = require('@prom-ui/core/Portal');
|
|
12
|
+
var KeyPress = require('@prom-ui/core/KeyPress');
|
|
13
|
+
var evokit = require('evokit');
|
|
14
|
+
var reactTransitionGroup = require('react-transition-group');
|
|
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 ScrollLock__default = /*#__PURE__*/_interopDefaultLegacy(ScrollLock);
|
|
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":"SideOverlay__root___zoSc7","backdrop":"SideOverlay__backdrop___v5Neh","popup":"SideOverlay__popup___LsB4w","content":"SideOverlay__content___D9ezA","close":"SideOverlay__close___aiN5k","popup_placement_top":"SideOverlay__popup_placement_top___BSFf7","popup_placement_bottom":"SideOverlay__popup_placement_bottom___k1gGY","popup_placement_right":"SideOverlay__popup_placement_right___w9HUr","popup_placement_left":"SideOverlay__popup_placement_left___DWBxa","enter":"SideOverlay__enter___ukL-B","exit":"SideOverlay__exit___QE5yq","enterActive":"SideOverlay__enterActive___VPRAq","exitActive":"SideOverlay__exitActive___FhiSX"};
|
|
66
|
+
|
|
67
|
+
var BLOCKS_PRESET = {
|
|
68
|
+
css: css,
|
|
69
|
+
b: ''
|
|
70
|
+
};
|
|
71
|
+
var Root = evokit.createBlock('div', 'root', [], BLOCKS_PRESET);
|
|
72
|
+
var Backdrop = evokit.createBlock('div', 'backdrop', [], BLOCKS_PRESET);
|
|
73
|
+
var Popup = evokit.createBlock('div', 'popup', ['placement'], BLOCKS_PRESET);
|
|
74
|
+
var Content = evokit.createBlock('div', 'content', [], BLOCKS_PRESET);
|
|
75
|
+
var Close = evokit.createBlock('button', 'close', [], BLOCKS_PRESET);
|
|
76
|
+
var Animate = function (_a) {
|
|
77
|
+
var _b = _a.open,
|
|
78
|
+
open = _b === void 0 ? false : _b,
|
|
79
|
+
children = _a.children,
|
|
80
|
+
_c = _a.enabled,
|
|
81
|
+
enabled = _c === void 0 ? true : _c,
|
|
82
|
+
onEnter = _a.onEnter;
|
|
83
|
+
return React__default["default"].createElement(reactTransitionGroup.CSSTransition, {
|
|
84
|
+
in: open,
|
|
85
|
+
timeout: enabled ? 225 : 0,
|
|
86
|
+
classNames: css,
|
|
87
|
+
unmountOnExit: true,
|
|
88
|
+
onEnter: onEnter
|
|
89
|
+
}, children);
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
var getPopupStyle = function (placement, size) {
|
|
93
|
+
if (['top', 'bottom'].includes(placement)) {
|
|
94
|
+
return {
|
|
95
|
+
height: size
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return {
|
|
100
|
+
width: size
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
var SideOverlay = function (_a) {
|
|
105
|
+
var children = _a.children,
|
|
106
|
+
_b = _a.classNames,
|
|
107
|
+
classNames = _b === void 0 ? {} : _b,
|
|
108
|
+
onClose = _a.onClose,
|
|
109
|
+
onOpen = _a.onOpen,
|
|
110
|
+
_c = _a.open,
|
|
111
|
+
open = _c === void 0 ? false : _c,
|
|
112
|
+
_d = _a.padding,
|
|
113
|
+
padding = _d === void 0 ? '45px 30px 30px 30px' : _d,
|
|
114
|
+
_e = _a.placement,
|
|
115
|
+
placement = _e === void 0 ? 'left' : _e,
|
|
116
|
+
_f = _a.size,
|
|
117
|
+
size = _f === void 0 ? 400 : _f,
|
|
118
|
+
_g = _a.useCloseButton,
|
|
119
|
+
useCloseButton = _g === void 0 ? true : _g,
|
|
120
|
+
_h = _a.useEscapeClose,
|
|
121
|
+
useEscapeClose = _h === void 0 ? true : _h,
|
|
122
|
+
_j = _a.useOutsideClose,
|
|
123
|
+
useOutsideClose = _j === void 0 ? true : _j,
|
|
124
|
+
_k = _a.usePortal,
|
|
125
|
+
usePortal = _k === void 0 ? true : _k,
|
|
126
|
+
_l = _a.useScrollLock,
|
|
127
|
+
useScrollLock = _l === void 0 ? true : _l,
|
|
128
|
+
_m = _a.useTouchScrollable,
|
|
129
|
+
useTouchScrollable = _m === void 0 ? true : _m,
|
|
130
|
+
_o = _a.zIndex,
|
|
131
|
+
zIndex = _o === void 0 ? 5000 : _o,
|
|
132
|
+
dataQaId = _a.dataQaId,
|
|
133
|
+
contentRef = _a.contentRef,
|
|
134
|
+
_p = _a.animationEnabled,
|
|
135
|
+
animationEnabled = _p === void 0 ? true : _p,
|
|
136
|
+
props = __rest(_a, ["children", "classNames", "onClose", "onOpen", "open", "padding", "placement", "size", "useCloseButton", "useEscapeClose", "useOutsideClose", "usePortal", "useScrollLock", "useTouchScrollable", "zIndex", "dataQaId", "contentRef", "animationEnabled"]);
|
|
137
|
+
|
|
138
|
+
return React__default["default"].createElement(Animate, {
|
|
139
|
+
open: open,
|
|
140
|
+
onEnter: function () {
|
|
141
|
+
onOpen && onOpen();
|
|
142
|
+
},
|
|
143
|
+
enabled: animationEnabled
|
|
144
|
+
}, React__default["default"].createElement(Portal.Portal, {
|
|
145
|
+
isActive: usePortal
|
|
146
|
+
}, React__default["default"].createElement(Root, __assign({
|
|
147
|
+
role: 'presentation',
|
|
148
|
+
style: {
|
|
149
|
+
zIndex: zIndex
|
|
150
|
+
},
|
|
151
|
+
className: classNames.Root
|
|
152
|
+
}, props), React__default["default"].createElement(ScrollLock__default["default"], {
|
|
153
|
+
isActive: useScrollLock
|
|
154
|
+
}), React__default["default"].createElement(KeyPress.KeyPress, {
|
|
155
|
+
isActive: useEscapeClose,
|
|
156
|
+
code: 'Escape',
|
|
157
|
+
onKeyDown: onClose
|
|
158
|
+
}), React__default["default"].createElement(Backdrop, {
|
|
159
|
+
className: classNames.Backdrop,
|
|
160
|
+
"aria-hidden": true,
|
|
161
|
+
onClick: function () {
|
|
162
|
+
if (useOutsideClose && onClose) {
|
|
163
|
+
onClose();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}), React__default["default"].createElement(Popup, {
|
|
167
|
+
"popup-placement": placement,
|
|
168
|
+
className: classNames.Popup,
|
|
169
|
+
style: getPopupStyle(placement, size),
|
|
170
|
+
"data-qaid": dataQaId
|
|
171
|
+
}, useCloseButton && onClose && React__default["default"].createElement(Close, {
|
|
172
|
+
className: classNames.Close,
|
|
173
|
+
type: 'button',
|
|
174
|
+
onClick: onClose,
|
|
175
|
+
"aria-label": ttag.t(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\u0417\u0430\u043A\u0440\u044B\u0442\u044C"], ["\u0417\u0430\u043A\u0440\u044B\u0442\u044C"]))),
|
|
176
|
+
"data-qaid": 'close'
|
|
177
|
+
}), useTouchScrollable ? React__default["default"].createElement(ScrollLock.TouchScrollable, null, React__default["default"].createElement(Content, {
|
|
178
|
+
ref: contentRef,
|
|
179
|
+
className: classNames.Content,
|
|
180
|
+
style: {
|
|
181
|
+
padding: padding
|
|
182
|
+
}
|
|
183
|
+
}, children)) : React__default["default"].createElement(Content, {
|
|
184
|
+
ref: contentRef,
|
|
185
|
+
className: classNames.Content,
|
|
186
|
+
style: {
|
|
187
|
+
padding: padding
|
|
188
|
+
}
|
|
189
|
+
}, children)))));
|
|
190
|
+
};
|
|
191
|
+
SideOverlay.propTypes = {
|
|
192
|
+
/** React children */
|
|
193
|
+
// children: PropTypes.node,
|
|
194
|
+
|
|
195
|
+
/** Кастомные классы */
|
|
196
|
+
// classNames: PropTypes.shape({
|
|
197
|
+
// Root: PropTypes.string,
|
|
198
|
+
// Backdrop: PropTypes.string,
|
|
199
|
+
// Popup: PropTypes.string,
|
|
200
|
+
// Content: PropTypes.string,
|
|
201
|
+
// Close: PropTypes.string,
|
|
202
|
+
// }),
|
|
203
|
+
|
|
204
|
+
/** Handle для закрытия попапа */
|
|
205
|
+
onClose: PropTypes__default["default"].func,
|
|
206
|
+
|
|
207
|
+
/** Срабатывает когда попап открыт */
|
|
208
|
+
onOpen: PropTypes__default["default"].func,
|
|
209
|
+
|
|
210
|
+
/** Состояние, открыто или нет */
|
|
211
|
+
open: PropTypes__default["default"].bool,
|
|
212
|
+
|
|
213
|
+
/** Внутренние отступы */
|
|
214
|
+
padding: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]),
|
|
215
|
+
|
|
216
|
+
/** Расположение */
|
|
217
|
+
placement: PropTypes__default["default"].oneOf(['top', 'right', 'bottom', 'left']),
|
|
218
|
+
|
|
219
|
+
/** Ширина или высота взависимости от placement */
|
|
220
|
+
size: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]),
|
|
221
|
+
|
|
222
|
+
/** Отображение кнопки закрытия (крестик) */
|
|
223
|
+
useCloseButton: PropTypes__default["default"].bool,
|
|
224
|
+
|
|
225
|
+
/** Разрешает закрыть попап по клавише `Escape` */
|
|
226
|
+
useEscapeClose: PropTypes__default["default"].bool,
|
|
227
|
+
|
|
228
|
+
/** Разрешает закрытие при клике на свободное пространство (затемнение документа) */
|
|
229
|
+
useOutsideClose: PropTypes__default["default"].bool,
|
|
230
|
+
|
|
231
|
+
/** Рендер в конец `<body>` */
|
|
232
|
+
usePortal: PropTypes__default["default"].bool,
|
|
233
|
+
|
|
234
|
+
/** Запрещает прокрутку `<body>` */
|
|
235
|
+
useScrollLock: PropTypes__default["default"].bool,
|
|
236
|
+
|
|
237
|
+
/** Запрещает прокрутку `<body>` для ios */
|
|
238
|
+
useTouchScrollable: PropTypes__default["default"].bool,
|
|
239
|
+
|
|
240
|
+
/** Размещением по z-оси */
|
|
241
|
+
zIndex: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]),
|
|
242
|
+
|
|
243
|
+
/** HTML Атрибут `data-qaid` для автотестов */
|
|
244
|
+
dataQaId: PropTypes__default["default"].string,
|
|
245
|
+
|
|
246
|
+
/** `ref` для блока с контентом */
|
|
247
|
+
// contentRef: PropTypes.shape({ current: PropTypes.any }),
|
|
248
|
+
|
|
249
|
+
/** Включает/отключает анимацию открытия/скрытия шторки */
|
|
250
|
+
animationEnabled: PropTypes__default["default"].bool
|
|
251
|
+
};
|
|
252
|
+
var templateObject_1;
|
|
253
|
+
|
|
254
|
+
exports.SideOverlay = SideOverlay;
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
.SideOverlay__root___zoSc7 {
|
|
2
|
+
position: fixed;
|
|
3
|
+
right: 0;
|
|
4
|
+
bottom: 0;
|
|
5
|
+
top: 0;
|
|
6
|
+
left: 0;
|
|
7
|
+
width: 100%;
|
|
8
|
+
height: 100%;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.SideOverlay__backdrop___v5Neh {
|
|
12
|
+
top: 0;
|
|
13
|
+
left: 0;
|
|
14
|
+
right: 0;
|
|
15
|
+
bottom: 0;
|
|
16
|
+
display: flex;
|
|
17
|
+
z-index: -1;
|
|
18
|
+
position: fixed;
|
|
19
|
+
align-items: center;
|
|
20
|
+
justify-content: center;
|
|
21
|
+
opacity: .5;
|
|
22
|
+
background-color: var(--black-400);
|
|
23
|
+
-webkit-tap-highlight-color: transparent;
|
|
24
|
+
will-change: opacity;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.SideOverlay__popup___LsB4w {
|
|
28
|
+
z-index: 1200;
|
|
29
|
+
position: fixed;
|
|
30
|
+
background: var(--white);
|
|
31
|
+
box-sizing: border-box;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.SideOverlay__content___D9ezA {
|
|
35
|
+
width: 100%;
|
|
36
|
+
height: 100%;
|
|
37
|
+
box-sizing: border-box;
|
|
38
|
+
overflow-x: hidden;
|
|
39
|
+
overflow-y: auto;
|
|
40
|
+
-webkit-overflow-scrolling: touch;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.SideOverlay__close___aiN5k {
|
|
44
|
+
position: absolute;
|
|
45
|
+
right: 0;
|
|
46
|
+
top: 0;
|
|
47
|
+
font-size: 30px;
|
|
48
|
+
line-height: 24px;
|
|
49
|
+
color: inherit;
|
|
50
|
+
box-sizing: border-box;
|
|
51
|
+
-webkit-appearance: none;
|
|
52
|
+
-moz-appearance: none;
|
|
53
|
+
appearance: none;
|
|
54
|
+
background: transparent;
|
|
55
|
+
-webkit-user-select: none;
|
|
56
|
+
-moz-user-select: none;
|
|
57
|
+
-ms-user-select: none;
|
|
58
|
+
user-select: none;
|
|
59
|
+
outline: none;
|
|
60
|
+
cursor: pointer;
|
|
61
|
+
border: none;
|
|
62
|
+
padding: 0;
|
|
63
|
+
font-weight: normal;
|
|
64
|
+
width: 24px;
|
|
65
|
+
height: 24px;
|
|
66
|
+
margin: 10px
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.SideOverlay__close___aiN5k::after {
|
|
70
|
+
content: "\00D7";
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.SideOverlay__popup_placement_top___BSFf7,
|
|
74
|
+
.SideOverlay__popup_placement_bottom___k1gGY,
|
|
75
|
+
.SideOverlay__popup_placement_right___w9HUr,
|
|
76
|
+
.SideOverlay__popup_placement_left___DWBxa {
|
|
77
|
+
transform: none;
|
|
78
|
+
will-change: transform;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.SideOverlay__popup_placement_top___BSFf7,
|
|
82
|
+
.SideOverlay__popup_placement_bottom___k1gGY {
|
|
83
|
+
right: 0;
|
|
84
|
+
left: 0;
|
|
85
|
+
max-height: 90%;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.SideOverlay__popup_placement_right___w9HUr,
|
|
89
|
+
.SideOverlay__popup_placement_left___DWBxa {
|
|
90
|
+
top: 0;
|
|
91
|
+
bottom: 0;
|
|
92
|
+
max-width: 90%;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.SideOverlay__popup_placement_top___BSFf7 {
|
|
96
|
+
top: 0;
|
|
97
|
+
box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.1);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.SideOverlay__popup_placement_bottom___k1gGY {
|
|
101
|
+
bottom: 0;
|
|
102
|
+
box-shadow: 0 -3px 6px 0 rgba(0, 0, 0, 0.1);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.SideOverlay__popup_placement_right___w9HUr {
|
|
106
|
+
right: 0;
|
|
107
|
+
box-shadow: -3px 0 6px 0 rgba(0, 0, 0, 0.1);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.SideOverlay__popup_placement_left___DWBxa {
|
|
111
|
+
left: 0;
|
|
112
|
+
box-shadow: 3px 0 6px 0 rgba(0, 0, 0, 0.1);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/* animation */
|
|
116
|
+
|
|
117
|
+
.SideOverlay__enter___ukL-B,
|
|
118
|
+
.SideOverlay__exit___QE5yq {
|
|
119
|
+
pointer-events: auto;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.SideOverlay__enterActive___VPRAq,
|
|
123
|
+
.SideOverlay__exitActive___FhiSX {
|
|
124
|
+
pointer-events: none
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.SideOverlay__enterActive___VPRAq .SideOverlay__backdrop___v5Neh, .SideOverlay__exitActive___FhiSX .SideOverlay__backdrop___v5Neh {
|
|
128
|
+
transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.SideOverlay__enterActive___VPRAq .SideOverlay__popup_placement_top___BSFf7,
|
|
132
|
+
.SideOverlay__exitActive___FhiSX .SideOverlay__popup_placement_top___BSFf7,
|
|
133
|
+
.SideOverlay__enterActive___VPRAq .SideOverlay__popup_placement_right___w9HUr,
|
|
134
|
+
.SideOverlay__exitActive___FhiSX .SideOverlay__popup_placement_right___w9HUr,
|
|
135
|
+
.SideOverlay__enterActive___VPRAq .SideOverlay__popup_placement_bottom___k1gGY,
|
|
136
|
+
.SideOverlay__exitActive___FhiSX .SideOverlay__popup_placement_bottom___k1gGY,
|
|
137
|
+
.SideOverlay__enterActive___VPRAq .SideOverlay__popup_placement_left___DWBxa,
|
|
138
|
+
.SideOverlay__exitActive___FhiSX .SideOverlay__popup_placement_left___DWBxa {
|
|
139
|
+
transition: transform 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.SideOverlay__enter___ukL-B .SideOverlay__backdrop___v5Neh {
|
|
143
|
+
opacity: 0;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.SideOverlay__enter___ukL-B .SideOverlay__popup_placement_top___BSFf7 {
|
|
147
|
+
transform: translateY(-100%);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.SideOverlay__enter___ukL-B .SideOverlay__popup_placement_right___w9HUr {
|
|
151
|
+
transform: translateX(100%);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.SideOverlay__enter___ukL-B .SideOverlay__popup_placement_bottom___k1gGY {
|
|
155
|
+
transform: translateY(100%);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.SideOverlay__enter___ukL-B .SideOverlay__popup_placement_left___DWBxa {
|
|
159
|
+
transform: translateX(-100%);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.SideOverlay__enterActive___VPRAq .SideOverlay__backdrop___v5Neh {
|
|
163
|
+
opacity: .5;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.SideOverlay__enterActive___VPRAq .SideOverlay__popup_placement_top___BSFf7,
|
|
167
|
+
.SideOverlay__enterActive___VPRAq .SideOverlay__popup_placement_bottom___k1gGY {
|
|
168
|
+
transform: translateY(0);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.SideOverlay__enterActive___VPRAq .SideOverlay__popup_placement_left___DWBxa,
|
|
172
|
+
.SideOverlay__enterActive___VPRAq .SideOverlay__popup_placement_right___w9HUr {
|
|
173
|
+
transform: translateX(0);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.SideOverlay__exit___QE5yq .SideOverlay__backdrop___v5Neh {
|
|
177
|
+
opacity: .5;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.SideOverlay__exit___QE5yq .SideOverlay__popup_placement_top___BSFf7,
|
|
181
|
+
.SideOverlay__exit___QE5yq .SideOverlay__popup_placement_bottom___k1gGY {
|
|
182
|
+
transform: translateY(0);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.SideOverlay__exit___QE5yq .SideOverlay__popup_placement_left___DWBxa,
|
|
186
|
+
.SideOverlay__exit___QE5yq .SideOverlay__popup_placement_right___w9HUr {
|
|
187
|
+
transform: translateX(0);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.SideOverlay__exitActive___FhiSX .SideOverlay__backdrop___v5Neh {
|
|
191
|
+
opacity: 0;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.SideOverlay__exitActive___FhiSX .SideOverlay__popup_placement_top___BSFf7 {
|
|
195
|
+
transform: translateY(-100%);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.SideOverlay__exitActive___FhiSX .SideOverlay__popup_placement_right___w9HUr {
|
|
199
|
+
transform: translateX(100%);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.SideOverlay__exitActive___FhiSX .SideOverlay__popup_placement_bottom___k1gGY {
|
|
203
|
+
transform: translateY(100%);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.SideOverlay__exitActive___FhiSX .SideOverlay__popup_placement_left___DWBxa {
|
|
207
|
+
transform: translateX(-100%);
|
|
208
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare type tPlacement = 'top' | 'right' | 'bottom' | 'left';
|
|
2
|
+
declare type tSize = string | number;
|
|
3
|
+
declare type tGetPopupStyle = {
|
|
4
|
+
height?: tSize;
|
|
5
|
+
width?: tSize;
|
|
6
|
+
};
|
|
7
|
+
export declare const getPopupStyle: (placement: tPlacement, size: tSize) => tGetPopupStyle;
|
|
8
|
+
export {};
|
package/Skeleton/package.json
CHANGED
package/Spinner/package.json
CHANGED
package/Text/package.json
CHANGED
package/TextEmoji/package.json
CHANGED
package/Tumbler/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prom-ui/core",
|
|
3
3
|
"author": "e.marchenko",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.18",
|
|
5
5
|
"description": "core ui blocks",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"prebuild": "node ./preBuild.js",
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"evokit-list": "^3.3.0",
|
|
43
43
|
"evokit-picture": "^3.2.0",
|
|
44
44
|
"evokit-text": "^3.2.0",
|
|
45
|
+
"react-scrolllock": "^5.0.1",
|
|
45
46
|
"react-transition-group": "^4.4.2",
|
|
46
47
|
"ts-debounce": "^4.0.0",
|
|
47
48
|
"ttag": "^1.7.24"
|
|
@@ -51,5 +52,5 @@
|
|
|
51
52
|
"react": "*",
|
|
52
53
|
"react-dom": "*"
|
|
53
54
|
},
|
|
54
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "08fdb9774272869a485dc2c1c8dc7964d8e6c407"
|
|
55
56
|
}
|