New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

teleperiod

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

teleperiod - npm Package Compare versions

Comparing version 0.0.2 to 0.0.7

1

bower.json
{
"name": "teleperiod",
"version": "0.0.1",
"main": "src/teleperiod.js",

@@ -5,0 +4,0 @@ "ignore": [

2

dist/teleperiod.min.js

@@ -1,1 +0,1 @@

function Selection(a){"use strict";this.teleperiod=a,this.dtstart=null,this.dtend=null;var b=this;this.overlayItems=[],this.isValid=function(){return null===b.dtend||null===b.dtstart?!1:b.dtstart.getTime()<b.dtend.getTime()},this.setDate=function(a){return null===b.dtstart||b.dtstart.getTime()>a.getTime()||b.isValid()?(b.dtstart=a,b.dtend=null,b.resetOverlay(),!1):b.dtstart.getTime()<a.getTime()?(b.dtend=a,b.teleperiod.settings.onUpdated&&b.teleperiod.settings.onUpdated(b),!0):(b.resetOverlay(),!1)},this.getDayGroups=function(){for(var a,c=new Date(b.dtstart),d=[];c<b.dtend;)a=b.teleperiod.getDayGroupByDate(c),d.push(a),c.setDate(c.getDate()+1);return d},this.cropPeriod=function(a){if(a.dtstart>=b.dtstart&&a.dtend<=b.dtend)return a;if(a.dtstart>=b.dtend||a.dtend<=b.dtstart)return null;var c={};return c.dtstart=a.dtstart>=b.dtstart?a.dtstart:b.dtstart,c.dtend=a.dtend<=b.dtend?a.dtend:b.dtend,c},this.getValidPeriods=function(){var a=new Date(b.dtstart);a.setHours(0,0,0);for(var c,d=[];a<b.dtend;){if(void 0!==b.teleperiod.workingtimesEvents[a])for(var e=b.teleperiod.workingtimesEvents[a],f=0;f<e.length;f++)c=b.cropPeriod(e[f]),c&&d.push(c);a.setDate(a.getDate()+1)}return d},this.highlightPeriods=function(){for(var a=b.getValidPeriods(),c=0;c<a.length;c++){var d=b.teleperiod.getDayGroupByDate(a[c].dtstart);b.addOverlay(d,a[c])}},this.addOverlay=function(a,c){var d=b.teleperiod.getDateY(c.dtstart),e=b.teleperiod.getDateY(c.dtend),f=a.append("rect");return f.attr("class","selection").attr("y",d).attr("height",e-d).attr("width",b.teleperiod.getDateWidth()-1).on("mouseover",function(){b.setOverlayClassed("mouseover",!0)}).on("mouseout",function(){b.setOverlayClassed("mouseover",!1)}).on("click",function(){b.dtstart=null,b.dtend=null,b.resetOverlay()}),b.overlayItems.push(f),f},this.setOverlayClassed=function(a,c){for(var d=0;d<b.overlayItems.length;d++)b.overlayItems[d].classed(a,c)},this.resetOverlay=function(){for(var a=0;a<b.overlayItems.length;a++)b.overlayItems[a].remove();b.overlayItems=[],b.teleperiod.settings.onUpdated&&b.teleperiod.settings.onUpdated(b)},this.getDuration=function(){for(var a=b.getValidPeriods(),c=0,d=0;d<a.length;d++)if(a[d].dtstart&&a[d].dtend){var e=a[d].dtstart.getTime(),f=a[d].dtend.getTime();f>e&&(c+=f-e)}return c}}function Teleperiod(a){"use strict";var b=this;this.viewport=a.object,this.settings=a,this.main=null,this.wtTooltip=null,this.workingtimesEvents={},this.events={},this.timelines=[],this.loadedIntervals=[],this.dayGroupByDate={},this.queued=[],this.selection=new Selection(this),this.lastMouseDown=null,this.viewportFrom=null,this.viewportTo=null,this.floatFrom=null,this.floatTo=null,this.getWidth=function(){return this.settings.width||b.viewport.node().parentNode.offsetWidth},this.getDateWidth=function(){return this.settings.dateWidth||30},this.getDateHeight=function(){return 250},this.getHeight=function(){return b.getHeaderHeight()+b.getGraphHeight()+b.getTimelinesHeight()},this.getTimelinesHeight=function(){return b.timelines.length*(b.getTimelineHeight()+b.getTimelineMarginTop())},this.getHeaderHeight=function(){return 50},this.getGraphHeight=function(){return 300},this.getTimelineHeight=function(){return 20},this.getTimelineMarginTop=function(){return this.settings.timelineMarginTop||10},this.getButtonWidth=function(){return this.settings.buttonWidth||30},this.getDayOff=function(){return this.settings.dayOff||[6,0]},this.getMoveDays=function(){return 7},this.getDayFirstMinute=function(){return this.settings.dayFirstMinute||420},this.getDayLastMinute=function(){return this.settings.dayLastMinute||1200},this.getSnapDistance=function(){return this.settings.snapDistance||10},this.getDateLocale=function(){return this.settings.dateLocale||"Fr-fr"},this.getFocusDate=function(){return this.settings.focusDate||new Date},this.initFloatDates=function(){var a=new Date(b.getFocusDate());a.setHours(0,0,0),b.floatFrom=new TimespanBoundary(a),b.floatTo=new TimespanBoundary(a),b.floatFrom.onUpdate(this.drawIntervalDates),b.floatTo.onUpdate(this.drawIntervalDates);var c=1+Math.round(b.getWidth()/b.getDateWidth());b.viewportFrom=0,b.viewportTo=c,b.main.attr("width",c*b.getDateWidth()),b.floatTo.add(c)},this.setSize=function(){b.viewport.attr("width",b.getWidth()).attr("height",b.getHeight())},this.createMain=function(){b.main=b.viewport.append("svg"),b.wtTooltip=b.viewport.append("svg").attr("width",b.getDateWidth()+100).attr("height",50).style("opacity",0),b.wtTooltip.append("polygon").attr("class","wtTooltip").attr("transform","translate("+b.getDateWidth()+",0)").attr("points","15,0 100,0 100,50 15,50 15,25 0,2 15,8"),b.wtTooltip.append("line").attr("x1",0).attr("y1",3).attr("x2",b.getDateWidth()-1).attr("y2",3).attr("stroke","red").attr("stroke-width","2").attr("pointer-events","none");var a=b.getDateWidth()+23;b.wtTooltip.append("text").attr("y",20).attr("x",a).attr("class","wtTooltipDate"),b.wtTooltip.append("text").attr("y",40).attr("x",a).attr("class","wtTooltipHour"),b.leftButton(),b.rightButton(),b.main.attr("class","main").attr("x",0).attr("width",0).attr("height",b.getHeaderHeight()+b.getGraphHeight()+b.getTimelinesHeight()),b.initFloatDates();for(var c=0;c<b.timelines.length;c++)b.viewport.append("text").attr("class","timeline-name").attr("x",20).attr("y",b.getGraphHeight()+5+b.getTimelineHeight()+c*(b.getTimelineMarginTop()+b.getTimelineHeight())).text(b.timelines[c].name);b.setupDragBeavior()},this.setupDragBeavior=function(){var a=null;b.main.on("mousedown",function(){a=new MouseDrag(b)}),b.main.call(d3.behavior.drag().on("drag",function(){a&&a.dragmove()}))},this.draw=function(){b.setSize(),b.createMain()},this.leftButton=function(){var a=b.viewport.append("svg").attr("width",b.getButtonWidth()).attr("height",b.getHeaderHeight()).attr("class","button").on("mousedown",function(){d3.event.preventDefault()}).on("click",function(){b.queue(b.backward)});a.append("rect").attr("class","buttonbg").attr("width",b.getButtonWidth()).attr("height",b.getHeaderHeight()),a.append("polygon").attr("class","buttonarrow").attr("points","25,5 25,45 5,25")},this.rightButton=function(){var a=b.viewport.append("svg").attr("width",b.getButtonWidth()).attr("height",b.getHeaderHeight()).attr("class","button").attr("x",b.getWidth()-b.getButtonWidth()).on("mousedown",function(){d3.event.preventDefault()}).on("click",function(){b.queue(b.forward)});a.append("rect").attr("class","buttonbg").attr("width",b.getButtonWidth()).attr("height",b.getHeaderHeight()),a.append("polygon").attr("class","buttonarrow").attr("points","5,5 25,25 5,45")},this.drawIntervalDates=function(a,c){for(var d=new Date(a);c>d;){var e=new Date(d),f=b.drawDate(d);d.setDate(d.getDate()+1),e.setHours(0,0,0),b.dayGroupByDate[e]=f}b.load(a,c)},this.getDateX=function(a){var c=a.getTime()/1e3,d=b.floatFrom.currentDate.getTime()/1e3,e=Math.ceil(c/86400),f=Math.ceil(d/86400),g=e-f;return g*b.getDateWidth()},this.getDateY=function(a){var c=60*a.getHours()+a.getMinutes();if(c<b.getDayFirstMinute())return 0;if(c>b.getDayLastMinute())return b.getDayLastMinute();var d=c-b.getDayFirstMinute(),e=b.getDayLastMinute()-b.getDayFirstMinute();return Math.round(d*b.getDateHeight()/e)},this.getDateFromX=function(a){var c=Math.ceil(a/b.getDateWidth()),d=new Date(b.floatFrom.currentDate);return d.setDate(d.getDate()+c),d.setHours(0,0,0),d},this.getMinutesFromY=function(a){var c=b.getDayLastMinute()-b.getDayFirstMinute(),d=b.getDateHeight()/c,e=b.getDayFirstMinute()+Math.round(a/d);return e},this.drawDate=function(a){var c=b.getDateX(a),d=b.main.append("g").attr("class","day").attr("transform","translate("+c+","+b.getHeaderHeight()+")");d.append("rect").attr("width",b.getDateWidth()-1).attr("height",b.getDateHeight()),-1!==b.getDayOff().indexOf(a.getDay())&&d.attr("class","day dayoff"),d.append("text").attr("class","weekday").attr("x",5).attr("y",-10).attr("transform","rotate(90)").text(a.toLocaleDateString(b.getDateLocale(),{weekday:"long"})),d.append("text").attr("class","date").attr("x",b.getDateWidth()/2).attr("y",-10).text(a.getDate()),1===a.getDate()&&d.append("text").attr("class","month").attr("x",5).attr("y",-35).text(a.toLocaleDateString(b.getDateLocale(),{month:"long",year:"numeric"}));for(var e=0;e<b.timelines.length;e++)b.timelines[e].drawDate(d,a,e);return d},this.addTimeLine=function(a){a.teleperiod=b,b.timelines.push(a)},this.load=function(a,c){var d={from:a,to:c};b.loadedIntervals.push(d),b.loadWorkingTimes(d),b.loadEvents(d);for(var e=0;e<b.timelines.length;e++)b.timelines[e].load(a,c)},this.loadWorkingTimes=function(a){var c=[];b.settings.workingtimes(a).then(function(a){for(var d,e=0;e<a.length;e++)d=new Date(a[e].dtstart),d.setHours(0,0,0),void 0===b.workingtimesEvents[d]&&(b.workingtimesEvents[d]=[]),b.workingtimesEvents[d].push(a[e]),c.push(a[e]);b.addWorkingtimes(c)})},this.loadEvents=function(a){var c,d=[];b.settings.events(a).then(function(a){for(var e=0;e<a.length;e++)c=new Date(a[e].dtstart),c.setHours(0,0,0),void 0===b.events[c]&&(b.events[c]=[]),b.events[c].push(a[e]),d.push(a[e]);b.addRegularEvents(d)})},this.getDayGroupByDate=function(a){var c=new Date(a);return c.setHours(0,0,0),void 0===b.dayGroupByDate[c]?null:b.dayGroupByDate[c]},this.addWorkingtimes=function(a){b.addEvents(a,"workingtime",{mouseover:function(){b.wtTooltip.transition().duration(200).style("opacity",1)},mouseout:function(){b.wtTooltip.transition().duration(500).style("opacity",0)},mousemove:b.updateWtTooltip,click:function(){b.selection.setDate(b.getPointerDate(this)),b.selection.isValid()&&b.selection.highlightPeriods()}})},this.addRegularEvents=function(a){b.addEvents(a,"event",{})},this.getDayBegin=function(a){var c=new Date(a);return c.setHours(0,b.getDayFirstMinute(),0),c},this.getDayEnd=function(a){var c=new Date(a);return c.setHours(0,b.getDayLastMinute(),0),c},this.addEvents=function(a,c,d){for(var e=0;e<a.length;e++)b.drawEvent(a[e],c,d)},this.drawEvent=function(a,c,d){var e,f,g,h,i,j;for(h=new Date(a.dtstart);h.getTime()<a.dtend.getTime();){e=b.getDateX(h),i=b.getDayBegin(h),j=b.getDayEnd(h),f=b.getDateY(a.dtstart>i?a.dtstart:i),g=b.getDateY(a.dtend<j?a.dtend:j);var k=b.getDayGroupByDate(h);k.append("rect").attr("class",c).attr("y",f).attr("height",g-f).attr("width",b.getDateWidth()-1).on("mouseover",d.mouseover).on("mouseout",d.mouseout).on("mousemove",d.mousemove).on("click",d.click),a.summary&&k.append("text").attr("class","summary").attr("x",f+5).attr("y",-10).attr("transform","rotate(90)").text(a.summary),h.setDate(h.getDate()+1)}},this.getPointerDate=function(a){var c=d3.mouse(a),d=c[1],e=d3.select(a.parentNode),f=parseInt(e.attr("transform").match(/translate\((\d+),\d+\)/)[1],10),g=b.getDateFromX(f),h=d3.select(a),i=parseInt(h.attr("y"),10),j=i+parseInt(h.attr("height"),10),k=b.getSnapDistance();k>d-i&&(d=i),k>j-d&&(d=j);var l=b.getMinutesFromY(d),m=Math.floor(l/60),n=l%60;return n=10*Math.round(n/10),g.setHours(m,n,0),g},this.updateWtTooltip=function(){var a=b.getPointerDate(this),c=d3.mouse(this),d=c[0],e=c[1],f=d3.select(this.parentNode);d=parseInt(f.attr("transform").match(/translate\((\d+),\d+\)/)[1],10),d+=parseInt(b.main.attr("x"),10),e=b.getDateY(a),b.wtTooltip.attr("x",d),b.wtTooltip.attr("y",b.getHeaderHeight()+e-4),b.wtTooltip.select("text.wtTooltipDate").text(a.toLocaleDateString(b.getDateLocale())),b.wtTooltip.select("text.wtTooltipHour").text(a.toLocaleTimeString(b.getDateLocale(),{hour:"2-digit",minute:"2-digit"}))},this.slideMain=function(a){return b.main.transition().attr("x",function(){return parseInt(this.getAttribute("x"),10)+a*b.getDateWidth()})},this.queue=function(a){b.queued.push(a),1<b.queued.length||b.processQueued()},this.processQueued=function(){var a=b.queued[0],c=a(),d=0;c.each("start",function(){d++}).each("end",function(){if(0===--d){if(b.queued.shift(),0>=b.queued.length)return!1;b.processQueued()}})},this.createSpaceOnLeft=function(a){var c=parseInt(b.main.attr("width"),10);return b.main.attr("width",c+a*b.getDateWidth()),b.main.attr("x",function(){return parseInt(this.getAttribute("x"),10)-a*b.getDateWidth()}),b.main.selectAll(".day").attr("transform",function(){var c=this.getAttribute("transform").match(/\((\d+),(\d+)\)/);if(!c)return null;var d=parseInt(c[1],10)+a*b.getDateWidth();return"translate("+d+","+c[2]+")"})},this.backwardGrow=function(){if(b.viewportFrom-=b.getMoveDays(),b.viewportTo-=b.getMoveDays(),b.viewportFrom<b.floatFrom.dayPosition){{var a=b.viewportFrom-b.floatFrom.dayPosition;b.createSpaceOnLeft(-1*a)}return b.floatFrom.add(a),!0}return!1},this.forwardGrow=function(){if(b.viewportFrom+=b.getMoveDays(),b.viewportTo+=b.getMoveDays(),b.viewportTo>b.floatTo.dayPosition){var a=b.viewportTo-b.floatTo.dayPosition,c=Math.abs(parseInt(b.main.attr("x"),10))+b.getWidth(),d=Math.abs(a*b.getDateWidth());return b.main.attr("width",c+d),b.floatTo.add(a),!0}return!1},this.backward=function(){return b.backwardGrow(),b.slideMain(b.getMoveDays())},this.forward=function(){return b.forwardGrow(),b.slideMain(-1*b.getMoveDays())},this.setSelection=function(a,c){b.selection.resetOverlay(),b.selection.setDate(a),b.selection.setDate(c),b.selection.isValid()&&b.selection.highlightPeriods()}}function Timeline(a,b){"use strict";this.name=a,this.datasource=b,this.loadedEvents=[],this.dayIndex={},this.teleperiod=null,this.color={};var c=this;this.load=function(a,b){function d(b){var c;return b.dtstart<a&&(c=new Date(a)),c=new Date(b.dtstart),c.setHours(0,0,0),c}{var e,f,g,h={from:a,to:b};c.datasource(h).then(function(a){for(var h=0;h<a.length;h++)for(e=a[h],c.loadedEvents.push(e),g=d(e);g.getTime()<e.dtend.getTime()&&g.getTime()<b;)f=c.teleperiod.getDayBegin(g),void 0!==c.dayIndex[f]&&c.addEventOnDay(c.dayIndex[f],e),g.setDate(g.getDate()+1)})}},this.drawDate=function(a,b,d){var e=c.teleperiod,f=e.getDateHeight()+e.getTimelineMarginTop(),g=d*(e.getTimelineHeight()+e.getTimelineMarginTop()),h=a.append("rect").attr("class","timelineday").attr("y",f+g).attr("width",e.getDateWidth()).attr("height",e.getTimelineHeight()).attr("style","fill:"+c.getBackgroundColor()+";");c.dayIndex[c.teleperiod.getDayBegin(b)]=h},this.addEventOnDay=function(a,b){var d,e="";d=a.select("title"),d.node()?e=d.text():d=a.append("title"),a.node().__events||(a.node().__events=[]);var f=a.node().__events;f.push(b),e.length>0?e+=", "+b.summary:e=b.summary,d.text(e),a.attr("style","fill:"+c.getColor(f.length)+";")},this.setColor=function(a,b){c.color[a]=b},this.getBackgroundColor=function(){return c.color[0]?c.color[0]:"rgba(32, 47, 72, 0.78)"},this.getColor=function(a){if(c.color[a])return c.color[a];var b=[];for(var d in c.color)if(c.color.hasOwnProperty(d)){if(d>a)continue;b.push(d)}return 0===b.length?"rgba(10, 180, 10, 1)":(b.sort(),b.pop())}}function TimespanBoundary(a){"use strict";this.initDate=a,this.currentDate=a,this.dayPosition=0,this.onUpdateCallback=null;var b=this;this.add=function(a){b.dayPosition+=a;var c=new Date(b.currentDate),d=new Date(b.currentDate);if(d.setDate(b.currentDate.getDate()+a),b.currentDate=d,null!==b.onUpdateCallback){var e=new Date(d);e.getTime()>c.getTime()?b.onUpdateCallback(c,e):b.onUpdateCallback(e,c)}},this.onUpdate=function(a){b.onUpdateCallback=a}}function MouseDrag(a){"use strict";var b=d3.mouse(a.viewport.node())[0],c=parseInt(a.main.attr("x"),10),d=parseInt(a.main.attr("width"),10),e=parseInt(a.viewport.attr("width"),10),f=a.viewport.attr("x");f=null===f?0:parseInt(f,10);var g,h,i,j=a.getMoveDays()*a.getDateWidth(),k=this;this.getLeftDistance=function(){return f-h},this.getRightDistance=function(){var b=f+e,c=parseInt(a.main.attr("width"),10);return h+c-b},this.dragmove=function(){g=d3.mouse(a.viewport.node())[0],i=g-b,h=c+i,k.getLeftDistance()<0&&a.backwardGrow()&&(c-=j),k.getRightDistance()<0&&a.forwardGrow()&&(d+=j),a.main.attr("x",c+i)}}
function Selection(a){"use strict";this.teleperiod=a,this.dtstart=null,this.dtend=null;var b=this;this.overlayItems=[],this.isValid=function(){return null===b.dtend||null===b.dtstart?!1:b.dtstart.getTime()<b.dtend.getTime()},this.setDate=function(a){return null===b.dtstart||b.dtstart.getTime()>a.getTime()||b.isValid()?(b.dtstart=a,b.dtend=null,b.resetOverlay(),!1):b.dtstart.getTime()<a.getTime()?(b.dtend=a,b.isValid()&&b.highlightPeriods(),b.teleperiod.settings.onUpdated&&b.teleperiod.settings.onUpdated(b),!0):(b.resetOverlay(),!1)},this.getDayGroups=function(){for(var a,c=new Date(b.dtstart),d=[];c<b.dtend;)a=b.teleperiod.getDayGroupByDate(c),d.push(a),c.setDate(c.getDate()+1);return d},this.cropPeriod=function(a){if(a.dtstart>=b.dtstart&&a.dtend<=b.dtend)return a;if(a.dtstart>=b.dtend||a.dtend<=b.dtstart)return null;var c={};return c.dtstart=a.dtstart>=b.dtstart?a.dtstart:b.dtstart,c.dtend=a.dtend<=b.dtend?a.dtend:b.dtend,c},this.getValidPeriods=function(){var a=new Date(b.dtstart);a.setHours(0,0,0);for(var c,d=[];a<b.dtend;){if(void 0!==b.teleperiod.workingtimesEvents[a])for(var e=b.teleperiod.workingtimesEvents[a],f=0;f<e.length;f++)c=b.cropPeriod(e[f]),c&&d.push(c);a.setDate(a.getDate()+1)}return d},this.highlightPeriods=function(){for(var a=b.getValidPeriods(),c=0;c<a.length;c++){var d=b.teleperiod.getDayGroupByDate(a[c].dtstart);b.addOverlay(d,a[c])}},this.addOverlay=function(a,c){var d=b.teleperiod.getDateY(c.dtstart),e=b.teleperiod.getDateY(c.dtend),f=a.append("rect");return f.attr("class","selection").attr("y",d).attr("height",e-d).attr("width",b.teleperiod.getDateWidth()-1).on("mouseover",function(){b.setOverlayClassed("mouseover",!0)}).on("mouseout",function(){b.setOverlayClassed("mouseover",!1)}).on("click",function(){b.dtstart=null,b.dtend=null,b.resetOverlay()}),b.overlayItems.push(f),f},this.removeOverlay=function(){for(var a=0;a<b.overlayItems.length;a++)b.overlayItems[a].remove();b.overlayItems=[]},this.setOverlayClassed=function(a,c){for(var d=0;d<b.overlayItems.length;d++)b.overlayItems[d].classed(a,c)},this.resetOverlay=function(){b.removeOverlay(),b.teleperiod.settings.onUpdated&&b.teleperiod.settings.onUpdated(b)},this.getDuration=function(){for(var a=b.getValidPeriods(),c=0,d=0;d<a.length;d++)if(a[d].dtstart&&a[d].dtend){var e=a[d].dtstart.getTime(),f=a[d].dtend.getTime();f>e&&(c+=f-e)}return c}}function Teleperiod(a){"use strict";var b=this;this.viewport=a.object,this.settings=a,this.main=null,this.wtTooltip=null,this.workingtimesEvents={},this.events={},this.timelines=[],this.loadedIntervals=[],this.dayGroupByDate={},this.queued=[],this.selection=new Selection(this),this.lastMouseDown=null,this.viewportFrom=null,this.viewportTo=null,this.floatFrom=null,this.floatTo=null,this.getWidth=function(){return this.settings.width||b.viewport.node().parentNode.offsetWidth},this.getDateWidth=function(){return this.settings.dateWidth||30},this.getDateHeight=function(){return 250},this.getHeight=function(){return b.getHeaderHeight()+b.getGraphHeight()+b.getTimelinesHeight()},this.getTimelinesHeight=function(){return b.timelines.length*(b.getTimelineHeight()+b.getTimelineMarginTop())},this.getHeaderHeight=function(){return 50},this.getGraphHeight=function(){return 300},this.getTimelineHeight=function(){return 20},this.getTimelineMarginTop=function(){return this.settings.timelineMarginTop||10},this.getButtonWidth=function(){return this.settings.buttonWidth||30},this.getDayOff=function(){return this.settings.dayOff||[6,0]},this.getMoveDays=function(){return 7},this.getDayFirstMinute=function(){return this.settings.dayFirstMinute||420},this.getDayLastMinute=function(){return this.settings.dayLastMinute||1200},this.getSnapDistance=function(){return this.settings.snapDistance||10},this.getDateLocale=function(){return this.settings.dateLocale||"Fr-fr"},this.getFocusDate=function(){return this.settings.focusDate||new Date},this.initFloatDates=function(){var a=new Date(b.getFocusDate());a.setHours(0,0,0),b.floatFrom=new TimespanBoundary(a),b.floatTo=new TimespanBoundary(a),b.floatFrom.onUpdate(this.drawIntervalDates),b.floatTo.onUpdate(this.drawIntervalDates);var c=1+Math.round(b.getWidth()/b.getDateWidth());b.viewportFrom=0,b.viewportTo=c,b.main.attr("width",c*b.getDateWidth()),b.floatTo.add(c)},this.setSize=function(){b.viewport.attr("width",b.getWidth()).attr("height",b.getHeight())},this.createMain=function(){b.main=b.viewport.append("svg"),b.wtTooltip=b.viewport.append("svg").attr("width",b.getDateWidth()+100).attr("height",50).style("opacity",0),b.wtTooltip.append("polygon").attr("class","wtTooltip").attr("transform","translate("+b.getDateWidth()+",0)").attr("points","15,0 100,0 100,50 15,50 15,25 0,2 15,8"),b.wtTooltip.append("line").attr("x1",0).attr("y1",3).attr("x2",b.getDateWidth()-1).attr("y2",3).attr("stroke","red").attr("stroke-width","2").attr("pointer-events","none");var a=b.getDateWidth()+23;b.wtTooltip.append("text").attr("y",20).attr("x",a).attr("class","wtTooltipDate"),b.wtTooltip.append("text").attr("y",40).attr("x",a).attr("class","wtTooltipHour"),b.leftButton(),b.rightButton(),b.main.attr("class","main").attr("x",0).attr("width",0).attr("height",b.getHeaderHeight()+b.getGraphHeight()+b.getTimelinesHeight()),b.initFloatDates();for(var c=0;c<b.timelines.length;c++)b.viewport.append("text").attr("class","timeline-name").attr("x",20).attr("y",b.getGraphHeight()+5+b.getTimelineHeight()+c*(b.getTimelineMarginTop()+b.getTimelineHeight())).text(b.timelines[c].name);b.setupDragBeavior()},this.setupDragBeavior=function(){var a=null;b.main.on("mousedown",function(){a=new MouseDrag(b)}),b.main.call(d3.behavior.drag().on("drag",function(){a&&a.dragmove()}))},this.draw=function(){b.viewport.classed("teleperiod",!0),b.setSize(),b.createMain()},this.leftButton=function(){var a=b.viewport.append("svg").attr("width",b.getButtonWidth()).attr("height",b.getHeaderHeight()).attr("class","button").on("mousedown",function(){d3.event.preventDefault()}).on("click",function(){b.queue(b.backward)});a.append("rect").attr("class","buttonbg").attr("width",b.getButtonWidth()).attr("height",b.getHeaderHeight()),a.append("polygon").attr("class","buttonarrow").attr("points","25,5 25,45 5,25")},this.rightButton=function(){var a=b.viewport.append("svg").attr("width",b.getButtonWidth()).attr("height",b.getHeaderHeight()).attr("class","button").attr("x",b.getWidth()-b.getButtonWidth()).on("mousedown",function(){d3.event.preventDefault()}).on("click",function(){b.queue(b.forward)});a.append("rect").attr("class","buttonbg").attr("width",b.getButtonWidth()).attr("height",b.getHeaderHeight()),a.append("polygon").attr("class","buttonarrow").attr("points","5,5 25,25 5,45")},this.drawIntervalDates=function(a,c){for(var d=new Date(a);c>d;){var e=new Date(d),f=b.drawDate(d);d.setDate(d.getDate()+1),e.setHours(0,0,0),b.dayGroupByDate[e]=f}b.load(a,c)},this.getDateX=function(a){var c=a.getTime()/1e3,d=b.floatFrom.currentDate.getTime()/1e3,e=Math.ceil(c/86400),f=Math.ceil(d/86400),g=e-f;return g*b.getDateWidth()},this.getDateY=function(a){var c=60*a.getHours()+a.getMinutes();if(c<b.getDayFirstMinute())return 0;if(c>b.getDayLastMinute())return b.getDayLastMinute();var d=c-b.getDayFirstMinute(),e=b.getDayLastMinute()-b.getDayFirstMinute();return Math.round(d*b.getDateHeight()/e)},this.getDateFromX=function(a){var c=Math.ceil(a/b.getDateWidth()),d=new Date(b.floatFrom.currentDate);return d.setDate(d.getDate()+c),d.setHours(0,0,0),d},this.getMinutesFromY=function(a){var c=b.getDayLastMinute()-b.getDayFirstMinute(),d=b.getDateHeight()/c,e=b.getDayFirstMinute()+Math.round(a/d);return e},this.drawDate=function(a){var c=b.getDateX(a),d=b.main.append("g").attr("class","day").attr("transform","translate("+c+","+b.getHeaderHeight()+")");d.append("rect").attr("width",b.getDateWidth()-1).attr("height",b.getDateHeight()),-1!==b.getDayOff().indexOf(a.getDay())&&d.attr("class","day dayoff"),d.append("text").attr("class","weekday").attr("x",5).attr("y",-10).attr("transform","rotate(90)").text(a.toLocaleDateString(b.getDateLocale(),{weekday:"long"})),d.append("text").attr("class","date").attr("x",b.getDateWidth()/2).attr("y",-10).text(a.getDate()),1===a.getDate()&&d.append("text").attr("class","month").attr("x",5).attr("y",-35).text(a.toLocaleDateString(b.getDateLocale(),{month:"long",year:"numeric"}));for(var e=0;e<b.timelines.length;e++)b.timelines[e].drawDate(d,a,e);return d},this.addTimeLine=function(a){a.teleperiod=b,b.timelines.push(a)},this.load=function(a,c){var d={from:a,to:c};b.loadedIntervals.push(d),b.loadWorkingTimes(d),b.loadEvents(d);for(var e=0;e<b.timelines.length;e++)b.timelines[e].load(a,c)},this.loadWorkingTimes=function(a){var c=[];b.settings.workingtimes(a).then(function(a){for(var d,e=0;e<a.length;e++)d=new Date(a[e].dtstart),d.setHours(0,0,0),void 0===b.workingtimesEvents[d]&&(b.workingtimesEvents[d]=[]),b.workingtimesEvents[d].push(a[e]),c.push(a[e]);b.addWorkingtimes(c)})},this.loadEvents=function(a){var c,d=[];b.settings.events(a).then(function(a){for(var e=0;e<a.length;e++)c=new Date(a[e].dtstart),c.setHours(0,0,0),void 0===b.events[c]&&(b.events[c]=[]),b.events[c].push(a[e]),d.push(a[e]);b.addRegularEvents(d)})},this.getDayGroupByDate=function(a){var c=new Date(a);return c.setHours(0,0,0),void 0===b.dayGroupByDate[c]?null:b.dayGroupByDate[c]},this.addWorkingtimes=function(a){b.addEvents(a,"workingtime",{mouseover:function(){b.wtTooltip.transition().duration(200).style("opacity",1)},mouseout:function(){b.wtTooltip.transition().duration(500).style("opacity",0)},mousemove:b.updateWtTooltip,click:function(){b.selection.setDate(b.getPointerDate(this))}})},this.addRegularEvents=function(a){b.addEvents(a,"event",{})},this.getDayBegin=function(a){var c=new Date(a);return c.setHours(0,b.getDayFirstMinute(),0),c},this.getDayEnd=function(a){var c=new Date(a);return c.setHours(0,b.getDayLastMinute(),0),c},this.addEvents=function(a,c,d){for(var e=0;e<a.length;e++)b.drawEvent(a[e],c,d)},this.drawEvent=function(a,c,d){var e,f,g,h,i,j;for(h=new Date(a.dtstart);h.getTime()<a.dtend.getTime();){e=b.getDateX(h),i=b.getDayBegin(h),j=b.getDayEnd(h),f=b.getDateY(a.dtstart>i?a.dtstart:i),g=b.getDateY(a.dtend<j?a.dtend:j);var k=b.getDayGroupByDate(h);k.append("rect").attr("class",c).attr("y",f).attr("height",g-f).attr("width",b.getDateWidth()-1).on("mouseover",d.mouseover).on("mouseout",d.mouseout).on("mousemove",d.mousemove).on("click",d.click),a.summary&&k.append("text").attr("class",c+"-summary").attr("x",f+5).attr("y",-10).attr("transform","rotate(90)").text(a.summary),h.setDate(h.getDate()+1)}},this.getPointerDate=function(a){var c=d3.mouse(a),d=c[1],e=d3.select(a.parentNode),f=parseInt(e.attr("transform").match(/translate\((\d+),\d+\)/)[1],10),g=b.getDateFromX(f),h=d3.select(a),i=parseInt(h.attr("y"),10),j=i+parseInt(h.attr("height"),10),k=b.getSnapDistance();k>d-i&&(d=i),k>j-d&&(d=j);var l=b.getMinutesFromY(d),m=Math.floor(l/60),n=l%60;return n=10*Math.round(n/10),g.setHours(m,n,0),g},this.updateWtTooltip=function(){var a=b.getPointerDate(this),c=d3.mouse(this),d=c[0],e=c[1],f=d3.select(this.parentNode);d=parseInt(f.attr("transform").match(/translate\((\d+),\d+\)/)[1],10),d+=parseInt(b.main.attr("x"),10),e=b.getDateY(a),b.wtTooltip.attr("x",d),b.wtTooltip.attr("y",b.getHeaderHeight()+e-4),b.wtTooltip.select("text.wtTooltipDate").text(a.toLocaleDateString(b.getDateLocale())),b.wtTooltip.select("text.wtTooltipHour").text(a.toLocaleTimeString(b.getDateLocale(),{hour:"2-digit",minute:"2-digit"}))},this.slideMain=function(a){return b.main.transition().attr("x",function(){return parseInt(this.getAttribute("x"),10)+a*b.getDateWidth()})},this.queue=function(a){b.queued.push(a),1<b.queued.length||b.processQueued()},this.processQueued=function(){var a=b.queued[0],c=a(),d=0;c.each("start",function(){d++}).each("end",function(){if(0===--d){if(b.queued.shift(),0>=b.queued.length)return!1;b.processQueued()}})},this.createSpaceOnLeft=function(a){var c=parseInt(b.main.attr("width"),10);return b.main.attr("width",c+a*b.getDateWidth()),b.main.attr("x",function(){return parseInt(this.getAttribute("x"),10)-a*b.getDateWidth()}),b.main.selectAll(".day").attr("transform",function(){var c=this.getAttribute("transform").match(/\((\d+),(\d+)\)/);if(!c)return null;var d=parseInt(c[1],10)+a*b.getDateWidth();return"translate("+d+","+c[2]+")"})},this.backwardGrow=function(){if(b.viewportFrom-=b.getMoveDays(),b.viewportTo-=b.getMoveDays(),b.viewportFrom<b.floatFrom.dayPosition){{var a=b.viewportFrom-b.floatFrom.dayPosition;b.createSpaceOnLeft(-1*a)}return b.floatFrom.add(a),!0}return!1},this.forwardGrow=function(){if(b.viewportFrom+=b.getMoveDays(),b.viewportTo+=b.getMoveDays(),b.viewportTo>b.floatTo.dayPosition){var a=b.viewportTo-b.floatTo.dayPosition,c=Math.abs(parseInt(b.main.attr("x"),10))+b.getWidth(),d=Math.abs(a*b.getDateWidth());return b.main.attr("width",c+d),b.floatTo.add(a),!0}return!1},this.backward=function(){return b.backwardGrow(),b.slideMain(b.getMoveDays())},this.forward=function(){return b.forwardGrow(),b.slideMain(-1*b.getMoveDays())},this.setSelection=function(a,c){b.selection.resetOverlay(),b.selection.setDate(a),b.selection.setDate(c),b.selection.isValid()&&b.selection.highlightPeriods()}}function Timeline(a,b){"use strict";this.name=a,this.datasource=b,this.loadedEvents=[],this.dayIndex={},this.teleperiod=null,this.color={};var c=this;this.load=function(a,b){function d(b){var c;return b.dtstart<a&&(c=new Date(a)),c=new Date(b.dtstart),c.setHours(0,0,0),c}{var e,f,g,h={from:a,to:b};c.datasource(h).then(function(a){for(var h=0;h<a.length;h++)for(e=a[h],c.loadedEvents.push(e),g=d(e);g.getTime()<e.dtend.getTime()&&g.getTime()<b;)f=c.teleperiod.getDayBegin(g),void 0!==c.dayIndex[f]&&c.addEventOnDay(c.dayIndex[f],e),g.setDate(g.getDate()+1)})}},this.drawDate=function(a,b,d){var e=c.teleperiod,f=e.getDateHeight()+e.getTimelineMarginTop(),g=d*(e.getTimelineHeight()+e.getTimelineMarginTop()),h=a.append("rect").attr("class","timelineday").attr("y",f+g).attr("width",e.getDateWidth()).attr("height",e.getTimelineHeight()).attr("style","fill:"+c.getBackgroundColor()+";");c.dayIndex[c.teleperiod.getDayBegin(b)]=h},this.addEventOnDay=function(a,b){var d,e="";d=a.select("title"),d.node()?e=d.text():d=a.append("title"),a.node().__events||(a.node().__events=[]);var f=a.node().__events;f.push(b),e.length>0?e+=", "+b.summary:e=b.summary,d.text(e),a.attr("style","fill:"+c.getColor(f.length)+";")},this.setColor=function(a,b){c.color[a]=b},this.getBackgroundColor=function(){return c.color[0]?c.color[0]:"rgba(32, 47, 72, 0.78)"},this.getColor=function(a){if(c.color[a])return c.color[a];var b=[];for(var d in c.color)if(c.color.hasOwnProperty(d)){if(d>a)continue;b.push(d)}return 0===b.length?"rgba(10, 180, 10, 1)":(b.sort(),b.pop())}}function TimespanBoundary(a){"use strict";this.initDate=a,this.currentDate=a,this.dayPosition=0,this.onUpdateCallback=null;var b=this;this.add=function(a){b.dayPosition+=a;var c=new Date(b.currentDate),d=new Date(b.currentDate);if(d.setDate(b.currentDate.getDate()+a),b.currentDate=d,null!==b.onUpdateCallback){var e=new Date(d);e.getTime()>c.getTime()?b.onUpdateCallback(c,e):b.onUpdateCallback(e,c)}},this.onUpdate=function(a){b.onUpdateCallback=a}}function MouseDrag(a){"use strict";var b=d3.mouse(a.viewport.node())[0],c=parseInt(a.main.attr("x"),10),d=parseInt(a.main.attr("width"),10),e=parseInt(a.viewport.attr("width"),10),f=a.viewport.attr("x");f=null===f?0:parseInt(f,10);var g,h,i,j=a.getMoveDays()*a.getDateWidth(),k=this;this.getLeftDistance=function(){return f-h},this.getRightDistance=function(){var b=f+e,c=parseInt(a.main.attr("width"),10);return h+c-b},this.dragmove=function(){g=d3.mouse(a.viewport.node())[0],i=g-b,h=c+i,k.getLeftDistance()<0&&a.backwardGrow()&&(c-=j),k.getRightDistance()<0&&a.forwardGrow()&&(d+=j),a.main.attr("x",c+i)}}

@@ -24,2 +24,3 @@ function loadPreview()

am.summary = 'work schedule';
am.dtstart = new Date(loop);

@@ -31,2 +32,3 @@ am.dtstart.setHours(9, 0, 0);

pm.summary = 'work schedule';
pm.dtstart = new Date(loop);

@@ -33,0 +35,0 @@ pm.dtstart.setHours(13, 0, 0);

{
"name": "teleperiod",
"description": "A period picker widget to select over working schedule",
"version": "0.0.2",
"version": "0.0.7",
"keywords": [

@@ -6,0 +6,0 @@ "front-end",

@@ -65,2 +65,6 @@ /**

if (selection.isValid()) {
selection.highlightPeriods();
}
if (selection.teleperiod.settings.onUpdated) {

@@ -208,3 +212,22 @@ selection.teleperiod.settings.onUpdated(selection);

/**
* Remove all overlay of the selection
*
*/
this.removeOverlay = function()
{
for (var i=0; i<selection.overlayItems.length; i++) {
selection.overlayItems[i].remove();
}
selection.overlayItems = [];
};
/**
* Apply or remove a classname on all averlay items
* @param string classname
* @param bool status
*/
this.setOverlayClassed = function(classname, status)

@@ -218,10 +241,10 @@ {

/**
* Remove existing overlay
* and fire the callback
*/
this.resetOverlay = function()
{
for (var i=0; i<selection.overlayItems.length; i++) {
selection.overlayItems[i].remove();
}
selection.removeOverlay();
selection.overlayItems = [];
if (selection.teleperiod.settings.onUpdated) {

@@ -228,0 +251,0 @@ selection.teleperiod.settings.onUpdated(selection);

@@ -317,2 +317,3 @@ /**

{
telep.viewport.classed('teleperiod', true);
telep.setSize();

@@ -667,5 +668,2 @@ telep.createMain();

telep.selection.setDate(telep.getPointerDate(this));
if (telep.selection.isValid()) {
telep.selection.highlightPeriods();
}
}

@@ -767,3 +765,3 @@ });

dayGroup.append('text')
.attr('class', 'summary')
.attr('class', className+'-summary')
.attr('x', yStart + 5)

@@ -770,0 +768,0 @@ .attr('y', -10)

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc