@tarojs/plugin-framework-solid 4.0.0-beta.83 → 4.0.0-beta.85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"reconciler.js","sources":["../src/runtime/reconciler/h.ts","../src/runtime/reconciler/props.ts","../src/runtime/reconciler/render.ts","../src/runtime/reconciler/use.ts","../src/runtime/reconciler/index.ts"],"sourcesContent":["import { TaroNode } from '@tarojs/runtime'\nimport { children as solidChildren, createRenderEffect, onCleanup, splitProps } from 'solid-js'\n\nimport { createElement, createTextNode, effect, insert, insertNode, setProp } from './render'\n\nimport type { Accessor } from 'solid-js'\nimport type { ResolvedChildren } from 'solid-js/types/reactive/signal'\n\nexport type Component = (props?: any) => TaroNode\n\ntype Children =\n | undefined\n | string\n | number\n | TaroNode\n | TaroNode[]\n | Component\n | Component[]\n | Accessor<ResolvedChildren>\n | (() => Component[])\n\nexport function h(tagName: string, props?: any, children?: Children) {\n if (typeof tagName !== 'string') {\n throw Error(`h function cant create ele for ${tagName}`)\n }\n const ele = createElement(tagName)\n const [local, otherProps] = splitProps(props, ['ref', 'children'])\n\n setProps(ele, otherProps)\n\n if (local.ref) {\n createRenderEffect(() => {\n if (typeof local.ref === 'function') {\n local.ref(ele)\n } else {\n local.ref = ele\n }\n })\n }\n\n // get 的处理\n if (local.hasOwnProperty('children')) {\n const descriptor = Object.getOwnPropertyDescriptor(local, 'children')\n if (descriptor?.get) {\n children = solidChildren(() => local.children)\n } else {\n children = local.children\n }\n }\n insertNodes(ele, children)\n\n return ele\n}\n\nfunction setProps(ele: TaroNode, otherProps: Record<string, any> = {}) {\n const desc = { ...otherProps }\n const plain_keys = Object.keys(desc).filter((key) => {\n if (desc[key]?.get) {\n return false\n }\n return true\n })\n const [plainProps, getterValues] = splitProps(otherProps, plain_keys)\n\n // 普通属性直接赋值\n if (Object.keys(plainProps)?.length) {\n for (const key in plainProps) {\n setProp(ele, key, plainProps[key])\n }\n }\n\n // 特殊属性 放到createRenderEffect中\n if (Object.keys(getterValues)?.length) {\n let preProps = {} as typeof getterValues\n effect(() => {\n for (const key in getterValues) {\n const val = getterValues[key]\n\n if (val === preProps[key]) {\n continue\n }\n setProp(ele, key, val, preProps[key])\n preProps[key] = val\n }\n })\n onCleanup(() => {\n preProps = {}\n })\n }\n}\n\nfunction insertNodes(parent: TaroNode, children: Children) {\n if (children === undefined) {\n return\n }\n\n let list = [] as TaroNode[] | (() => TaroNode)[]\n if (!Array.isArray(children)) {\n list = [children] as TaroNode[] | (() => TaroNode)[]\n } else {\n list = children\n }\n for (let i = 0; i < list.length; i++) {\n const child = list[i]\n const type = typeof child\n if (type === 'function') {\n insert(parent, child, null)\n continue\n }\n if (Array.isArray(child)) {\n insertNodes(parent, child)\n continue\n }\n\n if (child instanceof TaroNode) {\n insertNode(parent, child)\n continue\n }\n\n if (type === 'string') {\n const node = createTextNode(child as unknown as string)\n insertNode(parent, node)\n continue\n }\n\n if (type === 'number' || type === 'boolean' || child instanceof Date || child instanceof RegExp) {\n const node = createTextNode(child.toString())\n insertNode(parent, node)\n continue\n }\n }\n}\n","import { FormElement } from '@tarojs/runtime'\nimport { capitalize, internalComponents, isFunction, isObject, toCamelCase } from '@tarojs/shared'\n\nimport type { TaroElement } from '@tarojs/runtime'\n\nexport type Props = Record<string, unknown>\n\nfunction isEventName (s: string) {\n return s[0] === 'o' && s[1] === 'n'\n}\n\nexport function updateProps (dom: TaroElement, oldProps: Props, newProps: Props) {\n const updatePayload = getUpdatePayload(dom, oldProps, newProps)\n if (updatePayload) {\n updatePropsByPayload(dom, oldProps, updatePayload)\n }\n}\n\nexport function updatePropsByPayload (dom: TaroElement, oldProps: Props, updatePayload: any[]) {\n for (let i = 0; i < updatePayload.length; i += 2) { // key, value 成对出现\n const key = updatePayload[i]; const newProp = updatePayload[i + 1]; const oldProp = oldProps[key]\n setProperty(dom, key, newProp, oldProp)\n }\n}\n\nexport function getUpdatePayload (dom: TaroElement, oldProps: Props, newProps: Props) {\n let i: string\n let updatePayload: any[] | null = null\n\n for (i in oldProps) {\n if (!(i in newProps)) {\n (updatePayload = updatePayload || []).push(i, null)\n }\n }\n const isFormElement = dom instanceof FormElement\n for (i in newProps) {\n if (oldProps[i] !== newProps[i] || (isFormElement && i === 'value')) {\n (updatePayload = updatePayload || []).push(i, newProps[i])\n }\n }\n\n return updatePayload\n}\n\n// function eventProxy (e: CommonEvent) {\n// const el = document.getElementById(e.currentTarget.id)\n// const handlers = el!.__handlers[e.type]\n// handlers[0](e)\n// }\n\nfunction setEvent (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n const isCapture = name.endsWith('Capture')\n let eventName = name.toLowerCase().slice(2)\n if (isCapture) {\n eventName = eventName.slice(0, -7)\n }\n\n const compName = capitalize(toCamelCase(dom.tagName.toLowerCase()))\n\n if (eventName === 'click' && process.env.TARO_PLATFORM !== 'harmony' && compName in internalComponents) {\n eventName = 'tap'\n }\n\n if (isFunction(value)) {\n if (oldValue) {\n dom.removeEventListener(eventName, oldValue as any, false)\n dom.addEventListener(eventName, value, { isCapture, sideEffect: false })\n } else {\n dom.addEventListener(eventName, value, isCapture)\n }\n } else {\n dom.removeEventListener(eventName, oldValue as any)\n }\n}\n\ninterface DangerouslySetInnerHTML {\n __html?: string\n}\ntype ClassList = { [key: string]: boolean }\n\nfunction diffClassList (newVal: ClassList, oldVal: ClassList) {\n const result: ClassList = {}\n for (const key in oldVal) {\n if (newVal[key] !== oldVal[key]) {\n result[key] = newVal[key]\n }\n }\n for (const key in newVal) {\n if (result.hasOwnProperty(key)) {\n continue\n }\n result[key] = newVal[key]\n }\n return result\n}\n\nexport function setProperty (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n name = name === 'className' ? 'class' : name\n\n if (['key', 'children', 'ref'].includes(name)) return\n\n if (name === 'classList') {\n const map = diffClassList(value as ClassList, oldValue as ClassList)\n for (const key in map) {\n if (key === '') {\n continue\n }\n if (map[key]) {\n (dom as any).classList.add(key)\n } else {\n (dom as any).classList.remove(key)\n }\n }\n } else if (isEventName(name)) {\n setEvent(dom, name, value, oldValue)\n } else if (name === 'dangerouslySetInnerHTML') {\n const newHtml = (value as DangerouslySetInnerHTML)?.__html ?? ''\n const oldHtml = (oldValue as DangerouslySetInnerHTML)?.__html ?? ''\n if (newHtml || oldHtml) {\n if (oldHtml !== newHtml) {\n dom.innerHTML = newHtml\n }\n }\n } else if (!isFunction(value)) {\n if (value == null) {\n dom.removeAttribute(name)\n } else {\n // 处理对象类型的style样式\n if (name === 'style' && isObject(value)) {\n value = Object.keys(value).reduce((acc, key) => {\n acc.push(`${key}: ${(value as Record<string, string>)[key]}`)\n return acc\n }, [] as string[]).join(';')\n }\n dom.setAttribute(name, value as string)\n }\n }\n}\n","import { document, TaroText } from '@tarojs/runtime'\nimport { isFunction, isString } from '@tarojs/shared'\nimport { createRenderer } from 'solid-js/universal'\n\nimport { h } from './h'\nimport { setProperty } from './props'\n\nimport type { TaroElement, TaroNode } from '@tarojs/runtime'\n\nconst renderer = createRenderer<TaroNode>({\n createElement(type: string) {\n return document.createElement(type)\n },\n createTextNode(text) {\n return document.createTextNode(text)\n },\n replaceText(textNode, value) {\n textNode.textContent = value\n },\n setProperty(node: TaroElement, name: string, value, prev) {\n setProperty(node, name, value, prev)\n },\n insertNode(parent, node, anchor) {\n parent.insertBefore(node, anchor)\n },\n isTextNode(node: TaroNode) {\n if (isString(node)) return true\n return node instanceof TaroText\n },\n removeNode(parent: TaroElement, node: TaroElement) {\n parent.removeChild(node)\n },\n getParentNode(node: TaroNode) {\n return node.parentNode || undefined\n },\n getFirstChild(node: TaroElement) {\n return node.firstChild || undefined\n },\n getNextSibling(node: TaroElement) {\n return node.nextSibling || undefined\n },\n})\n\nexport const render = renderer.render\nexport const effect = renderer.effect\nexport const memo = renderer.memo\nexport const createComponent = (type, props?) => {\n if (isString(type)) return h(type, props)\n if (isFunction(type)) return renderer.createComponent(type, props)\n return renderer.createComponent(Fragment, props)\n}\nexport const createElement = renderer.createElement\nexport const createTextNode = renderer.createTextNode\nexport const insertNode = renderer.insertNode\nexport const insert = renderer.insert\nexport const spread = renderer.spread\nexport const setProp = renderer.setProp\nexport const mergeProps = renderer.mergeProps\nexport const use = renderer.use\n\nfunction Fragment(props) {\n return props.children\n}\nfunction jsx(type, props) {\n return h(type, props)\n}\n\nexport { Fragment, jsx, jsx as jsxDEV, jsx as jsxs }\n","import { noop } from '@tarojs/shared'\nimport { batch } from 'solid-js'\n\nexport function flushSync () {\n batch(noop)\n}\n\nexport function unstable_batchedUpdates (fn) {\n batch(fn)\n}\n","import {\n $DEVCOMP,\n ComponentProps,\n createEffect,\n createMemo,\n getOwner,\n JSX,\n onCleanup,\n runWithOwner,\n sharedConfig,\n splitProps,\n untrack,\n ValidComponent\n} from 'solid-js'\n\nimport { createElement, insert, spread } from './render'\n\nexport * from './props'\nexport * from './render'\nexport * from './use'\n\nexport function Portal<T extends boolean = false, S extends boolean = false> (props: {\n mount?: Node\n ref?:\n | (S extends true ? SVGGElement : HTMLDivElement)\n | ((\n el: (T extends true ? { readonly shadowRoot: ShadowRoot } : object) & (S extends true ? SVGGElement : HTMLDivElement)\n ) => void)\n children: JSX.Element\n}) {\n const marker = document.createTextNode('')\n const mount = () => props.mount || document.body\n const owner = getOwner()\n let content: undefined | (() => JSX.Element)\n let hydrating = !!sharedConfig.context\n\n createEffect(\n () => {\n // basically we backdoor into a sort of renderEffect here\n if (hydrating) (getOwner() as any).user = hydrating = false\n content || (content = runWithOwner(owner, () => createMemo(() => props.children)))\n const el = mount()\n const container: any = createElement('view')\n const renderRoot = container\n\n Object.defineProperty(container, '_$host', {\n get () {\n return marker.parentNode\n },\n configurable: true\n })\n insert(renderRoot, content)\n el.appendChild(container)\n props.ref && (props as any).ref(container)\n onCleanup(() => el.removeChild(container))\n },\n undefined,\n { render: !hydrating }\n )\n return marker\n}\n\nexport type DynamicProps<T extends ValidComponent, P = ComponentProps<T>> = {\n [K in keyof P]: P[K];\n} & {\n component: T | undefined\n};\n\nexport function Dynamic<T extends ValidComponent> (props: DynamicProps<T>): JSX.Element {\n const [p, others] = splitProps(props, ['component'])\n const cached = createMemo(() => p.component)\n return createMemo(() => {\n const component = cached()\n switch (typeof component) {\n case 'function':\n // eslint-disable-next-line no-constant-condition\n if ('_DX_DEV_') Object.assign(component, { [$DEVCOMP]: true })\n return untrack(() => component(others))\n\n case 'string':\n // eslint-disable-next-line no-case-declarations\n const el = createElement(component)\n spread(el, others, false)\n return el\n\n default:\n break\n }\n }) as unknown as JSX.Element\n}\n"],"names":["children","solidChildren","document"],"mappings":"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"}
1
+ {"version":3,"file":"reconciler.js","sources":["../src/reconciler/props.ts","../src/reconciler/render.ts","../src/reconciler/index.ts"],"sourcesContent":["import { TaroElement } from '@tarojs/runtime'\nimport {\n capitalize,\n internalComponents,\n isFunction,\n isObject,\n toCamelCase,\n} from '@tarojs/shared'\n\ninterface DangerouslySetInnerHTML {\n __html?: string\n}\ntype ClassList = { [key: string]: boolean };\n\nfunction isEventName (s: string) {\n return s.startsWith('on')\n}\n\nfunction setEvent (\n dom: TaroElement,\n name: string,\n value: unknown,\n oldValue?: unknown\n) {\n const isCapture = name.endsWith('Capture')\n let eventName = name.toLowerCase().slice(2)\n if (isCapture) {\n eventName = eventName.slice(0, -7)\n }\n\n const compName = capitalize(toCamelCase(dom.tagName.toLowerCase()))\n\n if (eventName === 'click' && process.env.TARO_PLATFORM !== 'harmony' && compName in internalComponents) {\n eventName = 'tap'\n }\n\n if (isFunction(value)) {\n if (oldValue) {\n dom.removeEventListener(eventName, oldValue, false)\n dom.addEventListener(eventName, value, { isCapture, sideEffect: false })\n } else {\n dom.addEventListener(eventName, value, isCapture)\n }\n } else {\n dom.removeEventListener(eventName, oldValue)\n }\n}\n\n// 优化后的代码\nexport function setProperty (\n dom: TaroElement,\n name: string,\n value: any,\n oldValue?: any\n) {\n if (name === 'key' || name === 'children' || name === 'ref') return\n if (name === 'classList') {\n updateClassList(dom, value as ClassList)\n } else if (isEventName(name)) {\n setEvent(dom, name, value, oldValue)\n } else if (name === 'dangerouslySetInnerHTML') {\n updateInnerHTML(dom, value as DangerouslySetInnerHTML, oldValue as DangerouslySetInnerHTML)\n } else if (!isFunction(value)) {\n updateAttribute(dom, name, value)\n }\n}\n\nfunction updateClassList (dom: TaroElement, newValue: ClassList) {\n const [addList, removeList]: [string[], string[]] = [[], []]\n for (const key in newValue) {\n if (newValue[key]) {\n addList.push(key)\n } else {\n removeList.push(key)\n }\n }\n (dom.classList as any).add(...addList);\n (dom.classList as any).remove(...removeList)\n}\n\nfunction updateInnerHTML (dom: TaroElement, newValue: DangerouslySetInnerHTML, oldValue: DangerouslySetInnerHTML) {\n const newHtml = newValue?.__html ?? ''\n const oldHtml = oldValue?.__html ?? ''\n if (newHtml || oldHtml) {\n if (newHtml !== oldHtml) {\n dom.innerHTML = newHtml\n }\n }\n}\n\nfunction updateAttribute (dom: TaroElement, name: string, value: any) {\n if (value == null) {\n dom.removeAttribute(name)\n } else {\n // 处理对象类型的style样式\n if (name === 'style' && isObject<Record<string, any>>(value)) {\n value = Object.keys(value).reduce((acc: string[], key) => {\n acc.push(`${key}: ${value[key]}`)\n return acc\n }, []).join(';')\n }\n dom.setAttribute(name, value)\n }\n}\n","import { document, TaroElement, TaroNode, TaroText } from '@tarojs/runtime'\nimport { createRenderer } from 'solid-js/universal'\nimport { createComponent as _createComponent, insert as _insert, render as _render } from 'solid-js/web/dist/web'\n\nimport { setProperty } from './props'\n\nconst ref = createRenderer<TaroNode>({\n createElement (type: string) {\n return document.createElement(type)\n },\n createTextNode (text) {\n return document.createTextNode(text)\n },\n replaceText (textNode: TaroText, value) {\n textNode.textContent = value\n },\n setProperty (node: TaroElement, name: string, value, prev) {\n setProperty(node, name, value, prev)\n },\n insertNode (parent, node, anchor) {\n parent.insertBefore(node, anchor)\n },\n isTextNode (node: TaroNode) {\n if (typeof node === 'string') {\n return true\n }\n return node instanceof TaroText\n },\n removeNode (parent: TaroElement, node: TaroElement) {\n parent.removeChild(node)\n },\n getParentNode (node: TaroNode) {\n return node.parentNode || undefined\n },\n getFirstChild (node: TaroElement) {\n return node.firstChild || undefined\n },\n getNextSibling (node: TaroElement) {\n return node.nextSibling || undefined\n },\n})\n\nexport const render = process.env.TARO_PLATFORM === 'web' ? _render : ref.render\nexport const effect = ref.effect\nexport const memo = ref.memo\nexport const createElement = ref.createElement\nexport const createComponent = process.env.TARO_PLATFORM === 'web' ? _createComponent : ref.createComponent\nexport const createTextNode = ref.createTextNode\nexport const insertNode = ref.insertNode\nexport const insert = process.env.TARO_PLATFORM === 'web' ? _insert : ref.insert\nexport const spread = ref.spread\nexport const setProp = ref.setProp\nexport const mergeProps = ref.mergeProps\nexport const use = ref.use\n\nexport function Fragment (props) {\n return props.children\n}\n","import {\n $DEVCOMP,\n ComponentProps,\n createEffect,\n createMemo,\n getOwner,\n JSX,\n onCleanup,\n runWithOwner,\n sharedConfig,\n splitProps,\n untrack,\n ValidComponent\n} from 'solid-js'\n\nimport { createElement, insert, spread } from './render'\n\nexport * from './render'\n\nexport function Portal<T extends boolean = false, S extends boolean = false> (props: {\n mount?: Node\n ref?:\n | (S extends true ? SVGGElement : HTMLDivElement)\n | ((\n el: (T extends true ? { readonly shadowRoot: ShadowRoot } : object) & (S extends true ? SVGGElement : HTMLDivElement)\n ) => void)\n children: JSX.Element\n}) {\n const marker = document.createTextNode('')\n const mount = () => props.mount || document.body\n const owner = getOwner()\n let content: undefined | (() => JSX.Element)\n let hydrating = !!sharedConfig.context\n\n createEffect(\n () => {\n // basically we backdoor into a sort of renderEffect here\n if (hydrating) (getOwner() as any).user = hydrating = false\n content || (content = runWithOwner(owner, () => createMemo(() => props.children)))\n const el = mount()\n const container: any = createElement('view')\n const renderRoot = container\n\n Object.defineProperty(container, '_$host', {\n get () {\n return marker.parentNode\n },\n configurable: true\n })\n insert(renderRoot, content)\n el.appendChild(container)\n props.ref && (props as any).ref(container)\n onCleanup(() => el.removeChild(container))\n },\n undefined,\n { render: !hydrating }\n )\n return marker\n}\n\nexport type DynamicProps<T extends ValidComponent, P = ComponentProps<T>> = {\n [K in keyof P]: P[K];\n} & {\n component: T | undefined\n};\n\nexport function Dynamic<T extends ValidComponent> (props: DynamicProps<T>): JSX.Element {\n const [p, others] = splitProps(props, ['component'])\n const cached = createMemo(() => p.component)\n return createMemo(() => {\n const component = cached()\n switch (typeof component) {\n case 'function':\n // eslint-disable-next-line no-constant-condition\n if ('_DX_DEV_') Object.assign(component, { [$DEVCOMP]: true })\n return untrack(() => component(others))\n\n case 'string':\n // eslint-disable-next-line no-case-declarations\n const el = createElement(component)\n spread(el, others, false)\n return el\n\n default:\n break\n }\n }) as unknown as JSX.Element\n}\n"],"names":["document","_render","_createComponent","_insert"],"mappings":"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"}