UNPKG

woby

Version:

A high-performance framework with fine-grained observable/signal-based reactivity for building rich applications.

282 lines (281 loc) 8.74 kB
var _a, _b; import { c as createElement } from "./runtime-DHiCLtGC.js"; import { g, j, a, j as j2 } from "./runtime-DHiCLtGC.js"; import { i as isFunction, E as get, a5 as _with, R as cleanup, a6 as isPrimitive, S as SYMBOL_CLONE, n as isObject, a7 as isArray, h as assign, K as once, Y as SYMBOL_OBSERVABLE } from "./setters-Ddu0s6oK.js"; import { a1, D, a2, F, a4, Z, _, a0, a3, I, l, N, $, w, x, C, ab, ac, aJ, P, aI, t, r, M, a9, ad, j as j3, U, ae, af, ag, ah, ai, aj, p, V, ak, a8, al, o, W, k, am, an, q, ao, aG, L, aF, aH, g as g2, ap, m, f, aq, ar, as, au, av, at, e, aw, d, ax, c, ay, aE, b, az, v, a as a5, aB, aA, s, aC, aD, X, aa, u, J, T } from "./setters-Ddu0s6oK.js"; import { m as memo, r as resolve, a as useResolved, o as observable, H as suspense, h as htm, u as useResource } from "./merge_style-CyMhMoCQ.js"; import { E, F as F2, I as I2, S, c as c2, T as T2, z, A, B, C as C2, J as J2, G, D as D2, d as d2, e as e2, f as f2, g as g3, b as b2, i, j as j4, k as k2, l as l2, n, p as p2, q as q2, s as s2, t as t2, v as v2, w as w2, x as x2, y } from "./merge_style-CyMhMoCQ.js"; import { r as root } from "./root-B8Ruf358.js"; import { F as F3 } from "./fragment-CrJfXftf.js"; import { P as P2, r as r2, a as a6 } from "./render_to_string-DPtjoKMd.js"; import { t as t3 } from "./template-C8ap5u3t.js"; import { w as wrapCloneElement } from "./wrap_clone_element-CPcdGL7P.js"; import { S as S2 } from "./wrap_clone_element-CPcdGL7P.js"; const IS_BROWSER = !!((_b = (_a = globalThis.CDATASection) == null ? void 0 : _a.toString) == null ? void 0 : _b.call(_a).match(/^\s*function\s+CDATASection\s*\(\s*\)\s*\{\s*\[native code\]\s*\}\s*$/)); const isServer = () => { return !IS_BROWSER; }; const Dynamic = ({ component, props, children }) => { if (isFunction(component) || isFunction(props)) { return memo(() => { return resolve(createElement(get(component, false), get(props), children)); }); } else { return createElement(component, props, children); } }; const cache = {}; const runWithSuperRoot = _with(); let lockId = 1; const KeepAlive = ({ id, ttl, children }) => { return memo((stack) => { return useResolved([id, ttl], (id2, ttl2) => { var _a2; const lock = lockId++; const item = cache[id2] || (cache[id2] = { id: id2, lock }); item.lock = lock; (_a2 = item.reset) == null ? void 0 : _a2.call(item, stack); item.suspended || (item.suspended = observable(false)); item.suspended(false); if (!item.dispose || !item.result) { runWithSuperRoot(() => { root((stack2, dispose) => { item.dispose = () => { delete cache[id2]; dispose(stack2); }; suspense(item.suspended, () => { item.result = resolve(children); }, stack2); }); }, stack); } cleanup(() => { var _a3; const hasLock = () => lock === item.lock; if (!hasLock()) return; (_a3 = item.suspended) == null ? void 0 : _a3.call(item, true); if (!ttl2 || ttl2 <= 0 || ttl2 >= Infinity) return; const dispose = () => { var _a4; return hasLock() && ((_a4 = item.dispose) == null ? void 0 : _a4.call(item, stack)); }; const timeoutId = setTimeout(dispose, ttl2); const reset = () => clearTimeout(timeoutId); item.reset = reset; }); return item.result; }); }); }; const types = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null }, Symbol.toStringTag, { value: "Module" })); const cloneElement = (element, props, ...children) => { if (isPrimitive(element)) return element; else if (isFunction(element)) { if (!element[SYMBOL_CLONE]) throw new Error("target is not cloneable, it is not created by jsx.createElement"); const { Component, props: oldProps } = element[SYMBOL_CLONE]; const newProps = { ...oldProps, ...props }; if (children.length > 0) Object.assign(props, { children }); return wrapCloneElement(createElement(Component, newProps), Component, newProps); } else if (Array.isArray(element)) return element.map((e3) => cloneElement(e3, props)); else if (element.cloneNode) return element.cloneNode(); throw new Error("Unknown element"); }; function h$1(component, props, ...children) { if (children.length || isObject(props) && !isArray(props)) { if (!props) props = { children }; else props = { ...props, children }; return createElement(component, props); } else { return createElement(component, null, props); } } const registry = {}; const h = (type, props, ...children) => createElement(registry[type] || type, props, ...children); const register = (components) => void assign(registry, components); const html = assign(htm.bind(h), { register }); const lazy = (fetcher) => { const fetcherOnce = once(fetcher); const component = (props) => { const resource = useResource(fetcherOnce); return memo(() => { return useResolved(resource, ({ pending, error, value }) => { if (pending) return; if (error) throw error; const component2 = "default" in value ? value.default : value; return resolve(createElement(component2, props)); }); }); }; component.preload = () => { return new Promise((resolve2, reject) => { const resource = useResource(fetcherOnce); useResolved(resource, ({ pending, error }) => { if (pending) return; if (error) return reject(error); return resolve2(); }); }); }; return component; }; const ObservableSymbol = SYMBOL_OBSERVABLE; export { observable as $, get as $$, a1 as CONTEXTS_DATA, D as DEBUGGER, a2 as DIRECTIVES, Dynamic, E as ErrorBoundary, F2 as For, F3 as Fragment, F as FragmentUtils, I2 as If, types as JSX, KeepAlive, ObservableSymbol, P2 as Portal, a4 as SYMBOLS_DIRECTIVES, SYMBOL_CLONE, SYMBOL_OBSERVABLE, Z as SYMBOL_OBSERVABLE_FROZEN, _ as SYMBOL_OBSERVABLE_READABLE, a0 as SYMBOL_OBSERVABLE_WRITABLE, S2 as SYMBOL_STACK, a3 as SYMBOL_SUSPENSE, I as SYMBOL_SUSPENSE_COLLECTOR, l as SYMBOL_TEMPLATE_ACCESSOR, N as SYMBOL_UNCACHED, $ as SYMBOL_UNTRACKED, w as SYMBOL_UNTRACKED_UNWRAPPED, x as Stack, S as Suspense, c2 as Switch, T2 as Ternary, assign, z as batch, C as callStack, ab as castArray, ac as castError, aJ as classesToggle, cloneElement, P as createComment, A as createContext, B as createDirective, aI as createDocumentFragment, createElement, t as createHTMLNode, r as createSVGNode, M as createText, a9 as fixBigInt, ad as flatten, g as getMeta, h$1 as h, C2 as hmr, html, j3 as indexOf, isArray, U as isBatching, ae as isBoolean, af as isComponent, ag as isError, ah as isFalsy, isFunction, ai as isFunctionReactive, aj as isNil, p as isNode, isObject, V as isObservable, J2 as isObservableWritable, isPrimitive, ak as isPromise, a8 as isProxy, al as isSVG, o as isSVGElement, isServer, W as isStore, k as isString, am as isTemplateAccessor, an as isTruthy, q as isVoidChild, j as jsx, a as jsxDEV, j2 as jsxs, lazy, G as mergeStyles, ao as noop, once, r2 as render, a6 as renderToString, resolve, aG as resolveArraysAndStatics, L as resolveChild, aF as resolveClass, aH as resolveStyle, g2 as setAttribute, ap as setAttributeStatic, m as setChild, f as setChildReplacement, aq as setChildReplacementFunction, ar as setChildReplacementText, as as setChildStatic, au as setClass, av as setClassBooleanStatic, at as setClassStatic, e as setClasses, aw as setClassesStatic, d as setEvent, ax as setEventStatic, c as setHTML, ay as setHTMLStatic, aE as setProp, b as setProperty, az as setPropertyStatic, v as setProps, a5 as setRef, aB as setStyle, aA as setStyleStatic, s as setStyles, aC as setStylesStatic, aD as setTemplateAccessor, X as store, t3 as template, D2 as tick, aa as toArray, u as untrack, d2 as useAbortController, e2 as useAbortSignal, f2 as useAnimationFrame, g3 as useAnimationLoop, b2 as useBoolean, cleanup as useCleanup, i as useContext, j4 as useDisposed, J as useEffect, k2 as useEventListener, l2 as useFetch, n as useIdleCallback, p2 as useIdleLoop, q2 as useInterval, memo as useMemo, T as useMicrotask, s2 as usePromise, t2 as useReadonly, useResolved, useResource, root as useRoot, v2 as useSelector, w2 as useSuspended, x2 as useTimeout, y as useUntracked, wrapCloneElement }; //# sourceMappingURL=index.es.js.map