@textbus/adapter-viewfly 5.2.3 → 5.2.4
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.
- package/dist/index.esm.js +456 -163
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +458 -160
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/viewfly-adapter.ts","../src/viewfly-vdom-adapter.ts"],"sourcesContent":["import { Component, CompositionState, makeError, VElement, ViewMount, VTextNode, merge, Adapter } from '@textbus/core'\nimport {\n ComponentSetup,\n createDynamicRef,\n DynamicRef,\n getCurrentInstance, Injector,\n jsx,\n JSXNode, onUnmounted,\n onUpdated, ReflectiveInjector,\n ViewFlyNode,\n} from '@viewfly/core'\nimport { DomAdapter } from '@textbus/platform-browser'\n\nconst adapterError = makeError('ViewflyDOMRenderer')\n\nexport interface ViewComponentProps<T extends Component> {\n component: T\n rootRef: DynamicRef<Element>\n}\n\nexport interface ViewflyAdapterComponents {\n [key: string]: ComponentSetup<ViewComponentProps<any>>\n}\n\nexport class ViewflyAdapter extends DomAdapter<ViewFlyNode, ViewFlyNode> {\n private components: ViewflyAdapterComponents = {}\n\n private componentRefs = new WeakMap<Component, DynamicRef<Element>>()\n\n constructor(components: ViewflyAdapterComponents,\n mount: ViewMount<ViewFlyNode, Element>\n ) {\n super({\n createCompositionNode(compositionState: CompositionState,\n updateNativeCompositionNode: (nativeNode: (Element | null)) => void): VElement {\n const ref = createDynamicRef<Element>(node => {\n updateNativeCompositionNode(node)\n return () => {\n updateNativeCompositionNode(null)\n }\n })\n return new VElement('span', {\n style: {\n textDecoration: 'underline'\n },\n ref\n }, [\n new VTextNode(compositionState.text)\n ])\n },\n getParentNode(node: Element | Text): Element | null {\n return (node as Node).parentNode as Element\n },\n getChildNodes(parentElement: Element): Array<Element | Text> {\n return Array.from(parentElement.childNodes) as Element[]\n },\n isNativeElementNode(node: Element | Text): node is Element {\n return node instanceof Element\n },\n getChildByIndex(parentElement, index) {\n return parentElement.childNodes[index] as Element\n },\n getAndUpdateSlotRootNativeElement(vEle: VElement, update: (nativeElement: (Element | null)) => void) {\n const currentRef = vEle.attrs.get('ref')\n const ref = createDynamicRef<Element>(nativeNode => {\n update(nativeNode)\n return () => {\n update(null)\n }\n })\n if (typeof currentRef === 'function') {\n vEle.attrs.set('ref', [currentRef, ref])\n } else if (Array.isArray(currentRef)) {\n currentRef.push(ref)\n } else {\n vEle.attrs.set('ref', ref)\n }\n },\n componentRender: (component: Component<any>): ViewFlyNode => {\n const comp = this.components[component.name] || this.components['*']\n if (comp) {\n let ref = this.componentRefs.get(component)\n if (!ref) {\n ref = createDynamicRef<Element>(rootNode => {\n this.componentRootElementCaches.set(component, rootNode)\n return () => {\n // 当组件移动层级位置到原位置之前并重新渲染后,由于时序的原因,再删除缓存会导致组件找不到对应视图节点\n if (this.componentRootElementCaches.get(component) === rootNode) {\n this.componentRootElementCaches.remove(component)\n }\n }\n })\n this.componentRefs.set(component, ref)\n }\n return jsx(comp, {\n component,\n rootRef: ref\n }, component.id)\n }\n throw adapterError(`cannot found view component \\`${component.name}\\`!`)\n },\n vElementToViewElement(vNode: VElement, children: Array<JSXNode>): ViewFlyNode {\n let key: any\n const props = Array.from(vNode.attrs).reduce((a, b) => {\n const propName = b[0]\n if (propName === 'key') {\n key = b[1]\n return a\n }\n a[propName] = b[1]\n return a\n }, {} as Record<string, any>)\n if (vNode.classes.size) {\n props.class = Array.from(vNode.classes).join(' ')\n }\n if (vNode.styles) {\n props.style = Array.from(vNode.styles).reduce((a, b) => {\n a[b[0]] = b[1]\n return a\n }, {} as Record<string, any>)\n }\n if (children.length) {\n props.children = children\n }\n return jsx(vNode.tagName, props, key)\n }\n }, mount)\n\n let isRoot = true\n Object.entries(components).forEach(([key, viewFlyComponent]) => {\n this.components[key] = (props: ViewComponentProps<Component>) => {\n const comp = getCurrentInstance()\n const textbusComponent = props.component\n const subscription = merge(textbusComponent.changeMarker.onChange,\n textbusComponent.changeMarker.onForceChange).subscribe(() => {\n if (textbusComponent.changeMarker.dirty) {\n comp.markAsDirtied()\n }\n })\n onUnmounted(() => {\n subscription.unsubscribe()\n })\n if (isRoot) {\n onUpdated(() => {\n this.onViewUpdated.next()\n })\n isRoot = false\n }\n onUpdated(() => {\n textbusComponent.changeMarker.rendered()\n if (!this.componentRootElementCaches.get(textbusComponent)) {\n // eslint-disable-next-line max-len\n throw adapterError(`Component \\`${textbusComponent.name}\\` is not bound to rootRef, you must bind rootRef to the root element node of the component view.`)\n }\n })\n return viewFlyComponent(props)\n }\n })\n }\n\n override render(rootComponent: Component, injector: Injector): void | (() => void) {\n const childInjector = new ReflectiveInjector(injector, [{\n provide: Adapter,\n useValue: this\n }, {\n provide: DomAdapter,\n useValue: this\n }, {\n provide: ViewflyAdapter,\n useValue: this\n }])\n return super.render(rootComponent, childInjector)\n }\n\n override copy() {\n document.execCommand('copy')\n }\n}\n","import { NodeViewAdapter } from '@textbus/platform-node'\nimport { Injector, ReflectiveInjector } from '@viewfly/core'\nimport { Adapter, Component } from '@textbus/core'\nimport { DomAdapter } from '@textbus/platform-browser'\nimport { ViewflyAdapter } from './viewfly-adapter'\n\nexport class ViewflyVDomAdapter extends NodeViewAdapter {\n override render(rootComponent: Component, injector: Injector): void | (() => void) {\n const childInjector = new ReflectiveInjector(injector, [{\n provide: Adapter,\n useValue: this\n }, {\n provide: DomAdapter,\n useValue: this\n }, {\n provide: ViewflyAdapter,\n useValue: this\n }])\n return super.render(rootComponent, childInjector)\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/viewfly-adapter.ts","../src/viewfly-vdom-adapter.ts"],"sourcesContent":["import { Component, CompositionState, makeError, VElement, ViewMount, VTextNode, merge, Adapter } from '@textbus/core'\nimport {\n ComponentSetup,\n createDynamicRef,\n DynamicRef,\n getCurrentInstance, Injector,\n jsx,\n JSXNode, onUnmounted,\n onUpdated, ReflectiveInjector,\n ViewFlyNode,\n} from '@viewfly/core'\nimport { DomAdapter } from '@textbus/platform-browser'\n\nconst adapterError = makeError('ViewflyDOMRenderer')\n\nexport interface ViewComponentProps<T extends Component> {\n component: T\n rootRef: DynamicRef<Element>\n}\n\nexport interface ViewflyAdapterComponents {\n [key: string]: ComponentSetup<ViewComponentProps<any>>\n}\n\nexport class ViewflyAdapter extends DomAdapter<ViewFlyNode, ViewFlyNode> {\n private components: ViewflyAdapterComponents = {}\n\n private componentRefs = new WeakMap<Component, DynamicRef<Element>>()\n\n constructor(components: ViewflyAdapterComponents,\n mount: ViewMount<ViewFlyNode, Element>\n ) {\n super({\n createCompositionNode(compositionState: CompositionState,\n updateNativeCompositionNode: (nativeNode: (Element | null)) => void): VElement {\n const ref = createDynamicRef<Element>(node => {\n updateNativeCompositionNode(node)\n return () => {\n updateNativeCompositionNode(null)\n }\n })\n return new VElement('span', {\n style: {\n textDecoration: 'underline'\n },\n ref\n }, [\n new VTextNode(compositionState.text)\n ])\n },\n getParentNode(node: Element | Text): Element | null {\n return (node as Node).parentNode as Element\n },\n getChildNodes(parentElement: Element): Array<Element | Text> {\n return Array.from(parentElement.childNodes) as Element[]\n },\n isNativeElementNode(node: Element | Text): node is Element {\n return node instanceof Element\n },\n getChildByIndex(parentElement, index) {\n return parentElement.childNodes[index] as Element\n },\n getAndUpdateSlotRootNativeElement(vEle: VElement, update: (nativeElement: (Element | null)) => void) {\n const currentRef = vEle.attrs.get('ref')\n const ref = createDynamicRef<Element>(nativeNode => {\n update(nativeNode)\n return () => {\n update(null)\n }\n })\n if (typeof currentRef === 'function') {\n vEle.attrs.set('ref', [currentRef, ref])\n } else if (Array.isArray(currentRef)) {\n currentRef.push(ref)\n } else {\n vEle.attrs.set('ref', ref)\n }\n },\n componentRender: (component: Component<any>): ViewFlyNode => {\n const comp = this.components[component.name] || this.components['*']\n if (comp) {\n let ref = this.componentRefs.get(component)\n if (!ref) {\n ref = createDynamicRef<Element>(rootNode => {\n this.componentRootElementCaches.set(component, rootNode)\n return () => {\n // 当组件移动层级位置到原位置之前并重新渲染后,由于时序的原因,再删除缓存会导致组件找不到对应视图节点\n if (this.componentRootElementCaches.get(component) === rootNode) {\n this.componentRootElementCaches.remove(component)\n }\n }\n })\n this.componentRefs.set(component, ref)\n }\n return jsx(comp, {\n component,\n rootRef: ref\n }, component.id)\n }\n throw adapterError(`cannot found view component \\`${component.name}\\`!`)\n },\n vElementToViewElement(vNode: VElement, children: Array<JSXNode>): ViewFlyNode {\n let key: any\n const props = Array.from(vNode.attrs).reduce((a, b) => {\n const propName = b[0]\n if (propName === 'key') {\n key = b[1]\n return a\n }\n a[propName] = b[1]\n return a\n }, {} as Record<string, any>)\n if (vNode.classes.size) {\n props.class = Array.from(vNode.classes).join(' ')\n }\n if (vNode.styles) {\n props.style = Array.from(vNode.styles).reduce((a, b) => {\n a[b[0]] = b[1]\n return a\n }, {} as Record<string, any>)\n }\n if (children.length) {\n props.children = children\n }\n return jsx(vNode.tagName, props, key)\n }\n }, mount)\n\n let isRoot = true\n Object.entries(components).forEach(([key, viewFlyComponent]) => {\n this.components[key] = (props: ViewComponentProps<Component>) => {\n const comp = getCurrentInstance()\n const textbusComponent = props.component\n const subscription = merge(textbusComponent.changeMarker.onChange,\n textbusComponent.changeMarker.onForceChange).subscribe(() => {\n if (textbusComponent.changeMarker.dirty) {\n comp.markAsDirtied()\n }\n })\n onUnmounted(() => {\n subscription.unsubscribe()\n })\n if (isRoot) {\n onUpdated(() => {\n this.onViewUpdated.next()\n })\n isRoot = false\n }\n onUpdated(() => {\n textbusComponent.changeMarker.rendered()\n if (!this.componentRootElementCaches.get(textbusComponent)) {\n // eslint-disable-next-line max-len\n throw adapterError(`Component \\`${textbusComponent.name}\\` is not bound to rootRef, you must bind rootRef to the root element node of the component view.`)\n }\n })\n return viewFlyComponent(props)\n }\n })\n }\n\n override render(rootComponent: Component, injector: Injector): void | (() => void) {\n const childInjector = new ReflectiveInjector(injector, [{\n provide: Adapter,\n useValue: this\n }, {\n provide: DomAdapter,\n useValue: this\n }, {\n provide: ViewflyAdapter,\n useValue: this\n }])\n return super.render(rootComponent, childInjector)\n }\n\n override copy() {\n document.execCommand('copy')\n }\n}\n","import { NodeViewAdapter } from '@textbus/platform-node'\nimport { Injector, ReflectiveInjector } from '@viewfly/core'\nimport { Adapter, Component } from '@textbus/core'\nimport { DomAdapter } from '@textbus/platform-browser'\nimport { ViewflyAdapter } from './viewfly-adapter'\n\nexport class ViewflyVDomAdapter extends NodeViewAdapter {\n override render(rootComponent: Component, injector: Injector): void | (() => void) {\n const childInjector = new ReflectiveInjector(injector, [{\n provide: Adapter,\n useValue: this\n }, {\n provide: DomAdapter,\n useValue: this\n }, {\n provide: ViewflyAdapter,\n useValue: this\n }])\n return super.render(rootComponent, childInjector)\n }\n}\n"],"names":["adapterError","makeError","ViewflyAdapter","components","mount","_call_super","createCompositionNode","compositionState","updateNativeCompositionNode","ref","createDynamicRef","node","VElement","style","textDecoration","VTextNode","text","getParentNode","parentNode","getChildNodes","parentElement","Array","from","childNodes","isNativeElementNode","Element","getChildByIndex","index","getAndUpdateSlotRootNativeElement","vEle","update","currentRef","attrs","get","nativeNode","set","isArray","push","componentRender","component","comp","_assert_this_initialized","name","componentRefs","rootNode","componentRootElementCaches","remove","jsx","rootRef","id","vElementToViewElement","vNode","children","key","props","reduce","a","b","propName","classes","size","class","join","styles","length","tagName","WeakMap","isRoot","Object","entries","forEach","viewFlyComponent","getCurrentInstance","textbusComponent","subscription","merge","changeMarker","onChange","onForceChange","subscribe","dirty","markAsDirtied","onUnmounted","unsubscribe","onUpdated","onViewUpdated","next","rendered","render","rootComponent","injector","childInjector","ReflectiveInjector","provide","Adapter","useValue","DomAdapter","_get","_get_prototype_of","copy","document","execCommand","ViewflyVDomAdapter","NodeViewAdapter"],"mappings":"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"}
|