@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.
@@ -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 | VDomText>;
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 VDomText {
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, VDomText> {
19
+ export declare class HTMLRenderer extends NativeRenderer<VDOMElement, VDOMText> {
20
20
  createElement(name: string): VDOMElement;
21
- createTextNode(textContent: string): VDomText;
21
+ createTextNode(textContent: string): VDOMText;
22
22
  setProperty(node: VDOMElement, key: string, value: any): void;
23
- appendChild(parent: VDOMElement, newChild: VDOMElement | VDomText): void;
24
- prependChild(parent: VDOMElement, newChild: VDOMElement | VDomText): void;
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 | VDomText): void;
32
- syncTextContent(target: VDomText, content: string): void;
33
- insertAfter(newNode: VDOMElement | VDomText, ref: VDOMElement | VDomText): void;
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 字符串的转换器
@@ -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 VDomText {
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 VDomText(textContent);
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 VDomText) {
260
+ if (vDom instanceof VDOMText) {
255
261
  return this.replaceEmpty(xssFilter.text(vDom.text), '&nbsp;');
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, VDomText, createApp, createPortal };
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 VDomText {
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 VDomText(textContent);
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 VDomText) {
262
+ if (vDom instanceof VDOMText) {
257
263
  return this.replaceEmpty(xssFilter.text(vDom.text), '&nbsp;');
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.VDomText = VDomText;
341
+ exports.VDOMText = VDOMText;
336
342
  exports.createApp = createApp;
337
343
  exports.createPortal = createPortal;
@@ -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.5.4",
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.5.4",
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": "b66a751b23e5f9a336ac9f52438f9f9a27766762"
36
+ "gitHead": "95ed600209322e44d2bd7d2eb62a1868629d9d68"
37
37
  }