@viewfly/platform-browser 0.5.4 → 0.6.1
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/bundles/dom-renderer.d.ts +1 -0
- package/bundles/html-renderer.d.ts +10 -9
- package/bundles/index.esm.js +10 -4
- package/bundles/index.js +10 -4
- package/bundles/jsx-dom.d.ts +6 -1
- package/package.json +3 -3
|
@@ -14,6 +14,7 @@ export declare class DomRenderer extends NativeRenderer<HTMLElement, Text> {
|
|
|
14
14
|
prependChild(parent: HTMLElement, newChild: HTMLElement | Text): void;
|
|
15
15
|
insertAfter(newNode: HTMLElement | Text, ref: HTMLElement | Text): void;
|
|
16
16
|
remove(node: HTMLElement | Text): void;
|
|
17
|
+
cleanChildren(node: HTMLElement): void;
|
|
17
18
|
setProperty(node: HTMLElement, key: string, value: any, isSvg: boolean): void;
|
|
18
19
|
removeProperty(node: HTMLElement, key: string, isSvg: boolean): void;
|
|
19
20
|
setClass(target: HTMLElement, className: string): void;
|
|
@@ -2,13 +2,13 @@ import { NativeRenderer } from '@viewfly/core';
|
|
|
2
2
|
export declare class VDOMElement {
|
|
3
3
|
name: string;
|
|
4
4
|
props: Map<string, any>;
|
|
5
|
-
children: Array<VDOMElement |
|
|
5
|
+
children: Array<VDOMElement | VDOMText>;
|
|
6
6
|
style: Map<string, any>;
|
|
7
7
|
className: string;
|
|
8
8
|
parent: VDOMElement | null;
|
|
9
9
|
constructor(name: string);
|
|
10
10
|
}
|
|
11
|
-
export declare class
|
|
11
|
+
export declare class VDOMText {
|
|
12
12
|
text: string;
|
|
13
13
|
parent: VDOMElement | null;
|
|
14
14
|
constructor(text: string);
|
|
@@ -16,21 +16,22 @@ export declare class VDomText {
|
|
|
16
16
|
/**
|
|
17
17
|
* 用于生成模拟轻量 DOM 节点的渲染器
|
|
18
18
|
*/
|
|
19
|
-
export declare class HTMLRenderer extends NativeRenderer<VDOMElement,
|
|
19
|
+
export declare class HTMLRenderer extends NativeRenderer<VDOMElement, VDOMText> {
|
|
20
20
|
createElement(name: string): VDOMElement;
|
|
21
|
-
createTextNode(textContent: string):
|
|
21
|
+
createTextNode(textContent: string): VDOMText;
|
|
22
22
|
setProperty(node: VDOMElement, key: string, value: any): void;
|
|
23
|
-
appendChild(parent: VDOMElement, newChild: VDOMElement |
|
|
24
|
-
prependChild(parent: VDOMElement, newChild: VDOMElement |
|
|
23
|
+
appendChild(parent: VDOMElement, newChild: VDOMElement | VDOMText): void;
|
|
24
|
+
prependChild(parent: VDOMElement, newChild: VDOMElement | VDOMText): void;
|
|
25
25
|
removeProperty(node: VDOMElement, key: string): void;
|
|
26
26
|
setStyle(target: VDOMElement, key: string, value: any): void;
|
|
27
27
|
removeStyle(target: VDOMElement, key: string): void;
|
|
28
28
|
setClass(target: VDOMElement, value: string): void;
|
|
29
29
|
listen(): void;
|
|
30
30
|
unListen(): void;
|
|
31
|
-
remove(node: VDOMElement |
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
remove(node: VDOMElement | VDOMText): void;
|
|
32
|
+
cleanChildren(node: VDOMElement): void;
|
|
33
|
+
syncTextContent(target: VDOMText, content: string): void;
|
|
34
|
+
insertAfter(newNode: VDOMElement | VDOMText, ref: VDOMElement | VDOMText): void;
|
|
34
35
|
}
|
|
35
36
|
/**
|
|
36
37
|
* 轻量 DOM 转换为 HTML 字符串的转换器
|
package/bundles/index.esm.js
CHANGED
|
@@ -38,6 +38,9 @@ class DomRenderer extends NativeRenderer {
|
|
|
38
38
|
remove(node) {
|
|
39
39
|
node.remove();
|
|
40
40
|
}
|
|
41
|
+
cleanChildren(node) {
|
|
42
|
+
node.textContent = '';
|
|
43
|
+
}
|
|
41
44
|
setProperty(node, key, value, isSvg) {
|
|
42
45
|
const nameSpace = DomRenderer.NAMESPACES;
|
|
43
46
|
if (isSvg) {
|
|
@@ -165,7 +168,7 @@ class VDOMElement {
|
|
|
165
168
|
this.parent = null;
|
|
166
169
|
}
|
|
167
170
|
}
|
|
168
|
-
class
|
|
171
|
+
class VDOMText {
|
|
169
172
|
constructor(text) {
|
|
170
173
|
this.text = text;
|
|
171
174
|
this.parent = null;
|
|
@@ -179,7 +182,7 @@ class HTMLRenderer extends NativeRenderer {
|
|
|
179
182
|
return new VDOMElement(name);
|
|
180
183
|
}
|
|
181
184
|
createTextNode(textContent) {
|
|
182
|
-
return new
|
|
185
|
+
return new VDOMText(textContent);
|
|
183
186
|
}
|
|
184
187
|
setProperty(node, key, value) {
|
|
185
188
|
node.props.set(key, value);
|
|
@@ -219,6 +222,9 @@ class HTMLRenderer extends NativeRenderer {
|
|
|
219
222
|
}
|
|
220
223
|
node.parent = null;
|
|
221
224
|
}
|
|
225
|
+
cleanChildren(node) {
|
|
226
|
+
node.children = [];
|
|
227
|
+
}
|
|
222
228
|
syncTextContent(target, content) {
|
|
223
229
|
target.text = content;
|
|
224
230
|
}
|
|
@@ -251,7 +257,7 @@ class OutputTranslator {
|
|
|
251
257
|
}
|
|
252
258
|
vDomToHTMLString(vDom) {
|
|
253
259
|
const xssFilter = OutputTranslator.simpleXSSFilter;
|
|
254
|
-
if (vDom instanceof
|
|
260
|
+
if (vDom instanceof VDOMText) {
|
|
255
261
|
return this.replaceEmpty(xssFilter.text(vDom.text), ' ');
|
|
256
262
|
}
|
|
257
263
|
const styles = Array.from(vDom.style.keys()).filter(key => {
|
|
@@ -326,4 +332,4 @@ OutputTranslator.simpleXSSFilter = {
|
|
|
326
332
|
}
|
|
327
333
|
};
|
|
328
334
|
|
|
329
|
-
export { DomRenderer, HTMLRenderer, OutputTranslator, VDOMElement,
|
|
335
|
+
export { DomRenderer, HTMLRenderer, OutputTranslator, VDOMElement, VDOMText, createApp, createPortal };
|
package/bundles/index.js
CHANGED
|
@@ -40,6 +40,9 @@ class DomRenderer extends core.NativeRenderer {
|
|
|
40
40
|
remove(node) {
|
|
41
41
|
node.remove();
|
|
42
42
|
}
|
|
43
|
+
cleanChildren(node) {
|
|
44
|
+
node.textContent = '';
|
|
45
|
+
}
|
|
43
46
|
setProperty(node, key, value, isSvg) {
|
|
44
47
|
const nameSpace = DomRenderer.NAMESPACES;
|
|
45
48
|
if (isSvg) {
|
|
@@ -167,7 +170,7 @@ class VDOMElement {
|
|
|
167
170
|
this.parent = null;
|
|
168
171
|
}
|
|
169
172
|
}
|
|
170
|
-
class
|
|
173
|
+
class VDOMText {
|
|
171
174
|
constructor(text) {
|
|
172
175
|
this.text = text;
|
|
173
176
|
this.parent = null;
|
|
@@ -181,7 +184,7 @@ class HTMLRenderer extends core.NativeRenderer {
|
|
|
181
184
|
return new VDOMElement(name);
|
|
182
185
|
}
|
|
183
186
|
createTextNode(textContent) {
|
|
184
|
-
return new
|
|
187
|
+
return new VDOMText(textContent);
|
|
185
188
|
}
|
|
186
189
|
setProperty(node, key, value) {
|
|
187
190
|
node.props.set(key, value);
|
|
@@ -221,6 +224,9 @@ class HTMLRenderer extends core.NativeRenderer {
|
|
|
221
224
|
}
|
|
222
225
|
node.parent = null;
|
|
223
226
|
}
|
|
227
|
+
cleanChildren(node) {
|
|
228
|
+
node.children = [];
|
|
229
|
+
}
|
|
224
230
|
syncTextContent(target, content) {
|
|
225
231
|
target.text = content;
|
|
226
232
|
}
|
|
@@ -253,7 +259,7 @@ class OutputTranslator {
|
|
|
253
259
|
}
|
|
254
260
|
vDomToHTMLString(vDom) {
|
|
255
261
|
const xssFilter = OutputTranslator.simpleXSSFilter;
|
|
256
|
-
if (vDom instanceof
|
|
262
|
+
if (vDom instanceof VDOMText) {
|
|
257
263
|
return this.replaceEmpty(xssFilter.text(vDom.text), ' ');
|
|
258
264
|
}
|
|
259
265
|
const styles = Array.from(vDom.style.keys()).filter(key => {
|
|
@@ -332,6 +338,6 @@ exports.DomRenderer = DomRenderer;
|
|
|
332
338
|
exports.HTMLRenderer = HTMLRenderer;
|
|
333
339
|
exports.OutputTranslator = OutputTranslator;
|
|
334
340
|
exports.VDOMElement = VDOMElement;
|
|
335
|
-
exports.
|
|
341
|
+
exports.VDOMText = VDOMText;
|
|
336
342
|
exports.createApp = createApp;
|
|
337
343
|
exports.createPortal = createPortal;
|
package/bundles/jsx-dom.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as CSS from 'csstype';
|
|
2
|
-
import { JSXInternal } from '@viewfly/core';
|
|
3
2
|
export interface CSSProperties extends CSS.Properties<string | number>, CSS.PropertiesHyphen<string | number> {
|
|
4
3
|
/**
|
|
5
4
|
* The index signature was removed to enable closed typing for style
|
|
@@ -1142,4 +1141,10 @@ export interface Events {
|
|
|
1142
1141
|
type EventHandlers<E> = {
|
|
1143
1142
|
[K in keyof E]?: E[K] extends (...args: any) => any ? E[K] : (payload: E[K]) => void;
|
|
1144
1143
|
};
|
|
1144
|
+
declare global {
|
|
1145
|
+
namespace JSXInternal {
|
|
1146
|
+
interface IntrinsicElements extends NativeElements {
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1149
|
+
}
|
|
1145
1150
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@viewfly/platform-browser",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "This project is used to enable the Viewfly framework to run in a browser.",
|
|
5
5
|
"main": "./bundles/index.js",
|
|
6
6
|
"module": "./bundles/index.esm.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"keywords": [],
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@viewfly/core": "^0.
|
|
15
|
+
"@viewfly/core": "^0.6.1",
|
|
16
16
|
"csstype": "^3.1.2"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
"bugs": {
|
|
34
34
|
"url": "https://github.com/viewfly/viewfly.git/issues"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "95ed600209322e44d2bd7d2eb62a1868629d9d68"
|
|
37
37
|
}
|