@tanstack/ember-table 9.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +128 -0
  2. package/addon-main.cjs +4 -0
  3. package/declarations/FlexRender.d.ts +63 -0
  4. package/declarations/FlexRender.d.ts.map +1 -0
  5. package/declarations/create-table-hook.d.ts +33 -0
  6. package/declarations/create-table-hook.d.ts.map +1 -0
  7. package/declarations/experimental-worker-plugin.d.ts +2 -0
  8. package/declarations/experimental-worker-plugin.d.ts.map +1 -0
  9. package/declarations/flex-render-helpers.d.ts +25 -0
  10. package/declarations/flex-render-helpers.d.ts.map +1 -0
  11. package/declarations/flex-render.d.ts +3 -0
  12. package/declarations/flex-render.d.ts.map +1 -0
  13. package/declarations/index.d.ts +10 -0
  14. package/declarations/index.d.ts.map +1 -0
  15. package/declarations/reactivity.d.ts +3 -0
  16. package/declarations/reactivity.d.ts.map +1 -0
  17. package/declarations/signal.d.ts +38 -0
  18. package/declarations/signal.d.ts.map +1 -0
  19. package/declarations/static-functions.d.ts +2 -0
  20. package/declarations/static-functions.d.ts.map +1 -0
  21. package/declarations/use-table.d.ts +3 -0
  22. package/declarations/use-table.d.ts.map +1 -0
  23. package/dist/FlexRender-fkWv7pUy.js +128 -0
  24. package/dist/FlexRender-fkWv7pUy.js.map +1 -0
  25. package/dist/experimental-worker-plugin.js +2 -0
  26. package/dist/experimental-worker-plugin.js.map +1 -0
  27. package/dist/flex-render.js +3 -0
  28. package/dist/flex-render.js.map +1 -0
  29. package/dist/index.js +286 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/static-functions.js +2 -0
  32. package/dist/static-functions.js.map +1 -0
  33. package/package.json +147 -0
  34. package/skills/create-table-hook/SKILL.md +117 -0
  35. package/skills/getting-started/SKILL.md +160 -0
  36. package/skills/table-state/SKILL.md +187 -0
  37. package/src/FlexRender.gts +267 -0
  38. package/src/create-table-hook.ts +83 -0
  39. package/src/experimental-worker-plugin.ts +1 -0
  40. package/src/flex-render-helpers.ts +103 -0
  41. package/src/flex-render.ts +6 -0
  42. package/src/index.ts +31 -0
  43. package/src/reactivity.ts +39 -0
  44. package/src/signal.ts +126 -0
  45. package/src/static-functions.ts +1 -0
  46. package/src/use-table.ts +154 -0
