Sha256: 0cbc46c3ac61c2acb70f2b629ff02047620dae78a82dd4022068110b39d7c7b5
Contents?: true
Size: 1.97 KB
Versions: 3
Compression:
Stored size: 1.97 KB
Contents
"use strict"; const HTMLElementImpl = require("./HTMLElement-impl").implementation; const idlUtils = require("../generated/utils"); const createHTMLCollection = require("../../living/html-collection").create; const childrenByHTMLLocalNames = require("../helpers/traversal").childrenByHTMLLocalNames; const DOMException = require("../../web-idl/DOMException"); const domSymbolTree = require("../helpers/internal-constants").domSymbolTree; const closest = require("../helpers/traversal").closest; const cellLocalNames = new Set(["td", "th"]); class HTMLTableRowElementImpl extends HTMLElementImpl { get cells() { if (!this._cells) { this._cells = createHTMLCollection(this, () => childrenByHTMLLocalNames(this, cellLocalNames)); } return this._cells; } get rowIndex() { const table = closest(this, "table"); return table ? Array.prototype.indexOf.call(table.rows, idlUtils.wrapperForImpl(this)) : -1; } get sectionRowIndex() { const parent = domSymbolTree.parent(this); if (parent === null) { return -1; } const rows = parent.rows; if (!rows) { return -1; } return Array.prototype.indexOf.call(rows, idlUtils.wrapperForImpl(this)); } insertCell(index) { const td = this._ownerDocument.createElement("TD"); const cells = this.cells; if (index < -1 || index > cells.length) { throw new DOMException(DOMException.INDEX_SIZE_ERR); } if (index === -1 || index === cells.length) { this.appendChild(td); } else { const ref = idlUtils.implForWrapper(cells[index]); this.insertBefore(td, ref); } return td; } deleteCell(index) { const cells = this.cells; if (index === -1) { index = cells.length - 1; } if (index < 0 || index >= cells.length) { throw new DOMException(DOMException.INDEX_SIZE_ERR); } const td = idlUtils.implForWrapper(cells[index]); this.removeChild(td); } } module.exports = { implementation: HTMLTableRowElementImpl };
Version data entries
3 entries across 3 versions & 3 rubygems