UNPKG

handsontable

Version:

Handsontable is a JavaScript Spreadsheet Component available for React, Angular and Vue.

94 lines (82 loc) 2.57 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _object = require("../../../../../helpers/object"); var MIXIN_NAME = 'stickyRowsBottom'; /** * Mixin for the subclasses of `Table` with implementations of * helper methods that are related to rows. * This mixin is meant to be applied in the subclasses of `Table` * that use sticky rendering of the bottom rows in the vertical axis. * * @type {object} */ var stickyRowsBottom = { /** * Get the source index of the first rendered row. If no rows are rendered, returns an error code: -1. * * @returns {number} */ getFirstRenderedRow: function getFirstRenderedRow() { var totalRows = this.wot.getSetting('totalRows'); var fixedRowsBottom = this.wot.getSetting('fixedRowsBottom'); var index = totalRows - fixedRowsBottom; if (totalRows === 0 || fixedRowsBottom === 0) { return -1; } if (index < 0) { return 0; } return index; }, /** * Get the source index of the first row fully visible in the viewport. If no rows are fully visible, returns an error code: -1. * Assumes that all rendered rows are fully visible. * * @returns {number} */ getFirstVisibleRow: function getFirstVisibleRow() { return this.getFirstRenderedRow(); }, /** * Get the source index of the last rendered row. If no rows are rendered, returns an error code: -1. * * @returns {number} */ getLastRenderedRow: function getLastRenderedRow() { return this.wot.getSetting('totalRows') - 1; }, /** * Get the source index of the last row fully visible in the viewport. If no rows are fully visible, returns an error code: -1. * Assumes that all rendered rows are fully visible. * * @returns {number} */ getLastVisibleRow: function getLastVisibleRow() { return this.getLastRenderedRow(); }, /** * Get the number of rendered rows. * * @returns {number} */ getRenderedRowsCount: function getRenderedRowsCount() { var totalRows = this.wot.getSetting('totalRows'); return Math.min(this.wot.getSetting('fixedRowsBottom'), totalRows); }, /** * Get the number of fully visible rows in the viewport. * Assumes that all rendered rows are fully visible. * * @returns {number} */ getVisibleRowsCount: function getVisibleRowsCount() { return this.getRenderedRowsCount(); } }; (0, _object.defineGetter)(stickyRowsBottom, 'MIXIN_NAME', MIXIN_NAME, { writable: false, enumerable: false }); var _default = stickyRowsBottom; exports.default = _default;