voluptasmollitia
Version:
Monorepo for the Firebase JavaScript SDK
87 lines (74 loc) • 2.34 kB
text/typescript
/**
* @license
* Copyright 2020 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// 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 `<tr>` element.
*/
export class DocTableRow extends DocNode {
private readonly _cells: DocTableCell[];
public constructor(
parameters: IDocTableRowParameters,
cells?: ReadonlyArray<DocTableCell>
) {
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<DocTableCell> {
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<DocNode | undefined> {
return this._cells;
}
}