当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript dx-core.PureComputed类代码示例

本文整理汇总了TypeScript中@devexpress/dx-core.PureComputed的典型用法代码示例。如果您正苦于以下问题:TypeScript PureComputed类的具体用法?TypeScript PureComputed怎么用?TypeScript PureComputed使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了PureComputed类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: getColumnBoundaries

export const getCollapsedGrids: GetCollapsedGridsFn = ({
    headerRows = [],
    bodyRows = [],
    footerRows = [],
    columns,
    loadedRowsStart,
    totalRowCount,
    getCellColSpan,
    viewportLeft,
    containerWidth,
    visibleRowBoundaries,
    getColumnWidth,
    getRowHeight,
  },
) => {
  const getColSpan = (
    tableRow: any, tableColumn: any,
  ) => getCellColSpan!({ tableRow, tableColumn, tableColumns: columns });

  const columnBoundaries = getColumnBoundaries(
    columns, viewportLeft, containerWidth, getColumnWidth,
  );
  const getCollapsedGridBlock: PureComputed<
    [any[], any[]?, number?, number?], CollapsedGrid
  > = (
    rows, rowsVisibleBoundary, rowCount = rows.length, offset = 0,
  ) => getCollapsedGrid({
    rows,
    columns,
    rowsVisibleBoundary,
    columnsVisibleBoundary: columnBoundaries,
    getColumnWidth,
    getRowHeight,
    getColSpan,
    totalRowCount: rowCount,
    offset,
  });

  const headerGrid = getCollapsedGridBlock(
    headerRows, getRenderRowBounds(visibleRowBoundaries.header, headerRows.length),
  );
  const bodyGrid = getCollapsedGridBlock(
    bodyRows,
    adjustedRenderRowBounds(
      visibleRowBoundaries.body, bodyRows.length, loadedRowsStart,
    ),
    totalRowCount || 1,
    loadedRowsStart,
  );
  const footerGrid = getCollapsedGridBlock(
    footerRows, getRenderRowBounds(visibleRowBoundaries.footer, footerRows.length),
  );

  return {
    headerGrid,
    bodyGrid,
    footerGrid,
  };
};
开发者ID:MaximKudriavtsev,项目名称:devextreme-reactive,代码行数:59,代码来源:virtual-table.ts

示例2: warnIfRowIdUndefined

export const rowIdGetter: PureComputed<[GetRowIdFn, Row[]]> = (getRowId, rows) => {
  if (!getRowId) {
    const map = new Map(rows.map((row, rowIndex) => [row, rowIndex]) as [any, number]);
    return (row: Row) => map.get(row) as RowId;
  }
  return warnIfRowIdUndefined(getRowId);
};
开发者ID:MaximKudriavtsev,项目名称:devextreme-reactive,代码行数:7,代码来源:computeds.ts

示例3: calculateInsideOffset

export const timeBoundariesByDrag: TimeBoundariesByDrag = (
  payload, targetData, targetType,
  cellDurationMinutes, insidePart, offsetTimeTopBase,
) => {
  let offsetTimeTop;
  let appointmentStartTime;
  let appointmentEndTime;

  const insideOffset = calculateInsideOffset(targetType, insidePart, cellDurationMinutes);
  const start = moment(targetData.startDate as Date).add(insideOffset, SECONDS);

  if (offsetTimeTopBase === null) {
    offsetTimeTop = moment(targetData.startDate as Date)
      .diff(payload.startDate as Date, SECONDS) + insideOffset;
  } else {
    offsetTimeTop = offsetTimeTopBase;
  }

  if (payload.type === targetType) {
    const appointmentDurationSeconds = intervalDuration(payload, SECONDS);
    appointmentStartTime = moment(start).add((offsetTimeTop) * (-1), SECONDS).toDate();
    appointmentEndTime = moment(start)
      .add((appointmentDurationSeconds - offsetTimeTop), SECONDS).toDate();
  } else {
    appointmentStartTime = moment(targetData.startDate as Date)
      .add(insideOffset, SECONDS).toDate();
    appointmentEndTime = moment(targetData.endDate as Date).add(insideOffset, SECONDS).toDate();
  }

  return { appointmentStartTime, appointmentEndTime, offsetTimeTop };
};
开发者ID:MaximKudriavtsev,项目名称:devextreme-reactive,代码行数:31,代码来源:helpers.ts

示例4: rectCalculatorBase

> = (
  appointment,
  {
    rectByDates,
    multiline,
    rectByDatesMeta: {
      cellElements,
      viewCellsData,
    },
  },
) => {
  const {
    top, left,
    width, height, parentWidth,
  } = rectCalculatorBase(
    appointment,
    rectByDates,
    {
      multiline,
      cellElements,
      viewCellsData,
    },
  );

  return {
    top: top + ((height / appointment.reduceValue) * appointment.offset),
    height: height / appointment.reduceValue,
    left: toPercentage(left, parentWidth),
    width: toPercentage(width, parentWidth),
    dataItem: appointment.dataItem,
    fromPrev: appointment.fromPrev,
    toNext: appointment.toNext,
    type: HORIZONTAL_TYPE,
  };
};
开发者ID:MaximKudriavtsev,项目名称:devextreme-reactive,代码行数:35,代码来源:utils.ts

