@zohodesk/dot
Version:
In this Library, we Provide Some Basic Components to Build Your Application
302 lines (265 loc) • 14.4 kB
JavaScript
"use strict";
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); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Content = Content;
exports.Footer = Footer;
exports.Header = Header;
exports["default"] = Drawer;
var _react = _interopRequireWildcard(require("react"));
var _defaultProps = require("./props/defaultProps");
var _propTypes = require("./props/propTypes");
var _Layout = require("@zohodesk/components/es/v1/Layout");
var _Card = require("@zohodesk/components/es/v1/Card");
var _VelocityAnimationGroup = _interopRequireDefault(require("@zohodesk/components/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup"));
var _CustomResponsive = require("@zohodesk/components/es/Responsive/CustomResponsive");
var _icons = require("@zohodesk/icons");
var _ZindexProvider = require("@zohodesk/components/es/Provider/ZindexProvider");
var _FocusScope = _interopRequireDefault(require("@zohodesk/a11y/es/FocusScope/FocusScope"));
var _Heading = _interopRequireDefault(require("@zohodesk/components/es/v1/Heading/Heading"));
var _FreezeLayer = _interopRequireDefault(require("../FreezeLayer/FreezeLayer"));
var _FormAction = _interopRequireDefault(require("../FormAction/FormAction"));
var _IconButton = _interopRequireDefault(require("../IconButton/IconButton"));
var _DrawerModule = _interopRequireDefault(require("../../Drawer/Drawer.module.css"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
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); }
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; }
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); }
function Header(props) {
var title = props.title,
onClose = props.onClose,
children = props.children,
className = props.className,
paddingSize = props.paddingSize,
closeTitle = props.closeTitle,
iconName = props.iconName,
iconSize = props.iconSize,
onIconClick = props.onIconClick,
isIconBold = props.isIconBold,
dataId = props.dataId,
flexible = props.flexible,
getChildren = props.getChildren,
iconTitle = props.iconTitle,
isBoxIcon = props.isBoxIcon,
getTitleChildren = props.getTitleChildren;
return /*#__PURE__*/_react["default"].createElement(_Card.CardHeader, {
customClass: "".concat(_DrawerModule["default"].header, " ").concat(_DrawerModule["default"]["".concat(paddingSize, "HeaderPadding")], " ").concat(className ? className : ''),
dataId: dataId
}, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
alignBox: "row",
align: "vertical",
isCover: false,
className: _DrawerModule["default"].subheader
}, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
flexible: true,
shrink: true
}, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
alignBox: "row",
isCover: false,
align: "vertical"
}, iconName ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
className: _DrawerModule["default"].iconWrapper
}, isBoxIcon ? /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
iconName: iconName,
iconSize: iconSize,
onClick: onIconClick,
hoverType: "border",
isBold: isIconBold,
title: iconTitle
}) : /*#__PURE__*/_react["default"].createElement(_icons.Icon, {
name: iconName,
size: iconSize,
onClick: onIconClick,
title: iconTitle
})) : null, title || getTitleChildren ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
flexible: flexible,
shrink: true
}, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
alignBox: "row",
align: "vertical"
}, title ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
"data-title": title,
shrink: true
}, /*#__PURE__*/_react["default"].createElement(_Heading["default"], {
title: title,
className: _DrawerModule["default"].title
})) : null, getTitleChildren ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, null, getTitleChildren()) : null)) : null, children ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, null, children) : null)), onClose ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, null, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
onClick: onClose,
dataId: "closeButton",
title: closeTitle,
iconName: "ZD-cross",
iconSize: "11",
a11y: {
ariaLabel: 'Close'
}
})) : null), getChildren ? /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
isCover: false
}, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
flexible: true
}, getChildren())) : null);
}
Header.propTypes = _propTypes.Header_propTypes;
Header.defaultProps = _defaultProps.Header_defaultProps;
function Content(props) {
var children = props.children,
className = props.className,
paddingSize = props.paddingSize,
eleRef = props.eleRef;
return /*#__PURE__*/_react["default"].createElement(_Card.CardContent, {
scroll: "vertical",
isScrollAttribute: true,
customClass: "".concat(className ? className : '', " ").concat(paddingSize ? _DrawerModule["default"]["".concat(paddingSize, "ContentPadding")] : ''),
eleRef: eleRef
}, children);
}
Content.propTypes = _propTypes.Content_propTypes;
function Footer(props) {
var paddingLeftSize = props.paddingLeftSize,
paddingRightClass = props.paddingRightClass,
children = props.children,
size = props.size;
return /*#__PURE__*/_react["default"].createElement(_FormAction["default"], {
size: size,
paddingLeftSize: paddingLeftSize,
paddingRightClass: paddingRightClass
}, children);
}
Footer.propTypes = _propTypes.Footer_propTypes;
Footer.defaultProps = _defaultProps.Footer_defaultProps;
function Drawer(props) {
var contentRef = (0, _react.useRef)(null);
var getNextIndex = (0, _ZindexProvider.useZIndex)();
function drawers(uptoTablet, styleByResolutions) {
var children = props.children,
size = props.size,
paddingSize = props.paddingSize,
subDrawerActive = props.subDrawerActive,
subDrawerChildren = props.subDrawerChildren,
onBodyClick = props.onBodyClick,
onClose = props.onClose,
needFocusScope = props.needFocusScope,
customProps = props.customProps,
a11y = props.a11y;
var _customProps$focusSco = customProps.focusScopeProps,
focusScopeProps = _customProps$focusSco === void 0 ? {} : _customProps$focusSco;
var _focusScopeProps$need = focusScopeProps.needAutoFocus,
needAutoFocus = _focusScopeProps$need === void 0 ? true : _focusScopeProps$need,
_focusScopeProps$need2 = focusScopeProps.needRestoreFocus,
needRestoreFocus = _focusScopeProps$need2 === void 0 ? true : _focusScopeProps$need2,
_focusScopeProps$need3 = focusScopeProps.needListNavigation,
needListNavigation = _focusScopeProps$need3 === void 0 ? false : _focusScopeProps$need3,
_focusScopeProps$need4 = focusScopeProps.needFocusLoop,
needFocusLoop = _focusScopeProps$need4 === void 0 ? true : _focusScopeProps$need4,
_focusScopeProps$need5 = focusScopeProps.needEnterAction,
needEnterAction = _focusScopeProps$need5 === void 0 ? true : _focusScopeProps$need5;
var childrenWithProps = _react["default"].Children.map(children, function (child) {
if (child.type === Header || child.type === Footer || child.type === Content) {
var _ref = child.props || {},
childPaddingSize = _ref.paddingSize;
return paddingSize || childPaddingSize ? /*#__PURE__*/_react["default"].cloneElement(child, {
paddingSize: childPaddingSize ? childPaddingSize : paddingSize
}) : child;
}
return child;
});
var content = /*#__PURE__*/_react["default"].createElement(_Layout.Box, _extends({
className: "".concat(_DrawerModule["default"].container, " ").concat(_DrawerModule["default"].columns, " ").concat(_DrawerModule["default"].drawerModal, " ").concat(uptoTablet ? _DrawerModule["default"].mbleSize : _DrawerModule["default"][size]),
"data-a11y-need-focus-style": "false",
tabindex: -1,
eleRef: contentRef
}, a11y), /*#__PURE__*/_react["default"].createElement(_Card.Card, {
onClick: function onClick(e) {
e && e.stopPropagation && e.stopPropagation();
onBodyClick(e);
}
}, childrenWithProps));
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, subDrawerChildren ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
className: _DrawerModule["default"].columns
}, /*#__PURE__*/_react["default"].createElement(_VelocityAnimationGroup["default"], {
name: "slideRight",
isActive: subDrawerActive
}, /*#__PURE__*/_react["default"].createElement(_CustomResponsive.ResponsiveSender, null, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
className: styleByResolutions,
onClick: function onClick(e) {
e && e.stopPropagation && e.stopPropagation();
}
}, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
flexible: true
}, subDrawerChildren))))) : null, needFocusScope ? /*#__PURE__*/_react["default"].createElement(_FocusScope["default"], {
elementRef: contentRef,
needAutoFocus: needAutoFocus,
needFocusLoop: needFocusLoop,
needRestoreFocus: needRestoreFocus,
needListNavigation: needListNavigation,
onClose: onClose,
needEnterAction: needEnterAction
}, content) : content);
}
function responsiveFunc(_ref2) {
var mediaQueryOR = _ref2.mediaQueryOR;
return {
uptoTablet: mediaQueryOR([{
maxWidth: 768
}])
};
}
var needFreeze = props.needFreeze,
palette = props.palette,
isActive = props.isActive,
onClose = props.onClose,
forwardRef = props.forwardRef,
responsiveId = props.responsiveId,
subDrawerSize = props.subDrawerSize,
subDrawerClass = props.subDrawerClass,
subDrawerActive = props.subDrawerActive,
customClass = props.customClass,
needAutoZindex = props.needAutoZindex,
innerPortalName = props.innerPortalName;
return /*#__PURE__*/_react["default"].createElement(_CustomResponsive.ResponsiveReceiver, {
query: responsiveFunc,
responsiveId: responsiveId
}, function (_ref3) {
var uptoTablet = _ref3.uptoTablet;
var styleByResolutions = "".concat(subDrawerClass, " ").concat(_DrawerModule["default"].secondDrawer, " ").concat(uptoTablet ? "".concat(_DrawerModule["default"].secondMobDrawer, " ").concat(_DrawerModule["default"].mbleSize) : "".concat(_DrawerModule["default"][subDrawerSize]), " ");
return needFreeze ? /*#__PURE__*/_react["default"].createElement(_FreezeLayer["default"], {
onClick: onClose,
isActive: isActive,
animationName: "fade",
childAnimationName: "slideRight",
palette: palette,
forwardRef: forwardRef,
customClass: customClass,
needAutoZindex: needAutoZindex
}, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
flexible: true
}, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
alignBox: "row"
}, /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, uptoTablet ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
flexible: true
}) : null, /*#__PURE__*/_react["default"].createElement(_CustomResponsive.ResponsiveSender, null, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
flexible: true,
className: uptoTablet ? _DrawerModule["default"].mobModal : _DrawerModule["default"].drawerModal
}, !subDrawerActive && innerPortalName ? /*#__PURE__*/_react["default"].createElement("div", {
"data-portal": innerPortalName
}) : null)), drawers(uptoTablet, styleByResolutions))))) : /*#__PURE__*/_react["default"].createElement(_VelocityAnimationGroup["default"], {
isActive: isActive,
name: "slideRight"
}, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
align: "right",
alignBox: "row",
scroll: "none",
eleRef: forwardRef,
className: "".concat(_DrawerModule["default"].isOverlay, " ").concat(customClass),
style: isActive && needAutoZindex ? {
zIndex: "".concat(getNextIndex())
} : {}
}, drawers(uptoTablet, styleByResolutions)));
});
}
Drawer.propTypes = _propTypes.Drawer_propTypes;
Drawer.defaultProps = _defaultProps.Drawer_defaultProps; // if (__DOCS__) {
// Drawer.docs = {
// componentGroup: 'Template'
// };
// }