@zohodesk/components 1.0.0-temp-259.2 → 1.0.0-temp-260
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/README.md +21 -3
- package/assets/Appearance/dark/mode/Component_v1_DarkMode.module.css +20 -5
- package/assets/Appearance/light/mode/Component_v1_LightMode.module.css +20 -5
- package/assets/Appearance/pureDark/mode/Component_v1_PureDarkMode.module.css +20 -5
- package/es/AdvancedPopup/AdvancedPopup.js +105 -0
- package/es/v1/Button/Button.js +107 -159
- package/es/v1/Button/README.md +2 -3
- package/es/v1/Button/__tests__/Button.spec.js +6 -14
- package/es/v1/Button/__tests__/__snapshots__/Button.spec.js.snap +169 -249
- package/es/v1/Button/constants/index.js +20 -26
- package/es/v1/Button/css/Button_v1.module.css +16 -37
- package/es/v1/Button/css/cssJSLogic.js +28 -56
- package/es/v1/Button/props/defaultProps.js +6 -2
- package/es/v1/Button/props/propTypes.js +8 -26
- package/es/v1/helpers/colorHelpers/background/backgroundColor.module.css +40 -40
- package/es/v1/helpers/colorHelpers/border/borderColor.module.css +25 -25
- package/es/v1/helpers/colorHelpers/colorHelper.js +139 -117
- package/es/v1/helpers/colorHelpers/constants/index.js +4 -45
- package/es/v1/helpers/colorHelpers/text/textColor.module.css +35 -35
- package/lib/AdvancedPopup/AdvancedPopup.js +122 -0
- package/lib/v1/Button/Button.js +119 -178
- package/lib/v1/Button/README.md +2 -3
- package/lib/v1/Button/__tests__/Button.spec.js +52 -66
- package/lib/v1/Button/__tests__/__snapshots__/Button.spec.js.snap +169 -249
- package/lib/v1/Button/constants/index.js +28 -31
- package/lib/v1/Button/css/Button_v1.module.css +16 -37
- package/lib/v1/Button/css/cssJSLogic.js +19 -42
- package/lib/v1/Button/props/defaultProps.js +5 -1
- package/lib/v1/Button/props/propTypes.js +7 -41
- package/lib/v1/helpers/colorHelpers/background/backgroundColor.module.css +40 -40
- package/lib/v1/helpers/colorHelpers/border/borderColor.module.css +25 -25
- package/lib/v1/helpers/colorHelpers/colorHelper.js +153 -127
- package/lib/v1/helpers/colorHelpers/constants/index.js +4 -45
- package/lib/v1/helpers/colorHelpers/text/textColor.module.css +35 -35
- package/package.json +4 -4
- package/es/v1/Button/constants/presets.js +0 -147
- package/lib/v1/Button/constants/presets.js +0 -165
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _useAdvancedPopup2 = require("@zohodesk/dotkit/es/react/components/Popup/hooks/useAdvancedPopup.js");
|
|
13
|
+
|
|
14
|
+
var _Config = require("../Provider/Config.js");
|
|
15
|
+
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
|
|
18
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
+
|
|
20
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
|
|
21
|
+
|
|
22
|
+
var AdvancedPopup = function AdvancedPopup(PopupComponent) {
|
|
23
|
+
var wrapper = function wrapper(props) {
|
|
24
|
+
var positionMetaRef = (0, _react.useRef)(null);
|
|
25
|
+
var triggerMetaRef = (0, _react.useRef)(null);
|
|
26
|
+
var initialPlacementRef = (0, _react.useRef)(props.defaultPosition);
|
|
27
|
+
|
|
28
|
+
var getRootElement = function getRootElement() {
|
|
29
|
+
return (0, _Config.getLibraryConfig)('getRootElement');
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
var getMobileWidth = function getMobileWidth() {
|
|
33
|
+
return (0, _Config.getLibraryConfig)('mobileWidth');
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var isArrow = props.isArrow,
|
|
37
|
+
defaultPosition = props.defaultPosition,
|
|
38
|
+
customOrder = props.customOrder,
|
|
39
|
+
isAbsolutePositioningNeeded = props.isAbsolutePositioningNeeded,
|
|
40
|
+
isOutsideScrollBlocked = props.isOutsideScrollBlocked,
|
|
41
|
+
sizeModifiers = props.sizeModifiers,
|
|
42
|
+
checkBeforeClose = props.checkBeforeClose,
|
|
43
|
+
scrollDebounceTime = props.scrollDebounceTime,
|
|
44
|
+
needResizeHandling = props.needResizeHandling,
|
|
45
|
+
popupGroup = props.popupGroup;
|
|
46
|
+
|
|
47
|
+
var _useAdvancedPopup = (0, _useAdvancedPopup2.useAdvancedPopup)({
|
|
48
|
+
strategy: isAbsolutePositioningNeeded === false ? 'fixed' : 'absolute',
|
|
49
|
+
groupName: popupGroup,
|
|
50
|
+
checkBeforeClose: checkBeforeClose,
|
|
51
|
+
getRootElement: getRootElement,
|
|
52
|
+
scrollDebounceTime: scrollDebounceTime,
|
|
53
|
+
enableResizeHandling: needResizeHandling,
|
|
54
|
+
sizeModifiers: sizeModifiers,
|
|
55
|
+
onPositionChange: function onPositionChange(meta) {
|
|
56
|
+
positionMetaRef.current = meta;
|
|
57
|
+
},
|
|
58
|
+
onVisibilityChange: function onVisibilityChange(isVisible) {
|
|
59
|
+
triggerMetaRef.current = isVisible;
|
|
60
|
+
},
|
|
61
|
+
middleware: {
|
|
62
|
+
autoPlacement: {
|
|
63
|
+
initialPlacement: initialPlacementRef.current,
|
|
64
|
+
placementOrder: customOrder
|
|
65
|
+
},
|
|
66
|
+
arrow: {
|
|
67
|
+
isRequired: !!isArrow
|
|
68
|
+
},
|
|
69
|
+
scrollable: !isOutsideScrollBlocked,
|
|
70
|
+
applyStyles: true,
|
|
71
|
+
mobile: {
|
|
72
|
+
isEnabled: true,
|
|
73
|
+
breakpoint: getMobileWidth()
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}),
|
|
77
|
+
setTriggerElement = _useAdvancedPopup.setTriggerElement,
|
|
78
|
+
setContainerElement = _useAdvancedPopup.setContainerElement,
|
|
79
|
+
_togglePopup = _useAdvancedPopup.togglePopup,
|
|
80
|
+
_openPopupOnly = _useAdvancedPopup.openPopupOnly,
|
|
81
|
+
closePopupOnly = _useAdvancedPopup.closePopupOnly,
|
|
82
|
+
closePopupFromRange = _useAdvancedPopup.closePopupFromRange,
|
|
83
|
+
isPopupOpen = _useAdvancedPopup.isPopupOpen,
|
|
84
|
+
isPopupReady = _useAdvancedPopup.isPopupReady,
|
|
85
|
+
removeClose = _useAdvancedPopup.removeClose,
|
|
86
|
+
recomputePosition = _useAdvancedPopup.recomputePosition,
|
|
87
|
+
isMobile = _useAdvancedPopup.isMobile,
|
|
88
|
+
position = _useAdvancedPopup.position;
|
|
89
|
+
|
|
90
|
+
return /*#__PURE__*/_react["default"].createElement(PopupComponent, _extends({}, props, {
|
|
91
|
+
getTargetRef: setTriggerElement,
|
|
92
|
+
getContainerRef: setContainerElement,
|
|
93
|
+
togglePopup: function togglePopup(e, initialPlacement) {
|
|
94
|
+
initialPlacementRef.current = initialPlacement;
|
|
95
|
+
|
|
96
|
+
_togglePopup(e);
|
|
97
|
+
},
|
|
98
|
+
openPopupOnly: function openPopupOnly(e, initialPlacement) {
|
|
99
|
+
initialPlacementRef.current = initialPlacement;
|
|
100
|
+
|
|
101
|
+
_openPopupOnly(e);
|
|
102
|
+
},
|
|
103
|
+
closePopupOnly: closePopupOnly,
|
|
104
|
+
closePopupFromRange: closePopupFromRange,
|
|
105
|
+
removeClose: removeClose,
|
|
106
|
+
recomputePosition: recomputePosition,
|
|
107
|
+
isMobile: isMobile,
|
|
108
|
+
position: position === null || position === void 0 ? void 0 : position.view,
|
|
109
|
+
positions: position === null || position === void 0 ? void 0 : position.views,
|
|
110
|
+
positionsOffset: position === null || position === void 0 ? void 0 : position.viewsOffset,
|
|
111
|
+
targetOffset: position === null || position === void 0 ? void 0 : position.targetOffset,
|
|
112
|
+
popupOffset: position === null || position === void 0 ? void 0 : position.popupOffset,
|
|
113
|
+
isPopupOpen: isPopupOpen,
|
|
114
|
+
isPopupReady: isPopupReady
|
|
115
|
+
}));
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
return wrapper;
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
var _default = AdvancedPopup;
|
|
122
|
+
exports["default"] = _default;
|
package/lib/v1/Button/Button.js
CHANGED
|
@@ -5,7 +5,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] =
|
|
8
|
+
exports["default"] = void 0;
|
|
9
9
|
|
|
10
10
|
var _cssUtility = require("@dot-system/css-utility");
|
|
11
11
|
|
|
@@ -17,24 +17,24 @@ var _Icon = _interopRequireDefault(require("@zohodesk/icons/es/Icon"));
|
|
|
17
17
|
|
|
18
18
|
var _Flex = _interopRequireDefault(require("@zohodesk/layout/es/Flex/Flex"));
|
|
19
19
|
|
|
20
|
+
var _Typography = _interopRequireDefault(require("../../Typography/Typography"));
|
|
21
|
+
|
|
20
22
|
var _renderNode = _interopRequireWildcard(require("@zohodesk/utils/es/renderNode"));
|
|
21
23
|
|
|
24
|
+
var _propTypes = _interopRequireDefault(require("./props/propTypes"));
|
|
25
|
+
|
|
26
|
+
var _defaultProps = _interopRequireDefault(require("./props/defaultProps"));
|
|
27
|
+
|
|
22
28
|
var _constants = require("@zohodesk/dotkit/es/utils/constants");
|
|
23
29
|
|
|
24
30
|
var _constants2 = require("./constants");
|
|
25
31
|
|
|
26
|
-
var _Typography = _interopRequireDefault(require("../../Typography/Typography"));
|
|
27
|
-
|
|
28
32
|
var _Spinner = _interopRequireDefault(require("../shared/Spinner/Spinner"));
|
|
29
33
|
|
|
30
34
|
var _SuccessTick = _interopRequireDefault(require("../shared/SuccessTick/SuccessTick"));
|
|
31
35
|
|
|
32
36
|
var _cssJSLogic = _interopRequireDefault(require("./css/cssJSLogic"));
|
|
33
37
|
|
|
34
|
-
var _propTypes = _interopRequireDefault(require("./props/propTypes"));
|
|
35
|
-
|
|
36
|
-
var _defaultProps = _interopRequireDefault(require("./props/defaultProps"));
|
|
37
|
-
|
|
38
38
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
39
39
|
|
|
40
40
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -53,18 +53,17 @@ var getTypographySize = function getTypographySize(size) {
|
|
|
53
53
|
return _constants2.TYPOGRAPHY_SIZE_MAP[size] || '13';
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
-
var
|
|
57
|
-
var
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
isDisabledState = props.isDisabledState,
|
|
61
|
-
overlayActive = props.overlayActive,
|
|
56
|
+
var Button = /*#__PURE__*/(0, _react.forwardRef)(function Button(props, ref) {
|
|
57
|
+
var palette = props.palette,
|
|
58
|
+
bgAppearance = props.bgAppearance,
|
|
59
|
+
borderAppearance = props.borderAppearance,
|
|
62
60
|
variant = props.variant,
|
|
63
|
-
|
|
61
|
+
status = props.status,
|
|
64
62
|
loaderPlacement = props.loaderPlacement,
|
|
65
63
|
size = props.size,
|
|
66
64
|
iconName = props.iconName,
|
|
67
65
|
iconSize = props.iconSize,
|
|
66
|
+
iconPlacement = props.iconPlacement,
|
|
68
67
|
renderIcon = props.renderIcon,
|
|
69
68
|
renderBefore = props.renderBefore,
|
|
70
69
|
renderAfter = props.renderAfter,
|
|
@@ -72,94 +71,105 @@ var ButtonPresentational = /*#__PURE__*/(0, _react.forwardRef)(function ButtonPr
|
|
|
72
71
|
renderSuccess = props.renderSuccess,
|
|
73
72
|
children = props.children,
|
|
74
73
|
type = props.type,
|
|
74
|
+
onClick = props.onClick,
|
|
75
|
+
isDisabled = props.isDisabled,
|
|
76
|
+
isReadOnly = props.isReadOnly,
|
|
75
77
|
isSelected = props.isSelected,
|
|
78
|
+
shape = props.shape,
|
|
79
|
+
paletteShade = props.paletteShade,
|
|
80
|
+
disabledAppearance = props.disabledAppearance,
|
|
76
81
|
title = props.title,
|
|
77
82
|
customProps = props.customProps,
|
|
78
83
|
customAttributes = props.customAttributes,
|
|
79
84
|
a11yAttributes = props.a11yAttributes,
|
|
80
85
|
customId = props.customId,
|
|
81
|
-
testId = props.testId
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
var
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
_ref2$success = _ref2.success,
|
|
108
|
-
successAttributes = _ref2$success === void 0 ? _constants.DUMMY_OBJECT : _ref2$success,
|
|
109
|
-
_ref2$icon = _ref2.icon,
|
|
110
|
-
iconAttributes = _ref2$icon === void 0 ? _constants.DUMMY_OBJECT : _ref2$icon,
|
|
111
|
-
_ref2$text = _ref2.text,
|
|
112
|
-
textAttributes = _ref2$text === void 0 ? _constants.DUMMY_OBJECT : _ref2$text;
|
|
113
|
-
|
|
114
|
-
var iconTagAttributes = _objectSpread(_objectSpread({}, iconAttributes), {}, {
|
|
115
|
-
'data-test-id': testId ? "".concat(testId, "_icon") : undefined
|
|
116
|
-
});
|
|
117
|
-
|
|
86
|
+
testId = props.testId;
|
|
87
|
+
var isLoading = status === _constants2.STATUS.LOADING;
|
|
88
|
+
var isSuccess = status === _constants2.STATUS.SUCCESS;
|
|
89
|
+
var isDisabledState = isDisabled || isLoading;
|
|
90
|
+
var isInteractionDisabled = isDisabledState || isReadOnly;
|
|
91
|
+
var overlayActive = (isLoading || isSuccess) && loaderPlacement === _constants2.LOADER_PLACEMENT.OVERLAY;
|
|
92
|
+
var _customProps$text = customProps.text,
|
|
93
|
+
contentProps = _customProps$text === void 0 ? _constants.DUMMY_OBJECT : _customProps$text,
|
|
94
|
+
_customProps$icon = customProps.icon,
|
|
95
|
+
iconProps = _customProps$icon === void 0 ? _constants.DUMMY_OBJECT : _customProps$icon;
|
|
96
|
+
var iconTagAttributes = (0, _react.useMemo)(function () {
|
|
97
|
+
return _objectSpread(_objectSpread({}, iconProps.tagAttributes || _constants.DUMMY_OBJECT), {}, {
|
|
98
|
+
'data-test-id': testId ? "".concat(testId, "_icon") : undefined
|
|
99
|
+
});
|
|
100
|
+
}, [iconProps.tagAttributes, testId]);
|
|
101
|
+
var classes = (0, _react.useMemo)(function () {
|
|
102
|
+
return (0, _cssJSLogic["default"])({
|
|
103
|
+
props: props
|
|
104
|
+
});
|
|
105
|
+
}, [palette, bgAppearance, borderAppearance, paletteShade, size, variant, status, isDisabled, isReadOnly, isSelected, shape, loaderPlacement, disabledAppearance, props.customClass]);
|
|
106
|
+
var loaderOverlayClass = classes.loaderOverlayClass,
|
|
107
|
+
successOverlayClass = classes.successOverlayClass,
|
|
108
|
+
contentWrapperClass = classes.contentWrapperClass,
|
|
109
|
+
textClassName = classes.textClassName,
|
|
110
|
+
buttonClassName = classes.buttonClassName,
|
|
111
|
+
iconClassName = classes.iconClassName;
|
|
118
112
|
var showIcon = variant !== _constants2.VARIANT.TEXT && (renderIcon || iconName);
|
|
119
113
|
|
|
114
|
+
var _handleClick = function _handleClick(event) {
|
|
115
|
+
if (isInteractionDisabled) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
onClick(event);
|
|
120
|
+
};
|
|
121
|
+
|
|
120
122
|
var _renderLoader = function _renderLoader() {
|
|
121
|
-
if (!isLoading)
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
123
|
+
if (!isLoading) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if ((0, _renderNode.isRenderable)(renderLoader)) {
|
|
128
|
+
return (0, _renderNode["default"])(renderLoader, {
|
|
129
|
+
status: status
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
var loaderClassName = loaderPlacement === _constants2.LOADER_PLACEMENT.OVERLAY ? loaderOverlayClass : '';
|
|
134
|
+
return /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
128
135
|
$ui_displayMode: "flex",
|
|
129
136
|
$ui_alignItems: "center",
|
|
130
137
|
$ui_justifyContent: "center",
|
|
131
|
-
$ui_className:
|
|
138
|
+
$ui_className: loaderClassName,
|
|
132
139
|
testId: testId ? "".concat(testId, "_loader") : undefined
|
|
133
|
-
},
|
|
134
|
-
status: _constants2.STATUS.LOADING
|
|
135
|
-
}) : /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
136
|
-
customClass: loaderClassName
|
|
137
|
-
}));
|
|
140
|
+
}, /*#__PURE__*/_react["default"].createElement(_Spinner["default"], null));
|
|
138
141
|
};
|
|
139
142
|
|
|
140
143
|
var _renderSuccess = function _renderSuccess() {
|
|
141
|
-
if (!isSuccess)
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
144
|
+
if (!isSuccess) {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if ((0, _renderNode.isRenderable)(renderSuccess)) {
|
|
149
|
+
return (0, _renderNode["default"])(renderSuccess, {
|
|
150
|
+
status: status
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
var successClassName = loaderPlacement === _constants2.LOADER_PLACEMENT.OVERLAY ? successOverlayClass : '';
|
|
155
|
+
return /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
148
156
|
$ui_displayMode: "flex",
|
|
149
157
|
$ui_alignItems: "center",
|
|
150
158
|
$ui_justifyContent: "center",
|
|
151
|
-
$ui_className:
|
|
159
|
+
$ui_className: successClassName,
|
|
152
160
|
testId: testId ? "".concat(testId, "_success") : undefined
|
|
153
|
-
},
|
|
154
|
-
status: _constants2.STATUS.SUCCESS
|
|
155
|
-
}) : /*#__PURE__*/_react["default"].createElement(_SuccessTick["default"], {
|
|
156
|
-
customClass: successClassName
|
|
157
|
-
}));
|
|
161
|
+
}, /*#__PURE__*/_react["default"].createElement(_SuccessTick["default"], null));
|
|
158
162
|
};
|
|
159
163
|
|
|
160
164
|
var _renderIconNode = function _renderIconNode() {
|
|
161
|
-
if (!showIcon)
|
|
162
|
-
|
|
165
|
+
if (!showIcon) {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if ((0, _renderNode.isRenderable)(renderIcon)) {
|
|
170
|
+
return (0, _renderNode["default"])(renderIcon);
|
|
171
|
+
}
|
|
172
|
+
|
|
163
173
|
return /*#__PURE__*/_react["default"].createElement(_Icon["default"], _extends({}, iconProps, {
|
|
164
174
|
iconClass: iconClassName,
|
|
165
175
|
name: iconName,
|
|
@@ -169,128 +179,59 @@ var ButtonPresentational = /*#__PURE__*/(0, _react.forwardRef)(function ButtonPr
|
|
|
169
179
|
}));
|
|
170
180
|
};
|
|
171
181
|
|
|
182
|
+
var _renderBeforeNode = function _renderBeforeNode() {
|
|
183
|
+
if (!(0, _renderNode.isRenderable)(renderBefore)) {
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return (0, _renderNode["default"])(renderBefore, props);
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
var _renderAfterNode = function _renderAfterNode() {
|
|
191
|
+
if (!(0, _renderNode.isRenderable)(renderAfter)) {
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return (0, _renderNode["default"])(renderAfter, props);
|
|
196
|
+
};
|
|
197
|
+
|
|
172
198
|
var _renderContent = function _renderContent() {
|
|
173
|
-
var shouldShowText = variant !== _constants2.VARIANT.ICON && children
|
|
199
|
+
var shouldShowText = variant !== _constants2.VARIANT.ICON && children !== undefined && children !== null;
|
|
174
200
|
var showLoaderStart = isLoading && loaderPlacement === _constants2.LOADER_PLACEMENT.START;
|
|
175
201
|
var showLoaderAfter = isLoading && loaderPlacement === _constants2.LOADER_PLACEMENT.END;
|
|
176
202
|
var showSuccessStart = isSuccess && loaderPlacement === _constants2.LOADER_PLACEMENT.START;
|
|
177
203
|
var showSuccessAfter = isSuccess && loaderPlacement === _constants2.LOADER_PLACEMENT.END;
|
|
178
|
-
return /*#__PURE__*/_react["default"].createElement(_Flex["default"],
|
|
204
|
+
return /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
179
205
|
$ui_displayMode: "flex",
|
|
180
206
|
$ui_direction: "row",
|
|
181
207
|
$flag_shrink: true,
|
|
182
208
|
$ui_alignItems: "center",
|
|
183
209
|
$ui_justifyContent: "center",
|
|
184
210
|
$ui_className: contentWrapperClass
|
|
185
|
-
},
|
|
186
|
-
$ui_size: getTypographySize(size)
|
|
187
|
-
}, contentProps, {
|
|
188
|
-
tagAttributes: textAttributes,
|
|
211
|
+
}, showLoaderStart ? _renderLoader() : null, showSuccessStart ? _renderSuccess() : null, _renderBeforeNode(), iconPlacement === _constants2.ICON_PLACEMENT.LEFT ? _renderIconNode() : null, shouldShowText ? /*#__PURE__*/_react["default"].createElement(_Typography["default"], _extends({}, contentProps, {
|
|
189
212
|
$ui_className: textClassName,
|
|
213
|
+
$ui_size: getTypographySize(size),
|
|
190
214
|
$flag_dotted: variant !== _constants2.VARIANT.ICON
|
|
191
|
-
}), children) :
|
|
215
|
+
}), children) : null, iconPlacement === _constants2.ICON_PLACEMENT.RIGHT ? _renderIconNode() : null, _renderAfterNode(), showLoaderAfter ? _renderLoader() : null, showSuccessAfter ? _renderSuccess() : null);
|
|
192
216
|
};
|
|
193
217
|
|
|
194
|
-
var containerAttributes = _objectSpread(_objectSpread({},
|
|
195
|
-
'data-id':
|
|
196
|
-
'data-test-id':
|
|
197
|
-
'data-selector-id': dataSelectorId,
|
|
218
|
+
var containerAttributes = _objectSpread(_objectSpread({}, customAttributes), {}, {
|
|
219
|
+
'data-id': customId,
|
|
220
|
+
'data-test-id': testId,
|
|
198
221
|
'data-title': title
|
|
199
222
|
});
|
|
200
223
|
|
|
201
|
-
return /*#__PURE__*/_react["default"].createElement("button", _extends({}, containerAttributes, {
|
|
202
|
-
"aria-busy": isLoading,
|
|
203
|
-
disabled: isDisabledState,
|
|
204
|
-
"aria-pressed": isSelected
|
|
205
|
-
}, a11yAttributes, {
|
|
224
|
+
return /*#__PURE__*/_react["default"].createElement("button", _extends({}, containerAttributes, a11yAttributes, {
|
|
206
225
|
ref: ref,
|
|
207
226
|
type: type,
|
|
208
227
|
className: (0, _cssUtility.cn)(buttonClassName),
|
|
209
|
-
|
|
228
|
+
"aria-busy": isLoading,
|
|
229
|
+
"aria-disabled": isDisabledState,
|
|
230
|
+
"aria-readonly": isReadOnly,
|
|
231
|
+
"aria-pressed": isSelected,
|
|
232
|
+
onClick: _handleClick
|
|
210
233
|
}), _renderContent(), overlayActive ? isLoading ? _renderLoader() : _renderSuccess() : null);
|
|
211
234
|
});
|
|
212
|
-
exports.ButtonPresentational = ButtonPresentational;
|
|
213
|
-
ButtonPresentational.displayName = 'ButtonPresentational';
|
|
214
|
-
var Button = /*#__PURE__*/(0, _react.forwardRef)(function Button(props, ref) {
|
|
215
|
-
var palette = props.palette,
|
|
216
|
-
appearance = props.appearance,
|
|
217
|
-
hoverAppearance = props.hoverAppearance,
|
|
218
|
-
selectedAppearance = props.selectedAppearance,
|
|
219
|
-
variant = props.variant,
|
|
220
|
-
status = props.status,
|
|
221
|
-
loaderPlacement = props.loaderPlacement,
|
|
222
|
-
size = props.size,
|
|
223
|
-
iconName = props.iconName,
|
|
224
|
-
iconSize = props.iconSize,
|
|
225
|
-
iconPlacement = props.iconPlacement,
|
|
226
|
-
renderIcon = props.renderIcon,
|
|
227
|
-
renderBefore = props.renderBefore,
|
|
228
|
-
renderAfter = props.renderAfter,
|
|
229
|
-
renderLoader = props.renderLoader,
|
|
230
|
-
renderSuccess = props.renderSuccess,
|
|
231
|
-
children = props.children,
|
|
232
|
-
type = props.type,
|
|
233
|
-
onClick = props.onClick,
|
|
234
|
-
isDisabled = props.isDisabled,
|
|
235
|
-
isSelected = props.isSelected,
|
|
236
|
-
shape = props.shape,
|
|
237
|
-
disabledAppearance = props.disabledAppearance,
|
|
238
|
-
title = props.title,
|
|
239
|
-
customProps = props.customProps,
|
|
240
|
-
customAttributes = props.customAttributes,
|
|
241
|
-
a11yAttributes = props.a11yAttributes,
|
|
242
|
-
customId = props.customId,
|
|
243
|
-
testId = props.testId,
|
|
244
|
-
dataSelectorId = props.dataSelectorId;
|
|
245
|
-
var isLoading = status === _constants2.STATUS.LOADING;
|
|
246
|
-
var isSuccess = status === _constants2.STATUS.SUCCESS;
|
|
247
|
-
var isDisabledState = isDisabled || isLoading;
|
|
248
|
-
var overlayActive = (isLoading || isSuccess) && loaderPlacement === _constants2.LOADER_PLACEMENT.OVERLAY;
|
|
249
|
-
var classNames = (0, _react.useMemo)(function () {
|
|
250
|
-
return (0, _cssJSLogic["default"])({
|
|
251
|
-
props: props
|
|
252
|
-
});
|
|
253
|
-
}, [palette, appearance, hoverAppearance, selectedAppearance, size, variant, status, isDisabled, isSelected, shape, loaderPlacement, disabledAppearance, props.customClass]);
|
|
254
|
-
|
|
255
|
-
var handleClick = function handleClick(event) {
|
|
256
|
-
if (isDisabledState) return;
|
|
257
|
-
onClick(event);
|
|
258
|
-
};
|
|
259
|
-
|
|
260
|
-
var essentials = {
|
|
261
|
-
isLoading: isLoading,
|
|
262
|
-
isSuccess: isSuccess,
|
|
263
|
-
isDisabled: isDisabled,
|
|
264
|
-
isDisabledState: isDisabledState,
|
|
265
|
-
overlayActive: overlayActive,
|
|
266
|
-
variant: variant,
|
|
267
|
-
iconPlacement: iconPlacement,
|
|
268
|
-
loaderPlacement: loaderPlacement,
|
|
269
|
-
size: size,
|
|
270
|
-
iconName: iconName,
|
|
271
|
-
iconSize: iconSize,
|
|
272
|
-
renderIcon: renderIcon,
|
|
273
|
-
renderBefore: renderBefore,
|
|
274
|
-
renderAfter: renderAfter,
|
|
275
|
-
renderLoader: renderLoader,
|
|
276
|
-
renderSuccess: renderSuccess,
|
|
277
|
-
children: children,
|
|
278
|
-
type: type,
|
|
279
|
-
isSelected: isSelected,
|
|
280
|
-
title: title,
|
|
281
|
-
customProps: customProps,
|
|
282
|
-
customAttributes: customAttributes,
|
|
283
|
-
a11yAttributes: a11yAttributes,
|
|
284
|
-
customId: customId,
|
|
285
|
-
testId: testId,
|
|
286
|
-
dataSelectorId: dataSelectorId,
|
|
287
|
-
handleClick: handleClick
|
|
288
|
-
};
|
|
289
|
-
return /*#__PURE__*/_react["default"].createElement(ButtonPresentational, _extends({}, essentials, {
|
|
290
|
-
classNames: classNames,
|
|
291
|
-
ref: ref
|
|
292
|
-
}));
|
|
293
|
-
});
|
|
294
235
|
Button.propTypes = _propTypes["default"];
|
|
295
236
|
Button.defaultProps = _defaultProps["default"];
|
|
296
237
|
Button.displayName = 'Button';
|
package/lib/v1/Button/README.md
CHANGED
|
@@ -62,9 +62,8 @@ import Button from '@zohodesk/components/es/v1/Button/Button';
|
|
|
62
62
|
| `customId` | `string` | — | `data-id` attribute for automation |
|
|
63
63
|
| `testId` | `string` | — | `data-test-id` attribute for testing |
|
|
64
64
|
| `palette` | `oneOf: default, primary, secondary, danger, success` | `default` | Color palette |
|
|
65
|
-
| `
|
|
66
|
-
| `
|
|
67
|
-
| `selectedAppearance` | `array of: border, text, bg` | `['bg', 'border']` | Which treatments are colored when `isSelected` |
|
|
65
|
+
| `bgAppearance` | `oneOf: filled, onHover, none` | `filled` | Background behavior |
|
|
66
|
+
| `borderAppearance` | `oneOf: default, onHover, none` | `default` | Border behavior |
|
|
68
67
|
| `variant` | `oneOf: text, icon, iconWithText` | `text` | Display variant |
|
|
69
68
|
| `size` | `oneOf: small, medium, large, full` | `medium` | Size variant |
|
|
70
69
|
| `status` | `oneOf: default, loading, success` | `default` | Status state |
|