示例5: pluckSubarray

export const mergeRows: MergeRowsFn = (
  rowsInterval, cacheInterval, rows, cacheRows, rowsStart, cacheStart,
) => {
  const breakpoints = [
    rowsInterval.start, rowsInterval.end,
    cacheInterval.start, cacheInterval.end,
  ]
    .filter(i => 0 <= i && i < Number.POSITIVE_INFINITY)
    .sort((a, b) => a - b);

  let result: Row[] = [];
  if (breakpoints.length > 1) {
    for (let i = 0; i < breakpoints.length - 1; i += 1) {
      const left = breakpoints[i];
      const right = breakpoints[i + 1];
      const chunk = rowsInterval.start <= left && right <= rowsInterval.end
        ? pluckSubarray(rows, rowsStart, left, right) // rows have higher priority
        : pluckSubarray(cacheRows, cacheStart, left, right);

      result = result.concat(chunk);
    }
  }

  return {
    skip: breakpoints[0],
    rows: result,
  };
};
开发者ID:MaximKudriavtsev,项目名称:devextreme-reactive,代码行数:28,代码来源:helpers.ts

示例6: calculateTextByDays

export const viewBoundText: ViewBoundTextFn = (
  startViewDate, endViewDate, step, currentDate, intervalCount, formatDate,
) => (
  step !== 'month'
    ? calculateTextByDays(startViewDate, endViewDate, formatDate)
    : calculateTextByMonths(currentDate, intervalCount, formatDate)
);
开发者ID:MaximKudriavtsev,项目名称:devextreme-reactive,代码行数:7,代码来源:helpers.ts

示例7: clamp

> = (timeTableCells, clientOffset) => timeTableCells.findIndex((timeTableCell) => {
  const {
    left, top,
    right, bottom,
  } = timeTableCell.getBoundingClientRect();
  const isOver = clientOffset
      && clamp(clientOffset.x, left, right) === clientOffset.x
      && clamp(clientOffset.y, top, bottom) === clientOffset.y;
  return isOver;
});
开发者ID:MaximKudriavtsev,项目名称:devextreme-reactive,代码行数:10,代码来源:helpers.ts

示例8: isOnTheSameLine

    .findIndex((geometry, index) => {
      const inVerticalBounds = isOnTheSameLine(geometry, y);
      const inHorizontalBounds = x >= geometry.left && x <= geometry.right;
      const shouldGoFirst = index === 0 && x < geometry.left;
      const shouldGoOnLineBreak = !inVerticalBounds
        && !!geometries[index - 1]
        && isOnTheSameLine(geometries[index - 1], y);

      return (inVerticalBounds && inHorizontalBounds)
        || shouldGoFirst
        || shouldGoOnLineBreak;
    });
开发者ID:MaximKudriavtsev,项目名称:devextreme-reactive,代码行数:12,代码来源:group-panel.ts

示例9: unwrapGroups

export const calculateRectByDateIntervals: CalculateRectByDateIntervalsFn = (
  type, intervals, rectByDates, rectByDatesMeta,
) => {
  const { growDirection, multiline } = type;
  const sorted = sortAppointments(intervals, multiline);
  const grouped = findOverlappedAppointments(sorted as AppointmentMoment[], multiline);

  const rectCalculator = growDirection === HORIZONTAL_TYPE
    ? horizontalRectCalculator
    : verticalRectCalculator;

  return unwrapGroups(adjustAppointments(grouped, multiline))
    .map(appointment => rectCalculator(appointment, { rectByDates, multiline, rectByDatesMeta }));
};
开发者ID:MaximKudriavtsev,项目名称:devextreme-reactive,代码行数:14,代码来源:utils.ts

示例10: mergeSort

export const sortedRows: SortedRowsFn = (
  rows, sorting, getCellValue, getColumnCompare, isGroupRow, getRowLevelKey,
) => {
  if (!sorting.length || !rows.length) return rows;

  let compare;
  if (!getRowLevelKey) {
    compare = createCompare(sorting, getColumnCompare, getCellValue);
    return mergeSort(rows.slice(), compare);
  }

  compare = createCompare(sorting, getColumnCompare, (row, columnName) => {
    if (isGroupRow && isGroupRow(row)) {
      if (row.groupedBy === columnName) {
        return row.value;
      }
      return undefined;
    }
    return getCellValue(row, columnName);
  });
  return sortHierarchicalRows(
    rows,
    compare,
    getRowLevelKey,
  );
};
开发者ID:MaximKudriavtsev,项目名称:devextreme-reactive,代码行数:26,代码来源:computeds.ts


注:本文中的@devexpress/dx-core.PureComputed类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。