diff --git a/package-lock.json b/package-lock.json index 3f3e082..9607537 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "license": "MIT", "dependencies": { "svelte-keyed": "^1.1.5", + "svelte-render": "^1.5.0", "svelte-subscribe": "^1.0.4" }, "devDependencies": { @@ -7385,10 +7386,18 @@ "sourcemap-codec": "^1.4.8" } }, + "node_modules/svelte-render": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/svelte-render/-/svelte-render-1.5.0.tgz", + "integrity": "sha512-avH7dl6LkJxzi7AbGQScoY58WmjdFQRcr8vTvDAgZwOnrJj7tMIdlIFM0f9lIqYlmO5fbRrrQM3LMXNMe1LWfw==", + "dependencies": { + "svelte-subscribe": "^1.0.5" + } + }, "node_modules/svelte-subscribe": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/svelte-subscribe/-/svelte-subscribe-1.0.4.tgz", - "integrity": "sha512-Pmf+a0zWxuezigoSJnIyhOIIEArnP++HUzrMozca8LzZZ+sK7z37aKoNj65HR/TGhFZcV6s3bDRxpfiXU7fYOg==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/svelte-subscribe/-/svelte-subscribe-1.0.5.tgz", + "integrity": "sha512-p+vRSBVzR9BQC72mjd2eqCv8zx5euLZQJF7QqAw5d41aKzQVOq90y71/NXch+nDNMjWbRo0CX+brcWYgPryJlw==" }, "node_modules/svelte2tsx": { "version": "0.5.9", @@ -13450,10 +13459,18 @@ } } }, + "svelte-render": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/svelte-render/-/svelte-render-1.5.0.tgz", + "integrity": "sha512-avH7dl6LkJxzi7AbGQScoY58WmjdFQRcr8vTvDAgZwOnrJj7tMIdlIFM0f9lIqYlmO5fbRrrQM3LMXNMe1LWfw==", + "requires": { + "svelte-subscribe": "^1.0.5" + } + }, "svelte-subscribe": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/svelte-subscribe/-/svelte-subscribe-1.0.4.tgz", - "integrity": "sha512-Pmf+a0zWxuezigoSJnIyhOIIEArnP++HUzrMozca8LzZZ+sK7z37aKoNj65HR/TGhFZcV6s3bDRxpfiXU7fYOg==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/svelte-subscribe/-/svelte-subscribe-1.0.5.tgz", + "integrity": "sha512-p+vRSBVzR9BQC72mjd2eqCv8zx5euLZQJF7QqAw5d41aKzQVOq90y71/NXch+nDNMjWbRo0CX+brcWYgPryJlw==" }, "svelte2tsx": { "version": "0.5.9", diff --git a/package.json b/package.json index 565b967..0979283 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ }, "dependencies": { "svelte-keyed": "^1.1.5", + "svelte-render": "^1.5.0", "svelte-subscribe": "^1.0.4" }, "type": "module", diff --git a/src/lib/bodyCells.ts b/src/lib/bodyCells.ts index d9c23e6..f0ba221 100644 --- a/src/lib/bodyCells.ts +++ b/src/lib/bodyCells.ts @@ -4,7 +4,7 @@ import type { DataColumn, DisplayColumn, FlatColumn } from './columns'; import { TableComponent } from './tableComponent'; import type { DataLabel, DisplayLabel } from './types/Label'; import type { AnyPlugins } from './types/TablePlugin'; -import type { RenderConfig } from './render'; +import type { RenderConfig } from 'svelte-render'; export type BodyCellInit = { id: string; diff --git a/src/lib/components/Render.svelte b/src/lib/components/Render.svelte deleted file mode 100644 index 0b8fbca..0000000 --- a/src/lib/components/Render.svelte +++ /dev/null @@ -1,24 +0,0 @@ - - -{#if isReadable(rendered)} - - {$readableRendered} -{:else if typeof rendered === 'string' || typeof rendered === 'number'} - {rendered} -{:else if isReadable(rendered.props)} - - - -{:else} - -{/if} diff --git a/src/lib/headerCells.ts b/src/lib/headerCells.ts index f399eb9..68f3500 100644 --- a/src/lib/headerCells.ts +++ b/src/lib/headerCells.ts @@ -3,7 +3,7 @@ import { NBSP } from './constants'; import { TableComponent } from './tableComponent'; import type { HeaderLabel } from './types/Label'; import type { AnyPlugins } from './types/TablePlugin'; -import type { RenderConfig } from './render'; +import type { RenderConfig } from 'svelte-render'; export type HeaderCellInit = { id: string; diff --git a/src/lib/index.ts b/src/lib/index.ts index 6543ea7..9c717db 100644 --- a/src/lib/index.ts +++ b/src/lib/index.ts @@ -1,9 +1,8 @@ // components -export { default as Render } from '$lib/components/Render.svelte'; +export * from 'svelte-render'; export { Subscribe } from 'svelte-subscribe'; // table core export { createTable } from '$lib/createTable'; -export { createRender, type RenderConfig } from '$lib/render'; // models export { Table } from '$lib/createTable'; export { HeaderRow } from '$lib/headerRows'; diff --git a/src/lib/plugins/addColumnFilters.ts b/src/lib/plugins/addColumnFilters.ts index 178ddd8..66614d6 100644 --- a/src/lib/plugins/addColumnFilters.ts +++ b/src/lib/plugins/addColumnFilters.ts @@ -1,8 +1,8 @@ import { keyed } from 'svelte-keyed'; +import type { RenderConfig } from 'svelte-render'; import type { BodyRow } from '$lib/bodyRows'; import type { TablePlugin, NewTablePropSet, DeriveRowsFn } from '$lib/types/TablePlugin'; import { derived, writable, type Readable, type Writable } from 'svelte/store'; -import type { RenderConfig } from '$lib/render'; import type { PluginInitTableState } from '$lib/createViewModel'; import type { DataBodyCell } from '$lib/bodyCells'; diff --git a/src/lib/render.ts b/src/lib/render.ts deleted file mode 100644 index 838f708..0000000 --- a/src/lib/render.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { SvelteComponent } from 'svelte'; -import type { Readable } from 'svelte/store'; - -export type SvelteComponentWithProps< - // eslint-disable-next-line @typescript-eslint/no-explicit-any - Props = any, - C extends SvelteComponent = SvelteComponent -> = AConstructorTypeOf]>; - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -type ComponentRenderConfig = { - component: SvelteComponentWithProps; - props?: Props | Readable; -}; - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export type RenderConfig = - | ComponentRenderConfig - | string - | number - | Readable; - -export function createRender, C extends SvelteComponent>( - component: SvelteComponentWithProps -): ComponentRenderConfig; -export function createRender( - component: SvelteComponentWithProps, - props: Props | Readable -): ComponentRenderConfig; -export function createRender( - component: SvelteComponentWithProps, - props?: Props | Readable -) { - return { - component, - props, - }; -} diff --git a/src/lib/types/Label.ts b/src/lib/types/Label.ts index eb0bcfe..ae06ef7 100644 --- a/src/lib/types/Label.ts +++ b/src/lib/types/Label.ts @@ -1,7 +1,7 @@ +import type { RenderConfig } from 'svelte-render'; import type { DataBodyCell, DisplayBodyCell } from '$lib/bodyCells'; import type { TableState } from '$lib/createViewModel'; import type { HeaderCell } from '$lib/headerCells'; -import type { RenderConfig } from '$lib/render'; import type { AnyPlugins } from './TablePlugin'; // eslint-disable-next-line @typescript-eslint/no-explicit-any