// add header contents

import {
    CreateDocx,
    OptionsHeader,
    OptionsText,
    WordFragment,
} from "../../../build";
import * as fs from "fs";

const docx = new CreateDocx();

// generate header content
const headers: OptionsHeader[] = [];

const textDefaultHeaderA: OptionsText = {
    bold: true,
    italic: true,
    fontSize: 14,
    text: "Text ",
};
const textDefaultHeaderB: OptionsText = {
    color: "0000FF",
    font: "Times New Roman",
    text: "default header.",
};
const headerFragmentDefault = new WordFragment();
headerFragmentDefault.addText([textDefaultHeaderA, textDefaultHeaderB]);
const headerContentDefault: OptionsHeader = {
    text: headerFragmentDefault,
};

const textFirstHeader: OptionsText = {
    bold: true,
    text: "Text first header.",
};
const headerFragmentFirst = new WordFragment();
headerFragmentFirst.addText([textFirstHeader]);
const headerContentFirst: OptionsHeader = {
    text: headerFragmentFirst,
    type: "first",
};

const headerFragmentEven = new WordFragment();
headerFragmentEven.addText("Text even header.");
const headerContentEven: OptionsHeader = {
    text: headerFragmentEven,
    type: "even",
};

headers.push(headerContentDefault);
headers.push(headerContentFirst);
headers.push(headerContentEven);

// add headers
docx.addHeader(headers);

docx.addText("First page.");
docx.addBreak("page");
docx.addText("Even page.");
docx.addBreak("page");
docx.addText("Other page.");

docx.save().then(contents => {
    fs.writeFileSync("addHeader_1.docx", Buffer.from(contents));
});
