@event-calendar/interaction
Advanced tools
Comparing version 0.1.0-beta.1 to 0.1.0-beta.2
64
index.js
@@ -92,6 +92,2 @@ import { SvelteComponent, init, safe_not_equal, noop, listen, run_all, component_subscribe, globals, subscribe, is_function, set_store_value, create_component, mount_component, transition_in, transition_out, destroy_component, empty, insert, group_outros, check_outros, detach, binding_callbacks } from 'svelte/internal'; | ||
function arrayDiff(arr1, arr2) { | ||
return arr1.filter(item => !arr2.includes(item)); | ||
} | ||
function instance$1($$self, $$props, $$invalidate) { | ||
@@ -102,3 +98,3 @@ let $_viewDates; | ||
$$unsubscribe__viewResources = noop, | ||
$$subscribe__viewResources = () => ($$unsubscribe__viewResources(), $$unsubscribe__viewResources = subscribe(_viewResources, $$value => $$invalidate(34, $_viewResources = $$value)), _viewResources); | ||
$$subscribe__viewResources = () => ($$unsubscribe__viewResources(), $$unsubscribe__viewResources = subscribe(_viewResources, $$value => $$invalidate(35, $_viewResources = $$value)), _viewResources); | ||
@@ -117,16 +113,16 @@ let $_dragEvent; | ||
let { _dragEvent, _events, _viewDates, eventDragStart, eventDragStop, eventDrop, dragScroll, slotDuration, hiddenDays, _view, theme } = getContext("state"); | ||
component_subscribe($$self, _dragEvent, value => $$invalidate(35, $_dragEvent = value)); | ||
component_subscribe($$self, _events, value => $$invalidate(44, $_events = value)); | ||
component_subscribe($$self, _viewDates, value => $$invalidate(33, $_viewDates = value)); | ||
component_subscribe($$self, eventDragStart, value => $$invalidate(43, $eventDragStart = value)); | ||
component_subscribe($$self, eventDragStop, value => $$invalidate(40, $eventDragStop = value)); | ||
component_subscribe($$self, eventDrop, value => $$invalidate(42, $eventDrop = value)); | ||
component_subscribe($$self, dragScroll, value => $$invalidate(38, $dragScroll = value)); | ||
component_subscribe($$self, slotDuration, value => $$invalidate(36, $slotDuration = value)); | ||
component_subscribe($$self, hiddenDays, value => $$invalidate(37, $hiddenDays = value)); | ||
component_subscribe($$self, _view, value => $$invalidate(41, $_view = value)); | ||
component_subscribe($$self, theme, value => $$invalidate(39, $theme = value)); | ||
component_subscribe($$self, _dragEvent, value => $$invalidate(36, $_dragEvent = value)); | ||
component_subscribe($$self, _events, value => $$invalidate(45, $_events = value)); | ||
component_subscribe($$self, _viewDates, value => $$invalidate(34, $_viewDates = value)); | ||
component_subscribe($$self, eventDragStart, value => $$invalidate(44, $eventDragStart = value)); | ||
component_subscribe($$self, eventDragStop, value => $$invalidate(41, $eventDragStop = value)); | ||
component_subscribe($$self, eventDrop, value => $$invalidate(43, $eventDrop = value)); | ||
component_subscribe($$self, dragScroll, value => $$invalidate(39, $dragScroll = value)); | ||
component_subscribe($$self, slotDuration, value => $$invalidate(37, $slotDuration = value)); | ||
component_subscribe($$self, hiddenDays, value => $$invalidate(38, $hiddenDays = value)); | ||
component_subscribe($$self, _view, value => $$invalidate(42, $_view = value)); | ||
component_subscribe($$self, theme, value => $$invalidate(40, $theme = value)); | ||
let dragging = false; | ||
let event; | ||
let dayCol, dayRow, resourceCol; | ||
let dayCol, dayRow; | ||
let offset; | ||
@@ -138,2 +134,3 @@ let toX, toY; | ||
let _viewResources; | ||
let resourceCol, newResourceCol; | ||
@@ -181,11 +178,13 @@ function startTimeGrid(event, el, jsEvent, resourcesStore) { | ||
let deltaRCol = Math.floor((dayCol + deltaDCol) / $_viewDates.length); | ||
let rCol = Math.max(0, Math.min($_viewResources.length - 1, resourceCol + deltaRCol)); | ||
deltaDCol -= (rCol - resourceCol) * $_viewDates.length; | ||
newResourceCol = Math.max(0, Math.min($_viewResources.length - 1, resourceCol + deltaRCol)); | ||
deltaDCol -= (newResourceCol - resourceCol) * $_viewDates.length; | ||
if (!$_dragEvent) { | ||
createDragEvent(jsEvent); | ||
if ($_dragEvent || newResourceCol !== resourceCol) { | ||
if (!$_dragEvent) { | ||
createDragEvent(jsEvent); | ||
} | ||
set_store_value(_dragEvent, $_dragEvent.resourceIds = event.resourceIds.filter(id => id !== $_viewResources[resourceCol].id), $_dragEvent); | ||
$_dragEvent.resourceIds.push($_viewResources[newResourceCol].id); | ||
} | ||
set_store_value(_dragEvent, $_dragEvent.resourceIds = event.resourceIds.filter(id => id !== $_viewResources[resourceCol].id), $_dragEvent); | ||
$_dragEvent.resourceIds.push($_viewResources[rCol].id); | ||
} | ||
@@ -236,3 +235,3 @@ | ||
if (delta.days || delta.seconds) { | ||
if ($_dragEvent || delta.days || delta.seconds) { | ||
if (!$_dragEvent) { | ||
@@ -315,4 +314,2 @@ createDragEvent(jsEvent); | ||
let eventRef = event; | ||
let oldResource = arrayDiff(oldEvent.resourceIds, event.resourceIds); | ||
let newResource = arrayDiff(event.resourceIds, oldEvent.resourceIds); | ||
@@ -322,7 +319,7 @@ $eventDrop({ | ||
oldEvent: toEventWithLocalDates(oldEvent), | ||
oldResource: oldResource.length | ||
? findResource(oldResource[0]) | ||
oldResource: resourceCol !== newResourceCol | ||
? $_viewResources[resourceCol] | ||
: undefined, | ||
newResource: newResource.length | ||
? findResource(newResource[0]) | ||
newResource: resourceCol !== newResourceCol | ||
? $_viewResources[newResourceCol] | ||
: undefined, | ||
@@ -340,2 +337,3 @@ delta, | ||
dayEl = daysEls = bodyEl = null; | ||
resourceCol = newResourceCol = undefined; | ||
dragging = false; | ||
@@ -367,6 +365,2 @@ } | ||
function findResource(id) { | ||
return $_viewResources.find(resource => resource.id === id); | ||
} | ||
function handleSelectStart(jsEvent) { | ||
@@ -373,0 +367,0 @@ if (dragging) { |
{ | ||
"name": "@event-calendar/interaction", | ||
"version": "0.1.0-beta.1", | ||
"version": "0.1.0-beta.2", | ||
"title": "Event Calendar Interaction plugin", | ||
@@ -5,0 +5,0 @@ "description": "Full-sized event calendar with resource view", |
14755
493