You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
182 lines
3.5 KiB
182 lines
3.5 KiB
import { ImageDisplay } from '../dataset/enum/Common'
|
|
import { ControlComponent } from '../dataset/enum/Control'
|
|
import { ElementType } from '../dataset/enum/Element'
|
|
import { ListStyle, ListType } from '../dataset/enum/List'
|
|
import { RowFlex } from '../dataset/enum/Row'
|
|
import { TitleLevel } from '../dataset/enum/Title'
|
|
import { TableBorder } from '../dataset/enum/table/Table'
|
|
import { IBlock } from './Block'
|
|
import { ICheckbox } from './Checkbox'
|
|
import { IControl } from './Control'
|
|
import { IRadio } from './Radio'
|
|
import { ITextDecoration } from './Text'
|
|
import { ITitle } from './Title'
|
|
import { IColgroup } from './table/Colgroup'
|
|
import { ITr } from './table/Tr'
|
|
|
|
export interface IElementBasic {
|
|
id?: string
|
|
type?: ElementType
|
|
value: string
|
|
extension?: unknown
|
|
externalId?: string
|
|
}
|
|
|
|
export interface IElementStyle {
|
|
font?: string
|
|
size?: number
|
|
width?: number
|
|
height?: number
|
|
bold?: boolean
|
|
color?: string
|
|
highlight?: string
|
|
italic?: boolean
|
|
underline?: boolean
|
|
strikeout?: boolean
|
|
rowFlex?: RowFlex
|
|
rowMargin?: number
|
|
letterSpacing?: number
|
|
textDecoration?: ITextDecoration
|
|
}
|
|
|
|
export interface IElementGroup {
|
|
groupIds?: string[]
|
|
}
|
|
|
|
export interface ITitleElement {
|
|
valueList?: IElement[]
|
|
level?: TitleLevel
|
|
titleId?: string
|
|
title?: ITitle
|
|
}
|
|
|
|
export interface IListElement {
|
|
valueList?: IElement[]
|
|
listType?: ListType
|
|
listStyle?: ListStyle
|
|
listId?: string
|
|
listWrap?: boolean
|
|
}
|
|
|
|
export interface ITableAttr {
|
|
colgroup?: IColgroup[]
|
|
trList?: ITr[]
|
|
borderType?: TableBorder
|
|
}
|
|
|
|
export interface ITableElement {
|
|
tdId?: string
|
|
trId?: string
|
|
tableId?: string
|
|
conceptId?: string
|
|
pagingId?: string // 用于区分拆分的表格同属一个源表格
|
|
pagingIndex?: number // 拆分的表格索引
|
|
}
|
|
|
|
export type ITable = ITableAttr & ITableElement
|
|
|
|
export interface IHyperlinkElement {
|
|
valueList?: IElement[]
|
|
url?: string
|
|
hyperlinkId?: string
|
|
}
|
|
|
|
export interface ISuperscriptSubscript {
|
|
actualSize?: number
|
|
}
|
|
|
|
export interface ISeparator {
|
|
dashArray?: number[]
|
|
}
|
|
|
|
export interface IControlElement {
|
|
control?: IControl
|
|
controlId?: string
|
|
controlComponent?: ControlComponent
|
|
}
|
|
|
|
export interface ICheckboxElement {
|
|
checkbox?: ICheckbox
|
|
}
|
|
|
|
export interface IRadioElement {
|
|
radio?: IRadio
|
|
}
|
|
|
|
export interface ILaTexElement {
|
|
laTexSVG?: string
|
|
}
|
|
|
|
export interface IDateElement {
|
|
dateFormat?: string
|
|
dateId?: string
|
|
}
|
|
|
|
export interface IImageElement {
|
|
imgDisplay?: ImageDisplay
|
|
imgFloatPosition?: {
|
|
x: number
|
|
y: number
|
|
}
|
|
}
|
|
|
|
export interface IBlockElement {
|
|
block?: IBlock
|
|
}
|
|
|
|
export type IElement = IElementBasic &
|
|
IElementStyle &
|
|
IElementGroup &
|
|
ITable &
|
|
IHyperlinkElement &
|
|
ISuperscriptSubscript &
|
|
ISeparator &
|
|
IControlElement &
|
|
ICheckboxElement &
|
|
IRadioElement &
|
|
ILaTexElement &
|
|
IDateElement &
|
|
IImageElement &
|
|
IBlockElement &
|
|
ITitleElement &
|
|
IListElement
|
|
|
|
export interface IElementMetrics {
|
|
width: number
|
|
height: number
|
|
boundingBoxAscent: number
|
|
boundingBoxDescent: number
|
|
}
|
|
|
|
export interface IElementPosition {
|
|
pageNo: number
|
|
index: number
|
|
value: string
|
|
rowIndex: number
|
|
rowNo: number
|
|
ascent: number
|
|
lineHeight: number
|
|
left: number
|
|
metrics: IElementMetrics
|
|
isFirstLetter: boolean
|
|
isLastLetter: boolean
|
|
coordinate: {
|
|
leftTop: number[]
|
|
leftBottom: number[]
|
|
rightTop: number[]
|
|
rightBottom: number[]
|
|
}
|
|
}
|
|
|
|
export interface IElementFillRect {
|
|
x: number
|
|
y: number
|
|
width: number
|
|
height: number
|
|
}
|
|
|
|
export interface IUpdateElementByIdOption {
|
|
id: string
|
|
properties: Omit<Partial<IElement>, 'id'>
|
|
}
|