To keep head and body columns align when body Y scroller appears.
Split columns into two sets (fixed and horizontally scrollable) Determine if there are any filters Compute the column order
If there are fixed columns, the table uses two sections and a vertical scroller to scroll them in parallel Otherwise, there is just one section
If there are fixed columns, split the cell range if necessary
Manage range selection by handling mouseDown bubbling on table cells
Process events only if there is a call range
Process events only if a cell has been clicked
Position mouse handlers to create a modal drag loop
Cannot prevent default due to react not supporting passive events yet event.preventDefault()
When data changes, perform column autoresize computations
If the table resizes, force the scrollers to update
Stretch the columns in the scrollable section if the columns do not occupy the horizontal space of the section fully
if (!areEqual) { console.log('!Data.areEqual') }
Copyright 2020 Ulrich Gaal
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.