label: getWeekdayInLocale()

in src/data-table/column-datetime.tsx [498:621]


                      label: getWeekdayInLocale(day, props.locale),
                      id: w,
                    };
                  })}
                />
              )}

              {categoricalOperator[0].id === DATETIME_OPERATIONS.MONTH && (
                <Checks
                  value={months}
                  setValue={setMonths}
                  options={MONTHS.map((m) => ({
                    label: getMonthInLocale(m, props.locale),
                    id: m,
                  }))}
                />
              )}

              {categoricalOperator[0].id === DATETIME_OPERATIONS.QUARTER && (
                <Checks
                  value={quarters}
                  setValue={setQuarters}
                  options={QUARTERS.map((q) => ({
                    label: getQuarterInLocale(q, props.locale),
                    id: q,
                  }))}
                />
              )}

              {categoricalOperator[0].id === DATETIME_OPERATIONS.HALF && (
                <Checks
                  value={halves}
                  setValue={setHalves}
                  options={[
                    {
                      label: locale.datatable.datetimeFilterCategoricalFirstHalf,
                      id: 0,
                    },
                    {
                      label: locale.datatable.datetimeFilterCategoricalSecondHalf,
                      id: 1,
                    },
                  ]}
                />
              )}

              {categoricalOperator[0].id === DATETIME_OPERATIONS.YEAR && (
                <Checks
                  value={years}
                  setValue={setYears}
                  options={presentYears.map((year) => ({
                    label: year,
                    id: year,
                  }))}
                />
              )}
            </div>
          </div>
        )}
      </div>
    </FilterShell>
  );
}

// @ts-ignore
function DatetimeCell(props) {
  const [css, theme] = useStyletron();
  return (
    <div
      className={css({
        ...theme.typography.MonoParagraphXSmall,
        display: 'flex',
        justifyContent: 'flex-end',
        width: '100%',
        whiteSpace: 'nowrap',
      })}
    >
      {format(props.value, props.formatString)}
    </div>
  );
}

const defaultOptions = {
  title: '',
  sortable: true,
  filterable: true,
  formatString: FORMAT_STRING,
};

function DatetimeColumn(options: Options): DatetimeColumn {
  const normalizedOptions = {
    ...defaultOptions,
    ...options,
  };

  return Column({
    kind: COLUMNS.DATETIME,
    buildFilter: function (params) {
      return function (data) {
        let included = true;
        if (params.operation === DATETIME_OPERATIONS.YEAR) {
          included = params.selection.includes(getYear(data));
        } else if (params.operation === DATETIME_OPERATIONS.HALF) {
          const month = getMonth(data);
          const half = month < 6 ? 0 : 1;
          included = params.selection.includes(half);
        } else if (params.operation === DATETIME_OPERATIONS.QUARTER) {
          // date-fns quarters are 1 indexed
          const quarter = getQuarter(data) - 1;
          included = params.selection.includes(quarter);
        } else if (params.operation === DATETIME_OPERATIONS.MONTH) {
          included = params.selection.includes(getMonth(data));
        } else if (params.operation === DATETIME_OPERATIONS.WEEKDAY) {
          included = params.selection.includes(getDay(data));
        }

        if (
          params.operation === DATETIME_OPERATIONS.RANGE_DATE ||
          params.operation === DATETIME_OPERATIONS.RANGE_TIME ||
          params.operation === DATETIME_OPERATIONS.RANGE_DATETIME
        ) {
          let [left, right] = params.range;

          if (params.operation === DATETIME_OPERATIONS.RANGE_DATE) {