{"version":3,"sources":["../../../../../src/components/Calendar/utils/dateGrid/workWeek.ts"],"sourcesContent":["import { getDayFromIndex, getDayIndex } from '../dateUtils';\nimport type { DateRangeType, DayOfWeek } from '../constants';\n\n/**\n * Checks if the given set of days forms a contiguous sequence within a week.\n */\nconst isContiguous = (days: DayOfWeek[], isSingleWeek: boolean, firstDayOfWeek: DayOfWeek): boolean => {\n  const daySet = new Set(days);\n  let amountOfNoNeighbors = 0;\n  for (const day of daySet) {\n    const nextDay = getDayFromIndex(getDayIndex(day) + 1);\n    if (!(daySet.has(nextDay) && (!isSingleWeek || firstDayOfWeek !== nextDay))) {\n      amountOfNoNeighbors++;\n    }\n  }\n\n  /*\n   *  In case the full week is provided, then each day has a neighbor\n   * , otherwise the last day does not have a neighbor.\n   */\n  return amountOfNoNeighbors < 2;\n};\n\n/**\n * Return corrected date range type, given `dateRangeType` and list of working days.\n * For non-contiguous working days and working week range type, returns general week range type.\n * For other cases returns input date range type.\n * @param dateRangeType - input type of range\n * @param workWeekDays - list of working days in a week\n */\nexport const getDateRangeTypeToUse = (\n  dateRangeType: DateRangeType,\n  workWeekDays: DayOfWeek[] | undefined,\n  firstDayOfWeek: DayOfWeek,\n): DateRangeType => {\n  if (workWeekDays && dateRangeType === 'workWeek') {\n    if (!isContiguous(workWeekDays, true, firstDayOfWeek) || new Set(workWeekDays).size === 0) {\n      return 'week';\n    }\n  }\n\n  return dateRangeType;\n};\n"],"names":["getDateRangeTypeToUse","isContiguous","days","isSingleWeek","firstDayOfWeek","daySet","Set","amountOfNoNeighbors","day","nextDay","getDayFromIndex","getDayIndex","has","dateRangeType","workWeekDays","size"],"mappings":";;;;+BA8BaA;;;eAAAA;;;2BA9BgC;AAG7C;;CAEC,GACD,MAAMC,eAAe,CAACC,MAAmBC,cAAuBC;IAC9D,MAAMC,SAAS,IAAIC,IAAIJ;IACvB,IAAIK,sBAAsB;IAC1B,KAAK,MAAMC,OAAOH,OAAQ;QACxB,MAAMI,UAAUC,IAAAA,0BAAe,EAACC,IAAAA,sBAAW,EAACH,OAAO;QACnD,IAAI,CAAEH,CAAAA,OAAOO,GAAG,CAACH,YAAa,CAAA,CAACN,gBAAgBC,mBAAmBK,OAAM,CAAC,GAAI;YAC3EF;QACF;IACF;IAEA;;;GAGC,GACD,OAAOA,sBAAsB;AAC/B;AASO,MAAMP,wBAAwB,CACnCa,eACAC,cACAV;IAEA,IAAIU,gBAAgBD,kBAAkB,YAAY;QAChD,IAAI,CAACZ,aAAaa,cAAc,MAAMV,mBAAmB,IAAIE,IAAIQ,cAAcC,IAAI,KAAK,GAAG;YACzF,OAAO;QACT;IACF;IAEA,OAAOF;AACT"}