text: ///import core
  ///import uicore
  ///import ui/stateful.js
  ;(function() {
    var utils = baidu.editor.utils,
      UIBase = baidu.editor.ui.UIBase,
      Stateful = baidu.editor.ui.Stateful,
      Button = (baidu.editor.ui.Button = function(options) {
        if (options.name) {
          var btnName = options.name;
          var cssRules = options.cssRules;
          if (!options.className) {
            options.className = "edui-for-" + btnName;
          }
          options.cssRules =
            ".edui-" +
            (options.theme || "default") +
            " .edui-toolbar .edui-button.edui-for-" +
            btnName +
            " .edui-icon {" +
            cssRules +
            "}";
        }
        this.initOptions(options);
        this.initButton();
      });
    Button.prototype = {
      uiName: "button",
      label: "",
      title: "",
      showIcon: true,
      showText: true,
      cssRules: "",
      initButton: function() {
        this.initUIBase();
        this.Stateful_init();
        if (this.cssRules) {
          utils.cssRule("edui-customize-" + this.name + "-style", this.cssRules);
        }
      },
      getHtmlTpl: function() {
        return (
          '<div id="##" class="edui-box %%">' +
          '<div id="##_state" stateful>' +
          '<div class="%%-wrap"><div id="##_body" unselectable="on" ' +
          (this.title ? 'title="' + this.title + '"' : "") +
          ' class="%%-body" onmousedown="return $$._onMouseDown(event, this);" onclick="return $$._onClick(event, this);">' +
          (this.showIcon ? '<div class="edui-box edui-icon"><svg class="edui-iconfont"><use xlink:href="#' + this.className + '"></use></svg></div>' : "") +
          (this.showText
            ? '<div class="edui-box edui-label">' + this.label + "</div>"
            : "") +
          "</div>" +
          "</div>" +
          "</div></div>"
        );
      },
      postRender: function() {
        this.Stateful_postRender();
        this.setDisabled(this.disabled);
      },
      _onMouseDown: function(e) {
        var target = e.target || e.srcElement,
          tagName = target && target.tagName && target.tagName.toLowerCase();
        if (tagName == "input" || tagName == "object" || tagName == "object") {
          return false;
        }
      },
      _onClick: function() {
        if (!this.isDisabled()) {
          this.fireEvent("click");
        }
      },
      setTitle: function(text) {
        var label = this.getDom("label");
        label.innerHTML = text;
      }
    };
    utils.inherits(Button, UIBase);
    utils.extend(Button.prototype, Stateful);
  })();
  