UNPKG

@tanstack/svelte-table

Version:

Headless UI for building powerful tables & datagrids for Svelte.

1 lines 12.4 kB
{"version":3,"file":"index.mjs","sources":["../../src/placeholder.svelte","../../src/placeholder.ts","../../src/render-component.ts","../../src/index.ts"],"sourcesContent":["<script>\n export let content\n</script>\n\n{content}\n","import type { SvelteComponentDev } from 'svelte/internal'\nimport { create_ssr_component, escape } from 'svelte/internal'\nimport PlaceholderClient from './placeholder.svelte'\n\ntype X = typeof PlaceholderClient\n\nconst PlaceholderServer = create_ssr_component(\n ($$result: any, $$props: any, $$bindings: any, slots: any) => {\n return `${escape($$props.content)}`\n }\n) as any as typeof SvelteComponentDev\n\nexport default typeof document === 'undefined'\n ? PlaceholderServer\n : PlaceholderClient\n","import type { ComponentType, ComponentProps } from 'svelte'\nimport {\n SvelteComponent,\n claim_component,\n create_component,\n destroy_component,\n init,\n mount_component,\n noop,\n safe_not_equal,\n transition_in,\n transition_out,\n create_ssr_component,\n validate_component,\n} from 'svelte/internal'\n\nfunction create_fragment(ctx: any, Comp: any, props: any) {\n let c: any\n let current: any\n c = new Comp({ props, $$inline: true })\n\n return {\n c() {\n create_component(c.$$.fragment)\n },\n l(nodes: any) {\n claim_component(c.$$.fragment, nodes)\n },\n m(target: any, anchor: any) {\n // @ts-ignore\n mount_component(c, target, anchor)\n current = true\n },\n p: noop,\n i(local: any) {\n if (current) return\n transition_in(c.$$.fragment, local)\n current = true\n },\n o(local: any) {\n transition_out(c.$$.fragment, local)\n current = false\n },\n d(detaching: any) {\n destroy_component(c, detaching)\n },\n }\n}\n\nfunction renderClient<T>(\n Comp: T,\n props: T extends ComponentType<infer C> ? ComponentProps<C> : any\n) {\n return class WrapperComp extends SvelteComponent {\n constructor(options: any) {\n super()\n init(\n this,\n options,\n null,\n (ctx: any) => create_fragment(ctx, Comp, props),\n safe_not_equal,\n {},\n undefined\n )\n }\n } as ComponentType\n}\n\nfunction renderServer<T>(\n Comp: T,\n props: T extends ComponentType<infer C> ? ComponentProps<C> : any\n) {\n const WrapperComp = create_ssr_component(\n ($$result: any, $$props: any, $$bindings: any, slots: any) => {\n return `${validate_component(Comp, 'TableComponent').$$render(\n $$result,\n props,\n {},\n {}\n )}`\n }\n )\n\n return WrapperComp as unknown as ComponentType\n}\n\nexport const renderComponent =\n typeof window === 'undefined' ? renderServer : renderClient\n","import {\n RowData,\n createTable,\n TableOptions,\n TableOptionsResolved,\n} from '@tanstack/table-core'\nimport Placeholder from './placeholder'\nimport type { ComponentType } from 'svelte'\nimport { SvelteComponent } from 'svelte/internal'\nimport { readable, writable, derived, Readable, get } from 'svelte/store'\nimport { renderComponent } from './render-component'\n\nexport { renderComponent } from './render-component'\n\nexport * from '@tanstack/table-core'\n\nfunction isSvelteServerComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$render === 'function' &&\n typeof component.render === 'function'\n )\n}\n\nfunction isSvelteClientComponent(component: any) {\n let isHMR = '__SVELTE_HMR' in window\n\n return (\n component.prototype instanceof SvelteComponent ||\n (isHMR &&\n component.name?.startsWith('Proxy<') &&\n component.name?.endsWith('>'))\n )\n}\n\nfunction isSvelteComponent(component: any) {\n if (typeof document === 'undefined') {\n return isSvelteServerComponent(component)\n } else {\n return isSvelteClientComponent(component)\n }\n}\n\nfunction wrapInPlaceholder(content: any) {\n return renderComponent(Placeholder, { content })\n}\n\nexport function flexRender(component: any, props: any): ComponentType | null {\n if (!component) return null\n\n if (isSvelteComponent(component)) {\n return renderComponent(component, props)\n }\n\n if (typeof component === 'function') {\n const result = component(props)\n if (result === null || result === undefined) return null\n\n if (isSvelteComponent(result)) {\n return renderComponent(result, props)\n }\n\n return wrapInPlaceholder(result)\n }\n\n return wrapInPlaceholder(component)\n}\n\ntype ReadableOrVal<T> = T | Readable<T>\n\nexport function createSvelteTable<TData extends RowData>(\n options: ReadableOrVal<TableOptions<TData>>\n) {\n let optionsStore: Readable<TableOptions<TData>>\n\n if ('subscribe' in options) {\n optionsStore = options\n } else {\n optionsStore = readable(options)\n }\n\n let resolvedOptions: TableOptionsResolved<TData> = {\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n renderFallbackValue: null,\n ...get(optionsStore),\n }\n\n let table = createTable(resolvedOptions)\n\n let stateStore = writable(/** @type {number} */ table.initialState)\n // combine stores\n let stateOptionsStore = derived([stateStore, optionsStore], s => s)\n const tableReadable = readable(table, function start(set) {\n const unsubscribe = stateOptionsStore.subscribe(([state, options]) => {\n table.setOptions(prev => {\n return {\n ...prev,\n ...options,\n state: { ...state, ...options.state },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n if (updater instanceof Function) {\n stateStore.update(updater)\n } else {\n stateStore.set(updater)\n }\n\n resolvedOptions.onStateChange?.(updater)\n },\n }\n })\n\n // it didn't seem to rerender without setting the table\n set(table)\n })\n\n return function stop() {\n unsubscribe()\n }\n })\n\n return tableReadable\n}\n"],"names":["PlaceholderServer","create_ssr_component","$$result","$$props","$$bindings","slots","escape","content","document","PlaceholderClient","create_fragment","ctx","Comp","props","c","current","$$inline","create_component","$$","fragment","l","nodes","claim_component","m","target","anchor","mount_component","p","noop","i","local","transition_in","o","transition_out","d","detaching","destroy_component","renderClient","WrapperComp","SvelteComponent","constructor","options","init","safe_not_equal","undefined","renderServer","validate_component","$$render","renderComponent","window","isSvelteServerComponent","component","render","isSvelteClientComponent","_component$name","_component$name2","isHMR","prototype","name","startsWith","endsWith","isSvelteComponent","wrapInPlaceholder","Placeholder","flexRender","result","createSvelteTable","optionsStore","readable","resolvedOptions","state","onStateChange","renderFallbackValue","get","table","createTable","stateStore","writable","initialState","stateOptionsStore","derived","s","tableReadable","start","set","unsubscribe","subscribe","_ref","setOptions","prev","updater","Function","update","stop"],"mappings":"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"}