Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .storybook/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const config: StorybookConfig = {
},
},
stories: [
'../src/**/*.stories.@(js|jsx|mjs|ts|tsx)',
'../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)',
],
core: {
disableTelemetry: true,
Expand Down
8 changes: 4 additions & 4 deletions src/components/Cell/Cell.tsx → src/components/Cell.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import type { KeyboardEvent, MouseEvent, ReactNode } from 'react'
import { useCallback, useContext, useEffect, useMemo, useRef } from 'react'

import { ColumnWidthsContext } from '../../contexts/ColumnWidthsContext.js'
import type { ResolvedValue } from '../../helpers/dataframe/index.js'
import { useCellFocus } from '../../hooks/useCellFocus.js'
import { useOnCopy } from '../../hooks/useOnCopyToClipboard.js'
import { ColumnWidthsContext } from '../contexts/ColumnWidthsContext.js'
import type { ResolvedValue } from '../helpers/dataframe/index.js'
import { useCellFocus } from '../hooks/useCellFocus.js'
import { useOnCopy } from '../hooks/useOnCopyToClipboard.js'

export interface CellContentProps {
stringify: (value: unknown) => string | undefined
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@ import type { KeyboardEvent, ReactNode } from 'react'
import { useCallback, useContext, useEffect, useMemo, useRef } from 'react'
import { flushSync } from 'react-dom'

import { ColumnsVisibilityContext } from '../../contexts/ColumnsVisibilityContext.js'
import { ColumnWidthsContext } from '../../contexts/ColumnWidthsContext.js'
import { SortInfoAndActionsByColumnContext } from '../../contexts/OrderByContext.js'
import type { ColumnConfig } from '../../helpers/columnConfiguration.js'
import { getOffsetWidth } from '../../helpers/width.js'
import { useCellFocus } from '../../hooks/useCellFocus.js'
import { useColumnMenu } from '../../hooks/useColumnMenu.js'
import { useOnCopy } from '../../hooks/useOnCopyToClipboard.js'
import type { AriaSort } from '../ColumnMenu/ColumnMenu.js'
import ColumnMenu from '../ColumnMenu/ColumnMenu.js'
import ColumnMenuButton from '../ColumnMenuButton/ColumnMenuButton.js'
import ColumnResizer from '../ColumnResizer/ColumnResizer.js'
import { ColumnsVisibilityContext } from '../contexts/ColumnsVisibilityContext.js'
import { ColumnWidthsContext } from '../contexts/ColumnWidthsContext.js'
import { SortInfoAndActionsByColumnContext } from '../contexts/OrderByContext.js'
import type { ColumnConfig } from '../helpers/columnConfiguration.js'
import { getOffsetWidth } from '../helpers/width.js'
import { useCellFocus } from '../hooks/useCellFocus.js'
import { useColumnMenu } from '../hooks/useColumnMenu.js'
import { useOnCopy } from '../hooks/useOnCopyToClipboard.js'
import type { AriaSort } from './ColumnMenu.js'
import ColumnMenu from './ColumnMenu.js'
import ColumnMenuButton from './ColumnMenuButton.js'
import ColumnResizer from './ColumnResizer.js'

interface Props {
columnIndex: number // index of the column in the dataframe (0-based)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import type { KeyboardEvent, MouseEvent, ReactNode } from 'react'
import { useCallback, useContext, useId, useMemo, useRef } from 'react'
import { createPortal } from 'react-dom'

import { CellNavigationContext } from '../../contexts/CellNavigationContext.js'
import { PortalContainerContext } from '../../contexts/PortalContainerContext.js'
import type { CustomMenuGroup } from '../../helpers/columnConfiguration.js'
import { useFocusManagement } from '../../hooks/useFocusManagement.js'
import { CellNavigationContext } from '../contexts/CellNavigationContext.js'
import { PortalContainerContext } from '../contexts/PortalContainerContext.js'
import type { CustomMenuGroup } from '../helpers/columnConfiguration.js'
import { useFocusManagement } from '../hooks/useFocusManagement.js'

export type AriaSort = 'ascending' | 'descending' | 'none'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import { type ReactNode } from 'react'

import { columnWidthsSuffix } from '../../helpers/constants.js'
import styles from '../../HighTable.module.css'
import { CellNavigationProvider } from '../../providers/CellNavigationProvider.js'
import { ColumnParametersProvider } from '../../providers/ColumnParametersProvider.js'
import { ColumnsVisibilityProvider } from '../../providers/ColumnsVisibilityProvider.js'
import { ColumnWidthsProvider } from '../../providers/ColumnWidthsProvider.js'
import { DataProvider } from '../../providers/DataProvider.js'
import { OrderByProvider } from '../../providers/OrderByProvider.js'
import { ScrollProvider } from '../../providers/ScrollProvider.js'
import { SelectionProvider } from '../../providers/SelectionProvider.js'
import { TableCornerSizeProvider } from '../../providers/TableCornerSizeProvider.js'
import { ViewportSizeProvider } from '../../providers/ViewportSizeProvider.js'
import type { HighTableProps } from '../../types.js'
import { columnWidthsSuffix } from '../helpers/constants.js'
import styles from '../HighTable.module.css'
import { CellNavigationProvider } from '../providers/CellNavigationProvider.js'
import { ColumnParametersProvider } from '../providers/ColumnParametersProvider.js'
import { ColumnsVisibilityProvider } from '../providers/ColumnsVisibilityProvider.js'
import { ColumnWidthsProvider } from '../providers/ColumnWidthsProvider.js'
import { DataProvider } from '../providers/DataProvider.js'
import { OrderByProvider } from '../providers/OrderByProvider.js'
import { ScrollProvider } from '../providers/ScrollProvider.js'
import { SelectionProvider } from '../providers/SelectionProvider.js'
import { TableCornerSizeProvider } from '../providers/TableCornerSizeProvider.js'
import { ViewportSizeProvider } from '../providers/ViewportSizeProvider.js'
import type { HighTableProps } from '../types.js'
import Scroller from './Scroller.js'
import Slice from './Slice.js'
import Wrapper from './Wrapper.js'
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { ChangeEvent, CSSProperties, KeyboardEvent, MouseEvent } from 'react'
import { useCallback, useEffect, useMemo, useRef } from 'react'

import { useCellFocus } from '../../hooks/useCellFocus.js'
import { useOnCopy } from '../../hooks/useOnCopyToClipboard.js'
import { useCellFocus } from '../hooks/useCellFocus.js'
import { useOnCopy } from '../hooks/useOnCopyToClipboard.js'

interface Props {
selected?: boolean
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import type { KeyboardEvent } from 'react'
import { useCallback, useContext, useMemo } from 'react'

import { CellNavigationContext } from '../../contexts/CellNavigationContext.js'
import { ScrollContext } from '../../contexts/ScrollContext.js'
import { SetViewportSizeContext } from '../../contexts/ViewportSizeContext.js'
import styles from '../../HighTable.module.css'
import { CellNavigationContext } from '../contexts/CellNavigationContext.js'
import { ScrollContext } from '../contexts/ScrollContext.js'
import { SetViewportSizeContext } from '../contexts/ViewportSizeContext.js'
import styles from '../HighTable.module.css'

interface Props {
/** Child components */
Expand Down
30 changes: 15 additions & 15 deletions src/components/HighTable/Slice.tsx → src/components/Slice.tsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
import type { KeyboardEvent } from 'react'
import { useCallback, useContext, useMemo } from 'react'

import { CellNavigationContext } from '../../contexts/CellNavigationContext.js'
import { ColumnsVisibilityContext } from '../../contexts/ColumnsVisibilityContext.js'
import { DataFrameMethodsContext, DataVersionContext, NumRowsContext } from '../../contexts/DataContext.js'
import { OrderByContext } from '../../contexts/OrderByContext.js'
import { ScrollContext } from '../../contexts/ScrollContext.js'
import { SelectionContext } from '../../contexts/SelectionContext.js'
import { ariaOffset } from '../../helpers/constants.js'
import { useFetchCells } from '../../hooks/useFetchCells.js'
import type { HighTableProps } from '../../types.js'
import { stringify as stringifyDefault } from '../../utils/stringify.js'
import Cell from '../Cell/Cell.js'
import Row from '../Row/Row.js'
import RowHeader from '../RowHeader/RowHeader.js'
import TableCorner from '../TableCorner/TableCorner.js'
import TableHeader from '../TableHeader/TableHeader.js'
import { CellNavigationContext } from '../contexts/CellNavigationContext.js'
import { ColumnsVisibilityContext } from '../contexts/ColumnsVisibilityContext.js'
import { DataFrameMethodsContext, DataVersionContext, NumRowsContext } from '../contexts/DataContext.js'
import { OrderByContext } from '../contexts/OrderByContext.js'
import { ScrollContext } from '../contexts/ScrollContext.js'
import { SelectionContext } from '../contexts/SelectionContext.js'
import { ariaOffset } from '../helpers/constants.js'
import { useFetchCells } from '../hooks/useFetchCells.js'
import type { HighTableProps } from '../types.js'
import { stringify as stringifyDefault } from '../utils/stringify.js'
import Cell from './Cell.js'
import Row from './Row.js'
import RowHeader from './RowHeader.js'
import TableCorner from './TableCorner.js'
import TableHeader from './TableHeader.js'

type SliceProps = Pick<HighTableProps, 'onDoubleClickCell' | 'onError' | 'onKeyDownCell' | 'onMouseDownCell' | 'overscan' | 'renderCellContent' | 'stringify'>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { ChangeEvent, CSSProperties, KeyboardEvent, ReactNode } from 'react'
import { useCallback, useContext, useEffect, useRef } from 'react'

import { SetTableCornerSizeContext } from '../../contexts/TableCornerSizeContext.js'
import { useCellFocus } from '../../hooks/useCellFocus.js'
import { SetTableCornerSizeContext } from '../contexts/TableCornerSizeContext.js'
import { useCellFocus } from '../hooks/useCellFocus.js'

interface Props {
checked?: boolean
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { ColumnParameters } from '../../contexts/ColumnParametersContext.js'
import { ariaOffset } from '../../helpers/constants.js'
import ColumnHeader from '../ColumnHeader/ColumnHeader.js'
import type { ColumnParameters } from '../contexts/ColumnParametersContext.js'
import { ariaOffset } from '../helpers/constants.js'
import ColumnHeader from './ColumnHeader.js'

interface TableHeaderProps {
columnsParameters: ColumnParameters[]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { type CSSProperties, type ReactNode, useContext } from 'react'

import { NumRowsContext } from '../../contexts/DataContext.js'
import { PortalContainerContext } from '../../contexts/PortalContainerContext.js'
import { TableCornerHeightContext } from '../../contexts/TableCornerSizeContext.js'
import styles from '../../HighTable.module.css'
import { useHTMLElement } from '../../hooks/useHTMLElement.js'
import type { HighTableProps } from '../../types.js'
import { NumRowsContext } from '../contexts/DataContext.js'
import { PortalContainerContext } from '../contexts/PortalContainerContext.js'
import { TableCornerHeightContext } from '../contexts/TableCornerSizeContext.js'
import styles from '../HighTable.module.css'
import { useHTMLElement } from '../hooks/useHTMLElement.js'
import type { HighTableProps } from '../types.js'

type Props = Pick<HighTableProps, 'className' | 'maxRowNumber' | 'styled'> & {
/** Child components */
Expand Down
4 changes: 2 additions & 2 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import HighTable from './components/HighTable/HighTable.js'
export { type CellContentProps } from './components/Cell/Cell.js'
import HighTable from './components/HighTable.js'
export { type CellContentProps } from './components/Cell.js'
export type { ColumnConfig, ColumnConfiguration, CustomMenuGroup, CustomMenuItem } from './helpers/columnConfiguration.js'
export type { Cells, DataFrame, DataFrameEvents, ResolvedValue } from './helpers/dataframe/index.js'
export { arrayDataFrame, checkSignal, createGetRowNumber, sortableDataFrame, validateColumn, validateFetchParams, validateGetCellParams, validateGetRowNumberParams, validateOrderBy, validateRow } from './helpers/dataframe/index.js'
Expand Down
2 changes: 1 addition & 1 deletion src/types.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { KeyboardEvent, MouseEvent, ReactNode } from 'react'

import type { CellContentProps } from './components/Cell/Cell.js'
import type { CellContentProps } from './components/Cell.js'
import type { ColumnConfiguration } from './helpers/columnConfiguration.js'
import type { DataFrame } from './helpers/dataframe/index.js'
import type { Selection } from './helpers/selection.js'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@ import type { Meta, StoryObj } from '@storybook/react-vite'
import type { MouseEvent, ReactNode } from 'react'
import { useState } from 'react'

import { checkSignal, createGetRowNumber, validateFetchParams, validateGetCellParams } from '../../helpers/dataframe/helpers.js'
import type { DataFrame, DataFrameEvents } from '../../helpers/dataframe/index.js'
import { arrayDataFrame } from '../../helpers/dataframe/index.js'
import { sortableDataFrame } from '../../helpers/dataframe/sort.js'
import type { Fetch, ResolvedValue } from '../../helpers/dataframe/types.js'
import type { Selection } from '../../helpers/selection.js'
import type { OrderBy } from '../../helpers/sort.js'
import { createEventTarget } from '../../helpers/typedEventTarget.js'
import type { ColumnsVisibility } from '../../providers/ColumnsVisibilityProvider.js'
import type { CellPosition } from '../../types.js'
import type { CellContentProps } from '../Cell/Cell.js'
import HighTable from './HighTable.js'
import type { CellContentProps } from '../src/components/Cell.js'
import HighTable from '../src/components/HighTable.js'
import { checkSignal, createGetRowNumber, validateFetchParams, validateGetCellParams } from '../src/helpers/dataframe/helpers.js'
import type { DataFrame, DataFrameEvents } from '../src/helpers/dataframe/index.js'
import { arrayDataFrame } from '../src/helpers/dataframe/index.js'
import { sortableDataFrame } from '../src/helpers/dataframe/sort.js'
import type { Fetch, ResolvedValue } from '../src/helpers/dataframe/types.js'
import type { Selection } from '../src/helpers/selection.js'
import type { OrderBy } from '../src/helpers/sort.js'
import { createEventTarget } from '../src/helpers/typedEventTarget.js'
import type { ColumnsVisibility } from '../src/providers/ColumnsVisibilityProvider.js'
import type { CellPosition } from '../src/types.js'

function random(seed: number) {
const x = Math.sin(seed) * 10000
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { act, fireEvent } from '@testing-library/react'
import { describe, expect, it } from 'vitest'

import { render } from '../../utils/userEvent.js'
import Cell from './Cell.js'
import Cell from '../../src/components/Cell.js'
import { render } from '../../src/utils/userEvent.js'

const rest = {
ariaColIndex: 1,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { act, fireEvent } from '@testing-library/react'
import { beforeEach, describe, expect, it, vi } from 'vitest'

import { ColumnDescriptorsContext, NumColumnsContext } from '../../contexts/DataContext.js'
import { SortInfoAndActionsByColumnContext } from '../../contexts/OrderByContext.js'
import { getOffsetWidth } from '../../helpers/width.js'
import { ColumnParametersProvider } from '../../providers/ColumnParametersProvider.js'
import { ColumnWidthsProvider } from '../../providers/ColumnWidthsProvider.js'
import { render } from '../../utils/userEvent.js'
import ColumnHeader from './ColumnHeader.js'

vi.mock('../../helpers/width.js', { spy: true })
import ColumnHeader from '../../src/components/ColumnHeader.js'
import { ColumnDescriptorsContext, NumColumnsContext } from '../../src/contexts/DataContext.js'
import { SortInfoAndActionsByColumnContext } from '../../src/contexts/OrderByContext.js'
import { getOffsetWidth } from '../../src/helpers/width.js'
import { ColumnParametersProvider } from '../../src/providers/ColumnParametersProvider.js'
import { ColumnWidthsProvider } from '../../src/providers/ColumnWidthsProvider.js'
import { render } from '../../src/utils/userEvent.js'

vi.mock('../../src/helpers/width.js', { spy: true })

vi.stubGlobal('localStorage', (() => {
const store = new Map<string, string>()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import type { ReactNode } from 'react'
import { beforeEach, describe, expect, it, vi } from 'vitest'

import { PortalContainerContext } from '../../contexts/PortalContainerContext.js'
import { useHTMLElement } from '../../hooks/useHTMLElement.js'
import { render as _render } from '../../utils/userEvent.js'
import ColumnMenu from './ColumnMenu.js'
import ColumnMenu from '../../src/components/ColumnMenu.js'
import { PortalContainerContext } from '../../src/contexts/PortalContainerContext.js'
import { useHTMLElement } from '../../src/hooks/useHTMLElement.js'
import { render as _render } from '../../src/utils/userEvent.js'

function ContainerProvider({ children }: { children: ReactNode }) {
const { element, onMount } = useHTMLElement<HTMLDivElement>()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { beforeEach, describe, expect, it, vi } from 'vitest'

import { render } from '../../utils/userEvent.js'
import ColumnMenuButton from './ColumnMenuButton.js'
import ColumnMenuButton from '../../src/components/ColumnMenuButton.js'
import { render } from '../../src/utils/userEvent.js'

describe('ColumnMenuButton', () => {
const defaultProps = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import type { UserEvent } from '@testing-library/user-event'
import { beforeEach, describe, expect, it, vi } from 'vitest'

import { createGetRowNumber, validateGetCellParams } from '../../helpers/dataframe/helpers.js'
import { type DataFrame, sortableDataFrame } from '../../helpers/dataframe/index.js'
import type { Obj } from '../../helpers/dataframe/types.js'
import type { OrderBy } from '../../helpers/sort.js'
import { render } from '../../utils/userEvent.js'
import HighTable from './HighTable.js'
import HighTable from '../../src/components/HighTable.js'
import { createGetRowNumber, validateGetCellParams } from '../../src/helpers/dataframe/helpers.js'
import { type DataFrame, sortableDataFrame } from '../../src/helpers/dataframe/index.js'
import type { Obj } from '../../src/helpers/dataframe/types.js'
import type { OrderBy } from '../../src/helpers/sort.js'
import { render } from '../../src/utils/userEvent.js'

Element.prototype.scrollIntoView = vi.fn()

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { waitFor } from '@testing-library/react'
import { beforeEach, describe, expect, it, vi } from 'vitest'

import { createGetRowNumber, validateGetCellParams } from '../../helpers/dataframe/helpers.js'
import type { DataFrame } from '../../helpers/dataframe/index.js'
import type { Obj } from '../../helpers/dataframe/types.js'
import type { OrderBy } from '../../helpers/sort.js'
import { render } from '../../utils/userEvent.js'
import HighTable from './HighTable.js'
import HighTable from '../../src/components/HighTable.js'
import { createGetRowNumber, validateGetCellParams } from '../../src/helpers/dataframe/helpers.js'
import type { DataFrame } from '../../src/helpers/dataframe/index.js'
import type { Obj } from '../../src/helpers/dataframe/types.js'
import type { OrderBy } from '../../src/helpers/sort.js'
import { render } from '../../src/utils/userEvent.js'

Element.prototype.scrollIntoView = vi.fn()

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { waitFor } from '@testing-library/react'
import { beforeEach, describe, expect, it, vi } from 'vitest'

import { createGetRowNumber, validateGetCellParams } from '../../helpers/dataframe/helpers.js'
import type { DataFrame } from '../../helpers/dataframe/index.js'
import type { Obj } from '../../helpers/dataframe/types.js'
import type { OrderBy } from '../../helpers/sort.js'
import { render } from '../../utils/userEvent.js'
import HighTable from './HighTable.js'
import HighTable from '../../src/components/HighTable.js'
import { createGetRowNumber, validateGetCellParams } from '../../src/helpers/dataframe/helpers.js'
import type { DataFrame } from '../../src/helpers/dataframe/index.js'
import type { Obj } from '../../src/helpers/dataframe/types.js'
import type { OrderBy } from '../../src/helpers/sort.js'
import { render } from '../../src/utils/userEvent.js'

Element.prototype.scrollIntoView = vi.fn()

Expand Down
Loading