2
0

EventResizeUtils.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { getRectCenter, getRectTopLeft, subtractPoints, addPoints } from '../lib/geom'
  2. import * as EventRenderUtils from '../event-render/EventRenderUtils'
  3. export function resize(rect0, rect1, debug) {
  4. var eventEl = EventRenderUtils.getSingleEl()
  5. eventEl.simulate('mouseover') // so that resize handle is revealed
  6. var resizerEl = eventEl.find('.fc-resizer')
  7. var resizerRect = resizerEl[0].getBoundingClientRect()
  8. var resizerCenter = getRectCenter(resizerRect)
  9. var vector = subtractPoints(
  10. resizerCenter,
  11. getRectTopLeft(rect0)
  12. )
  13. var point1 = addPoints(
  14. getRectTopLeft(rect1),
  15. vector
  16. )
  17. var deferred = $.Deferred()
  18. resizerEl.simulate('drag', {
  19. point: resizerCenter,
  20. end: point1,
  21. debug: debug
  22. })
  23. currentCalendar.on('eventResizeStop', function() {
  24. setTimeout(function() {
  25. deferred.resolve({ isSuccess: false }) // won't do anything if already eventResize
  26. }, 20) // will happen after eventResize's timeout
  27. })
  28. currentCalendar.on('eventResize', function(event) { // always called after eventDragStop, if success
  29. setTimeout(function() {
  30. deferred.resolve({ isSuccess: true, event: event })
  31. }, 10) // will happen first
  32. })
  33. return deferred.promise()
  34. }