UNPKG

@zohodesk/dot

Version:

In this Library, we Provide Some Basic Components to Build Your Application

302 lines (265 loc) 14.4 kB
"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' // }; // }