@textbus/adapter-viewfly 5.2.1 → 5.2.3
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 +126 -75
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +170 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/dist/index.esm.js
CHANGED
|
@@ -1,120 +1,171 @@
|
|
|
1
|
-
import { makeError
|
|
2
|
-
import { jsx
|
|
3
|
-
import { DomAdapter
|
|
4
|
-
import { NodeViewAdapter
|
|
5
|
-
const
|
|
6
|
-
class
|
|
1
|
+
import { makeError, VElement, VTextNode, merge, Adapter } from "@textbus/core";
|
|
2
|
+
import { jsx, createDynamicRef, getCurrentInstance, onUnmounted, onUpdated, ReflectiveInjector } from "@viewfly/core";
|
|
3
|
+
import { DomAdapter } from "@textbus/platform-browser";
|
|
4
|
+
import { NodeViewAdapter } from "@textbus/platform-node";
|
|
5
|
+
const adapterError = makeError("ViewflyDOMRenderer");
|
|
6
|
+
class ViewflyAdapter extends DomAdapter {
|
|
7
7
|
components = {};
|
|
8
8
|
componentRefs = /* @__PURE__ */ new WeakMap();
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(components, mount) {
|
|
10
10
|
super({
|
|
11
|
-
createCompositionNode(
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
createCompositionNode(compositionState, updateNativeCompositionNode) {
|
|
12
|
+
const ref = createDynamicRef((node) => {
|
|
13
|
+
updateNativeCompositionNode(node);
|
|
14
|
+
return () => {
|
|
15
|
+
updateNativeCompositionNode(null);
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
return new VElement("span", {
|
|
16
19
|
style: {
|
|
17
20
|
textDecoration: "underline"
|
|
18
21
|
},
|
|
19
|
-
ref
|
|
22
|
+
ref
|
|
20
23
|
}, [
|
|
21
|
-
new
|
|
24
|
+
new VTextNode(compositionState.text)
|
|
22
25
|
]);
|
|
23
26
|
},
|
|
24
|
-
getParentNode(
|
|
25
|
-
return
|
|
27
|
+
getParentNode(node) {
|
|
28
|
+
return node.parentNode;
|
|
26
29
|
},
|
|
27
|
-
getChildNodes(
|
|
28
|
-
return Array.from(
|
|
30
|
+
getChildNodes(parentElement) {
|
|
31
|
+
return Array.from(parentElement.childNodes);
|
|
29
32
|
},
|
|
30
|
-
isNativeElementNode(
|
|
31
|
-
return
|
|
33
|
+
isNativeElementNode(node) {
|
|
34
|
+
return node instanceof Element;
|
|
32
35
|
},
|
|
33
|
-
getChildByIndex(
|
|
34
|
-
return
|
|
36
|
+
getChildByIndex(parentElement, index) {
|
|
37
|
+
return parentElement.childNodes[index];
|
|
35
38
|
},
|
|
36
|
-
getAndUpdateSlotRootNativeElement(
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
getAndUpdateSlotRootNativeElement(vEle, update) {
|
|
40
|
+
const currentRef = vEle.attrs.get("ref");
|
|
41
|
+
const ref = createDynamicRef((nativeNode) => {
|
|
42
|
+
update(nativeNode);
|
|
43
|
+
return () => {
|
|
44
|
+
update(null);
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
if (typeof currentRef === "function") {
|
|
48
|
+
vEle.attrs.set("ref", [currentRef, ref]);
|
|
49
|
+
} else if (Array.isArray(currentRef)) {
|
|
50
|
+
currentRef.push(ref);
|
|
51
|
+
} else {
|
|
52
|
+
vEle.attrs.set("ref", ref);
|
|
53
|
+
}
|
|
41
54
|
},
|
|
42
|
-
componentRender: (
|
|
43
|
-
const
|
|
44
|
-
if (
|
|
45
|
-
let
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
55
|
+
componentRender: (component) => {
|
|
56
|
+
const comp = this.components[component.name] || this.components["*"];
|
|
57
|
+
if (comp) {
|
|
58
|
+
let ref = this.componentRefs.get(component);
|
|
59
|
+
if (!ref) {
|
|
60
|
+
ref = createDynamicRef((rootNode) => {
|
|
61
|
+
this.componentRootElementCaches.set(component, rootNode);
|
|
62
|
+
return () => {
|
|
63
|
+
if (this.componentRootElementCaches.get(component) === rootNode) {
|
|
64
|
+
this.componentRootElementCaches.remove(component);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
this.componentRefs.set(component, ref);
|
|
69
|
+
}
|
|
70
|
+
return jsx(comp, {
|
|
71
|
+
component,
|
|
72
|
+
rootRef: ref
|
|
73
|
+
}, component.id);
|
|
52
74
|
}
|
|
53
|
-
throw
|
|
75
|
+
throw adapterError(`cannot found view component \`${component.name}\`!`);
|
|
54
76
|
},
|
|
55
|
-
vElementToViewElement(
|
|
56
|
-
let
|
|
57
|
-
const
|
|
58
|
-
const
|
|
59
|
-
|
|
77
|
+
vElementToViewElement(vNode, children) {
|
|
78
|
+
let key;
|
|
79
|
+
const props = Array.from(vNode.attrs).reduce((a, b) => {
|
|
80
|
+
const propName = b[0];
|
|
81
|
+
if (propName === "key") {
|
|
82
|
+
key = b[1];
|
|
83
|
+
return a;
|
|
84
|
+
}
|
|
85
|
+
a[propName] = b[1];
|
|
86
|
+
return a;
|
|
60
87
|
}, {});
|
|
61
|
-
|
|
88
|
+
if (vNode.classes.size) {
|
|
89
|
+
props.class = Array.from(vNode.classes).join(" ");
|
|
90
|
+
}
|
|
91
|
+
if (vNode.styles) {
|
|
92
|
+
props.style = Array.from(vNode.styles).reduce((a, b) => {
|
|
93
|
+
a[b[0]] = b[1];
|
|
94
|
+
return a;
|
|
95
|
+
}, {});
|
|
96
|
+
}
|
|
97
|
+
if (children.length) {
|
|
98
|
+
props.children = children;
|
|
99
|
+
}
|
|
100
|
+
return jsx(vNode.tagName, props, key);
|
|
62
101
|
}
|
|
63
|
-
},
|
|
64
|
-
let
|
|
65
|
-
Object.entries(
|
|
66
|
-
this.components[
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
102
|
+
}, mount);
|
|
103
|
+
let isRoot = true;
|
|
104
|
+
Object.entries(components).forEach(([key, viewFlyComponent]) => {
|
|
105
|
+
this.components[key] = (props) => {
|
|
106
|
+
const comp = getCurrentInstance();
|
|
107
|
+
const textbusComponent = props.component;
|
|
108
|
+
const subscription = merge(
|
|
109
|
+
textbusComponent.changeMarker.onChange,
|
|
110
|
+
textbusComponent.changeMarker.onForceChange
|
|
70
111
|
).subscribe(() => {
|
|
71
|
-
|
|
112
|
+
if (textbusComponent.changeMarker.dirty) {
|
|
113
|
+
comp.markAsDirtied();
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
onUnmounted(() => {
|
|
117
|
+
subscription.unsubscribe();
|
|
118
|
+
});
|
|
119
|
+
if (isRoot) {
|
|
120
|
+
onUpdated(() => {
|
|
121
|
+
this.onViewUpdated.next();
|
|
122
|
+
});
|
|
123
|
+
isRoot = false;
|
|
124
|
+
}
|
|
125
|
+
onUpdated(() => {
|
|
126
|
+
textbusComponent.changeMarker.rendered();
|
|
127
|
+
if (!this.componentRootElementCaches.get(textbusComponent)) {
|
|
128
|
+
throw adapterError(`Component \`${textbusComponent.name}\` is not bound to rootRef, you must bind rootRef to the root element node of the component view.`);
|
|
129
|
+
}
|
|
72
130
|
});
|
|
73
|
-
return
|
|
74
|
-
s.unsubscribe();
|
|
75
|
-
}), i && (p(() => {
|
|
76
|
-
this.onViewUpdated.next();
|
|
77
|
-
}), i = !1), p(() => {
|
|
78
|
-
if (o.changeMarker.rendered(), !this.componentRootElementCaches.get(o))
|
|
79
|
-
throw h(`Component \`${o.name}\` is not bound to rootRef, you must bind rootRef to the root element node of the component view.`);
|
|
80
|
-
}), r(t);
|
|
131
|
+
return viewFlyComponent(props);
|
|
81
132
|
};
|
|
82
133
|
});
|
|
83
134
|
}
|
|
84
|
-
render(
|
|
85
|
-
const
|
|
86
|
-
provide:
|
|
135
|
+
render(rootComponent, injector) {
|
|
136
|
+
const childInjector = new ReflectiveInjector(injector, [{
|
|
137
|
+
provide: Adapter,
|
|
87
138
|
useValue: this
|
|
88
139
|
}, {
|
|
89
|
-
provide:
|
|
140
|
+
provide: DomAdapter,
|
|
90
141
|
useValue: this
|
|
91
142
|
}, {
|
|
92
|
-
provide:
|
|
143
|
+
provide: ViewflyAdapter,
|
|
93
144
|
useValue: this
|
|
94
145
|
}]);
|
|
95
|
-
return super.render(
|
|
146
|
+
return super.render(rootComponent, childInjector);
|
|
96
147
|
}
|
|
97
148
|
copy() {
|
|
98
149
|
document.execCommand("copy");
|
|
99
150
|
}
|
|
100
151
|
}
|
|
101
|
-
class
|
|
102
|
-
render(
|
|
103
|
-
const
|
|
104
|
-
provide:
|
|
152
|
+
class ViewflyVDomAdapter extends NodeViewAdapter {
|
|
153
|
+
render(rootComponent, injector) {
|
|
154
|
+
const childInjector = new ReflectiveInjector(injector, [{
|
|
155
|
+
provide: Adapter,
|
|
105
156
|
useValue: this
|
|
106
157
|
}, {
|
|
107
|
-
provide:
|
|
158
|
+
provide: DomAdapter,
|
|
108
159
|
useValue: this
|
|
109
160
|
}, {
|
|
110
|
-
provide:
|
|
161
|
+
provide: ViewflyAdapter,
|
|
111
162
|
useValue: this
|
|
112
163
|
}]);
|
|
113
|
-
return super.render(
|
|
164
|
+
return super.render(rootComponent, childInjector);
|
|
114
165
|
}
|
|
115
166
|
}
|
|
116
167
|
export {
|
|
117
|
-
|
|
118
|
-
|
|
168
|
+
ViewflyAdapter,
|
|
169
|
+
ViewflyVDomAdapter
|
|
119
170
|
};
|
|
120
171
|
//# sourceMappingURL=index.esm.js.map
|
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 (currentRef instanceof DynamicRef) {\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","DomAdapter","components","mount","compositionState","updateNativeCompositionNode","ref","createDynamicRef","node","VElement","VTextNode","parentElement","index","vEle","update","currentRef","nativeNode","DynamicRef","component","comp","rootNode","jsx","vNode","children","key","props","a","b","propName","isRoot","viewFlyComponent","getCurrentInstance","textbusComponent","subscription","merge","onUnmounted","onUpdated","rootComponent","injector","childInjector","ReflectiveInjector","Adapter","ViewflyVDomAdapter","NodeViewAdapter"],"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":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,171 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const core = require("@textbus/core");
|
|
4
|
+
const core$1 = require("@viewfly/core");
|
|
5
|
+
const platformBrowser = require("@textbus/platform-browser");
|
|
6
|
+
const platformNode = require("@textbus/platform-node");
|
|
7
|
+
const adapterError = core.makeError("ViewflyDOMRenderer");
|
|
8
|
+
class ViewflyAdapter extends platformBrowser.DomAdapter {
|
|
9
|
+
components = {};
|
|
10
|
+
componentRefs = /* @__PURE__ */ new WeakMap();
|
|
11
|
+
constructor(components, mount) {
|
|
12
|
+
super({
|
|
13
|
+
createCompositionNode(compositionState, updateNativeCompositionNode) {
|
|
14
|
+
const ref = core$1.createDynamicRef((node) => {
|
|
15
|
+
updateNativeCompositionNode(node);
|
|
16
|
+
return () => {
|
|
17
|
+
updateNativeCompositionNode(null);
|
|
18
|
+
};
|
|
19
|
+
});
|
|
20
|
+
return new core.VElement("span", {
|
|
21
|
+
style: {
|
|
22
|
+
textDecoration: "underline"
|
|
23
|
+
},
|
|
24
|
+
ref
|
|
25
|
+
}, [
|
|
26
|
+
new core.VTextNode(compositionState.text)
|
|
27
|
+
]);
|
|
28
|
+
},
|
|
29
|
+
getParentNode(node) {
|
|
30
|
+
return node.parentNode;
|
|
31
|
+
},
|
|
32
|
+
getChildNodes(parentElement) {
|
|
33
|
+
return Array.from(parentElement.childNodes);
|
|
34
|
+
},
|
|
35
|
+
isNativeElementNode(node) {
|
|
36
|
+
return node instanceof Element;
|
|
37
|
+
},
|
|
38
|
+
getChildByIndex(parentElement, index) {
|
|
39
|
+
return parentElement.childNodes[index];
|
|
40
|
+
},
|
|
41
|
+
getAndUpdateSlotRootNativeElement(vEle, update) {
|
|
42
|
+
const currentRef = vEle.attrs.get("ref");
|
|
43
|
+
const ref = core$1.createDynamicRef((nativeNode) => {
|
|
44
|
+
update(nativeNode);
|
|
45
|
+
return () => {
|
|
46
|
+
update(null);
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
if (typeof currentRef === "function") {
|
|
50
|
+
vEle.attrs.set("ref", [currentRef, ref]);
|
|
51
|
+
} else if (Array.isArray(currentRef)) {
|
|
52
|
+
currentRef.push(ref);
|
|
53
|
+
} else {
|
|
54
|
+
vEle.attrs.set("ref", ref);
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
componentRender: (component) => {
|
|
58
|
+
const comp = this.components[component.name] || this.components["*"];
|
|
59
|
+
if (comp) {
|
|
60
|
+
let ref = this.componentRefs.get(component);
|
|
61
|
+
if (!ref) {
|
|
62
|
+
ref = core$1.createDynamicRef((rootNode) => {
|
|
63
|
+
this.componentRootElementCaches.set(component, rootNode);
|
|
64
|
+
return () => {
|
|
65
|
+
if (this.componentRootElementCaches.get(component) === rootNode) {
|
|
66
|
+
this.componentRootElementCaches.remove(component);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
this.componentRefs.set(component, ref);
|
|
71
|
+
}
|
|
72
|
+
return core$1.jsx(comp, {
|
|
73
|
+
component,
|
|
74
|
+
rootRef: ref
|
|
75
|
+
}, component.id);
|
|
76
|
+
}
|
|
77
|
+
throw adapterError(`cannot found view component \`${component.name}\`!`);
|
|
78
|
+
},
|
|
79
|
+
vElementToViewElement(vNode, children) {
|
|
80
|
+
let key;
|
|
81
|
+
const props = Array.from(vNode.attrs).reduce((a, b) => {
|
|
82
|
+
const propName = b[0];
|
|
83
|
+
if (propName === "key") {
|
|
84
|
+
key = b[1];
|
|
85
|
+
return a;
|
|
86
|
+
}
|
|
87
|
+
a[propName] = b[1];
|
|
88
|
+
return a;
|
|
89
|
+
}, {});
|
|
90
|
+
if (vNode.classes.size) {
|
|
91
|
+
props.class = Array.from(vNode.classes).join(" ");
|
|
92
|
+
}
|
|
93
|
+
if (vNode.styles) {
|
|
94
|
+
props.style = Array.from(vNode.styles).reduce((a, b) => {
|
|
95
|
+
a[b[0]] = b[1];
|
|
96
|
+
return a;
|
|
97
|
+
}, {});
|
|
98
|
+
}
|
|
99
|
+
if (children.length) {
|
|
100
|
+
props.children = children;
|
|
101
|
+
}
|
|
102
|
+
return core$1.jsx(vNode.tagName, props, key);
|
|
103
|
+
}
|
|
104
|
+
}, mount);
|
|
105
|
+
let isRoot = true;
|
|
106
|
+
Object.entries(components).forEach(([key, viewFlyComponent]) => {
|
|
107
|
+
this.components[key] = (props) => {
|
|
108
|
+
const comp = core$1.getCurrentInstance();
|
|
109
|
+
const textbusComponent = props.component;
|
|
110
|
+
const subscription = core.merge(
|
|
111
|
+
textbusComponent.changeMarker.onChange,
|
|
112
|
+
textbusComponent.changeMarker.onForceChange
|
|
113
|
+
).subscribe(() => {
|
|
114
|
+
if (textbusComponent.changeMarker.dirty) {
|
|
115
|
+
comp.markAsDirtied();
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
core$1.onUnmounted(() => {
|
|
119
|
+
subscription.unsubscribe();
|
|
120
|
+
});
|
|
121
|
+
if (isRoot) {
|
|
122
|
+
core$1.onUpdated(() => {
|
|
123
|
+
this.onViewUpdated.next();
|
|
124
|
+
});
|
|
125
|
+
isRoot = false;
|
|
126
|
+
}
|
|
127
|
+
core$1.onUpdated(() => {
|
|
128
|
+
textbusComponent.changeMarker.rendered();
|
|
129
|
+
if (!this.componentRootElementCaches.get(textbusComponent)) {
|
|
130
|
+
throw adapterError(`Component \`${textbusComponent.name}\` is not bound to rootRef, you must bind rootRef to the root element node of the component view.`);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
return viewFlyComponent(props);
|
|
134
|
+
};
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
render(rootComponent, injector) {
|
|
138
|
+
const childInjector = new core$1.ReflectiveInjector(injector, [{
|
|
139
|
+
provide: core.Adapter,
|
|
140
|
+
useValue: this
|
|
141
|
+
}, {
|
|
142
|
+
provide: platformBrowser.DomAdapter,
|
|
143
|
+
useValue: this
|
|
144
|
+
}, {
|
|
145
|
+
provide: ViewflyAdapter,
|
|
146
|
+
useValue: this
|
|
147
|
+
}]);
|
|
148
|
+
return super.render(rootComponent, childInjector);
|
|
149
|
+
}
|
|
150
|
+
copy() {
|
|
151
|
+
document.execCommand("copy");
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
class ViewflyVDomAdapter extends platformNode.NodeViewAdapter {
|
|
155
|
+
render(rootComponent, injector) {
|
|
156
|
+
const childInjector = new core$1.ReflectiveInjector(injector, [{
|
|
157
|
+
provide: core.Adapter,
|
|
158
|
+
useValue: this
|
|
159
|
+
}, {
|
|
160
|
+
provide: platformBrowser.DomAdapter,
|
|
161
|
+
useValue: this
|
|
162
|
+
}, {
|
|
163
|
+
provide: ViewflyAdapter,
|
|
164
|
+
useValue: this
|
|
165
|
+
}]);
|
|
166
|
+
return super.render(rootComponent, childInjector);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
exports.ViewflyAdapter = ViewflyAdapter;
|
|
170
|
+
exports.ViewflyVDomAdapter = ViewflyVDomAdapter;
|
|
2
171
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.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 (currentRef instanceof DynamicRef) {\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","DomAdapter","components","mount","compositionState","updateNativeCompositionNode","ref","createDynamicRef","node","VElement","VTextNode","parentElement","index","vEle","update","currentRef","nativeNode","DynamicRef","component","comp","rootNode","jsx","vNode","children","key","props","a","b","propName","isRoot","viewFlyComponent","getCurrentInstance","textbusComponent","subscription","merge","onUnmounted","onUpdated","rootComponent","injector","childInjector","ReflectiveInjector","Adapter","ViewflyVDomAdapter","NodeViewAdapter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.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":["makeError","DomAdapter","createDynamicRef","VElement","VTextNode","jsx","getCurrentInstance","merge","onUnmounted","onUpdated","ReflectiveInjector","Adapter","NodeViewAdapter"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@textbus/adapter-viewfly",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.3",
|
|
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",
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
],
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@tanbo/stream": "^1.2.7",
|
|
36
|
-
"@viewfly/core": "^2.2.0 || >=3.0.0-alpha.
|
|
37
|
-
"@viewfly/platform-browser": "^2.2.0 || >=3.0.0-alpha.
|
|
38
|
-
"@textbus/
|
|
39
|
-
"@textbus/platform-node": "^5.2.
|
|
40
|
-
"@textbus/
|
|
36
|
+
"@viewfly/core": "^2.2.0 || >=3.0.0-alpha.3 <4",
|
|
37
|
+
"@viewfly/platform-browser": "^2.2.0 || >=3.0.0-alpha.3 <4",
|
|
38
|
+
"@textbus/core": "^5.2.3",
|
|
39
|
+
"@textbus/platform-node": "^5.2.3",
|
|
40
|
+
"@textbus/platform-browser": "^5.2.3"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"rimraf": "^3.0.2",
|