├── .nvmrc ├── .npmrc ├── docs ├── framework │ └── vanilla │ │ ├── table-core.md │ │ └── guide │ │ └── table-state.md ├── guide │ ├── pinning.md │ └── filters.md ├── api │ └── features │ │ ├── pinning.md │ │ └── filters.md └── vanilla.md ├── examples ├── angular │ ├── basic │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ ├── app.routes.ts │ │ │ │ └── app.config.ts │ │ │ ├── main.ts │ │ │ └── index.html │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── .editorconfig │ ├── editable │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ └── app.config.ts │ │ │ ├── main.ts │ │ │ └── index.html │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── .editorconfig │ ├── expanding │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ └── app.config.ts │ │ │ ├── main.ts │ │ │ ├── styles.scss │ │ │ └── index.html │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── .editorconfig │ ├── filters │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ └── app.config.ts │ │ │ ├── main.ts │ │ │ ├── styles.scss │ │ │ └── index.html │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.spec.json │ │ ├── tsconfig.app.json │ │ └── .editorconfig │ ├── grouping │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ └── app.config.ts │ │ │ ├── main.ts │ │ │ └── styles.scss │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── .editorconfig │ ├── row-dnd │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ └── app.config.ts │ │ │ ├── main.ts │ │ │ └── index.html │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.spec.json │ │ ├── tsconfig.app.json │ │ └── .editorconfig │ ├── column-ordering │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ └── app.config.ts │ │ │ ├── main.ts │ │ │ └── index.html │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── .editorconfig │ ├── column-pinning │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ └── app.config.ts │ │ │ ├── main.ts │ │ │ └── index.html │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── .editorconfig │ ├── row-selection │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ └── app.config.ts │ │ │ ├── main.ts │ │ │ ├── styles.scss │ │ │ └── index.html │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── .editorconfig │ ├── signal-input │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ ├── app.config.ts │ │ │ │ └── columns.ts │ │ │ ├── main.ts │ │ │ └── styles.scss │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.spec.json │ │ ├── tsconfig.app.json │ │ └── .editorconfig │ ├── sub-components │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ └── app.config.ts │ │ │ ├── main.ts │ │ │ ├── styles.scss │ │ │ └── index.html │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── .editorconfig │ ├── column-pinning-sticky │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ └── app.config.ts │ │ │ ├── main.ts │ │ │ └── index.html │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.spec.json │ │ ├── tsconfig.app.json │ │ └── .editorconfig │ ├── column-visibility │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ └── app.config.ts │ │ │ ├── main.ts │ │ │ └── index.html │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.spec.json │ │ ├── tsconfig.app.json │ │ └── .editorconfig │ ├── row-selection-signal │ │ ├── src │ │ │ ├── assets │ │ │ │ └── .gitkeep │ │ │ ├── favicon.ico │ │ │ ├── app │ │ │ │ └── app.config.ts │ │ │ ├── main.ts │ │ │ ├── styles.scss │ │ │ └── index.html │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── .editorconfig │ └── column-resizing-performant │ │ ├── src │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── favicon.ico │ │ ├── app │ │ │ └── app.config.ts │ │ └── main.ts │ │ ├── .devcontainer │ │ └── devcontainer.json │ │ ├── tsconfig.spec.json │ │ ├── tsconfig.app.json │ │ └── .editorconfig ├── solid │ ├── basic │ │ ├── .gitignore │ │ ├── README.md │ │ ├── src │ │ │ ├── index.tsx │ │ │ └── index.css │ │ └── vite.config.ts │ ├── filters │ │ ├── .gitignore │ │ ├── README.md │ │ ├── src │ │ │ ├── index.tsx │ │ │ └── index.css │ │ └── vite.config.ts │ ├── sorting │ │ ├── .gitignore │ │ ├── README.md │ │ ├── src │ │ │ ├── index.tsx │ │ │ └── index.css │ │ └── vite.config.ts │ ├── column-groups │ │ ├── .gitignore │ │ ├── README.md │ │ ├── src │ │ │ ├── index.tsx │ │ │ └── index.css │ │ └── vite.config.ts │ ├── column-ordering │ │ ├── .gitignore │ │ ├── README.md │ │ ├── src │ │ │ └── index.tsx │ │ └── vite.config.ts │ ├── column-visibility │ │ ├── .gitignore │ │ ├── README.md │ │ ├── src │ │ │ ├── index.tsx │ │ │ └── index.css │ │ └── vite.config.ts │ └── bootstrap │ │ ├── .gitignore │ │ ├── README.md │ │ ├── src │ │ ├── index.tsx │ │ └── index.css │ │ └── vite.config.ts ├── vue │ ├── basic │ │ ├── env.d.ts │ │ ├── public │ │ │ └── favicon.ico │ │ ├── src │ │ │ ├── main.ts │ │ │ └── env.d.ts │ │ ├── README.md │ │ ├── vite.config.ts │ │ ├── .gitignore │ │ └── index.html │ ├── filters │ │ ├── env.d.ts │ │ ├── public │ │ │ └── favicon.ico │ │ ├── src │ │ │ └── main.ts │ │ ├── README.md │ │ ├── vite.config.ts │ │ ├── .gitignore │ │ └── index.html │ ├── grouping │ │ ├── env.d.ts │ │ ├── public │ │ │ └── favicon.ico │ │ ├── src │ │ │ ├── main.ts │ │ │ └── env.d.ts │ │ ├── README.md │ │ ├── vite.config.ts │ │ ├── .gitignore │ │ └── index.html │ ├── sorting │ │ ├── env.d.ts │ │ ├── public │ │ │ └── favicon.ico │ │ ├── src │ │ │ ├── main.ts │ │ │ └── env.d.ts │ │ ├── README.md │ │ ├── vite.config.ts │ │ ├── .gitignore │ │ └── index.html │ ├── column-pinning │ │ ├── env.d.ts │ │ ├── .vscode │ │ │ └── extensions.json │ │ ├── public │ │ │ └── favicon.ico │ │ ├── src │ │ │ ├── main.ts │ │ │ └── env.d.ts │ │ ├── vite.config.ts │ │ ├── .gitignore │ │ └── index.html │ ├── pagination │ │ ├── env.d.ts │ │ ├── src │ │ │ ├── main.ts │ │ │ └── env.d.ts │ │ ├── README.md │ │ ├── vite.config.ts │ │ ├── .gitignore │ │ └── index.html │ ├── row-selection │ │ ├── env.d.ts │ │ ├── public │ │ │ └── favicon.ico │ │ ├── src │ │ │ ├── main.ts │ │ │ └── env.d.ts │ │ ├── README.md │ │ ├── vite.config.ts │ │ ├── .gitignore │ │ └── index.html │ ├── sub-components │ │ ├── env.d.ts │ │ ├── public │ │ │ └── favicon.ico │ │ ├── src │ │ │ └── main.ts │ │ ├── README.md │ │ ├── vite.config.ts │ │ ├── .gitignore │ │ └── index.html │ ├── column-ordering │ │ ├── env.d.ts │ │ ├── .vscode │ │ │ └── extensions.json │ │ ├── public │ │ │ └── favicon.ico │ │ ├── src │ │ │ ├── main.ts │ │ │ └── env.d.ts │ │ ├── vite.config.ts │ │ ├── .gitignore │ │ └── index.html │ ├── virtualized-rows │ │ ├── env.d.ts │ │ ├── public │ │ │ └── favicon.ico │ │ ├── src │ │ │ ├── main.ts │ │ │ └── env.d.ts │ │ ├── README.md │ │ ├── vite.config.ts │ │ ├── .gitignore │ │ └── index.html │ └── pagination-controlled │ │ ├── env.d.ts │ │ ├── src │ │ ├── main.ts │ │ └── env.d.ts │ │ ├── README.md │ │ ├── public │ │ └── favicon.ico │ │ ├── vite.config.ts │ │ ├── .gitignore │ │ └── index.html ├── qwik │ ├── basic │ │ ├── src │ │ │ ├── vite-env.d.ts │ │ │ └── index.css │ │ ├── vite.config.ts │ │ ├── tsconfig.node.json │ │ ├── .gitignore │ │ ├── index.html │ │ └── package.json │ ├── filters │ │ ├── src │ │ │ ├── vite-env.d.ts │ │ │ └── index.css │ │ ├── vite.config.ts │ │ ├── tsconfig.node.json │ │ ├── .gitignore │ │ └── index.html │ ├── sorting │ │ ├── src │ │ │ ├── vite-env.d.ts │ │ │ └── index.css │ │ ├── vite.config.ts │ │ ├── tsconfig.node.json │ │ ├── .gitignore │ │ └── index.html │ └── row-selection │ │ ├── src │ │ ├── vite-env.d.ts │ │ └── index.css │ │ ├── vite.config.ts │ │ ├── tsconfig.node.json │ │ ├── .gitignore │ │ └── index.html ├── lit │ ├── basic │ │ ├── .gitignore │ │ ├── README.md │ │ ├── twind.config.ts │ │ ├── vite.config.js │ │ └── index.html │ ├── filters │ │ ├── .gitignore │ │ ├── README.md │ │ ├── vite.config.js │ │ └── index.html │ ├── sorting │ │ ├── .gitignore │ │ ├── README.md │ │ ├── vite.config.js │ │ └── index.html │ ├── column-sizing │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ ├── row-selection │ │ ├── .gitignore │ │ ├── README.md │ │ ├── vite.config.js │ │ └── index.html │ ├── virtualized-rows │ │ ├── .gitignore │ │ ├── README.md │ │ ├── twind.config.ts │ │ ├── vite.config.js │ │ └── index.html │ └── sorting-dynamic-data │ │ ├── .gitignore │ │ ├── README.md │ │ ├── vite.config.js │ │ └── index.html ├── react │ ├── basic │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── src │ │ │ └── index.css │ │ └── vite.config.js │ ├── filters │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── src │ │ │ └── index.css │ │ └── vite.config.js │ ├── row-dnd │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ └── vite.config.js │ ├── sorting │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── src │ │ │ └── index.css │ │ └── vite.config.js │ ├── bootstrap │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ └── src │ │ │ └── index.css │ ├── column-dnd │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ ├── expanding │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ └── src │ │ │ └── index.css │ ├── grouping │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── src │ │ │ └── index.css │ │ └── vite.config.js │ ├── kitchen-sink │ │ ├── .gitignore │ │ ├── README.md │ │ ├── src │ │ │ ├── main.tsx │ │ │ └── index.css │ │ └── index.html │ ├── pagination │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ ├── row-pinning │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ ├── column-groups │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ └── src │ │ │ └── index.css │ ├── column-ordering │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ ├── column-pinning │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ ├── column-sizing │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ ├── column-visibility │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ └── src │ │ │ └── index.css │ ├── custom-features │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ ├── editable-data │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ └── src │ │ │ └── index.css │ ├── filters-faceted │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ └── src │ │ │ └── index.css │ ├── filters-fuzzy │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ └── src │ │ │ └── index.css │ ├── fully-controlled │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ └── src │ │ │ └── index.css │ ├── row-selection │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ └── src │ │ │ └── index.css │ ├── sub-components │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ └── src │ │ │ └── index.css │ ├── virtualized-rows │ │ ├── .gitignore │ │ └── README.md │ ├── column-pinning-sticky │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ ├── full-width-resizable-table │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ ├── material-ui-pagination │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ └── src │ │ │ └── index.css │ ├── pagination-controlled │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ ├── virtualized-columns │ │ ├── .gitignore │ │ └── README.md │ ├── column-resizing-performant │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ ├── query-router-search-params │ │ ├── .gitignore │ │ ├── README.md │ │ ├── src │ │ │ ├── routes │ │ │ │ ├── __root.tsx │ │ │ │ └── anotherRoute.tsx │ │ │ ├── api │ │ │ │ └── types.ts │ │ │ ├── main.tsx │ │ │ └── index.css │ │ └── index.html │ ├── virtualized-columns-experimental │ │ ├── .gitignore │ │ └── README.md │ ├── virtualized-infinite-scrolling │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ ├── virtualized-rows-experimental │ │ ├── .gitignore │ │ └── README.md │ └── full-width-table │ │ ├── README.md │ │ ├── .gitignore │ │ ├── index.html │ │ └── src │ │ └── index.css ├── vanilla │ ├── basic │ │ ├── .gitignore │ │ ├── README.md │ │ ├── vite.config.js │ │ ├── src │ │ │ └── index.css │ │ ├── package.json │ │ └── index.html │ ├── pagination │ │ ├── .gitignore │ │ ├── README.md │ │ └── vite.config.js │ └── sorting │ │ ├── .gitignore │ │ ├── README.md │ │ └── vite.config.js └── svelte │ ├── basic │ ├── src │ │ ├── vite-env.d.ts │ │ ├── main.ts │ │ └── index.css │ ├── .gitignore │ ├── README.md │ ├── svelte.config.js │ ├── tsconfig.json │ └── index.html │ ├── sorting │ ├── src │ │ ├── vite-env.d.ts │ │ ├── main.ts │ │ └── index.css │ ├── .gitignore │ ├── README.md │ ├── svelte.config.js │ ├── tsconfig.json │ └── index.html │ ├── filtering │ ├── .gitignore │ ├── README.md │ ├── svelte.config.js │ ├── tsconfig.json │ ├── index.html │ └── src │ │ └── index.css │ ├── column-groups │ ├── .gitignore │ ├── README.md │ ├── svelte.config.js │ ├── src │ │ ├── main.ts │ │ └── index.css │ ├── tsconfig.json │ └── index.html │ ├── column-ordering │ ├── .gitignore │ ├── README.md │ ├── svelte.config.js │ ├── src │ │ └── main.ts │ ├── tsconfig.json │ └── index.html │ ├── column-pinning │ ├── .gitignore │ ├── README.md │ ├── svelte.config.js │ ├── src │ │ └── main.ts │ ├── tsconfig.json │ └── index.html │ └── column-visibility │ ├── .gitignore │ ├── README.md │ ├── svelte.config.js │ ├── src │ ├── main.ts │ └── index.css │ ├── tsconfig.json │ └── index.html ├── packages ├── svelte-table │ ├── src │ │ ├── global.d.ts │ │ └── placeholder.svelte │ └── tsconfig.json ├── react-table │ ├── tests │ │ └── test-setup.ts │ ├── tsconfig.json │ ├── vitest.config.ts │ └── rollup.config.mjs ├── match-sorter-utils │ ├── tests │ │ └── test-setup.ts │ ├── tsconfig.json │ ├── vitest.config.ts │ └── rollup.config.mjs ├── vue-table │ ├── tsconfig.json │ └── rollup.config.mjs ├── table-core │ ├── tsconfig.json │ ├── vitest.config.ts │ ├── rollup.config.mjs │ └── src │ │ └── utils │ │ └── document.ts ├── react-table-devtools │ └── tsconfig.json ├── solid-table │ └── tsconfig.json ├── qwik-table │ ├── tsconfig.json │ └── rollup.config.mjs ├── angular-table │ ├── ng-package.json │ ├── src │ │ └── flex-render │ │ │ └── context.ts │ └── tests │ │ └── test-setup.ts └── lit-table │ ├── tsconfig.json │ └── rollup.config.mjs ├── media ├── logo.sketch ├── repo-header.png └── header_table.png ├── .gitattributes ├── .github └── FUNDING.yml ├── .prettierignore ├── .nx └── workflows │ └── dynamic-changesets.yaml ├── .editorconfig ├── prettier.config.js ├── pnpm-workspace.yaml └── knip.json /.nvmrc: -------------------------------------------------------------------------------- 1 | 24.8.0 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | provenance=true 2 | -------------------------------------------------------------------------------- /docs/framework/vanilla/table-core.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/angular/basic/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/angular/editable/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/angular/expanding/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/angular/filters/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/angular/grouping/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/angular/row-dnd/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/angular/column-ordering/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/angular/column-pinning/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/angular/row-selection/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/angular/signal-input/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/angular/sub-components/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/solid/basic/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /examples/angular/column-pinning-sticky/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/angular/column-visibility/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/angular/row-selection-signal/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/solid/filters/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /examples/solid/sorting/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /examples/angular/column-resizing-performant/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/solid/column-groups/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /examples/solid/column-ordering/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /examples/solid/column-visibility/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /examples/vue/basic/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/vue/filters/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/vue/grouping/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/vue/sorting/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/vue/column-pinning/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/vue/pagination/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/vue/row-selection/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/vue/sub-components/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /packages/svelte-table/src/global.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/qwik/basic/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/qwik/filters/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/qwik/sorting/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/vue/column-ordering/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/vue/virtualized-rows/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/qwik/row-selection/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/vue/pagination-controlled/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /media/logo.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/media/logo.sketch -------------------------------------------------------------------------------- /packages/react-table/tests/test-setup.ts: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom/vitest' 2 | -------------------------------------------------------------------------------- /media/repo-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/media/repo-header.png -------------------------------------------------------------------------------- /packages/match-sorter-utils/tests/test-setup.ts: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom/vitest' 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto eol=lf 3 | -------------------------------------------------------------------------------- /examples/lit/basic/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/lit/filters/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/lit/sorting/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/basic/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/filters/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/row-dnd/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/sorting/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/vanilla/basic/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /media/header_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/media/header_table.png -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: tannerlinsley 4 | -------------------------------------------------------------------------------- /examples/lit/column-sizing/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/lit/row-selection/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/bootstrap/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/column-dnd/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/expanding/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/grouping/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/kitchen-sink/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/pagination/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/row-pinning/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/solid/bootstrap/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/vanilla/pagination/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/vanilla/sorting/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/lit/virtualized-rows/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/column-groups/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/column-ordering/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/column-pinning/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/column-sizing/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/column-visibility/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/custom-features/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/editable-data/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/filters-faceted/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/filters-fuzzy/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/fully-controlled/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/row-selection/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/sub-components/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/virtualized-rows/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/lit/sorting-dynamic-data/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/column-pinning-sticky/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/full-width-resizable-table/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local -------------------------------------------------------------------------------- /examples/react/material-ui-pagination/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/pagination-controlled/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/virtualized-columns/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/column-resizing-performant/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/query-router-search-params/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/svelte/basic/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /packages/svelte-table/src/placeholder.svelte: -------------------------------------------------------------------------------- 1 | 4 | 5 | {content} 6 | -------------------------------------------------------------------------------- /examples/react/virtualized-columns-experimental/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/virtualized-infinite-scrolling/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/react/virtualized-rows-experimental/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /examples/svelte/sorting/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /examples/angular/basic/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/basic/src/favicon.ico -------------------------------------------------------------------------------- /examples/vue/basic/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/vue/basic/public/favicon.ico -------------------------------------------------------------------------------- /examples/vue/filters/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/vue/filters/public/favicon.ico -------------------------------------------------------------------------------- /examples/vue/sorting/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/vue/sorting/public/favicon.ico -------------------------------------------------------------------------------- /examples/angular/basic/src/app/app.routes.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router' 2 | 3 | export const routes: Routes = [] 4 | -------------------------------------------------------------------------------- /examples/angular/editable/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/editable/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/filters/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/filters/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/grouping/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/grouping/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/row-dnd/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/row-dnd/src/favicon.ico -------------------------------------------------------------------------------- /examples/svelte/basic/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | 7 | src/**/*.d.ts 8 | src/**/*.map -------------------------------------------------------------------------------- /examples/vue/grouping/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/vue/grouping/public/favicon.ico -------------------------------------------------------------------------------- /examples/angular/expanding/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/expanding/src/favicon.ico -------------------------------------------------------------------------------- /examples/svelte/filtering/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | 7 | src/**/*.d.ts 8 | src/**/*.map -------------------------------------------------------------------------------- /examples/svelte/sorting/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | 7 | src/**/*.d.ts 8 | src/**/*.map -------------------------------------------------------------------------------- /examples/vue/basic/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /examples/vue/column-pinning/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/vue/filters/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /examples/vue/sorting/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /examples/angular/row-selection/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/row-selection/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/signal-input/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/signal-input/src/favicon.ico -------------------------------------------------------------------------------- /examples/svelte/column-groups/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | 7 | src/**/*.d.ts 8 | src/**/*.map -------------------------------------------------------------------------------- /examples/svelte/column-ordering/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | 7 | src/**/*.d.ts 8 | src/**/*.map -------------------------------------------------------------------------------- /examples/svelte/column-pinning/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | 7 | src/**/*.d.ts 8 | src/**/*.map -------------------------------------------------------------------------------- /examples/vue/basic/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run dev` or `yarn dev` 7 | -------------------------------------------------------------------------------- /examples/vue/column-ordering/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/vue/column-pinning/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/vue/column-pinning/public/favicon.ico -------------------------------------------------------------------------------- /examples/vue/filters/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run dev` or `yarn dev` 7 | -------------------------------------------------------------------------------- /examples/vue/grouping/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /examples/vue/pagination/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /examples/vue/row-selection/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/vue/row-selection/public/favicon.ico -------------------------------------------------------------------------------- /examples/vue/sorting/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run dev` or `yarn dev` 7 | -------------------------------------------------------------------------------- /examples/vue/sub-components/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/vue/sub-components/public/favicon.ico -------------------------------------------------------------------------------- /docs/framework/vanilla/guide/table-state.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Table State (Vanilla JS) Guide 3 | --- 4 | 5 | ## Table State (Vanilla JS) Guide 6 | -------------------------------------------------------------------------------- /examples/angular/column-ordering/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/column-ordering/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/column-pinning/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/column-pinning/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/sub-components/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/sub-components/src/favicon.ico -------------------------------------------------------------------------------- /examples/lit/basic/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/lit/filters/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/lit/sorting/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/basic/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/solid/basic/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/svelte/basic/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/svelte/column-visibility/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | 7 | src/**/*.d.ts 8 | src/**/*.map -------------------------------------------------------------------------------- /examples/vue/column-ordering/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/vue/column-ordering/public/favicon.ico -------------------------------------------------------------------------------- /examples/vue/column-ordering/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /examples/vue/column-pinning/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /examples/vue/grouping/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run dev` or `yarn dev` 7 | -------------------------------------------------------------------------------- /examples/vue/pagination/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run dev` or `yarn dev` 7 | -------------------------------------------------------------------------------- /examples/vue/row-selection/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /examples/vue/sub-components/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /examples/vue/virtualized-rows/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/vue/virtualized-rows/public/favicon.ico -------------------------------------------------------------------------------- /examples/vue/virtualized-rows/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /examples/angular/column-visibility/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/column-visibility/src/favicon.ico -------------------------------------------------------------------------------- /examples/lit/column-sizing/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/lit/row-selection/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/bootstrap/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/column-dnd/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/expanding/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/filters/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/grouping/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/pagination/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/row-dnd/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/row-pinning/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/sorting/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/solid/bootstrap/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/solid/filters/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/solid/sorting/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/svelte/filtering/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/svelte/sorting/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/vanilla/basic/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/vanilla/sorting/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/vue/pagination-controlled/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /examples/vue/row-selection/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run dev` or `yarn dev` 7 | -------------------------------------------------------------------------------- /examples/vue/sub-components/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run dev` or `yarn dev` 7 | -------------------------------------------------------------------------------- /examples/vue/virtualized-rows/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run dev` or `yarn dev` 7 | -------------------------------------------------------------------------------- /examples/angular/column-pinning-sticky/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/column-pinning-sticky/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/row-selection-signal/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/row-selection-signal/src/favicon.ico -------------------------------------------------------------------------------- /examples/lit/virtualized-rows/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/column-groups/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/column-ordering/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/column-pinning/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/column-sizing/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/custom-features/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/editable-data/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/filters-faceted/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/filters-fuzzy/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/fully-controlled/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/kitchen-sink/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/row-selection/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/sub-components/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/virtualized-rows/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/solid/column-groups/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/solid/column-ordering/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/svelte/column-groups/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/svelte/column-ordering/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/svelte/column-pinning/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/vanilla/pagination/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/vue/pagination-controlled/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run dev` or `yarn dev` 7 | -------------------------------------------------------------------------------- /examples/vue/pagination-controlled/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/vue/pagination-controlled/public/favicon.ico -------------------------------------------------------------------------------- /examples/angular/basic/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/editable/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/expanding/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/filters/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/grouping/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/row-dnd/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/lit/sorting-dynamic-data/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/column-pinning-sticky/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/column-visibility/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/pagination-controlled/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/virtualized-columns/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/solid/column-visibility/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/svelte/column-visibility/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/angular/column-pinning/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/column-resizing-performant/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/table/HEAD/examples/angular/column-resizing-performant/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/row-selection/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/signal-input/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/sub-components/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/react/column-resizing-performant/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/material-ui-pagination/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/query-router-search-params/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | **/.nx/cache 2 | **/.svelte-kit 3 | **/build 4 | **/coverage 5 | **/dist 6 | **/docs 7 | **/old-examples 8 | pnpm-lock.yaml 9 | 10 | .angular 11 | -------------------------------------------------------------------------------- /examples/angular/column-ordering/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/column-visibility/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/react/virtualized-infinite-scrolling/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/react/virtualized-rows-experimental/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/svelte/basic/svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 | 3 | export default { 4 | preprocess: vitePreprocess(), 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/column-pinning-sticky/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/row-selection-signal/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/react/virtualized-columns-experimental/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run start` or `yarn start` 7 | -------------------------------------------------------------------------------- /examples/svelte/filtering/svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 | 3 | export default { 4 | preprocess: vitePreprocess(), 5 | } 6 | -------------------------------------------------------------------------------- /examples/svelte/sorting/svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 | 3 | export default { 4 | preprocess: vitePreprocess(), 5 | } 6 | -------------------------------------------------------------------------------- /.nx/workflows/dynamic-changesets.yaml: -------------------------------------------------------------------------------- 1 | distribute-on: 2 | small-changeset: 3 linux-medium-js 3 | medium-changeset: 6 linux-medium-js 4 | large-changeset: 10 linux-medium-js 5 | -------------------------------------------------------------------------------- /examples/angular/column-resizing-performant/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/editable/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/filters/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/grouping/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/row-dnd/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/svelte/column-groups/svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 | 3 | export default { 4 | preprocess: vitePreprocess(), 5 | } 6 | -------------------------------------------------------------------------------- /examples/svelte/column-ordering/svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 | 3 | export default { 4 | preprocess: vitePreprocess(), 5 | } 6 | -------------------------------------------------------------------------------- /examples/svelte/column-pinning/svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 | 3 | export default { 4 | preprocess: vitePreprocess(), 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/expanding/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/row-selection/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/signal-input/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/svelte/column-visibility/svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 | 3 | export default { 4 | preprocess: vitePreprocess(), 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/column-ordering/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/column-pinning/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/column-visibility/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/sub-components/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/column-pinning-sticky/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/row-selection-signal/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/angular/column-resizing-performant/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | } 6 | -------------------------------------------------------------------------------- /examples/svelte/basic/src/main.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | import App from './App.svelte' 3 | 4 | const app = new App({ 5 | target: document.getElementById('root')!, 6 | }) 7 | 8 | export default app 9 | -------------------------------------------------------------------------------- /examples/svelte/sorting/src/main.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | import App from './App.svelte' 3 | 4 | const app = new App({ 5 | target: document.getElementById('root')!, 6 | }) 7 | 8 | export default app 9 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /examples/svelte/column-groups/src/main.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | import App from './App.svelte' 3 | 4 | const app = new App({ 5 | target: document.getElementById('root')!, 6 | }) 7 | 8 | export default app 9 | -------------------------------------------------------------------------------- /packages/svelte-table/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./build/lib" 6 | }, 7 | "include": ["src"] 8 | } 9 | -------------------------------------------------------------------------------- /packages/vue-table/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./build/lib" 6 | }, 7 | "include": ["src"] 8 | } 9 | -------------------------------------------------------------------------------- /examples/react/query-router-search-params/src/routes/__root.tsx: -------------------------------------------------------------------------------- 1 | import { createRootRoute, Outlet } from '@tanstack/react-router' 2 | 3 | export const Route = createRootRoute({ 4 | component: Outlet, 5 | }) 6 | -------------------------------------------------------------------------------- /examples/svelte/column-ordering/src/main.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | import App from './App.svelte' 3 | 4 | const app = new App({ 5 | target: document.getElementById('root')!, 6 | }) 7 | 8 | export default app 9 | -------------------------------------------------------------------------------- /examples/svelte/column-pinning/src/main.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | import App from './App.svelte' 3 | 4 | const app = new App({ 5 | target: document.getElementById('root')!, 6 | }) 7 | 8 | export default app 9 | -------------------------------------------------------------------------------- /examples/svelte/column-visibility/src/main.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | import App from './App.svelte' 3 | 4 | const app = new App({ 5 | target: document.getElementById('root')!, 6 | }) 7 | 8 | export default app 9 | -------------------------------------------------------------------------------- /packages/table-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./build/lib" 6 | }, 7 | "include": ["src/**/*"] 8 | } 9 | -------------------------------------------------------------------------------- /examples/vue/basic/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }) 8 | -------------------------------------------------------------------------------- /packages/match-sorter-utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./build/lib" 6 | }, 7 | "include": ["src"] 8 | } 9 | -------------------------------------------------------------------------------- /examples/vue/filters/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }) 8 | -------------------------------------------------------------------------------- /examples/vue/grouping/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }) 8 | -------------------------------------------------------------------------------- /examples/vue/pagination/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }) 8 | -------------------------------------------------------------------------------- /examples/vue/sorting/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }) 8 | -------------------------------------------------------------------------------- /examples/vue/column-ordering/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }) 8 | -------------------------------------------------------------------------------- /examples/vue/column-pinning/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }) 8 | -------------------------------------------------------------------------------- /examples/vue/sub-components/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }) 8 | -------------------------------------------------------------------------------- /examples/vue/virtualized-rows/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }) 8 | -------------------------------------------------------------------------------- /examples/vue/pagination-controlled/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }) 8 | -------------------------------------------------------------------------------- /docs/guide/pinning.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Pinning Guide 3 | --- 4 | 5 | 6 | 7 | Pinning is split into 2 different feature guides: 8 | 9 | - [Column Pinning](./column-pinning.md) 10 | - [Row Pinning](./row-pinning.md) -------------------------------------------------------------------------------- /examples/solid/basic/src/index.tsx: -------------------------------------------------------------------------------- 1 | /* @refresh reload */ 2 | import { render } from 'solid-js/web' 3 | 4 | import './index.css' 5 | import App from './App' 6 | 7 | render(() => , document.getElementById('root') as HTMLElement) 8 | -------------------------------------------------------------------------------- /examples/solid/bootstrap/src/index.tsx: -------------------------------------------------------------------------------- 1 | /* @refresh reload */ 2 | import { render } from 'solid-js/web' 3 | 4 | import './index.css' 5 | import App from './App' 6 | 7 | render(() => , document.getElementById('root') as HTMLElement) 8 | -------------------------------------------------------------------------------- /examples/solid/filters/src/index.tsx: -------------------------------------------------------------------------------- 1 | /* @refresh reload */ 2 | import { render } from 'solid-js/web' 3 | 4 | import './index.css' 5 | import App from './App' 6 | 7 | render(() => , document.getElementById('root') as HTMLElement) 8 | -------------------------------------------------------------------------------- /examples/solid/sorting/src/index.tsx: -------------------------------------------------------------------------------- 1 | /* @refresh reload */ 2 | import { render } from 'solid-js/web' 3 | 4 | import './index.css' 5 | import App from './App' 6 | 7 | render(() => , document.getElementById('root') as HTMLElement) 8 | -------------------------------------------------------------------------------- /packages/react-table/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "jsx": "react", 5 | "rootDir": "./src", 6 | "outDir": "./build/lib" 7 | }, 8 | "include": ["src"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/solid/column-groups/src/index.tsx: -------------------------------------------------------------------------------- 1 | /* @refresh reload */ 2 | import { render } from 'solid-js/web' 3 | 4 | import './index.css' 5 | import App from './App' 6 | 7 | render(() => , document.getElementById('root') as HTMLElement) 8 | -------------------------------------------------------------------------------- /examples/solid/column-ordering/src/index.tsx: -------------------------------------------------------------------------------- 1 | /* @refresh reload */ 2 | import { render } from 'solid-js/web' 3 | 4 | import './index.css' 5 | import App from './App' 6 | 7 | render(() => , document.getElementById('root') as HTMLElement) 8 | -------------------------------------------------------------------------------- /examples/solid/column-visibility/src/index.tsx: -------------------------------------------------------------------------------- 1 | /* @refresh reload */ 2 | import { render } from 'solid-js/web' 3 | 4 | import './index.css' 5 | import App from './App' 6 | 7 | render(() => , document.getElementById('root') as HTMLElement) 8 | -------------------------------------------------------------------------------- /packages/react-table-devtools/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "jsx": "react", 5 | "rootDir": "./src", 6 | "outDir": "./build/lib" 7 | }, 8 | "include": ["src"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/signal-input/src/app/columns.ts: -------------------------------------------------------------------------------- 1 | export type Person = { 2 | firstName: string 3 | lastName: string 4 | age: number 5 | visits: number 6 | progress: number 7 | status: 'relationship' | 'complicated' | 'single' 8 | subRows?: Person[] 9 | } 10 | -------------------------------------------------------------------------------- /examples/vue/row-selection/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | import vueJsx from '@vitejs/plugin-vue-jsx' 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [vue(), vueJsx()], 8 | }) 9 | -------------------------------------------------------------------------------- /packages/solid-table/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "jsx": "preserve", 5 | "jsxImportSource": "solid-js", 6 | "rootDir": "./src", 7 | "outDir": "./build/lib" 8 | }, 9 | "include": ["src"] 10 | } 11 | -------------------------------------------------------------------------------- /docs/api/features/pinning.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Pinning APIs 3 | id: pinning 4 | --- 5 | 6 | 7 | 8 | The pinning apis are now split into multiple api pages: 9 | 10 | - [Column Pinning](../../guide/column-pinning.md) 11 | - [Row Pinning](../../guide/row-pinning.md) -------------------------------------------------------------------------------- /examples/react/full-width-table/README.md: -------------------------------------------------------------------------------- 1 | # Full Width Table (with collapsible cells) 2 | 3 | - [Open this example in a new CodeSandbox](https://codesandbox.io/s/github/tanstack/react-table/tree/master/examples/full-width-table) 4 | - `yarn` and `yarn start` to run and edit the example 5 | -------------------------------------------------------------------------------- /packages/qwik-table/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "jsx": "react-jsx", 5 | "jsxImportSource": "@builder.io/qwik", 6 | "rootDir": "./src", 7 | "outDir": "./build/lib" 8 | }, 9 | "include": ["src"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/basic/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/react/full-width-resizable-table/README.md: -------------------------------------------------------------------------------- 1 | # Full Width Resizable Table 2 | 3 | - [Open this example in a new CodeSandbox](https://codesandbox.io/s/github/tanstack/table/tree/main/examples/react/full-width-resizable-table) 4 | - `yarn` and `yarn start` to run and edit the example 5 | -------------------------------------------------------------------------------- /examples/angular/basic/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core' 2 | import { provideRouter } from '@angular/router' 3 | 4 | import { routes } from './app.routes' 5 | 6 | export const appConfig: ApplicationConfig = { 7 | providers: [provideRouter(routes)], 8 | } 9 | -------------------------------------------------------------------------------- /examples/angular/editable/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/expanding/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/filters/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/grouping/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/row-dnd/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/lit/basic/twind.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from '@twind/core' 2 | import presetAutoprefix from '@twind/preset-autoprefix' 3 | import presetTailwind from '@twind/preset-tailwind/base' 4 | 5 | export default defineConfig({ 6 | presets: [presetAutoprefix(), presetTailwind()], 7 | }) 8 | -------------------------------------------------------------------------------- /examples/qwik/basic/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import { qwikVite } from '@builder.io/qwik/optimizer' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [ 7 | qwikVite({ 8 | csr: true, 9 | }), 10 | ], 11 | }) 12 | -------------------------------------------------------------------------------- /examples/solid/basic/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import solidPlugin from 'vite-plugin-solid' 3 | 4 | export default defineConfig({ 5 | plugins: [solidPlugin()], 6 | build: { 7 | target: 'esnext', 8 | polyfillDynamicImport: false, 9 | }, 10 | }) 11 | -------------------------------------------------------------------------------- /examples/solid/filters/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import solidPlugin from 'vite-plugin-solid' 3 | 4 | export default defineConfig({ 5 | plugins: [solidPlugin()], 6 | build: { 7 | target: 'esnext', 8 | polyfillDynamicImport: false, 9 | }, 10 | }) 11 | -------------------------------------------------------------------------------- /examples/solid/sorting/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import solidPlugin from 'vite-plugin-solid' 3 | 4 | export default defineConfig({ 5 | plugins: [solidPlugin()], 6 | build: { 7 | target: 'esnext', 8 | polyfillDynamicImport: false, 9 | }, 10 | }) 11 | -------------------------------------------------------------------------------- /examples/angular/column-ordering/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/column-pinning/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/row-selection/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/signal-input/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/sub-components/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/qwik/filters/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import { qwikVite } from '@builder.io/qwik/optimizer' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [ 7 | qwikVite({ 8 | csr: true, 9 | }), 10 | ], 11 | }) 12 | -------------------------------------------------------------------------------- /examples/qwik/sorting/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import { qwikVite } from '@builder.io/qwik/optimizer' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [ 7 | qwikVite({ 8 | csr: true, 9 | }), 10 | ], 11 | }) 12 | -------------------------------------------------------------------------------- /examples/solid/bootstrap/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import solidPlugin from 'vite-plugin-solid' 3 | 4 | export default defineConfig({ 5 | plugins: [solidPlugin()], 6 | build: { 7 | target: 'esnext', 8 | polyfillDynamicImport: false, 9 | }, 10 | }) 11 | -------------------------------------------------------------------------------- /examples/solid/column-groups/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import solidPlugin from 'vite-plugin-solid' 3 | 4 | export default defineConfig({ 5 | plugins: [solidPlugin()], 6 | build: { 7 | target: 'esnext', 8 | polyfillDynamicImport: false, 9 | }, 10 | }) 11 | -------------------------------------------------------------------------------- /examples/angular/column-pinning-sticky/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/column-visibility/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/row-selection-signal/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/qwik/row-selection/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import { qwikVite } from '@builder.io/qwik/optimizer' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [ 7 | qwikVite({ 8 | csr: true, 9 | }), 10 | ], 11 | }) 12 | -------------------------------------------------------------------------------- /examples/solid/column-ordering/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import solidPlugin from 'vite-plugin-solid' 3 | 4 | export default defineConfig({ 5 | plugins: [solidPlugin()], 6 | build: { 7 | target: 'esnext', 8 | polyfillDynamicImport: false, 9 | }, 10 | }) 11 | -------------------------------------------------------------------------------- /examples/solid/column-visibility/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import solidPlugin from 'vite-plugin-solid' 3 | 4 | export default defineConfig({ 5 | plugins: [solidPlugin()], 6 | build: { 7 | target: 'esnext', 8 | polyfillDynamicImport: false, 9 | }, 10 | }) 11 | -------------------------------------------------------------------------------- /packages/angular-table/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "./node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "./build/lib", 4 | "lib": { 5 | "entryFile": "src/index.ts" 6 | }, 7 | "deleteDestPath": false, 8 | "allowedNonPeerDependencies": ["@tanstack/table-core"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/column-resizing-performant/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/lit/virtualized-rows/twind.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from '@twind/core' 2 | import presetAutoprefix from '@twind/preset-autoprefix' 3 | import presetTailwind from '@twind/preset-tailwind/base' 4 | 5 | export default defineConfig({ 6 | presets: [presetAutoprefix(), presetTailwind()], 7 | }) 8 | -------------------------------------------------------------------------------- /examples/react/query-router-search-params/src/routes/anotherRoute.tsx: -------------------------------------------------------------------------------- 1 | import { createFileRoute } from '@tanstack/react-router' 2 | 3 | // This just exists to validate types are working 4 | export const Route = createFileRoute('/anotherRoute')({ 5 | validateSearch: () => ({}) as { foo: string; bar: number }, 6 | }) 7 | -------------------------------------------------------------------------------- /packages/lit-table/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "jsx": "react", 5 | "rootDir": "./src", 6 | "outDir": "./build/lib", 7 | "experimentalDecorators": true, 8 | "emitDecoratorMetadata": true 9 | }, 10 | "include": ["src"] 11 | } 12 | -------------------------------------------------------------------------------- /examples/qwik/basic/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true, 8 | "strict": true 9 | }, 10 | "include": ["vite.config.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /examples/qwik/filters/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true, 8 | "strict": true 9 | }, 10 | "include": ["vite.config.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /examples/qwik/sorting/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true, 8 | "strict": true 9 | }, 10 | "include": ["vite.config.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /examples/angular/basic/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/basic/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/filters/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/row-dnd/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/qwik/row-selection/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true, 8 | "strict": true 9 | }, 10 | "include": ["vite.config.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /examples/angular/editable/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/editable/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/expanding/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/expanding/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/filters/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/grouping/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/grouping/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/row-dnd/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/signal-input/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /packages/table-core/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config' 2 | import packageJson from './package.json' 3 | 4 | export default defineConfig({ 5 | test: { 6 | name: packageJson.name, 7 | dir: './tests', 8 | watch: false, 9 | environment: 'node', 10 | globals: true, 11 | }, 12 | }) 13 | -------------------------------------------------------------------------------- /examples/angular/column-ordering/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/column-ordering/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/column-pinning/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/column-pinning/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/column-visibility/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/row-selection/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/row-selection/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/signal-input/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/sub-components/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/sub-components/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/vue/basic/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | -------------------------------------------------------------------------------- /examples/vue/grouping/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | -------------------------------------------------------------------------------- /examples/vue/sorting/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('prettier').Config} */ 4 | const config = { 5 | semi: false, 6 | singleQuote: true, 7 | trailingComma: 'all', 8 | plugins: ['prettier-plugin-svelte'], 9 | overrides: [{ files: '*.svelte', options: { parser: 'svelte' } }], 10 | } 11 | 12 | export default config 13 | -------------------------------------------------------------------------------- /examples/angular/column-pinning-sticky/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/column-visibility/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/row-selection-signal/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/row-selection-signal/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/vue/column-pinning/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | -------------------------------------------------------------------------------- /examples/vue/pagination/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | -------------------------------------------------------------------------------- /examples/vue/row-selection/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | -------------------------------------------------------------------------------- /examples/angular/column-pinning-sticky/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/column-resizing-performant/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": ["jasmine"] 7 | }, 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/vue/column-ordering/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | -------------------------------------------------------------------------------- /examples/vue/virtualized-rows/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | -------------------------------------------------------------------------------- /docs/guide/filters.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Filters Guide 3 | --- 4 | 5 | 6 | 7 | The filter guides are now split into multiple guides: 8 | 9 | - [Column Filtering](./column-filtering.md) 10 | - [Global Filtering](./global-filtering.md) 11 | - [Fuzzy Filtering](./fuzzy-filtering.md) 12 | -------------------------------------------------------------------------------- /examples/angular/column-resizing-performant/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/vue/pagination-controlled/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | -------------------------------------------------------------------------------- /packages/match-sorter-utils/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config' 2 | import packageJson from './package.json' 3 | 4 | export default defineConfig({ 5 | test: { 6 | name: packageJson.name, 7 | dir: './tests', 8 | watch: false, 9 | environment: 'jsdom', 10 | setupFiles: ['./tests/test-setup.ts'], 11 | }, 12 | }) 13 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | cleanupUnusedCatalogs: true 2 | linkWorkspacePackages: true 3 | preferWorkspacePackages: true 4 | 5 | packages: 6 | - 'packages/*' 7 | - 'examples/angular/*' 8 | - 'examples/lit/*' 9 | - 'examples/qwik/*' 10 | - 'examples/react/*' 11 | - 'examples/solid/*' 12 | - 'examples/svelte/*' 13 | - 'examples/vanilla/*' 14 | - 'examples/vue/*' 15 | -------------------------------------------------------------------------------- /examples/angular/basic/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/angular/filters/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/angular/row-dnd/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /packages/react-table/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config' 2 | import packageJson from './package.json' 3 | 4 | export default defineConfig({ 5 | test: { 6 | name: packageJson.name, 7 | dir: './tests', 8 | watch: false, 9 | environment: 'jsdom', 10 | setupFiles: ['./tests/test-setup.ts'], 11 | globals: true, 12 | }, 13 | }) 14 | -------------------------------------------------------------------------------- /examples/angular/editable/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/angular/expanding/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/angular/grouping/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/angular/signal-input/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/angular/column-ordering/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/angular/column-pinning/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/angular/column-visibility/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/angular/row-selection/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/angular/sub-components/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/vue/basic/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/angular/column-pinning-sticky/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/angular/row-selection-signal/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/qwik/basic/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/qwik/filters/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/qwik/sorting/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/vue/filters/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/vue/grouping/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/vue/pagination/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/vue/sorting/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/angular/column-resizing-performant/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /examples/qwik/row-selection/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/vue/row-selection/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/vue/sub-components/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/react/query-router-search-params/src/api/types.ts: -------------------------------------------------------------------------------- 1 | import { PaginationState } from '@tanstack/react-table' 2 | 3 | export type PaginatedData = { 4 | result: T[] 5 | rowCount: number 6 | } 7 | 8 | export type PaginationParams = PaginationState 9 | export type SortParams = { sortBy: `${string}.${'asc' | 'desc'}` } 10 | export type Filters = Partial 11 | -------------------------------------------------------------------------------- /examples/vue/virtualized-rows/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/vue/pagination-controlled/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /docs/api/features/filters.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Filter APIs 3 | id: filters 4 | --- 5 | 6 | 7 | 8 | The Filtering API docs are now split into multiple API doc pages: 9 | 10 | - [Column Faceting](../../guide/column-faceting.md) 11 | - [Global Faceting](../../guide/global-faceting.md) 12 | - [Column Filtering](../../guide/column-filtering.md) 13 | - [Global Filtering](../../guide/global-filtering.md) -------------------------------------------------------------------------------- /packages/angular-table/src/flex-render/context.ts: -------------------------------------------------------------------------------- 1 | import { inject, InjectionToken } from '@angular/core' 2 | 3 | export const FlexRenderComponentProps = new InjectionToken< 4 | NonNullable 5 | >('[@tanstack/angular-table] Flex render component context props') 6 | 7 | export function injectFlexRenderContext>(): T { 8 | return inject(FlexRenderComponentProps) 9 | } 10 | -------------------------------------------------------------------------------- /packages/table-core/rollup.config.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'rollup' 4 | import { buildConfigs } from '../../scripts/getRollupConfig.js' 5 | 6 | export default defineConfig( 7 | buildConfigs({ 8 | name: 'table-core', 9 | jsName: 'TableCore', 10 | outputFile: 'index', 11 | entryFile: 'src/index.ts', 12 | external: [], 13 | globals: {}, 14 | }), 15 | ) 16 | -------------------------------------------------------------------------------- /examples/svelte/basic/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/svelte/tsconfig.json", 3 | "compilerOptions": { 4 | "target": "esnext", 5 | "useDefineForClassFields": true, 6 | "module": "esnext", 7 | "resolveJsonModule": true, 8 | "allowJs": true, 9 | "checkJs": true, 10 | "isolatedModules": true 11 | }, 12 | "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] 13 | } 14 | -------------------------------------------------------------------------------- /examples/svelte/filtering/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/svelte/tsconfig.json", 3 | "compilerOptions": { 4 | "target": "esnext", 5 | "useDefineForClassFields": true, 6 | "module": "esnext", 7 | "resolveJsonModule": true, 8 | "allowJs": true, 9 | "checkJs": true, 10 | "isolatedModules": true 11 | }, 12 | "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] 13 | } 14 | -------------------------------------------------------------------------------- /examples/svelte/sorting/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/svelte/tsconfig.json", 3 | "compilerOptions": { 4 | "target": "esnext", 5 | "useDefineForClassFields": true, 6 | "module": "esnext", 7 | "resolveJsonModule": true, 8 | "allowJs": true, 9 | "checkJs": true, 10 | "isolatedModules": true 11 | }, 12 | "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] 13 | } 14 | -------------------------------------------------------------------------------- /examples/svelte/column-groups/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/svelte/tsconfig.json", 3 | "compilerOptions": { 4 | "target": "esnext", 5 | "useDefineForClassFields": true, 6 | "module": "esnext", 7 | "resolveJsonModule": true, 8 | "allowJs": true, 9 | "checkJs": true, 10 | "isolatedModules": true 11 | }, 12 | "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] 13 | } 14 | -------------------------------------------------------------------------------- /examples/svelte/column-pinning/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/svelte/tsconfig.json", 3 | "compilerOptions": { 4 | "target": "esnext", 5 | "useDefineForClassFields": true, 6 | "module": "esnext", 7 | "resolveJsonModule": true, 8 | "allowJs": true, 9 | "checkJs": true, 10 | "isolatedModules": true 11 | }, 12 | "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] 13 | } 14 | -------------------------------------------------------------------------------- /examples/vue/grouping/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/svelte/column-ordering/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/svelte/tsconfig.json", 3 | "compilerOptions": { 4 | "target": "esnext", 5 | "useDefineForClassFields": true, 6 | "module": "esnext", 7 | "resolveJsonModule": true, 8 | "allowJs": true, 9 | "checkJs": true, 10 | "isolatedModules": true 11 | }, 12 | "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] 13 | } 14 | -------------------------------------------------------------------------------- /examples/svelte/column-visibility/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/svelte/tsconfig.json", 3 | "compilerOptions": { 4 | "target": "esnext", 5 | "useDefineForClassFields": true, 6 | "module": "esnext", 7 | "resolveJsonModule": true, 8 | "allowJs": true, 9 | "checkJs": true, 10 | "isolatedModules": true 11 | }, 12 | "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] 13 | } 14 | -------------------------------------------------------------------------------- /examples/react/kitchen-sink/src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App' 4 | 5 | import './index.css' 6 | 7 | const rootElement = document.getElementById('root') 8 | if (!rootElement) throw new Error('Failed to find the root element') 9 | 10 | ReactDOM.createRoot(rootElement).render( 11 | 12 | 13 | , 14 | ) 15 | -------------------------------------------------------------------------------- /packages/match-sorter-utils/rollup.config.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'rollup' 4 | import { buildConfigs } from '../../scripts/getRollupConfig.js' 5 | 6 | export default defineConfig( 7 | buildConfigs({ 8 | name: 'match-sorter-utils', 9 | jsName: 'MatchSorterUtils', 10 | outputFile: 'index', 11 | entryFile: 'src/index.ts', 12 | external: [], 13 | globals: {}, 14 | }), 15 | ) 16 | -------------------------------------------------------------------------------- /knip.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/knip@5/schema.json", 3 | "ignoreDependencies": ["@size-limit/preset-small-lib", "@tanstack/config"], 4 | "ignoreWorkspaces": ["examples/**"], 5 | "workspaces": { 6 | "packages/match-sorter-utils": { 7 | "ignoreDependencies": ["remove-accents"] 8 | }, 9 | "packages/react-table": { 10 | "ignore": ["**/*.notest.*", "**/makeTestData.ts"] 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/qwik/basic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + Qwik + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/qwik/filters/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + Qwik + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/qwik/sorting/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + Qwik + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/query-router-search-params/src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App' 4 | 5 | import './index.css' 6 | 7 | const rootElement = document.getElementById('root') 8 | if (!rootElement) throw new Error('Failed to find the root element') 9 | 10 | ReactDOM.createRoot(rootElement).render( 11 | 12 | 13 | , 14 | ) 15 | -------------------------------------------------------------------------------- /examples/lit/basic/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import rollupReplace from '@rollup/plugin-replace' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [ 7 | rollupReplace({ 8 | preventAssignment: true, 9 | values: { 10 | __DEV__: JSON.stringify(true), 11 | 'process.env.NODE_ENV': JSON.stringify('development'), 12 | }, 13 | }), 14 | ], 15 | }) 16 | -------------------------------------------------------------------------------- /examples/lit/filters/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import rollupReplace from '@rollup/plugin-replace' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [ 7 | rollupReplace({ 8 | preventAssignment: true, 9 | values: { 10 | __DEV__: JSON.stringify(true), 11 | 'process.env.NODE_ENV': JSON.stringify('development'), 12 | }, 13 | }), 14 | ], 15 | }) 16 | -------------------------------------------------------------------------------- /examples/lit/sorting/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import rollupReplace from '@rollup/plugin-replace' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [ 7 | rollupReplace({ 8 | preventAssignment: true, 9 | values: { 10 | __DEV__: JSON.stringify(true), 11 | 'process.env.NODE_ENV': JSON.stringify('development'), 12 | }, 13 | }), 14 | ], 15 | }) 16 | -------------------------------------------------------------------------------- /examples/qwik/row-selection/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + Qwik + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/full-width-table/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /examples/vanilla/basic/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import rollupReplace from '@rollup/plugin-replace' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [ 7 | rollupReplace({ 8 | preventAssignment: true, 9 | values: { 10 | __DEV__: JSON.stringify(true), 11 | 'process.env.NODE_ENV': JSON.stringify('development'), 12 | }, 13 | }), 14 | ], 15 | }) 16 | -------------------------------------------------------------------------------- /examples/lit/row-selection/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import rollupReplace from '@rollup/plugin-replace' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [ 7 | rollupReplace({ 8 | preventAssignment: true, 9 | values: { 10 | __DEV__: JSON.stringify(true), 11 | 'process.env.NODE_ENV': JSON.stringify('development'), 12 | }, 13 | }), 14 | ], 15 | }) 16 | -------------------------------------------------------------------------------- /examples/react/basic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/bootstrap/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/expanding/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/filters/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/grouping/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/row-dnd/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/sorting/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/vanilla/pagination/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import rollupReplace from '@rollup/plugin-replace' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [ 7 | rollupReplace({ 8 | preventAssignment: true, 9 | values: { 10 | __DEV__: JSON.stringify(true), 11 | 'process.env.NODE_ENV': JSON.stringify('development'), 12 | }, 13 | }), 14 | ], 15 | }) 16 | -------------------------------------------------------------------------------- /examples/vanilla/sorting/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import rollupReplace from '@rollup/plugin-replace' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [ 7 | rollupReplace({ 8 | preventAssignment: true, 9 | values: { 10 | __DEV__: JSON.stringify(true), 11 | 'process.env.NODE_ENV': JSON.stringify('development'), 12 | }, 13 | }), 14 | ], 15 | }) 16 | -------------------------------------------------------------------------------- /examples/lit/virtualized-rows/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import rollupReplace from '@rollup/plugin-replace' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [ 7 | rollupReplace({ 8 | preventAssignment: true, 9 | values: { 10 | __DEV__: JSON.stringify(true), 11 | 'process.env.NODE_ENV': JSON.stringify('development'), 12 | }, 13 | }), 14 | ], 15 | }) 16 | -------------------------------------------------------------------------------- /examples/qwik/basic/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/qwik/filters/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/qwik/sorting/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/basic/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/column-dnd/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/column-groups/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/column-pinning/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/column-sizing/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/editable-data/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/filters-fuzzy/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/kitchen-sink/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/pagination/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/row-pinning/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/row-selection/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/sub-components/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/solid/basic/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/svelte/basic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/svelte/basic/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/svelte/sorting/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /packages/angular-table/tests/test-setup.ts: -------------------------------------------------------------------------------- 1 | import '@analogjs/vitest-angular/setup-zone' 2 | import '@testing-library/jest-dom/vitest' 3 | 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting, 7 | } from '@angular/platform-browser-dynamic/testing' 8 | import { getTestBed } from '@angular/core/testing' 9 | 10 | getTestBed().initTestEnvironment( 11 | BrowserDynamicTestingModule, 12 | platformBrowserDynamicTesting(), 13 | ) 14 | -------------------------------------------------------------------------------- /examples/angular/filters/src/styles.scss: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/lit/sorting-dynamic-data/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import rollupReplace from '@rollup/plugin-replace' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [ 7 | rollupReplace({ 8 | preventAssignment: true, 9 | values: { 10 | __DEV__: JSON.stringify(true), 11 | 'process.env.NODE_ENV': JSON.stringify('development'), 12 | }, 13 | }), 14 | ], 15 | }) 16 | -------------------------------------------------------------------------------- /examples/react/bootstrap/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/column-ordering/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/column-visibility/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/custom-features/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/expanding/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/filters-faceted/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/filters/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/full-width-table/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/fully-controlled/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/grouping/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/sorting/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/solid/bootstrap/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/solid/filters/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/solid/sorting/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/svelte/column-groups/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/svelte/filtering/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/svelte/filtering/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/svelte/sorting/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/vanilla/basic/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/vue/column-ordering/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | .idea 24 | *.suo 25 | *.ntvs* 26 | *.njsproj 27 | *.sln 28 | *.sw? 29 | -------------------------------------------------------------------------------- /examples/vue/column-pinning/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | .idea 24 | *.suo 25 | *.ntvs* 26 | *.njsproj 27 | *.sln 28 | *.sw? 29 | -------------------------------------------------------------------------------- /packages/lit-table/rollup.config.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'rollup' 4 | import { buildConfigs } from '../../scripts/getRollupConfig.js' 5 | 6 | export default defineConfig( 7 | buildConfigs({ 8 | name: 'lit-table', 9 | jsName: 'LitTable', 10 | outputFile: 'index', 11 | entryFile: 'src/index.ts', 12 | external: ['lit', '@tanstack/table-core'], 13 | globals: { 14 | lit: 'Lit', 15 | }, 16 | }), 17 | ) 18 | -------------------------------------------------------------------------------- /packages/vue-table/rollup.config.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'rollup' 4 | import { buildConfigs } from '../../scripts/getRollupConfig.js' 5 | 6 | export default defineConfig( 7 | buildConfigs({ 8 | name: 'vue-table', 9 | jsName: 'VueTable', 10 | outputFile: 'index', 11 | entryFile: 'src/index.ts', 12 | external: ['vue', '@tanstack/table-core'], 13 | globals: { 14 | vue: 'Vue', 15 | }, 16 | }), 17 | ) 18 | -------------------------------------------------------------------------------- /examples/angular/expanding/src/styles.scss: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/angular/grouping/src/styles.scss: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/angular/signal-input/src/styles.scss: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/qwik/row-selection/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/column-groups/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/column-pinning-sticky/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/editable-data/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/filters-faceted/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/filters-fuzzy/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/full-width-table/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/fully-controlled/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/kitchen-sink/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/material-ui-pagination/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/pagination-controlled/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/row-selection/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/sub-components/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/solid/column-groups/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/svelte/column-groups/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/svelte/column-ordering/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/svelte/column-pinning/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/svelte/column-visibility/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/angular/row-selection/src/styles.scss: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/angular/sub-components/src/styles.scss: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/column-resizing-performant/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/column-visibility/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/full-width-resizable-table/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/query-router-search-params/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/solid/column-visibility/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/svelte/column-visibility/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/vue/basic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/angular/row-selection-signal/src/styles.scss: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/material-ui-pagination/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/query-router-search-params/src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | 6 | table { 7 | border: 1px solid lightgray; 8 | } 9 | 10 | tbody { 11 | border-bottom: 1px solid lightgray; 12 | } 13 | 14 | th { 15 | border-bottom: 1px solid lightgray; 16 | border-right: 1px solid lightgray; 17 | padding: 2px 4px; 18 | } 19 | 20 | tfoot { 21 | color: gray; 22 | } 23 | 24 | tfoot th { 25 | font-weight: normal; 26 | } 27 | -------------------------------------------------------------------------------- /examples/react/virtualized-infinite-scrolling/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/vue/filters/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/vue/pagination/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/vue/sorting/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /packages/react-table/rollup.config.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'rollup' 4 | import { buildConfigs } from '../../scripts/getRollupConfig.js' 5 | 6 | export default defineConfig( 7 | buildConfigs({ 8 | name: 'react-table', 9 | jsName: 'ReactTable', 10 | outputFile: 'index', 11 | entryFile: 'src/index.tsx', 12 | external: ['react', '@tanstack/table-core'], 13 | globals: { 14 | react: 'React', 15 | }, 16 | }), 17 | ) 18 | -------------------------------------------------------------------------------- /examples/vue/column-ordering/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/vue/column-pinning/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/vue/row-selection/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/vue/sub-components/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/angular/basic/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/qwik/basic/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tanstack-table-example-qwik-basic", 3 | "private": true, 4 | "type": "module", 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vite build", 8 | "preview": "serve dist" 9 | }, 10 | "devDependencies": { 11 | "@builder.io/qwik": "^1.6.0", 12 | "serve": "^14.2.3", 13 | "typescript": "5.4.5", 14 | "vite": "^5.3.2" 15 | }, 16 | "dependencies": { 17 | "@tanstack/qwik-table": "^8.21.3" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/vue/virtualized-rows/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /docs/vanilla.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Vanilla TS/JS 3 | --- 4 | 5 | The `@tanstack/table-core` library contains the core logic for TanStack Table. If you are using a non-standard framework or don't have access to a framework, you can use the core library directly via TypeScript or JavaScript. 6 | 7 | ## `createTable` 8 | 9 | Takes an `options` object and returns a table. 10 | 11 | ```tsx 12 | import { createTable } from '@tanstack/table-core' 13 | 14 | const table = createTable(options) 15 | ``` 16 | -------------------------------------------------------------------------------- /examples/angular/column-pinning/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/angular/expanding/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Expanding 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/angular/filters/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Selection 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/vue/pagination-controlled/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/angular/column-ordering/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/angular/column-visibility/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/angular/editable/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Editable data 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/angular/row-dnd/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Row Drag and drop 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/angular/row-selection/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Selection 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/angular/sub-components/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Expanding 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/lit/basic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/lit/filters/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/lit/sorting/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /packages/qwik-table/rollup.config.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'rollup' 4 | import { buildConfigs } from '../../scripts/getRollupConfig.js' 5 | 6 | export default defineConfig( 7 | buildConfigs({ 8 | name: 'qwik-table', 9 | jsName: 'QwikTable', 10 | outputFile: 'index', 11 | entryFile: 'src/index.tsx', 12 | external: ['@tanstack/table-core', '@builder.io/qwik'], 13 | globals: { 14 | '@builder.io/qwik': 'Qwik', 15 | }, 16 | }), 17 | ) 18 | -------------------------------------------------------------------------------- /packages/table-core/src/utils/document.ts: -------------------------------------------------------------------------------- 1 | export function safelyAccessDocument(_document?: Document): Document | null { 2 | return _document || (typeof document !== 'undefined' ? document : null) 3 | } 4 | 5 | export function safelyAccessDocumentEvent(event: Event): Document | null { 6 | return !!event && 7 | !!event.target && 8 | typeof event.target === 'object' && 9 | 'ownerDocument' in event.target 10 | ? (event.target.ownerDocument as Document | null) 11 | : null 12 | } 13 | -------------------------------------------------------------------------------- /examples/angular/column-pinning-sticky/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/angular/row-selection-signal/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Selection 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/lit/column-sizing/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/lit/row-selection/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/lit/virtualized-rows/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/vanilla/basic/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tanstack-table-example-vanilla-basic", 3 | "private": true, 4 | "scripts": { 5 | "dev": "vite", 6 | "build": "vite build", 7 | "serve": "vite preview", 8 | "start": "vite" 9 | }, 10 | "devDependencies": { 11 | "@rollup/plugin-replace": "^5.0.7", 12 | "typescript": "5.4.5", 13 | "vite": "^5.3.2" 14 | }, 15 | "dependencies": { 16 | "@tanstack/table-core": "^8.21.3", 17 | "nanostores": "^0.11.3" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/lit/sorting-dynamic-data/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite App 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/react/basic/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | import rollupReplace from '@rollup/plugin-replace' 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [ 8 | rollupReplace({ 9 | preventAssignment: true, 10 | values: { 11 | __DEV__: JSON.stringify(true), 12 | 'process.env.NODE_ENV': JSON.stringify('development'), 13 | }, 14 | }), 15 | react(), 16 | ], 17 | }) 18 | -------------------------------------------------------------------------------- /examples/react/filters/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | import rollupReplace from '@rollup/plugin-replace' 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [ 8 | rollupReplace({ 9 | preventAssignment: true, 10 | values: { 11 | __DEV__: JSON.stringify(true), 12 | 'process.env.NODE_ENV': JSON.stringify('development'), 13 | }, 14 | }), 15 | react(), 16 | ], 17 | }) 18 | -------------------------------------------------------------------------------- /examples/react/grouping/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | import rollupReplace from '@rollup/plugin-replace' 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [ 8 | rollupReplace({ 9 | preventAssignment: true, 10 | values: { 11 | __DEV__: JSON.stringify(true), 12 | 'process.env.NODE_ENV': JSON.stringify('development'), 13 | }, 14 | }), 15 | react(), 16 | ], 17 | }) 18 | -------------------------------------------------------------------------------- /examples/react/row-dnd/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | import rollupReplace from '@rollup/plugin-replace' 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [ 8 | rollupReplace({ 9 | preventAssignment: true, 10 | values: { 11 | __DEV__: JSON.stringify(true), 12 | 'process.env.NODE_ENV': JSON.stringify('development'), 13 | }, 14 | }), 15 | react(), 16 | ], 17 | }) 18 | -------------------------------------------------------------------------------- /examples/react/sorting/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | import rollupReplace from '@rollup/plugin-replace' 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [ 8 | rollupReplace({ 9 | preventAssignment: true, 10 | values: { 11 | __DEV__: JSON.stringify(true), 12 | 'process.env.NODE_ENV': JSON.stringify('development'), 13 | }, 14 | }), 15 | react(), 16 | ], 17 | }) 18 | -------------------------------------------------------------------------------- /examples/vanilla/basic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite + TS 7 | 8 | 9 | 10 |
11 |
12 |
13 | 14 | 15 | 16 | --------------------------------------------------------------------------------