dc38cfb599a9e8406a3d229abc37a6108ac5c611fba792a94052924bdda424f55a805d1d2cd742e06f8f9f79dc504907582e18e3b036315ba539e89355d3f1 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. import { useCache } from '../hooks/use-cache';
  2. import { BACKWARD, FORWARD } from '../defaults';
  3. import type { CSSProperties, Ref, StyleValue, UnwrapRef, VNode } from 'vue';
  4. import type { Alignment, GridConstructorProps, GridScrollOptions } from '../types';
  5. import type { VirtualizedGridProps } from '../props';
  6. declare const createGrid: ({ name, clearCache, getColumnPosition, getColumnStartIndexForOffset, getColumnStopIndexForStartIndex, getEstimatedTotalHeight, getEstimatedTotalWidth, getColumnOffset, getRowOffset, getRowPosition, getRowStartIndexForOffset, getRowStopIndexForStartIndex, initCache, injectToInstance, validateProps, }: GridConstructorProps<VirtualizedGridProps>) => import("vue").DefineComponent<{
  7. readonly className: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
  8. readonly containerElement: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string | Element) | (() => string | Element) | ((new (...args: any[]) => string | Element) | (() => string | Element))[], unknown, unknown, "div", boolean>;
  9. readonly data: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => any[]) | (() => any[]) | ((new (...args: any[]) => any[]) | (() => any[]))[], unknown, unknown, () => [], boolean>;
  10. readonly direction: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "ltr" | "rtl", never, "ltr", false>;
  11. readonly height: {
  12. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>>;
  13. readonly required: true;
  14. readonly validator: ((val: unknown) => boolean) | undefined;
  15. __epPropKey: true;
  16. };
  17. readonly innerElement: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, ObjectConstructor], unknown, unknown, "div", boolean>;
  18. readonly style: {
  19. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | CSSProperties | StyleValue[]) | (() => StyleValue) | ((new (...args: any[]) => string | CSSProperties | StyleValue[]) | (() => StyleValue))[], unknown, unknown>>;
  20. readonly required: false;
  21. readonly validator: ((val: unknown) => boolean) | undefined;
  22. __epPropKey: true;
  23. };
  24. readonly useIsScrolling: BooleanConstructor;
  25. readonly width: {
  26. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<readonly [NumberConstructor, StringConstructor], unknown, unknown>>;
  27. readonly required: false;
  28. readonly validator: ((val: unknown) => boolean) | undefined;
  29. __epPropKey: true;
  30. };
  31. readonly perfMode: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  32. readonly scrollbarAlwaysOn: BooleanConstructor;
  33. readonly columnCache: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, never, never, 2, false>;
  34. readonly columnWidth: {
  35. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => number | import("../types").ItemSize) | (() => number | import("../types").ItemSize) | ((new (...args: any[]) => number | import("../types").ItemSize) | (() => number | import("../types").ItemSize))[], never, never>>;
  36. readonly required: true;
  37. readonly validator: ((val: unknown) => boolean) | undefined;
  38. __epPropKey: true;
  39. };
  40. readonly estimatedColumnWidth: {
  41. readonly type: import("vue").PropType<number>;
  42. readonly required: false;
  43. readonly validator: ((val: unknown) => boolean) | undefined;
  44. __epPropKey: true;
  45. };
  46. readonly estimatedRowHeight: {
  47. readonly type: import("vue").PropType<number>;
  48. readonly required: false;
  49. readonly validator: ((val: unknown) => boolean) | undefined;
  50. __epPropKey: true;
  51. };
  52. readonly initScrollLeft: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, never, never, 0, false>;
  53. readonly initScrollTop: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, never, never, 0, false>;
  54. readonly itemKey: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("../types").GridItemKeyGetter) | (() => import("../types").GridItemKeyGetter) | {
  55. (): import("../types").GridItemKeyGetter;
  56. new (): any;
  57. readonly prototype: any;
  58. } | ((new (...args: any[]) => import("../types").GridItemKeyGetter) | (() => import("../types").GridItemKeyGetter) | {
  59. (): import("../types").GridItemKeyGetter;
  60. new (): any;
  61. readonly prototype: any;
  62. })[], unknown, unknown, ({ columnIndex, rowIndex, }: {
  63. columnIndex: number;
  64. rowIndex: number;
  65. }) => string, boolean>;
  66. readonly rowCache: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, never, never, 2, false>;
  67. readonly rowHeight: {
  68. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => number | import("../types").ItemSize) | (() => number | import("../types").ItemSize) | ((new (...args: any[]) => number | import("../types").ItemSize) | (() => number | import("../types").ItemSize))[], never, never>>;
  69. readonly required: true;
  70. readonly validator: ((val: unknown) => boolean) | undefined;
  71. __epPropKey: true;
  72. };
  73. readonly totalColumn: {
  74. readonly type: import("vue").PropType<number>;
  75. readonly required: true;
  76. readonly validator: ((val: unknown) => boolean) | undefined;
  77. __epPropKey: true;
  78. };
  79. readonly totalRow: {
  80. readonly type: import("vue").PropType<number>;
  81. readonly required: true;
  82. readonly validator: ((val: unknown) => boolean) | undefined;
  83. __epPropKey: true;
  84. };
  85. readonly hScrollbarSize: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
  86. readonly vScrollbarSize: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
  87. readonly scrollbarStartGap: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
  88. readonly scrollbarEndGap: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 2, boolean>;
  89. readonly role: StringConstructor;
  90. }, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
  91. [key: string]: any;
  92. }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "itemRendered")[], "scroll" | "itemRendered", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
  93. readonly className: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
  94. readonly containerElement: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string | Element) | (() => string | Element) | ((new (...args: any[]) => string | Element) | (() => string | Element))[], unknown, unknown, "div", boolean>;
  95. readonly data: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => any[]) | (() => any[]) | ((new (...args: any[]) => any[]) | (() => any[]))[], unknown, unknown, () => [], boolean>;
  96. readonly direction: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "ltr" | "rtl", never, "ltr", false>;
  97. readonly height: {
  98. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>>;
  99. readonly required: true;
  100. readonly validator: ((val: unknown) => boolean) | undefined;
  101. __epPropKey: true;
  102. };
  103. readonly innerElement: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, ObjectConstructor], unknown, unknown, "div", boolean>;
  104. readonly style: {
  105. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | CSSProperties | StyleValue[]) | (() => StyleValue) | ((new (...args: any[]) => string | CSSProperties | StyleValue[]) | (() => StyleValue))[], unknown, unknown>>;
  106. readonly required: false;
  107. readonly validator: ((val: unknown) => boolean) | undefined;
  108. __epPropKey: true;
  109. };
  110. readonly useIsScrolling: BooleanConstructor;
  111. readonly width: {
  112. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<readonly [NumberConstructor, StringConstructor], unknown, unknown>>;
  113. readonly required: false;
  114. readonly validator: ((val: unknown) => boolean) | undefined;
  115. __epPropKey: true;
  116. };
  117. readonly perfMode: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  118. readonly scrollbarAlwaysOn: BooleanConstructor;
  119. readonly columnCache: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, never, never, 2, false>;
  120. readonly columnWidth: {
  121. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => number | import("../types").ItemSize) | (() => number | import("../types").ItemSize) | ((new (...args: any[]) => number | import("../types").ItemSize) | (() => number | import("../types").ItemSize))[], never, never>>;
  122. readonly required: true;
  123. readonly validator: ((val: unknown) => boolean) | undefined;
  124. __epPropKey: true;
  125. };
  126. readonly estimatedColumnWidth: {
  127. readonly type: import("vue").PropType<number>;
  128. readonly required: false;
  129. readonly validator: ((val: unknown) => boolean) | undefined;
  130. __epPropKey: true;
  131. };
  132. readonly estimatedRowHeight: {
  133. readonly type: import("vue").PropType<number>;
  134. readonly required: false;
  135. readonly validator: ((val: unknown) => boolean) | undefined;
  136. __epPropKey: true;
  137. };
  138. readonly initScrollLeft: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, never, never, 0, false>;
  139. readonly initScrollTop: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, never, never, 0, false>;
  140. readonly itemKey: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("../types").GridItemKeyGetter) | (() => import("../types").GridItemKeyGetter) | {
  141. (): import("../types").GridItemKeyGetter;
  142. new (): any;
  143. readonly prototype: any;
  144. } | ((new (...args: any[]) => import("../types").GridItemKeyGetter) | (() => import("../types").GridItemKeyGetter) | {
  145. (): import("../types").GridItemKeyGetter;
  146. new (): any;
  147. readonly prototype: any;
  148. })[], unknown, unknown, ({ columnIndex, rowIndex, }: {
  149. columnIndex: number;
  150. rowIndex: number;
  151. }) => string, boolean>;
  152. readonly rowCache: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, never, never, 2, false>;
  153. readonly rowHeight: {
  154. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => number | import("../types").ItemSize) | (() => number | import("../types").ItemSize) | ((new (...args: any[]) => number | import("../types").ItemSize) | (() => number | import("../types").ItemSize))[], never, never>>;
  155. readonly required: true;
  156. readonly validator: ((val: unknown) => boolean) | undefined;
  157. __epPropKey: true;
  158. };
  159. readonly totalColumn: {
  160. readonly type: import("vue").PropType<number>;
  161. readonly required: true;
  162. readonly validator: ((val: unknown) => boolean) | undefined;
  163. __epPropKey: true;
  164. };
  165. readonly totalRow: {
  166. readonly type: import("vue").PropType<number>;
  167. readonly required: true;
  168. readonly validator: ((val: unknown) => boolean) | undefined;
  169. __epPropKey: true;
  170. };
  171. readonly hScrollbarSize: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
  172. readonly vScrollbarSize: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
  173. readonly scrollbarStartGap: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
  174. readonly scrollbarEndGap: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 2, boolean>;
  175. readonly role: StringConstructor;
  176. }>> & {
  177. onScroll?: ((...args: any[]) => any) | undefined;
  178. onItemRendered?: ((...args: any[]) => any) | undefined;
  179. }, {
  180. readonly data: any[];
  181. readonly direction: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "ltr" | "rtl", never>;
  182. readonly className: string;
  183. readonly containerElement: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | Element) | (() => string | Element) | ((new (...args: any[]) => string | Element) | (() => string | Element))[], unknown, unknown>;
  184. readonly innerElement: import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, ObjectConstructor], unknown, unknown>;
  185. readonly perfMode: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
  186. readonly useIsScrolling: boolean;
  187. readonly scrollbarAlwaysOn: boolean;
  188. readonly itemKey: import("../types").GridItemKeyGetter;
  189. readonly columnCache: number;
  190. readonly initScrollLeft: number;
  191. readonly initScrollTop: number;
  192. readonly rowCache: number;
  193. readonly hScrollbarSize: number;
  194. readonly vScrollbarSize: number;
  195. readonly scrollbarStartGap: number;
  196. readonly scrollbarEndGap: number;
  197. }>;
  198. export default createGrid;
  199. type Dir = typeof FORWARD | typeof BACKWARD;
  200. export type GridInstance = InstanceType<ReturnType<typeof createGrid>> & UnwrapRef<{
  201. windowRef: Ref<HTMLElement>;
  202. innerRef: Ref<HTMLElement>;
  203. getItemStyleCache: ReturnType<typeof useCache>;
  204. scrollTo: (scrollOptions: GridScrollOptions) => void;
  205. scrollToItem: (rowIndex: number, columnIndex: number, alignment: Alignment) => void;
  206. states: Ref<{
  207. isScrolling: boolean;
  208. scrollLeft: number;
  209. scrollTop: number;
  210. updateRequested: boolean;
  211. xAxisScrollDir: Dir;
  212. yAxisScrollDir: Dir;
  213. }>;
  214. }>;