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
JavaScript
;
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;