vue-styleguidist
Version:
Vue components style guide generator
104 lines • 4.64 kB
JavaScript
import "core-js/modules/es.object.keys.js";
import "core-js/modules/es.array.filter.js";
import "core-js/modules/es.object.to-string.js";
import "core-js/modules/es.object.get-own-property-descriptor.js";
import "core-js/modules/web.dom-collections.for-each.js";
import "core-js/modules/es.object.get-own-property-descriptors.js";
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _extends from "@babel/runtime/helpers/extends";
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; }
import "core-js/modules/es.function.name.js";
import "core-js/modules/es.symbol.js";
import "core-js/modules/es.symbol.description.js";
import "core-js/modules/es.array.map.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 Argument from 'rsg-components/Argument';
import Arguments from 'rsg-components/Arguments';
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 methodStyles from '../../utils/propStyles';
import renderTypeString from '../../utils/renderTypeString';
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;
return /*#__PURE__*/React.createElement(Name, {
deprecated: !!tags.deprecated
}, "".concat(name, "()"));
}
function renderDescription(myClasses) {
return function renderDesc(_ref2) {
var description = _ref2.description,
returns = _ref2.returns,
_ref2$tags = _ref2.tags,
tags = _ref2$tags === void 0 ? {} : _ref2$tags;
return /*#__PURE__*/React.createElement(React.Fragment, null, description && /*#__PURE__*/React.createElement("div", {
className: myClasses.descriptionWrapper
}, /*#__PURE__*/React.createElement(Markdown, {
text: description
})), returns && /*#__PURE__*/React.createElement("div", null, "Returns:", ' ', /*#__PURE__*/React.createElement(Argument, _extends({
name: ""
}, returns, {
type: returns.type ? {
name: renderTypeString(returns.type)
} : undefined,
description: returns.description
}))), /*#__PURE__*/React.createElement(JsDoc, tags));
};
}
function renderParameters(_ref3) {
var _ref3$params = _ref3.params,
params = _ref3$params === void 0 ? [] : _ref3$params;
return /*#__PURE__*/React.createElement(Arguments, {
args: params.map(function (p) {
return _objectSpread(_objectSpread({
block: true
}, p), {}, {
type: p.type ? {
name: renderTypeString(p.type)
} : undefined,
name: p.name || '',
description: p.description
});
})
});
}
export var columns = function columns(methods, classes) {
return [{
caption: 'Method name',
render: renderMethodName,
className: classes.name
}, {
caption: 'Description',
render: renderDescription(classes),
className: classes.description
}, {
caption: 'Parameters',
render: renderParameters
}].concat(_toConsumableArray(getOriginColumn(methods)));
};
export var MethodsRenderer = function MethodsRenderer(_ref4) {
var methods = _ref4.methods,
classes = _ref4.classes;
return /*#__PURE__*/React.createElement(Table, {
columns: columns(methods, classes),
rows: methods,
getRowKey: getRowKey
});
};
MethodsRenderer.propTypes = {
classes: PropTypes.objectOf(PropTypes.string.isRequired).isRequired,
methods: PropTypes.array.isRequired
};
export default Styled(methodStyles)(MethodsRenderer);