UNPKG

vue-styleguidist

Version:
115 lines 4.72 kB
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.array.reduce.js"; import "core-js/modules/es.object.to-string.js"; import "core-js/modules/es.function.name.js"; import "core-js/modules/es.array.join.js"; import "core-js/modules/es.array.concat.js"; import React from 'react'; import PropTypes from 'prop-types'; import map from 'lodash/map'; import Styled from 'rsg-components/Styled'; import Arguments from 'rsg-components/Arguments'; import JsDoc from 'rsg-components/JsDoc'; import Markdown from 'rsg-components/Markdown'; import Name from 'rsg-components/Name'; import Table from 'rsg-components/Table'; import getOriginColumn from 'rsg-components/OriginColumn'; import propStyles from '../../utils/propStyles'; function renderDescription(myClasses) { return function renderDesc(prop) { var description = prop.description, _prop$tags = prop.tags, tags = _prop$tags === void 0 ? {} : _prop$tags; return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", { className: myClasses.descriptionWrapper }, description && /*#__PURE__*/React.createElement(Markdown, { text: description })), /*#__PURE__*/React.createElement(JsDoc, tags)); }; } function renderProperties(prop) { var properties = prop.properties; if (Array.isArray(properties)) { properties = properties.reduce(function (total, current) { total.push({ name: current.name, type: { name: total.length || current.type.names[0] !== 'undefined' ? current.type.names.join(' | ') : prop.type.names.join(' | ') }, description: current.description, // make each arguments display on its own line block: true }); return total; }, []); } else if (prop.type) { properties = [{ name: '<anonymous>', type: { name: prop.type.names.join(' | ') } }]; } return properties && properties.length > 0 ? /*#__PURE__*/React.createElement(Arguments, { args: properties }) : null; } function renderName(prop) { var name = prop.name, _prop$tags2 = prop.tags, tags = _prop$tags2 === void 0 ? {} : _prop$tags2; 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 var columns = function columns(events, classes) { return [{ caption: 'Event name', render: renderName, className: classes.name }, { caption: 'Description', render: renderDescription(classes), className: classes.description }].concat(_toConsumableArray(events.some(function (p) { return p.properties || p.type; }) ? [{ caption: 'Properties', render: renderProperties }] : []), _toConsumableArray(getOriginColumn(events))); }; function EventsRenderer(_ref) { var props = _ref.props, classes = _ref.classes; var evts = propsToArray(props); return /*#__PURE__*/React.createElement(Table, { columns: columns(evts, classes), rows: evts, getRowKey: getRowKey }); } EventsRenderer.propTypes = { props: PropTypes.object.isRequired, classes: PropTypes.object.isRequired }; export default Styled(propStyles)(EventsRenderer);