'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 (