@occmundial/occ-atomic 3.0.0-beta.7 → 3.0.0-beta.71
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/CHANGELOG.md +556 -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/index.js +12 -31
- 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
|
});
|