docx-rs/docx-wasm/js/json/paragraph.ts

152 lines
2.7 KiB
TypeScript
Raw Normal View History

import { RunJSON, RunPropertyJSON } from "./run";
2020-02-27 20:12:36 +02:00
import { IndentJSON } from "./indent";
import {
CommentRangeEndJSON,
CommentRangeStartJSON,
SectionPropertyJSON,
} from "..";
import { LineSpacingJSON } from "./line_spacing";
export type ParagraphChildJSON =
| RunJSON
| InsertJSON
| DeleteJSON
| HyperlinkJSON
| CommentRangeStartJSON
| CommentRangeEndJSON
| BookmarkStartJSON
| BookmarkEndJSON;
export type HyperlinkChildJSON =
| RunJSON
| InsertJSON
| DeleteJSON
| CommentRangeStartJSON
| CommentRangeEndJSON
| BookmarkStartJSON
| BookmarkEndJSON;
export type CustomTabStopType =
| "bar"
| "center"
| "clear"
| "decimal"
| "end"
| "right"
| "num"
| "start"
| "left";
export type CustomTabStopJSON = {
val: CustomTabStopType | null;
leader: string | null;
pos: number | null;
};
export type NumberingPropertyJSON = {
id: number | null;
level: number | null;
};
export type ParagraphPropertyJSON = {
runProperty: RunPropertyJSON;
style?: string | null;
numberingProperty?: NumberingPropertyJSON | null;
alignment?:
| "left"
| "center"
| "right"
| "justified"
| "both"
| "start"
| "end"
| "unsupported";
indent?: IndentJSON | null;
lineSpacing?: LineSpacingJSON | null;
divId?: string | null;
keepNext?: boolean;
keepLines?: boolean;
pageBreakBefore?: boolean;
widowControl?: boolean;
outlineLvl?: number | null;
paragraphPropertyChange?: {
author: string;
date: string;
property: ParagraphPropertyJSON;
};
sectionProperty?: SectionPropertyJSON;
tabs: CustomTabStopJSON[];
};
export type ParagraphJSON = {
type: "paragraph";
data: {
id: string;
property: ParagraphPropertyJSON;
children: ParagraphChildJSON[];
};
};
export type InsertJSONData = {
children: (
| DeleteJSON
| RunJSON
| CommentRangeStartJSON
| CommentRangeEndJSON
)[];
author: string;
date: string;
};
export type InsertJSON = {
type: "insert";
data: InsertJSONData;
};
export type DeleteJSONData = {
children: DeleteChildJSON[];
author: string;
date: string;
};
export type DeleteJSON = {
type: "delete";
data: DeleteJSONData;
};
export type HyperlinkJSON = {
type: "hyperlink";
data:
| {
type: "external";
rid: string;
children: HyperlinkChildJSON[];
history: number | null;
}
| {
type: "anchor";
anchor: string;
children: HyperlinkChildJSON[];
};
};
export type DeleteChildJSON =
| RunJSON
| CommentRangeStartJSON
| CommentRangeEndJSON;
export type BookmarkStartJSON = {
type: "bookmarkStart";
data: {
id: number;
name: string;
};
};
export type BookmarkEndJSON = {
type: "bookmarkEnd";
data: {
id: number;
};
};