vue-cal
Version:
A Vue JS full calendar, no dependency, no BS. :metal:
1 lines • 5.8 kB
JavaScript
(("undefined"!==typeof self?self:this)["webpackJsonpvuecal"]=("undefined"!==typeof self?self:this)["webpackJsonpvuecal"]||[]).push([[37],{"4fad":function(e,t,n){var a=n("23e7"),i=n("6f53").entries;a({target:"Object",stat:!0},{entries:function(e){return i(e)}})},"6f53":function(e,t,n){var a=n("83ab"),i=n("df75"),l=n("fc6a"),r=n("d1e7").f,u=function(e){return function(t){var n,u=l(t),c=i(u),s=c.length,v=0,o=[];while(s>v)n=c[v++],a&&!r.call(u,n)||o.push(e?[n,u[n]]:u[n]);return o}};e.exports={entries:u(!0),values:u(!1)}},7051:function(e,t,n){"use strict";n.r(t),n.d(t,"DragAndDrop",(function(){return T}));n("7db0"),n("caad"),n("4fad"),n("ac1f"),n("2532"),n("1276");var a=n("3835"),i=n("5530");n("a4d3"),n("c975"),n("b64b");function l(e,t){if(null==e)return{};var n,a,i={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}function r(e,t){if(null==e)return{};var n,a,i=l(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var u,c=n("d4ec"),s=n("bee2"),v=n("ade3"),o=800,d=null,f=null,h={id:null,date:null},g=!1,_=!0,m={el:null,cell:null,timeout:null},p={_eid:null,fromVueCal:null,toVueCal:null},T=(u=function(){function e(t){Object(c["a"])(this,e),Object(v["a"])(this,"_vuecal",void 0),this._vuecal=t}return Object(s["a"])(e,[{key:"_getEventStart",value:function(e){var t=this._vuecal,n=t.timeStep,a=t.timeCellHeight,i=t.timeFrom,l=t.utils,r=l.cell.getPosition(e),u=r.y;return u-=1*e.dataTransfer.getData("cursor-grab-at"),Math.round(u*n/parseInt(a)+i)}},{key:"_updateEventStartEnd",value:function(e,t,n,a){var i=1*n.duration||t.endTimeMinutes-t.startTimeMinutes,l=Math.max(this._getEventStart(e),0);if(this._vuecal.snapToTime){var r=l+this._vuecal.snapToTime/2;l=r-r%this._vuecal.snapToTime}t.startTimeMinutes=l,t.start=new Date(new Date(a).setMinutes(l)),t.endTimeMinutes=Math.min(l+i,1440),t.end=new Date(new Date(a).setMinutes(t.endTimeMinutes))}},{key:"eventDragStart",value:function(e,t){if(3===e.target.nodeType)return e.preventDefault();e.dataTransfer.dropEffect="move",e.dataTransfer.setData("event",JSON.stringify(t)),e.dataTransfer.setData("cursor-grab-at",e.offsetY);var n=this._vuecal.domEvents.clickHoldAnEvent;setTimeout((function(){n._eid=null,clearTimeout(n.timeoutId),t.deleting=!1}),0),this._vuecal.domEvents.dragAnEvent._eid=t._eid,p._eid=t._eid,p.fromVueCal=this._vuecal._uid,t.dragging=!0,setTimeout((function(){return t.draggingStatic=!0}),0),g=!1,h={id:this._vuecal.view.id,date:this._vuecal.view.startDate},_=!0}},{key:"eventDragEnd",value:function(e){this._vuecal.domEvents.dragAnEvent._eid=null,p._eid=null,e.dragging=!1,e.draggingStatic=!1;var t=p.fromVueCal,n=p.toVueCal;n&&t!==n&&this._vuecal.utils.event.deleteAnEvent(e),p.fromVueCal=null,p.toVueCal=null,g&&_&&h.id&&this._vuecal.switchView(h.id,h.date,!0)}},{key:"cellDragEnter",value:function(e,t,n){var a=this,i=e.currentTarget;if(!e.currentTarget.contains(e.relatedTarget)){if(i===m.el||!i.className.includes("vuecal__cell-content"))return!1;m.el&&(m.cell.highlighted=!1),m={el:i,cell:t,timeout:clearTimeout(m.timeout)},t.highlighted=!0,["years","year","month"].includes(this._vuecal.view.id)&&(m.timeout=setTimeout((function(){return a._vuecal.switchToNarrowerView(n)}),2e3))}}},{key:"cellDragOver",value:function(e,t,n,a){e.preventDefault(),t.highlighted=!0,(a||0===a)&&(t.highlightedSplit=a)}},{key:"cellDragLeave",value:function(e,t){e.preventDefault(),e.currentTarget.contains(e.relatedTarget)||(t.highlightedSplit=!1,m.cell===t&&(clearTimeout(m.timeout),m={el:null,cell:null,timeout:null},t.highlighted=!1))}},{key:"cellDragDrop",value:function(e,t,n,a){var l=this;e.preventDefault(),clearTimeout(m.timeout),m={el:null,cell:null,timeout:null};var u,c,s=JSON.parse(e.dataTransfer.getData("event")||"{}");if(p.fromVueCal!==this._vuecal._uid){s._eid,s.start,s.end;var v=s.duration,o=r(s,["_eid","start","end","duration"]);u=this._vuecal.utils.event.createAnEvent(n,v,Object(i["a"])({},o,{split:a}))}else if(u=this._vuecal.view.events.find((function(e){return e._eid===p._eid})),u||(u=this._vuecal.mutableEvents.find((function(e){return e._eid===p._eid})),c=!!u),!u){var d=s.endTimeMinutes-s.startTimeMinutes,f=(s.start,s.end,r(s,["start","end"]));u=this._vuecal.utils.event.createAnEvent(n,d,Object(i["a"])({},f,{split:a}))}var h=u,g=h.start,T=h.split;this._updateEventStartEnd(e,u,s,n),c&&this._vuecal.addEventsToView([u]),u.dragging=!1,(a||0===a)&&(u.split=a),t.highlighted=!1,t.highlightedSplit=null,_=!1,p.toVueCal=this._vuecal._uid;var w=Object(i["a"])({event:this._vuecal.cleanupEvent(u),oldDate:g,newDate:u.start},(a||0===a)&&{oldSplit:T,newSplit:a},{originalEvent:this._vuecal.cleanupEvent(s),external:!p.fromVueCal});this._vuecal.$emit("event-drop",w),this._vuecal.$emit("event-change",{event:w.event,originalEvent:w.originalEvent}),setTimeout((function(){p._eid&&l.eventDragEnd(u)}),300)}},{key:"viewSelectorDragEnter",value:function(e,t,n){var i=this;e.currentTarget.contains(e.relatedTarget)||(n.highlightedControl=t,clearTimeout(d),d=setTimeout((function(){if(["previous","next"].includes(t))i._vuecal[t](),clearInterval(f),f=setInterval(i._vuecal[t],o);else if("today"===t){var e;clearInterval(f),i._vuecal.view.id.includes("year")&&(e=Object.entries(i._vuecal.views).find((function(e){var t=Object(a["a"])(e,2),n=t[0],i=t[1];return i.enabled&&!n.includes("year")}))[0]),i._vuecal.switchView(e||i._vuecal.view.id,new Date((new Date).setHours(0,0,0,0)),!0)}else i._vuecal.switchView(t,null,!0);g=!0}),o))}},{key:"viewSelectorDragLeave",value:function(e,t,n){e.currentTarget.contains(e.relatedTarget)||n.highlightedControl===t&&(n.highlightedControl=null,d&&(d=clearTimeout(d)),f&&(f=clearInterval(f)))}}]),e}(),u)}}]);