@lytjs/adapter-web 6.5.0 → 6.7.0

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/README.md CHANGED
@@ -1,123 +1,123 @@
1
- # @lytjs/adapter-web
2
-
3
- > Web 平台适配器,提供 DOM 操作、事件处理、样式管理等 Web 平台特定功能
4
-
5
- ## 安装
6
-
7
- ```bash
8
- npm install @lytjs/adapter-web
9
- ```
10
-
11
- ## 核心功能
12
-
13
- ### WebRendererHost
14
-
15
- Web 平台渲染器宿主实现,提供 DOM 操作接口:
16
-
17
- ```typescript
18
- import { WebRendererHost } from '@lytjs/adapter-web';
19
-
20
- const host = new WebRendererHost();
21
-
22
- // 创建元素
23
- const div = host.createElement('div');
24
-
25
- // 设置文本
26
- host.setText(div, 'Hello World');
27
-
28
- // 插入子节点
29
- host.insert(child, parent, null);
30
-
31
- // 移除节点
32
- host.remove(child);
33
- ```
34
-
35
- ### createDOMRenderer
36
-
37
- 创建 DOM 渲染器实例:
38
-
39
- ```typescript
40
- import { createDOMRenderer } from '@lytjs/adapter-web';
41
-
42
- const renderer = createDOMRenderer();
43
-
44
- // 渲染 VNode 到容器
45
- renderer.mount(vnode, document.getElementById('app'));
46
-
47
- // 更新渲染
48
- renderer.patch(oldVnode, newVnode);
49
-
50
- // 卸载
51
- renderer.unmount(vnode);
52
- ```
53
-
54
- ### DOM 操作工具
55
-
56
- ```typescript
57
- import {
58
- createElement,
59
- createTextNode,
60
- createComment,
61
- setText,
62
- setStyle,
63
- addClass,
64
- removeClass,
65
- } from '@lytjs/adapter-web';
66
-
67
- // 创建元素
68
- const el = createElement('div');
69
-
70
- // 设置样式
71
- setStyle(el, { color: 'red', fontSize: '14px' });
72
-
73
- // 操作 class
74
- addClass(el, 'container');
75
- removeClass(el, 'old-class');
76
- ```
77
-
78
- ### 事件处理
79
-
80
- ```typescript
81
- import { addEventListener, removeEventListener, removeAllEventListeners } from '@lytjs/adapter-web';
82
-
83
- // 添加事件监听
84
- const cleanup = addEventListener(el, 'click', (e) => {
85
- console.log('clicked');
86
- });
87
-
88
- // 移除事件监听
89
- cleanup();
90
-
91
- // 移除元素上所有事件监听
92
- removeAllEventListeners(el);
93
- ```
94
-
95
- ### 属性操作
96
-
97
- ```typescript
98
- import { patchAttr, patchClass, patchStyle, patchProp } from '@lytjs/adapter-web';
99
-
100
- // 设置属性
101
- patchAttr(el, 'id', 'my-id');
102
-
103
- // 设置 class
104
- patchClass(el, 'class-a class-b');
105
-
106
- // 设置样式
107
- patchStyle(el, { color: 'blue' }, { color: 'red' });
108
-
109
- // 设置 DOM 属性
110
- patchProp(el, 'value', 'new value', 'old value');
111
- ```
112
-
113
- ## 类型定义
114
-
115
- ```typescript
116
- import type { WebRendererHost, DOMRenderer, RendererOptions } from '@lytjs/adapter-web';
117
- ```
118
-
119
- ## 相关包
120
-
121
- - [@lytjs/renderer](../renderer) - 渲染器实现
122
- - [@lytjs/vdom](../vdom) - 虚拟 DOM
123
- - [@lytjs/dom](../dom) - DOM 平台封装
1
+ # @lytjs/adapter-web
2
+
3
+ > Web 平台适配器,提供 DOM 操作、事件处理、样式管理等 Web 平台特定功能
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm install @lytjs/adapter-web
9
+ ```
10
+
11
+ ## 核心功能
12
+
13
+ ### WebRendererHost
14
+
15
+ Web 平台渲染器宿主实现,提供 DOM 操作接口:
16
+
17
+ ```typescript
18
+ import { WebRendererHost } from '@lytjs/adapter-web';
19
+
20
+ const host = new WebRendererHost();
21
+
22
+ // 创建元素
23
+ const div = host.createElement('div');
24
+
25
+ // 设置文本
26
+ host.setText(div, 'Hello World');
27
+
28
+ // 插入子节点
29
+ host.insert(child, parent, null);
30
+
31
+ // 移除节点
32
+ host.remove(child);
33
+ ```
34
+
35
+ ### createDOMRenderer
36
+
37
+ 创建 DOM 渲染器实例:
38
+
39
+ ```typescript
40
+ import { createDOMRenderer } from '@lytjs/adapter-web';
41
+
42
+ const renderer = createDOMRenderer();
43
+
44
+ // 渲染 VNode 到容器
45
+ renderer.mount(vnode, document.getElementById('app'));
46
+
47
+ // 更新渲染
48
+ renderer.patch(oldVnode, newVnode);
49
+
50
+ // 卸载
51
+ renderer.unmount(vnode);
52
+ ```
53
+
54
+ ### DOM 操作工具
55
+
56
+ ```typescript
57
+ import {
58
+ createElement,
59
+ createTextNode,
60
+ createComment,
61
+ setText,
62
+ setStyle,
63
+ addClass,
64
+ removeClass,
65
+ } from '@lytjs/adapter-web';
66
+
67
+ // 创建元素
68
+ const el = createElement('div');
69
+
70
+ // 设置样式
71
+ setStyle(el, { color: 'red', fontSize: '14px' });
72
+
73
+ // 操作 class
74
+ addClass(el, 'container');
75
+ removeClass(el, 'old-class');
76
+ ```
77
+
78
+ ### 事件处理
79
+
80
+ ```typescript
81
+ import { addEventListener, removeEventListener, removeAllEventListeners } from '@lytjs/adapter-web';
82
+
83
+ // 添加事件监听
84
+ const cleanup = addEventListener(el, 'click', (e) => {
85
+ console.log('clicked');
86
+ });
87
+
88
+ // 移除事件监听
89
+ cleanup();
90
+
91
+ // 移除元素上所有事件监听
92
+ removeAllEventListeners(el);
93
+ ```
94
+
95
+ ### 属性操作
96
+
97
+ ```typescript
98
+ import { patchAttr, patchClass, patchStyle, patchProp } from '@lytjs/adapter-web';
99
+
100
+ // 设置属性
101
+ patchAttr(el, 'id', 'my-id');
102
+
103
+ // 设置 class
104
+ patchClass(el, 'class-a class-b');
105
+
106
+ // 设置样式
107
+ patchStyle(el, { color: 'blue' }, { color: 'red' });
108
+
109
+ // 设置 DOM 属性
110
+ patchProp(el, 'value', 'new value', 'old value');
111
+ ```
112
+
113
+ ## 类型定义
114
+
115
+ ```typescript
116
+ import type { WebRendererHost, DOMRenderer, RendererOptions } from '@lytjs/adapter-web';
117
+ ```
118
+
119
+ ## 相关包
120
+
121
+ - [@lytjs/renderer](../renderer) - 渲染器实现
122
+ - [@lytjs/vdom](../vdom) - 虚拟 DOM
123
+ - [@lytjs/dom](../dom) - DOM 平台封装
package/dist/index.cjs CHANGED
@@ -112,11 +112,7 @@ function patchEvent(el, rawName, nextValue, _prevValue) {
112
112
  el.addEventListener(parsed.name, invoker, options);
113
113
  } else if (!actualNextValue && existingInvoker) {
114
114
  const removeOptions = buildEventListenerOptions(existingInvoker._parsed);
115
- el.removeEventListener(
116
- existingInvoker._parsed.name,
117
- existingInvoker,
118
- removeOptions
119
- );
115
+ el.removeEventListener(existingInvoker._parsed.name, existingInvoker, removeOptions);
120
116
  releaseInvoker(existingInvoker);
121
117
  invokers[eventKey] = void 0;
122
118
  }
@@ -438,11 +434,7 @@ var _WebRendererHost = class _WebRendererHost {
438
434
  removeEventListener(el, event, handler, options) {
439
435
  const wrappedHandler = _WebRendererHost.getWrappedHandler(el, event, handler);
440
436
  if (wrappedHandler) {
441
- el.removeEventListener(
442
- event,
443
- wrappedHandler,
444
- options
445
- );
437
+ el.removeEventListener(event, wrappedHandler, options);
446
438
  const elMap = _WebRendererHost.wrappedHandlerMap.get(el);
447
439
  if (elMap) {
448
440
  const eventMap = elMap.get(event);
package/dist/index.mjs CHANGED
@@ -11,11 +11,7 @@ import {
11
11
  import { isOn } from "@lytjs/common-events";
12
12
 
13
13
  // src/web-patch-events.ts
14
- import {
15
- normalizeEventName,
16
- getEventKey,
17
- parseEventModifier
18
- } from "@lytjs/common-events";
14
+ import { normalizeEventName, getEventKey, parseEventModifier } from "@lytjs/common-events";
19
15
  var veiCache = /* @__PURE__ */ new WeakMap();
20
16
  var INVOKER_POOL_MAX_SIZE = 100;
21
17
  var invokerPool = [];
@@ -76,11 +72,7 @@ function patchEvent(el, rawName, nextValue, _prevValue) {
76
72
  el.addEventListener(parsed.name, invoker, options);
77
73
  } else if (!actualNextValue && existingInvoker) {
78
74
  const removeOptions = buildEventListenerOptions(existingInvoker._parsed);
79
- el.removeEventListener(
80
- existingInvoker._parsed.name,
81
- existingInvoker,
82
- removeOptions
83
- );
75
+ el.removeEventListener(existingInvoker._parsed.name, existingInvoker, removeOptions);
84
76
  releaseInvoker(existingInvoker);
85
77
  invokers[eventKey] = void 0;
86
78
  }
@@ -402,11 +394,7 @@ var _WebRendererHost = class _WebRendererHost {
402
394
  removeEventListener(el, event, handler, options) {
403
395
  const wrappedHandler = _WebRendererHost.getWrappedHandler(el, event, handler);
404
396
  if (wrappedHandler) {
405
- el.removeEventListener(
406
- event,
407
- wrappedHandler,
408
- options
409
- );
397
+ el.removeEventListener(event, wrappedHandler, options);
410
398
  const elMap = _WebRendererHost.wrappedHandlerMap.get(el);
411
399
  if (elMap) {
412
400
  const eventMap = elMap.get(event);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lytjs/adapter-web",
3
- "version": "6.5.0",
3
+ "version": "6.7.0",
4
4
  "description": "LytJS Web 平台适配器 - 浏览器 DOM 的 RendererHost 实现",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -24,15 +24,15 @@
24
24
  "clean": "rm -rf dist"
25
25
  },
26
26
  "dependencies": {
27
- "@lytjs/host-contract": "^6.4.0",
28
- "@lytjs/common-dom": "^6.4.0",
29
- "@lytjs/common-events": "^6.4.0",
30
- "@lytjs/common-is": "^6.4.0",
31
- "@lytjs/common-string": "^6.4.0",
32
- "@lytjs/common-error": "^6.4.0",
33
- "@lytjs/shared-types": "^6.4.0",
34
- "@lytjs/vdom": "^6.4.0",
35
- "@lytjs/reactivity": "^6.4.0"
27
+ "@lytjs/host-contract": "^6.7.0",
28
+ "@lytjs/common-dom": "^6.7.0",
29
+ "@lytjs/common-events": "^6.7.0",
30
+ "@lytjs/common-is": "^6.7.0",
31
+ "@lytjs/common-string": "^6.7.0",
32
+ "@lytjs/common-error": "^6.7.0",
33
+ "@lytjs/shared-types": "^6.7.0",
34
+ "@lytjs/vdom": "^6.7.0",
35
+ "@lytjs/reactivity": "^6.7.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "tsup": "^8.3.0",