UNPKG

design-system-govbr-rnp

Version:

## Padrão Digital de Governo - React Biblioteca de componentes React que implementa o [Padrão Visual digital do governo](https://www.gov.br/ds/). O objetivo da biblioteca é facilitar a implementação e promover a padronização das interfaces de sistemas do

74 lines (73 loc) 4.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.MenuContextual = void 0; var _react = _interopRequireDefault(require("react")); var _styles = require("./styles"); var _propTypes = _interopRequireDefault(require("prop-types")); var _Submenu = _interopRequireDefault(require("./Submenu")); var _Typography = _interopRequireDefault(require("../../utilities/Typography/Typography")); var _Button = _interopRequireDefault(require("../Button/Button")); var _styles2 = require("../Button/styles"); var _menuList = _interopRequireDefault(require("./menuList")); var _reactFontawesome = require("@fortawesome/react-fontawesome"); var _Collapse = _interopRequireDefault(require("../../utilities/Collapse/Collapse")); var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var MenuContextual = function MenuContextual(props) { var children = props.children, density = props.density, logo = props.logo, menuList = props.menuList; var isPushType = _objectSpread({}, props).type === "push"; var isLabelType = _objectSpread({}, props).type === "label"; var toggleMenu = function toggleMenu(type) { var querySelector = !type ? "[data-menu]" : "[data-menu-".concat(type, "]"); var menu = document.querySelector(querySelector); var overlay = document.querySelector("[data-overlay]"); var icon = document.querySelector("[data-icon]"); var nav = document.querySelector("[data-nav]"); var isMenuVisible = menu.style.display === "block"; menu.style.display = isMenuVisible ? "none" : "block"; overlay.style.display = isMenuVisible ? "none" : "block"; icon.classList.toggle("open"); nav.classList.toggle("open"); }; return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_styles.WrapperContextualMenu, null, /*#__PURE__*/_react.default.createElement(_Button.default, { onClick: function onClick() { return toggleMenu("contextual"); } }, "Menu contextual", /*#__PURE__*/_react.default.createElement(_styles.WrapperIcon, { "data-icon": true }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, { "aria-hidden": "true", icon: _freeSolidSvgIcons.faChevronDown }))), /*#__PURE__*/_react.default.createElement("ul", { "data-menu-contextual": true, style: { display: "none" } }, menuList.map(function (item) { return /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement("a", { href: item.url }, item.label)); }))), /*#__PURE__*/_react.default.createElement(_styles.Overlay, { "data-overlay": true, style: { display: "none" } })); }; exports.MenuContextual = MenuContextual; MenuContextual.propTypes = { density: _propTypes.default.string }; var _default = MenuContextual; exports.default = _default;