@tarojs/plugin-platform-harmony-ets 4.0.0-beta.11 → 4.0.0-beta.110

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.
Files changed (129) hide show
  1. package/dist/apis/base/system.ts +73 -20
  2. package/dist/apis/canvas/index.ts +10 -1
  3. package/dist/apis/device/clipboard.ts +16 -8
  4. package/dist/apis/framework/index.ts +1 -5
  5. package/dist/apis/index.ts +25 -17
  6. package/dist/apis/media/image/index.ts +1 -1
  7. package/dist/apis/storage/index.ts +135 -131
  8. package/dist/apis/ui/animation/animation.ts +71 -29
  9. package/dist/apis/ui/background.ts +2 -1
  10. package/dist/apis/ui/interaction/index.ts +42 -59
  11. package/dist/apis/ui/navigation-bar/index.ts +1 -1
  12. package/dist/apis/ui/pull-down-refresh.ts +9 -3
  13. package/dist/apis/ui/scroll/index.ts +5 -5
  14. package/dist/apis/ui/tab-bar.ts +3 -3
  15. package/dist/apis/utils/index.ts +2 -1
  16. package/dist/apis/wxml/IntersectionObserver.ts +18 -10
  17. package/dist/apis/wxml/selectorQuery.ts +26 -13
  18. package/dist/components-harmony-ets/button.ets +35 -8
  19. package/dist/components-harmony-ets/canvas.ets +51 -0
  20. package/dist/components-harmony-ets/checkbox.ets +70 -60
  21. package/dist/components-harmony-ets/form.ets +35 -16
  22. package/dist/components-harmony-ets/icon.ets +16 -8
  23. package/dist/components-harmony-ets/image.ets +22 -6
  24. package/dist/components-harmony-ets/index.ets +92 -0
  25. package/dist/components-harmony-ets/innerHtml.ets +6 -5
  26. package/dist/components-harmony-ets/input.ets +62 -40
  27. package/dist/components-harmony-ets/label.ets +44 -21
  28. package/dist/components-harmony-ets/listView.ets +31 -0
  29. package/dist/components-harmony-ets/movableArea.ets +112 -53
  30. package/dist/components-harmony-ets/movableView.ets +75 -48
  31. package/dist/components-harmony-ets/navigationBar.ets +65 -0
  32. package/dist/components-harmony-ets/pageMeta.ets +94 -0
  33. package/dist/components-harmony-ets/picker.ets +41 -38
  34. package/dist/components-harmony-ets/progress.ets +31 -24
  35. package/dist/components-harmony-ets/pseudo.ets +80 -0
  36. package/dist/components-harmony-ets/radio.ets +76 -66
  37. package/dist/components-harmony-ets/richText.ets +4 -25
  38. package/dist/components-harmony-ets/scrollList.ets +103 -0
  39. package/dist/components-harmony-ets/scrollView.ets +47 -47
  40. package/dist/components-harmony-ets/slider.ets +18 -14
  41. package/dist/components-harmony-ets/stickySection.ets +42 -0
  42. package/dist/components-harmony-ets/style.ets +386 -130
  43. package/dist/components-harmony-ets/swiper.ets +41 -4
  44. package/dist/components-harmony-ets/switch.ets +35 -31
  45. package/dist/components-harmony-ets/{index.ts → tag.ts} +6 -0
  46. package/dist/components-harmony-ets/text.ets +102 -46
  47. package/dist/components-harmony-ets/textArea.ets +49 -34
  48. package/dist/components-harmony-ets/utils/AttributeManager.ets +2 -2
  49. package/dist/components-harmony-ets/utils/DynamicCenter.ts +2 -2
  50. package/dist/components-harmony-ets/utils/flexManager.ets +49 -19
  51. package/dist/components-harmony-ets/utils/helper.ets +20 -8
  52. package/dist/components-harmony-ets/utils/htmlParser/HarmonyHTMLParser.ts +1 -2
  53. package/dist/components-harmony-ets/utils/htmlParser/index.ts +1 -1
  54. package/dist/components-harmony-ets/utils/index.ts +54 -50
  55. package/dist/components-harmony-ets/utils/styles.ets +170 -93
  56. package/dist/components-harmony-ets/video.ets +27 -19
  57. package/dist/components-harmony-ets/view.ets +47 -40
  58. package/dist/components-harmony-ets/webView.ets +6 -5
  59. package/dist/index.d.ts +152 -0
  60. package/dist/index.js +69 -43
  61. package/dist/index.js.map +1 -1
  62. package/dist/runtime-ets/bom/document.ts +6 -4
  63. package/dist/runtime-ets/bom/getComputedStyle.ts +2 -2
  64. package/dist/runtime-ets/bom/window.ts +7 -0
  65. package/dist/runtime-ets/current.ts +5 -1
  66. package/dist/runtime-ets/dom/bind.ts +28 -12
  67. package/dist/runtime-ets/dom/class-list.ts +2 -2
  68. package/dist/runtime-ets/dom/cssNesting.ts +419 -0
  69. package/dist/runtime-ets/dom/cssStyleDeclaration.ts +28 -42
  70. package/dist/runtime-ets/dom/document.ts +8 -11
  71. package/dist/runtime-ets/dom/element/canvas.ts +136 -0
  72. package/dist/runtime-ets/dom/element/element.ts +376 -56
  73. package/dist/runtime-ets/dom/element/form.ts +20 -22
  74. package/dist/runtime-ets/dom/element/index.ts +22 -2
  75. package/dist/runtime-ets/dom/element/movableArea.ts +0 -1
  76. package/dist/runtime-ets/dom/element/movableView.ts +234 -2
  77. package/dist/runtime-ets/dom/element/normal.ts +27 -6
  78. package/dist/runtime-ets/dom/element/progress.ts +0 -2
  79. package/dist/runtime-ets/dom/element/text.ts +0 -8
  80. package/dist/runtime-ets/dom/element/video.ts +4 -4
  81. package/dist/runtime-ets/dom/element/webView.ts +4 -5
  82. package/dist/runtime-ets/dom/event.ts +3 -5
  83. package/dist/runtime-ets/dom/eventTarget.ts +2 -3
  84. package/dist/runtime-ets/dom/node.ts +51 -19
  85. package/dist/runtime-ets/dom/stylesheet/covertWeb2Hm.ts +418 -237
  86. package/dist/runtime-ets/dom/stylesheet/index.ts +29 -311
  87. package/dist/runtime-ets/dom/stylesheet/type.ts +51 -9
  88. package/dist/runtime-ets/dom/stylesheet/util.ts +33 -27
  89. package/dist/runtime-ets/index.ts +2 -1
  90. package/dist/runtime-ets/interface/event.ts +1 -1
  91. package/dist/runtime-ets/utils/index.ts +74 -13
  92. package/dist/runtime-ets/utils/info.ts +2 -2
  93. package/dist/runtime-framework/react/app.ts +15 -10
  94. package/dist/runtime-framework/react/hooks.ts +0 -1
  95. package/dist/runtime-framework/react/index.ts +0 -2
  96. package/dist/runtime-framework/react/native-page.ts +185 -78
  97. package/dist/runtime-framework/react/page.ts +4 -9
  98. package/dist/runtime-framework/react/utils/index.ts +3 -3
  99. package/dist/runtime-framework/solid/app.ts +30 -46
  100. package/dist/runtime-framework/solid/connect.ts +21 -3
  101. package/dist/runtime-framework/solid/hooks.ts +16 -11
  102. package/dist/runtime-framework/solid/index.ts +6 -2
  103. package/dist/runtime-framework/solid/page.ts +85 -31
  104. package/dist/runtime-framework/solid/reconciler/props.ts +70 -25
  105. package/dist/runtime-framework/solid/reconciler/render.ts +16 -6
  106. package/dist/runtime-framework/solid/reconciler/use.ts +0 -1
  107. package/dist/runtime-framework/solid/utils/index.ts +3 -5
  108. package/dist/runtime-utils.d.ts +827 -0
  109. package/dist/runtime-utils.js +425 -253
  110. package/dist/runtime-utils.js.map +1 -1
  111. package/dist/runtime.d.ts +1 -0
  112. package/dist/runtime.js +425 -253
  113. package/dist/runtime.js.map +1 -1
  114. package/index.js +3 -1
  115. package/package.json +14 -15
  116. package/static/media/cancel.svg +1 -1
  117. package/static/media/circle.svg +1 -1
  118. package/static/media/clear.svg +1 -1
  119. package/static/media/download.svg +1 -1
  120. package/static/media/info.svg +1 -1
  121. package/static/media/info_circle.svg +1 -1
  122. package/static/media/search.svg +1 -1
  123. package/static/media/success.svg +1 -1
  124. package/static/media/success_no_circle.svg +1 -1
  125. package/static/media/warn.svg +1 -1
  126. package/types/harmony.d.ts +4 -0
  127. package/types/index.d.ts +4 -0
  128. package/types/runtime.d.ts +1 -1
  129. /package/dist/runtime-framework/solid/{contant.ts → constant.ts} +0 -0
@@ -43,6 +43,8 @@ class TaroEventTarget extends Events {
43
43
  }
44
44
 
45
45
  public dispatchEvent (event: TaroEvent) {
46
+ // @ts-ignore
47
+ event.currentTarget = this
46
48
  const cancelable = event.cancelable
47
49
  const listeners = this.__listeners[event.type]
48
50
 
@@ -68,12 +70,10 @@ class TaroEventTarget extends Events {
68
70
  }
69
71
  }
70
72
 
71
-
72
73
  if (event._stop) {
73
74
  this._stopPropagation(event)
74
75
  }
75
76
 
76
-
77
77
  return listeners != null
78
78
  }
79
79
 
@@ -95,5 +95,4 @@ class TaroEventTarget extends Events {
95
95
  }
96
96
  }
97
97
 
98
-
99
98
  export { TaroEventTarget }
@@ -21,8 +21,8 @@ export enum NodeType {
21
21
  }
22
22
 
23
23
  let _id = 0
24
- function genId (): string {
25
- return `_n_${_id++}`
24
+ function genId (): number {
25
+ return ++_id
26
26
  }
27
27
 
28
28
  export class TaroNode extends TaroDataSourceElement {
@@ -30,8 +30,9 @@ export class TaroNode extends TaroDataSourceElement {
30
30
  public readonly nodeType: NodeType
31
31
  public childNodes: TaroNode[] = []
32
32
  public parentNode: TaroNode | null = null
33
- public _nid: string = genId()
33
+ public _nid: number = genId()
34
34
  public _doc: TaroDocument | null = null
35
+ public _instance?: TaroAny
35
36
 
36
37
  private _textContent = ''
37
38
 
@@ -43,6 +44,9 @@ export class TaroNode extends TaroDataSourceElement {
43
44
  // 是否为半编译模板下拥有自主更新权的节点
44
45
  public _isDynamicNode = false
45
46
 
47
+ // 以下属性为原生混写组件才有意义的属性
48
+ public _nativeUpdateTrigger = 0
49
+
46
50
  constructor(nodeName: string, nodeType = NodeType.ELEMENT_NODE) {
47
51
  super()
48
52
 
@@ -59,8 +63,16 @@ export class TaroNode extends TaroDataSourceElement {
59
63
  return this.childNodes[index] as TaroElement
60
64
  }
61
65
 
62
- public findIndex (refChild: TaroNode): number {
63
- return this.childNodes.findIndex(node => node._nid === refChild._nid)
66
+ public getStrNid() {
67
+ return `n_${this._nid}`;
68
+ }
69
+
70
+ public getNumNid(id) {
71
+ return +id.slice(2);
72
+ }
73
+
74
+ public findIndex (refChild?: TaroNode): number {
75
+ return this.childNodes.findIndex(node => node._nid === refChild?._nid)
64
76
  }
65
77
 
66
78
  public updateTextNode () {
@@ -77,17 +89,20 @@ export class TaroNode extends TaroDataSourceElement {
77
89
 
78
90
  // 更新对应的 ArkUI 组件
79
91
  public updateComponent () {
80
- if (!this._isCompileMode) return
81
-
82
- // 半编译模式下走 @State 的更新模式
83
- if (this._isDynamicNode) {
92
+ // 非半编译模式或者半编译模式下拥有自主更新权力的节点走 @State 的更新模式
93
+ if (this._isDynamicNode || (!this._isCompileMode && this._instance)) {
84
94
  this._updateTrigger++
85
95
  } else {
86
- this.parentNode.updateComponent()
96
+ this.parentNode?.updateComponent()
87
97
  }
88
98
  }
89
99
 
90
- public get firstChild (): TaroNode | null{
100
+ // 提供唯一标识,方便与小程序一致,能根据uid获取到对应的节点
101
+ public get uid (): string {
102
+ return this._nid
103
+ }
104
+
105
+ public get firstChild (): TaroNode | null {
91
106
  return this.childNodes[0] || null
92
107
  }
93
108
 
@@ -128,11 +143,15 @@ export class TaroNode extends TaroDataSourceElement {
128
143
  public set textContent (value: string) {
129
144
  if (this.nodeType === NodeType.TEXT_NODE) {
130
145
  this._textContent = value
131
- this.parentNode?.updateComponent()
146
+ if (!this._instance) {
147
+ this.updateComponent()
148
+ }
132
149
  } else if (this.nodeType === NodeType.ELEMENT_NODE) {
133
150
  const node = new TaroTextNode(value)
134
151
  node._doc = this.ownerDocument
135
- this.childNodes = [node]
152
+ node.parentNode = this
153
+ this.childNodes.length = 0
154
+ this.childNodes.push(node)
136
155
  }
137
156
  }
138
157
 
@@ -150,7 +169,6 @@ export class TaroNode extends TaroDataSourceElement {
150
169
  public set nodeValue (value: string | null) {
151
170
  if (this.nodeType === NodeType.TEXT_NODE && value) {
152
171
  this.textContent = value
153
- this.parentNode?.updateComponent()
154
172
  }
155
173
  }
156
174
 
@@ -163,28 +181,37 @@ export class TaroNode extends TaroDataSourceElement {
163
181
  }
164
182
 
165
183
  // TODO cloneNode()、contains()
166
-
167
- public appendChild (child: TaroNode): TaroNode {
184
+ public connectParentNode (child: TaroNode) {
168
185
  child.parentNode?.removeChild(child)
169
186
  child.parentNode = this
187
+ }
170
188
 
189
+ public appendChild (child: TaroNode): TaroNode {
190
+ this.connectParentNode(child)
171
191
  this.childNodes.push(child)
172
192
  this.notifyDataAdd(this.childNodes.length - 1)
173
193
 
194
+ // @ts-ignore
195
+ child.toggleLayer?.(true)
196
+
174
197
  checkIsCompileModeAndInstallAfterDOMAction(child, this)
175
198
  return child
176
199
  }
177
200
 
178
- public insertBefore (newNode: TaroNode, referenceNode: TaroNode | null): TaroNode {
201
+ public insertBefore (newNode: TaroNode, referenceNode?: TaroNode): TaroNode {
179
202
  newNode.parentNode?.removeChild(newNode)
180
203
 
181
- if (referenceNode === null) {
204
+ if (!referenceNode) {
182
205
  this.appendChild(newNode)
183
206
  } else {
184
207
  const idxOfRef = this.findIndex(referenceNode)
185
208
  this.childNodes.splice(idxOfRef, 0, newNode)
209
+ this.connectParentNode(newNode)
186
210
  // TODO: 优化
187
211
  this.notifyDataReload()
212
+
213
+ // @ts-ignore
214
+ newNode.toggleLayer?.(true)
188
215
  }
189
216
 
190
217
  checkIsCompileModeAndInstallAfterDOMAction(newNode, this)
@@ -203,6 +230,7 @@ export class TaroNode extends TaroDataSourceElement {
203
230
  oldChild.dispose()
204
231
  this.notifyDataChange(idxOfRef)
205
232
 
233
+ checkIsCompileModeAndUninstallAfterDOMAction(oldChild)
206
234
  checkIsCompileModeAndInstallAfterDOMAction(newChild, this)
207
235
 
208
236
  return oldChild
@@ -224,6 +252,10 @@ export class TaroNode extends TaroDataSourceElement {
224
252
  }
225
253
 
226
254
  public dispose () {
255
+ // 渲染,层级大于0的节点需要让其回到正常层级,然后删掉
256
+ // @ts-ignore
257
+ this.toggleLayer?.(false)
258
+
227
259
  this.parentNode = null
228
260
  this.childNodes = []
229
261
  }
@@ -253,7 +285,7 @@ function checkIsCompileModeAndInstallAfterDOMAction (node: TaroNode, parentNode:
253
285
  }
254
286
 
255
287
  function checkIsCompileModeAndUninstallAfterDOMAction (node: TaroNode) {
256
- if (!node._isCompileMode || !parentNode._instance) return
288
+ if (!node._isCompileMode || !node?._instance) return
257
289
 
258
290
  node._instance.dynamicCenter?.uninstall?.(node)
259
291
  }