// Example of how you would create a table and add data to it
// Import from 'docx' rather than '../build' if you install from npm
import * as fs from "fs";
import { Document, Packer, Paragraph, Table, TableCell, TableRow, WidthType } from "../build";

const table = new Table({
    columnWidths: [3505, 5505],
    rows: [
        new TableRow({
            children: [
                new TableCell({
                    width: {
                        size: 3505,
                        type: WidthType.DXA,
                    },
                    children: [new Paragraph("Hello")],
                }),
                new TableCell({
                    width: {
                        size: 5505,
                        type: WidthType.DXA,
                    },
                    children: [],
                }),
            ],
        }),
        new TableRow({
            children: [
                new TableCell({
                    width: {
                        size: 3505,
                        type: WidthType.DXA,
                    },
                    children: [],
                }),
                new TableCell({
                    width: {
                        size: 5505,
                        type: WidthType.DXA,
                    },
                    children: [new Paragraph("World")],
                }),
            ],
        }),
    ],
});

const table2 = new Table({
    columnWidths: [4505, 4505],
    rows: [
        new TableRow({
            children: [
                new TableCell({
                    width: {
                        size: 4505,
                        type: WidthType.DXA,
                    },
                    children: [new Paragraph("Hello")],
                }),
                new TableCell({
                    width: {
                        size: 4505,
                        type: WidthType.DXA,
                    },
                    children: [],
                }),
            ],
        }),
        new TableRow({
            children: [
                new TableCell({
                    width: {
                        size: 4505,
                        type: WidthType.DXA,
                    },
                    children: [],
                }),
                new TableCell({
                    width: {
                        size: 4505,
                        type: WidthType.DXA,
                    },
                    children: [new Paragraph("World")],
                }),
            ],
        }),
    ],
});

const table3 = new Table({
    rows: [
        new TableRow({
            children: [
                new TableCell({
                    children: [new Paragraph("Hello")],
                }),
                new TableCell({
                    children: [],
                }),
            ],
        }),
        new TableRow({
            children: [
                new TableCell({
                    children: [],
                }),
                new TableCell({
                    children: [new Paragraph("World")],
                }),
            ],
        }),
    ],
});

const doc = new Document({
    sections: [
        {
            children: [
                new Paragraph({ text: "Table with skewed widths" }),
                table,
                new Paragraph({ text: "Table with equal widths" }),
                table2,
                new Paragraph({ text: "Table without setting widths" }),
                table3,
            ],
        },
    ],
});

Packer.toBuffer(doc).then((buffer) => {
    fs.writeFileSync("My Document.docx", buffer);
});
