@tarojs/react 4.0.0-canary.0 → 4.0.0-canary.10

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/LICENSE CHANGED
@@ -158,3 +158,17 @@ MIT (stencil-vue2-output-target):
158
158
  The following files embed [stencil-vue2-output-target](https://github.com/diondree/stencil-vue2-output-target) MIT:
159
159
  `/packages/taro-components-library-vue2/src/vue-component-lib/utils.ts`
160
160
  See `/LICENSE` for details of the license.
161
+
162
+ ==================
163
+
164
+ MIT (weui):
165
+ The following files embed [stencil-vue2-output-target](https://github.com/Tencent/weui) MIT:
166
+ `/packages/taro-components/src/components/*.scss`
167
+ See `/LICENSE.txt` for details of the license.
168
+
169
+ ==================
170
+
171
+ Apache-2.0 (intersection-observer):
172
+ The following files embed [intersection-observer](https://github.com/GoogleChromeLabs/intersection-observer) Apache-2.0:
173
+ `/packages/taro-api/src/polyfill/intersection-observer.ts`
174
+ See `/LICENSE.txt` for details of the license.
package/dist/index.js CHANGED
@@ -142,6 +142,10 @@ function getFiberCurrentPropsFromNode(node) {
142
142
  }
143
143
  function updateFiberProps(node, props) {
144
144
  node[internalPropsKey] = props;
145
+ if (process.env.TARO_PLATFORM === 'harmony') {
146
+ // @ts-ignore
147
+ node.updateTextNode();
148
+ }
145
149
  }
146
150
 
147
151
  // 从 props 中,更新 input 组件的 value 值
@@ -299,16 +303,6 @@ function isEventName(s) {
299
303
  function isEqual(obj1, obj2) {
300
304
  return JSON.stringify(obj1) === JSON.stringify(obj2);
301
305
  }
302
- function updateDOMInstance(dom, name) {
303
- if (!isHarmony)
304
- { return; }
305
- var isFormElement = dom instanceof runtime.FormElement;
306
- var isNotNeedUpdateDOM = isFormElement && name && !['value', 'name', 'checked'].includes(name);
307
- if (isNotNeedUpdateDOM)
308
- { return; }
309
- // @ts-ignore
310
- dom.updateComponent && dom.updateComponent();
311
- }
312
306
  function updateProps(dom, oldProps, newProps) {
313
307
  var updatePayload = getUpdatePayload(dom, oldProps, newProps);
314
308
  if (updatePayload) {
@@ -316,11 +310,31 @@ function updateProps(dom, oldProps, newProps) {
316
310
  }
317
311
  }
318
312
  function updatePropsByPayload(dom, oldProps, updatePayload) {
319
- for (var i = 0; i < updatePayload.length; i += 2) { // key, value 成对出现
313
+ var handlers = [];
314
+ var loop = function ( i ) {
315
+ // key, value 成对出现
320
316
  var key = updatePayload[i];
321
317
  var newProp = updatePayload[i + 1];
322
318
  var oldProp = oldProps[key];
323
- setProperty(dom, key, newProp, oldProp);
319
+ if (isHarmony) {
320
+ // 鸿蒙样式前置插入,防止覆盖style
321
+ if (key === '__hmStyle') {
322
+ handlers.unshift(function () { return setHarmonyStyle(dom, newProp, oldProp); });
323
+ }
324
+ else {
325
+ handlers.push(function () { return setProperty(dom, key, newProp, oldProp); });
326
+ }
327
+ }
328
+ else {
329
+ setProperty(dom, key, newProp, oldProp);
330
+ }
331
+ };
332
+
333
+ for (var i = 0; i < updatePayload.length; i += 2) loop( i );
334
+ if (isHarmony) {
335
+ for (var i$1 = 0; i$1 < handlers.length; i$1++) {
336
+ handlers[i$1]();
337
+ }
324
338
  }
325
339
  }
326
340
  function getUpdatePayload(dom, oldProps, newProps) {
@@ -368,28 +382,75 @@ function setEvent(dom, name, value, oldValue) {
368
382
  }
369
383
  }
370
384
  function setStyle(style, key, value) {
371
- if (key[0] === '-') {
372
- // 适配鸿蒙
373
- if (isHarmony) {
374
- style.setProperty(key, value);
375
- }
376
- else {
377
- style.setProperty(key, value.toString());
378
- }
385
+ if (key[0] === '-' && !isHarmony) {
379
386
  // css variables need not further judgment
387
+ style.setProperty(key, value.toString());
380
388
  return;
381
389
  }
382
- if (isHarmony && key.startsWith('_')) {
383
- // harmony样式已处理
384
- style[key] = value == null ? '' : value;
390
+ style[key] =
391
+ shared.isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false
392
+ ? (isHarmony ? value + 'px' : runtime.convertNumber2PX(value))
393
+ : value == null
394
+ ? ''
395
+ : value;
396
+ }
397
+ // 鸿蒙样式特殊处理,需要在插入顺序中前置插入,防止覆盖了style
398
+ function setHarmonyStyle(dom, value, oldValue) {
399
+ // @ts-ignore
400
+ var style = dom._st.hmStyle; // __hmStyle是已经被处理过的鸿蒙样式,可以直接塞进hmStyle对象内
401
+ if (shared.isObject(oldValue)) {
402
+ for (var i in oldValue) {
403
+ if (!(value && i in value)) {
404
+ // 鸿蒙伪类特殊处理
405
+ if (isHarmony) {
406
+ if (i === '::after' || i === '::before') {
407
+ setPseudo(dom, i, null);
408
+ }
409
+ else if (['::first-child', '::last-child'].includes(i) || i.startsWith('::nth-child')) {
410
+ // @ts-ignore
411
+ dom.set_pseudo_class(i, null);
412
+ }
413
+ else {
414
+ if (i === 'position' && oldValue[i] === 'fixed') {
415
+ // @ts-ignore
416
+ dom.setLayer(0);
417
+ }
418
+ style[i] = '';
419
+ }
420
+ }
421
+ else {
422
+ style[i] = '';
423
+ }
424
+ }
425
+ }
385
426
  }
386
- else {
387
- style[key] =
388
- shared.isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false
389
- ? runtime.convertNumber2PX(value)
390
- : value == null
391
- ? ''
392
- : value;
427
+ if (shared.isObject(value)) {
428
+ for (var i$1 in value) {
429
+ if (!oldValue || !isEqual(value[i$1], oldValue[i$1])) {
430
+ // 鸿蒙伪类特殊处理
431
+ if (isHarmony) {
432
+ if (i$1 === '::after' || i$1 === '::before') {
433
+ setPseudo(dom, i$1, value[i$1]);
434
+ }
435
+ else if (['::first-child', '::last-child'].includes(i$1) || i$1.startsWith('::nth-child')) {
436
+ // @ts-ignore
437
+ dom.set_pseudo_class(i$1, value[i$1]);
438
+ }
439
+ else {
440
+ if (i$1 === 'position') {
441
+ if (value[i$1] === 'fixed' || (value[i$1] !== 'fixed' && (oldValue === null || oldValue === void 0 ? void 0 : oldValue[i$1]))) {
442
+ // @ts-ignore
443
+ dom.setLayer(value[i$1] === 'fixed' ? 1 : 0);
444
+ }
445
+ }
446
+ style[i$1] = value[i$1];
447
+ }
448
+ }
449
+ else {
450
+ style[i$1] = value[i$1];
451
+ }
452
+ }
453
+ }
393
454
  }
394
455
  }
395
456
  function setProperty(dom, name, value, oldValue) {
@@ -408,25 +469,18 @@ function setProperty(dom, name, value, oldValue) {
408
469
  style.cssText = '';
409
470
  oldValue = null;
410
471
  }
411
- var needUpdateAfterMoved = false;
412
472
  if (shared.isObject(oldValue)) {
413
473
  for (var i in oldValue) {
414
474
  if (!(value && i in value)) {
475
+ // harmony设置style,路径设置路径如下:dom.style => cssStyleDeclaration.setProperty => convertWebStyle2HmStyle => dom._st.hmStyle
415
476
  setStyle(style, i, '');
416
- if (shared.isObject(value) && !value[i]) {
417
- needUpdateAfterMoved = true;
418
- }
419
477
  }
420
478
  }
421
- if (needUpdateAfterMoved) {
422
- updateDOMInstance(dom);
423
- }
424
479
  }
425
480
  if (shared.isObject(value)) {
426
481
  for (var i$1 in value) {
427
482
  if (!oldValue || !isEqual(value[i$1], oldValue[i$1])) {
428
483
  setStyle(style, i$1, value[i$1]);
429
- updateDOMInstance(dom);
430
484
  }
431
485
  }
432
486
  }
@@ -447,14 +501,23 @@ function setProperty(dom, name, value, oldValue) {
447
501
  else if (!shared.isFunction(value)) {
448
502
  if (value == null) {
449
503
  dom.removeAttribute(name);
450
- updateDOMInstance(dom, name);
451
504
  }
452
505
  else {
453
506
  dom.setAttribute(name, value);
454
- updateDOMInstance(dom, name);
455
507
  }
456
508
  }
457
509
  }
510
+ // 设置鸿蒙伪类属性(特殊设置)
511
+ function setPseudo(dom, name, value) {
512
+ if (name === '::after') {
513
+ // @ts-ignore
514
+ dom.set_pseudo_after(value);
515
+ }
516
+ else if (name === '::before') {
517
+ // @ts-ignore
518
+ dom.set_pseudo_before(value);
519
+ }
520
+ }
458
521
 
459
522
  /* eslint-disable @typescript-eslint/indent */
460
523
  var hostConfig = {
@@ -486,7 +549,19 @@ var hostConfig = {
486
549
  parent.appendChild(child);
487
550
  },
488
551
  finalizeInitialChildren: function finalizeInitialChildren(dom, type, props) {
489
- updateProps(dom, {}, props); // 提前执行更新属性操作,Taro 在 Page 初始化后会立即从 dom 读取必要信息
552
+ var obj;
553
+
554
+ var newProps = props;
555
+ if (dom instanceof runtime.FormElement) {
556
+ var ref = ['switch', 'checkbox', 'radio'].includes(type) ? ['checked', 'defaultChecked'] : ['value', 'defaultValue'];
557
+ var defaultName = ref[0];
558
+ var defaultKey = ref[1];
559
+ if (props.hasOwnProperty(defaultKey)) {
560
+ newProps = Object.assign(Object.assign({}, newProps), ( obj = {}, obj[defaultName] = props[defaultKey], obj ));
561
+ delete newProps[defaultKey];
562
+ }
563
+ }
564
+ updateProps(dom, {}, newProps); // 提前执行更新属性操作,Taro 在 Page 初始化后会立即从 dom 读取必要信息
490
565
  if (type === 'input' || type === 'textarea') {
491
566
  track(dom);
492
567
  }
@@ -525,8 +600,7 @@ var hostConfig = {
525
600
  // Microtasks
526
601
  // (optional)
527
602
  // -------------------
528
- // 鸿蒙平台不支持微任务
529
- supportsMicrotasks: process.env.TARO_PLATFORM !== 'harmony',
603
+ supportsMicrotasks: true,
530
604
  scheduleMicrotask: shared.isUndefined(Promise)
531
605
  ? setTimeout
532
606
  : function (callback) { return Promise.resolve(null)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/constant.ts","../src/workTags.ts","../src/componentTree.ts","../src/domInput.ts","../src/inputValueTracking.ts","../src/props.ts","../src/reconciler.ts","../src/event.ts","../src/render.ts","../src/index.ts"],"sourcesContent":["export const supportedInputTypes: { [key: string]: boolean } = {\n color: true,\n date: true,\n datetime: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n password: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n}\n\nconst SyncLane = 1\nconst InputContinuousLane = 4\nconst DefaultLane = 16\nconst DiscreteEventPriority = SyncLane\nconst ContinuousEventPriority = InputContinuousLane\nconst DefaultEventPriority = DefaultLane\n\nexport function getEventPriority (domEventName) {\n switch (domEventName) {\n case 'cancel':\n case 'click':\n case 'close':\n case 'contextmenu':\n case 'copy':\n case 'cut':\n case 'dragend':\n case 'dragstart':\n case 'drop':\n case 'input':\n case 'paste':\n case 'pause':\n case 'play':\n case 'pointercancel':\n case 'pointerdown':\n case 'pointerup':\n case 'reset':\n case 'resize':\n case 'submit':\n case 'touchcancel':\n case 'touchend':\n case 'touchstart':\n case 'change':\n case 'blur':\n case 'focus':\n case 'select':\n case 'selectstart':\n return DiscreteEventPriority\n case 'drag':\n case 'dragenter':\n case 'dragexit':\n case 'dragleave':\n case 'dragover':\n case 'pointermove':\n case 'pointerout':\n case 'pointerover':\n case 'scroll':\n case 'toggle':\n case 'touchmove':\n case 'pointerenter':\n case 'pointerleave':\n return ContinuousEventPriority\n default:\n return DefaultEventPriority\n }\n}\n\n\nconst randomKey = Math.random()\n .toString(36)\n .slice(2)\n\nexport const internalPropsKey = '__reactProps$' + randomKey\nexport const internalInstanceKey = '__reactFiber$' + randomKey\nexport const internalContainerInstanceKey = '__reactContainer$' + randomKey\n// const internalEventHandlersKey = '__reactEvents$' + randomKey\n// const internalEventHandlerListenersKey = '__reactListeners$' + randomKey\n// const internalEventHandlesSetKey = '__reactHandles$' + randomKey\n","export type WorkTag =\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16\n | 17\n | 18\n | 19\n | 20\n | 21\n | 22\n | 23\n | 24\n | 25\n\nexport const FunctionComponent = 0\nexport const ClassComponent = 1\nexport const IndeterminateComponent = 2 // Before we know whether it is function or class\nexport const HostRoot = 3 // Root of a host tree. Could be nested inside another node.\nexport const HostPortal = 4 // A subtree. Could be an entry point to a different renderer.\nexport const HostComponent = 5\nexport const HostText = 6\nexport const Fragment = 7\nexport const Mode = 8\nexport const ContextConsumer = 9\nexport const ContextProvider = 10\nexport const ForwardRef = 11\nexport const Profiler = 12\nexport const SuspenseComponent = 13\nexport const MemoComponent = 14\nexport const SimpleMemoComponent = 15\nexport const LazyComponent = 16\nexport const IncompleteClassComponent = 17\nexport const DehydratedFragment = 18\nexport const SuspenseListComponent = 19\nexport const ScopeComponent = 21\nexport const OffscreenComponent = 22\nexport const LegacyHiddenComponent = 23\nexport const CacheComponent = 24\nexport const TracingMarkerComponent = 25\n","/**\n * 给 TaroElement 绑定 react fiber、react props 等属性\n * 提供 fiber -> element、element -> fiber、element -> props 的方法\n*/\nimport { internalContainerInstanceKey, internalInstanceKey, internalPropsKey } from './constant'\nimport { Props } from './props'\nimport { HostComponent, HostRoot, HostText, SuspenseComponent } from './workTags'\n\nimport type { TaroElement } from '@tarojs/runtime'\nimport type { Fiber } from 'react-reconciler'\n\nexport function precacheFiberNode (hostInst: Fiber, node: TaroElement): void {\n node[internalInstanceKey] = hostInst\n}\n\nexport function markContainerAsRoot (hostRoot: Fiber, node: TaroElement): void {\n node[internalContainerInstanceKey] = hostRoot\n}\n\nexport function unmarkContainerAsRoot (node: TaroElement): void {\n node[internalContainerInstanceKey] = null\n}\n\nexport function isContainerMarkedAsRoot (node: TaroElement): boolean {\n return !!node[internalContainerInstanceKey]\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nexport function getInstanceFromNode (node: TaroElement): Fiber | null {\n const inst = node[internalInstanceKey] || node[internalContainerInstanceKey]\n\n if (inst) {\n if (\n inst.tag === HostComponent ||\n inst.tag === HostText ||\n inst.tag === SuspenseComponent ||\n inst.tag === HostRoot\n ) {\n return inst\n } else {\n return null\n }\n }\n return null\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nexport function getNodeFromInstance (inst: Fiber) {\n if (inst.tag === HostComponent || inst.tag === HostText) {\n // In Fiber this, is just the state node right now. We assume it will be\n // a host component or host text.\n return inst.stateNode\n }\n}\n\nexport function getFiberCurrentPropsFromNode (node: TaroElement): Props {\n return node[internalPropsKey] || null\n}\n\nexport function updateFiberProps (\n node: TaroElement,\n props: Props,\n): void {\n node[internalPropsKey] = props\n}\n","import { type FormElement, TaroElement } from '@tarojs/runtime'\n\nimport { supportedInputTypes } from './constant'\nimport { Props } from './props'\n\nimport type { RestoreType } from './event'\n\n// 从 props 中,更新 input 组件的 value 值\nfunction updateInputWrapper (element: TaroElement, oldValue: RestoreType, props: Props) {\n const node = element\n const checked = props.checked\n\n if (checked != null) {\n console.warn('updateCheck 未实现', node)\n return\n }\n\n updateWrapper(element, oldValue, props)\n updateNamedCousins(element, props)\n}\n\n// react 中原本处理 type=radio 的逻辑,这里留个空,暂时不处理\nfunction updateNamedCousins (rootNode, props) {\n const name = props.name\n\n if (props.type === 'radio' && name != null) {\n console.warn('radio updateNamedCousins 未实现', rootNode, props)\n }\n}\n\nexport function getToStringValue (value: any) {\n const isEmptyType = typeof value === 'function' || typeof value === 'symbol'\n\n return isEmptyType ? '' : value\n}\n\nexport function toString (value): string {\n return '' + value\n}\n\nexport function updateWrapper (element: TaroElement, oldValue: RestoreType, props: Props) {\n const node = element as FormElement\n const value = getToStringValue(props.value)\n const type = props.type as string\n\n setNodeValue(node, oldValue, value, type)\n}\n\n// oldValue 为 event.detail.value,value 为 fiber.props.value\n// 如果 oldValue 和 value 不相等,代表受控组件需要更新\n// 更新的原则为,fiber.props.value 永远为用户所需要的值,因此 node.value = toString(value)\nexport function setNodeValue (node: FormElement, oldValue: RestoreType, value, type = 'string') {\n if (value != null) {\n if (type === 'number') {\n if (\n (value === 0 && node.value === '') ||\n // We explicitly want to coerce to number here if possible.\n // eslint-disable-next-line\n oldValue != value\n ) {\n node.value = toString(value)\n }\n } else if (oldValue !== toString(value)) {\n node.value = toString(value)\n }\n } else if (type === 'submit' || type === 'reset') {\n // Submit/reset inputs need the attribute removed completely to avoid\n // blank-text buttons.\n node.removeAttribute('value')\n }\n}\n\n// 判断当前 TaroElement 是否为 supportedInputTypes input 或 textarea\nexport function isTextInputElement (elem: TaroElement): boolean {\n const nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase()\n\n if (nodeName === 'input') {\n const type = (elem as FormElement).type\n\n return !type || !!supportedInputTypes[type]\n }\n\n if (nodeName === 'textarea') {\n return true\n }\n\n return false\n}\n\nexport const ReactDOMTextareaRestoreControlledState = updateWrapper\nexport const ReactDOMInputRestoreControlledState = updateInputWrapper\n","import type { FormElement } from '@tarojs/runtime'\n\nfunction isCheckable (elem: FormElement) {\n const type = elem.type\n const nodeName = elem.nodeName\n\n return (\n nodeName &&\n nodeName.toLowerCase() === 'input' &&\n (type === 'checkbox' || type === 'radio')\n )\n}\n\nfunction getTracker (node) {\n return node._valueTracker\n}\n\nfunction detachTracker (node) {\n node._valueTracker = null\n}\n\n// 之所以单独创建一个 tacker,是为了统一监听不同 type 的 input 值\n// 比如 type=checkbox 或者 type=radio,就需要监听 checked,而不是 value\n// 虽然目前还未实现 checkbox 和 radio 的 finishEventHandle,但后续不好说,所以先统一和 react 一样的写法\n// 需要特别注意的是,tracker 初始化时的值为 node 的初始值,但后续会变更为事件的 detail.value 值\nfunction trackValueOnNode (node: any) {\n const valueField = isCheckable(node) ? 'checked' : 'value'\n const descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField,\n )\n\n let currentValue = '' + node[valueField]\n\n if (\n node.hasOwnProperty(valueField) ||\n typeof descriptor === 'undefined' ||\n typeof descriptor.get !== 'function' ||\n typeof descriptor.set !== 'function'\n ) {\n return\n }\n\n const { get, set } = descriptor\n\n Object.defineProperty(node, valueField, {\n configurable: true,\n enumerable: descriptor.enumerable,\n get: function () {\n return get.call(this)\n },\n set: function (value) {\n currentValue = '' + value\n set.call(this, value)\n },\n })\n\n const tracker = {\n getValue () {\n return currentValue\n },\n setValue (value) {\n currentValue = '' + value\n },\n stopTracking () {\n detachTracker(node)\n delete node[valueField]\n },\n }\n return tracker\n}\n\nexport function track (node) {\n if (getTracker(node)) {\n return\n }\n\n node._valueTracker = trackValueOnNode(node)\n}\n\nexport function updateValueIfChanged (node, nextValue: string) {\n if (!node) {\n return false\n }\n\n const tracker = getTracker(node)\n\n if (!tracker) {\n return true\n }\n\n const lastValue = tracker.getValue()\n\n if (nextValue !== lastValue) {\n tracker.setValue(nextValue)\n return true\n }\n return false\n}\n\nexport function stopTracking (node) {\n const tracker = getTracker(node)\n if (tracker) {\n tracker.stopTracking()\n }\n}\n","import { type Style, type TaroElement, convertNumber2PX, FormElement } from '@tarojs/runtime'\nimport { capitalize, internalComponents, isFunction, isNumber, isObject, isString, toCamelCase } from '@tarojs/shared'\n\nexport type Props = Record<string, unknown>\n\nconst isHarmony = process.env.TARO_PLATFORM === 'harmony'\nconst IS_NON_DIMENSIONAL = /max|aspect|acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i\n\nfunction isEventName (s: string) {\n return s[0] === 'o' && s[1] === 'n'\n}\n\nfunction isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nfunction updateDOMInstance (dom: TaroElement, name?: string) {\n if (!isHarmony) return\n\n const isFormElement = dom instanceof FormElement\n const isNotNeedUpdateDOM = isFormElement && name && !['value', 'name', 'checked'].includes(name)\n if (isNotNeedUpdateDOM) return\n \n // @ts-ignore\n dom.updateComponent && dom.updateComponent()\n}\n\n\nexport function updateProps (dom: TaroElement, oldProps: Props, newProps: Props) {\n const updatePayload = getUpdatePayload(dom, oldProps, newProps)\n if (updatePayload){\n updatePropsByPayload(dom, oldProps, updatePayload)\n }\n}\n\nexport function updatePropsByPayload (dom: TaroElement, oldProps: Props, updatePayload: any[]){\n for (let i = 0; i < updatePayload.length; i += 2){ // key, value 成对出现\n const key = updatePayload[i]; const newProp = updatePayload[i+1]; const oldProp = oldProps[key]\n setProperty(dom, key, newProp, oldProp)\n }\n}\n\nexport function getUpdatePayload (dom: TaroElement, oldProps: Props, newProps: Props){\n let i: string\n let updatePayload: any[] | null = null\n\n for (i in oldProps) {\n if (!(i in newProps)) {\n (updatePayload = updatePayload || []).push(i, null)\n }\n }\n const isFormElement = dom instanceof FormElement\n for (i in newProps) {\n if (oldProps[i] !== newProps[i] || (isFormElement && i === 'value')) {\n (updatePayload = updatePayload || []).push(i, newProps[i])\n }\n }\n\n return updatePayload\n}\n\n// function eventProxy (e: CommonEvent) {\n// const el = document.getElementById(e.currentTarget.id)\n// const handlers = el!.__handlers[e.type]\n// handlers[0](e)\n// }\n\nfunction setEvent (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n const isCapture = name.endsWith('Capture')\n let eventName = name.toLowerCase().slice(2)\n if (isCapture) {\n eventName = eventName.slice(0, -7)\n }\n\n const compName = capitalize(toCamelCase(dom.tagName.toLowerCase()))\n\n if (eventName === 'click' && !isHarmony && compName in internalComponents) {\n eventName = 'tap'\n }\n\n if (isFunction(value)) {\n if (oldValue) {\n dom.removeEventListener(eventName, oldValue as any, !isHarmony ? false : undefined)\n dom.addEventListener(eventName, value, !isHarmony ? { isCapture, sideEffect: false } : undefined)\n } else {\n dom.addEventListener(eventName, value, !isHarmony ? isCapture : undefined)\n }\n } else {\n dom.removeEventListener(eventName, oldValue as any)\n }\n}\n\nfunction setStyle (style: Style, key: string, value: unknown) {\n if (key[0] === '-') {\n // 适配鸿蒙\n if (isHarmony) {\n style.setProperty(key, value as string)\n } else {\n style.setProperty(key, (value as string).toString())\n }\n // css variables need not further judgment\n return\n }\n\n if (isHarmony && key.startsWith('_')) {\n // harmony样式已处理\n style[key] = value == null ? '' : value\n } else {\n style[key] =\n isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false\n ? convertNumber2PX(value)\n : value == null\n ? ''\n : value\n }\n}\n\ntype StyleValue = Record<string, string | number>\ninterface DangerouslySetInnerHTML {\n __html?: string\n}\n\nfunction setProperty (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n name = name === 'className' ? 'class' : name\n\n if (\n name === 'key' ||\n name === 'children' ||\n name === 'ref'\n ) {\n // skip\n } else if (name === 'style') {\n const style = dom.style\n if (isString(value)) {\n style.cssText = value\n } else {\n if (isString(oldValue)) {\n style.cssText = ''\n oldValue = null\n }\n\n let needUpdateAfterMoved = false\n if (isObject<StyleValue>(oldValue)) {\n for (const i in oldValue) {\n if (!(value && i in (value as StyleValue))) {\n setStyle(style, i, '')\n\n if (isObject<StyleValue>(value) && !value[i]) {\n needUpdateAfterMoved = true\n }\n }\n }\n\n if (needUpdateAfterMoved) {\n updateDOMInstance(dom)\n }\n }\n\n if (isObject<StyleValue>(value)) {\n for (const i in value) {\n if (!oldValue || !isEqual(value[i], (oldValue as StyleValue)[i])) {\n setStyle(style, i, value[i])\n updateDOMInstance(dom)\n }\n }\n }\n }\n } else if (isEventName(name)) {\n setEvent(dom, name, value, oldValue)\n } else if (name === 'dangerouslySetInnerHTML') {\n const newHtml = (value as DangerouslySetInnerHTML)?.__html ?? ''\n const oldHtml = (oldValue as DangerouslySetInnerHTML)?.__html ?? ''\n if (newHtml || oldHtml) {\n if (oldHtml !== newHtml) {\n dom.innerHTML = newHtml\n }\n }\n } else if (!isFunction(value)) {\n if (value == null) {\n dom.removeAttribute(name)\n updateDOMInstance(dom, name)\n } else {\n dom.setAttribute(name, value as string)\n updateDOMInstance(dom, name)\n }\n }\n}\n","/* eslint-disable @typescript-eslint/indent */\nimport { document } from '@tarojs/runtime'\nimport { isBoolean, isUndefined, noop } from '@tarojs/shared'\nimport Reconciler from 'react-reconciler'\nimport { DefaultEventPriority } from 'react-reconciler/constants'\n\nimport { precacheFiberNode, updateFiberProps } from './componentTree'\nimport { track } from './inputValueTracking'\nimport { getUpdatePayload, Props, updateProps, updatePropsByPayload } from './props'\n\nimport type { TaroElement, TaroText } from '@tarojs/runtime'\nimport type { Fiber, HostConfig } from 'react-reconciler'\n\nconst hostConfig: HostConfig<\n string, // Type\n Props, // Props\n TaroElement, // Container\n TaroElement, // Instance\n TaroText, // TextInstance\n TaroElement, // SuspenseInstance\n TaroElement, // HydratableInstance\n TaroElement, // PublicInstance\n Record<string, any>, // HostContext\n string[], // UpdatePayload\n unknown, // ChildSet\n unknown, // TimeoutHandle\n unknown // NoTimeout\n> & {\n supportsMicrotasks: boolean // 待官方类型文件修复后删除\n} = {\n // below keys order by {React ReactFiberHostConfig.custom.js}, convenient for comparing each other.\n\n // -------------------\n // required by @types/react-reconciler\n // -------------------\n getPublicInstance (inst: TaroElement) {\n return inst\n },\n getRootHostContext () {\n return {}\n },\n getChildHostContext (parentHostContext) {\n return parentHostContext\n },\n prepareForCommit (..._: any[]) {\n return null\n },\n resetAfterCommit: noop,\n createInstance (type, props: Props, _rootContainerInstance: any, _hostContext: any, internalInstanceHandle: Fiber) {\n const element = document.createElement(type)\n\n precacheFiberNode(internalInstanceHandle, element)\n updateFiberProps(element, props)\n\n return element\n },\n appendInitialChild (parent, child) {\n parent.appendChild(child)\n },\n finalizeInitialChildren (dom, type: string, props: any) {\n updateProps(dom, {}, props) // 提前执行更新属性操作,Taro 在 Page 初始化后会立即从 dom 读取必要信息\n\n if (type === 'input' || type === 'textarea') {\n track(dom)\n }\n\n return false\n },\n prepareUpdate (instance, _, oldProps, newProps) {\n return getUpdatePayload(instance, oldProps, newProps)\n },\n shouldSetTextContent () {\n return false\n },\n createTextInstance (text: string, _rootContainerInstance: any, _hostContext: any, internalInstanceHandle: Fiber) {\n const textNode = document.createTextNode(text)\n\n precacheFiberNode(internalInstanceHandle, textNode)\n\n return textNode\n },\n scheduleTimeout: setTimeout,\n cancelTimeout: clearTimeout,\n noTimeout: -1,\n isPrimaryRenderer: true,\n warnsIfNotActing: true,\n supportsMutation: true,\n supportsPersistence: false,\n supportsHydration: false,\n getInstanceFromNode: () => null,\n beforeActiveInstanceBlur: noop,\n afterActiveInstanceBlur: noop,\n preparePortalMount: noop,\n prepareScopeUpdate: noop,\n getInstanceFromScope: () => null,\n getCurrentEventPriority () {\n return DefaultEventPriority\n },\n detachDeletedInstance: noop,\n\n // -------------------\n // Microtasks\n // (optional)\n // -------------------\n // 鸿蒙平台不支持微任务\n supportsMicrotasks: process.env.TARO_PLATFORM !== 'harmony',\n scheduleMicrotask: isUndefined(Promise)\n ? setTimeout\n : (callback) =>\n Promise.resolve(null)\n .then(callback)\n .catch(function (error) {\n setTimeout(() => {\n throw error\n })\n }),\n\n // -------------------\n // Mutation\n // (required if supportsMutation is true)\n // -------------------\n appendChild (parent, child) {\n parent.appendChild(child)\n },\n appendChildToContainer (parent, child) {\n parent.appendChild(child)\n },\n commitTextUpdate (textInst, _, newText) {\n textInst.nodeValue = newText\n },\n commitMount: noop,\n commitUpdate (dom, updatePayload, _, oldProps, newProps) {\n updatePropsByPayload(dom, oldProps, updatePayload)\n updateFiberProps(dom, newProps)\n },\n insertBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n insertInContainerBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n removeChild (parent, child) {\n parent.removeChild(child)\n },\n removeChildFromContainer (parent, child) {\n parent.removeChild(child)\n },\n resetTextContent: noop,\n hideInstance (instance) {\n const style = instance.style\n style.setProperty('display', 'none')\n },\n hideTextInstance (textInstance) {\n textInstance.nodeValue = ''\n },\n unhideInstance (instance, props) {\n const styleProp = props.style as { display?: any }\n let display = styleProp?.hasOwnProperty('display') ? styleProp.display : null\n display = display == null || isBoolean(display) || display === '' ? '' : ('' + display).trim()\n // eslint-disable-next-line dot-notation\n instance.style['display'] = display\n },\n unhideTextInstance (textInstance, text) {\n textInstance.nodeValue = text\n },\n clearContainer (element) {\n if (element.childNodes.length > 0) {\n element.textContent = ''\n }\n }\n}\n\nconst TaroReconciler = Reconciler(hostConfig)\n\nif (process.env.NODE_ENV !== 'production') {\n const foundDevTools = TaroReconciler.injectIntoDevTools({\n bundleType: 1,\n version: '18.0.0',\n rendererPackageName: 'taro-react'\n })\n if (!foundDevTools) {\n // eslint-disable-next-line no-console\n console.info(\n '%cDownload the React DevTools ' +\n 'for a better development experience: ' +\n 'https://reactjs.org/link/react-devtools',\n 'font-weight:bold'\n )\n }\n}\n\nexport { TaroReconciler }\n","import { TaroElement, TaroEvent } from '@tarojs/runtime'\n\nimport { getFiberCurrentPropsFromNode, getInstanceFromNode, getNodeFromInstance } from './componentTree'\nimport { isTextInputElement, ReactDOMInputRestoreControlledState, ReactDOMTextareaRestoreControlledState, toString } from './domInput'\nimport { updateValueIfChanged } from './inputValueTracking'\nimport { TaroReconciler } from './reconciler'\n\nimport type { Fiber } from 'react-reconciler'\nimport type { Props } from './props'\n\n\nexport type RestoreType = string | number | boolean | any[]\n\ninterface RestoreItem {\n target: TaroElement\n value: RestoreType\n}\n\nlet restoreQueue: RestoreItem[] | null = null\n\n// 对比 TaroElement tracker 下的 value 和事件下的 value,判断 element 的值是否存在更改\nexport function getTargetInstForInputOrChangeEvent (e: TaroEvent, node: TaroElement) {\n const targetInst = getInstanceFromNode(node)\n const domEventName = e.type\n\n if (!targetInst || !isTextInputElement(node)) return\n\n if (domEventName === 'input' || domEventName === 'change') {\n const nextValue = toString(e.mpEvent?.detail?.value)\n\n return getInstIfValueChanged(targetInst, nextValue)\n }\n}\n\n\nfunction getInstIfValueChanged (targetInst: Fiber, nextValue: string) {\n const targetNode = getNodeFromInstance(targetInst)\n\n if (!targetNode) return false\n\n if (updateValueIfChanged(targetNode, nextValue)) {\n return targetInst\n }\n}\n\n// 把 target 塞入更新队列中\nexport function enqueueStateRestore (target: RestoreItem): void {\n if (restoreQueue) {\n restoreQueue.push(target)\n } else {\n restoreQueue = [target]\n }\n}\n\n// 判断是否需要恢复 target(input、textarea) 的状态\nexport function needsStateRestore (): boolean {\n return restoreQueue !== null\n}\n\nexport function finishEventHandler () {\n const controlledComponentsHavePendingUpdates = needsStateRestore()\n\n if (controlledComponentsHavePendingUpdates) {\n TaroReconciler.flushSync()\n restoreStateIfNeeded()\n }\n}\n\n// 遍历 restoreQueue、restoreTarget,恢复其状态\nexport function restoreStateIfNeeded () {\n if (!restoreQueue) {\n return\n }\n\n const queuedTargets = restoreQueue\n restoreQueue = null\n\n for (let i = 0; i < queuedTargets.length; i++) {\n restoreStateOfTarget(queuedTargets[i])\n }\n}\n\nfunction restoreImpl (\n domElement: TaroElement,\n tag: string,\n oldValue: string | number | boolean | any[],\n props: Props,\n): void {\n switch (tag) {\n case 'input':\n ReactDOMInputRestoreControlledState(domElement, oldValue, props)\n break\n case 'textarea':\n ReactDOMTextareaRestoreControlledState(domElement, oldValue, props)\n break\n }\n}\n\n\nfunction restoreStateOfTarget (item: RestoreItem) {\n const internalInstance = getInstanceFromNode(item.target)\n\n if (!internalInstance) return\n\n const { stateNode, type } = internalInstance\n\n if (stateNode) {\n const props = getFiberCurrentPropsFromNode(stateNode)\n\n restoreImpl(stateNode, type, item.value, props)\n }\n}\n","import { hooks } from '@tarojs/shared'\n\nimport { markContainerAsRoot } from './componentTree'\nimport { getEventPriority } from './constant'\nimport { enqueueStateRestore, getTargetInstForInputOrChangeEvent, RestoreType } from './event'\nimport { TaroReconciler } from './reconciler'\n\nimport type { TaroElement, TaroEvent } from '@tarojs/runtime'\nimport type { ReactNode } from 'react'\nimport type { OpaqueRoot } from 'react-reconciler'\n\nexport const ContainerMap: WeakMap<TaroElement, Root> = new WeakMap()\n\ntype Renderer = typeof TaroReconciler\n\ntype CreateRootOptions = {\n unstable_strictMode?: boolean\n unstable_concurrentUpdatesByDefault?: boolean\n unstable_transitionCallbacks?: any\n identifierPrefix?: string\n onRecoverableError?: (error: any) => void\n}\n\nexport type Callback = () => void | null | undefined\n\nclass Root {\n private renderer: Renderer\n public internalRoot: OpaqueRoot\n\n public constructor (renderer: Renderer, domContainer: TaroElement, options?: CreateRootOptions) {\n this.renderer = renderer\n this.initInternalRoot(renderer, domContainer, options)\n }\n\n private initInternalRoot (renderer: Renderer, domContainer: TaroElement, options?: CreateRootOptions) {\n // Since react-reconciler v0.27, createContainer need more parameters\n // @see:https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react-reconciler/src/ReactFiberReconciler.js#L248\n const containerInfo = domContainer\n if (options) {\n const tag = 1 // ConcurrentRoot\n const concurrentUpdatesByDefaultOverride = false\n let isStrictMode = false\n let identifierPrefix = ''\n let onRecoverableError = (error: any) => console.error(error)\n let transitionCallbacks = null\n if (options.unstable_strictMode === true) {\n isStrictMode = true\n }\n if (options.identifierPrefix !== undefined) {\n identifierPrefix = options.identifierPrefix\n }\n if (options.onRecoverableError !== undefined) {\n onRecoverableError = options.onRecoverableError\n }\n if (options.unstable_transitionCallbacks !== undefined) {\n transitionCallbacks = options.unstable_transitionCallbacks\n }\n\n this.internalRoot = renderer.createContainer(\n containerInfo,\n tag,\n null, // hydrationCallbacks\n isStrictMode,\n concurrentUpdatesByDefaultOverride,\n identifierPrefix,\n onRecoverableError,\n transitionCallbacks\n )\n } else {\n const tag = 0 // LegacyRoot\n this.internalRoot = renderer.createContainer(\n containerInfo,\n tag,\n null, // hydrationCallbacks\n false, // isStrictMode\n false, // concurrentUpdatesByDefaultOverride,\n '', // identifierPrefix\n () => {}, // onRecoverableError, this isn't reachable because onRecoverableError isn't called in the legacy API.\n null // transitionCallbacks\n )\n }\n }\n\n public render (children: ReactNode, cb: Callback) {\n const { renderer, internalRoot } = this\n renderer.updateContainer(children, internalRoot, null, cb)\n return renderer.getPublicRootInstance(internalRoot)\n }\n\n public unmount (cb: Callback) {\n this.renderer.updateContainer(null, this.internalRoot, null, cb)\n }\n}\n\nexport function render (element: ReactNode, domContainer: TaroElement, cb: Callback) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot.render(element, cb)\n }\n\n const root = new Root(TaroReconciler, domContainer)\n ContainerMap.set(domContainer, root)\n return root.render(element, cb)\n}\n\nexport function createRoot (domContainer: TaroElement, options: CreateRootOptions = {}) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot\n }\n // options should be an object\n const root = new Root(TaroReconciler, domContainer, options)\n ContainerMap.set(domContainer, root)\n\n markContainerAsRoot(root?.internalRoot?.current, domContainer)\n\n hooks.tap('dispatchTaroEvent', (e: TaroEvent, node: TaroElement) => {\n const eventPriority = getEventPriority(e.type)\n\n TaroReconciler.runWithPriority(eventPriority, () => {\n node.dispatchEvent(e)\n })\n })\n\n // 对比 event.detail.value 和 node.tracker.value,判断 value 值是否有变动,存在变动则塞入队列中\n hooks.tap('modifyTaroEvent', (e: TaroEvent, node: TaroElement) => {\n const inst = getTargetInstForInputOrChangeEvent(e, node)\n\n if (!inst) return\n\n // 这里塞入的是 event.detail.value,也就是事件的值,在受控组件中,你可以理解为需要被变更的值\n // 后续会在 finishEventHandler 中,使用最新的 fiber.props.value 来与其比较\n // 如果不一致,则表示需要更新,会执行 node.value = fiber.props.value 的更新操作\n const nextValue = e.mpEvent?.detail?.value as unknown as RestoreType\n enqueueStateRestore({ target: node, value: nextValue })\n })\n\n return root\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { ensure, isFunction } from '@tarojs/shared'\n\nimport { finishEventHandler } from './event'\nimport { TaroReconciler } from './reconciler'\nimport { ContainerMap, createRoot, render } from './render'\n\nimport type { TaroElement } from '@tarojs/runtime'\nimport type { ReactNode } from 'react'\n\nlet isInsideEventHandler = false\n\n// 重新包裹 batchedUpdates,使其可以在触发事件后执行 finishEventHandler\nconst unstable_batchedUpdates = (fn, a) => {\n if (isInsideEventHandler) {\n return fn(a)\n }\n\n isInsideEventHandler = true\n\n try {\n return TaroReconciler.batchedUpdates(fn, a)\n } finally {\n isInsideEventHandler = false\n finishEventHandler()\n }\n}\n\nfunction unmountComponentAtNode (dom: TaroElement) {\n ensure(dom && [1, 8, 9, 11].includes(dom.nodeType), 'unmountComponentAtNode(...): Target container is not a DOM element.')\n\n const root = ContainerMap.get(dom)\n\n if (!root) return false\n\n unstable_batchedUpdates(() => {\n root.unmount(() => {\n ContainerMap.delete(dom)\n })\n }, null)\n\n return true\n}\n\nfunction findDOMNode (comp?: TaroElement | ReactNode) {\n if (comp == null) {\n return null\n }\n\n const nodeType = (comp as TaroElement).nodeType\n if (nodeType === 1 || nodeType === 3) {\n return comp\n }\n\n return TaroReconciler.findHostInstance(comp as Record<string, any>)\n}\n\nconst portalType = isFunction(Symbol) && Symbol.for\n ? Symbol.for('react.portal')\n : 0xeaca\n\nfunction createPortal (\n children: ReactNode,\n containerInfo: TaroElement,\n key?: string\n) {\n return {\n $$typeof: portalType,\n key: key == null ? null : String(key),\n children,\n containerInfo,\n implementation: null\n }\n}\n\nexport {\n createPortal,\n createRoot,\n findDOMNode,\n render,\n unmountComponentAtNode,\n unstable_batchedUpdates\n}\n\nexport default {\n render,\n createRoot,\n unstable_batchedUpdates,\n unmountComponentAtNode,\n findDOMNode,\n createPortal\n}\n"],"names":["const","let","FormElement","capitalize","toCamelCase","internalComponents","isFunction","isNumber","convertNumber2PX","isString","isObject","i","noop","document","DefaultEventPriority","isUndefined","isBoolean","Reconciler","tag","hooks","ensure"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/constant.ts","../src/workTags.ts","../src/componentTree.ts","../src/domInput.ts","../src/inputValueTracking.ts","../src/props.ts","../src/reconciler.ts","../src/event.ts","../src/render.ts","../src/index.ts"],"sourcesContent":["export const supportedInputTypes: { [key: string]: boolean } = {\n color: true,\n date: true,\n datetime: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n password: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n}\n\nconst SyncLane = 1\nconst InputContinuousLane = 4\nconst DefaultLane = 16\nconst DiscreteEventPriority = SyncLane\nconst ContinuousEventPriority = InputContinuousLane\nconst DefaultEventPriority = DefaultLane\n\nexport function getEventPriority (domEventName) {\n switch (domEventName) {\n case 'cancel':\n case 'click':\n case 'close':\n case 'contextmenu':\n case 'copy':\n case 'cut':\n case 'dragend':\n case 'dragstart':\n case 'drop':\n case 'input':\n case 'paste':\n case 'pause':\n case 'play':\n case 'pointercancel':\n case 'pointerdown':\n case 'pointerup':\n case 'reset':\n case 'resize':\n case 'submit':\n case 'touchcancel':\n case 'touchend':\n case 'touchstart':\n case 'change':\n case 'blur':\n case 'focus':\n case 'select':\n case 'selectstart':\n return DiscreteEventPriority\n case 'drag':\n case 'dragenter':\n case 'dragexit':\n case 'dragleave':\n case 'dragover':\n case 'pointermove':\n case 'pointerout':\n case 'pointerover':\n case 'scroll':\n case 'toggle':\n case 'touchmove':\n case 'pointerenter':\n case 'pointerleave':\n return ContinuousEventPriority\n default:\n return DefaultEventPriority\n }\n}\n\nconst randomKey = Math.random()\n .toString(36)\n .slice(2)\n\nexport const internalPropsKey = '__reactProps$' + randomKey\nexport const internalInstanceKey = '__reactFiber$' + randomKey\nexport const internalContainerInstanceKey = '__reactContainer$' + randomKey\n// const internalEventHandlersKey = '__reactEvents$' + randomKey\n// const internalEventHandlerListenersKey = '__reactListeners$' + randomKey\n// const internalEventHandlesSetKey = '__reactHandles$' + randomKey\n","export type WorkTag =\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16\n | 17\n | 18\n | 19\n | 20\n | 21\n | 22\n | 23\n | 24\n | 25\n\nexport const FunctionComponent = 0\nexport const ClassComponent = 1\nexport const IndeterminateComponent = 2 // Before we know whether it is function or class\nexport const HostRoot = 3 // Root of a host tree. Could be nested inside another node.\nexport const HostPortal = 4 // A subtree. Could be an entry point to a different renderer.\nexport const HostComponent = 5\nexport const HostText = 6\nexport const Fragment = 7\nexport const Mode = 8\nexport const ContextConsumer = 9\nexport const ContextProvider = 10\nexport const ForwardRef = 11\nexport const Profiler = 12\nexport const SuspenseComponent = 13\nexport const MemoComponent = 14\nexport const SimpleMemoComponent = 15\nexport const LazyComponent = 16\nexport const IncompleteClassComponent = 17\nexport const DehydratedFragment = 18\nexport const SuspenseListComponent = 19\nexport const ScopeComponent = 21\nexport const OffscreenComponent = 22\nexport const LegacyHiddenComponent = 23\nexport const CacheComponent = 24\nexport const TracingMarkerComponent = 25\n","/**\n * 给 TaroElement 绑定 react fiber、react props 等属性\n * 提供 fiber -> element、element -> fiber、element -> props 的方法\n*/\nimport { internalContainerInstanceKey, internalInstanceKey, internalPropsKey } from './constant'\nimport { HostComponent, HostRoot, HostText, SuspenseComponent } from './workTags'\n\nimport type { TaroElement, TaroText } from '@tarojs/runtime'\nimport type { Fiber } from 'react-reconciler'\nimport type { Props } from './props'\n\nexport function precacheFiberNode (hostInst: Fiber, node: TaroElement | TaroText): void {\n node[internalInstanceKey] = hostInst\n}\n\nexport function markContainerAsRoot (hostRoot: Fiber, node: TaroElement | TaroText): void {\n node[internalContainerInstanceKey] = hostRoot\n}\n\nexport function unmarkContainerAsRoot (node: TaroElement | TaroText): void {\n node[internalContainerInstanceKey] = null\n}\n\nexport function isContainerMarkedAsRoot (node: TaroElement | TaroText): boolean {\n return !!node[internalContainerInstanceKey]\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nexport function getInstanceFromNode (node: TaroElement | TaroText): Fiber | null {\n const inst = node[internalInstanceKey] || node[internalContainerInstanceKey]\n\n if (inst) {\n if (\n inst.tag === HostComponent ||\n inst.tag === HostText ||\n inst.tag === SuspenseComponent ||\n inst.tag === HostRoot\n ) {\n return inst\n } else {\n return null\n }\n }\n return null\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nexport function getNodeFromInstance (inst: Fiber) {\n if (inst.tag === HostComponent || inst.tag === HostText) {\n // In Fiber this, is just the state node right now. We assume it will be\n // a host component or host text.\n return inst.stateNode\n }\n}\n\nexport function getFiberCurrentPropsFromNode (node: TaroElement | TaroText): Props {\n return node[internalPropsKey] || null\n}\n\nexport function updateFiberProps (\n node: TaroElement | TaroText,\n props: Props,\n): void {\n node[internalPropsKey] = props\n\n if (process.env.TARO_PLATFORM === 'harmony') {\n // @ts-ignore\n node.updateTextNode()\n }\n}\n","import { type FormElement, TaroElement } from '@tarojs/runtime'\n\nimport { supportedInputTypes } from './constant'\nimport { Props } from './props'\n\nimport type { RestoreType } from './event'\n\n// 从 props 中,更新 input 组件的 value 值\nfunction updateInputWrapper (element: TaroElement, oldValue: RestoreType, props: Props) {\n const node = element\n const checked = props.checked\n\n if (checked != null) {\n console.warn('updateCheck 未实现', node)\n return\n }\n\n updateWrapper(element, oldValue, props)\n updateNamedCousins(element, props)\n}\n\n// react 中原本处理 type=radio 的逻辑,这里留个空,暂时不处理\nfunction updateNamedCousins (rootNode, props) {\n const name = props.name\n\n if (props.type === 'radio' && name != null) {\n console.warn('radio updateNamedCousins 未实现', rootNode, props)\n }\n}\n\nexport function getToStringValue (value: any) {\n const isEmptyType = typeof value === 'function' || typeof value === 'symbol'\n\n return isEmptyType ? '' : value\n}\n\nexport function toString (value): string {\n return '' + value\n}\n\nexport function updateWrapper (element: TaroElement, oldValue: RestoreType, props: Props) {\n const node = element as FormElement\n const value = getToStringValue(props.value)\n const type = props.type as string\n\n setNodeValue(node, oldValue, value, type)\n}\n\n// oldValue 为 event.detail.value,value 为 fiber.props.value\n// 如果 oldValue 和 value 不相等,代表受控组件需要更新\n// 更新的原则为,fiber.props.value 永远为用户所需要的值,因此 node.value = toString(value)\nexport function setNodeValue (node: FormElement, oldValue: RestoreType, value, type = 'string') {\n if (value != null) {\n if (type === 'number') {\n if (\n (value === 0 && node.value === '') ||\n // We explicitly want to coerce to number here if possible.\n // eslint-disable-next-line\n oldValue != value\n ) {\n node.value = toString(value)\n }\n } else if (oldValue !== toString(value)) {\n node.value = toString(value)\n }\n } else if (type === 'submit' || type === 'reset') {\n // Submit/reset inputs need the attribute removed completely to avoid\n // blank-text buttons.\n node.removeAttribute('value')\n }\n}\n\n// 判断当前 TaroElement 是否为 supportedInputTypes input 或 textarea\nexport function isTextInputElement (elem: TaroElement): boolean {\n const nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase()\n\n if (nodeName === 'input') {\n const type = (elem as FormElement).type\n\n return !type || !!supportedInputTypes[type]\n }\n\n if (nodeName === 'textarea') {\n return true\n }\n\n return false\n}\n\nexport const ReactDOMTextareaRestoreControlledState = updateWrapper\nexport const ReactDOMInputRestoreControlledState = updateInputWrapper\n","import type { FormElement } from '@tarojs/runtime'\n\nfunction isCheckable (elem: FormElement) {\n const type = elem.type\n const nodeName = elem.nodeName\n\n return (\n nodeName &&\n nodeName.toLowerCase() === 'input' &&\n (type === 'checkbox' || type === 'radio')\n )\n}\n\nfunction getTracker (node) {\n return node._valueTracker\n}\n\nfunction detachTracker (node) {\n node._valueTracker = null\n}\n\n// 之所以单独创建一个 tacker,是为了统一监听不同 type 的 input 值\n// 比如 type=checkbox 或者 type=radio,就需要监听 checked,而不是 value\n// 虽然目前还未实现 checkbox 和 radio 的 finishEventHandle,但后续不好说,所以先统一和 react 一样的写法\n// 需要特别注意的是,tracker 初始化时的值为 node 的初始值,但后续会变更为事件的 detail.value 值\nfunction trackValueOnNode (node: any) {\n const valueField = isCheckable(node) ? 'checked' : 'value'\n const descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField,\n )\n\n let currentValue = '' + node[valueField]\n\n if (\n node.hasOwnProperty(valueField) ||\n typeof descriptor === 'undefined' ||\n typeof descriptor.get !== 'function' ||\n typeof descriptor.set !== 'function'\n ) {\n return\n }\n\n const { get, set } = descriptor\n\n Object.defineProperty(node, valueField, {\n configurable: true,\n enumerable: descriptor.enumerable,\n get: function () {\n return get.call(this)\n },\n set: function (value) {\n currentValue = '' + value\n set.call(this, value)\n },\n })\n\n const tracker = {\n getValue () {\n return currentValue\n },\n setValue (value) {\n currentValue = '' + value\n },\n stopTracking () {\n detachTracker(node)\n delete node[valueField]\n },\n }\n return tracker\n}\n\nexport function track (node) {\n if (getTracker(node)) {\n return\n }\n\n node._valueTracker = trackValueOnNode(node)\n}\n\nexport function updateValueIfChanged (node, nextValue: string) {\n if (!node) {\n return false\n }\n\n const tracker = getTracker(node)\n\n if (!tracker) {\n return true\n }\n\n const lastValue = tracker.getValue()\n\n if (nextValue !== lastValue) {\n tracker.setValue(nextValue)\n return true\n }\n return false\n}\n\nexport function stopTracking (node) {\n const tracker = getTracker(node)\n if (tracker) {\n tracker.stopTracking()\n }\n}\n","import { type Style, type TaroElement, convertNumber2PX, FormElement } from '@tarojs/runtime'\nimport { capitalize, internalComponents, isFunction, isNumber, isObject, isString, toCamelCase } from '@tarojs/shared'\n\n// 拓展TaroElement的属性\n\nexport type Props = Record<string, unknown>\n\nconst isHarmony = process.env.TARO_PLATFORM === 'harmony'\nconst IS_NON_DIMENSIONAL = /max|aspect|acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i\n\nfunction isEventName (s: string) {\n return s[0] === 'o' && s[1] === 'n'\n}\n\nfunction isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nexport function updateProps (dom: TaroElement, oldProps: Props, newProps: Props) {\n const updatePayload = getUpdatePayload(dom, oldProps, newProps)\n if (updatePayload){\n updatePropsByPayload(dom, oldProps, updatePayload)\n }\n}\n\nexport function updatePropsByPayload (dom: TaroElement, oldProps: Props, updatePayload: any[]){\n const handlers: (() => void)[] = []\n for (let i = 0; i < updatePayload.length; i += 2){ \n // key, value 成对出现\n const key = updatePayload[i]\n const newProp = updatePayload[i+1]\n const oldProp = oldProps[key]\n if (isHarmony) {\n // 鸿蒙样式前置插入,防止覆盖style\n if (key === '__hmStyle') {\n handlers.unshift(() => setHarmonyStyle(dom, newProp, oldProp))\n } else {\n handlers.push(() => setProperty(dom, key, newProp, oldProp))\n }\n } else {\n setProperty(dom, key, newProp, oldProp)\n }\n }\n if (isHarmony) {\n for (let i = 0; i < handlers.length; i++){\n handlers[i]()\n }\n }\n}\n\nexport function getUpdatePayload (dom: TaroElement, oldProps: Props, newProps: Props){\n let i: string\n let updatePayload: any[] | null = null\n\n for (i in oldProps) {\n if (!(i in newProps)) {\n (updatePayload = updatePayload || []).push(i, null)\n }\n }\n const isFormElement = dom instanceof FormElement\n for (i in newProps) {\n if (oldProps[i] !== newProps[i] || (isFormElement && i === 'value')) {\n (updatePayload = updatePayload || []).push(i, newProps[i])\n }\n }\n\n return updatePayload\n}\n\n// function eventProxy (e: CommonEvent) {\n// const el = document.getElementById(e.currentTarget.id)\n// const handlers = el!.__handlers[e.type]\n// handlers[0](e)\n// }\n\nfunction setEvent (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n const isCapture = name.endsWith('Capture')\n let eventName = name.toLowerCase().slice(2)\n if (isCapture) {\n eventName = eventName.slice(0, -7)\n }\n\n const compName = capitalize(toCamelCase(dom.tagName.toLowerCase()))\n\n if (eventName === 'click' && !isHarmony && compName in internalComponents) {\n eventName = 'tap'\n }\n\n if (isFunction(value)) {\n if (oldValue) {\n dom.removeEventListener(eventName, oldValue as any, !isHarmony ? false : undefined)\n dom.addEventListener(eventName, value, !isHarmony ? { isCapture, sideEffect: false } : undefined)\n } else {\n dom.addEventListener(eventName, value, !isHarmony ? isCapture : undefined)\n }\n } else {\n dom.removeEventListener(eventName, oldValue as any)\n }\n}\n\nfunction setStyle (style: Style, key: string, value: unknown) {\n if (key[0] === '-' && !isHarmony) {\n // css variables need not further judgment\n style.setProperty(key, (value as string).toString())\n return\n }\n\n style[key] =\n isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false\n ? (isHarmony ? value + 'px' : convertNumber2PX(value))\n : value == null\n ? ''\n : value\n}\n\ntype StyleValue = Record<string, string | number>\ninterface DangerouslySetInnerHTML {\n __html?: string\n}\n\n// 鸿蒙样式特殊处理,需要在插入顺序中前置插入,防止覆盖了style\nfunction setHarmonyStyle(dom: TaroElement, value: unknown, oldValue?: unknown) {\n // @ts-ignore\n const style = dom._st.hmStyle // __hmStyle是已经被处理过的鸿蒙样式,可以直接塞进hmStyle对象内\n if (isObject<StyleValue>(oldValue)) {\n for (const i in oldValue) {\n if (!(value && i in (value as StyleValue))) {\n // 鸿蒙伪类特殊处理\n if (isHarmony) {\n if (i === '::after' || i === '::before') {\n setPseudo(dom, i, null)\n } else if (['::first-child', '::last-child'].includes(i) || i.startsWith('::nth-child')) {\n // @ts-ignore\n dom.set_pseudo_class(i, null)\n } else {\n if (i === 'position' && oldValue[i] === 'fixed') {\n // @ts-ignore\n dom.setLayer(0)\n }\n style[i] = ''\n }\n } else {\n style[i] = ''\n }\n }\n }\n }\n if (isObject<StyleValue>(value)) {\n for (const i in value) {\n if (!oldValue || !isEqual(value[i], (oldValue as StyleValue)[i])) {\n // 鸿蒙伪类特殊处理\n if (isHarmony) {\n if (i === '::after' || i === '::before') {\n setPseudo(dom, i, value[i] as unknown as StyleValue)\n } else if (['::first-child', '::last-child'].includes(i) || i.startsWith('::nth-child')) {\n // @ts-ignore\n dom.set_pseudo_class(i, value[i])\n } else {\n if (i === 'position') {\n if (value[i] === 'fixed' || (value[i] !== 'fixed' && oldValue?.[i])) {\n // @ts-ignore\n dom.setLayer(value[i] === 'fixed' ? 1 : 0)\n }\n }\n style[i] = value[i]\n }\n } else {\n style[i] = value[i]\n }\n }\n }\n }\n}\nfunction setProperty (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n name = name === 'className' ? 'class' : name\n\n if (\n name === 'key' ||\n name === 'children' ||\n name === 'ref'\n ) {\n // skip\n } else if (name === 'style') {\n const style = dom.style\n if (isString(value)) {\n style.cssText = value\n } else {\n if (isString(oldValue)) {\n style.cssText = ''\n oldValue = null\n }\n\n if (isObject<StyleValue>(oldValue)) {\n for (const i in oldValue) {\n if (!(value && i in (value as StyleValue))) {\n // harmony设置style,路径设置路径如下:dom.style => cssStyleDeclaration.setProperty => convertWebStyle2HmStyle => dom._st.hmStyle\n setStyle(style, i, '')\n }\n }\n }\n\n if (isObject<StyleValue>(value)) {\n for (const i in value) {\n if (!oldValue || !isEqual(value[i], (oldValue as StyleValue)[i])) {\n setStyle(style, i, value[i])\n }\n }\n }\n }\n } else if (isEventName(name)) {\n setEvent(dom, name, value, oldValue)\n } else if (name === 'dangerouslySetInnerHTML') {\n const newHtml = (value as DangerouslySetInnerHTML)?.__html ?? ''\n const oldHtml = (oldValue as DangerouslySetInnerHTML)?.__html ?? ''\n if (newHtml || oldHtml) {\n if (oldHtml !== newHtml) {\n dom.innerHTML = newHtml\n }\n }\n } else if (!isFunction(value)) {\n if (value == null) {\n dom.removeAttribute(name)\n } else {\n dom.setAttribute(name, value as string)\n }\n }\n}\n\n// 设置鸿蒙伪类属性(特殊设置)\nfunction setPseudo(dom: TaroElement, name: '::after' | '::before', value: StyleValue | null){\n if (name === '::after') {\n // @ts-ignore\n dom.set_pseudo_after(value)\n } else if (name === '::before') {\n // @ts-ignore\n dom.set_pseudo_before(value)\n }\n}\n","/* eslint-disable @typescript-eslint/indent */\nimport { document, FormElement } from '@tarojs/runtime'\nimport { isBoolean, isUndefined, noop } from '@tarojs/shared'\nimport Reconciler from 'react-reconciler'\nimport { DefaultEventPriority } from 'react-reconciler/constants'\n\nimport { precacheFiberNode, updateFiberProps } from './componentTree'\nimport { track } from './inputValueTracking'\nimport { getUpdatePayload, Props, updateProps, updatePropsByPayload } from './props'\n\nimport type { TaroElement, TaroText } from '@tarojs/runtime'\nimport type { Fiber, HostConfig } from 'react-reconciler'\n\nconst hostConfig: HostConfig<\n string, // Type\n Props, // Props\n TaroElement, // Container\n TaroElement, // Instance\n TaroText, // TextInstance\n TaroElement, // SuspenseInstance\n TaroElement, // HydratableInstance\n TaroElement, // PublicInstance\n Record<string, any>, // HostContext\n string[], // UpdatePayload\n unknown, // ChildSet\n unknown, // TimeoutHandle\n unknown // NoTimeout\n> & {\n supportsMicrotasks: boolean // 待官方类型文件修复后删除\n} = {\n // below keys order by {React ReactFiberHostConfig.custom.js}, convenient for comparing each other.\n\n // -------------------\n // required by @types/react-reconciler\n // -------------------\n getPublicInstance (inst: TaroElement) {\n return inst\n },\n getRootHostContext () {\n return {}\n },\n getChildHostContext (parentHostContext) {\n return parentHostContext\n },\n prepareForCommit (..._: any[]) {\n return null\n },\n resetAfterCommit: noop,\n createInstance (type, props: Props, _rootContainerInstance: any, _hostContext: any, internalInstanceHandle: Fiber) {\n const element = document.createElement(type)\n\n precacheFiberNode(internalInstanceHandle, element)\n updateFiberProps(element, props)\n\n return element\n },\n appendInitialChild (parent, child) {\n parent.appendChild(child)\n },\n finalizeInitialChildren (dom, type: string, props: any) {\n let newProps = props\n if (dom instanceof FormElement) {\n const [defaultName, defaultKey] = ['switch', 'checkbox', 'radio'].includes(type) ? ['checked', 'defaultChecked'] : ['value', 'defaultValue']\n if (props.hasOwnProperty(defaultKey)) {\n newProps = { ...newProps, [defaultName]: props[defaultKey] }\n delete newProps[defaultKey]\n }\n }\n\n updateProps(dom, {}, newProps) // 提前执行更新属性操作,Taro 在 Page 初始化后会立即从 dom 读取必要信息\n\n if (type === 'input' || type === 'textarea') {\n track(dom)\n }\n\n return false\n },\n prepareUpdate (instance, _, oldProps, newProps) {\n return getUpdatePayload(instance, oldProps, newProps)\n },\n shouldSetTextContent () {\n return false\n },\n createTextInstance (text: string, _rootContainerInstance: any, _hostContext: any, internalInstanceHandle: Fiber) {\n const textNode = document.createTextNode(text)\n\n precacheFiberNode(internalInstanceHandle, textNode)\n\n return textNode\n },\n scheduleTimeout: setTimeout,\n cancelTimeout: clearTimeout,\n noTimeout: -1,\n isPrimaryRenderer: true,\n warnsIfNotActing: true,\n supportsMutation: true,\n supportsPersistence: false,\n supportsHydration: false,\n getInstanceFromNode: () => null,\n beforeActiveInstanceBlur: noop,\n afterActiveInstanceBlur: noop,\n preparePortalMount: noop,\n prepareScopeUpdate: noop,\n getInstanceFromScope: () => null,\n getCurrentEventPriority () {\n return DefaultEventPriority\n },\n detachDeletedInstance: noop,\n\n // -------------------\n // Microtasks\n // (optional)\n // -------------------\n supportsMicrotasks: true,\n scheduleMicrotask: isUndefined(Promise)\n ? setTimeout\n : (callback) =>\n Promise.resolve(null)\n .then(callback)\n .catch(function (error) {\n setTimeout(() => {\n throw error\n })\n }),\n\n // -------------------\n // Mutation\n // (required if supportsMutation is true)\n // -------------------\n appendChild (parent, child) {\n parent.appendChild(child)\n },\n appendChildToContainer (parent, child) {\n parent.appendChild(child)\n },\n commitTextUpdate (textInst, _, newText) {\n textInst.nodeValue = newText\n },\n commitMount: noop,\n commitUpdate (dom, updatePayload, _, oldProps, newProps) {\n updatePropsByPayload(dom, oldProps, updatePayload)\n updateFiberProps(dom, newProps)\n },\n insertBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n insertInContainerBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n removeChild (parent, child) {\n parent.removeChild(child)\n },\n removeChildFromContainer (parent, child) {\n parent.removeChild(child)\n },\n resetTextContent: noop,\n hideInstance (instance) {\n const style = instance.style\n style.setProperty('display', 'none')\n },\n hideTextInstance (textInstance) {\n textInstance.nodeValue = ''\n },\n unhideInstance (instance, props) {\n const styleProp = props.style as { display?: any }\n let display = styleProp?.hasOwnProperty('display') ? styleProp.display : null\n display = display == null || isBoolean(display) || display === '' ? '' : ('' + display).trim()\n // eslint-disable-next-line dot-notation\n instance.style['display'] = display\n },\n unhideTextInstance (textInstance, text) {\n textInstance.nodeValue = text\n },\n clearContainer (element) {\n if (element.childNodes.length > 0) {\n element.textContent = ''\n }\n }\n}\n\nconst TaroReconciler = Reconciler(hostConfig)\n\nif (process.env.NODE_ENV !== 'production') {\n const foundDevTools = TaroReconciler.injectIntoDevTools({\n bundleType: 1,\n version: '18.0.0',\n rendererPackageName: 'taro-react'\n })\n if (!foundDevTools) {\n // eslint-disable-next-line no-console\n console.info(\n '%cDownload the React DevTools ' +\n 'for a better development experience: ' +\n 'https://reactjs.org/link/react-devtools',\n 'font-weight:bold'\n )\n }\n}\n\nexport { TaroReconciler }\n","import { TaroElement, TaroEvent } from '@tarojs/runtime'\n\nimport { getFiberCurrentPropsFromNode, getInstanceFromNode, getNodeFromInstance } from './componentTree'\nimport { isTextInputElement, ReactDOMInputRestoreControlledState, ReactDOMTextareaRestoreControlledState, toString } from './domInput'\nimport { updateValueIfChanged } from './inputValueTracking'\nimport { TaroReconciler } from './reconciler'\n\nimport type { Fiber } from 'react-reconciler'\nimport type { Props } from './props'\n\nexport type RestoreType = string | number | boolean | any[]\n\ninterface RestoreItem {\n target: TaroElement\n value: RestoreType\n}\n\nlet restoreQueue: RestoreItem[] | null = null\n\n// 对比 TaroElement tracker 下的 value 和事件下的 value,判断 element 的值是否存在更改\nexport function getTargetInstForInputOrChangeEvent (e: TaroEvent, node: TaroElement) {\n const targetInst = getInstanceFromNode(node)\n const domEventName = e.type\n\n if (!targetInst || !isTextInputElement(node)) return\n\n if (domEventName === 'input' || domEventName === 'change') {\n const nextValue = toString(e.mpEvent?.detail?.value)\n\n return getInstIfValueChanged(targetInst, nextValue)\n }\n}\n\nfunction getInstIfValueChanged (targetInst: Fiber, nextValue: string) {\n const targetNode = getNodeFromInstance(targetInst)\n\n if (!targetNode) return false\n\n if (updateValueIfChanged(targetNode, nextValue)) {\n return targetInst\n }\n}\n\n// 把 target 塞入更新队列中\nexport function enqueueStateRestore (target: RestoreItem): void {\n if (restoreQueue) {\n restoreQueue.push(target)\n } else {\n restoreQueue = [target]\n }\n}\n\n// 判断是否需要恢复 target(input、textarea) 的状态\nexport function needsStateRestore (): boolean {\n return restoreQueue !== null\n}\n\nexport function finishEventHandler () {\n const controlledComponentsHavePendingUpdates = needsStateRestore()\n\n if (controlledComponentsHavePendingUpdates) {\n TaroReconciler.flushSync()\n restoreStateIfNeeded()\n }\n}\n\n// 遍历 restoreQueue、restoreTarget,恢复其状态\nexport function restoreStateIfNeeded () {\n if (!restoreQueue) {\n return\n }\n\n const queuedTargets = restoreQueue\n restoreQueue = null\n\n for (let i = 0; i < queuedTargets.length; i++) {\n restoreStateOfTarget(queuedTargets[i])\n }\n}\n\nfunction restoreImpl (\n domElement: TaroElement,\n tag: string,\n oldValue: string | number | boolean | any[],\n props: Props,\n): void {\n switch (tag) {\n case 'input':\n ReactDOMInputRestoreControlledState(domElement, oldValue, props)\n break\n case 'textarea':\n ReactDOMTextareaRestoreControlledState(domElement, oldValue, props)\n break\n }\n}\n\nfunction restoreStateOfTarget (item: RestoreItem) {\n const internalInstance = getInstanceFromNode(item.target)\n\n if (!internalInstance) return\n\n const { stateNode, type } = internalInstance\n\n if (stateNode) {\n const props = getFiberCurrentPropsFromNode(stateNode)\n\n restoreImpl(stateNode, type, item.value, props)\n }\n}\n","import { hooks } from '@tarojs/shared'\n\nimport { markContainerAsRoot } from './componentTree'\nimport { getEventPriority } from './constant'\nimport { enqueueStateRestore, getTargetInstForInputOrChangeEvent, RestoreType } from './event'\nimport { TaroReconciler } from './reconciler'\n\nimport type { TaroElement, TaroEvent } from '@tarojs/runtime'\nimport type { ReactNode } from 'react'\nimport type { OpaqueRoot } from 'react-reconciler'\n\nexport const ContainerMap: WeakMap<TaroElement, Root> = new WeakMap()\n\ntype Renderer = typeof TaroReconciler\n\ntype CreateRootOptions = {\n unstable_strictMode?: boolean\n unstable_concurrentUpdatesByDefault?: boolean\n unstable_transitionCallbacks?: any\n identifierPrefix?: string\n onRecoverableError?: (error: any) => void\n}\n\nexport type Callback = () => void | null | undefined\n\nclass Root {\n private renderer: Renderer\n public internalRoot: OpaqueRoot\n\n public constructor (renderer: Renderer, domContainer: TaroElement, options?: CreateRootOptions) {\n this.renderer = renderer\n this.initInternalRoot(renderer, domContainer, options)\n }\n\n private initInternalRoot (renderer: Renderer, domContainer: TaroElement, options?: CreateRootOptions) {\n // Since react-reconciler v0.27, createContainer need more parameters\n // @see:https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react-reconciler/src/ReactFiberReconciler.js#L248\n const containerInfo = domContainer\n if (options) {\n const tag = 1 // ConcurrentRoot\n const concurrentUpdatesByDefaultOverride = false\n let isStrictMode = false\n let identifierPrefix = ''\n let onRecoverableError = (error: any) => console.error(error)\n let transitionCallbacks = null\n if (options.unstable_strictMode === true) {\n isStrictMode = true\n }\n if (options.identifierPrefix !== undefined) {\n identifierPrefix = options.identifierPrefix\n }\n if (options.onRecoverableError !== undefined) {\n onRecoverableError = options.onRecoverableError\n }\n if (options.unstable_transitionCallbacks !== undefined) {\n transitionCallbacks = options.unstable_transitionCallbacks\n }\n\n this.internalRoot = renderer.createContainer(\n containerInfo,\n tag,\n null, // hydrationCallbacks\n isStrictMode,\n concurrentUpdatesByDefaultOverride,\n identifierPrefix,\n onRecoverableError,\n transitionCallbacks\n )\n } else {\n const tag = 0 // LegacyRoot\n this.internalRoot = renderer.createContainer(\n containerInfo,\n tag,\n null, // hydrationCallbacks\n false, // isStrictMode\n false, // concurrentUpdatesByDefaultOverride,\n '', // identifierPrefix\n () => {}, // onRecoverableError, this isn't reachable because onRecoverableError isn't called in the legacy API.\n null // transitionCallbacks\n )\n }\n }\n\n public render (children: ReactNode, cb: Callback) {\n const { renderer, internalRoot } = this\n renderer.updateContainer(children, internalRoot, null, cb)\n return renderer.getPublicRootInstance(internalRoot)\n }\n\n public unmount (cb: Callback) {\n this.renderer.updateContainer(null, this.internalRoot, null, cb)\n }\n}\n\nexport function render (element: ReactNode, domContainer: TaroElement, cb: Callback) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot.render(element, cb)\n }\n\n const root = new Root(TaroReconciler, domContainer)\n ContainerMap.set(domContainer, root)\n return root.render(element, cb)\n}\n\nexport function createRoot (domContainer: TaroElement, options: CreateRootOptions = {}) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot\n }\n // options should be an object\n const root = new Root(TaroReconciler, domContainer, options)\n ContainerMap.set(domContainer, root)\n\n markContainerAsRoot(root?.internalRoot?.current, domContainer)\n\n hooks.tap('dispatchTaroEvent', (e: TaroEvent, node: TaroElement) => {\n const eventPriority = getEventPriority(e.type)\n\n TaroReconciler.runWithPriority(eventPriority, () => {\n node.dispatchEvent(e)\n })\n })\n\n // 对比 event.detail.value 和 node.tracker.value,判断 value 值是否有变动,存在变动则塞入队列中\n hooks.tap('modifyTaroEvent', (e: TaroEvent, node: TaroElement) => {\n const inst = getTargetInstForInputOrChangeEvent(e, node)\n\n if (!inst) return\n\n // 这里塞入的是 event.detail.value,也就是事件的值,在受控组件中,你可以理解为需要被变更的值\n // 后续会在 finishEventHandler 中,使用最新的 fiber.props.value 来与其比较\n // 如果不一致,则表示需要更新,会执行 node.value = fiber.props.value 的更新操作\n const nextValue = e.mpEvent?.detail?.value as unknown as RestoreType\n enqueueStateRestore({ target: node, value: nextValue })\n })\n\n return root\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { ensure, isFunction } from '@tarojs/shared'\n\nimport { finishEventHandler } from './event'\nimport { TaroReconciler } from './reconciler'\nimport { ContainerMap, createRoot, render } from './render'\n\nimport type { TaroElement } from '@tarojs/runtime'\nimport type { ReactNode } from 'react'\n\nlet isInsideEventHandler = false\n\n// 重新包裹 batchedUpdates,使其可以在触发事件后执行 finishEventHandler\nconst unstable_batchedUpdates = (fn, a) => {\n if (isInsideEventHandler) {\n return fn(a)\n }\n\n isInsideEventHandler = true\n\n try {\n return TaroReconciler.batchedUpdates(fn, a)\n } finally {\n isInsideEventHandler = false\n finishEventHandler()\n }\n}\n\nfunction unmountComponentAtNode (dom: TaroElement) {\n ensure(dom && [1, 8, 9, 11].includes(dom.nodeType), 'unmountComponentAtNode(...): Target container is not a DOM element.')\n\n const root = ContainerMap.get(dom)\n\n if (!root) return false\n\n unstable_batchedUpdates(() => {\n root.unmount(() => {\n ContainerMap.delete(dom)\n })\n }, null)\n\n return true\n}\n\nfunction findDOMNode (comp?: TaroElement | ReactNode) {\n if (comp == null) {\n return null\n }\n\n const nodeType = (comp as TaroElement).nodeType\n if (nodeType === 1 || nodeType === 3) {\n return comp\n }\n\n return TaroReconciler.findHostInstance(comp as Record<string, any>)\n}\n\nconst portalType = isFunction(Symbol) && Symbol.for\n ? Symbol.for('react.portal')\n : 0xeaca\n\nfunction createPortal (\n children: ReactNode,\n containerInfo: TaroElement,\n key?: string\n) {\n return {\n $$typeof: portalType,\n key: key == null ? null : String(key),\n children,\n containerInfo,\n implementation: null\n }\n}\n\nexport {\n createPortal,\n createRoot,\n findDOMNode,\n render,\n unmountComponentAtNode,\n unstable_batchedUpdates\n}\n\nexport default {\n render,\n createRoot,\n unstable_batchedUpdates,\n unmountComponentAtNode,\n findDOMNode,\n createPortal\n}\n"],"names":["const","let","i","FormElement","capitalize","toCamelCase","internalComponents","isFunction","isNumber","convertNumber2PX","isObject","isString","noop","document","DefaultEventPriority","isUndefined","isBoolean","Reconciler","tag","hooks","ensure"],"mappings":"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"}
package/dist/react.esm.js CHANGED
@@ -134,6 +134,10 @@ function getFiberCurrentPropsFromNode(node) {
134
134
  }
135
135
  function updateFiberProps(node, props) {
136
136
  node[internalPropsKey] = props;
137
+ if (process.env.TARO_PLATFORM === 'harmony') {
138
+ // @ts-ignore
139
+ node.updateTextNode();
140
+ }
137
141
  }
138
142
 
139
143
  // 从 props 中,更新 input 组件的 value 值
@@ -288,16 +292,6 @@ function isEventName(s) {
288
292
  function isEqual(obj1, obj2) {
289
293
  return JSON.stringify(obj1) === JSON.stringify(obj2);
290
294
  }
291
- function updateDOMInstance(dom, name) {
292
- if (!isHarmony)
293
- return;
294
- const isFormElement = dom instanceof FormElement;
295
- const isNotNeedUpdateDOM = isFormElement && name && !['value', 'name', 'checked'].includes(name);
296
- if (isNotNeedUpdateDOM)
297
- return;
298
- // @ts-ignore
299
- dom.updateComponent && dom.updateComponent();
300
- }
301
295
  function updateProps(dom, oldProps, newProps) {
302
296
  const updatePayload = getUpdatePayload(dom, oldProps, newProps);
303
297
  if (updatePayload) {
@@ -305,11 +299,29 @@ function updateProps(dom, oldProps, newProps) {
305
299
  }
306
300
  }
307
301
  function updatePropsByPayload(dom, oldProps, updatePayload) {
308
- for (let i = 0; i < updatePayload.length; i += 2) { // key, value 成对出现
302
+ const handlers = [];
303
+ for (let i = 0; i < updatePayload.length; i += 2) {
304
+ // key, value 成对出现
309
305
  const key = updatePayload[i];
310
306
  const newProp = updatePayload[i + 1];
311
307
  const oldProp = oldProps[key];
312
- setProperty(dom, key, newProp, oldProp);
308
+ if (isHarmony) {
309
+ // 鸿蒙样式前置插入,防止覆盖style
310
+ if (key === '__hmStyle') {
311
+ handlers.unshift(() => setHarmonyStyle(dom, newProp, oldProp));
312
+ }
313
+ else {
314
+ handlers.push(() => setProperty(dom, key, newProp, oldProp));
315
+ }
316
+ }
317
+ else {
318
+ setProperty(dom, key, newProp, oldProp);
319
+ }
320
+ }
321
+ if (isHarmony) {
322
+ for (let i = 0; i < handlers.length; i++) {
323
+ handlers[i]();
324
+ }
313
325
  }
314
326
  }
315
327
  function getUpdatePayload(dom, oldProps, newProps) {
@@ -357,28 +369,75 @@ function setEvent(dom, name, value, oldValue) {
357
369
  }
358
370
  }
359
371
  function setStyle(style, key, value) {
360
- if (key[0] === '-') {
361
- // 适配鸿蒙
362
- if (isHarmony) {
363
- style.setProperty(key, value);
364
- }
365
- else {
366
- style.setProperty(key, value.toString());
367
- }
372
+ if (key[0] === '-' && !isHarmony) {
368
373
  // css variables need not further judgment
374
+ style.setProperty(key, value.toString());
369
375
  return;
370
376
  }
371
- if (isHarmony && key.startsWith('_')) {
372
- // harmony样式已处理
373
- style[key] = value == null ? '' : value;
377
+ style[key] =
378
+ isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false
379
+ ? (isHarmony ? value + 'px' : convertNumber2PX(value))
380
+ : value == null
381
+ ? ''
382
+ : value;
383
+ }
384
+ // 鸿蒙样式特殊处理,需要在插入顺序中前置插入,防止覆盖了style
385
+ function setHarmonyStyle(dom, value, oldValue) {
386
+ // @ts-ignore
387
+ const style = dom._st.hmStyle; // __hmStyle是已经被处理过的鸿蒙样式,可以直接塞进hmStyle对象内
388
+ if (isObject(oldValue)) {
389
+ for (const i in oldValue) {
390
+ if (!(value && i in value)) {
391
+ // 鸿蒙伪类特殊处理
392
+ if (isHarmony) {
393
+ if (i === '::after' || i === '::before') {
394
+ setPseudo(dom, i, null);
395
+ }
396
+ else if (['::first-child', '::last-child'].includes(i) || i.startsWith('::nth-child')) {
397
+ // @ts-ignore
398
+ dom.set_pseudo_class(i, null);
399
+ }
400
+ else {
401
+ if (i === 'position' && oldValue[i] === 'fixed') {
402
+ // @ts-ignore
403
+ dom.setLayer(0);
404
+ }
405
+ style[i] = '';
406
+ }
407
+ }
408
+ else {
409
+ style[i] = '';
410
+ }
411
+ }
412
+ }
374
413
  }
375
- else {
376
- style[key] =
377
- isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false
378
- ? convertNumber2PX(value)
379
- : value == null
380
- ? ''
381
- : value;
414
+ if (isObject(value)) {
415
+ for (const i in value) {
416
+ if (!oldValue || !isEqual(value[i], oldValue[i])) {
417
+ // 鸿蒙伪类特殊处理
418
+ if (isHarmony) {
419
+ if (i === '::after' || i === '::before') {
420
+ setPseudo(dom, i, value[i]);
421
+ }
422
+ else if (['::first-child', '::last-child'].includes(i) || i.startsWith('::nth-child')) {
423
+ // @ts-ignore
424
+ dom.set_pseudo_class(i, value[i]);
425
+ }
426
+ else {
427
+ if (i === 'position') {
428
+ if (value[i] === 'fixed' || (value[i] !== 'fixed' && (oldValue === null || oldValue === void 0 ? void 0 : oldValue[i]))) {
429
+ // @ts-ignore
430
+ dom.setLayer(value[i] === 'fixed' ? 1 : 0);
431
+ }
432
+ }
433
+ style[i] = value[i];
434
+ }
435
+ }
436
+ else {
437
+ style[i] = value[i];
438
+ }
439
+ }
440
+ }
382
441
  }
383
442
  }
384
443
  function setProperty(dom, name, value, oldValue) {
@@ -397,25 +456,18 @@ function setProperty(dom, name, value, oldValue) {
397
456
  style.cssText = '';
398
457
  oldValue = null;
399
458
  }
400
- let needUpdateAfterMoved = false;
401
459
  if (isObject(oldValue)) {
402
460
  for (const i in oldValue) {
403
461
  if (!(value && i in value)) {
462
+ // harmony设置style,路径设置路径如下:dom.style => cssStyleDeclaration.setProperty => convertWebStyle2HmStyle => dom._st.hmStyle
404
463
  setStyle(style, i, '');
405
- if (isObject(value) && !value[i]) {
406
- needUpdateAfterMoved = true;
407
- }
408
464
  }
409
465
  }
410
- if (needUpdateAfterMoved) {
411
- updateDOMInstance(dom);
412
- }
413
466
  }
414
467
  if (isObject(value)) {
415
468
  for (const i in value) {
416
469
  if (!oldValue || !isEqual(value[i], oldValue[i])) {
417
470
  setStyle(style, i, value[i]);
418
- updateDOMInstance(dom);
419
471
  }
420
472
  }
421
473
  }
@@ -436,14 +488,23 @@ function setProperty(dom, name, value, oldValue) {
436
488
  else if (!isFunction(value)) {
437
489
  if (value == null) {
438
490
  dom.removeAttribute(name);
439
- updateDOMInstance(dom, name);
440
491
  }
441
492
  else {
442
493
  dom.setAttribute(name, value);
443
- updateDOMInstance(dom, name);
444
494
  }
445
495
  }
446
496
  }
497
+ // 设置鸿蒙伪类属性(特殊设置)
498
+ function setPseudo(dom, name, value) {
499
+ if (name === '::after') {
500
+ // @ts-ignore
501
+ dom.set_pseudo_after(value);
502
+ }
503
+ else if (name === '::before') {
504
+ // @ts-ignore
505
+ dom.set_pseudo_before(value);
506
+ }
507
+ }
447
508
 
448
509
  /* eslint-disable @typescript-eslint/indent */
449
510
  const hostConfig = {
@@ -474,7 +535,15 @@ const hostConfig = {
474
535
  parent.appendChild(child);
475
536
  },
476
537
  finalizeInitialChildren(dom, type, props) {
477
- updateProps(dom, {}, props); // 提前执行更新属性操作,Taro 在 Page 初始化后会立即从 dom 读取必要信息
538
+ let newProps = props;
539
+ if (dom instanceof FormElement) {
540
+ const [defaultName, defaultKey] = ['switch', 'checkbox', 'radio'].includes(type) ? ['checked', 'defaultChecked'] : ['value', 'defaultValue'];
541
+ if (props.hasOwnProperty(defaultKey)) {
542
+ newProps = Object.assign(Object.assign({}, newProps), { [defaultName]: props[defaultKey] });
543
+ delete newProps[defaultKey];
544
+ }
545
+ }
546
+ updateProps(dom, {}, newProps); // 提前执行更新属性操作,Taro 在 Page 初始化后会立即从 dom 读取必要信息
478
547
  if (type === 'input' || type === 'textarea') {
479
548
  track(dom);
480
549
  }
@@ -513,8 +582,7 @@ const hostConfig = {
513
582
  // Microtasks
514
583
  // (optional)
515
584
  // -------------------
516
- // 鸿蒙平台不支持微任务
517
- supportsMicrotasks: process.env.TARO_PLATFORM !== 'harmony',
585
+ supportsMicrotasks: true,
518
586
  scheduleMicrotask: isUndefined(Promise)
519
587
  ? setTimeout
520
588
  : (callback) => Promise.resolve(null)
@@ -1 +1 @@
1
- {"version":3,"file":"react.esm.js","sources":["../src/constant.ts","../src/workTags.ts","../src/componentTree.ts","../src/domInput.ts","../src/inputValueTracking.ts","../src/props.ts","../src/reconciler.ts","../src/event.ts","../src/render.ts","../src/index.ts"],"sourcesContent":["export const supportedInputTypes: { [key: string]: boolean } = {\n color: true,\n date: true,\n datetime: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n password: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n}\n\nconst SyncLane = 1\nconst InputContinuousLane = 4\nconst DefaultLane = 16\nconst DiscreteEventPriority = SyncLane\nconst ContinuousEventPriority = InputContinuousLane\nconst DefaultEventPriority = DefaultLane\n\nexport function getEventPriority (domEventName) {\n switch (domEventName) {\n case 'cancel':\n case 'click':\n case 'close':\n case 'contextmenu':\n case 'copy':\n case 'cut':\n case 'dragend':\n case 'dragstart':\n case 'drop':\n case 'input':\n case 'paste':\n case 'pause':\n case 'play':\n case 'pointercancel':\n case 'pointerdown':\n case 'pointerup':\n case 'reset':\n case 'resize':\n case 'submit':\n case 'touchcancel':\n case 'touchend':\n case 'touchstart':\n case 'change':\n case 'blur':\n case 'focus':\n case 'select':\n case 'selectstart':\n return DiscreteEventPriority\n case 'drag':\n case 'dragenter':\n case 'dragexit':\n case 'dragleave':\n case 'dragover':\n case 'pointermove':\n case 'pointerout':\n case 'pointerover':\n case 'scroll':\n case 'toggle':\n case 'touchmove':\n case 'pointerenter':\n case 'pointerleave':\n return ContinuousEventPriority\n default:\n return DefaultEventPriority\n }\n}\n\n\nconst randomKey = Math.random()\n .toString(36)\n .slice(2)\n\nexport const internalPropsKey = '__reactProps$' + randomKey\nexport const internalInstanceKey = '__reactFiber$' + randomKey\nexport const internalContainerInstanceKey = '__reactContainer$' + randomKey\n// const internalEventHandlersKey = '__reactEvents$' + randomKey\n// const internalEventHandlerListenersKey = '__reactListeners$' + randomKey\n// const internalEventHandlesSetKey = '__reactHandles$' + randomKey\n","export type WorkTag =\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16\n | 17\n | 18\n | 19\n | 20\n | 21\n | 22\n | 23\n | 24\n | 25\n\nexport const FunctionComponent = 0\nexport const ClassComponent = 1\nexport const IndeterminateComponent = 2 // Before we know whether it is function or class\nexport const HostRoot = 3 // Root of a host tree. Could be nested inside another node.\nexport const HostPortal = 4 // A subtree. Could be an entry point to a different renderer.\nexport const HostComponent = 5\nexport const HostText = 6\nexport const Fragment = 7\nexport const Mode = 8\nexport const ContextConsumer = 9\nexport const ContextProvider = 10\nexport const ForwardRef = 11\nexport const Profiler = 12\nexport const SuspenseComponent = 13\nexport const MemoComponent = 14\nexport const SimpleMemoComponent = 15\nexport const LazyComponent = 16\nexport const IncompleteClassComponent = 17\nexport const DehydratedFragment = 18\nexport const SuspenseListComponent = 19\nexport const ScopeComponent = 21\nexport const OffscreenComponent = 22\nexport const LegacyHiddenComponent = 23\nexport const CacheComponent = 24\nexport const TracingMarkerComponent = 25\n","/**\n * 给 TaroElement 绑定 react fiber、react props 等属性\n * 提供 fiber -> element、element -> fiber、element -> props 的方法\n*/\nimport { internalContainerInstanceKey, internalInstanceKey, internalPropsKey } from './constant'\nimport { Props } from './props'\nimport { HostComponent, HostRoot, HostText, SuspenseComponent } from './workTags'\n\nimport type { TaroElement } from '@tarojs/runtime'\nimport type { Fiber } from 'react-reconciler'\n\nexport function precacheFiberNode (hostInst: Fiber, node: TaroElement): void {\n node[internalInstanceKey] = hostInst\n}\n\nexport function markContainerAsRoot (hostRoot: Fiber, node: TaroElement): void {\n node[internalContainerInstanceKey] = hostRoot\n}\n\nexport function unmarkContainerAsRoot (node: TaroElement): void {\n node[internalContainerInstanceKey] = null\n}\n\nexport function isContainerMarkedAsRoot (node: TaroElement): boolean {\n return !!node[internalContainerInstanceKey]\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nexport function getInstanceFromNode (node: TaroElement): Fiber | null {\n const inst = node[internalInstanceKey] || node[internalContainerInstanceKey]\n\n if (inst) {\n if (\n inst.tag === HostComponent ||\n inst.tag === HostText ||\n inst.tag === SuspenseComponent ||\n inst.tag === HostRoot\n ) {\n return inst\n } else {\n return null\n }\n }\n return null\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nexport function getNodeFromInstance (inst: Fiber) {\n if (inst.tag === HostComponent || inst.tag === HostText) {\n // In Fiber this, is just the state node right now. We assume it will be\n // a host component or host text.\n return inst.stateNode\n }\n}\n\nexport function getFiberCurrentPropsFromNode (node: TaroElement): Props {\n return node[internalPropsKey] || null\n}\n\nexport function updateFiberProps (\n node: TaroElement,\n props: Props,\n): void {\n node[internalPropsKey] = props\n}\n","import { type FormElement, TaroElement } from '@tarojs/runtime'\n\nimport { supportedInputTypes } from './constant'\nimport { Props } from './props'\n\nimport type { RestoreType } from './event'\n\n// 从 props 中,更新 input 组件的 value 值\nfunction updateInputWrapper (element: TaroElement, oldValue: RestoreType, props: Props) {\n const node = element\n const checked = props.checked\n\n if (checked != null) {\n console.warn('updateCheck 未实现', node)\n return\n }\n\n updateWrapper(element, oldValue, props)\n updateNamedCousins(element, props)\n}\n\n// react 中原本处理 type=radio 的逻辑,这里留个空,暂时不处理\nfunction updateNamedCousins (rootNode, props) {\n const name = props.name\n\n if (props.type === 'radio' && name != null) {\n console.warn('radio updateNamedCousins 未实现', rootNode, props)\n }\n}\n\nexport function getToStringValue (value: any) {\n const isEmptyType = typeof value === 'function' || typeof value === 'symbol'\n\n return isEmptyType ? '' : value\n}\n\nexport function toString (value): string {\n return '' + value\n}\n\nexport function updateWrapper (element: TaroElement, oldValue: RestoreType, props: Props) {\n const node = element as FormElement\n const value = getToStringValue(props.value)\n const type = props.type as string\n\n setNodeValue(node, oldValue, value, type)\n}\n\n// oldValue 为 event.detail.value,value 为 fiber.props.value\n// 如果 oldValue 和 value 不相等,代表受控组件需要更新\n// 更新的原则为,fiber.props.value 永远为用户所需要的值,因此 node.value = toString(value)\nexport function setNodeValue (node: FormElement, oldValue: RestoreType, value, type = 'string') {\n if (value != null) {\n if (type === 'number') {\n if (\n (value === 0 && node.value === '') ||\n // We explicitly want to coerce to number here if possible.\n // eslint-disable-next-line\n oldValue != value\n ) {\n node.value = toString(value)\n }\n } else if (oldValue !== toString(value)) {\n node.value = toString(value)\n }\n } else if (type === 'submit' || type === 'reset') {\n // Submit/reset inputs need the attribute removed completely to avoid\n // blank-text buttons.\n node.removeAttribute('value')\n }\n}\n\n// 判断当前 TaroElement 是否为 supportedInputTypes input 或 textarea\nexport function isTextInputElement (elem: TaroElement): boolean {\n const nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase()\n\n if (nodeName === 'input') {\n const type = (elem as FormElement).type\n\n return !type || !!supportedInputTypes[type]\n }\n\n if (nodeName === 'textarea') {\n return true\n }\n\n return false\n}\n\nexport const ReactDOMTextareaRestoreControlledState = updateWrapper\nexport const ReactDOMInputRestoreControlledState = updateInputWrapper\n","import type { FormElement } from '@tarojs/runtime'\n\nfunction isCheckable (elem: FormElement) {\n const type = elem.type\n const nodeName = elem.nodeName\n\n return (\n nodeName &&\n nodeName.toLowerCase() === 'input' &&\n (type === 'checkbox' || type === 'radio')\n )\n}\n\nfunction getTracker (node) {\n return node._valueTracker\n}\n\nfunction detachTracker (node) {\n node._valueTracker = null\n}\n\n// 之所以单独创建一个 tacker,是为了统一监听不同 type 的 input 值\n// 比如 type=checkbox 或者 type=radio,就需要监听 checked,而不是 value\n// 虽然目前还未实现 checkbox 和 radio 的 finishEventHandle,但后续不好说,所以先统一和 react 一样的写法\n// 需要特别注意的是,tracker 初始化时的值为 node 的初始值,但后续会变更为事件的 detail.value 值\nfunction trackValueOnNode (node: any) {\n const valueField = isCheckable(node) ? 'checked' : 'value'\n const descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField,\n )\n\n let currentValue = '' + node[valueField]\n\n if (\n node.hasOwnProperty(valueField) ||\n typeof descriptor === 'undefined' ||\n typeof descriptor.get !== 'function' ||\n typeof descriptor.set !== 'function'\n ) {\n return\n }\n\n const { get, set } = descriptor\n\n Object.defineProperty(node, valueField, {\n configurable: true,\n enumerable: descriptor.enumerable,\n get: function () {\n return get.call(this)\n },\n set: function (value) {\n currentValue = '' + value\n set.call(this, value)\n },\n })\n\n const tracker = {\n getValue () {\n return currentValue\n },\n setValue (value) {\n currentValue = '' + value\n },\n stopTracking () {\n detachTracker(node)\n delete node[valueField]\n },\n }\n return tracker\n}\n\nexport function track (node) {\n if (getTracker(node)) {\n return\n }\n\n node._valueTracker = trackValueOnNode(node)\n}\n\nexport function updateValueIfChanged (node, nextValue: string) {\n if (!node) {\n return false\n }\n\n const tracker = getTracker(node)\n\n if (!tracker) {\n return true\n }\n\n const lastValue = tracker.getValue()\n\n if (nextValue !== lastValue) {\n tracker.setValue(nextValue)\n return true\n }\n return false\n}\n\nexport function stopTracking (node) {\n const tracker = getTracker(node)\n if (tracker) {\n tracker.stopTracking()\n }\n}\n","import { type Style, type TaroElement, convertNumber2PX, FormElement } from '@tarojs/runtime'\nimport { capitalize, internalComponents, isFunction, isNumber, isObject, isString, toCamelCase } from '@tarojs/shared'\n\nexport type Props = Record<string, unknown>\n\nconst isHarmony = process.env.TARO_PLATFORM === 'harmony'\nconst IS_NON_DIMENSIONAL = /max|aspect|acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i\n\nfunction isEventName (s: string) {\n return s[0] === 'o' && s[1] === 'n'\n}\n\nfunction isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nfunction updateDOMInstance (dom: TaroElement, name?: string) {\n if (!isHarmony) return\n\n const isFormElement = dom instanceof FormElement\n const isNotNeedUpdateDOM = isFormElement && name && !['value', 'name', 'checked'].includes(name)\n if (isNotNeedUpdateDOM) return\n \n // @ts-ignore\n dom.updateComponent && dom.updateComponent()\n}\n\n\nexport function updateProps (dom: TaroElement, oldProps: Props, newProps: Props) {\n const updatePayload = getUpdatePayload(dom, oldProps, newProps)\n if (updatePayload){\n updatePropsByPayload(dom, oldProps, updatePayload)\n }\n}\n\nexport function updatePropsByPayload (dom: TaroElement, oldProps: Props, updatePayload: any[]){\n for (let i = 0; i < updatePayload.length; i += 2){ // key, value 成对出现\n const key = updatePayload[i]; const newProp = updatePayload[i+1]; const oldProp = oldProps[key]\n setProperty(dom, key, newProp, oldProp)\n }\n}\n\nexport function getUpdatePayload (dom: TaroElement, oldProps: Props, newProps: Props){\n let i: string\n let updatePayload: any[] | null = null\n\n for (i in oldProps) {\n if (!(i in newProps)) {\n (updatePayload = updatePayload || []).push(i, null)\n }\n }\n const isFormElement = dom instanceof FormElement\n for (i in newProps) {\n if (oldProps[i] !== newProps[i] || (isFormElement && i === 'value')) {\n (updatePayload = updatePayload || []).push(i, newProps[i])\n }\n }\n\n return updatePayload\n}\n\n// function eventProxy (e: CommonEvent) {\n// const el = document.getElementById(e.currentTarget.id)\n// const handlers = el!.__handlers[e.type]\n// handlers[0](e)\n// }\n\nfunction setEvent (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n const isCapture = name.endsWith('Capture')\n let eventName = name.toLowerCase().slice(2)\n if (isCapture) {\n eventName = eventName.slice(0, -7)\n }\n\n const compName = capitalize(toCamelCase(dom.tagName.toLowerCase()))\n\n if (eventName === 'click' && !isHarmony && compName in internalComponents) {\n eventName = 'tap'\n }\n\n if (isFunction(value)) {\n if (oldValue) {\n dom.removeEventListener(eventName, oldValue as any, !isHarmony ? false : undefined)\n dom.addEventListener(eventName, value, !isHarmony ? { isCapture, sideEffect: false } : undefined)\n } else {\n dom.addEventListener(eventName, value, !isHarmony ? isCapture : undefined)\n }\n } else {\n dom.removeEventListener(eventName, oldValue as any)\n }\n}\n\nfunction setStyle (style: Style, key: string, value: unknown) {\n if (key[0] === '-') {\n // 适配鸿蒙\n if (isHarmony) {\n style.setProperty(key, value as string)\n } else {\n style.setProperty(key, (value as string).toString())\n }\n // css variables need not further judgment\n return\n }\n\n if (isHarmony && key.startsWith('_')) {\n // harmony样式已处理\n style[key] = value == null ? '' : value\n } else {\n style[key] =\n isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false\n ? convertNumber2PX(value)\n : value == null\n ? ''\n : value\n }\n}\n\ntype StyleValue = Record<string, string | number>\ninterface DangerouslySetInnerHTML {\n __html?: string\n}\n\nfunction setProperty (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n name = name === 'className' ? 'class' : name\n\n if (\n name === 'key' ||\n name === 'children' ||\n name === 'ref'\n ) {\n // skip\n } else if (name === 'style') {\n const style = dom.style\n if (isString(value)) {\n style.cssText = value\n } else {\n if (isString(oldValue)) {\n style.cssText = ''\n oldValue = null\n }\n\n let needUpdateAfterMoved = false\n if (isObject<StyleValue>(oldValue)) {\n for (const i in oldValue) {\n if (!(value && i in (value as StyleValue))) {\n setStyle(style, i, '')\n\n if (isObject<StyleValue>(value) && !value[i]) {\n needUpdateAfterMoved = true\n }\n }\n }\n\n if (needUpdateAfterMoved) {\n updateDOMInstance(dom)\n }\n }\n\n if (isObject<StyleValue>(value)) {\n for (const i in value) {\n if (!oldValue || !isEqual(value[i], (oldValue as StyleValue)[i])) {\n setStyle(style, i, value[i])\n updateDOMInstance(dom)\n }\n }\n }\n }\n } else if (isEventName(name)) {\n setEvent(dom, name, value, oldValue)\n } else if (name === 'dangerouslySetInnerHTML') {\n const newHtml = (value as DangerouslySetInnerHTML)?.__html ?? ''\n const oldHtml = (oldValue as DangerouslySetInnerHTML)?.__html ?? ''\n if (newHtml || oldHtml) {\n if (oldHtml !== newHtml) {\n dom.innerHTML = newHtml\n }\n }\n } else if (!isFunction(value)) {\n if (value == null) {\n dom.removeAttribute(name)\n updateDOMInstance(dom, name)\n } else {\n dom.setAttribute(name, value as string)\n updateDOMInstance(dom, name)\n }\n }\n}\n","/* eslint-disable @typescript-eslint/indent */\nimport { document } from '@tarojs/runtime'\nimport { isBoolean, isUndefined, noop } from '@tarojs/shared'\nimport Reconciler from 'react-reconciler'\nimport { DefaultEventPriority } from 'react-reconciler/constants'\n\nimport { precacheFiberNode, updateFiberProps } from './componentTree'\nimport { track } from './inputValueTracking'\nimport { getUpdatePayload, Props, updateProps, updatePropsByPayload } from './props'\n\nimport type { TaroElement, TaroText } from '@tarojs/runtime'\nimport type { Fiber, HostConfig } from 'react-reconciler'\n\nconst hostConfig: HostConfig<\n string, // Type\n Props, // Props\n TaroElement, // Container\n TaroElement, // Instance\n TaroText, // TextInstance\n TaroElement, // SuspenseInstance\n TaroElement, // HydratableInstance\n TaroElement, // PublicInstance\n Record<string, any>, // HostContext\n string[], // UpdatePayload\n unknown, // ChildSet\n unknown, // TimeoutHandle\n unknown // NoTimeout\n> & {\n supportsMicrotasks: boolean // 待官方类型文件修复后删除\n} = {\n // below keys order by {React ReactFiberHostConfig.custom.js}, convenient for comparing each other.\n\n // -------------------\n // required by @types/react-reconciler\n // -------------------\n getPublicInstance (inst: TaroElement) {\n return inst\n },\n getRootHostContext () {\n return {}\n },\n getChildHostContext (parentHostContext) {\n return parentHostContext\n },\n prepareForCommit (..._: any[]) {\n return null\n },\n resetAfterCommit: noop,\n createInstance (type, props: Props, _rootContainerInstance: any, _hostContext: any, internalInstanceHandle: Fiber) {\n const element = document.createElement(type)\n\n precacheFiberNode(internalInstanceHandle, element)\n updateFiberProps(element, props)\n\n return element\n },\n appendInitialChild (parent, child) {\n parent.appendChild(child)\n },\n finalizeInitialChildren (dom, type: string, props: any) {\n updateProps(dom, {}, props) // 提前执行更新属性操作,Taro 在 Page 初始化后会立即从 dom 读取必要信息\n\n if (type === 'input' || type === 'textarea') {\n track(dom)\n }\n\n return false\n },\n prepareUpdate (instance, _, oldProps, newProps) {\n return getUpdatePayload(instance, oldProps, newProps)\n },\n shouldSetTextContent () {\n return false\n },\n createTextInstance (text: string, _rootContainerInstance: any, _hostContext: any, internalInstanceHandle: Fiber) {\n const textNode = document.createTextNode(text)\n\n precacheFiberNode(internalInstanceHandle, textNode)\n\n return textNode\n },\n scheduleTimeout: setTimeout,\n cancelTimeout: clearTimeout,\n noTimeout: -1,\n isPrimaryRenderer: true,\n warnsIfNotActing: true,\n supportsMutation: true,\n supportsPersistence: false,\n supportsHydration: false,\n getInstanceFromNode: () => null,\n beforeActiveInstanceBlur: noop,\n afterActiveInstanceBlur: noop,\n preparePortalMount: noop,\n prepareScopeUpdate: noop,\n getInstanceFromScope: () => null,\n getCurrentEventPriority () {\n return DefaultEventPriority\n },\n detachDeletedInstance: noop,\n\n // -------------------\n // Microtasks\n // (optional)\n // -------------------\n // 鸿蒙平台不支持微任务\n supportsMicrotasks: process.env.TARO_PLATFORM !== 'harmony',\n scheduleMicrotask: isUndefined(Promise)\n ? setTimeout\n : (callback) =>\n Promise.resolve(null)\n .then(callback)\n .catch(function (error) {\n setTimeout(() => {\n throw error\n })\n }),\n\n // -------------------\n // Mutation\n // (required if supportsMutation is true)\n // -------------------\n appendChild (parent, child) {\n parent.appendChild(child)\n },\n appendChildToContainer (parent, child) {\n parent.appendChild(child)\n },\n commitTextUpdate (textInst, _, newText) {\n textInst.nodeValue = newText\n },\n commitMount: noop,\n commitUpdate (dom, updatePayload, _, oldProps, newProps) {\n updatePropsByPayload(dom, oldProps, updatePayload)\n updateFiberProps(dom, newProps)\n },\n insertBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n insertInContainerBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n removeChild (parent, child) {\n parent.removeChild(child)\n },\n removeChildFromContainer (parent, child) {\n parent.removeChild(child)\n },\n resetTextContent: noop,\n hideInstance (instance) {\n const style = instance.style\n style.setProperty('display', 'none')\n },\n hideTextInstance (textInstance) {\n textInstance.nodeValue = ''\n },\n unhideInstance (instance, props) {\n const styleProp = props.style as { display?: any }\n let display = styleProp?.hasOwnProperty('display') ? styleProp.display : null\n display = display == null || isBoolean(display) || display === '' ? '' : ('' + display).trim()\n // eslint-disable-next-line dot-notation\n instance.style['display'] = display\n },\n unhideTextInstance (textInstance, text) {\n textInstance.nodeValue = text\n },\n clearContainer (element) {\n if (element.childNodes.length > 0) {\n element.textContent = ''\n }\n }\n}\n\nconst TaroReconciler = Reconciler(hostConfig)\n\nif (process.env.NODE_ENV !== 'production') {\n const foundDevTools = TaroReconciler.injectIntoDevTools({\n bundleType: 1,\n version: '18.0.0',\n rendererPackageName: 'taro-react'\n })\n if (!foundDevTools) {\n // eslint-disable-next-line no-console\n console.info(\n '%cDownload the React DevTools ' +\n 'for a better development experience: ' +\n 'https://reactjs.org/link/react-devtools',\n 'font-weight:bold'\n )\n }\n}\n\nexport { TaroReconciler }\n","import { TaroElement, TaroEvent } from '@tarojs/runtime'\n\nimport { getFiberCurrentPropsFromNode, getInstanceFromNode, getNodeFromInstance } from './componentTree'\nimport { isTextInputElement, ReactDOMInputRestoreControlledState, ReactDOMTextareaRestoreControlledState, toString } from './domInput'\nimport { updateValueIfChanged } from './inputValueTracking'\nimport { TaroReconciler } from './reconciler'\n\nimport type { Fiber } from 'react-reconciler'\nimport type { Props } from './props'\n\n\nexport type RestoreType = string | number | boolean | any[]\n\ninterface RestoreItem {\n target: TaroElement\n value: RestoreType\n}\n\nlet restoreQueue: RestoreItem[] | null = null\n\n// 对比 TaroElement tracker 下的 value 和事件下的 value,判断 element 的值是否存在更改\nexport function getTargetInstForInputOrChangeEvent (e: TaroEvent, node: TaroElement) {\n const targetInst = getInstanceFromNode(node)\n const domEventName = e.type\n\n if (!targetInst || !isTextInputElement(node)) return\n\n if (domEventName === 'input' || domEventName === 'change') {\n const nextValue = toString(e.mpEvent?.detail?.value)\n\n return getInstIfValueChanged(targetInst, nextValue)\n }\n}\n\n\nfunction getInstIfValueChanged (targetInst: Fiber, nextValue: string) {\n const targetNode = getNodeFromInstance(targetInst)\n\n if (!targetNode) return false\n\n if (updateValueIfChanged(targetNode, nextValue)) {\n return targetInst\n }\n}\n\n// 把 target 塞入更新队列中\nexport function enqueueStateRestore (target: RestoreItem): void {\n if (restoreQueue) {\n restoreQueue.push(target)\n } else {\n restoreQueue = [target]\n }\n}\n\n// 判断是否需要恢复 target(input、textarea) 的状态\nexport function needsStateRestore (): boolean {\n return restoreQueue !== null\n}\n\nexport function finishEventHandler () {\n const controlledComponentsHavePendingUpdates = needsStateRestore()\n\n if (controlledComponentsHavePendingUpdates) {\n TaroReconciler.flushSync()\n restoreStateIfNeeded()\n }\n}\n\n// 遍历 restoreQueue、restoreTarget,恢复其状态\nexport function restoreStateIfNeeded () {\n if (!restoreQueue) {\n return\n }\n\n const queuedTargets = restoreQueue\n restoreQueue = null\n\n for (let i = 0; i < queuedTargets.length; i++) {\n restoreStateOfTarget(queuedTargets[i])\n }\n}\n\nfunction restoreImpl (\n domElement: TaroElement,\n tag: string,\n oldValue: string | number | boolean | any[],\n props: Props,\n): void {\n switch (tag) {\n case 'input':\n ReactDOMInputRestoreControlledState(domElement, oldValue, props)\n break\n case 'textarea':\n ReactDOMTextareaRestoreControlledState(domElement, oldValue, props)\n break\n }\n}\n\n\nfunction restoreStateOfTarget (item: RestoreItem) {\n const internalInstance = getInstanceFromNode(item.target)\n\n if (!internalInstance) return\n\n const { stateNode, type } = internalInstance\n\n if (stateNode) {\n const props = getFiberCurrentPropsFromNode(stateNode)\n\n restoreImpl(stateNode, type, item.value, props)\n }\n}\n","import { hooks } from '@tarojs/shared'\n\nimport { markContainerAsRoot } from './componentTree'\nimport { getEventPriority } from './constant'\nimport { enqueueStateRestore, getTargetInstForInputOrChangeEvent, RestoreType } from './event'\nimport { TaroReconciler } from './reconciler'\n\nimport type { TaroElement, TaroEvent } from '@tarojs/runtime'\nimport type { ReactNode } from 'react'\nimport type { OpaqueRoot } from 'react-reconciler'\n\nexport const ContainerMap: WeakMap<TaroElement, Root> = new WeakMap()\n\ntype Renderer = typeof TaroReconciler\n\ntype CreateRootOptions = {\n unstable_strictMode?: boolean\n unstable_concurrentUpdatesByDefault?: boolean\n unstable_transitionCallbacks?: any\n identifierPrefix?: string\n onRecoverableError?: (error: any) => void\n}\n\nexport type Callback = () => void | null | undefined\n\nclass Root {\n private renderer: Renderer\n public internalRoot: OpaqueRoot\n\n public constructor (renderer: Renderer, domContainer: TaroElement, options?: CreateRootOptions) {\n this.renderer = renderer\n this.initInternalRoot(renderer, domContainer, options)\n }\n\n private initInternalRoot (renderer: Renderer, domContainer: TaroElement, options?: CreateRootOptions) {\n // Since react-reconciler v0.27, createContainer need more parameters\n // @see:https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react-reconciler/src/ReactFiberReconciler.js#L248\n const containerInfo = domContainer\n if (options) {\n const tag = 1 // ConcurrentRoot\n const concurrentUpdatesByDefaultOverride = false\n let isStrictMode = false\n let identifierPrefix = ''\n let onRecoverableError = (error: any) => console.error(error)\n let transitionCallbacks = null\n if (options.unstable_strictMode === true) {\n isStrictMode = true\n }\n if (options.identifierPrefix !== undefined) {\n identifierPrefix = options.identifierPrefix\n }\n if (options.onRecoverableError !== undefined) {\n onRecoverableError = options.onRecoverableError\n }\n if (options.unstable_transitionCallbacks !== undefined) {\n transitionCallbacks = options.unstable_transitionCallbacks\n }\n\n this.internalRoot = renderer.createContainer(\n containerInfo,\n tag,\n null, // hydrationCallbacks\n isStrictMode,\n concurrentUpdatesByDefaultOverride,\n identifierPrefix,\n onRecoverableError,\n transitionCallbacks\n )\n } else {\n const tag = 0 // LegacyRoot\n this.internalRoot = renderer.createContainer(\n containerInfo,\n tag,\n null, // hydrationCallbacks\n false, // isStrictMode\n false, // concurrentUpdatesByDefaultOverride,\n '', // identifierPrefix\n () => {}, // onRecoverableError, this isn't reachable because onRecoverableError isn't called in the legacy API.\n null // transitionCallbacks\n )\n }\n }\n\n public render (children: ReactNode, cb: Callback) {\n const { renderer, internalRoot } = this\n renderer.updateContainer(children, internalRoot, null, cb)\n return renderer.getPublicRootInstance(internalRoot)\n }\n\n public unmount (cb: Callback) {\n this.renderer.updateContainer(null, this.internalRoot, null, cb)\n }\n}\n\nexport function render (element: ReactNode, domContainer: TaroElement, cb: Callback) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot.render(element, cb)\n }\n\n const root = new Root(TaroReconciler, domContainer)\n ContainerMap.set(domContainer, root)\n return root.render(element, cb)\n}\n\nexport function createRoot (domContainer: TaroElement, options: CreateRootOptions = {}) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot\n }\n // options should be an object\n const root = new Root(TaroReconciler, domContainer, options)\n ContainerMap.set(domContainer, root)\n\n markContainerAsRoot(root?.internalRoot?.current, domContainer)\n\n hooks.tap('dispatchTaroEvent', (e: TaroEvent, node: TaroElement) => {\n const eventPriority = getEventPriority(e.type)\n\n TaroReconciler.runWithPriority(eventPriority, () => {\n node.dispatchEvent(e)\n })\n })\n\n // 对比 event.detail.value 和 node.tracker.value,判断 value 值是否有变动,存在变动则塞入队列中\n hooks.tap('modifyTaroEvent', (e: TaroEvent, node: TaroElement) => {\n const inst = getTargetInstForInputOrChangeEvent(e, node)\n\n if (!inst) return\n\n // 这里塞入的是 event.detail.value,也就是事件的值,在受控组件中,你可以理解为需要被变更的值\n // 后续会在 finishEventHandler 中,使用最新的 fiber.props.value 来与其比较\n // 如果不一致,则表示需要更新,会执行 node.value = fiber.props.value 的更新操作\n const nextValue = e.mpEvent?.detail?.value as unknown as RestoreType\n enqueueStateRestore({ target: node, value: nextValue })\n })\n\n return root\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { ensure, isFunction } from '@tarojs/shared'\n\nimport { finishEventHandler } from './event'\nimport { TaroReconciler } from './reconciler'\nimport { ContainerMap, createRoot, render } from './render'\n\nimport type { TaroElement } from '@tarojs/runtime'\nimport type { ReactNode } from 'react'\n\nlet isInsideEventHandler = false\n\n// 重新包裹 batchedUpdates,使其可以在触发事件后执行 finishEventHandler\nconst unstable_batchedUpdates = (fn, a) => {\n if (isInsideEventHandler) {\n return fn(a)\n }\n\n isInsideEventHandler = true\n\n try {\n return TaroReconciler.batchedUpdates(fn, a)\n } finally {\n isInsideEventHandler = false\n finishEventHandler()\n }\n}\n\nfunction unmountComponentAtNode (dom: TaroElement) {\n ensure(dom && [1, 8, 9, 11].includes(dom.nodeType), 'unmountComponentAtNode(...): Target container is not a DOM element.')\n\n const root = ContainerMap.get(dom)\n\n if (!root) return false\n\n unstable_batchedUpdates(() => {\n root.unmount(() => {\n ContainerMap.delete(dom)\n })\n }, null)\n\n return true\n}\n\nfunction findDOMNode (comp?: TaroElement | ReactNode) {\n if (comp == null) {\n return null\n }\n\n const nodeType = (comp as TaroElement).nodeType\n if (nodeType === 1 || nodeType === 3) {\n return comp\n }\n\n return TaroReconciler.findHostInstance(comp as Record<string, any>)\n}\n\nconst portalType = isFunction(Symbol) && Symbol.for\n ? Symbol.for('react.portal')\n : 0xeaca\n\nfunction createPortal (\n children: ReactNode,\n containerInfo: TaroElement,\n key?: string\n) {\n return {\n $$typeof: portalType,\n key: key == null ? null : String(key),\n children,\n containerInfo,\n implementation: null\n }\n}\n\nexport {\n createPortal,\n createRoot,\n findDOMNode,\n render,\n unmountComponentAtNode,\n unstable_batchedUpdates\n}\n\nexport default {\n render,\n createRoot,\n unstable_batchedUpdates,\n unmountComponentAtNode,\n findDOMNode,\n createPortal\n}\n"],"names":["DefaultEventPriority"],"mappings":"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"}
1
+ {"version":3,"file":"react.esm.js","sources":["../src/constant.ts","../src/workTags.ts","../src/componentTree.ts","../src/domInput.ts","../src/inputValueTracking.ts","../src/props.ts","../src/reconciler.ts","../src/event.ts","../src/render.ts","../src/index.ts"],"sourcesContent":["export const supportedInputTypes: { [key: string]: boolean } = {\n color: true,\n date: true,\n datetime: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n password: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n}\n\nconst SyncLane = 1\nconst InputContinuousLane = 4\nconst DefaultLane = 16\nconst DiscreteEventPriority = SyncLane\nconst ContinuousEventPriority = InputContinuousLane\nconst DefaultEventPriority = DefaultLane\n\nexport function getEventPriority (domEventName) {\n switch (domEventName) {\n case 'cancel':\n case 'click':\n case 'close':\n case 'contextmenu':\n case 'copy':\n case 'cut':\n case 'dragend':\n case 'dragstart':\n case 'drop':\n case 'input':\n case 'paste':\n case 'pause':\n case 'play':\n case 'pointercancel':\n case 'pointerdown':\n case 'pointerup':\n case 'reset':\n case 'resize':\n case 'submit':\n case 'touchcancel':\n case 'touchend':\n case 'touchstart':\n case 'change':\n case 'blur':\n case 'focus':\n case 'select':\n case 'selectstart':\n return DiscreteEventPriority\n case 'drag':\n case 'dragenter':\n case 'dragexit':\n case 'dragleave':\n case 'dragover':\n case 'pointermove':\n case 'pointerout':\n case 'pointerover':\n case 'scroll':\n case 'toggle':\n case 'touchmove':\n case 'pointerenter':\n case 'pointerleave':\n return ContinuousEventPriority\n default:\n return DefaultEventPriority\n }\n}\n\nconst randomKey = Math.random()\n .toString(36)\n .slice(2)\n\nexport const internalPropsKey = '__reactProps$' + randomKey\nexport const internalInstanceKey = '__reactFiber$' + randomKey\nexport const internalContainerInstanceKey = '__reactContainer$' + randomKey\n// const internalEventHandlersKey = '__reactEvents$' + randomKey\n// const internalEventHandlerListenersKey = '__reactListeners$' + randomKey\n// const internalEventHandlesSetKey = '__reactHandles$' + randomKey\n","export type WorkTag =\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16\n | 17\n | 18\n | 19\n | 20\n | 21\n | 22\n | 23\n | 24\n | 25\n\nexport const FunctionComponent = 0\nexport const ClassComponent = 1\nexport const IndeterminateComponent = 2 // Before we know whether it is function or class\nexport const HostRoot = 3 // Root of a host tree. Could be nested inside another node.\nexport const HostPortal = 4 // A subtree. Could be an entry point to a different renderer.\nexport const HostComponent = 5\nexport const HostText = 6\nexport const Fragment = 7\nexport const Mode = 8\nexport const ContextConsumer = 9\nexport const ContextProvider = 10\nexport const ForwardRef = 11\nexport const Profiler = 12\nexport const SuspenseComponent = 13\nexport const MemoComponent = 14\nexport const SimpleMemoComponent = 15\nexport const LazyComponent = 16\nexport const IncompleteClassComponent = 17\nexport const DehydratedFragment = 18\nexport const SuspenseListComponent = 19\nexport const ScopeComponent = 21\nexport const OffscreenComponent = 22\nexport const LegacyHiddenComponent = 23\nexport const CacheComponent = 24\nexport const TracingMarkerComponent = 25\n","/**\n * 给 TaroElement 绑定 react fiber、react props 等属性\n * 提供 fiber -> element、element -> fiber、element -> props 的方法\n*/\nimport { internalContainerInstanceKey, internalInstanceKey, internalPropsKey } from './constant'\nimport { HostComponent, HostRoot, HostText, SuspenseComponent } from './workTags'\n\nimport type { TaroElement, TaroText } from '@tarojs/runtime'\nimport type { Fiber } from 'react-reconciler'\nimport type { Props } from './props'\n\nexport function precacheFiberNode (hostInst: Fiber, node: TaroElement | TaroText): void {\n node[internalInstanceKey] = hostInst\n}\n\nexport function markContainerAsRoot (hostRoot: Fiber, node: TaroElement | TaroText): void {\n node[internalContainerInstanceKey] = hostRoot\n}\n\nexport function unmarkContainerAsRoot (node: TaroElement | TaroText): void {\n node[internalContainerInstanceKey] = null\n}\n\nexport function isContainerMarkedAsRoot (node: TaroElement | TaroText): boolean {\n return !!node[internalContainerInstanceKey]\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nexport function getInstanceFromNode (node: TaroElement | TaroText): Fiber | null {\n const inst = node[internalInstanceKey] || node[internalContainerInstanceKey]\n\n if (inst) {\n if (\n inst.tag === HostComponent ||\n inst.tag === HostText ||\n inst.tag === SuspenseComponent ||\n inst.tag === HostRoot\n ) {\n return inst\n } else {\n return null\n }\n }\n return null\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nexport function getNodeFromInstance (inst: Fiber) {\n if (inst.tag === HostComponent || inst.tag === HostText) {\n // In Fiber this, is just the state node right now. We assume it will be\n // a host component or host text.\n return inst.stateNode\n }\n}\n\nexport function getFiberCurrentPropsFromNode (node: TaroElement | TaroText): Props {\n return node[internalPropsKey] || null\n}\n\nexport function updateFiberProps (\n node: TaroElement | TaroText,\n props: Props,\n): void {\n node[internalPropsKey] = props\n\n if (process.env.TARO_PLATFORM === 'harmony') {\n // @ts-ignore\n node.updateTextNode()\n }\n}\n","import { type FormElement, TaroElement } from '@tarojs/runtime'\n\nimport { supportedInputTypes } from './constant'\nimport { Props } from './props'\n\nimport type { RestoreType } from './event'\n\n// 从 props 中,更新 input 组件的 value 值\nfunction updateInputWrapper (element: TaroElement, oldValue: RestoreType, props: Props) {\n const node = element\n const checked = props.checked\n\n if (checked != null) {\n console.warn('updateCheck 未实现', node)\n return\n }\n\n updateWrapper(element, oldValue, props)\n updateNamedCousins(element, props)\n}\n\n// react 中原本处理 type=radio 的逻辑,这里留个空,暂时不处理\nfunction updateNamedCousins (rootNode, props) {\n const name = props.name\n\n if (props.type === 'radio' && name != null) {\n console.warn('radio updateNamedCousins 未实现', rootNode, props)\n }\n}\n\nexport function getToStringValue (value: any) {\n const isEmptyType = typeof value === 'function' || typeof value === 'symbol'\n\n return isEmptyType ? '' : value\n}\n\nexport function toString (value): string {\n return '' + value\n}\n\nexport function updateWrapper (element: TaroElement, oldValue: RestoreType, props: Props) {\n const node = element as FormElement\n const value = getToStringValue(props.value)\n const type = props.type as string\n\n setNodeValue(node, oldValue, value, type)\n}\n\n// oldValue 为 event.detail.value,value 为 fiber.props.value\n// 如果 oldValue 和 value 不相等,代表受控组件需要更新\n// 更新的原则为,fiber.props.value 永远为用户所需要的值,因此 node.value = toString(value)\nexport function setNodeValue (node: FormElement, oldValue: RestoreType, value, type = 'string') {\n if (value != null) {\n if (type === 'number') {\n if (\n (value === 0 && node.value === '') ||\n // We explicitly want to coerce to number here if possible.\n // eslint-disable-next-line\n oldValue != value\n ) {\n node.value = toString(value)\n }\n } else if (oldValue !== toString(value)) {\n node.value = toString(value)\n }\n } else if (type === 'submit' || type === 'reset') {\n // Submit/reset inputs need the attribute removed completely to avoid\n // blank-text buttons.\n node.removeAttribute('value')\n }\n}\n\n// 判断当前 TaroElement 是否为 supportedInputTypes input 或 textarea\nexport function isTextInputElement (elem: TaroElement): boolean {\n const nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase()\n\n if (nodeName === 'input') {\n const type = (elem as FormElement).type\n\n return !type || !!supportedInputTypes[type]\n }\n\n if (nodeName === 'textarea') {\n return true\n }\n\n return false\n}\n\nexport const ReactDOMTextareaRestoreControlledState = updateWrapper\nexport const ReactDOMInputRestoreControlledState = updateInputWrapper\n","import type { FormElement } from '@tarojs/runtime'\n\nfunction isCheckable (elem: FormElement) {\n const type = elem.type\n const nodeName = elem.nodeName\n\n return (\n nodeName &&\n nodeName.toLowerCase() === 'input' &&\n (type === 'checkbox' || type === 'radio')\n )\n}\n\nfunction getTracker (node) {\n return node._valueTracker\n}\n\nfunction detachTracker (node) {\n node._valueTracker = null\n}\n\n// 之所以单独创建一个 tacker,是为了统一监听不同 type 的 input 值\n// 比如 type=checkbox 或者 type=radio,就需要监听 checked,而不是 value\n// 虽然目前还未实现 checkbox 和 radio 的 finishEventHandle,但后续不好说,所以先统一和 react 一样的写法\n// 需要特别注意的是,tracker 初始化时的值为 node 的初始值,但后续会变更为事件的 detail.value 值\nfunction trackValueOnNode (node: any) {\n const valueField = isCheckable(node) ? 'checked' : 'value'\n const descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField,\n )\n\n let currentValue = '' + node[valueField]\n\n if (\n node.hasOwnProperty(valueField) ||\n typeof descriptor === 'undefined' ||\n typeof descriptor.get !== 'function' ||\n typeof descriptor.set !== 'function'\n ) {\n return\n }\n\n const { get, set } = descriptor\n\n Object.defineProperty(node, valueField, {\n configurable: true,\n enumerable: descriptor.enumerable,\n get: function () {\n return get.call(this)\n },\n set: function (value) {\n currentValue = '' + value\n set.call(this, value)\n },\n })\n\n const tracker = {\n getValue () {\n return currentValue\n },\n setValue (value) {\n currentValue = '' + value\n },\n stopTracking () {\n detachTracker(node)\n delete node[valueField]\n },\n }\n return tracker\n}\n\nexport function track (node) {\n if (getTracker(node)) {\n return\n }\n\n node._valueTracker = trackValueOnNode(node)\n}\n\nexport function updateValueIfChanged (node, nextValue: string) {\n if (!node) {\n return false\n }\n\n const tracker = getTracker(node)\n\n if (!tracker) {\n return true\n }\n\n const lastValue = tracker.getValue()\n\n if (nextValue !== lastValue) {\n tracker.setValue(nextValue)\n return true\n }\n return false\n}\n\nexport function stopTracking (node) {\n const tracker = getTracker(node)\n if (tracker) {\n tracker.stopTracking()\n }\n}\n","import { type Style, type TaroElement, convertNumber2PX, FormElement } from '@tarojs/runtime'\nimport { capitalize, internalComponents, isFunction, isNumber, isObject, isString, toCamelCase } from '@tarojs/shared'\n\n// 拓展TaroElement的属性\n\nexport type Props = Record<string, unknown>\n\nconst isHarmony = process.env.TARO_PLATFORM === 'harmony'\nconst IS_NON_DIMENSIONAL = /max|aspect|acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i\n\nfunction isEventName (s: string) {\n return s[0] === 'o' && s[1] === 'n'\n}\n\nfunction isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nexport function updateProps (dom: TaroElement, oldProps: Props, newProps: Props) {\n const updatePayload = getUpdatePayload(dom, oldProps, newProps)\n if (updatePayload){\n updatePropsByPayload(dom, oldProps, updatePayload)\n }\n}\n\nexport function updatePropsByPayload (dom: TaroElement, oldProps: Props, updatePayload: any[]){\n const handlers: (() => void)[] = []\n for (let i = 0; i < updatePayload.length; i += 2){ \n // key, value 成对出现\n const key = updatePayload[i]\n const newProp = updatePayload[i+1]\n const oldProp = oldProps[key]\n if (isHarmony) {\n // 鸿蒙样式前置插入,防止覆盖style\n if (key === '__hmStyle') {\n handlers.unshift(() => setHarmonyStyle(dom, newProp, oldProp))\n } else {\n handlers.push(() => setProperty(dom, key, newProp, oldProp))\n }\n } else {\n setProperty(dom, key, newProp, oldProp)\n }\n }\n if (isHarmony) {\n for (let i = 0; i < handlers.length; i++){\n handlers[i]()\n }\n }\n}\n\nexport function getUpdatePayload (dom: TaroElement, oldProps: Props, newProps: Props){\n let i: string\n let updatePayload: any[] | null = null\n\n for (i in oldProps) {\n if (!(i in newProps)) {\n (updatePayload = updatePayload || []).push(i, null)\n }\n }\n const isFormElement = dom instanceof FormElement\n for (i in newProps) {\n if (oldProps[i] !== newProps[i] || (isFormElement && i === 'value')) {\n (updatePayload = updatePayload || []).push(i, newProps[i])\n }\n }\n\n return updatePayload\n}\n\n// function eventProxy (e: CommonEvent) {\n// const el = document.getElementById(e.currentTarget.id)\n// const handlers = el!.__handlers[e.type]\n// handlers[0](e)\n// }\n\nfunction setEvent (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n const isCapture = name.endsWith('Capture')\n let eventName = name.toLowerCase().slice(2)\n if (isCapture) {\n eventName = eventName.slice(0, -7)\n }\n\n const compName = capitalize(toCamelCase(dom.tagName.toLowerCase()))\n\n if (eventName === 'click' && !isHarmony && compName in internalComponents) {\n eventName = 'tap'\n }\n\n if (isFunction(value)) {\n if (oldValue) {\n dom.removeEventListener(eventName, oldValue as any, !isHarmony ? false : undefined)\n dom.addEventListener(eventName, value, !isHarmony ? { isCapture, sideEffect: false } : undefined)\n } else {\n dom.addEventListener(eventName, value, !isHarmony ? isCapture : undefined)\n }\n } else {\n dom.removeEventListener(eventName, oldValue as any)\n }\n}\n\nfunction setStyle (style: Style, key: string, value: unknown) {\n if (key[0] === '-' && !isHarmony) {\n // css variables need not further judgment\n style.setProperty(key, (value as string).toString())\n return\n }\n\n style[key] =\n isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false\n ? (isHarmony ? value + 'px' : convertNumber2PX(value))\n : value == null\n ? ''\n : value\n}\n\ntype StyleValue = Record<string, string | number>\ninterface DangerouslySetInnerHTML {\n __html?: string\n}\n\n// 鸿蒙样式特殊处理,需要在插入顺序中前置插入,防止覆盖了style\nfunction setHarmonyStyle(dom: TaroElement, value: unknown, oldValue?: unknown) {\n // @ts-ignore\n const style = dom._st.hmStyle // __hmStyle是已经被处理过的鸿蒙样式,可以直接塞进hmStyle对象内\n if (isObject<StyleValue>(oldValue)) {\n for (const i in oldValue) {\n if (!(value && i in (value as StyleValue))) {\n // 鸿蒙伪类特殊处理\n if (isHarmony) {\n if (i === '::after' || i === '::before') {\n setPseudo(dom, i, null)\n } else if (['::first-child', '::last-child'].includes(i) || i.startsWith('::nth-child')) {\n // @ts-ignore\n dom.set_pseudo_class(i, null)\n } else {\n if (i === 'position' && oldValue[i] === 'fixed') {\n // @ts-ignore\n dom.setLayer(0)\n }\n style[i] = ''\n }\n } else {\n style[i] = ''\n }\n }\n }\n }\n if (isObject<StyleValue>(value)) {\n for (const i in value) {\n if (!oldValue || !isEqual(value[i], (oldValue as StyleValue)[i])) {\n // 鸿蒙伪类特殊处理\n if (isHarmony) {\n if (i === '::after' || i === '::before') {\n setPseudo(dom, i, value[i] as unknown as StyleValue)\n } else if (['::first-child', '::last-child'].includes(i) || i.startsWith('::nth-child')) {\n // @ts-ignore\n dom.set_pseudo_class(i, value[i])\n } else {\n if (i === 'position') {\n if (value[i] === 'fixed' || (value[i] !== 'fixed' && oldValue?.[i])) {\n // @ts-ignore\n dom.setLayer(value[i] === 'fixed' ? 1 : 0)\n }\n }\n style[i] = value[i]\n }\n } else {\n style[i] = value[i]\n }\n }\n }\n }\n}\nfunction setProperty (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n name = name === 'className' ? 'class' : name\n\n if (\n name === 'key' ||\n name === 'children' ||\n name === 'ref'\n ) {\n // skip\n } else if (name === 'style') {\n const style = dom.style\n if (isString(value)) {\n style.cssText = value\n } else {\n if (isString(oldValue)) {\n style.cssText = ''\n oldValue = null\n }\n\n if (isObject<StyleValue>(oldValue)) {\n for (const i in oldValue) {\n if (!(value && i in (value as StyleValue))) {\n // harmony设置style,路径设置路径如下:dom.style => cssStyleDeclaration.setProperty => convertWebStyle2HmStyle => dom._st.hmStyle\n setStyle(style, i, '')\n }\n }\n }\n\n if (isObject<StyleValue>(value)) {\n for (const i in value) {\n if (!oldValue || !isEqual(value[i], (oldValue as StyleValue)[i])) {\n setStyle(style, i, value[i])\n }\n }\n }\n }\n } else if (isEventName(name)) {\n setEvent(dom, name, value, oldValue)\n } else if (name === 'dangerouslySetInnerHTML') {\n const newHtml = (value as DangerouslySetInnerHTML)?.__html ?? ''\n const oldHtml = (oldValue as DangerouslySetInnerHTML)?.__html ?? ''\n if (newHtml || oldHtml) {\n if (oldHtml !== newHtml) {\n dom.innerHTML = newHtml\n }\n }\n } else if (!isFunction(value)) {\n if (value == null) {\n dom.removeAttribute(name)\n } else {\n dom.setAttribute(name, value as string)\n }\n }\n}\n\n// 设置鸿蒙伪类属性(特殊设置)\nfunction setPseudo(dom: TaroElement, name: '::after' | '::before', value: StyleValue | null){\n if (name === '::after') {\n // @ts-ignore\n dom.set_pseudo_after(value)\n } else if (name === '::before') {\n // @ts-ignore\n dom.set_pseudo_before(value)\n }\n}\n","/* eslint-disable @typescript-eslint/indent */\nimport { document, FormElement } from '@tarojs/runtime'\nimport { isBoolean, isUndefined, noop } from '@tarojs/shared'\nimport Reconciler from 'react-reconciler'\nimport { DefaultEventPriority } from 'react-reconciler/constants'\n\nimport { precacheFiberNode, updateFiberProps } from './componentTree'\nimport { track } from './inputValueTracking'\nimport { getUpdatePayload, Props, updateProps, updatePropsByPayload } from './props'\n\nimport type { TaroElement, TaroText } from '@tarojs/runtime'\nimport type { Fiber, HostConfig } from 'react-reconciler'\n\nconst hostConfig: HostConfig<\n string, // Type\n Props, // Props\n TaroElement, // Container\n TaroElement, // Instance\n TaroText, // TextInstance\n TaroElement, // SuspenseInstance\n TaroElement, // HydratableInstance\n TaroElement, // PublicInstance\n Record<string, any>, // HostContext\n string[], // UpdatePayload\n unknown, // ChildSet\n unknown, // TimeoutHandle\n unknown // NoTimeout\n> & {\n supportsMicrotasks: boolean // 待官方类型文件修复后删除\n} = {\n // below keys order by {React ReactFiberHostConfig.custom.js}, convenient for comparing each other.\n\n // -------------------\n // required by @types/react-reconciler\n // -------------------\n getPublicInstance (inst: TaroElement) {\n return inst\n },\n getRootHostContext () {\n return {}\n },\n getChildHostContext (parentHostContext) {\n return parentHostContext\n },\n prepareForCommit (..._: any[]) {\n return null\n },\n resetAfterCommit: noop,\n createInstance (type, props: Props, _rootContainerInstance: any, _hostContext: any, internalInstanceHandle: Fiber) {\n const element = document.createElement(type)\n\n precacheFiberNode(internalInstanceHandle, element)\n updateFiberProps(element, props)\n\n return element\n },\n appendInitialChild (parent, child) {\n parent.appendChild(child)\n },\n finalizeInitialChildren (dom, type: string, props: any) {\n let newProps = props\n if (dom instanceof FormElement) {\n const [defaultName, defaultKey] = ['switch', 'checkbox', 'radio'].includes(type) ? ['checked', 'defaultChecked'] : ['value', 'defaultValue']\n if (props.hasOwnProperty(defaultKey)) {\n newProps = { ...newProps, [defaultName]: props[defaultKey] }\n delete newProps[defaultKey]\n }\n }\n\n updateProps(dom, {}, newProps) // 提前执行更新属性操作,Taro 在 Page 初始化后会立即从 dom 读取必要信息\n\n if (type === 'input' || type === 'textarea') {\n track(dom)\n }\n\n return false\n },\n prepareUpdate (instance, _, oldProps, newProps) {\n return getUpdatePayload(instance, oldProps, newProps)\n },\n shouldSetTextContent () {\n return false\n },\n createTextInstance (text: string, _rootContainerInstance: any, _hostContext: any, internalInstanceHandle: Fiber) {\n const textNode = document.createTextNode(text)\n\n precacheFiberNode(internalInstanceHandle, textNode)\n\n return textNode\n },\n scheduleTimeout: setTimeout,\n cancelTimeout: clearTimeout,\n noTimeout: -1,\n isPrimaryRenderer: true,\n warnsIfNotActing: true,\n supportsMutation: true,\n supportsPersistence: false,\n supportsHydration: false,\n getInstanceFromNode: () => null,\n beforeActiveInstanceBlur: noop,\n afterActiveInstanceBlur: noop,\n preparePortalMount: noop,\n prepareScopeUpdate: noop,\n getInstanceFromScope: () => null,\n getCurrentEventPriority () {\n return DefaultEventPriority\n },\n detachDeletedInstance: noop,\n\n // -------------------\n // Microtasks\n // (optional)\n // -------------------\n supportsMicrotasks: true,\n scheduleMicrotask: isUndefined(Promise)\n ? setTimeout\n : (callback) =>\n Promise.resolve(null)\n .then(callback)\n .catch(function (error) {\n setTimeout(() => {\n throw error\n })\n }),\n\n // -------------------\n // Mutation\n // (required if supportsMutation is true)\n // -------------------\n appendChild (parent, child) {\n parent.appendChild(child)\n },\n appendChildToContainer (parent, child) {\n parent.appendChild(child)\n },\n commitTextUpdate (textInst, _, newText) {\n textInst.nodeValue = newText\n },\n commitMount: noop,\n commitUpdate (dom, updatePayload, _, oldProps, newProps) {\n updatePropsByPayload(dom, oldProps, updatePayload)\n updateFiberProps(dom, newProps)\n },\n insertBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n insertInContainerBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n removeChild (parent, child) {\n parent.removeChild(child)\n },\n removeChildFromContainer (parent, child) {\n parent.removeChild(child)\n },\n resetTextContent: noop,\n hideInstance (instance) {\n const style = instance.style\n style.setProperty('display', 'none')\n },\n hideTextInstance (textInstance) {\n textInstance.nodeValue = ''\n },\n unhideInstance (instance, props) {\n const styleProp = props.style as { display?: any }\n let display = styleProp?.hasOwnProperty('display') ? styleProp.display : null\n display = display == null || isBoolean(display) || display === '' ? '' : ('' + display).trim()\n // eslint-disable-next-line dot-notation\n instance.style['display'] = display\n },\n unhideTextInstance (textInstance, text) {\n textInstance.nodeValue = text\n },\n clearContainer (element) {\n if (element.childNodes.length > 0) {\n element.textContent = ''\n }\n }\n}\n\nconst TaroReconciler = Reconciler(hostConfig)\n\nif (process.env.NODE_ENV !== 'production') {\n const foundDevTools = TaroReconciler.injectIntoDevTools({\n bundleType: 1,\n version: '18.0.0',\n rendererPackageName: 'taro-react'\n })\n if (!foundDevTools) {\n // eslint-disable-next-line no-console\n console.info(\n '%cDownload the React DevTools ' +\n 'for a better development experience: ' +\n 'https://reactjs.org/link/react-devtools',\n 'font-weight:bold'\n )\n }\n}\n\nexport { TaroReconciler }\n","import { TaroElement, TaroEvent } from '@tarojs/runtime'\n\nimport { getFiberCurrentPropsFromNode, getInstanceFromNode, getNodeFromInstance } from './componentTree'\nimport { isTextInputElement, ReactDOMInputRestoreControlledState, ReactDOMTextareaRestoreControlledState, toString } from './domInput'\nimport { updateValueIfChanged } from './inputValueTracking'\nimport { TaroReconciler } from './reconciler'\n\nimport type { Fiber } from 'react-reconciler'\nimport type { Props } from './props'\n\nexport type RestoreType = string | number | boolean | any[]\n\ninterface RestoreItem {\n target: TaroElement\n value: RestoreType\n}\n\nlet restoreQueue: RestoreItem[] | null = null\n\n// 对比 TaroElement tracker 下的 value 和事件下的 value,判断 element 的值是否存在更改\nexport function getTargetInstForInputOrChangeEvent (e: TaroEvent, node: TaroElement) {\n const targetInst = getInstanceFromNode(node)\n const domEventName = e.type\n\n if (!targetInst || !isTextInputElement(node)) return\n\n if (domEventName === 'input' || domEventName === 'change') {\n const nextValue = toString(e.mpEvent?.detail?.value)\n\n return getInstIfValueChanged(targetInst, nextValue)\n }\n}\n\nfunction getInstIfValueChanged (targetInst: Fiber, nextValue: string) {\n const targetNode = getNodeFromInstance(targetInst)\n\n if (!targetNode) return false\n\n if (updateValueIfChanged(targetNode, nextValue)) {\n return targetInst\n }\n}\n\n// 把 target 塞入更新队列中\nexport function enqueueStateRestore (target: RestoreItem): void {\n if (restoreQueue) {\n restoreQueue.push(target)\n } else {\n restoreQueue = [target]\n }\n}\n\n// 判断是否需要恢复 target(input、textarea) 的状态\nexport function needsStateRestore (): boolean {\n return restoreQueue !== null\n}\n\nexport function finishEventHandler () {\n const controlledComponentsHavePendingUpdates = needsStateRestore()\n\n if (controlledComponentsHavePendingUpdates) {\n TaroReconciler.flushSync()\n restoreStateIfNeeded()\n }\n}\n\n// 遍历 restoreQueue、restoreTarget,恢复其状态\nexport function restoreStateIfNeeded () {\n if (!restoreQueue) {\n return\n }\n\n const queuedTargets = restoreQueue\n restoreQueue = null\n\n for (let i = 0; i < queuedTargets.length; i++) {\n restoreStateOfTarget(queuedTargets[i])\n }\n}\n\nfunction restoreImpl (\n domElement: TaroElement,\n tag: string,\n oldValue: string | number | boolean | any[],\n props: Props,\n): void {\n switch (tag) {\n case 'input':\n ReactDOMInputRestoreControlledState(domElement, oldValue, props)\n break\n case 'textarea':\n ReactDOMTextareaRestoreControlledState(domElement, oldValue, props)\n break\n }\n}\n\nfunction restoreStateOfTarget (item: RestoreItem) {\n const internalInstance = getInstanceFromNode(item.target)\n\n if (!internalInstance) return\n\n const { stateNode, type } = internalInstance\n\n if (stateNode) {\n const props = getFiberCurrentPropsFromNode(stateNode)\n\n restoreImpl(stateNode, type, item.value, props)\n }\n}\n","import { hooks } from '@tarojs/shared'\n\nimport { markContainerAsRoot } from './componentTree'\nimport { getEventPriority } from './constant'\nimport { enqueueStateRestore, getTargetInstForInputOrChangeEvent, RestoreType } from './event'\nimport { TaroReconciler } from './reconciler'\n\nimport type { TaroElement, TaroEvent } from '@tarojs/runtime'\nimport type { ReactNode } from 'react'\nimport type { OpaqueRoot } from 'react-reconciler'\n\nexport const ContainerMap: WeakMap<TaroElement, Root> = new WeakMap()\n\ntype Renderer = typeof TaroReconciler\n\ntype CreateRootOptions = {\n unstable_strictMode?: boolean\n unstable_concurrentUpdatesByDefault?: boolean\n unstable_transitionCallbacks?: any\n identifierPrefix?: string\n onRecoverableError?: (error: any) => void\n}\n\nexport type Callback = () => void | null | undefined\n\nclass Root {\n private renderer: Renderer\n public internalRoot: OpaqueRoot\n\n public constructor (renderer: Renderer, domContainer: TaroElement, options?: CreateRootOptions) {\n this.renderer = renderer\n this.initInternalRoot(renderer, domContainer, options)\n }\n\n private initInternalRoot (renderer: Renderer, domContainer: TaroElement, options?: CreateRootOptions) {\n // Since react-reconciler v0.27, createContainer need more parameters\n // @see:https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react-reconciler/src/ReactFiberReconciler.js#L248\n const containerInfo = domContainer\n if (options) {\n const tag = 1 // ConcurrentRoot\n const concurrentUpdatesByDefaultOverride = false\n let isStrictMode = false\n let identifierPrefix = ''\n let onRecoverableError = (error: any) => console.error(error)\n let transitionCallbacks = null\n if (options.unstable_strictMode === true) {\n isStrictMode = true\n }\n if (options.identifierPrefix !== undefined) {\n identifierPrefix = options.identifierPrefix\n }\n if (options.onRecoverableError !== undefined) {\n onRecoverableError = options.onRecoverableError\n }\n if (options.unstable_transitionCallbacks !== undefined) {\n transitionCallbacks = options.unstable_transitionCallbacks\n }\n\n this.internalRoot = renderer.createContainer(\n containerInfo,\n tag,\n null, // hydrationCallbacks\n isStrictMode,\n concurrentUpdatesByDefaultOverride,\n identifierPrefix,\n onRecoverableError,\n transitionCallbacks\n )\n } else {\n const tag = 0 // LegacyRoot\n this.internalRoot = renderer.createContainer(\n containerInfo,\n tag,\n null, // hydrationCallbacks\n false, // isStrictMode\n false, // concurrentUpdatesByDefaultOverride,\n '', // identifierPrefix\n () => {}, // onRecoverableError, this isn't reachable because onRecoverableError isn't called in the legacy API.\n null // transitionCallbacks\n )\n }\n }\n\n public render (children: ReactNode, cb: Callback) {\n const { renderer, internalRoot } = this\n renderer.updateContainer(children, internalRoot, null, cb)\n return renderer.getPublicRootInstance(internalRoot)\n }\n\n public unmount (cb: Callback) {\n this.renderer.updateContainer(null, this.internalRoot, null, cb)\n }\n}\n\nexport function render (element: ReactNode, domContainer: TaroElement, cb: Callback) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot.render(element, cb)\n }\n\n const root = new Root(TaroReconciler, domContainer)\n ContainerMap.set(domContainer, root)\n return root.render(element, cb)\n}\n\nexport function createRoot (domContainer: TaroElement, options: CreateRootOptions = {}) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot\n }\n // options should be an object\n const root = new Root(TaroReconciler, domContainer, options)\n ContainerMap.set(domContainer, root)\n\n markContainerAsRoot(root?.internalRoot?.current, domContainer)\n\n hooks.tap('dispatchTaroEvent', (e: TaroEvent, node: TaroElement) => {\n const eventPriority = getEventPriority(e.type)\n\n TaroReconciler.runWithPriority(eventPriority, () => {\n node.dispatchEvent(e)\n })\n })\n\n // 对比 event.detail.value 和 node.tracker.value,判断 value 值是否有变动,存在变动则塞入队列中\n hooks.tap('modifyTaroEvent', (e: TaroEvent, node: TaroElement) => {\n const inst = getTargetInstForInputOrChangeEvent(e, node)\n\n if (!inst) return\n\n // 这里塞入的是 event.detail.value,也就是事件的值,在受控组件中,你可以理解为需要被变更的值\n // 后续会在 finishEventHandler 中,使用最新的 fiber.props.value 来与其比较\n // 如果不一致,则表示需要更新,会执行 node.value = fiber.props.value 的更新操作\n const nextValue = e.mpEvent?.detail?.value as unknown as RestoreType\n enqueueStateRestore({ target: node, value: nextValue })\n })\n\n return root\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { ensure, isFunction } from '@tarojs/shared'\n\nimport { finishEventHandler } from './event'\nimport { TaroReconciler } from './reconciler'\nimport { ContainerMap, createRoot, render } from './render'\n\nimport type { TaroElement } from '@tarojs/runtime'\nimport type { ReactNode } from 'react'\n\nlet isInsideEventHandler = false\n\n// 重新包裹 batchedUpdates,使其可以在触发事件后执行 finishEventHandler\nconst unstable_batchedUpdates = (fn, a) => {\n if (isInsideEventHandler) {\n return fn(a)\n }\n\n isInsideEventHandler = true\n\n try {\n return TaroReconciler.batchedUpdates(fn, a)\n } finally {\n isInsideEventHandler = false\n finishEventHandler()\n }\n}\n\nfunction unmountComponentAtNode (dom: TaroElement) {\n ensure(dom && [1, 8, 9, 11].includes(dom.nodeType), 'unmountComponentAtNode(...): Target container is not a DOM element.')\n\n const root = ContainerMap.get(dom)\n\n if (!root) return false\n\n unstable_batchedUpdates(() => {\n root.unmount(() => {\n ContainerMap.delete(dom)\n })\n }, null)\n\n return true\n}\n\nfunction findDOMNode (comp?: TaroElement | ReactNode) {\n if (comp == null) {\n return null\n }\n\n const nodeType = (comp as TaroElement).nodeType\n if (nodeType === 1 || nodeType === 3) {\n return comp\n }\n\n return TaroReconciler.findHostInstance(comp as Record<string, any>)\n}\n\nconst portalType = isFunction(Symbol) && Symbol.for\n ? Symbol.for('react.portal')\n : 0xeaca\n\nfunction createPortal (\n children: ReactNode,\n containerInfo: TaroElement,\n key?: string\n) {\n return {\n $$typeof: portalType,\n key: key == null ? null : String(key),\n children,\n containerInfo,\n implementation: null\n }\n}\n\nexport {\n createPortal,\n createRoot,\n findDOMNode,\n render,\n unmountComponentAtNode,\n unstable_batchedUpdates\n}\n\nexport default {\n render,\n createRoot,\n unstable_batchedUpdates,\n unmountComponentAtNode,\n findDOMNode,\n createPortal\n}\n"],"names":["DefaultEventPriority"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/react",
3
- "version": "4.0.0-canary.0",
3
+ "version": "4.0.0-canary.10",
4
4
  "description": "like react-dom, but for mini apps.",
5
5
  "author": "yuche <i@yuche.me>",
6
6
  "homepage": "https://github.com/nervjs/taro/tree/master/packages/taro-react#readme",
@@ -18,9 +18,7 @@
18
18
  "url": "https://github.com/NervJS/taro/issues"
19
19
  },
20
20
  "dependencies": {
21
- "react-reconciler": "0.27.0",
22
- "@tarojs/runtime": "4.0.0-canary.0",
23
- "@tarojs/shared": "4.0.0-canary.0"
21
+ "react-reconciler": "0.27.0"
24
22
  },
25
23
  "devDependencies": {
26
24
  "@rollup/plugin-buble": "^1.0.3",
@@ -31,11 +29,17 @@
31
29
  "rollup": "^2.79.0",
32
30
  "rollup-plugin-ts": "^3.0.2",
33
31
  "ts-jest": "^29.0.5",
34
- "typescript": "^4.7.4"
32
+ "typescript": "^4.7.4",
33
+ "@tarojs/runtime": "4.0.0-canary.10",
34
+ "@tarojs/shared": "4.0.0-canary.10"
35
+ },
36
+ "peerDependencies": {
37
+ "@tarojs/runtime": "~4.0.0-canary.10",
38
+ "@tarojs/shared": "~4.0.0-canary.10"
35
39
  },
36
40
  "scripts": {
37
41
  "test": "jest --collectCoverage",
38
- "test:ci": "jest --ci -i --coverage false",
42
+ "test:ci": "jest --ci -i --coverage --silent",
39
43
  "build": "rollup -c",
40
44
  "dev": "rollup -c -w"
41
45
  }