51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
import { PositionalTabAlignmentType } from "./json/bindings/PositionalTabAlignmentType";
|
|
import { PositionalTabRelativeTo } from "./json/bindings/PositionalTabRelativeTo";
|
|
import { TabLeaderType } from "./json/bindings/TabLeaderType";
|
|
import {
|
|
createPositionalTab,
|
|
PositionalTabAlignmentType as _PositionalTabAlignmentType,
|
|
PositionalTabRelativeTo as _PositionalTabRelativeTo,
|
|
TabLeaderType as _TabLeaderType,
|
|
} from "./pkg/docx_wasm";
|
|
import { convertTabLeader } from "./tab-leader";
|
|
|
|
export class PositionalTab {
|
|
_alignment: PositionalTabAlignmentType = "left";
|
|
_relativeTo: PositionalTabRelativeTo = "margin";
|
|
_leader: TabLeaderType = "none";
|
|
|
|
alignment(t: PositionalTabAlignmentType) {
|
|
this._alignment = t;
|
|
return this;
|
|
}
|
|
|
|
relativeTo(t: PositionalTabRelativeTo) {
|
|
this._relativeTo = t;
|
|
return this;
|
|
}
|
|
|
|
leader(l: TabLeaderType) {
|
|
this._leader = l;
|
|
return this;
|
|
}
|
|
|
|
buildWasmObject() {
|
|
const alignment = (() => {
|
|
if (this._alignment === "left") return _PositionalTabAlignmentType.Left;
|
|
if (this._alignment === "center")
|
|
return _PositionalTabAlignmentType.Center;
|
|
if (this._alignment === "right") return _PositionalTabAlignmentType.Right;
|
|
return _PositionalTabAlignmentType.Left;
|
|
})();
|
|
|
|
const relativeTo = (() => {
|
|
if (this._relativeTo === "indent") return _PositionalTabRelativeTo.Indent;
|
|
return _PositionalTabRelativeTo.Margin;
|
|
})();
|
|
|
|
const leader = convertTabLeader(this._leader);
|
|
|
|
return createPositionalTab(alignment, relativeTo, leader);
|
|
}
|
|
}
|