@@ -64,7 +64,6 @@ var GanttChart = function (pDiv, pFormat) {
6464 5 : true ,
6565 6 : true ,
6666 } ;
67- this . vFirstDayOfWeek = 1 ; // 0=Sunday, 1=Monday (default), …, 6=Saturday
6867 this . vEventClickCollapse = null ;
6968 this . vEventClickRow = null ;
7069 this . vEvents = {
@@ -344,17 +343,9 @@ var GanttChart = function (pDiv, pFormat) {
344343 vTmpDate . setDate ( vTmpDate . getDate ( ) + 1 ) ;
345344 }
346345 else if ( this . vFormat == "week" ) {
347- // Group weeks by year: span all weeks whose start date falls in the same year
348- var thisYear = vTmpDate . getFullYear ( ) ;
349- var countDate = new Date ( vTmpDate ) ;
350- vColSpan = 0 ;
351- while ( countDate . getTime ( ) <= vMaxDate . getTime ( ) && countDate . getFullYear ( ) === thisYear ) {
352- vColSpan ++ ;
353- countDate . setDate ( countDate . getDate ( ) + 7 ) ;
354- }
355- var vTmpCell = ( 0 , draw_utils_1 . newNode ) ( vTmpRow , "td" , null , vHeaderCellClass , null , null , null , null , vColSpan ) ;
356- ( 0 , draw_utils_1 . newNode ) ( vTmpCell , "div" , null , null , ( 0 , date_utils_1 . formatDateStr ) ( vTmpDate , this . vWeekMajorDateDisplayFormat , this . vLangs [ this . vLang ] ) , vColWidth * vColSpan ) ;
357- vTmpDate . setDate ( vTmpDate . getDate ( ) + vColSpan * 7 ) ;
346+ var vTmpCell = ( 0 , draw_utils_1 . newNode ) ( vTmpRow , "td" , null , vHeaderCellClass , null , vColWidth ) ;
347+ ( 0 , draw_utils_1 . newNode ) ( vTmpCell , "div" , null , null , ( 0 , date_utils_1 . formatDateStr ) ( vTmpDate , this . vWeekMajorDateDisplayFormat , this . vLangs [ this . vLang ] ) , vColWidth ) ;
348+ vTmpDate . setDate ( vTmpDate . getDate ( ) + 7 ) ;
358349 }
359350 else if ( this . vFormat == "month" ) {
360351 vColSpan = 12 - vTmpDate . getMonth ( ) ;
@@ -391,9 +382,7 @@ var GanttChart = function (pDiv, pFormat) {
391382 while ( vTmpDate . getTime ( ) <= vMaxDate . getTime ( ) ) {
392383 var vMinorHeaderCellClass = "gminorheading" ;
393384 if ( this . vFormat == "day" ) {
394- var vWkLastDay = ( this . vFirstDayOfWeek + 6 ) % 7 ;
395- var vWkPenultDay = ( this . vFirstDayOfWeek + 5 ) % 7 ;
396- if ( vTmpDate . getDay ( ) === vWkLastDay || vTmpDate . getDay ( ) === vWkPenultDay ) {
385+ if ( vTmpDate . getDay ( ) % 6 == 0 ) {
397386 if ( ! this . vShowWeekends ) {
398387 vTmpDate . setDate ( vTmpDate . getDate ( ) + 1 ) ;
399388 continue ;
@@ -493,16 +482,16 @@ var GanttChart = function (pDiv, pFormat) {
493482 for ( i = 0 ; i < this . vTaskList . length ; i ++ ) {
494483 var curTaskStart = this . vTaskList [ i ] . getStart ( ) ? this . vTaskList [ i ] . getStart ( ) : this . vTaskList [ i ] . getPlanStart ( ) ;
495484 var curTaskEnd = this . vTaskList [ i ] . getEnd ( ) ? this . vTaskList [ i ] . getEnd ( ) : this . vTaskList [ i ] . getPlanEnd ( ) ;
496- var vTaskLeftPx_1 = ( 0 , general_utils_1 . getOffset ) ( vMinDate , curTaskStart , vColWidth , this . vFormat , this . vShowWeekends , this . vFirstDayOfWeek ) ;
497- var vTaskRightPx = ( 0 , general_utils_1 . getOffset ) ( curTaskStart , curTaskEnd , vColWidth , this . vFormat , this . vShowWeekends , this . vFirstDayOfWeek ) ;
485+ var vTaskLeftPx_1 = ( 0 , general_utils_1 . getOffset ) ( vMinDate , curTaskStart , vColWidth , this . vFormat , this . vShowWeekends ) ;
486+ var vTaskRightPx = ( 0 , general_utils_1 . getOffset ) ( curTaskStart , curTaskEnd , vColWidth , this . vFormat , this . vShowWeekends ) ;
498487 var curTaskPlanStart = void 0 , curTaskPlanEnd = void 0 ;
499488 curTaskPlanStart = this . vTaskList [ i ] . getPlanStart ( ) ;
500489 curTaskPlanEnd = this . vTaskList [ i ] . getPlanEnd ( ) ;
501490 var vTaskPlanLeftPx = 0 ;
502491 var vTaskPlanRightPx = 0 ;
503492 if ( curTaskPlanStart && curTaskPlanEnd ) {
504- vTaskPlanLeftPx = ( 0 , general_utils_1 . getOffset ) ( vMinDate , curTaskPlanStart , vColWidth , this . vFormat , this . vShowWeekends , this . vFirstDayOfWeek ) ;
505- vTaskPlanRightPx = ( 0 , general_utils_1 . getOffset ) ( curTaskPlanStart , curTaskPlanEnd , vColWidth , this . vFormat , this . vShowWeekends , this . vFirstDayOfWeek ) ;
493+ vTaskPlanLeftPx = ( 0 , general_utils_1 . getOffset ) ( vMinDate , curTaskPlanStart , vColWidth , this . vFormat , this . vShowWeekends ) ;
494+ vTaskPlanRightPx = ( 0 , general_utils_1 . getOffset ) ( curTaskPlanStart , curTaskPlanEnd , vColWidth , this . vFormat , this . vShowWeekends ) ;
506495 }
507496 var vID = this . vTaskList [ i ] . getID ( ) ;
508497 var vComb = this . vTaskList [ i ] . getParItem ( ) && this . vTaskList [ i ] . getParItem ( ) . getGroup ( ) == 2 ;
@@ -716,8 +705,8 @@ var GanttChart = function (pDiv, pFormat) {
716705 ( 0 , task_1 . processRows ) ( this . vTaskList , 0 , - 1 , 1 , 1 , this . getUseSort ( ) , this . vDebug ) ;
717706 this . vProcessNeeded = false ;
718707 // get overall min/max dates plus padding
719- vMinDate = ( 0 , date_utils_1 . getMinDate ) ( this . vTaskList , this . vFormat , this . getMinDate ( ) && ( 0 , date_utils_1 . coerceDate ) ( this . getMinDate ( ) ) , this . vFirstDayOfWeek ) ;
720- vMaxDate = ( 0 , date_utils_1 . getMaxDate ) ( this . vTaskList , this . vFormat , this . getMaxDate ( ) && ( 0 , date_utils_1 . coerceDate ) ( this . getMaxDate ( ) ) , this . vFirstDayOfWeek ) ;
708+ vMinDate = ( 0 , date_utils_1 . getMinDate ) ( this . vTaskList , this . vFormat , this . getMinDate ( ) && ( 0 , date_utils_1 . coerceDate ) ( this . getMinDate ( ) ) ) ;
709+ vMaxDate = ( 0 , date_utils_1 . getMaxDate ) ( this . vTaskList , this . vFormat , this . getMaxDate ( ) && ( 0 , date_utils_1 . coerceDate ) ( this . getMaxDate ( ) ) ) ;
721710 // Calculate chart width variables.
722711 if ( this . vFormat == "day" )
723712 vColWidth = this . vDayColWidth ;
@@ -800,12 +789,12 @@ var GanttChart = function (pDiv, pFormat) {
800789 vScrollDate . setMinutes ( 0 , 0 , 0 ) ;
801790 else
802791 vScrollDate . setHours ( 0 , 0 , 0 , 0 ) ;
803- vScrollPx = ( 0 , general_utils_1 . getOffset ) ( vMinDate , vScrollDate , vColWidth , this . vFormat , this . vShowWeekends , this . vFirstDayOfWeek ) - 30 ;
792+ vScrollPx = ( 0 , general_utils_1 . getOffset ) ( vMinDate , vScrollDate , vColWidth , this . vFormat , this . vShowWeekends ) - 30 ;
804793 }
805794 this . getChartBody ( ) . scrollLeft = vScrollPx ;
806795 }
807796 if ( vMinDate . getTime ( ) <= new Date ( ) . getTime ( ) && vMaxDate . getTime ( ) >= new Date ( ) . getTime ( ) ) {
808- this . vTodayPx = ( 0 , general_utils_1 . getOffset ) ( vMinDate , new Date ( ) , vColWidth , this . vFormat , this . vShowWeekends , this . vFirstDayOfWeek ) ;
797+ this . vTodayPx = ( 0 , general_utils_1 . getOffset ) ( vMinDate , new Date ( ) , vColWidth , this . vFormat , this . vShowWeekends ) ;
809798 }
810799 else
811800 this . vTodayPx = - 1 ;
@@ -840,7 +829,7 @@ var GanttChart = function (pDiv, pFormat) {
840829 }
841830 ( 0 , events_1 . updateGridHeaderWidth ) ( this ) ;
842831 this . chartRowDateToX = function ( date ) {
843- return ( 0 , general_utils_1 . getOffset ) ( vMinDate , date , vColWidth , this . vFormat , this . vShowWeekends , this . vFirstDayOfWeek ) ;
832+ return ( 0 , general_utils_1 . getOffset ) ( vMinDate , date , vColWidth , this . vFormat , this . vShowWeekends ) ;
844833 } ;
845834 if ( this . vEvents && this . vEvents . afterDraw ) {
846835 this . vEvents . afterDraw ( ) ;
@@ -1263,8 +1252,8 @@ var showToolTip = function (pGanttChartObj, e, pContents, pWidth, pTimer) {
12631252 pGanttChartObj . vTool . style . visibility = 'hidden' ;
12641253 pGanttChartObj . vTool . style . left = Math . floor ( ( ( e ) ? e . clientX : window . event . clientX ) / 2 ) + 'px' ;
12651254 pGanttChartObj . vTool . style . top = Math . floor ( ( ( e ) ? e . clientY : window . event . clientY ) / 2 ) + 'px' ;
1266- ( 0 , exports . addListener ) ( 'mouseover' , function ( ) { clearTimeout ( pGanttChartObj . vTool . delayTimeout ) ; } , pGanttChartObj . vTool ) ;
1267- ( 0 , exports . addListener ) ( 'mouseout' , function ( ) { ( 0 , general_utils_1 . delayedHide ) ( pGanttChartObj , pGanttChartObj . vTool , pTimer ) ; } , pGanttChartObj . vTool ) ;
1255+ this . addListener ( 'mouseover' , function ( ) { clearTimeout ( pGanttChartObj . vTool . delayTimeout ) ; } , pGanttChartObj . vTool ) ;
1256+ this . addListener ( 'mouseout' , function ( ) { ( 0 , general_utils_1 . delayedHide ) ( pGanttChartObj , pGanttChartObj . vTool , pTimer ) ; } , pGanttChartObj . vTool ) ;
12681257 }
12691258 clearTimeout ( pGanttChartObj . vTool . delayTimeout ) ;
12701259 var newHTML = pContents . innerHTML ;
@@ -3540,7 +3529,6 @@ var includeGetSet = function () {
35403529 this . Draw ( ) ;
35413530 } ;
35423531 this . setWorkingDays = function ( workingDays ) { this . vWorkingDays = workingDays ; } ;
3543- this . setFirstDayOfWeek = function ( pVal ) { this . vFirstDayOfWeek = parseInt ( String ( pVal ) , 10 ) ; } ;
35443532 this . setMinGpLen = function ( pMinGpLen ) { this . vMinGpLen = pMinGpLen ; } ;
35453533 this . setScrollTo = function ( pDate ) { this . vScrollTo = pDate ; } ;
35463534 this . setHourColWidth = function ( pWidth ) { this . vHourColWidth = pWidth ; } ;
@@ -3620,7 +3608,6 @@ var includeGetSet = function () {
36203608 this . getShowTaskInfoLink = function ( ) { return this . vShowTaskInfoLink ; } ;
36213609 this . getShowEndWeekDate = function ( ) { return this . vShowEndWeekDate ; } ;
36223610 this . getShowWeekends = function ( ) { return this . vShowWeekends ; } ;
3623- this . getFirstDayOfWeek = function ( ) { return this . vFirstDayOfWeek ; } ;
36243611 this . getShowSelector = function ( ) { return this . vShowSelector ; } ;
36253612 this . getShowDeps = function ( ) { return this . vShowDeps ; } ;
36263613 this . getDateInputFormat = function ( ) { return this . vDateInputFormat ; } ;
@@ -3817,11 +3804,13 @@ var TaskItem = function (pID, pName, pStart, pEnd, pClass, pLink, pMile, pRes, p
38173804 vPlanEnd = ( pPlanEnd instanceof Date ) ? pPlanEnd : ( 0 , date_utils_1 . parseDateStr ) ( document . createTextNode ( pPlanEnd ) . data , vGantt . getDateInputFormat ( ) ) ;
38183805 vGroupMinPlanEnd = vPlanEnd ;
38193806 }
3820- if ( pDepend != null ) {
3821- var vDependStr = pDepend + '' ;
3822- var vDepList = vDependStr . split ( ',' ) ;
3823- var n = vDepList . length ;
3824- for ( var k = 0 ; k < n ; k ++ ) {
3807+ function parseDepend ( pDep ) {
3808+ vDepend = [ ] ;
3809+ vDependType = [ ] ;
3810+ if ( ! pDep )
3811+ return ;
3812+ var vDepList = ( pDep + '' ) . split ( ',' ) ;
3813+ for ( var k = 0 ; k < vDepList . length ; k ++ ) {
38253814 if ( vDepList [ k ] . toUpperCase ( ) . endsWith ( 'SS' ) ) {
38263815 vDepend [ k ] = vDepList [ k ] . substring ( 0 , vDepList [ k ] . length - 2 ) ;
38273816 vDependType [ k ] = 'SS' ;
@@ -3847,6 +3836,7 @@ var TaskItem = function (pID, pName, pStart, pEnd, pClass, pLink, pMile, pRes, p
38473836 }
38483837 }
38493838 }
3839+ parseDepend ( pDepend ) ;
38503840 this . getID = function ( ) { return vID ; } ;
38513841 this . getOriginalID = function ( ) { return _id ; } ;
38523842 this . getGantt = function ( ) { return vGantt ; } ;
@@ -4032,6 +4022,7 @@ var TaskItem = function (pID, pName, pStart, pEnd, pClass, pLink, pMile, pRes, p
40324022 this . getChildRow = function ( ) { return vChildRow ; } ;
40334023 this . getListChildRow = function ( ) { return vListChildRow ; } ;
40344024 this . getGroupSpan = function ( ) { return vGroupSpan ; } ;
4025+ this . setDepend = function ( pDepend ) { parseDepend ( pDepend ) ; } ;
40354026 this . setName = function ( pName ) { vName = pName ; } ;
40364027 this . setNotes = function ( pNotes ) { vNotes = pNotes ; } ;
40374028 this . setClass = function ( pClass ) { vClass = pClass ; } ;
@@ -4420,15 +4411,10 @@ exports.processRows = processRows;
44204411"use strict" ;
44214412Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
44224413exports . getIsoWeek = exports . parseDateFormatStr = exports . formatDateStr = exports . parseDateStr = exports . coerceDate = exports . getMaxDate = exports . getMinDate = void 0 ;
4423- /**
4424- * Returns the last day of the week (0=Sun … 6=Sat) for a given first day.
4425- */
4426- var lastDayOfWeek = function ( firstDay ) { return ( firstDay + 6 ) % 7 ; } ;
44274414/**
44284415 * DATES
44294416 */
4430- var getMinDate = function ( pList , pFormat , pMinDate , pFirstDayOfWeek ) {
4431- if ( pFirstDayOfWeek === void 0 ) { pFirstDayOfWeek = 1 ; }
4417+ var getMinDate = function ( pList , pFormat , pMinDate ) {
44324418 var vDate = new Date ( ) ;
44334419 if ( pList . length <= 0 )
44344420 return pMinDate || vDate ;
@@ -4446,12 +4432,12 @@ var getMinDate = function (pList, pFormat, pMinDate, pFirstDayOfWeek) {
44464432 // Adjust min date to specific format boundaries (first of week or first of month)
44474433 if ( pFormat == 'day' ) {
44484434 vDate . setDate ( vDate . getDate ( ) - 1 ) ;
4449- while ( vDate . getDay ( ) != pFirstDayOfWeek )
4435+ while ( vDate . getDay ( ) % 7 != 1 )
44504436 vDate . setDate ( vDate . getDate ( ) - 1 ) ;
44514437 }
44524438 else if ( pFormat == 'week' ) {
44534439 vDate . setDate ( vDate . getDate ( ) - 1 ) ;
4454- while ( vDate . getDay ( ) != pFirstDayOfWeek )
4440+ while ( vDate . getDay ( ) % 7 != 1 )
44554441 vDate . setDate ( vDate . getDate ( ) - 1 ) ;
44564442 }
44574443 else if ( pFormat == 'month' ) {
@@ -4482,8 +4468,7 @@ var getMinDate = function (pList, pFormat, pMinDate, pFirstDayOfWeek) {
44824468 return ( vDate ) ;
44834469} ;
44844470exports . getMinDate = getMinDate ;
4485- var getMaxDate = function ( pList , pFormat , pMaxDate , pFirstDayOfWeek ) {
4486- if ( pFirstDayOfWeek === void 0 ) { pFirstDayOfWeek = 1 ; }
4471+ var getMaxDate = function ( pList , pFormat , pMaxDate ) {
44874472 var vDate = new Date ( ) ;
44884473 if ( pList . length <= 0 )
44894474 return pMaxDate || vDate ;
@@ -4501,13 +4486,13 @@ var getMaxDate = function (pList, pFormat, pMaxDate, pFirstDayOfWeek) {
45014486 // Adjust max date to specific format boundaries (end of week or end of month)
45024487 if ( pFormat == 'day' ) {
45034488 vDate . setDate ( vDate . getDate ( ) + 1 ) ;
4504- while ( vDate . getDay ( ) != lastDayOfWeek ( pFirstDayOfWeek ) )
4489+ while ( vDate . getDay ( ) % 7 != 0 )
45054490 vDate . setDate ( vDate . getDate ( ) + 1 ) ;
45064491 }
45074492 else if ( pFormat == 'week' ) {
45084493 //For weeks, what is the last logical boundary?
45094494 vDate . setDate ( vDate . getDate ( ) + 1 ) ;
4510- while ( vDate . getDay ( ) != lastDayOfWeek ( pFirstDayOfWeek ) )
4495+ while ( vDate . getDay ( ) % 7 != 0 )
45114496 vDate . setDate ( vDate . getDate ( ) + 1 ) ;
45124497 }
45134498 else if ( pFormat == 'month' ) {
@@ -5045,8 +5030,7 @@ var calculateCurrentDateOffset = function (curTaskStart, curTaskEnd) {
50455030 return ( tmpTaskEnd - tmpTaskStart ) ;
50465031} ;
50475032exports . calculateCurrentDateOffset = calculateCurrentDateOffset ;
5048- var getOffset = function ( pStartDate , pEndDate , pColWidth , pFormat , pShowWeekends , pFirstDayOfWeek ) {
5049- if ( pFirstDayOfWeek === void 0 ) { pFirstDayOfWeek = 1 ; }
5033+ var getOffset = function ( pStartDate , pEndDate , pColWidth , pFormat , pShowWeekends ) {
50505034 var DAY_CELL_MARGIN_WIDTH = 3 ; // Cell margin for 'day' format
50515035 var WEEK_CELL_MARGIN_WIDTH = 3 ; // Cell margin for 'week' format
50525036 var MONTH_CELL_MARGIN_WIDTH = 3 ; // Cell margin for 'month' format
@@ -5067,9 +5051,7 @@ var getOffset = function (pStartDate, pEndDate, pColWidth, pFormat, pShowWeekend
50675051 var countWeekends = 0 ;
50685052 while ( start < end ) {
50695053 var day = start . getDay ( ) ;
5070- var vLastDay = ( pFirstDayOfWeek + 6 ) % 7 ;
5071- var vPenultDay = ( pFirstDayOfWeek + 5 ) % 7 ;
5072- if ( day === vLastDay || day === vPenultDay ) {
5054+ if ( day === 6 || day == 0 ) {
50735055 countWeekends ++ ;
50745056 }
50755057 start = new Date ( start . getTime ( ) + 24 * oneHour ) ;
0 commit comments