type.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. export type RenderingStateType = 'RENDERING' | 'LOADING' | 'FINISHED' | 'PAUSED';
  2. export type LineType = 'Highlight' | 'Underline' | 'Squiggly' | 'StrikeOut';
  3. export type ReducerFuncType = (
  4. (state: Record<string, any>, action: { type: string; payload: any}) => any
  5. );
  6. export type ViewportType = {
  7. width: number;
  8. height: number;
  9. };
  10. export type ProgressType = {
  11. loaded: number;
  12. total: number;
  13. };
  14. export type ScrollStateType = {
  15. right: boolean;
  16. down: boolean;
  17. lastX: number;
  18. lastY: number;
  19. subscriber: any;
  20. };
  21. export type SelectOptionType = {
  22. key: string | number;
  23. content: React.ReactNode;
  24. child: React.ReactNode;
  25. };
  26. export type PositionType = {
  27. top: number;
  28. bottom: number;
  29. left: number;
  30. right: number;
  31. };
  32. export type HTMLCoordinateType = {
  33. top: number;
  34. left: number;
  35. width: number;
  36. height: number;
  37. };
  38. export type PointType = {
  39. x: number;
  40. y: number;
  41. }
  42. export type LinePositionType = {
  43. start: PointType;
  44. end: PointType;
  45. };
  46. export type AnnotationPositionType = (
  47. string | PositionType | LinePositionType | PointType | (PositionType | PointType[])[]
  48. );
  49. export type AnnotationAttributeType = {
  50. page: number;
  51. bdcolor?: string | undefined;
  52. position: AnnotationPositionType;
  53. transparency?: number | undefined;
  54. content?: string | undefined;
  55. style?: number | undefined;
  56. fcolor?: string | undefined;
  57. ftransparency?: number | undefined;
  58. bdwidth?: number | undefined;
  59. fontname?: string | undefined;
  60. fontsize?: number | undefined;
  61. textcolor?: string | undefined;
  62. is_arrow?: boolean | undefined;
  63. };
  64. export type AnnotationType = {
  65. id?: string;
  66. obj_type: string;
  67. obj_attr: AnnotationAttributeType;
  68. };
  69. export type UpdateData = {
  70. bdcolor?: string;
  71. transparency?: number;
  72. position?: AnnotationPositionType;
  73. content?: string;
  74. fontsize?: number;
  75. };
  76. export type OnUpdateType = (
  77. (data: UpdateData) => void
  78. );
  79. type DispatchType = {
  80. type: string;
  81. payload: string | number | boolean | Record<string, any> | any[];
  82. }
  83. export type ActionType = (
  84. (dispatch: (obj: DispatchType) => void) => Record<string, any>
  85. );
  86. export type AnnotationElementPropsType = AnnotationType & {
  87. isCovered: boolean;
  88. isCollapse: boolean;
  89. mousePosition: Record<string, any>;
  90. onUpdate: OnUpdateType;
  91. onDelete: () => void;
  92. scale: number;
  93. viewport: ViewportType;
  94. onEdit: () => void;
  95. isEdit: boolean;
  96. onBlur: () => void;
  97. };
  98. export type OptionPropsType = {
  99. type?: string;
  100. color?: string;
  101. opacity?: number;
  102. fontName?: string;
  103. fontSize?: number;
  104. width?: number;
  105. align?: string;
  106. fontStyle?: string;
  107. shape?: string;
  108. text?: string;
  109. setDataState?: (arg: Record<string, any>) => void;
  110. };
  111. export type CoordType = {
  112. left: number;
  113. top: number;
  114. width?: number;
  115. height?: number;
  116. };
  117. export type CircleType = {
  118. direction: string;
  119. cx: number;
  120. cy: number;
  121. r: number;
  122. };
  123. export type WatermarkType = {
  124. type?: 'image' | 'text';
  125. scale?: number;
  126. opacity?: number;
  127. rotation?: number;
  128. pages?: string;
  129. vertalign?: 'top' | 'center' | 'bottom';
  130. horizalign?: 'left' | 'center' | 'right';
  131. xoffset?: number;
  132. yoffset?: number;
  133. imagepath?: string;
  134. text?: string;
  135. textcolor?: string;
  136. isfront?: 'yes' | 'no';
  137. };