8feb4ad85a3f9a72f0c534f76095936d02bc668fc2d666554a089a379f60927d3d0549c45b2392f5dddb2fd6a2ba172a341ce383d1f7d4245e23dcba4e61a4 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. declare module 'vuedraggable' {
  2. import Vue, { VueConstructor } from 'vue';
  3. type CombinedVueInstance<
  4. Instance extends Vue,
  5. Data,
  6. Methods,
  7. Computed,
  8. Props
  9. > = Data & Methods & Computed & Props & Instance;
  10. type ExtendedVue<
  11. Instance extends Vue,
  12. Data,
  13. Methods,
  14. Computed,
  15. Props
  16. > = VueConstructor<
  17. CombinedVueInstance<Instance, Data, Methods, Computed, Props> & Vue
  18. >;
  19. export type DraggedContext<T> = {
  20. index: number;
  21. futureIndex: number;
  22. element: T;
  23. };
  24. export type DropContext<T> = {
  25. index: number;
  26. component: Vue;
  27. element: T;
  28. };
  29. export type Rectangle = {
  30. top: number;
  31. right: number;
  32. bottom: number;
  33. left: number;
  34. width: number;
  35. height: number;
  36. };
  37. export type MoveEvent<T> = {
  38. originalEvent: DragEvent;
  39. dragged: Element;
  40. draggedContext: DraggedContext<T>;
  41. draggedRect: Rectangle;
  42. related: Element;
  43. relatedContext: DropContext<T>;
  44. relatedRect: Rectangle;
  45. from: Element;
  46. to: Element;
  47. willInsertAfter: boolean;
  48. isTrusted: boolean;
  49. };
  50. const draggable: ExtendedVue<
  51. Vue,
  52. {},
  53. {},
  54. {},
  55. {
  56. options: any;
  57. list: any[];
  58. value: any[];
  59. noTransitionOnDrag?: boolean;
  60. clone: any;
  61. tag?: string | null;
  62. move: any;
  63. componentData: any;
  64. }
  65. >;
  66. export default draggable;
  67. }