function rangeFilterHeader()

in read_input/read/google-sheet-read.js [177:208]


function rangeFilterHeader(namedRanges, verticalRangeName) {
  const dataFilters = [];
  const rangeRowNameMap = {};
  for (const namedRange of namedRanges) {
    const rangeName = namedRange.name;
    const nr = namedRange.range;
    const sheetId = namedRange.range.sheetId || 0;

    if (!rangeRowNameMap[sheetId]) {
      rangeRowNameMap[sheetId] = {};
    }
    const myRangeId = `${nr.startRowIndex}:${nr.startColumnIndex}`;
    rangeRowNameMap[sheetId][myRangeId] = rangeName;
    // Create a data filter to get only the first row/column (header)
    let gridRange = {
      sheetId: sheetId,
      startRowIndex: nr.startRowIndex,
      startColumnIndex: nr.startColumnIndex,
    };
    if (verticalRangeName.includes(rangeName)) {
      // verticalRange
      gridRange.endRowIndex = nr.endRowIndex;
      gridRange.endColumnIndex = nr.startColumnIndex + 1; // Include only the first column
    } else {
      // horizontalRange
      gridRange.endRowIndex = nr.startRowIndex + 1; // Include only the first row
      gridRange.endColumnIndex = nr.endColumnIndex;
    }
    dataFilters.push({ gridRange: gridRange });
  }
  return [dataFilters, rangeRowNameMap];
}