@bixi/label
Version:
258 lines (257 loc) • 5.13 kB
TypeScript
export interface ILabel {
uuid?: string;
tagId?: string;
stroke?: string;
fill?: string;
index: number;
word: string;
selected?: boolean;
direction?: string;
}
export interface ILabelStyle {
uuid: string;
fill?: string;
stroke?: string;
}
export interface ISerarchParams {
keyword: string;
caseSensitive: boolean;
}
export interface ISearchResult extends ISerarchParams {
result?: {
[prop: number]: {
pageNumber: number;
pre: string;
next: string;
}[];
};
}
export interface IClickMetadata {
altKey: boolean;
ctrlKey: boolean;
metaKey: boolean;
shiftKey: boolean;
which: number;
}
interface ILabelsEvent {
data: ILabel[];
position: {
top: number;
left: number;
width: number;
height: number;
};
}
export declare type ILabelingEvent = ILabelsEvent;
export declare type IDeleteLabelsEvent = ILabelsEvent;
export declare type IHoverInLabelsEvent = ILabelsEvent;
export interface IClickLabelsEvent extends ILabelsEvent {
metadata: IClickMetadata;
}
export interface IPagination {
pageNumber: number;
pageCount: number;
}
export interface IInitOptions {
id: string;
pdfUrl: string;
pdfInfoUrl: string;
pdfCharsUrl: string;
pdfMode: string;
labelMode: LabelTableMode | LabelTextMode;
pdfSize?: number;
labels?: ILabel[];
tables?: ISafeAny[];
}
export interface ISearchLabelByUuidParams {
uuid: string;
pageNumber?: number;
isHighlight?: boolean;
level?: number;
offsetTop?: number;
stroke?: string;
fill?: string;
}
export interface ISearchLabelByIndexParams {
index: number;
word?: string;
isHighlight?: boolean;
level?: number;
offsetTop?: number;
}
export interface ISearchTableCellParams {
pageNumber: number;
tableId: string;
x: number;
y: number;
word?: string;
fontSize?: number;
scale?: number;
fill?: string;
}
export interface IViewPort {
height: number;
left: number;
scale: number;
top: number;
width: number;
zoom: number;
}
export interface ITableMatrix {
tableId: string;
type: 'update' | 'insert' | 'delete';
pageNumber: number;
area: number[];
lines: number[][][];
detail: {
h: number;
v: number;
};
}
export declare type ISafeAny = any;
export declare enum LabelTextMode {
/**
* 禁止标注
*/
non = "non",
/**
* 划选
*/
textSlip = "textSlip",
/**
* 框选
*/
textFrame = "textFrame",
/**
* 组合
*/
textGroup = "textGroup"
}
export declare enum LabelTableMode {
/**
* 新增表格
*/
tableAddTbl = "tableAddTbl",
/**
* 调整表格
*/
tableResizeTbl = "tableResizeTbl",
/**
* 删除表格
*/
tableDelTbl = "tableDelTbl",
/**
* 横向拆分表格
*/
tableHSplitTbl = "tableHSplitTbl",
/**
* 纵向拆分表格
*/
tableVSplitTbl = "tableVSplitTbl",
/**
* 增加横线
*/
tableAddHLine = "tableAddHLine",
/**
* 增加竖线
*/
tableAddVLine = "tableAddVLine",
/**
* 增加表格线 (任意长度)
*/
tableAddLine = "tableAddLine",
/**
* 调整线条
*/
tableResizeCell = "tableResizeCell",
/**
* 删除线
*/
tableDelLine = "tableDelLine",
/**
* 删除单元格线
*/
tableDelCellLine = "tableDelCellLine",
/**
* 合并单元格
*/
tableMergeCell = "tableMergeCell",
/**
* 拆分单元格
*/
tableSplitCell = "tableSplitCell",
/**
* 选择单元格
*/
tableSelectCells = "tableSelectCells",
/**
* 隐藏框线
*/
tableHideTable = "tableHideTable",
/**
* 显示框线
*/
tableShowTable = "tableShowTable",
/**
* 选择表格
*/
selectTables = "tableSelectTables",
/**
* 合并表格
*/
mergeTables = "tableMergeTables",
/**
* 拆分表格
*/
splitTables = "tableSplitTables",
/**
* 禁止表格操作
*/
tableNon = "tableNon"
}
export declare enum PdfMode {
/**
* 全部功能
*/
full = "full",
/**
* 只读
*/
readonly = "readonly",
/**
* 只删
*/
deleteonly = "deleteonly",
/**
* 预览(只能查看pdf文档)
*/
preview = "preview"
}
export interface ISearchRectParams {
x1: number;
y1: number;
x2: number;
y2: number;
pageNumber: number;
stroke?: string;
fill?: string;
}
export interface ITableSplit {
page_number: number;
table_id: string;
split_lines: number[][][];
}
export interface ITableOperationRecord {
id: string;
type: LabelTableMode;
}
export interface IModifiedTableLineMatrix {
table_id: string;
page_number: number;
lines: {
type: 'add' | 'delete' | 'update';
before: number[][] | null;
after: number[][] | null;
}[];
}
export {};