MCPcopy Create free account
hub / github.com/DHTMLX/scheduler / marker

Function marker

codebase/sources/dhtmlxscheduler.es.js:10816–11112  ·  view source on GitHub ↗
(scheduler2)

Source from the content-addressed store, hash-verified

10814 })();
10815}
10816function marker(scheduler2) {
10817 scheduler2.$keyboardNavigation.marker = { clear: function() {
10818 var divs = scheduler2.$container.querySelectorAll(".dhx_focus_slot");
10819 for (var i = 0; i < divs.length; i++) {
10820 divs[i].parentNode.removeChild(divs[i]);
10821 }
10822 }, createElement: function() {
10823 var element = document.createElement("div");
10824 element.setAttribute("tabindex", -1);
10825 element.className = "dhx_focus_slot";
10826 return element;
10827 }, renderMultiple: function(start, end, method) {
10828 var divs = [];
10829 var currentStart = new Date(start);
10830 var currentEnd = new Date(Math.min(end.valueOf(), scheduler2.date.add(scheduler2.date.day_start(new Date(start)), 1, "day").valueOf()));
10831 while (currentStart.valueOf() < end.valueOf()) {
10832 divs = divs.concat(method.call(this, currentStart, new Date(Math.min(currentEnd.valueOf(), end.valueOf()))));
10833 currentStart = scheduler2.date.day_start(scheduler2.date.add(currentStart, 1, "day"));
10834 currentEnd = scheduler2.date.day_start(scheduler2.date.add(currentStart, 1, "day"));
10835 currentEnd = new Date(Math.min(currentEnd.valueOf(), end.valueOf()));
10836 }
10837 return divs;
10838 }, render: function(start, end, section) {
10839 this.clear();
10840 var divs = [];
10841 var modes = scheduler2.$keyboardNavigation.TimeSlot.prototype._modes;
10842 var view = scheduler2.$keyboardNavigation.TimeSlot.prototype._getMode();
10843 switch (view) {
10844 case modes.units:
10845 divs = this.renderVerticalMarker(start, end, section);
10846 break;
10847 case modes.timeline:
10848 divs = this.renderTimelineMarker(start, end, section);
10849 break;
10850 case modes.year:
10851 divs = divs.concat(this.renderMultiple(start, end, this.renderYearMarker));
10852 break;
10853 case modes.month:
10854 divs = this.renderMonthMarker(start, end);
10855 break;
10856 case modes.weekAgenda:
10857 divs = divs.concat(this.renderMultiple(start, end, this.renderWeekAgendaMarker));
10858 break;
10859 case modes.list:
10860 divs = this.renderAgendaMarker(start, end);
10861 break;
10862 case modes.dayColumns:
10863 divs = divs.concat(this.renderMultiple(start, end, this.renderVerticalMarker));
10864 break;
10865 }
10866 this.addWaiAriaLabel(divs, start, end, section);
10867 this.addDataAttributes(divs, start, end, section);
10868 for (var i = divs.length - 1; i >= 0; i--) {
10869 if (divs[i].offsetWidth) {
10870 return divs[i];
10871 }
10872 }
10873 return null;

Callers 1

key_navFunction · 0.70

Calls 9

set_date_partFunction · 0.70
addMethod · 0.65
day_startMethod · 0.65
date_to_strMethod · 0.65
getStateMethod · 0.65
day_dateMethod · 0.65
hour_scaleMethod · 0.65
week_startMethod · 0.65
getViewMethod · 0.65

Tested by

no test coverage detected