package/README.md ADDED
@@ -0,0 +1,128 @@
1
+ <div align="center">
2
+ <img src="./media/header_table.png" alt="TanStack Table">
3
+ </div>
4
+
5
+ <br />
6
+
7
+ <div align="center">
8
+ <a href="https://npmjs.com/package/@tanstack/react-table" target="\_parent">
9
+ <img alt="npm downloads" src="https://img.shields.io/npm/dm/@tanstack/react-table.svg" />
10
+ </a>
11
+ <a href="https://github.com/tanstack/table" target="\_parent">
12
+ <img alt="github stars" src="https://img.shields.io/github/stars/tanstack/react-table.svg?style=social&label=Star" />
13
+ </a>
14
+ <a href="https://bundlephobia.com/result?p=@tanstack/react-table@latest" target="\_parent">
15
+ <img alt="bundle size" src="https://badgen.net/bundlephobia/minzip/@tanstack/react-table@latest" />
16
+ </a>
17
+ </div>
18
+
19
+ <div align="center">
20
+ <a href="#badge">
21
+ <img alt="semantic-release" src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg">
22
+ </a>
23
+ <a href="https://bestofjs.org/projects/tanstack-table"><img alt="Best of JS" src="https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=TanStack%2Ftable%26since=daily" /></a>
24
+ <a href="https://twitter.com/tan_stack"><img src="https://img.shields.io/twitter/follow/tan_stack.svg?style=social" alt="Follow @TanStack"/></a>
25
+ </div>
26
+
27
+ ### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)
28
+
29
+ </div>
30
+
31
+ # TanStack Table
32
+
33
+ > [!NOTE]
34
+ > You may know TanStack Table by the adapter names:
35
+ >
36
+ > - [Angular Table](https://tanstack.com/table/alpha/docs/framework/angular/angular-table)
37
+ > - [Lit Table](https://tanstack.com/table/alpha/docs/framework/lit/lit-table)
38
+ > - [React Table](https://tanstack.com/table/alpha/docs/framework/react/react-table)
39
+ > - [Solid Table](https://tanstack.com/table/alpha/docs/framework/solid/solid-table)
40
+ > - [Svelte Table](https://tanstack.com/table/alpha/docs/framework/svelte/svelte-table)
41
+ > - [Vue Table](https://tanstack.com/table/alpha/docs/framework/vue/vue-table)
42
+ > - [Alpine Table](https://tanstack.com/table/alpha/docs/framework/alpine/alpine-table)
43
+
44
+ A headless table library for building powerful datagrids with full control over markup, styles, and behavior.
45
+
46
+ - Framework‑agnostic core with bindings for React, Vue & Solid
47
+ - 100% customizable — bring your own UI, components, and styles
48
+ - Sorting, filtering, grouping, aggregation & row selection
49
+ - Lightweight, virtualizable & server‑side friendly
50
+
51
+ ### <a href="https://tanstack.com/table">Read the Docs →</a>
52
+
53
+ ## Using an AI Coding Agent?
54
+
55
+ TanStack Table ships [TanStack Intent](https://github.com/TanStack/intent) skills inside each adapter package. After installing the library, run:
56
+
57
+ ```sh
58
+ npx @tanstack/intent@latest install
59
+ ```
60
+
61
+ to add skill-loading guidance for your agent (Claude Code, Cursor, Copilot, etc.). The same CLI also exposes `intent list` to browse available skills and `intent load <skill>` to print one for inspection. Skills version with the library — your agent gets guidance that matches the version of `@tanstack/<framework>-table` you installed. Only available for v9 and above.
62
+
63
+ ## Get Involved
64
+
65
+ - We welcome issues and pull requests!
66
+ - Participate in [GitHub discussions](https://github.com/TanStack/table/discussions)
67
+ - Chat with the community on [Discord](https://discord.com/invite/WrRKjPJ)
68
+ - See [CONTRIBUTING.md](./CONTRIBUTING.md) for setup instructions
69
+
70
+ ## Partners
71
+
72
+ <table align="center">
73
+ <tr>
74
+ <td>
75
+ <a href="https://www.coderabbit.ai/?via=tanstack&dub_id=aCcEEdAOqqutX6OS">
76
+ <picture>
77
+ <source media="(prefers-color-scheme: dark)" srcset="https://tanstack.com/assets/coderabbit-dark-CMcuvjEy.svg" height="40" />
78
+ <source media="(prefers-color-scheme: light)" srcset="https://tanstack.com/assets/coderabbit-light-DVMJ2jHi.svg" height="40" />
79
+ <img src="https://tanstack.com/assets/coderabbit-light-DVMJ2jHi.svg" height="40" alt="CodeRabbit" />
80
+ </picture>
81
+ </a>
82
+ </td>
83
+ <td padding="20">
84
+ <a href="https://www.cloudflare.com?utm_source=tanstack">
85
+ <picture>
86
+ <source media="(prefers-color-scheme: dark)" srcset="https://tanstack.com/assets/cloudflare-white-DQDB7UaL.svg" height="60" />
87
+ <source media="(prefers-color-scheme: light)" srcset="https://tanstack.com/assets/cloudflare-black-CPufaW0B.svg" height="60" />
88
+ <img src="https://tanstack.com/assets/cloudflare-black-CPufaW0B.svg" height="60" alt="Cloudflare" />
89
+ </picture>
90
+ </a>
91
+ </td>
92
+ <td>
93
+ <a href="https://ag-grid.com/react-data-grid/?utm_source=reacttable&utm_campaign=githubreacttable" style="display: flex; align-items: center; border: none;">
94
+ <picture>
95
+ <source media="(prefers-color-scheme: dark)" srcset="./media/ag-grid-dark.svg" height="40" />
96
+ <source media="(prefers-color-scheme: light)" srcset="./media/ag-grid-light.svg" height="40" />
97
+ <img src="https://raw.githubusercontent.com/tannerlinsley/files/master/partners/ag-grid.svg" height="60" alt="AG Grid" />
98
+ </picture>
99
+ </a>
100
+ </td>
101
+ </tr>
102
+ </table>
103
+
104
+ <div align="center">
105
+ <img src="./media/partner_logo.svg" alt="Table & you?" height="65">
106
+ <p>
107
+ We're looking for TanStack Table Partners to join our mission! Partner with us to push the boundaries of TanStack Table and build amazing things together.
108
+ </p>
109
+ <a href="mailto:partners@tanstack.com?subject=TanStack Table Partnership"><b>LET'S CHAT</b></a>
110
+ </div>
111
+
112
+ ## Explore the TanStack Ecosystem
113
+
114
+ - <a href="https://github.com/tanstack/config"><b>TanStack Config</b></a> – Tooling for JS/TS packages
115
+ - <a href="https://github.com/tanstack/db"><b>TanStack DB</b></a> – Reactive sync client store
116
+ - <a href="https://github.com/tanstack/devtools"><b>TanStack DevTools</b></a> – Unified devtools panel
117
+ - <a href="https://github.com/tanstack/form"><b>TanStack Form</b></a> – Type‑safe form state
118
+ - <a href="https://github.com/tanstack/pacer"><b>TanStack Pacer</b></a> – Debouncing, throttling, batching <br/>
119
+ - <a href="https://github.com/tanstack/query"><b>TanStack Query</b></a> – Async state & caching
120
+ - <a href="https://github.com/tanstack/ranger"><b>TanStack Ranger</b></a> – Range & slider primitives
121
+ - <a href="https://github.com/tanstack/router"><b>TanStack Router</b></a> – Type‑safe routing, caching & URL state
122
+ - <a href="https://github.com/tanstack/router"><b>TanStack Start</b></a> – Full‑stack SSR & streaming
123
+ - <a href="https://github.com/tanstack/store"><b>TanStack Store</b></a> – Reactive data store
124
+ - <a href="https://github.com/tanstack/virtual"><b>TanStack Virtual</b></a> – Virtualized rendering
125
+
126
+ … and more at <a href="https://tanstack.com"><b>TanStack.com »</b></a>
127
+
128
+ <!-- USE THE FORCE LUKE -->
package/addon-main.cjs ADDED
@@ -0,0 +1,4 @@
1
+ 'use strict'
2
+
3
+ const { addonV1Shim } = require('@embroider/addon-shim')
4
+ module.exports = addonV1Shim(__dirname)
@@ -0,0 +1,63 @@
1
+ import Component from '@glimmer/component';
2
+ import { FlexRenderComponentConfig } from './flex-render-helpers.ts';
3
+ import type { Cell_Core, CellContext, CellData, Header_Core, HeaderContext, RowData, TableFeatures } from '@tanstack/table-core';
4
+ import type { ComponentLike, ContentValue } from '@glint/template';
5
+ type RenderOptions = Record<string, unknown> | undefined;
6
+ type CellRenderResult<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> = string | number | null | FlexRenderComponentConfig<TFeatures, TData, TValue, RenderOptions>;
7
+ type HeaderRenderResult<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> = string | number | null | FlexRenderComponentConfig<TFeatures, TData, TValue, RenderOptions>;
8
+ interface CellRenderSignature<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData> {
9
+ Args: {
10
+ ctx: CellContext<TFeatures, TData, TValue>;
11
+ options?: Record<string, unknown>;
12
+ };
13
+ }
14
+ interface HeaderRenderSignature<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData> {
15
+ Args: {
16
+ ctx: HeaderContext<TFeatures, TData, TValue>;
17
+ options?: Record<string, unknown>;
18
+ };
19
+ }
20
+ export interface FlexRenderCellSignature<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> {
21
+ Args: {
22
+ cell: Cell_Core<TFeatures, TData, TValue>;
23
+ };
24
+ Element: null;
25
+ }
26
+ export declare class FlexRenderCell<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> extends Component<FlexRenderCellSignature<TFeatures, TData, TValue>> {
27
+ get result(): CellRenderResult<TFeatures, TData, TValue>;
28
+ get resolvedContext(): CellContext<TFeatures, TData, TValue>;
29
+ get isComponent(): boolean;
30
+ get componentToRender(): ComponentLike<CellRenderSignature<TFeatures, TData, TValue>> | undefined;
31
+ get componentOptions(): RenderOptions;
32
+ get content(): ContentValue;
33
+ }
34
+ export interface FlexRenderHeaderSignature<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> {
35
+ Args: {
36
+ header: Header_Core<TFeatures, TData, TValue>;
37
+ };
38
+ Element: null;
39
+ }
40
+ export declare class FlexRenderHeader<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> extends Component<FlexRenderHeaderSignature<TFeatures, TData, TValue>> {
41
+ get result(): HeaderRenderResult<TFeatures, TData, TValue>;
42
+ get resolvedContext(): HeaderContext<TFeatures, TData, TValue>;
43
+ get isComponent(): boolean;
44
+ get componentToRender(): ComponentLike<HeaderRenderSignature<TFeatures, TData, TValue>> | undefined;
45
+ get componentOptions(): RenderOptions;
46
+ get content(): ContentValue;
47
+ }
48
+ export interface FlexRenderFooterSignature<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> {
49
+ Args: {
50
+ footer: Header_Core<TFeatures, TData, TValue>;
51
+ };
52
+ Element: null;
53
+ }
54
+ export declare class FlexRenderFooter<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> extends Component<FlexRenderFooterSignature<TFeatures, TData, TValue>> {
55
+ get result(): HeaderRenderResult<TFeatures, TData, TValue>;
56
+ get resolvedContext(): HeaderContext<TFeatures, TData, TValue>;
57
+ get isComponent(): boolean;
58
+ get componentToRender(): ComponentLike<HeaderRenderSignature<TFeatures, TData, TValue>> | undefined;
59
+ get componentOptions(): RenderOptions;
60
+ get content(): ContentValue;
61
+ }
62
+ export {};
63
+ //# sourceMappingURL=FlexRender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlexRender.d.ts","sourceRoot":"","sources":["../src/FlexRender.gts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { createColumnHelper as coreCreateColumnHelper } from '@tanstack/table-core';
2
+ import type { RowData, Table, TableFeatures, TableOptions } from '@tanstack/table-core';
3
+ export type CreateTableHookOptions<TFeatures extends TableFeatures> = Omit<TableOptions<TFeatures, any>, 'columns' | 'data' | 'state'>;
4
+ export type AppEmberTable<TFeatures extends TableFeatures, TData extends RowData> = Table<TFeatures, TData>;
5
+ export type AppColumnHelper<TFeatures extends TableFeatures, TData extends RowData> = ReturnType<typeof coreCreateColumnHelper<TFeatures, TData>>;
6
+ /**
7
+ * Bundles a feature set and shared default options once so every table in your
8
+ * app can be created without repeating them. Returns a typed column helper
9
+ * factory and a `createAppTable` that wraps {@link useTable}.
10
+ *
11
+ * Unlike the React adapter's hook, this does not pre-bind cell/header
12
+ * components onto the table; render with the `FlexRenderCell`,
13
+ * `FlexRenderHeader`, and `FlexRenderFooter` components as usual.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const { createAppTable, createAppColumnHelper } = createTableHook({
18
+ * features: tableFeatures({ rowSortingFeature, sortedRowModel: createSortedRowModel(), sortFns }),
19
+ * })
20
+ *
21
+ * const columnHelper = createAppColumnHelper<Person>()
22
+ * const columns = columnHelper.columns([...])
23
+ *
24
+ * // inside a Glimmer component; options stay a thunk so tracked reads are reactive
25
+ * table = createAppTable(() => ({ columns, data: this.data }))
26
+ * ```
27
+ */
28
+ export declare function createTableHook<TFeatures extends TableFeatures>({ ...defaultTableOptions }: CreateTableHookOptions<TFeatures>): {
29
+ appFeatures: TFeatures;
30
+ createAppColumnHelper: <TData extends RowData>() => AppColumnHelper<TFeatures, TData>;
31
+ createAppTable: <TData extends RowData>(getTableOptions: () => Omit<TableOptions<TFeatures, TData>, "features">) => AppEmberTable<TFeatures, TData>;
32
+ };
33
+ //# sourceMappingURL=create-table-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-table-hook.d.ts","sourceRoot":"","sources":["../src/create-table-hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAEnF,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,aAAa,EACb,YAAY,EACb,MAAM,sBAAsB,CAAA;AAE7B,MAAM,MAAM,sBAAsB,CAAC,SAAS,SAAS,aAAa,IAAI,IAAI,CAMxE,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,EAC5B,SAAS,GAAG,MAAM,GAAG,OAAO,CAC7B,CAAA;AAED,MAAM,MAAM,aAAa,CACvB,SAAS,SAAS,aAAa,EAC/B,KAAK,SAAS,OAAO,IACnB,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;AAE3B,MAAM,MAAM,eAAe,CACzB,SAAS,SAAS,aAAa,EAC/B,KAAK,SAAS,OAAO,IACnB,UAAU,CAAC,OAAO,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,SAAS,SAAS,aAAa,EAAE,EAC/D,GAAG,mBAAmB,EACvB,EAAE,sBAAsB,CAAC,SAAS,CAAC;iBAyBa,SAAS;4BAxBzB,KAAK,SAAS,OAAO,OAAK,eAAe,CACtE,SAAS,EACT,KAAK,CACN;qBAIuB,KAAK,SAAS,OAAO,mBAC1B,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,KACtE,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC;EAmBnC"}
@@ -0,0 +1,2 @@
1
+ export * from '@tanstack/table-core/experimental-worker-plugin';
2
+ //# sourceMappingURL=experimental-worker-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experimental-worker-plugin.d.ts","sourceRoot":"","sources":["../src/experimental-worker-plugin.ts"],"names":[],"mappings":"AAAA,cAAc,iDAAiD,CAAA"}
@@ -0,0 +1,25 @@
1
+ import type { ComponentLike } from '@glint/template';
2
+ import type { CellContext, CellData, HeaderContext, RowData, TableFeatures } from '@tanstack/table-core';
3
+ export { flexRender } from '@tanstack/table-core/flex-render';
4
+ export type FlexRenderContext<TFeatures extends TableFeatures = TableFeatures, TData extends RowData = RowData, TValue extends CellData = CellData> = CellContext<TFeatures, TData, TValue> | HeaderContext<TFeatures, TData, TValue>;
5
+ export interface FlexRenderableSignature<TFeatures extends TableFeatures = TableFeatures, TData extends RowData = RowData, TValue extends CellData = CellData, TOptions = undefined> {
6
+ Args: {
7
+ ctx: FlexRenderContext<TFeatures, TData, TValue>;
8
+ options?: TOptions;
9
+ };
10
+ }
11
+ export interface CellRenderableSignature<TFeatures extends TableFeatures = TableFeatures, TData extends RowData = RowData, TValue extends CellData = CellData, TOptions = undefined> {
12
+ Args: {
13
+ ctx: CellContext<TFeatures, TData, TValue>;
14
+ options?: TOptions;
15
+ };
16
+ }
17
+ type FlexRenderableComponent<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData, TOptions> = ComponentLike<FlexRenderableSignature<TFeatures, TData, TValue, TOptions>> | ComponentLike<CellRenderableSignature<TFeatures, TData, TValue, TOptions>>;
18
+ export declare class FlexRenderComponentConfig<TFeatures extends TableFeatures = TableFeatures, TData extends RowData = RowData, TValue extends CellData = CellData, TOptions = undefined> {
19
+ readonly component: FlexRenderableComponent<TFeatures, TData, TValue, TOptions>;
20
+ readonly options?: TOptions;
21
+ constructor(component: FlexRenderableComponent<TFeatures, TData, TValue, TOptions>, options?: TOptions);
22
+ }
23
+ export declare function flexRenderComponent<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData>(component: FlexRenderableComponent<TFeatures, TData, TValue, undefined>): FlexRenderComponentConfig<TFeatures, TData, TValue, undefined>;
24
+ export declare function flexRenderComponent<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData, TOptions>(component: FlexRenderableComponent<TFeatures, TData, TValue, TOptions>, options: TOptions): FlexRenderComponentConfig<TFeatures, TData, TValue, TOptions>;
25
+ //# sourceMappingURL=flex-render-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flex-render-helpers.d.ts","sourceRoot":"","sources":["../src/flex-render-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACb,OAAO,EACP,aAAa,EACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAE7D,MAAM,MAAM,iBAAiB,CAC3B,SAAS,SAAS,aAAa,GAAG,aAAa,EAC/C,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,MAAM,SAAS,QAAQ,GAAG,QAAQ,IAEhC,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,GACrC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AAE3C,MAAM,WAAW,uBAAuB,CACtC,SAAS,SAAS,aAAa,GAAG,aAAa,EAC/C,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,QAAQ,GAAG,SAAS;IAEpB,IAAI,EAAE;QACJ,GAAG,EAAE,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAChD,OAAO,CAAC,EAAE,QAAQ,CAAA;KACnB,CAAA;CACF;AAED,MAAM,WAAW,uBAAuB,CACtC,SAAS,SAAS,aAAa,GAAG,aAAa,EAC/C,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,QAAQ,GAAG,SAAS;IAEpB,IAAI,EAAE;QACJ,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAC1C,OAAO,CAAC,EAAE,QAAQ,CAAA;KACnB,CAAA;CACF;AAED,KAAK,uBAAuB,CAC1B,SAAS,SAAS,aAAa,EAC/B,KAAK,SAAS,OAAO,EACrB,MAAM,SAAS,QAAQ,EACvB,QAAQ,IAEN,aAAa,CAAC,uBAAuB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,GAC1E,aAAa,CAAC,uBAAuB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE9E,qBAAa,yBAAyB,CACpC,SAAS,SAAS,aAAa,GAAG,aAAa,EAC/C,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,QAAQ,GAAG,SAAS;IAEpB,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CACzC,SAAS,EACT,KAAK,EACL,MAAM,EACN,QAAQ,CACT,CAAA;IACD,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAA;gBAGzB,SAAS,EAAE,uBAAuB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EACtE,OAAO,CAAC,EAAE,QAAQ;CAKrB;AAED,wBAAgB,mBAAmB,CACjC,SAAS,SAAS,aAAa,EAC/B,KAAK,SAAS,OAAO,EACrB,MAAM,SAAS,QAAQ,EAEvB,SAAS,EAAE,uBAAuB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,GACtE,yBAAyB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;AAEjE,wBAAgB,mBAAmB,CACjC,SAAS,SAAS,aAAa,EAC/B,KAAK,SAAS,OAAO,EACrB,MAAM,SAAS,QAAQ,EACvB,QAAQ,EAER,SAAS,EAAE,uBAAuB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EACtE,OAAO,EAAE,QAAQ,GAChB,yBAAyB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './flex-render-helpers.ts';
2
+ export { FlexRenderCell, FlexRenderHeader, FlexRenderFooter, } from './FlexRender';
3
+ //# sourceMappingURL=flex-render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flex-render.d.ts","sourceRoot":"","sources":["../src/flex-render.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,10 @@
1
+ export * from '@tanstack/table-core';
2
+ export { useTable } from './use-table.ts';
3
+ export { createTableHook } from './create-table-hook.ts';
4
+ export type { CreateTableHookOptions, AppEmberTable, AppColumnHelper, } from './create-table-hook.ts';
5
+ export { flexRender, flexRenderComponent, FlexRenderComponentConfig, } from './flex-render.ts';
6
+ export type { FlexRenderableSignature, CellRenderableSignature, FlexRenderContext, } from './flex-render.ts';
7
+ export { FlexRenderCell, FlexRenderHeader, FlexRenderFooter, } from './FlexRender';
8
+ export { emberReactivity } from './reactivity.ts';
9
+ export { computed, signal, createAtom, Signal, ComputedSignal, } from './signal.ts';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,eAAe,GAChB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAA;AACzB,YAAY,EACV,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EACL,QAAQ,EACR,MAAM,EACN,UAAU,EACV,MAAM,EACN,cAAc,GACf,MAAM,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { TableReactivityBindings } from '@tanstack/table-core/reactivity';
2
+ export declare function emberReactivity(): TableReactivityBindings;
3
+ //# sourceMappingURL=reactivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactivity.d.ts","sourceRoot":"","sources":["../src/reactivity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,iCAAiC,CAAA;AAKxC,wBAAgB,eAAe,IAAI,uBAAuB,CA6BzD"}
@@ -0,0 +1,38 @@
1
+ import type { Atom, AtomOptions, Observer, Subscription } from '@tanstack/store';
2
+ export declare function subscribeNoEffect(): Subscription;
3
+ /**
4
+ * Ember-native signal implementation.
5
+ * In future ember >7.3 `tracked` will be available by itself
6
+ * so the class wrapper will not be needed for those versions
7
+ */
8
+ export declare class Signal<T> {
9
+ #private;
10
+ _value: T;
11
+ constructor(value: T, options: AtomOptions<T> | undefined);
12
+ subscribe(listenerOrObserver: Observer<T> | ((value: T) => void)): Subscription;
13
+ get(): T;
14
+ set(value: T | ((prev: T) => T)): void;
15
+ get value(): T;
16
+ set value(next: T);
17
+ update(fn: (value: T) => T): void;
18
+ }
19
+ export declare class ComputedSignal<T> {
20
+ #private;
21
+ constructor(compute: () => T);
22
+ get(): T;
23
+ subscribe: typeof subscribeNoEffect;
24
+ get value(): T;
25
+ }
26
+ export declare function signal<T>(value: T, options: AtomOptions<T> | undefined): Signal<T>;
27
+ /**
28
+ * Creates an Ember-native writable atom, satisfying the `@tanstack/store`
29
+ * `Atom` contract so it can be passed to `options.atoms`. Because it is backed
30
+ * by a `@tracked` Signal, reading `atom.get()` directly in a template or
31
+ * getter is reactive — unlike a foreign `@tanstack/store` atom, whose reads
32
+ * create no Glimmer tag dependency.
33
+ *
34
+ * Takes a plain initial value only; there is no derived/function overload.
35
+ */
36
+ export declare function createAtom<T>(initialValue: T, options?: AtomOptions<T>): Atom<T>;
37
+ export declare function computed<T>(fn: () => T): ComputedSignal<T>;
38
+ //# sourceMappingURL=signal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../src/signal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAKhF,wBAAgB,iBAAiB,IAAI,YAAY,CAEhD;AAED;;;;GAIG;AACH,qBAAa,MAAM,CAAC,CAAC;;IACV,MAAM,IAAA;gBASH,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS;IAKzD,SAAS,CACP,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,GACrD,YAAY;IAcf,GAAG;IAGH,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;IAQ/B,IAAI,KAAK,IAIO,CAAC,CAFhB;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAehB;IAED,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;CAK3B;AAED,qBAAa,cAAc,CAAC,CAAC;;gBAGf,OAAO,EAAE,MAAM,CAAC;IAI5B,GAAG;IAIH,SAAS,2BAAoB;IAE7B,IACI,KAAK,MAER;CACF;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,aAEtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,YAAY,EAAE,CAAC,EACf,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACvB,IAAI,CAAC,CAAC,CAAC,CAET;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,qBAEtC"}
@@ -0,0 +1,2 @@
1
+ export * from '@tanstack/table-core/static-functions';
2
+ //# sourceMappingURL=static-functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-functions.d.ts","sourceRoot":"","sources":["../src/static-functions.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { RowData, Table, TableFeatures, TableOptions } from '@tanstack/table-core';
2
+ export declare function useTable<TFeatures extends TableFeatures, TData extends RowData>(getOptions: () => TableOptions<TFeatures, TData>): Table<TFeatures, TData>;
3
+ //# sourceMappingURL=use-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-table.d.ts","sourceRoot":"","sources":["../src/use-table.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,aAAa,EACb,YAAY,EAEb,MAAM,sBAAsB,CAAA;AAkB7B,wBAAgB,QAAQ,CACtB,SAAS,SAAS,aAAa,EAC/B,KAAK,SAAS,OAAO,EACrB,UAAU,EAAE,MAAM,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CA0H3E"}
@@ -0,0 +1,128 @@
1
+ import Component from '@glimmer/component';
2
+ import { flexRender } from '@tanstack/table-core/flex-render';
3
+ import { precompileTemplate } from '@ember/template-compilation';
4
+ import { setComponentTemplate } from '@ember/component';
5
+
6
+ class FlexRenderComponentConfig {
7
+ component;
8
+ options;
9
+ constructor(component, options) {
10
+ this.component = component;
11
+ this.options = options;
12
+ }
13
+ }
14
+ function flexRenderComponent(component, options) {
15
+ return new FlexRenderComponentConfig(component, options);
16
+ }
17
+
18
+ class FlexRenderCell extends Component {
19
+ get result() {
20
+ const cell = this.args.cell;
21
+ return flexRender(cell.column.columnDef.cell, cell.getContext());
22
+ }
23
+ get resolvedContext() {
24
+ return this.args.cell.getContext();
25
+ }
26
+ get isComponent() {
27
+ return this.result instanceof FlexRenderComponentConfig;
28
+ }
29
+ get componentToRender() {
30
+ const result = this.result;
31
+ if (result instanceof FlexRenderComponentConfig) {
32
+ return result.component;
33
+ }
34
+ return undefined;
35
+ }
36
+ get componentOptions() {
37
+ const result = this.result;
38
+ if (result instanceof FlexRenderComponentConfig) {
39
+ return result.options;
40
+ }
41
+ return undefined;
42
+ }
43
+ get content() {
44
+ return this.result;
45
+ }
46
+ static {
47
+ setComponentTemplate(precompileTemplate("{{#if this.isComponent}}\n <this.componentToRender @ctx={{this.resolvedContext}} @options={{this.componentOptions}} />\n{{else}}\n {{this.content}}\n{{/if}}", {
48
+ strictMode: true
49
+ }), this);
50
+ }
51
+ }
52
+ // --- FlexRenderHeader ---
53
+
54
+ class FlexRenderHeader extends Component {
55
+ get result() {
56
+ const header = this.args.header;
57
+ if (header.isPlaceholder) return null;
58
+ return flexRender(header.column.columnDef.header, header.getContext());
59
+ }
60
+ get resolvedContext() {
61
+ return this.args.header.getContext();
62
+ }
63
+ get isComponent() {
64
+ return this.result instanceof FlexRenderComponentConfig;
65
+ }
66
+ get componentToRender() {
67
+ const result = this.result;
68
+ if (result instanceof FlexRenderComponentConfig) {
69
+ return result.component;
70
+ }
71
+ return undefined;
72
+ }
73
+ get componentOptions() {
74
+ const result = this.result;
75
+ if (result instanceof FlexRenderComponentConfig) {
76
+ return result.options;
77
+ }
78
+ return undefined;
79
+ }
80
+ get content() {
81
+ return this.result;
82
+ }
83
+ static {
84
+ setComponentTemplate(precompileTemplate("{{#if this.isComponent}}\n <this.componentToRender @ctx={{this.resolvedContext}} @options={{this.componentOptions}} />\n{{else}}\n {{this.content}}\n{{/if}}", {
85
+ strictMode: true
86
+ }), this);
87
+ }
88
+ }
89
+ // --- FlexRenderFooter ---
90
+
91
+ class FlexRenderFooter extends Component {
92
+ get result() {
93
+ const footer = this.args.footer;
94
+ if (footer.isPlaceholder) return null;
95
+ return flexRender(footer.column.columnDef.footer, footer.getContext());
96
+ }
97
+ get resolvedContext() {
98
+ return this.args.footer.getContext();
99
+ }
100
+ get isComponent() {
101
+ return this.result instanceof FlexRenderComponentConfig;
102
+ }
103
+ get componentToRender() {
104
+ const result = this.result;
105
+ if (result instanceof FlexRenderComponentConfig) {
106
+ return result.component;
107
+ }
108
+ return undefined;
109
+ }
110
+ get componentOptions() {
111
+ const result = this.result;
112
+ if (result instanceof FlexRenderComponentConfig) {
113
+ return result.options;
114
+ }
115
+ return undefined;
116
+ }
117
+ get content() {
118
+ return this.result;
119
+ }
120
+ static {
121
+ setComponentTemplate(precompileTemplate("{{#if this.isComponent}}\n <this.componentToRender @ctx={{this.resolvedContext}} @options={{this.componentOptions}} />\n{{else}}\n {{this.content}}\n{{/if}}", {
122
+ strictMode: true
123
+ }), this);
124
+ }
125
+ }
126
+
127
+ export { FlexRenderCell as F, FlexRenderComponentConfig as a, FlexRenderFooter as b, FlexRenderHeader as c, flexRenderComponent as f };
128
+ //# sourceMappingURL=FlexRender-fkWv7pUy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlexRender-fkWv7pUy.js","sources":["../src/flex-render-helpers.ts","../src/FlexRender.gts"],"sourcesContent":["import type { ComponentLike } from '@glint/template'\nimport type {\n CellContext,\n CellData,\n HeaderContext,\n RowData,\n TableFeatures,\n} from '@tanstack/table-core'\nexport { flexRender } from '@tanstack/table-core/flex-render'\n\nexport type FlexRenderContext<\n TFeatures extends TableFeatures = TableFeatures,\n TData extends RowData = RowData,\n TValue extends CellData = CellData,\n> =\n | CellContext<TFeatures, TData, TValue>\n | HeaderContext<TFeatures, TData, TValue>\n\nexport interface FlexRenderableSignature<\n TFeatures extends TableFeatures = TableFeatures,\n TData extends RowData = RowData,\n TValue extends CellData = CellData,\n TOptions = undefined,\n> {\n Args: {\n ctx: FlexRenderContext<TFeatures, TData, TValue>\n options?: TOptions\n }\n}\n\nexport interface CellRenderableSignature<\n TFeatures extends TableFeatures = TableFeatures,\n TData extends RowData = RowData,\n TValue extends CellData = CellData,\n TOptions = undefined,\n> {\n Args: {\n ctx: CellContext<TFeatures, TData, TValue>\n options?: TOptions\n }\n}\n\ntype FlexRenderableComponent<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData,\n TOptions,\n> =\n | ComponentLike<FlexRenderableSignature<TFeatures, TData, TValue, TOptions>>\n | ComponentLike<CellRenderableSignature<TFeatures, TData, TValue, TOptions>>\n\nexport class FlexRenderComponentConfig<\n TFeatures extends TableFeatures = TableFeatures,\n TData extends RowData = RowData,\n TValue extends CellData = CellData,\n TOptions = undefined,\n> {\n readonly component: FlexRenderableComponent<\n TFeatures,\n TData,\n TValue,\n TOptions\n >\n readonly options?: TOptions\n\n constructor(\n component: FlexRenderableComponent<TFeatures, TData, TValue, TOptions>,\n options?: TOptions,\n ) {\n this.component = component\n this.options = options\n }\n}\n\nexport function flexRenderComponent<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData,\n>(\n component: FlexRenderableComponent<TFeatures, TData, TValue, undefined>,\n): FlexRenderComponentConfig<TFeatures, TData, TValue, undefined>\n\nexport function flexRenderComponent<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData,\n TOptions,\n>(\n component: FlexRenderableComponent<TFeatures, TData, TValue, TOptions>,\n options: TOptions,\n): FlexRenderComponentConfig<TFeatures, TData, TValue, TOptions>\n\nexport function flexRenderComponent<\n TFeatures extends TableFeatures = TableFeatures,\n TData extends RowData = RowData,\n TValue extends CellData = CellData,\n TOptions = undefined,\n>(\n component: FlexRenderableComponent<TFeatures, TData, TValue, TOptions>,\n options?: TOptions,\n): FlexRenderComponentConfig<TFeatures, TData, TValue, TOptions> {\n return new FlexRenderComponentConfig(component, options)\n}\n","import Component from '@glimmer/component'\nimport { FlexRenderComponentConfig } from './flex-render-helpers.ts'\nimport { flexRender } from '@tanstack/table-core/flex-render'\nimport type {\n Cell_Core,\n CellContext,\n CellData,\n Header_Core,\n HeaderContext,\n RowData,\n TableFeatures,\n} from '@tanstack/table-core'\nimport type { ComponentLike, ContentValue } from '@glint/template'\n\ntype RenderOptions = Record<string, unknown> | undefined\n\ntype CellRenderResult<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n> =\n | string\n | number\n | null\n | FlexRenderComponentConfig<TFeatures, TData, TValue, RenderOptions>\n\ntype HeaderRenderResult<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n> =\n | string\n | number\n | null\n | FlexRenderComponentConfig<TFeatures, TData, TValue, RenderOptions>\n\ninterface CellRenderSignature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData,\n> {\n Args: {\n ctx: CellContext<TFeatures, TData, TValue>\n options?: Record<string, unknown>\n }\n}\n\ninterface HeaderRenderSignature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData,\n> {\n Args: {\n ctx: HeaderContext<TFeatures, TData, TValue>\n options?: Record<string, unknown>\n }\n}\n\n// --- FlexRenderCell ---\n\nexport interface FlexRenderCellSignature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n> {\n Args: {\n cell: Cell_Core<TFeatures, TData, TValue>\n }\n Element: null\n}\n\nexport class FlexRenderCell<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n> extends Component<FlexRenderCellSignature<TFeatures, TData, TValue>> {\n get result(): CellRenderResult<TFeatures, TData, TValue> {\n const cell = this.args.cell\n return flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n ) as CellRenderResult<TFeatures, TData, TValue>\n }\n\n get resolvedContext(): CellContext<TFeatures, TData, TValue> {\n return this.args.cell.getContext()\n }\n\n get isComponent(): boolean {\n return this.result instanceof FlexRenderComponentConfig\n }\n\n get componentToRender():\n | ComponentLike<CellRenderSignature<TFeatures, TData, TValue>>\n | undefined {\n const result = this.result\n if (result instanceof FlexRenderComponentConfig) {\n return result.component\n }\n return undefined\n }\n\n get componentOptions(): RenderOptions {\n const result = this.result\n if (result instanceof FlexRenderComponentConfig) {\n return result.options\n }\n return undefined\n }\n\n get content(): ContentValue {\n return this.result as ContentValue\n }\n\n <template>\n {{#if this.isComponent}}\n <this.componentToRender\n @ctx={{this.resolvedContext}}\n @options={{this.componentOptions}}\n />\n {{else}}\n {{this.content}}\n {{/if}}\n </template>\n}\n\n// --- FlexRenderHeader ---\n\nexport interface FlexRenderHeaderSignature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n> {\n Args: {\n header: Header_Core<TFeatures, TData, TValue>\n }\n Element: null\n}\n\nexport class FlexRenderHeader<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n> extends Component<FlexRenderHeaderSignature<TFeatures, TData, TValue>> {\n get result(): HeaderRenderResult<TFeatures, TData, TValue> {\n const header = this.args.header\n if (header.isPlaceholder) return null\n return flexRender(\n header.column.columnDef.header,\n header.getContext(),\n ) as HeaderRenderResult<TFeatures, TData, TValue>\n }\n\n get resolvedContext(): HeaderContext<TFeatures, TData, TValue> {\n return this.args.header.getContext()\n }\n\n get isComponent(): boolean {\n return this.result instanceof FlexRenderComponentConfig\n }\n\n get componentToRender():\n | ComponentLike<HeaderRenderSignature<TFeatures, TData, TValue>>\n | undefined {\n const result = this.result\n if (result instanceof FlexRenderComponentConfig) {\n return result.component as unknown as ComponentLike<\n HeaderRenderSignature<TFeatures, TData, TValue>\n >\n }\n return undefined\n }\n\n get componentOptions(): RenderOptions {\n const result = this.result\n if (result instanceof FlexRenderComponentConfig) {\n return result.options\n }\n return undefined\n }\n\n get content(): ContentValue {\n return this.result as ContentValue\n }\n\n <template>\n {{#if this.isComponent}}\n <this.componentToRender\n @ctx={{this.resolvedContext}}\n @options={{this.componentOptions}}\n />\n {{else}}\n {{this.content}}\n {{/if}}\n </template>\n}\n\n// --- FlexRenderFooter ---\n\nexport interface FlexRenderFooterSignature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n> {\n Args: {\n footer: Header_Core<TFeatures, TData, TValue>\n }\n Element: null\n}\n\nexport class FlexRenderFooter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n> extends Component<FlexRenderFooterSignature<TFeatures, TData, TValue>> {\n get result(): HeaderRenderResult<TFeatures, TData, TValue> {\n const footer = this.args.footer\n if (footer.isPlaceholder) return null\n return flexRender(\n footer.column.columnDef.footer,\n footer.getContext(),\n ) as HeaderRenderResult<TFeatures, TData, TValue>\n }\n\n get resolvedContext(): HeaderContext<TFeatures, TData, TValue> {\n return this.args.footer.getContext()\n }\n\n get isComponent(): boolean {\n return this.result instanceof FlexRenderComponentConfig\n }\n\n get componentToRender():\n | ComponentLike<HeaderRenderSignature<TFeatures, TData, TValue>>\n | undefined {\n const result = this.result\n if (result instanceof FlexRenderComponentConfig) {\n return result.component as unknown as ComponentLike<\n HeaderRenderSignature<TFeatures, TData, TValue>\n >\n }\n return undefined\n }\n\n get componentOptions(): RenderOptions {\n const result = this.result\n if (result instanceof FlexRenderComponentConfig) {\n return result.options\n }\n return undefined\n }\n\n get content(): ContentValue {\n return this.result as ContentValue\n }\n\n <template>\n {{#if this.isComponent}}\n <this.componentToRender\n @ctx={{this.resolvedContext}}\n @options={{this.componentOptions}}\n />\n {{else}}\n {{this.content}}\n {{/if}}\n </template>\n}\n"],"names":["FlexRenderComponentConfig","component","options","constructor","flexRenderComponent","FlexRenderCell","Component","result","cell","args","flexRender","column","columnDef","getContext","resolvedContext","isComponent","componentToRender","undefined","componentOptions","content","setComponentTemplate","precompileTemplate","strictMode","FlexRenderHeader","header","isPlaceholder","FlexRenderFooter","footer"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from '@tanstack/table-core/experimental-worker-plugin';
2
+ //# sourceMappingURL=experimental-worker-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experimental-worker-plugin.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { F as FlexRenderCell, a as FlexRenderComponentConfig, b as FlexRenderFooter, c as FlexRenderHeader, f as flexRenderComponent } from './FlexRender-fkWv7pUy.js';
2
+ export { flexRender } from '@tanstack/table-core/flex-render';
3
+ //# sourceMappingURL=flex-render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flex-render.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}