|
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- const HTMLElement_1 = __importDefault(require("../html-element/HTMLElement"));
- const BUTTON_TYPES = ['submit', 'reset', 'button', 'menu'];
- /**
-
- We can improve performance a bit if we make the types as a constant.
- * HTML Button Element.
- *
- * Reference:
- * https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.
- */
- class HTMLButtonElement extends HTMLElement_1.default {
- /**
- * Returns value.
- *
- * @returns Value.
- */
- get value() {
- return this.getAttributeNS(null, 'value');
- }
- /**
- * Sets value.
- *
- * @param value Value.
- */
- set value(value) {
- this.setAttributeNS(null, 'value', value);
- }
- /**
- * Returns disabled.
- *
- * @returns Disabled.
- */
- get disabled() {
- return this.getAttributeNS(null, 'disabled') !== null;
- }
- /**
- * Sets disabled.
- *
- * @param disabled Disabled.
- */
- set disabled(disabled) {
- if (!disabled) {
- this.removeAttributeNS(null, 'disabled');
- }
- else {
- this.setAttributeNS(null, 'disabled', '');
- }
- }
- /**
- * Returns type
- *
- * @returns Type
- */
- get type() {
- return this._sanitizeType(this.getAttributeNS(null, 'type'));
- }
- /**
- * Sets type
- *
- * @param v Type
- */
- set type(v) {
- this.setAttributeNS(null, 'type', this._sanitizeType(v));
- }
- /**
- *
- * @param type
- */
- _sanitizeType(type) {
- type = (type && type.toLowerCase()) || 'submit';
- if (!BUTTON_TYPES.includes(type)) {
- type = 'submit';
- }
- return type;
- }
- }
- exports.default = HTMLButtonElement;
- //# sourceMappingURL=HTMLButtonElement.js.map
|