'use strict'; const React = require("react"); const createReactClass = require("create-react-class"); const classnames = require("classnames"); const filterValues = require("filter-values"); const renderIf = require("../../render-if"); const AstItemAttributeSeries = require("./attribute-series"); const AstItemAttribute = require("./sub-items/attribute"); function normalizeItemAttributes(attributes) { if (attributes == null) { return {}; } else { return filterValues(attributes, (value) => { return (value != null); }); } } module.exports = function ({dependencies}) { dependencies.set("AstItem", createReactClass({ displayName: "AstItem", getInitialState: function () { return { collapsed: false }; }, toggleCollapsed: function () { this.setState({ collapsed: !this.state.collapsed }); }, render: function () { let attributes = normalizeItemAttributes(this.props.attributes); let children = normalizeItemAttributes(this.props.children); let childSequences = normalizeItemAttributes(this.props.childSequences); let hasContents = (Object.keys(attributes).length > 0 || Object.keys(children).length > 0 || Object.keys(childSequences).length > 0); return (
{renderIf(hasContents, {this.state.collapsed ? "▶" : "▼"} )} {renderIf(this.props.abbreviated === true, "✂ ")} {this.props.type} {renderIf(this.props.preview != null, {this.props.preview})} {renderIf(this.props.scopeId != null, Scope ID: {this.props.scopeId} [type: {this.props.scopeType}] )} {/*(simple: {String(this.props.data.isSimple())})*/} {renderIf(this.state.collapsed === false, )}
); } })); };