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
66 lines (65 loc) • 2.83 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.Submenu = void 0;
var _react = _interopRequireDefault(require("react"));
var _styles = require("./styles");
var _reactFontawesome = require("@fortawesome/react-fontawesome");
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
var _uuid = require("uuid");
var _BackButton = _interopRequireDefault(require("./BackButton"));
var _Display = _interopRequireDefault(require("../../utilities/Display/Display"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Submenu = function Submenu(props) {
var subItem = props.subItem,
itemId = props.itemId;
var submenu = function submenu(id, prevItemName) {
var list = document.getElementById(id);
var backButton = document.getElementById("backButton-".concat(id));
var isSubmenuVisible = list.style.display === "block";
list.style.display = isSubmenuVisible ? "none" : "block";
backButton.style.display = isSubmenuVisible ? "none" : "block";
};
return /*#__PURE__*/_react.default.createElement(_styles.List, {
id: itemId
}, subItem.map(function (item) {
var generatedId = (0, _uuid.v4)();
return /*#__PURE__*/_react.default.createElement(_styles.ListItem, {
key: generatedId
}, !item.submenu ? /*#__PURE__*/_react.default.createElement("a", {
href: item.href
}, item.icon && /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
"aria-hidden": "true",
icon: item.icon
}), item.name) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Display.default, {
display: "none",
id: "backButton-".concat(generatedId)
}, /*#__PURE__*/_react.default.createElement(_BackButton.default, {
itemId: generatedId,
item: item,
submenuFn: function submenuFn() {
return submenu(generatedId);
}
})), /*#__PURE__*/_react.default.createElement(_styles.WrapSubmenu, {
className: "wrapSubmenu"
}, /*#__PURE__*/_react.default.createElement("button", {
onClick: function onClick() {
return submenu(generatedId, item.name);
}
}, item.icon && /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
"aria-hidden": "true",
icon: item.icon
}), item.name, /*#__PURE__*/_react.default.createElement(_styles.StyledFontAwesomeIconCustomMargin, {
"aria-hidden": "true",
icon: _freeSolidSvgIcons.faChevronRight,
size: "sm"
})), /*#__PURE__*/_react.default.createElement(Submenu, {
subItem: item.submenu,
itemId: generatedId
}))));
}));
};
exports.Submenu = Submenu;
var _default = Submenu;
exports.default = _default;