vue-styleguidist
Version:
Vue components style guide generator
72 lines • 2.58 kB
JavaScript
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
import "core-js/modules/es.function.name.js";
import "core-js/modules/es.array.reduce.js";
import "core-js/modules/es.object.to-string.js";
import "core-js/modules/es.symbol.js";
import "core-js/modules/es.symbol.description.js";
import "core-js/modules/es.array.concat.js";
import React from 'react';
import PropTypes from 'prop-types';
import Styled from 'rsg-components/Styled';
import Markdown from 'rsg-components/Markdown';
import Name from 'rsg-components/Name';
import JsDoc from 'rsg-components/JsDoc';
import Table from 'rsg-components/Table';
import getOriginColumn from 'rsg-components/OriginColumn';
import exposeStyles from '../../utils/propStyles';
var getRowKey = function getRowKey(row) {
return row.name;
};
function renderMethodName(_ref) {
var name = _ref.name,
_ref$tags = _ref.tags,
tags = _ref$tags === void 0 ? [] : _ref$tags;
var tagsObject = tags.reduce(function (acc, tag) {
acc[tag.title] = tag.description;
return acc;
}, {});
return /*#__PURE__*/React.createElement(Name, {
deprecated: !!tagsObject.deprecated
}, name);
}
function renderDescription(myClasses) {
return function renderDesc(_ref2) {
var description = _ref2.description,
_ref2$tags = _ref2.tags,
tags = _ref2$tags === void 0 ? [] : _ref2$tags;
var tagsObject = tags.reduce(function (acc, tag) {
acc[tag.title] = tag.description;
return acc;
}, {});
return /*#__PURE__*/React.createElement(React.Fragment, null, description && /*#__PURE__*/React.createElement("div", {
className: myClasses.descriptionWrapper
}, /*#__PURE__*/React.createElement(Markdown, {
text: description
})), /*#__PURE__*/React.createElement(JsDoc, tagsObject));
};
}
export var columns = function columns(methods, classes) {
return [{
caption: 'Exposed',
render: renderMethodName,
className: classes.name
}, {
caption: 'Description',
render: renderDescription(classes),
className: classes.description
}].concat(_toConsumableArray(getOriginColumn(methods)));
};
export var ExposeRenderer = function ExposeRenderer(_ref3) {
var expose = _ref3.expose,
classes = _ref3.classes;
return /*#__PURE__*/React.createElement(Table, {
columns: columns(expose, classes),
rows: expose,
getRowKey: getRowKey
});
};
ExposeRenderer.propTypes = {
classes: PropTypes.objectOf(PropTypes.string.isRequired).isRequired,
expose: PropTypes.array.isRequired
};
export default Styled(exposeStyles)(ExposeRenderer);