UNPKG

woby

Version:

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

278 lines (277 loc) 11.7 kB
"use strict"; var _a, _b; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const runtime = require("./runtime-BkkHnWaw.cjs"); const setters = require("./setters-CyO2VUT6.cjs"); const merge_style = require("./merge_style-DkxC2kon.cjs"); const root = require("./root-D1a_tPqg.cjs"); const fragment = require("./fragment-DZv7GBzl.cjs"); const render_to_string = require("./render_to_string-QEFRB-Fu.cjs"); const template = require("./template-C8XYMS58.cjs"); const wrap_clone_element = require("./wrap_clone_element-C4XivH3I.cjs"); 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 (setters.isFunction(component) || setters.isFunction(props)) { return merge_style.memo(() => { return merge_style.resolve(runtime.createElement(setters.get(component, false), setters.get(props), children)); }); } else { return runtime.createElement(component, props, children); } }; const cache = {}; const runWithSuperRoot = setters._with(); let lockId = 1; const KeepAlive = ({ id, ttl, children }) => { return merge_style.memo((stack) => { return merge_style.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 = merge_style.observable(false)); item.suspended(false); if (!item.dispose || !item.result) { runWithSuperRoot(() => { root.root((stack2, dispose) => { item.dispose = () => { delete cache[id2]; dispose(stack2); }; merge_style.suspense(item.suspended, () => { item.result = merge_style.resolve(children); }, stack2); }); }, stack); } setters.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 (setters.isPrimitive(element)) return element; else if (setters.isFunction(element)) { if (!element[setters.SYMBOL_CLONE]) throw new Error("target is not cloneable, it is not created by jsx.createElement"); const { Component, props: oldProps } = element[setters.SYMBOL_CLONE]; const newProps = { ...oldProps, ...props }; if (children.length > 0) Object.assign(props, { children }); return wrap_clone_element.wrapCloneElement(runtime.createElement(Component, newProps), Component, newProps); } else if (Array.isArray(element)) return element.map((e) => cloneElement(e, props)); else if (element.cloneNode) return element.cloneNode(); throw new Error("Unknown element"); }; function h$1(component, props, ...children) { if (children.length || setters.isObject(props) && !setters.isArray(props)) { if (!props) props = { children }; else props = { ...props, children }; return runtime.createElement(component, props); } else { return runtime.createElement(component, null, props); } } const registry = {}; const h = (type, props, ...children) => runtime.createElement(registry[type] || type, props, ...children); const register = (components) => void setters.assign(registry, components); const html = setters.assign(merge_style.htm.bind(h), { register }); const lazy = (fetcher) => { const fetcherOnce = setters.once(fetcher); const component = (props) => { const resource = merge_style.useResource(fetcherOnce); return merge_style.memo(() => { return merge_style.useResolved(resource, ({ pending, error, value }) => { if (pending) return; if (error) throw error; const component2 = "default" in value ? value.default : value; return merge_style.resolve(runtime.createElement(component2, props)); }); }); }; component.preload = () => { return new Promise((resolve2, reject) => { const resource = merge_style.useResource(fetcherOnce); merge_style.useResolved(resource, ({ pending, error }) => { if (pending) return; if (error) return reject(error); return resolve2(); }); }); }; return component; }; const ObservableSymbol = setters.SYMBOL_OBSERVABLE; exports.createElement = runtime.createElement; exports.getMeta = runtime.getMeta; exports.jsx = runtime.jsx; exports.jsxDEV = runtime.jsxDEV; exports.jsxs = runtime.jsx; exports.$$ = setters.get; exports.CONTEXTS_DATA = setters.CONTEXTS_DATA; exports.DEBUGGER = setters.DEBUGGER; exports.DIRECTIVES = setters.DIRECTIVES; exports.FragmentUtils = setters.FragmentUtils; exports.SYMBOLS_DIRECTIVES = setters.SYMBOLS_DIRECTIVES; exports.SYMBOL_CLONE = setters.SYMBOL_CLONE; exports.SYMBOL_OBSERVABLE = setters.SYMBOL_OBSERVABLE; exports.SYMBOL_OBSERVABLE_FROZEN = setters.SYMBOL_OBSERVABLE_FROZEN; exports.SYMBOL_OBSERVABLE_READABLE = setters.SYMBOL_OBSERVABLE_READABLE; exports.SYMBOL_OBSERVABLE_WRITABLE = setters.SYMBOL_OBSERVABLE_WRITABLE; exports.SYMBOL_SUSPENSE = setters.SYMBOL_SUSPENSE$1; exports.SYMBOL_SUSPENSE_COLLECTOR = setters.SYMBOL_SUSPENSE_COLLECTOR; exports.SYMBOL_TEMPLATE_ACCESSOR = setters.SYMBOL_TEMPLATE_ACCESSOR; exports.SYMBOL_UNCACHED = setters.SYMBOL_UNCACHED; exports.SYMBOL_UNTRACKED = setters.SYMBOL_UNTRACKED; exports.SYMBOL_UNTRACKED_UNWRAPPED = setters.SYMBOL_UNTRACKED_UNWRAPPED; exports.Stack = setters.Stack; exports.assign = setters.assign; exports.callStack = setters.callStack; exports.castArray = setters.castArray; exports.castError = setters.castError; exports.classesToggle = setters.classesToggle; exports.createComment = setters.createComment; exports.createDocumentFragment = setters.createDocumentFragment; exports.createHTMLNode = setters.createHTMLNode; exports.createSVGNode = setters.createSVGNode; exports.createText = setters.createText; exports.fixBigInt = setters.fixBigInt; exports.flatten = setters.flatten; exports.indexOf = setters.indexOf; exports.isArray = setters.isArray; exports.isBatching = setters.isBatching; exports.isBoolean = setters.isBoolean; exports.isComponent = setters.isComponent; exports.isError = setters.isError; exports.isFalsy = setters.isFalsy; exports.isFunction = setters.isFunction; exports.isFunctionReactive = setters.isFunctionReactive; exports.isNil = setters.isNil; exports.isNode = setters.isNode; exports.isObject = setters.isObject; exports.isObservable = setters.isObservable; exports.isPrimitive = setters.isPrimitive; exports.isPromise = setters.isPromise; exports.isProxy = setters.isProxy; exports.isSVG = setters.isSVG; exports.isSVGElement = setters.isSVGElement; exports.isStore = setters.isStore; exports.isString = setters.isString; exports.isTemplateAccessor = setters.isTemplateAccessor; exports.isTruthy = setters.isTruthy; exports.isVoidChild = setters.isVoidChild; exports.noop = setters.noop; exports.once = setters.once; exports.resolveArraysAndStatics = setters.resolveArraysAndStatics; exports.resolveChild = setters.resolveChild; exports.resolveClass = setters.resolveClass; exports.resolveStyle = setters.resolveStyle; exports.setAttribute = setters.setAttribute; exports.setAttributeStatic = setters.setAttributeStatic; exports.setChild = setters.setChild; exports.setChildReplacement = setters.setChildReplacement; exports.setChildReplacementFunction = setters.setChildReplacementFunction; exports.setChildReplacementText = setters.setChildReplacementText; exports.setChildStatic = setters.setChildStatic; exports.setClass = setters.setClass; exports.setClassBooleanStatic = setters.setClassBooleanStatic; exports.setClassStatic = setters.setClassStatic; exports.setClasses = setters.setClasses; exports.setClassesStatic = setters.setClassesStatic; exports.setEvent = setters.setEvent; exports.setEventStatic = setters.setEventStatic; exports.setHTML = setters.setHTML; exports.setHTMLStatic = setters.setHTMLStatic; exports.setProp = setters.setProp; exports.setProperty = setters.setProperty; exports.setPropertyStatic = setters.setPropertyStatic; exports.setProps = setters.setProps; exports.setRef = setters.setRef; exports.setStyle = setters.setStyle; exports.setStyleStatic = setters.setStyleStatic; exports.setStyles = setters.setStyles; exports.setStylesStatic = setters.setStylesStatic; exports.setTemplateAccessor = setters.setTemplateAccessor; exports.store = setters.store; exports.toArray = setters.toArray; exports.untrack = setters.untrack; exports.useCleanup = setters.cleanup; exports.useEffect = setters.effect; exports.useMicrotask = setters.useMicrotask; exports.$ = merge_style.observable; exports.ErrorBoundary = merge_style.ErrorBoundary; exports.For = merge_style.For; exports.If = merge_style.If; exports.Suspense = merge_style.Suspense; exports.Switch = merge_style.Switch; exports.Ternary = merge_style.Ternary; exports.batch = merge_style.batch; exports.createContext = merge_style.createContext; exports.createDirective = merge_style.createDirective; exports.hmr = merge_style.hmr; exports.isObservableWritable = merge_style.isObservableWritable; exports.mergeStyles = merge_style.mergeStyles; exports.resolve = merge_style.resolve; exports.tick = merge_style.tick; exports.useAbortController = merge_style.useAbortController; exports.useAbortSignal = merge_style.useAbortSignal; exports.useAnimationFrame = merge_style.useAnimationFrame; exports.useAnimationLoop = merge_style.useAnimationLoop; exports.useBoolean = merge_style.boolean; exports.useContext = merge_style.useContext; exports.useDisposed = merge_style.disposed; exports.useEventListener = merge_style.useEventListener; exports.useFetch = merge_style.useFetch; exports.useIdleCallback = merge_style.useIdleCallback; exports.useIdleLoop = merge_style.useIdleLoop; exports.useInterval = merge_style.useInterval; exports.useMemo = merge_style.memo; exports.usePromise = merge_style.usePromise; exports.useReadonly = merge_style.readonly; exports.useResolved = merge_style.useResolved; exports.useResource = merge_style.useResource; exports.useSelector = merge_style.selector; exports.useSuspended = merge_style.suspended; exports.useTimeout = merge_style.useTimeout; exports.useUntracked = merge_style.untracked; exports.useRoot = root.root; exports.Fragment = fragment.Fragment; exports.Portal = render_to_string.Portal; exports.render = render_to_string.render; exports.renderToString = render_to_string.renderToString; exports.template = template.template; exports.SYMBOL_STACK = wrap_clone_element.SYMBOL_STACK; exports.wrapCloneElement = wrap_clone_element.wrapCloneElement; exports.Dynamic = Dynamic; exports.JSX = types; exports.KeepAlive = KeepAlive; exports.ObservableSymbol = ObservableSymbol; exports.cloneElement = cloneElement; exports.h = h$1; exports.html = html; exports.isServer = isServer; exports.lazy = lazy; //# sourceMappingURL=index.cjs.js.map