import template from "./Button.html"; import style from "antd/lib/button/style/index.css"; class Button { useModules = ["esNgAntd"]; state = { disabled: null, className: "", }; watch = { loading: (newVal)=> { if (newVal !== undefined) { if (newVal === "true") { this.state.className += " ant-btn-loading"; } else { this.state.className = this.state.className.replace( " ant-btn-loading", "" ); } } }, }; constructor() { esNgAntd.createStyle("ant-btn", style); let className = ["ant-btn"]; if (this.props.type) { className.push("ant-btn-" + this.props.type); } if (this.props.size && ["lg", "sm", "xs"].includes(this.props.size)) { className.push("ant-btn-" + this.props.size); } if (this.props.ghost) { className.push("ant-btn-background-ghost"); } this.state.className = className.join(" "); if (this.props.htmlType) { $element[0].setAttribute("type", this.props.htmlType) } } render() { return template; } } Button.propTypes = { type: PropTypes.string, size: PropTypes.string, htmlType: PropTypes.string, ghost: PropTypes.boolean, loading: PropTypes.boolean, };