type.ts 3.2 KB

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