// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. import { IDocNodeParameters, DocNode, DocPlainText } from '@microsoft/tsdoc'; import { CustomDocNodeKind } from './CustomDocNodeKind'; import { DocTableCell } from './DocTableCell'; /** * Constructor parameters for {@link DocTableRow}. */ export interface IDocTableRowParameters extends IDocNodeParameters {} /** * Represents table row, similar to an HTML `` element. */ export class DocTableRow extends DocNode { private readonly _cells: DocTableCell[]; public constructor(parameters: IDocTableRowParameters, cells?: ReadonlyArray) { super(parameters); this._cells = []; if (cells) { for (const cell of cells) { this.addCell(cell); } } } /** @override */ public get kind(): string { return CustomDocNodeKind.TableRow; } public get cells(): ReadonlyArray { return this._cells; } public addCell(cell: DocTableCell): void { this._cells.push(cell); } public createAndAddCell(): DocTableCell { const newCell: DocTableCell = new DocTableCell({ configuration: this.configuration }); this.addCell(newCell); return newCell; } public addPlainTextCell(cellContent: string): DocTableCell { const cell: DocTableCell = this.createAndAddCell(); cell.content.appendNodeInParagraph( new DocPlainText({ configuration: this.configuration, text: cellContent }) ); return cell; } /** @override */ protected onGetChildNodes(): ReadonlyArray { return this._cells; } }