“use strict”;
const HTMLElementImpl = require(“./HTMLElement-impl”).implementation;
const closest = require(“../helpers/traversal”).closest; const isDisabled = require(“../helpers/form-controls”).isDisabled;
class HTMLButtonElementImpl extends HTMLElementImpl {
_activationBehavior() { const form = this.form; if (form) { if (this.type === "submit" && !isDisabled(this)) { form._dispatchSubmitEvent(); } } } _getValue() { const valueAttr = this.getAttribute("value"); return valueAttr === null ? "" : valueAttr; } get form() { return closest(this, "form"); } get type() { const typeAttr = (this.getAttribute("type") || "").toLowerCase(); switch (typeAttr) { case "submit": case "reset": case "button": case "menu": return typeAttr; default: return "submit"; } } set type(v) { v = String(v).toLowerCase(); switch (v) { case "submit": case "reset": case "button": case "menu": this.setAttribute("type", v); break; default: this.setAttribute("type", "submit"); break; } }
}
module.exports = {
implementation: HTMLButtonElementImpl
};