@textbus/adapter-react 5.4.6 → 5.4.7
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 +2 -4
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.esm.js
CHANGED
|
@@ -209,10 +209,8 @@ var ReactAdapter = /*#__PURE__*/ function(DomAdapter1) {
|
|
|
209
209
|
ref: function ref(node) {
|
|
210
210
|
updateNativeCompositionNode(node);
|
|
211
211
|
},
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
]
|
|
215
|
-
});
|
|
212
|
+
key: compositionState.slot.id
|
|
213
|
+
}, compositionState.text);
|
|
216
214
|
},
|
|
217
215
|
getParentNode: function getParentNode(node) {
|
|
218
216
|
return node.parentNode;
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/react-adapter.ts"],"sourcesContent":["import { Adapter, Component, CompositionState, makeError, VElement, ViewMount } from '@textbus/core'\nimport { DomAdapter } from '@textbus/platform-browser'\nimport { createElement, JSX, useEffect, useState } from 'react'\nimport { Injector, ReflectiveInjector } from '@viewfly/core'\nimport { merge } from '@tanbo/stream'\n\nconst adapterError = makeError('ReactAdapter')\n\nexport interface ViewComponentProps<T extends Component> {\n component: T\n rootRef: ((rootNode: Element) => void)\n}\n\nexport interface ReactAdapterComponents {\n [key: string]: (props: ViewComponentProps<any>) => JSX.Element\n}\n\nexport class ReactAdapter extends DomAdapter<JSX.Element, JSX.Element> {\n private components: Record<string, (props: {component: Component}) => JSX.Element> = {}\n\n constructor(components: ReactAdapterComponents,\n mount: ViewMount<JSX.Element, Element>) {\n super({\n createCompositionNode(compositionState: CompositionState,\n updateNativeCompositionNode: (nativeNode: (Element | null)) => void) {\n return createElement('span', {\n style: {\n textDecoration: 'underline'\n },\n ref: (node: Element) => {\n updateNativeCompositionNode(node)\n },\n children: [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 if (currentRef) {\n vEle.attrs.set('ref', (v: Element) => {\n update(v)\n if (typeof currentRef === 'function') {\n currentRef(v)\n } else if (!currentRef.current) {\n currentRef.current = v\n }\n })\n } else {\n vEle.attrs.set('ref', update)\n }\n },\n componentRender: (component: Component<any>): JSX.Element => {\n const comp = this.components[component.name] || this.components['*']\n if (comp) {\n component.changeMarker.rendered()\n return createElement(comp, {\n key: component.id,\n component\n })\n }\n throw adapterError(`cannot found view component \\`${component.name}\\`!`)\n },\n vElementToViewElement(vNode: VElement, children: Array<string | JSX.Element>): JSX.Element {\n const props: any = {\n ...(Array.from(vNode.attrs).reduce((a, b) => {\n a[b[0]] = b[1]\n return a\n }, {} as Record<string, any>))\n }\n if (vNode.classes.size) {\n props.className = 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 return createElement(vNode.tagName, props, ...children)\n }\n }, mount)\n Object.keys(components).forEach(key => {\n this.components[key] = (props: {component: Component}) => {\n const component = props.component\n const [updateKey, refreshUpdateKey] = useState(Math.random())\n\n useEffect(() => {\n const sub = merge(component.changeMarker.onChange, component.changeMarker.onForceChange).subscribe(() => {\n if (component.changeMarker.dirty) {\n refreshUpdateKey(Math.random())\n }\n })\n return () => {\n sub.unsubscribe()\n }\n }, [])\n useEffect(() => {\n this.onViewUpdated.next()\n }, [updateKey])\n const vNode = components[key]({\n component,\n rootRef: (rootNode: Element) => {\n if (rootNode) {\n this.componentRootElementCaches.set(component, rootNode)\n } else {\n // 当组件移动层级位置到原位置之前并重新渲染后,由于时序的原因,再删除缓存会导致组件找不到对应视图节点\n // eslint-disable-next-line no-lonely-if\n if (this.componentRootElementCaches.get(component) === rootNode) {\n this.componentRootElementCaches.remove(component)\n }\n }\n }\n })\n useEffect(() => {\n if (!this.componentRootElementCaches.get(component)) {\n // eslint-disable-next-line max-len\n throw adapterError(`Component \\`${component.name}\\` is not bound to rootRef, you must bind rootRef to the root element node of the component view.`)\n }\n })\n return vNode\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: ReactAdapter,\n useValue: this\n }])\n return super.render(rootComponent, childInjector)\n }\n\n override copy() {\n document.execCommand('copy')\n }\n}\n"],"names":["adapterError","makeError","ReactAdapter","components","mount","createCompositionNode","compositionState","updateNativeCompositionNode","createElement","style","textDecoration","ref","node","children","text","getParentNode","parentNode","getChildNodes","parentElement","Array","from","childNodes","isNativeElementNode","Element","getChildByIndex","index","getAndUpdateSlotRootNativeElement","vEle","update","currentRef","attrs","get","set","v","current","componentRender","component","comp","name","changeMarker","rendered","key","id","vElementToViewElement","vNode","props","reduce","a","b","classes","size","className","join","styles","tagName","Object","keys","forEach","useState","Math","random","updateKey","refreshUpdateKey","useEffect","sub","merge","onChange","onForceChange","subscribe","dirty","unsubscribe","onViewUpdated","next","rootRef","rootNode","componentRootElementCaches","remove","render","rootComponent","injector","childInjector","ReflectiveInjector","provide","Adapter","useValue","DomAdapter","copy","document","execCommand"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/react-adapter.ts"],"sourcesContent":["import { Adapter, Component, CompositionState, makeError, VElement, ViewMount } from '@textbus/core'\nimport { DomAdapter } from '@textbus/platform-browser'\nimport { createElement, JSX, useEffect, useState } from 'react'\nimport { Injector, ReflectiveInjector } from '@viewfly/core'\nimport { merge } from '@tanbo/stream'\n\nconst adapterError = makeError('ReactAdapter')\n\nexport interface ViewComponentProps<T extends Component> {\n component: T\n rootRef: ((rootNode: Element) => void)\n}\n\nexport interface ReactAdapterComponents {\n [key: string]: (props: ViewComponentProps<any>) => JSX.Element\n}\n\nexport class ReactAdapter extends DomAdapter<JSX.Element, JSX.Element> {\n private components: Record<string, (props: { component: Component }) => JSX.Element> = {}\n\n constructor(components: ReactAdapterComponents,\n mount: ViewMount<JSX.Element, Element>) {\n super({\n createCompositionNode(compositionState: CompositionState,\n updateNativeCompositionNode: (nativeNode: (Element | null)) => void) {\n return createElement('span', {\n style: {\n textDecoration: 'underline'\n },\n ref: (node: Element) => {\n updateNativeCompositionNode(node)\n },\n key: compositionState.slot.id,\n }, compositionState.text)\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 if (currentRef) {\n vEle.attrs.set('ref', (v: Element) => {\n update(v)\n if (typeof currentRef === 'function') {\n currentRef(v)\n } else if (!currentRef.current) {\n currentRef.current = v\n }\n })\n } else {\n vEle.attrs.set('ref', update)\n }\n },\n componentRender: (component: Component<any>): JSX.Element => {\n const comp = this.components[component.name] || this.components['*']\n if (comp) {\n component.changeMarker.rendered()\n return createElement(comp, {\n key: component.id,\n component\n })\n }\n throw adapterError(`cannot found view component \\`${component.name}\\`!`)\n },\n vElementToViewElement(vNode: VElement, children: Array<string | JSX.Element>): JSX.Element {\n const props: any = {\n ...(Array.from(vNode.attrs).reduce((a, b) => {\n a[b[0]] = b[1]\n return a\n }, {} as Record<string, any>))\n }\n if (vNode.classes.size) {\n props.className = 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 return createElement(vNode.tagName, props, ...children)\n }\n }, mount)\n Object.keys(components).forEach(key => {\n this.components[key] = (props: { component: Component }) => {\n const component = props.component\n const [updateKey, refreshUpdateKey] = useState(Math.random())\n\n useEffect(() => {\n const sub = merge(component.changeMarker.onChange, component.changeMarker.onForceChange).subscribe(() => {\n if (component.changeMarker.dirty) {\n refreshUpdateKey(Math.random())\n }\n })\n return () => {\n sub.unsubscribe()\n }\n }, [])\n useEffect(() => {\n this.onViewUpdated.next()\n }, [updateKey])\n const vNode = components[key]({\n component,\n rootRef: (rootNode: Element) => {\n if (rootNode) {\n this.componentRootElementCaches.set(component, rootNode)\n } else {\n // 当组件移动层级位置到原位置之前并重新渲染后,由于时序的原因,再删除缓存会导致组件找不到对应视图节点\n // eslint-disable-next-line no-lonely-if\n if (this.componentRootElementCaches.get(component) === rootNode) {\n this.componentRootElementCaches.remove(component)\n }\n }\n }\n })\n useEffect(() => {\n if (!this.componentRootElementCaches.get(component)) {\n // eslint-disable-next-line max-len\n throw adapterError(`Component \\`${component.name}\\` is not bound to rootRef, you must bind rootRef to the root element node of the component view.`)\n }\n })\n return vNode\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: ReactAdapter,\n useValue: this\n }])\n return super.render(rootComponent, childInjector)\n }\n\n override copy() {\n document.execCommand('copy')\n }\n}\n"],"names":["adapterError","makeError","ReactAdapter","components","mount","createCompositionNode","compositionState","updateNativeCompositionNode","createElement","style","textDecoration","ref","node","key","slot","id","text","getParentNode","parentNode","getChildNodes","parentElement","Array","from","childNodes","isNativeElementNode","Element","getChildByIndex","index","getAndUpdateSlotRootNativeElement","vEle","update","currentRef","attrs","get","set","v","current","componentRender","component","comp","name","changeMarker","rendered","vElementToViewElement","vNode","children","props","reduce","a","b","classes","size","className","join","styles","tagName","Object","keys","forEach","useState","Math","random","updateKey","refreshUpdateKey","useEffect","sub","merge","onChange","onForceChange","subscribe","dirty","unsubscribe","onViewUpdated","next","rootRef","rootNode","componentRootElementCaches","remove","render","rootComponent","injector","childInjector","ReflectiveInjector","provide","Adapter","useValue","DomAdapter","copy","document","execCommand"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -213,10 +213,8 @@ var ReactAdapter = /*#__PURE__*/ function(DomAdapter1) {
|
|
|
213
213
|
ref: function ref(node) {
|
|
214
214
|
updateNativeCompositionNode(node);
|
|
215
215
|
},
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
]
|
|
219
|
-
});
|
|
216
|
+
key: compositionState.slot.id
|
|
217
|
+
}, compositionState.text);
|
|
220
218
|
},
|
|
221
219
|
getParentNode: function getParentNode(node) {
|
|
222
220
|
return node.parentNode;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/react-adapter.ts"],"sourcesContent":["import { Adapter, Component, CompositionState, makeError, VElement, ViewMount } from '@textbus/core'\nimport { DomAdapter } from '@textbus/platform-browser'\nimport { createElement, JSX, useEffect, useState } from 'react'\nimport { Injector, ReflectiveInjector } from '@viewfly/core'\nimport { merge } from '@tanbo/stream'\n\nconst adapterError = makeError('ReactAdapter')\n\nexport interface ViewComponentProps<T extends Component> {\n component: T\n rootRef: ((rootNode: Element) => void)\n}\n\nexport interface ReactAdapterComponents {\n [key: string]: (props: ViewComponentProps<any>) => JSX.Element\n}\n\nexport class ReactAdapter extends DomAdapter<JSX.Element, JSX.Element> {\n private components: Record<string, (props: {component: Component}) => JSX.Element> = {}\n\n constructor(components: ReactAdapterComponents,\n mount: ViewMount<JSX.Element, Element>) {\n super({\n createCompositionNode(compositionState: CompositionState,\n updateNativeCompositionNode: (nativeNode: (Element | null)) => void) {\n return createElement('span', {\n style: {\n textDecoration: 'underline'\n },\n ref: (node: Element) => {\n updateNativeCompositionNode(node)\n },\n children: [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 if (currentRef) {\n vEle.attrs.set('ref', (v: Element) => {\n update(v)\n if (typeof currentRef === 'function') {\n currentRef(v)\n } else if (!currentRef.current) {\n currentRef.current = v\n }\n })\n } else {\n vEle.attrs.set('ref', update)\n }\n },\n componentRender: (component: Component<any>): JSX.Element => {\n const comp = this.components[component.name] || this.components['*']\n if (comp) {\n component.changeMarker.rendered()\n return createElement(comp, {\n key: component.id,\n component\n })\n }\n throw adapterError(`cannot found view component \\`${component.name}\\`!`)\n },\n vElementToViewElement(vNode: VElement, children: Array<string | JSX.Element>): JSX.Element {\n const props: any = {\n ...(Array.from(vNode.attrs).reduce((a, b) => {\n a[b[0]] = b[1]\n return a\n }, {} as Record<string, any>))\n }\n if (vNode.classes.size) {\n props.className = 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 return createElement(vNode.tagName, props, ...children)\n }\n }, mount)\n Object.keys(components).forEach(key => {\n this.components[key] = (props: {component: Component}) => {\n const component = props.component\n const [updateKey, refreshUpdateKey] = useState(Math.random())\n\n useEffect(() => {\n const sub = merge(component.changeMarker.onChange, component.changeMarker.onForceChange).subscribe(() => {\n if (component.changeMarker.dirty) {\n refreshUpdateKey(Math.random())\n }\n })\n return () => {\n sub.unsubscribe()\n }\n }, [])\n useEffect(() => {\n this.onViewUpdated.next()\n }, [updateKey])\n const vNode = components[key]({\n component,\n rootRef: (rootNode: Element) => {\n if (rootNode) {\n this.componentRootElementCaches.set(component, rootNode)\n } else {\n // 当组件移动层级位置到原位置之前并重新渲染后,由于时序的原因,再删除缓存会导致组件找不到对应视图节点\n // eslint-disable-next-line no-lonely-if\n if (this.componentRootElementCaches.get(component) === rootNode) {\n this.componentRootElementCaches.remove(component)\n }\n }\n }\n })\n useEffect(() => {\n if (!this.componentRootElementCaches.get(component)) {\n // eslint-disable-next-line max-len\n throw adapterError(`Component \\`${component.name}\\` is not bound to rootRef, you must bind rootRef to the root element node of the component view.`)\n }\n })\n return vNode\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: ReactAdapter,\n useValue: this\n }])\n return super.render(rootComponent, childInjector)\n }\n\n override copy() {\n document.execCommand('copy')\n }\n}\n"],"names":["adapterError","makeError","ReactAdapter","components","mount","createCompositionNode","compositionState","updateNativeCompositionNode","createElement","style","textDecoration","ref","node","children","text","getParentNode","parentNode","getChildNodes","parentElement","Array","from","childNodes","isNativeElementNode","Element","getChildByIndex","index","getAndUpdateSlotRootNativeElement","vEle","update","currentRef","attrs","get","set","v","current","componentRender","component","comp","name","changeMarker","rendered","key","id","vElementToViewElement","vNode","props","reduce","a","b","classes","size","className","join","styles","tagName","Object","keys","forEach","useState","Math","random","updateKey","refreshUpdateKey","useEffect","sub","merge","onChange","onForceChange","subscribe","dirty","unsubscribe","onViewUpdated","next","rootRef","rootNode","componentRootElementCaches","remove","render","rootComponent","injector","childInjector","ReflectiveInjector","provide","Adapter","useValue","DomAdapter","copy","document","execCommand"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/react-adapter.ts"],"sourcesContent":["import { Adapter, Component, CompositionState, makeError, VElement, ViewMount } from '@textbus/core'\nimport { DomAdapter } from '@textbus/platform-browser'\nimport { createElement, JSX, useEffect, useState } from 'react'\nimport { Injector, ReflectiveInjector } from '@viewfly/core'\nimport { merge } from '@tanbo/stream'\n\nconst adapterError = makeError('ReactAdapter')\n\nexport interface ViewComponentProps<T extends Component> {\n component: T\n rootRef: ((rootNode: Element) => void)\n}\n\nexport interface ReactAdapterComponents {\n [key: string]: (props: ViewComponentProps<any>) => JSX.Element\n}\n\nexport class ReactAdapter extends DomAdapter<JSX.Element, JSX.Element> {\n private components: Record<string, (props: { component: Component }) => JSX.Element> = {}\n\n constructor(components: ReactAdapterComponents,\n mount: ViewMount<JSX.Element, Element>) {\n super({\n createCompositionNode(compositionState: CompositionState,\n updateNativeCompositionNode: (nativeNode: (Element | null)) => void) {\n return createElement('span', {\n style: {\n textDecoration: 'underline'\n },\n ref: (node: Element) => {\n updateNativeCompositionNode(node)\n },\n key: compositionState.slot.id,\n }, compositionState.text)\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 if (currentRef) {\n vEle.attrs.set('ref', (v: Element) => {\n update(v)\n if (typeof currentRef === 'function') {\n currentRef(v)\n } else if (!currentRef.current) {\n currentRef.current = v\n }\n })\n } else {\n vEle.attrs.set('ref', update)\n }\n },\n componentRender: (component: Component<any>): JSX.Element => {\n const comp = this.components[component.name] || this.components['*']\n if (comp) {\n component.changeMarker.rendered()\n return createElement(comp, {\n key: component.id,\n component\n })\n }\n throw adapterError(`cannot found view component \\`${component.name}\\`!`)\n },\n vElementToViewElement(vNode: VElement, children: Array<string | JSX.Element>): JSX.Element {\n const props: any = {\n ...(Array.from(vNode.attrs).reduce((a, b) => {\n a[b[0]] = b[1]\n return a\n }, {} as Record<string, any>))\n }\n if (vNode.classes.size) {\n props.className = 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 return createElement(vNode.tagName, props, ...children)\n }\n }, mount)\n Object.keys(components).forEach(key => {\n this.components[key] = (props: { component: Component }) => {\n const component = props.component\n const [updateKey, refreshUpdateKey] = useState(Math.random())\n\n useEffect(() => {\n const sub = merge(component.changeMarker.onChange, component.changeMarker.onForceChange).subscribe(() => {\n if (component.changeMarker.dirty) {\n refreshUpdateKey(Math.random())\n }\n })\n return () => {\n sub.unsubscribe()\n }\n }, [])\n useEffect(() => {\n this.onViewUpdated.next()\n }, [updateKey])\n const vNode = components[key]({\n component,\n rootRef: (rootNode: Element) => {\n if (rootNode) {\n this.componentRootElementCaches.set(component, rootNode)\n } else {\n // 当组件移动层级位置到原位置之前并重新渲染后,由于时序的原因,再删除缓存会导致组件找不到对应视图节点\n // eslint-disable-next-line no-lonely-if\n if (this.componentRootElementCaches.get(component) === rootNode) {\n this.componentRootElementCaches.remove(component)\n }\n }\n }\n })\n useEffect(() => {\n if (!this.componentRootElementCaches.get(component)) {\n // eslint-disable-next-line max-len\n throw adapterError(`Component \\`${component.name}\\` is not bound to rootRef, you must bind rootRef to the root element node of the component view.`)\n }\n })\n return vNode\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: ReactAdapter,\n useValue: this\n }])\n return super.render(rootComponent, childInjector)\n }\n\n override copy() {\n document.execCommand('copy')\n }\n}\n"],"names":["adapterError","makeError","ReactAdapter","components","mount","createCompositionNode","compositionState","updateNativeCompositionNode","createElement","style","textDecoration","ref","node","key","slot","id","text","getParentNode","parentNode","getChildNodes","parentElement","Array","from","childNodes","isNativeElementNode","Element","getChildByIndex","index","getAndUpdateSlotRootNativeElement","vEle","update","currentRef","attrs","get","set","v","current","componentRender","component","comp","name","changeMarker","rendered","vElementToViewElement","vNode","children","props","reduce","a","b","classes","size","className","join","styles","tagName","Object","keys","forEach","useState","Math","random","updateKey","refreshUpdateKey","useEffect","sub","merge","onChange","onForceChange","subscribe","dirty","unsubscribe","onViewUpdated","next","rootRef","rootNode","componentRootElementCaches","remove","render","rootComponent","injector","childInjector","ReflectiveInjector","provide","Adapter","useValue","DomAdapter","copy","document","execCommand"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@textbus/adapter-react",
|
|
3
|
-
"version": "5.4.
|
|
3
|
+
"version": "5.4.7",
|
|
4
4
|
"description": "Textbus is a rich text editor and framework that is highly customizable and extensible to achieve rich wysiwyg effects.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.esm.js",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@tanbo/stream": "^1.2.7",
|
|
36
36
|
"@viewfly/core": "^3.0.5",
|
|
37
|
-
"@textbus/core": "^5.4.
|
|
38
|
-
"@textbus/platform-browser": "^5.4.
|
|
37
|
+
"@textbus/core": "^5.4.7",
|
|
38
|
+
"@textbus/platform-browser": "^5.4.7"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
|