UNPKG

@zohodesk/dot

Version:

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

404 lines (340 loc) 19.5 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["default"] = exports.Header = exports.Footer = exports.Content = void 0; var _react = _interopRequireDefault(require("react")); var _defaultProps = require("./props/defaultProps"); var _propTypes = require("./props/propTypes"); var _FreezeLayer = _interopRequireDefault(require("../FreezeLayer/FreezeLayer")); var _Layout = require("@zohodesk/components/es/Layout"); var _Card = require("@zohodesk/components/es/Card"); var _FormAction = _interopRequireDefault(require("../FormAction/FormAction")); var _VelocityAnimationGroup = _interopRequireDefault(require("@zohodesk/components/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup")); var _CustomResponsive = require("@zohodesk/components/es/Responsive/CustomResponsive"); var _Heading = _interopRequireDefault(require("@zohodesk/components/es/Heading/Heading")); var _IconButton = _interopRequireDefault(require("../IconButton/IconButton")); var _icons = require("@zohodesk/icons"); var _ZindexProvider = require("@zohodesk/components/es/Provider/ZindexProvider"); var _DrawerModule = _interopRequireDefault(require("./Drawer.module.css")); var _FocusScope = _interopRequireDefault(require("@zohodesk/a11y/es/FocusScope/FocusScope")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var Header = /*#__PURE__*/function (_React$Component) { _inherits(Header, _React$Component); var _super = _createSuper(Header); function Header() { _classCallCheck(this, Header); return _super.apply(this, arguments); } _createClass(Header, [{ key: "render", value: function render() { var _this$props = this.props, title = _this$props.title, onClose = _this$props.onClose, children = _this$props.children, className = _this$props.className, paddingSize = _this$props.paddingSize, closeTitle = _this$props.closeTitle, iconName = _this$props.iconName, iconSize = _this$props.iconSize, onIconClick = _this$props.onIconClick, isIconBold = _this$props.isIconBold, dataId = _this$props.dataId, flexible = _this$props.flexible, getChildren = _this$props.getChildren, iconTitle = _this$props.iconTitle, isBoxIcon = _this$props.isBoxIcon, getTitleChildren = _this$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); } }]); return Header; }(_react["default"].Component); exports.Header = Header; Header.propTypes = _propTypes.Header_propTypes; Header.defaultProps = _defaultProps.Header_defaultProps; var Content = /*#__PURE__*/function (_React$Component2) { _inherits(Content, _React$Component2); var _super2 = _createSuper(Content); function Content() { _classCallCheck(this, Content); return _super2.apply(this, arguments); } _createClass(Content, [{ key: "render", value: function render() { var _this$props2 = this.props, children = _this$props2.children, className = _this$props2.className, paddingSize = _this$props2.paddingSize, eleRef = _this$props2.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); } }]); return Content; }(_react["default"].Component); exports.Content = Content; Content.propTypes = _propTypes.Content_propTypes; var Footer = /*#__PURE__*/function (_React$Component3) { _inherits(Footer, _React$Component3); var _super3 = _createSuper(Footer); function Footer() { _classCallCheck(this, Footer); return _super3.apply(this, arguments); } _createClass(Footer, [{ key: "render", value: function render() { var _this$props3 = this.props, paddingLeftSize = _this$props3.paddingLeftSize, paddingRightClass = _this$props3.paddingRightClass, children = _this$props3.children, size = _this$props3.size; return /*#__PURE__*/_react["default"].createElement(_FormAction["default"], { size: size, paddingLeftSize: paddingLeftSize, paddingRightClass: paddingRightClass }, children); } }]); return Footer; }(_react["default"].Component); exports.Footer = Footer; Footer.propTypes = _propTypes.Footer_propTypes; Footer.defaultProps = _defaultProps.Footer_defaultProps; var Drawer = /*#__PURE__*/function (_React$Component4) { _inherits(Drawer, _React$Component4); var _super4 = _createSuper(Drawer); function Drawer(props) { var _this; _classCallCheck(this, Drawer); _this = _super4.call(this, props); _this.drawers = _this.drawers.bind(_assertThisInitialized(_this)); _this.responsiveFunc = _this.responsiveFunc.bind(_assertThisInitialized(_this)); _this.getNextIndex = (0, _ZindexProvider.getZIndex)(_assertThisInitialized(_this)); _this.createRef = /*#__PURE__*/_react["default"].createRef(); return _this; } _createClass(Drawer, [{ key: "drawers", value: function drawers(uptoTablet, styleByResolutions) { var _this$props4 = this.props, children = _this$props4.children, size = _this$props4.size, paddingSize = _this$props4.paddingSize, subDrawerActive = _this$props4.subDrawerActive, subDrawerChildren = _this$props4.subDrawerChildren, onBodyClick = _this$props4.onBodyClick, onClose = _this$props4.onClose, needFocusScope = _this$props4.needFocusScope, customProps = _this$props4.customProps, a11y = _this$props4.a11y, customDrawerClass = _this$props4.customDrawerClass; 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], " ").concat(customDrawerClass), "data-a11y-need-focus-style": "false", tabindex: -1, eleRef: this.createRef }, 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: this.createRef, needAutoFocus: needAutoFocus, needFocusLoop: needFocusLoop, needRestoreFocus: needRestoreFocus, needListNavigation: needListNavigation, onClose: onClose, needEnterAction: needEnterAction }, content) : content); } }, { key: "responsiveFunc", value: function responsiveFunc(_ref2) { var mediaQueryOR = _ref2.mediaQueryOR; return { uptoTablet: mediaQueryOR([{ maxWidth: 768 }]) }; } }, { key: "render", value: function render() { var _this2 = this; var _this$props5 = this.props, needFreeze = _this$props5.needFreeze, palette = _this$props5.palette, isActive = _this$props5.isActive, onClose = _this$props5.onClose, forwardRef = _this$props5.forwardRef, responsiveId = _this$props5.responsiveId, subDrawerSize = _this$props5.subDrawerSize, subDrawerClass = _this$props5.subDrawerClass, subDrawerActive = _this$props5.subDrawerActive, customClass = _this$props5.customClass, needAutoZindex = _this$props5.needAutoZindex, innerPortalName = _this$props5.innerPortalName, onAnimateEnter = _this$props5.onAnimateEnter, postAnimateStyles = _this$props5.postAnimateStyles, onAnimateExit = _this$props5.onAnimateExit; var zindexNumber = isActive ? this.getNextIndex() : ''; return /*#__PURE__*/_react["default"].createElement(_CustomResponsive.ResponsiveReceiver, { query: this.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, onAnimateEnter: onAnimateEnter, postAnimateStyles: postAnimateStyles, onAnimateExit: onAnimateExit }, /*#__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)), _this2.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: needAutoZindex ? { zIndex: "".concat(zindexNumber) } : {} }, _this2.drawers(uptoTablet, styleByResolutions))); }); } }]); return Drawer; }(_react["default"].Component); exports["default"] = Drawer; Drawer.propTypes = _propTypes.Drawer_propTypes; Drawer.defaultProps = _defaultProps.Drawer_defaultProps;