@occmundial/occ-atomic 3.0.0-beta.7 → 3.0.0-beta.70
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +549 -0
- package/build/Avatar/Avatar.js +69 -21
- package/build/Avatar/Avatar.test.js +15 -8
- package/build/Avatar/AvatarContent/AvatarContent.js +61 -21
- package/build/Avatar/AvatarContent/AvatarContent.test.js +4 -18
- package/build/Avatar/AvatarContent/__snapshots__/AvatarContent.test.js.snap +75 -15
- package/build/Avatar/AvatarContent/styles.js +88 -21
- package/build/Avatar/__snapshots__/Avatar.test.js.snap +11 -2
- package/build/Avatar/styles.js +18 -7
- package/build/Banner/Banner.js +30 -40
- package/build/Banner/Banner.test.js +64 -17
- package/build/Banner/__snapshots__/Banner.test.js.snap +0 -28
- package/build/Banner/index.js +1 -6
- package/build/Button/Button.js +1 -1
- package/build/Button/Button.test.js +0 -11
- package/build/Button/__snapshots__/Button.test.js.snap +63 -67
- package/build/Button/styles.js +42 -75
- package/build/Checkbox/Checkbox.js +48 -3
- package/build/Checkbox/__snapshots__/Checkbox.test.js.snap +81 -49
- package/build/Checkbox/styles.js +91 -48
- package/build/Drawer/Drawer.js +40 -0
- package/build/{Header/Nav/Nav.js → Drawer/index.js} +54 -39
- package/build/Drawer/index.test.js +52 -0
- package/build/Drawer/styles.js +61 -0
- package/build/Droplist/__snapshots__/Droplist.test.js.snap +5 -5
- package/build/Fab/__snapshots__/Fab.test.js.snap +2 -2
- package/build/Footer/Footer.js +81 -87
- package/build/Footer/List/List.js +89 -124
- package/build/Footer/List/styles.js +85 -31
- package/build/Footer/__snapshots__/Footer.test.js.snap +109 -59
- package/build/Footer/styles.js +116 -51
- package/build/Grid/Col/__snapshots__/Col.test.js.snap +16 -2
- package/build/Grid/Col/styles.js +12 -6
- package/build/Grid/Row/__snapshots__/Row.test.js.snap +18 -2
- package/build/Grid/Row/styles.js +15 -5
- package/build/Grid/styles.js +26 -9
- package/build/Menu/Menu.js +96 -0
- package/build/Menu/index.js +34 -0
- package/build/Menu/styles.js +25 -0
- package/build/MenuDivider/MenuDivider.js +47 -0
- package/build/MenuDivider/index.js +18 -0
- package/build/MenuDivider/styles.js +21 -0
- package/build/MenuItem/MenuItem.js +160 -0
- package/build/{Header/Menu → MenuItem}/index.js +2 -2
- package/build/MenuItem/styles.js +25 -0
- package/build/MenuItemBase/MenuItemBase.js +94 -0
- package/build/MenuItemBase/index.js +18 -0
- package/build/MenuItemBase/styles.js +57 -0
- package/build/MenuList/MenuList.js +71 -0
- package/build/{Header → MenuList}/index.js +2 -2
- package/build/MenuList/styles.js +54 -0
- package/build/MenuUser/MenuUser.js +152 -0
- package/build/MenuUser/index.js +18 -0
- package/build/MenuUser/styles.js +22 -0
- package/build/Modal/Modal.js +94 -66
- package/build/Modal/Modal.test.js +14 -7
- package/build/Modal/__snapshots__/Modal.test.js.snap +155 -100
- package/build/Modal/styles.js +165 -143
- package/build/NavAside/NavAside.js +54 -113
- package/build/NavAside/NavAside.test.js +0 -57
- package/build/NavAside/__snapshots__/NavAside.test.js.snap +35 -43
- package/build/NavAside/index.js +6 -0
- package/build/NavAside/styles.js +45 -63
- package/build/NavAvatarButton/NavAvatarButton.js +134 -0
- package/build/{NavIcon → NavAvatarButton}/index.js +2 -2
- package/build/NavAvatarButton/styles.js +33 -0
- package/build/NavButton/NavButton.js +73 -0
- package/build/{Header/Nav → NavButton}/index.js +2 -2
- package/build/NavButton/styles.js +79 -0
- package/build/NavItem/styles.js +4 -4
- package/build/NavTab/NavTab.js +45 -32
- package/build/NavTab/styles.js +59 -27
- package/build/NavTop/styles.js +6 -6
- package/build/OrderBy/OrderBy.js +2 -1
- package/build/Pager/Page/Page.js +11 -6
- package/build/Pager/Page/Page.test.js +13 -9
- package/build/Pager/Page/__snapshots__/Page.test.js.snap +34 -10
- package/build/Pager/Page/styles.js +48 -14
- package/build/Pager/Pager.js +144 -235
- package/build/Pager/Pager.test.js +81 -36
- package/build/Pager/__snapshots__/Pager.test.js.snap +3 -36
- package/build/Pager/styles.js +5 -40
- package/build/Pill/Choice/Choice.js +6 -4
- package/build/Pill/Choice/styles.js +13 -10
- package/build/Pill/Group/styles.js +5 -5
- package/build/Pill/Stack/Stack.js +2 -2
- package/build/Pill/Stack/styles.js +5 -8
- package/build/Placeholder/Placeholder.js +29 -12
- package/build/Placeholder/Placeholder.test.js +4 -4
- package/build/Placeholder/__snapshots__/Placeholder.test.js.snap +81 -38
- package/build/Placeholder/styles.js +86 -42
- package/build/Provider/MenuListProvider.js +38 -0
- package/build/Provider/usePrevious.js +1 -1
- package/build/Radio/Radio.js +22 -7
- package/build/Radio/__snapshots__/Radio.test.js.snap +71 -79
- package/build/Radio/styles.js +84 -85
- package/build/SlideDown/SlideDown.js +167 -169
- package/build/SlideDown/SlideDown.test.js +49 -44
- package/build/SlideDown/__snapshots__/SlideDown.test.js.snap +44 -15
- package/build/SlideDown/styles.js +51 -20
- package/build/SlideToggle/SlideToggle.js +38 -6
- package/build/SlideToggle/SlideToggle.test.js +2 -2
- package/build/SlideToggle/__snapshots__/SlideToggle.test.js.snap +53 -38
- package/build/SlideToggle/styles.js +64 -45
- package/build/Tabs/Tab/Tab.js +73 -0
- package/build/Tabs/Tab/index.js +34 -0
- package/build/Tabs/Tab/index.test.js +132 -0
- package/build/Tabs/Tab/styles.js +74 -0
- package/build/Tabs/TabContent/TabContent.js +76 -0
- package/build/Tabs/TabContent/index.js +34 -0
- package/build/Tabs/TabContent/index.test.js +68 -0
- package/build/Tabs/TabContent/styles.js +23 -0
- package/build/Tabs/TabIndicator/TabIndicator.js +158 -0
- package/build/Tabs/TabIndicator/index.js +34 -0
- package/build/Tabs/TabIndicator/styles.js +24 -0
- package/build/Tabs/TabList/TabList.js +108 -0
- package/build/Tabs/TabList/index.js +34 -0
- package/build/{Pager/Break → Tabs/TabList}/styles.js +3 -2
- package/build/Tabs/Tabs.js +74 -0
- package/build/Tabs/context.js +94 -0
- package/build/Tabs/index.js +34 -0
- package/build/Tabs/index.test.js +157 -0
- package/build/Tabs/styles.js +19 -0
- package/build/Tag/Tag.js +2 -2
- package/build/Tag/__snapshots__/Tag.test.js.snap +40 -43
- package/build/Tag/styles.js +76 -82
- package/build/Text/Text.js +2 -1
- package/build/TextField/TextField.js +7 -6
- package/build/TextField/__snapshots__/TextField.test.js.snap +3 -0
- package/build/TextField/styles.js +3 -0
- package/build/Tip/Tip.js +62 -95
- package/build/Tip/Tip.test.js +29 -6
- package/build/Tip/TipText/index.js +32 -0
- package/build/Tip/__snapshots__/Tip.test.js.snap +127 -15
- package/build/Tip/styles.js +125 -31
- package/build/Toaster/Toast/Toast.js +76 -64
- package/build/Toaster/Toast/styles.js +118 -46
- package/build/Toaster/Toaster.js +3 -2
- package/build/Toaster/Toaster.test.js +5 -2
- package/build/Toaster/__snapshots__/Toaster.test.js.snap +1 -1
- package/build/Toaster/functions.js +4 -0
- package/build/Toaster/styles.js +3 -3
- package/build/Tooltip/Tooltip.js +73 -22
- package/build/Tooltip/__snapshots__/Tooltip.test.js.snap +22 -6
- package/build/Tooltip/styles.js +32 -10
- package/build/index.js +33 -19
- package/build/plugin/babel.js +0 -2
- package/build/subatomic/grid.js +5 -5
- package/build/tokens/colors.json +94 -60
- package/build/tokens/shadows.json +3 -3
- package/package.json +5 -2
- package/build/Banner/styles.js +0 -41
- package/build/Header/Header.js +0 -163
- package/build/Header/Header.test.js +0 -118
- package/build/Header/Menu/Menu.js +0 -135
- package/build/Header/Menu/Menu.test.js +0 -107
- package/build/Header/Menu/__snapshots__/Menu.test.js.snap +0 -113
- package/build/Header/Menu/styles.js +0 -123
- package/build/Header/Nav/Nav.test.js +0 -81
- package/build/Header/Nav/__snapshots__/Nav.test.js.snap +0 -101
- package/build/Header/Nav/styles.js +0 -110
- package/build/Header/__snapshots__/Header.test.js.snap +0 -79
- package/build/Header/styles.js +0 -94
- package/build/NavIcon/NavIcon.js +0 -112
- package/build/NavIcon/styles.js +0 -81
- package/build/Pager/Break/Break.js +0 -27
- package/build/Pager/Break/Break.test.js +0 -53
- package/build/Pager/Break/__snapshots__/Break.test.js.snap +0 -13
- package/build/Pager/Break/index.js +0 -18
- /package/build/Button/{Loading.js → Loading/index.js} +0 -0
@@ -0,0 +1,152 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports["default"] = void 0;
|
7
|
+
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
9
|
+
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
11
|
+
|
12
|
+
var _MenuItemBase = _interopRequireDefault(require("../MenuItemBase"));
|
13
|
+
|
14
|
+
var _Text = _interopRequireDefault(require("../Text"));
|
15
|
+
|
16
|
+
var _Avatar = _interopRequireDefault(require("../Avatar"));
|
17
|
+
|
18
|
+
var _idx = _interopRequireDefault(require("idx"));
|
19
|
+
|
20
|
+
var _MenuListProvider = require("../Provider/MenuListProvider");
|
21
|
+
|
22
|
+
var _excluded = ["classes", "disableText", "className", "title", "subtitle", "titleTextProps", "subtitleTextProps", "avatarProps", "dense", "children", "style", "component"];
|
23
|
+
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
25
|
+
|
26
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
27
|
+
|
28
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
29
|
+
|
30
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
31
|
+
|
32
|
+
/** MenuItem component with Avatar and subtitle. */
|
33
|
+
function MenuUser(_ref, ref) {
|
34
|
+
var classes = _ref.classes,
|
35
|
+
_ref$disableText = _ref.disableText,
|
36
|
+
disableText = _ref$disableText === void 0 ? false : _ref$disableText,
|
37
|
+
className = _ref.className,
|
38
|
+
title = _ref.title,
|
39
|
+
subtitle = _ref.subtitle,
|
40
|
+
titleTextProps = _ref.titleTextProps,
|
41
|
+
subtitleTextProps = _ref.subtitleTextProps,
|
42
|
+
avatarProps = _ref.avatarProps,
|
43
|
+
dense = _ref.dense,
|
44
|
+
children = _ref.children,
|
45
|
+
style = _ref.style,
|
46
|
+
_ref$component = _ref.component,
|
47
|
+
component = _ref$component === void 0 ? 'div' : _ref$component,
|
48
|
+
menuItemprops = _objectWithoutProperties(_ref, _excluded);
|
49
|
+
|
50
|
+
var listContext = (0, _MenuListProvider.useMenuListContext)();
|
51
|
+
var isDense = typeof dense === 'undefined' ? listContext.dense : dense;
|
52
|
+
var primary = title || children;
|
53
|
+
var titleText = !primary ? null : disableText ? primary : /*#__PURE__*/_react["default"].createElement(_Text["default"], _extends({
|
54
|
+
className: classes.title + ((0, _idx["default"])(className, function (_) {
|
55
|
+
return _.title;
|
56
|
+
}) ? " ".concat(className.title) : ''),
|
57
|
+
tag: "span",
|
58
|
+
bodyLargeStrong: !isDense,
|
59
|
+
bodyRegularStrong: isDense
|
60
|
+
}, titleTextProps), primary);
|
61
|
+
var subtitleText = !subtitle ? null : disableText ? subtitle : /*#__PURE__*/_react["default"].createElement(_Text["default"], _extends({
|
62
|
+
className: classes.subtitle + ((0, _idx["default"])(className, function (_) {
|
63
|
+
return _.subtitle;
|
64
|
+
}) ? " ".concat(className.subtitle) : ''),
|
65
|
+
tag: "span",
|
66
|
+
small: true,
|
67
|
+
corpSecondary: true
|
68
|
+
}, subtitleTextProps), subtitle);
|
69
|
+
return /*#__PURE__*/_react["default"].createElement(_MenuItemBase["default"], _extends({
|
70
|
+
className: className && className.root,
|
71
|
+
component: component,
|
72
|
+
ref: ref,
|
73
|
+
style: style && style.root
|
74
|
+
}, menuItemprops), avatarProps && /*#__PURE__*/_react["default"].createElement("div", {
|
75
|
+
className: classes.avatarContainer + ((0, _idx["default"])(className, function (_) {
|
76
|
+
return _.avatarContainer;
|
77
|
+
}) ? " ".concat(className.avatarContainer) : ''),
|
78
|
+
style: style && style.avatarContainer
|
79
|
+
}, /*#__PURE__*/_react["default"].createElement(_Avatar["default"], _extends({
|
80
|
+
size: isDense ? 40 : 56
|
81
|
+
}, avatarProps))), /*#__PURE__*/_react["default"].createElement("div", {
|
82
|
+
className: classes.textContainer + ((0, _idx["default"])(className, function (_) {
|
83
|
+
return _.textContainer;
|
84
|
+
}) ? " ".concat(className.textContainer) : ''),
|
85
|
+
style: style && style.textContainer
|
86
|
+
}, titleText, subtitleText));
|
87
|
+
}
|
88
|
+
|
89
|
+
var _default = /*#__PURE__*/_react["default"].forwardRef(MenuUser);
|
90
|
+
|
91
|
+
exports["default"] = _default;
|
92
|
+
MenuUser.propTypes = {
|
93
|
+
classes: _propTypes["default"].object,
|
94
|
+
|
95
|
+
/** Defines the align-items style property. */
|
96
|
+
alignItems: _propTypes["default"].oneOf(['center', 'start']),
|
97
|
+
|
98
|
+
/** Adds classes to the root, text, iconRight, iconLeft containers. */
|
99
|
+
className: _propTypes["default"].exact({
|
100
|
+
root: _propTypes["default"].string,
|
101
|
+
title: _propTypes["default"].string,
|
102
|
+
subtitle: _propTypes["default"].string,
|
103
|
+
avatarContainer: _propTypes["default"].string,
|
104
|
+
textContainer: _propTypes["default"].string
|
105
|
+
}),
|
106
|
+
|
107
|
+
/** Adds styles to the root, text, iconRight, iconLeft containers. */
|
108
|
+
style: _propTypes["default"].exact({
|
109
|
+
root: _propTypes["default"].object,
|
110
|
+
textContainer: _propTypes["default"].object,
|
111
|
+
avatarContainer: _propTypes["default"].objects
|
112
|
+
}),
|
113
|
+
|
114
|
+
/** Use to remove hover, focus and active stylings. */
|
115
|
+
nonActivatable: _propTypes["default"].bool,
|
116
|
+
|
117
|
+
/** If true, compact vertical padding designed for keyboard and mouse input is used. The prop defaults to the value inherited from the parent List component. */
|
118
|
+
dense: _propTypes["default"].bool,
|
119
|
+
|
120
|
+
/** If true, compact vertical padding designed for keyboard and mouse input is used. The prop defaults to the value inherited from the parent List component. */
|
121
|
+
disablePadding: _propTypes["default"].bool,
|
122
|
+
|
123
|
+
/** If true, the left and right padding is removed. */
|
124
|
+
disableGutters: _propTypes["default"].bool,
|
125
|
+
|
126
|
+
/** The content of the component. */
|
127
|
+
children: _propTypes["default"].node,
|
128
|
+
|
129
|
+
/** The component used for the root node. Either a string to use a HTML element or a component. */
|
130
|
+
selected: _propTypes["default"].bool,
|
131
|
+
|
132
|
+
/** If true, the children won't be wrapped by a Text component. This can be useful to render an alternative Text variant by wrapping the children text. */
|
133
|
+
component: _propTypes["default"].elementType,
|
134
|
+
|
135
|
+
/** If true, the children won't be wrapped by a Text component. This can be useful to render an alternative Text variant by wrapping the children text. */
|
136
|
+
disableText: _propTypes["default"].bool,
|
137
|
+
|
138
|
+
/** The title content element. */
|
139
|
+
title: _propTypes["default"].node,
|
140
|
+
|
141
|
+
/** These props will be forwarded to the title Text component (as long as disableText is not true). */
|
142
|
+
titleTextProps: _propTypes["default"].object,
|
143
|
+
|
144
|
+
/** The subtitle content element. */
|
145
|
+
subtitle: _propTypes["default"].node,
|
146
|
+
|
147
|
+
/** These props will be forwarded to the subtitle Text component (as long as disableText is not true). */
|
148
|
+
subtitleTextProps: _propTypes["default"].object,
|
149
|
+
|
150
|
+
/** These props will be forwarded to the Avatar component. */
|
151
|
+
avatarProps: _propTypes["default"].object
|
152
|
+
};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports["default"] = void 0;
|
7
|
+
|
8
|
+
var _reactJss = _interopRequireDefault(require("react-jss"));
|
9
|
+
|
10
|
+
var _MenuUser = _interopRequireDefault(require("./MenuUser"));
|
11
|
+
|
12
|
+
var _styles = _interopRequireDefault(require("./styles"));
|
13
|
+
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
15
|
+
|
16
|
+
var _default = (0, _reactJss["default"])(_styles["default"])(_MenuUser["default"]);
|
17
|
+
|
18
|
+
exports["default"] = _default;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports["default"] = void 0;
|
7
|
+
var _default = {
|
8
|
+
avatarContainer: {
|
9
|
+
flexShrink: 0,
|
10
|
+
paddingRight: 12
|
11
|
+
},
|
12
|
+
title: {
|
13
|
+
display: 'block'
|
14
|
+
},
|
15
|
+
subtitle: {
|
16
|
+
display: 'block'
|
17
|
+
},
|
18
|
+
textContainer: {
|
19
|
+
flex: '1 1 auto'
|
20
|
+
}
|
21
|
+
};
|
22
|
+
exports["default"] = _default;
|
package/build/Modal/Modal.js
CHANGED
@@ -11,20 +11,12 @@ var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
|
12
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
13
13
|
|
14
|
-
var _Card = _interopRequireDefault(require("../Card"));
|
15
|
-
|
16
|
-
var _Icon = _interopRequireDefault(require("../Icon"));
|
17
|
-
|
18
14
|
var _Text = _interopRequireDefault(require("../Text"));
|
19
15
|
|
20
16
|
var _Flexbox = _interopRequireDefault(require("../Flexbox"));
|
21
17
|
|
22
18
|
var _Button = _interopRequireDefault(require("../Button"));
|
23
19
|
|
24
|
-
var _colors = _interopRequireDefault(require("../subatomic/colors"));
|
25
|
-
|
26
|
-
var _grid = _interopRequireDefault(require("../subatomic/grid"));
|
27
|
-
|
28
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
29
21
|
|
30
22
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
@@ -49,8 +41,6 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
49
41
|
|
50
42
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
51
43
|
|
52
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
53
|
-
|
54
44
|
/**
|
55
45
|
* The Modal component is rendered in any given container, avoiding z-index an position conflicts. Your application must have the logic to show or hide the Modal component.
|
56
46
|
*/
|
@@ -65,17 +55,12 @@ var Modal = /*#__PURE__*/function (_React$Component) {
|
|
65
55
|
_classCallCheck(this, Modal);
|
66
56
|
|
67
57
|
_this = _super.call(this, props);
|
68
|
-
|
69
|
-
_defineProperty(_assertThisInitialized(_this), "resize", function () {
|
70
|
-
_this.setState({
|
71
|
-
mobile: window.innerWidth < _grid["default"].xs
|
72
|
-
});
|
73
|
-
});
|
74
|
-
|
75
58
|
_this.state = {
|
76
|
-
|
59
|
+
headerBorder: false,
|
60
|
+
footerBorder: false
|
77
61
|
};
|
78
62
|
_this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));
|
63
|
+
_this.onScroll = _this.onScroll.bind(_assertThisInitialized(_this));
|
79
64
|
return _this;
|
80
65
|
}
|
81
66
|
|
@@ -83,21 +68,53 @@ var Modal = /*#__PURE__*/function (_React$Component) {
|
|
83
68
|
key: "componentDidMount",
|
84
69
|
value: function componentDidMount() {
|
85
70
|
window.addEventListener('keydown', this.onKeyDown);
|
86
|
-
window.addEventListener('resize', this.resize);
|
87
|
-
this.resize();
|
88
71
|
}
|
89
72
|
}, {
|
90
73
|
key: "componentWillUnmount",
|
91
74
|
value: function componentWillUnmount() {
|
92
75
|
window.removeEventListener('keydown', this.onKeyDown);
|
93
|
-
|
76
|
+
}
|
77
|
+
}, {
|
78
|
+
key: "onScroll",
|
79
|
+
value: function onScroll(e) {
|
80
|
+
var _e$currentTarget = e.currentTarget,
|
81
|
+
scrollTop = _e$currentTarget.scrollTop,
|
82
|
+
scrollHeight = _e$currentTarget.scrollHeight,
|
83
|
+
clientHeight = _e$currentTarget.clientHeight;
|
84
|
+
|
85
|
+
if (scrollHeight > clientHeight) {
|
86
|
+
if (scrollTop > 0) {
|
87
|
+
this.setState({
|
88
|
+
headerBorder: true
|
89
|
+
});
|
90
|
+
} else {
|
91
|
+
this.setState({
|
92
|
+
headerBorder: false
|
93
|
+
});
|
94
|
+
}
|
95
|
+
|
96
|
+
if (scrollTop + clientHeight + 1 < scrollHeight) {
|
97
|
+
this.setState({
|
98
|
+
footerBorder: true
|
99
|
+
});
|
100
|
+
} else {
|
101
|
+
this.setState({
|
102
|
+
footerBorder: false
|
103
|
+
});
|
104
|
+
}
|
105
|
+
} else {
|
106
|
+
this.setState({
|
107
|
+
headerBorder: false,
|
108
|
+
footerBorder: false
|
109
|
+
});
|
110
|
+
}
|
94
111
|
}
|
95
112
|
}, {
|
96
113
|
key: "onKeyDown",
|
97
114
|
value: function onKeyDown(_ref) {
|
98
115
|
var which = _ref.which;
|
99
116
|
var onClose = this.props.onClose;
|
100
|
-
if (onClose && which
|
117
|
+
if (onClose && which === 27) onClose();
|
101
118
|
}
|
102
119
|
}, {
|
103
120
|
key: "avoidClose",
|
@@ -107,7 +124,6 @@ var Modal = /*#__PURE__*/function (_React$Component) {
|
|
107
124
|
}, {
|
108
125
|
key: "render",
|
109
126
|
value: function render() {
|
110
|
-
var mobile = this.state.mobile;
|
111
127
|
var _this$props = this.props,
|
112
128
|
classes = _this$props.classes,
|
113
129
|
children = _this$props.children,
|
@@ -116,28 +132,31 @@ var Modal = /*#__PURE__*/function (_React$Component) {
|
|
116
132
|
mainBtn = _this$props.mainBtn,
|
117
133
|
show = _this$props.show,
|
118
134
|
secBtn = _this$props.secBtn,
|
119
|
-
size = _this$props.size,
|
120
|
-
|
121
|
-
|
135
|
+
_this$props$size = _this$props.size,
|
136
|
+
size = _this$props$size === void 0 ? 'md' : _this$props$size,
|
137
|
+
_this$props$imgTop = _this$props.imgTop,
|
138
|
+
imgTop = _this$props$imgTop === void 0 ? {} : _this$props$imgTop,
|
139
|
+
_this$props$imgLeft = _this$props.imgLeft,
|
140
|
+
imgLeft = _this$props$imgLeft === void 0 ? {} : _this$props$imgLeft,
|
122
141
|
onTransitionEnd = _this$props.onTransitionEnd,
|
123
142
|
fullSize = _this$props.fullSize,
|
124
143
|
testId = _this$props.testId;
|
144
|
+
var _this$state = this.state,
|
145
|
+
headerBorder = _this$state.headerBorder,
|
146
|
+
footerBorder = _this$state.footerBorder;
|
125
147
|
|
126
|
-
var closeButton = /*#__PURE__*/_react["default"].createElement("
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
height: 24,
|
132
|
-
colors: [_colors["default"].grey900],
|
133
|
-
onClick: onClose
|
148
|
+
var closeButton = /*#__PURE__*/_react["default"].createElement(_Button["default"], _extends({
|
149
|
+
theme: "ghostGrey",
|
150
|
+
onClick: onClose,
|
151
|
+
icon: "x",
|
152
|
+
size: "md"
|
134
153
|
}, testId && {
|
135
154
|
testId: "".concat(testId, "__close-icon")
|
136
|
-
}))
|
155
|
+
}));
|
137
156
|
|
138
157
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
139
158
|
"data-testid": testId,
|
140
|
-
className: "".concat(classes.overlay, " ").concat(show ? classes.
|
159
|
+
className: "".concat(classes.overlay, " ").concat(show ? classes.show : classes.hide).concat(!onClose ? " ".concat(classes.noClose) : ''),
|
141
160
|
onClick: onClose,
|
142
161
|
onTransitionEnd: onTransitionEnd
|
143
162
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
@@ -145,43 +164,51 @@ var Modal = /*#__PURE__*/function (_React$Component) {
|
|
145
164
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
146
165
|
className: classes.cardBlock,
|
147
166
|
onClick: this.avoidClose
|
148
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
149
|
-
|
150
|
-
|
151
|
-
|
167
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
168
|
+
className: "".concat(classes.card).concat(size ? " ".concat(classes[size]) : '').concat(fullSize ? " ".concat(classes.fullSize) : '')
|
169
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
170
|
+
className: classes.split
|
171
|
+
}, imgLeft.img && /*#__PURE__*/_react["default"].createElement("div", {
|
172
|
+
style: {
|
173
|
+
backgroundColor: imgLeft.color || 'transparent',
|
174
|
+
backgroundImage: "url(".concat(imgLeft.img, ")"),
|
175
|
+
backgroundSize: imgLeft.size || 'cover',
|
176
|
+
backgroundPosition: imgLeft.position || 'center'
|
177
|
+
},
|
178
|
+
className: classes.imgLeft
|
179
|
+
}), /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
|
152
180
|
display: "flex",
|
153
|
-
direction:
|
154
|
-
|
155
|
-
|
156
|
-
}, imgTop.img && onClose && /*#__PURE__*/_react["default"].createElement("div", {
|
157
|
-
className: classes.closePosition
|
158
|
-
}, closeButton)), /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
|
159
|
-
flex: imgLeft.img ? '1' : null
|
160
|
-
}, fullSize && mobile ? /*#__PURE__*/_react["default"].createElement("div", {
|
161
|
-
className: classes.top
|
162
|
-
}, /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
|
163
|
-
alignItems: "end",
|
164
|
-
className: classes.top
|
165
|
-
}, !imgTop.img && onClose && closeButton), title && /*#__PURE__*/_react["default"].createElement(_Text["default"], {
|
166
|
-
heading: true,
|
167
|
-
className: classes.title
|
168
|
-
}, title)) : /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
|
181
|
+
direction: "col",
|
182
|
+
className: classes.contentWrapper
|
183
|
+
}, title || onClose ? /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
|
169
184
|
display: "flex",
|
170
185
|
justifyContent: "end",
|
171
186
|
alignItems: "start",
|
172
|
-
className: classes.
|
187
|
+
className: "".concat(classes.header).concat(headerBorder ? " ".concat(classes.headerBorder) : '').concat(imgTop.img ? " ".concat(classes.stickyHeader) : '').concat(imgTop.img && headerBorder ? " ".concat(classes.solidHeader) : '')
|
173
188
|
}, title && /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
|
174
189
|
flex: "1"
|
175
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
176
|
-
heading: true,
|
190
|
+
}, /*#__PURE__*/_react["default"].createElement("h4", {
|
177
191
|
className: classes.title
|
178
|
-
}, title)),
|
192
|
+
}, title)), onClose && closeButton) : null, /*#__PURE__*/_react["default"].createElement("div", {
|
193
|
+
onScroll: this.onScroll,
|
179
194
|
className: classes.content
|
180
|
-
},
|
181
|
-
|
195
|
+
}, imgTop.img && /*#__PURE__*/_react["default"].createElement("div", {
|
196
|
+
style: {
|
197
|
+
backgroundColor: imgTop.color || 'transparent',
|
198
|
+
backgroundImage: "url(".concat(imgTop.img, ")"),
|
199
|
+
backgroundSize: imgTop.size || 'cover',
|
200
|
+
backgroundPosition: imgTop.position || 'center'
|
201
|
+
},
|
202
|
+
className: classes.imgTop
|
203
|
+
}), /*#__PURE__*/_react["default"].createElement(_Text["default"], {
|
204
|
+
tag: "div",
|
205
|
+
className: "".concat(classes.contentChild).concat(!title && !onClose ? " ".concat(classes.noHeader) : '').concat(!mainBtn ? " ".concat(classes.noFooter) : '').concat(imgTop && imgTop.img ? " ".concat(classes.imgTopPadding) : '')
|
206
|
+
}, children)), mainBtn && /*#__PURE__*/_react["default"].createElement("div", {
|
207
|
+
className: "".concat(classes.footer).concat(footerBorder ? " ".concat(classes.footerBorder) : '')
|
182
208
|
}, secBtn && /*#__PURE__*/_react["default"].createElement(_Button["default"], _extends({
|
209
|
+
type: secBtn.type,
|
210
|
+
size: "lg",
|
183
211
|
theme: "ghostGrey",
|
184
|
-
className: classes.secBtn,
|
185
212
|
onClick: secBtn.onClick,
|
186
213
|
href: secBtn.href,
|
187
214
|
target: secBtn.target,
|
@@ -189,9 +216,10 @@ var Modal = /*#__PURE__*/function (_React$Component) {
|
|
189
216
|
disabled: secBtn.disabled,
|
190
217
|
id: secBtn.id
|
191
218
|
}, testId && {
|
192
|
-
testId: "".concat(testId, "
|
219
|
+
testId: "".concat(testId, "__button-secondary")
|
193
220
|
}), secBtn.text), /*#__PURE__*/_react["default"].createElement(_Button["default"], _extends({
|
194
|
-
|
221
|
+
type: mainBtn.type,
|
222
|
+
size: "lg",
|
195
223
|
onClick: mainBtn.onClick,
|
196
224
|
href: mainBtn.href,
|
197
225
|
target: mainBtn.target,
|
@@ -199,7 +227,7 @@ var Modal = /*#__PURE__*/function (_React$Component) {
|
|
199
227
|
disabled: mainBtn.disabled,
|
200
228
|
id: mainBtn.id
|
201
229
|
}, testId && {
|
202
|
-
testId: "".concat(testId, "
|
230
|
+
testId: "".concat(testId, "__button-main")
|
203
231
|
}), mainBtn.text))))))));
|
204
232
|
}
|
205
233
|
}]);
|
@@ -71,11 +71,11 @@ describe("Modal", function () {
|
|
71
71
|
onClose: onClose,
|
72
72
|
show: true
|
73
73
|
}));
|
74
|
-
expect(wrapper.find('.
|
74
|
+
expect(wrapper.find('.show').length).toBe(1);
|
75
75
|
wrapper.setProps({
|
76
76
|
show: false
|
77
77
|
});
|
78
|
-
expect(wrapper.find('.
|
78
|
+
expect(wrapper.find('.hide').length).toBe(1);
|
79
79
|
});
|
80
80
|
it('renders the title', function () {
|
81
81
|
var onClose = jest.fn();
|
@@ -106,12 +106,19 @@ describe("Modal", function () {
|
|
106
106
|
secBtn: {
|
107
107
|
text: 'Secondary button',
|
108
108
|
onClick: onClose
|
109
|
-
}
|
109
|
+
},
|
110
|
+
testId: "modal"
|
110
111
|
}));
|
111
|
-
wrapper.find(
|
112
|
-
|
113
|
-
|
114
|
-
|
112
|
+
var mainBtn = wrapper.find({
|
113
|
+
'data-testid': 'modal__button-main'
|
114
|
+
}).at(0);
|
115
|
+
var secBtn = wrapper.find({
|
116
|
+
'data-testid': 'modal__button-secondary'
|
117
|
+
}).at(0);
|
118
|
+
mainBtn.simulate('click');
|
119
|
+
secBtn.simulate('click');
|
120
|
+
expect(mainBtn.text()).toBe('Main button');
|
121
|
+
expect(secBtn.text()).toBe('Secondary button');
|
115
122
|
expect(onClose.mock.calls.length).toBe(2);
|
116
123
|
});
|
117
124
|
});
|