vue-styleguidist
Version:
Vue components style guide generator
95 lines • 3.97 kB
JavaScript
import "core-js/modules/es.object.keys.js";
import "core-js/modules/es.array.filter.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";
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.symbol.js";
import "core-js/modules/es.symbol.description.js";
import "core-js/modules/es.function.name.js";
import "core-js/modules/es.array.map.js";
import "core-js/modules/es.array.concat.js";
import "core-js/modules/es.object.to-string.js";
/* eslint-disable react/prop-types */
import React from 'react';
import PropTypes from 'prop-types';
import map from 'lodash/map';
import Styled from 'rsg-components/Styled';
import Markdown from 'rsg-components/Markdown';
import Name from 'rsg-components/Name';
import Table from 'rsg-components/Table';
import Arguments from 'rsg-components/Arguments';
import getOriginColumn from 'rsg-components/OriginColumn';
import propStyles from '../../utils/propStyles';
function renderDescription(myClasses) {
return function renderDesc(prop) {
var description = prop.description;
return /*#__PURE__*/React.createElement("div", {
className: myClasses.descriptionWrapper
}, description ? /*#__PURE__*/React.createElement(Markdown, {
text: description
}) : '-');
};
}
function renderName(prop) {
var name = prop.name,
_prop$tags = prop.tags,
tags = _prop$tags === void 0 ? {} : _prop$tags;
return /*#__PURE__*/React.createElement(Name, {
deprecated: !!tags.deprecated
}, name);
}
export function getRowKey(row) {
return row.name;
}
export function propsToArray(props) {
return map(props, function (prop, name) {
return _objectSpread(_objectSpread({}, prop), {}, {
name: name
});
});
}
export function renderBindings(_ref) {
var bindings = _ref.bindings;
return bindings && bindings.length ? /*#__PURE__*/React.createElement(Arguments, {
args: bindings.map(function (b) {
return _objectSpread({
block: true
}, b);
})
}) : '-';
}
export var columns = function columns(slots, classes) {
return [{
caption: 'Slot',
render: renderName,
className: classes.name
}, {
caption: 'Description',
render: renderDescription(classes),
className: classes.description
}].concat(_toConsumableArray(slots.some(function (s) {
return s.bindings;
}) ? [{
caption: 'Bindings',
render: renderBindings
}] : []), _toConsumableArray(getOriginColumn(slots)));
};
function SlotsTableRenderer(_ref2) {
var slots = _ref2.props,
classes = _ref2.classes;
var slotsArray = propsToArray(slots);
return /*#__PURE__*/React.createElement(Table, {
columns: columns(slotsArray, classes),
rows: slotsArray,
getRowKey: getRowKey
});
}
SlotsTableRenderer.propTypes = {
props: PropTypes.object.isRequired,
classes: PropTypes.object.isRequired
};
export default Styled(propStyles)(SlotsTableRenderer);