JSFiddle - React, Tailwind, and code Playground

by Manpreet Singh

HTML

<script>

function isDisabledMonth(month , disabledMonths )
{
		var centerElemIndex = disabledMonths.indexOf(month);
    
    return centerElemIndex != -1;
}
function findFistEnabledMonthInRightDirection(computedSet, numberOfMonths, maxVal , centerElemIndex,disabledMonths)
{
  var Offset = parseInt(numberOfMonths/2) ;
  var newCenterPosition;
  var firstMonth ;
  var maxCount = (computedSet[centerElemIndex] + numberOfMonths -1)
  if (maxCount > maxVal)
    maxCount = maxVal

  for (var month= computedSet[centerElemIndex] ; month <= maxCount ; month++)
  {	
    if (!isDisabledMonth(month, disabledMonths))
    {
      newCenterPosition = month;
      if (newCenterPosition == maxVal || newCenterPosition + Offset >= maxVal)
        firstMonth = maxVal - numberOfMonths + 1;

      break
    }
  }
  return firstMonth;
}

function findFistEnabledMonthInLeftDirection(computedSet, numberOfMonths, minVal , centerElemIndex,disabledMonths)
{
  var Offset = parseInt(numberOfMonths/2) ;
  var newCenterPosition;
  var firstMonth ;
  var minCount = (computedSet[centerElemIndex] + numberOfMonths -1)
  if (minCount > minVal)
    minCount = minVal

  for (var month= computedSet[centerElemIndex] ; month >= minVal ; month--)
  {	
    if (!isDisabledMonth(month, disabledMonths))
    {
      newCenterPosition = month;
      if (newCenterPosition == minVal || newCenterPosition - Offset <= minVal)
        firstMonth = minVal
      break
    }
  }
  return firstMonth;
}
function checkForDisabledDays(minVal, maxVal, disabledMonths, numberOfMonths, currentVal, computedSet )
{
	var centerElemIndex = parseInt(numberOfMonths/2);
  
	var isCenterElemDisabled = isDisabledMonth(computedSet[centerElemIndex], disabledMonths)
  
  if ( isCenterElemDisabled )
  {

    var firstMonth = findFistEnabledMonthInRightDirection(computedSet, numberOfMonths, maxVal , centerElemIndex, disabledMonths)
    
    if (!firstMonth)
    {
    	var firstMonth = findFistEnabledMonthInLeftDirection(computedSet,...