Skip to content

Instantly share code, notes, and snippets.

@dberlin
Created March 3, 2025 00:08
Show Gist options
  • Save dberlin/3f3fcaa04601083cb237ece95bf2a79a to your computer and use it in GitHub Desktop.
Save dberlin/3f3fcaa04601083cb237ece95bf2a79a to your computer and use it in GitHub Desktop.
Comple createTable post-svelte-compiler
/* createTable.svelte.js generated by Svelte v5.20.5 */
import*as $ from "/node_modules/.vite/deps/svelte_internal_client.js?v=d66895d6";
import {constructTable, coreFeatures, getInitialTableState, isFunction} from "/@fs/Users/dannyb/sources/tanstack-table-alpha/packages/table-core/dist/esm/index.js";
export function createTable(tableOptions) {
const _features = {
...coreFeatures,
...tableOptions._features
};
let state = $.state($.proxy(getInitialTableState(_features, tableOptions.initialState)));
const statefulOptions = mergeObjects(tableOptions, {
_features,
state: {
...$.get(state),
...tableOptions.state
},
mergeOptions: (defaultOptions, newOptions) => {
return mergeObjects(defaultOptions, newOptions);
}
});
const table = constructTable(statefulOptions);
function updateOptions() {
table.setOptions( (prev) => {
return mergeObjects(prev, tableOptions, {
state: mergeObjects($.get(state), tableOptions.state || {}),
onStateChange: (updater) => {
if (isFunction(updater))
$.set(state, $.proxy(updater($.get(state)), null, state));
else
$.set(state, $.proxy(mergeObjects($.get(state), updater), null, state));
tableOptions.onStateChange?.(updater);
}
});
}
);
}
updateOptions();
$.user_pre_effect( () => {
updateOptions();
// re-render the table whenever the state or options change
}
);
return table;
}
function mergeObjects(...sources) {
const target = {};
for (let source of sources) {
if ($.strict_equals(typeof source, 'function'))
source = source();
if (source) {
const descriptors = Object.getOwnPropertyDescriptors(source);
for (const key in descriptors) {
if (key in target)
continue;
Object.defineProperty(target, key, {
enumerable: true,
get() {
for (let i = sources.length - 1; i >= 0; i--) {
let v, s = sources[i];
if ($.strict_equals(typeof s, 'function'))
s = s();
// eslint-disable-next-line prefer-const
v = (s || {})[key];
if ($.strict_equals(v, undefined, false))
return v;
}
}
});
}
}
}
return target;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiY3JlYXRlVGFibGUuc3ZlbHRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnN0cnVjdFRhYmxlLCBjb3JlRmVhdHVyZXMsIGdldEluaXRpYWxUYWJsZVN0YXRlLCBpc0Z1bmN0aW9uLCB9IGZyb20gJ0B0YW5zdGFjay90YWJsZS1jb3JlJztcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUYWJsZSh0YWJsZU9wdGlvbnMpIHtcbiAgICBjb25zdCBfZmVhdHVyZXMgPSB7IC4uLmNvcmVGZWF0dXJlcywgLi4udGFibGVPcHRpb25zLl9mZWF0dXJlcyB9O1xuICAgIGxldCBzdGF0ZSA9ICRzdGF0ZShnZXRJbml0aWFsVGFibGVTdGF0ZShfZmVhdHVyZXMsIHRhYmxlT3B0aW9ucy5pbml0aWFsU3RhdGUpKTtcbiAgICBjb25zdCBzdGF0ZWZ1bE9wdGlvbnMgPSBtZXJnZU9iamVjdHModGFibGVPcHRpb25zLCB7XG4gICAgICAgIF9mZWF0dXJlcyxcbiAgICAgICAgc3RhdGU6IHsgLi4uc3RhdGUsIC4uLnRhYmxlT3B0aW9ucy5zdGF0ZSB9LFxuICAgICAgICBtZXJnZU9wdGlvbnM6IChkZWZhdWx0T3B0aW9ucywgbmV3T3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlT2JqZWN0cyhkZWZhdWx0T3B0aW9ucywgbmV3T3B0aW9ucyk7XG4gICAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3QgdGFibGUgPSBjb25zdHJ1Y3RUYWJsZShzdGF0ZWZ1bE9wdGlvbnMpO1xuICAgIGZ1bmN0aW9uIHVwZGF0ZU9wdGlvbnMoKSB7XG4gICAgICAgIHRhYmxlLnNldE9wdGlvbnMoKHByZXYpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBtZXJnZU9iamVjdHMocHJldiwgdGFibGVPcHRpb25zLCB7XG4gICAgICAgICAgICAgICAgc3RhdGU6IG1lcmdlT2JqZWN0cyhzdGF0ZSwgdGFibGVPcHRpb25zLnN0YXRlIHx8IHt9KSxcbiAgICAgICAgICAgICAgICBvblN0YXRlQ2hhbmdlOiAodXBkYXRlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNGdW5jdGlvbih1cGRhdGVyKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gdXBkYXRlcihzdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gbWVyZ2VPYmplY3RzKHN0YXRlLCB1cGRhdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgdGFibGVPcHRpb25zLm9uU3RhdGVDaGFuZ2U/Lih1cGRhdGVyKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB1cGRhdGVPcHRpb25zKCk7XG4gICAgJGVmZmVjdC5wcmUoKCkgPT4ge1xuICAgICAgICB1cGRhdGVPcHRpb25zKCk7IC8vIHJlLXJlbmRlciB0aGUgdGFibGUgd2hlbmV2ZXIgdGhlIHN0YXRlIG9yIG9wdGlvbnMgY2hhbmdlXG4gICAgfSk7XG4gICAgcmV0dXJuIHRhYmxlO1xufVxuZnVuY3Rpb24gbWVyZ2VPYmplY3RzKC4uLnNvdXJjZXMpIHtcbiAgICBjb25zdCB0YXJnZXQgPSB7fTtcbiAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc291cmNlcykge1xuICAgICAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgIHNvdXJjZSA9IHNvdXJjZSgpO1xuICAgICAgICBpZiAoc291cmNlKSB7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdG9ycyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkZXNjcmlwdG9ycykge1xuICAgICAgICAgICAgICAgIGlmIChrZXkgaW4gdGFyZ2V0KVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZ2V0KCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IHNvdXJjZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiwgcyA9IHNvdXJjZXNbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzID09PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzID0gcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gKHMgfHwge30pW2tleV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztDQUFTLGNBQWM7Q0FBRSxZQUFZO0NBQUUsb0JBQW9CO0NBQUUsVUFBVTtPQUFTLHNCQUFzQjs7Z0JBQ3RGLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztPQUNqQyxTQUFTLFFBQVEsWUFBWSxLQUFLLFlBQVksQ0FBQyxTQUFTO0tBQzFELEtBQUssbUJBQVUsb0JBQW9CLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxZQUFZOztPQUN0RSxlQUFlLEdBQUcsWUFBWSxDQUFDLFlBQVk7RUFDN0MsU0FBUztFQUNULEtBQUssYUFBTyxLQUFLLE1BQUssWUFBWSxDQUFDLEtBQUs7RUFDeEMsWUFBWSxHQUFHLGNBQWMsRUFBRSxVQUFVLEtBQUssQ0FBQztVQUNwQyxZQUFZLENBQUMsY0FBYyxFQUFFLFVBQVU7RUFDbEQsQ0FBQzs7O09BRUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxlQUFlOztVQUNuQyxhQUFhLEdBQUcsQ0FBQztFQUN0QixLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDO1VBQ2pCLFlBQVksQ0FBQyxJQUFJLEVBQUUsWUFBWTtJQUNsQyxLQUFLLEVBQUUsWUFBWSxPQUFDLEtBQUssR0FBRSxZQUFZLENBQUMsS0FBSztJQUM3QyxhQUFhLEdBQUcsT0FBTyxLQUFLLENBQUM7U0FDckIsVUFBVSxDQUFDLE9BQU8sU0FDbEIsS0FBSyxVQUFHLE9BQU8sT0FBQyxLQUFLLFVBQXJCLEtBQUssZUFFTCxLQUFLLFVBQUcsWUFBWSxPQUFDLEtBQUssR0FBRSxPQUFPLFNBQW5DLEtBQUs7S0FDVCxZQUFZLENBQUMsYUFBYSxHQUFHLE9BQU87SUFDeEMsQ0FBQzs7RUFFVCxDQUFDO0NBQ0wsQ0FBQzs7Q0FDRCxhQUFhOztDQUNiLGlCQUFXLE9BQU8sQ0FBQztFQUNmLGFBQWE7Q0FDakIsQ0FBQzs7UUFDTSxLQUFLO0FBQ2hCLENBQUM7O1NBQ1EsWUFBWSxJQUFJLE9BQU8sRUFBRSxDQUFDO09BQ3pCLE1BQU07O1VBQ0gsTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDOzZCQUNkLE1BQU0sRUFBSyxVQUFVLEdBQzVCLE1BQU0sR0FBRyxNQUFNOztNQUNmLE1BQU0sRUFBRSxDQUFDO1NBQ0gsV0FBVyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNOztjQUNoRCxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDeEIsR0FBRyxJQUFJLE1BQU07O0lBRWpCLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUc7S0FDN0IsVUFBVSxFQUFFLElBQUk7S0FDaEIsR0FBRyxHQUFHLENBQUM7ZUFDTSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztXQUN2QyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDOztrQ0FDVCxDQUFDLEVBQUssVUFBVSxHQUN2QixDQUFDLEdBQUcsQ0FBQzs7T0FFVCxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUc7MkJBQ2IsQ0FBQyxFQUFLLFNBQVMsaUJBQ1IsQ0FBQztNQUNoQixDQUFDO0tBQ0wsQ0FBQzs7R0FFVCxDQUFDO0VBQ0wsQ0FBQztDQUNMLENBQUM7O1FBQ00sTUFBTTtBQUNqQixDQUFDIn0=
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment